tinybase 9.5.0 → 9.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/omni/index.d.ts +4 -0
- package/@types/omni/with-schemas/index.d.ts +4 -0
- package/@types/persisters/index.d.ts +8 -1
- package/@types/persisters/persister-better-sqlite3/index.d.ts +178 -0
- package/@types/persisters/persister-better-sqlite3/with-schemas/index.d.ts +202 -0
- package/@types/persisters/persister-capacitor-sqlite/index.d.ts +181 -0
- package/@types/persisters/persister-capacitor-sqlite/with-schemas/index.d.ts +205 -0
- package/@types/persisters/persister-indexed-db/index.d.ts +17 -9
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +18 -10
- package/@types/persisters/persister-libsql/index.d.ts +27 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +27 -0
- package/@types/persisters/persister-pg/index.d.ts +197 -0
- package/@types/persisters/persister-pg/with-schemas/index.d.ts +222 -0
- package/@types/persisters/persister-supabase/index.d.ts +201 -0
- package/@types/persisters/persister-supabase/with-schemas/index.d.ts +217 -0
- package/@types/persisters/with-schemas/index.d.ts +8 -1
- package/@types/ui-react-dom/index.d.ts +10 -10
- package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-react-dom-charts/index.d.ts +7 -7
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
- package/@types/ui-react-inspector/index.d.ts +1 -1
- package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-solid-dom/index.d.ts +10 -10
- package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-solid-inspector/index.d.ts +1 -1
- package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-svelte-dom/index.d.ts +10 -10
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-svelte-inspector/index.d.ts +1 -1
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
- package/agents.md +55 -2
- 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-better-sqlite3/index.js +1 -0
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -0
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -0
- package/min/persisters/persister-capacitor-sqlite/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-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-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-pg/index.js +1 -0
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -0
- package/min/persisters/persister-pg/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-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-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-supabase/index.js +1 -0
- package/min/persisters/persister-supabase/index.js.gz +0 -0
- package/min/persisters/persister-supabase/with-schemas/index.js +1 -0
- package/min/persisters/persister-supabase/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/omni/index.js +269 -34
- package/omni/with-schemas/index.js +269 -34
- package/package.json +164 -4
- package/persisters/index.js +23 -7
- package/persisters/persister-better-sqlite3/index.js +1767 -0
- package/persisters/persister-better-sqlite3/with-schemas/index.js +1767 -0
- package/persisters/persister-capacitor-sqlite/index.js +1769 -0
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +1769 -0
- package/persisters/persister-cr-sqlite-wasm/index.js +20 -6
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +20 -6
- package/persisters/persister-durable-object-sql-storage/index.js +20 -7
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +20 -7
- package/persisters/persister-electric-sql/index.js +20 -6
- package/persisters/persister-electric-sql/with-schemas/index.js +20 -6
- package/persisters/persister-expo-sqlite/index.js +20 -6
- package/persisters/persister-expo-sqlite/with-schemas/index.js +20 -6
- package/persisters/persister-indexed-db/index.js +48 -20
- package/persisters/persister-indexed-db/with-schemas/index.js +48 -20
- package/persisters/persister-libsql/index.js +20 -6
- package/persisters/persister-libsql/with-schemas/index.js +20 -6
- package/persisters/persister-pg/index.js +1905 -0
- package/persisters/persister-pg/with-schemas/index.js +1905 -0
- package/persisters/persister-pglite/index.js +20 -6
- package/persisters/persister-pglite/with-schemas/index.js +20 -6
- package/persisters/persister-postgres/index.js +20 -6
- package/persisters/persister-postgres/with-schemas/index.js +20 -6
- package/persisters/persister-powersync/index.js +27 -10
- package/persisters/persister-powersync/with-schemas/index.js +27 -10
- package/persisters/persister-react-native-sqlite/index.js +20 -6
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite-bun/index.js +20 -6
- package/persisters/persister-sqlite-bun/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite-wasm/index.js +20 -6
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite3/index.js +20 -6
- package/persisters/persister-sqlite3/with-schemas/index.js +20 -6
- package/persisters/persister-supabase/index.js +883 -0
- package/persisters/persister-supabase/with-schemas/index.js +883 -0
- package/persisters/with-schemas/index.js +23 -7
- package/readme.md +14 -14
- package/releases.md +163 -66
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),pa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return O(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]: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=>{Va.test(t)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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 Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!$(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>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();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==h||!!j;U++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||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 ma},la=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)})),ma},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),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))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?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 ma},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=pa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>h(pa(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||h(_,a),O=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(pa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await p([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await p(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,h,O,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,O,T),R=(a,t)=>p(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,p,O;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=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:j,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(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!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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=p=O=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(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>_,a=>a(),e,i,_,3,t);export{ot as createBetterSqlite3Persister};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),pa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return O(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]: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=>{Va.test(t)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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 Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!$(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>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();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==h||!!j;U++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||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 ma},la=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)})),ma},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),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))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?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 ma},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=pa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>h(pa(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||h(_,a),O=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(pa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await p([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await p(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,h,O,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,O,T),R=(a,t)=>p(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,p,O;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=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:j,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(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!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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=p=O=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(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>_,a=>a(),e,i,_,3,t);export{ot as createBetterSqlite3Persister};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),$=(a,t)=>a.test(t),_=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),R=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",G="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,H=k+"*"+Y,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+J,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),na=()=>"?",ea=(a,t,n=[1])=>P(F(a,()=>t(n)),e),ia=(a,t=s)=>G+`(${sa(t,ta(a))})`,sa=(a,t)=>r(a,aa,t),ra=Object,ca=a=>ra.getPrototypeOf(a),oa=ra.entries,la=a=>!w(a)&&v(ca(a),a=>a==ra.prototype||w(ca(a)),()=>!0),wa=ra.keys,ua=ra.freeze,ya=(...a)=>ra.assign(ra.create(null),...a),da=(a,t,n)=>(ra.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),va=(a=[])=>{const t=ra.create(null);return M(a,([a,n])=>da(t,a,n)),t},fa=(a,t)=>(delete a[t],a),Ea=(a,t)=>M(wa(a),n=>t(a[n],n)),ma=(a,t)=>F(oa(a),([a,n])=>t(n,a)),Aa=(a,t)=>{const n=va();return Ea(a,(a,e)=>da(n,e,t(a,e))),n},Na=a=>A(wa(a)),$a=a=>la(a)&&0==Na(a),_a=Map,ha=a=>new _a(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(D(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Da=a=>new Set(m(a)||u(a)?a:[a]),Ra=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Ea(a,(a,r)=>{const c=(w=ya(t,E(a)?{[n]:a}:a),o=ra.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):la(a)?Aa(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const X={},Y=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const z=ha(),[H,K,Q,V,W]=((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]:R(0))(c,a,l),[Z,aa,ta]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{$(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Ra(Ia(r,c??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(D(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Aa),na=a=>{a!=p&&(p=a,aa(z,void 0,p))},ea=()=>{Oa(tt,w)||Oa(Za,w)||!N(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ia=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},sa=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ra=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=p&&(await C(async()=>{na(1),g++,await ma(()=>L(async()=>{const n=await t();m(n)?ia(n):u(n)&&a?W(a):u(n)||R(1,n)},t=>{r?.(t),a&&W(a)}))},()=>na(0)),await sa()),Aa),oa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await ca())},la=async a=>{const t=++P;let n=!0;if(await wa(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{na(1),g++,await(t?ma(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{na(0)}})())},()=>{t&&j--,--U||na(0)}),U||await sa()}else 2==p?k=t:await ca()});t!=P||J?u(a)||await s(a):d=a},r);await ra(e),t!=P||J||await C(()=>ca(a),()=>{n=!1})}return Aa},wa=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await ra(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),Aa},ya=async a=>(1!=p&&await C(()=>C(async()=>{na(2),S++,await ma(()=>L(()=>e(K,a),r))},()=>na(0)),oa),Aa),da=async()=>{const t=++G;return await va(!0),t!=G||J||(await ya(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=Q();V(a)&&L(()=>ya(a))}}))),Aa},va=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),Aa},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,wa]:[wa,va];return await C(()=>t(),async()=>{await n()}),Aa},ma=async(...a)=>{let t,n=!1;const e=h(e=>N(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),ea()})}})(),await e,n)throw t;return Aa},Aa={load:ca,startAutoLoad:la,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,la,va,wa]:[la,da,wa,va],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return Aa},stopAutoPersisting:Ea,getStatus:()=>p,addStatusListener:a=>Z(a,z),delListener:t=>(ta(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(Ea,()=>n),()=>Y?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),ea()})})()),await _,Aa)};return ua(Aa)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Ra(Sa(d,a,Da),t),n&&Ra(Sa(v,a,Da),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Da(e);return((a,t)=>p(Oa(d,a),t))(a,t)?va(x(F(await f(H+ta(a)+ia(a,n)),a=>{const n=a[t],e=w?Aa(fa(a,t),w):fa(a,t);return[n,u(i)?e:va(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const $=u(A)?void 0:Da(A),_=a=>u($)||p($,a),h=Da();Ea(i??{},a=>M(x(wa(a??{}),_),a=>Ra(h,a)));const T=g(h);if(u($)&&!E&&y&&m==s&&N(T)&&p(d,a))return await f("DROP "+J+ta(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Da(x(g(S),a=>a==n||_(a)));if(!N(T))if(p(d,a)){if(await O(F([n,...T],async t=>{D(I,t)||(await f(X+ta(a)+"ADD"+ta(t)+r),Ra(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(n)})`),Ra(Sa(v,a,Da),n)}}else await f(Z+ta(a)+`(${ta(n)}${r} PRIMARY KEY${P(F(T,a=>e+ta(a)+r))});`),ga(d,a,Da([n,...T])),ga(v,a,Da([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(X+ta(a)+"DROP"+ta(t)),D(S,t))}):[]]),E)u(i)?u($)&&await f(z+ta(a)+ia(a,m)):await O(ma(i,async(t,e)=>{if(u(t))await f(z+ta(a)+ia(a,m)+`AND(${ta(n)}=${c([1])})`,[e]);else if(!N(T)){const i=x(wa(t),_);N(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if(N(T))u($)&&p(d,a)&&await f(z+ta(a)+ia(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&_(a)),e=va(),s=[];Ea(i??{},(a,n)=>{da(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(z+ta(a)+ia(a,m)+`AND${ta(n)}NOT IN(${ea(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),e))(n,...i)+")VALUES"+P(ma(s,a=>"("+r(c)+","+ea(a,r,c)+")"),e)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(i,a=>ta(a)+"=excluded."+ta(a)),e),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,N,$)=>{const[_,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,$);return nt(a,()=>p(async()=>{return await _(),a=(await h(c,o))[U]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,N,$,_,h,p,T)=>{const[g,S,I,D]=it(t,f,E,N,$,_,h,p,T),R=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ra.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>va(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>D(async()=>{await g();const a=await(async()=>va(x(await O(Ta(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await b(n)}else await R(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",N,$)=>{let _,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,D,L]=(a=>{const n=(a=>ya(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??j,n[Fa]??ba],Da(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ya(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Da(y),v=Da(y),f=Ha(i,{[Ba]:null,[qa]:j,[Ga]:s},Ba,a=>p(v,a),a=>Ra(d,a)),m=Ha(r,{[Ua]:null,[qa]:j,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Ra(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&R(0),(S?rt:ct)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=h||r!=O)){const c=t&&!s&&!w(_);_=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{_=h=O=null,await o(f)})})},a=>a(),y,v,f,D,g(L),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${G} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${G} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ea(t,na)})ORDER BY t.name,c.name`,t),m,A,n,na,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>$(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>_,a=>a(),e,i,_,3,t);export{wt as createCapacitorSqlitePersister};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),$=(a,t)=>a.test(t),_=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),R=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",G="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,H=k+"*"+Y,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+J,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),na=()=>"?",ea=(a,t,n=[1])=>P(F(a,()=>t(n)),e),ia=(a,t=s)=>G+`(${sa(t,ta(a))})`,sa=(a,t)=>r(a,aa,t),ra=Object,ca=a=>ra.getPrototypeOf(a),oa=ra.entries,la=a=>!w(a)&&v(ca(a),a=>a==ra.prototype||w(ca(a)),()=>!0),wa=ra.keys,ua=ra.freeze,ya=(...a)=>ra.assign(ra.create(null),...a),da=(a,t,n)=>(ra.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),va=(a=[])=>{const t=ra.create(null);return M(a,([a,n])=>da(t,a,n)),t},fa=(a,t)=>(delete a[t],a),Ea=(a,t)=>M(wa(a),n=>t(a[n],n)),ma=(a,t)=>F(oa(a),([a,n])=>t(n,a)),Aa=(a,t)=>{const n=va();return Ea(a,(a,e)=>da(n,e,t(a,e))),n},Na=a=>A(wa(a)),$a=a=>la(a)&&0==Na(a),_a=Map,ha=a=>new _a(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(D(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Da=a=>new Set(m(a)||u(a)?a:[a]),Ra=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Ea(a,(a,r)=>{const c=(w=ya(t,E(a)?{[n]:a}:a),o=ra.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):la(a)?Aa(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const X={},Y=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const z=ha(),[H,K,Q,V,W]=((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]:R(0))(c,a,l),[Z,aa,ta]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{$(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Ra(Ia(r,c??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(D(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Aa),na=a=>{a!=p&&(p=a,aa(z,void 0,p))},ea=()=>{Oa(tt,w)||Oa(Za,w)||!N(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ia=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},sa=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ra=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=p&&(await C(async()=>{na(1),g++,await ma(()=>L(async()=>{const n=await t();m(n)?ia(n):u(n)&&a?W(a):u(n)||R(1,n)},t=>{r?.(t),a&&W(a)}))},()=>na(0)),await sa()),Aa),oa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await ca())},la=async a=>{const t=++P;let n=!0;if(await wa(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{na(1),g++,await(t?ma(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{na(0)}})())},()=>{t&&j--,--U||na(0)}),U||await sa()}else 2==p?k=t:await ca()});t!=P||J?u(a)||await s(a):d=a},r);await ra(e),t!=P||J||await C(()=>ca(a),()=>{n=!1})}return Aa},wa=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await ra(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),Aa},ya=async a=>(1!=p&&await C(()=>C(async()=>{na(2),S++,await ma(()=>L(()=>e(K,a),r))},()=>na(0)),oa),Aa),da=async()=>{const t=++G;return await va(!0),t!=G||J||(await ya(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=Q();V(a)&&L(()=>ya(a))}}))),Aa},va=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),Aa},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,wa]:[wa,va];return await C(()=>t(),async()=>{await n()}),Aa},ma=async(...a)=>{let t,n=!1;const e=h(e=>N(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),ea()})}})(),await e,n)throw t;return Aa},Aa={load:ca,startAutoLoad:la,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,la,va,wa]:[la,da,wa,va],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return Aa},stopAutoPersisting:Ea,getStatus:()=>p,addStatusListener:a=>Z(a,z),delListener:t=>(ta(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(Ea,()=>n),()=>Y?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),ea()})})()),await _,Aa)};return ua(Aa)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Ra(Sa(d,a,Da),t),n&&Ra(Sa(v,a,Da),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Da(e);return((a,t)=>p(Oa(d,a),t))(a,t)?va(x(F(await f(H+ta(a)+ia(a,n)),a=>{const n=a[t],e=w?Aa(fa(a,t),w):fa(a,t);return[n,u(i)?e:va(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const $=u(A)?void 0:Da(A),_=a=>u($)||p($,a),h=Da();Ea(i??{},a=>M(x(wa(a??{}),_),a=>Ra(h,a)));const T=g(h);if(u($)&&!E&&y&&m==s&&N(T)&&p(d,a))return await f("DROP "+J+ta(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Da(x(g(S),a=>a==n||_(a)));if(!N(T))if(p(d,a)){if(await O(F([n,...T],async t=>{D(I,t)||(await f(X+ta(a)+"ADD"+ta(t)+r),Ra(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(n)})`),Ra(Sa(v,a,Da),n)}}else await f(Z+ta(a)+`(${ta(n)}${r} PRIMARY KEY${P(F(T,a=>e+ta(a)+r))});`),ga(d,a,Da([n,...T])),ga(v,a,Da([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(X+ta(a)+"DROP"+ta(t)),D(S,t))}):[]]),E)u(i)?u($)&&await f(z+ta(a)+ia(a,m)):await O(ma(i,async(t,e)=>{if(u(t))await f(z+ta(a)+ia(a,m)+`AND(${ta(n)}=${c([1])})`,[e]);else if(!N(T)){const i=x(wa(t),_);N(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if(N(T))u($)&&p(d,a)&&await f(z+ta(a)+ia(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&_(a)),e=va(),s=[];Ea(i??{},(a,n)=>{da(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(z+ta(a)+ia(a,m)+`AND${ta(n)}NOT IN(${ea(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),e))(n,...i)+")VALUES"+P(ma(s,a=>"("+r(c)+","+ea(a,r,c)+")"),e)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(i,a=>ta(a)+"=excluded."+ta(a)),e),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,N,$)=>{const[_,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,$);return nt(a,()=>p(async()=>{return await _(),a=(await h(c,o))[U]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,N,$,_,h,p,T)=>{const[g,S,I,D]=it(t,f,E,N,$,_,h,p,T),R=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ra.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>va(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>D(async()=>{await g();const a=await(async()=>va(x(await O(Ta(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await b(n)}else await R(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",N,$)=>{let _,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,D,L]=(a=>{const n=(a=>ya(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??j,n[Fa]??ba],Da(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ya(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Da(y),v=Da(y),f=Ha(i,{[Ba]:null,[qa]:j,[Ga]:s},Ba,a=>p(v,a),a=>Ra(d,a)),m=Ha(r,{[Ua]:null,[qa]:j,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Ra(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&R(0),(S?rt:ct)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=h||r!=O)){const c=t&&!s&&!w(_);_=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{_=h=O=null,await o(f)})})},a=>a(),y,v,f,D,g(L),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${G} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${G} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ea(t,na)})ORDER BY t.name,c.name`,t),m,A,n,na,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>$(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>_,a=>a(),e,i,_,3,t);export{wt as createCapacitorSqlitePersister};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),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};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),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=N(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=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(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;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]: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=>{Va.test(t)&&N(a)<1e3&&U(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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 Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{Oa(at,w)||Oa(Wa,w)||!$(Oa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>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();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==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 ma},la=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)})),ma},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),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))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==N(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(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?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 ma},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=Oa(Za,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=(Oa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>h(Oa(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||h(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await O([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await O(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(Oa(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),U(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(c,o,{[B]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,h,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,p,T),R=(a,t)=>O(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[B]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await O(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{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=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ua]:null,[xa]:j,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(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(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(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{ot 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),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};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),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=N(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=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(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;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]: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=>{Va.test(t)&&N(a)<1e3&&U(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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 Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{Oa(at,w)||Oa(Wa,w)||!$(Oa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>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();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==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 ma},la=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)})),ma},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),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))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==N(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(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?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 ma},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=Oa(Za,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=(Oa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>h(Oa(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||h(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await O([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await O(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(Oa(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),U(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(c,o,{[B]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,h,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,p,T),R=(a,t)=>O(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[B]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await O(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{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=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ua]:null,[xa]:j,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(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(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(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{ot as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
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};
|
|
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=a=>Array.isArray(a),L=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(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=$(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=>$(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(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set(A(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>$(t)-2?e:Ea),s=>{if(i>$(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}),Aa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},La=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>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,L=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]:La(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)&&$(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==$(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=$(c);o==$(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&&A(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 Aa(()=>$a(async()=>{const e=await t();A(e)?ta(e):_(e)&&a?J(a):_(e)||La(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=$a(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?Aa(()=>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 $a(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),L++,await Aa(()=>$a(()=>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)&&$a(()=>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},Aa=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(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<$(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:Aa,getStore:()=>a,getStats:()=>({loads:m,saves:L}),...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=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s)=>Fa+`(${Ka(t,Wa(a))})`,Ka=(a,t)=>l(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",lt="deleteEmptyTable",rt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>A(a)?a:void 0,yt=a=>N(a)||A(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=L((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},_t=(a,e,i,c,o,l=Tt,r,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):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,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),A=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(A,a)));const L=X(A);if(_(f)&&!T&&d&&N==s&&O(L)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(L))if(U(w,a)){if(await I(D([e,...L],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),l==Tt&&!U(_a(y,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 E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(L,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...L])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N)+`AND(${Wa(e)}=${o([1])})`,[n]);else if(!O(L)){const i=C(W(t),m);O(i)||await l(E,a,e,i,{[n]:D(i,a=>r?r(t[a]):t[a])},o,$)}}));else if(O(L))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>r?r(a?.[t]):a?.[t])),M(s,e)}),await l(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N)+`AND${Wa(e)}NOT IN(${ka(s,o)})`,s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),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())},Nt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v,f)=>{const[m,A,L,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),la((await A(o,l))[ga]?.[r]??"null"))),a=>$(async()=>{await m(),await L(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,A,L,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,A,L,$,O),g=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(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))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(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(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(dt,o),{load:r,save:u}=l,d=[yt(r),yt(u),l[ct],wt(r),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[rt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[lt]:0,[rt]:null},ct,(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()&&La(0),(h?Nt:vt)(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!=A||i!=L||c!=$)){const o=t&&!s&&!E(A);A=e,L=i,$=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(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),At=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),Lt=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+L((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=$t(i+"tinybase_tables"),r=$t(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=Lt(),e=Lt(),n=ua(),i=mt(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,Lt);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))Aa(a,r,u);else{const t=ia(a[0],i,Lt);Aa(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);Aa(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);K(e[0],o,[d,r,u])}}),b(mt(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)?Aa(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{At as createDurableObjectSqlStoragePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
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};
|
|
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=a=>Array.isArray(a),L=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(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=$(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=>$(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(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set(A(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>$(t)-2?e:Ea),s=>{if(i>$(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}),Aa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},La=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>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,L=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]:La(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)&&$(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==$(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=$(c);o==$(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&&A(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 Aa(()=>$a(async()=>{const e=await t();A(e)?ta(e):_(e)&&a?J(a):_(e)||La(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=$a(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?Aa(()=>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 $a(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),L++,await Aa(()=>$a(()=>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)&&$a(()=>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},Aa=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(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<$(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:Aa,getStore:()=>a,getStats:()=>({loads:m,saves:L}),...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=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s)=>Fa+`(${Ka(t,Wa(a))})`,Ka=(a,t)=>l(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",lt="deleteEmptyTable",rt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>A(a)?a:void 0,yt=a=>N(a)||A(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=L((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},_t=(a,e,i,c,o,l=Tt,r,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):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,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),A=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(A,a)));const L=X(A);if(_(f)&&!T&&d&&N==s&&O(L)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(L))if(U(w,a)){if(await I(D([e,...L],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),l==Tt&&!U(_a(y,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 E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(L,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...L])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N)+`AND(${Wa(e)}=${o([1])})`,[n]);else if(!O(L)){const i=C(W(t),m);O(i)||await l(E,a,e,i,{[n]:D(i,a=>r?r(t[a]):t[a])},o,$)}}));else if(O(L))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>r?r(a?.[t]):a?.[t])),M(s,e)}),await l(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N)+`AND${Wa(e)}NOT IN(${ka(s,o)})`,s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),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())},Nt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v,f)=>{const[m,A,L,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),la((await A(o,l))[ga]?.[r]??"null"))),a=>$(async()=>{await m(),await L(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,A,L,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,A,L,$,O),g=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(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))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(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(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(dt,o),{load:r,save:u}=l,d=[yt(r),yt(u),l[ct],wt(r),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[rt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[lt]:0,[rt]:null},ct,(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()&&La(0),(h?Nt:vt)(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!=A||i!=L||c!=$)){const o=t&&!s&&!E(A);A=e,L=i,$=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(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),At=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),Lt=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+L((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=$t(i+"tinybase_tables"),r=$t(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=Lt(),e=Lt(),n=ua(),i=mt(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,Lt);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))Aa(a,r,u);else{const t=ia(a[0],i,Lt);Aa(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);Aa(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);K(e[0],o,[d,r,u])}}),b(mt(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)?Aa(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{At as createDurableObjectSqlStoragePersister};
|
|
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,m=a=>Array.isArray(a),$=a=>a.length,N=a=>0==$(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),g=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=$(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),q=async(a,t)=>{try{return await a()}finally{await t()}},B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(p(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return g(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>g(oa(a),n=>t(a[n],n)),fa=(a,t)=>p(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},ma=a=>$(oa(a)),$a=a=>ca(a)&&0==ma(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),ga=(a,t)=>{const n=[];return ha(a,(a,e)=>D(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=Aa(a,t);return I(a,t)?e?.(i):Oa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?pa:Aa)(a,t[i],i>$(t)-2?n:_a),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return S(s)&&Oa(a,t[i]),r}),ba=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ia="ColumnName",Sa="store",Ra="json",La=Sa+"TableName",Ca=Sa+"Id"+Ia,Ma=Sa+Ia,Pa="autoLoadIntervalSeconds",Fa="rowId"+Ia,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>m(a)?a:void 0,Ya=a=>d(a)||m(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=ma(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Oa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:m(a)?p(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,I=0,R=0,L=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;pa(Va,w,()=>0),pa(Wa,w,()=>[]),Oa(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]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(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)&&$(a)<1e3&&D(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(g(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):g([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>C(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 Oa(s,w,[i,r,c,o,l]),Da(Ta(r,c??[n],ba),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),Oa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?g(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(Oa(Va,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>q(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await q(async()=>{ta(1),I++,await Ea(()=>F(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==L&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await q(async()=>{ta(1),I++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await q(()=>ra(a),()=>{n=!1})}return ma},wa=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await sa(q(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await q(()=>q(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&F(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await q(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():D(Aa(Wa,w),...p(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await q(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){Oa(Va,w,1);const a=Aa(Wa,w);let t=0;await q(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),Oa(Va,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:L;await r;const o=e(a),l=t?L:k;try{await o}catch(a){throw l==(t?L:k)&&await x(s),c==(t?k:L)&&await x(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=T(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;b(a),D(a,...t),await q(()=>q(()=>q(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await _,ma)};return la(ma)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{L(y),L(d),g(await i(v,n),({tn:a,cn:t,uq:n})=>{Da(pa(y,a,ba),t),n&&Da(pa(d,a,ba),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ba(e);return((a,t)=>I(Aa(y,a),t))(a,t)?ya(T(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(T(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const $=u(m)?void 0:ba(m),_=a=>u($)||I($,a),A=ba();va(i??{},a=>g(T(oa(a??{}),_),a=>Da(A,a)));const b=R(A);if(u($)&&!f&&w&&E==s&&N(b)&&I(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const S=Aa(y,a),L=ba(T(R(S),a=>a==n||_(a)));if(!N(b))if(I(y,a)){if(await h(p([n,...b],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Da(S,t))})),c==et&&!I(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(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)})`),Da(pa(d,a,ba),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(p(b,a=>e+aa(a)+r))});`),Oa(y,a,ba([n,...b])),Oa(d,a,ba([n]));if(await h([...!f&&l?p(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(S,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(b)){const i=T(oa(t),_);N(i)||await c(v,a,n,i,{[e]:p(i,a=>o?o(t[a]):t[a])},S)}}));else if(N(b))u($)&&I(y,a)&&await v(z+aa(a)+na(a,E));else{const t=T(R(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])),D(s,n)}),await c(v,a,n,t,e,S),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 q(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(p(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(p(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,N)=>{const[_,A,h,g]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>g(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>g(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,N,_,A,g,O)=>{const[b,D,I,S]=nt(t,f,E,N,_,A,g,O),R=(a,t)=>h(ga(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)})),L=(a,t,n)=>ya(1==n?T(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await b();const a=await(async()=>ya(T(await h(ga(c,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await D(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await b(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},rt=(a,e,i,r,o,l,y,v,f,m,$="getDb",N,_)=>{let A,h,g;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Sa],ba(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=ba(y),v=ba(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>I(v,a),a=>Da(d,a)),m=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>I(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=g)){const c=t&&!s&&!w(A);A=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=q(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await q(async()=>await n,async()=>{A=h=g=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),m,$,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>g(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{ct as createElectricSqlPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),g=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=N(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),q=async(a,t)=>{try{return await a()}finally{await t()}},B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>O(p(a,()=>t(n)),e),ea=(a,t=s)=>k+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return g(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>g(la(a),n=>t(a[n],n)),Ea=(a,t)=>p(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),ga=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ga(a,(a,e)=>D(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return I(a,t)?e?.(i):pa(a,t,i=n()),i},ba=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ba(s,t,n,e,i+1);return S(s)&&pa(a,t[i]),r}),Da=a=>new Set(m(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+Sa,Pa=Ra+Sa,Fa="autoLoadIntervalSeconds",xa="rowId"+Sa,qa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(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},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?p(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,I=0,R=0,L=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),pa(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(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=>{Va.test(t)&&N(a)<1e3&&D(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(g(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):g([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>ha(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(ba(r,c??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(ba(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),pa(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?g(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(pa(Wa,w),pa(Za,w),pa(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>q(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await q(async()=>{ta(1),I++,await Ea(()=>F(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==L&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await q(async()=>{ta(1),I++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await q(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await sa(q(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await q(()=>q(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&F(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await q(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():D(ha(Za,w),...p(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await q(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){pa(Wa,w,1);const a=ha(Za,w);let t=0;await q(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),pa(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:L;await r;const o=e(a),l=t?L:k;try{await o}catch(a){throw l==(t?L:k)&&await x(s),c==(t?k:L)&&await x(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=T(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;b(a),D(a,...t),await q(()=>q(()=>q(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;pa(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{L(d),L(v),g(await i(f,n),({tn:a,cn:t,uq:n})=>{Ia(Ta(d,a,Da),t),n&&Ia(Ta(v,a,Da),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Da(e);return((a,t)=>I(ha(d,a),t))(a,t)?da(T(p(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(T(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Da(N),A=a=>u(_)||I(_,a),b=Da();fa(i??{},a=>g(T(la(a??{}),A),a=>Ia(b,a)));const S=R(b);if(u(_)&&!E&&y&&m==s&&$(S)&&I(d,a))return await f("DROP "+J+aa(a)),pa(d,a),void pa(v,a);const L=ha(d,a),C=Da(T(R(L),a=>a==n||A(a)));if(!$(S))if(I(d,a)){if(await h(p([n,...S],async t=>{M(C,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Ia(L,t))})),o==it&&!I(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Ia(Ta(v,a,Da),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(p(S,a=>e+aa(a)+r))});`),pa(d,a,Da([n,...S])),pa(v,a,Da([n]));if(await h([...!E&&w?p(R(C),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),M(L,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(S)){const i=T(la(t),A);$(i)||await o(f,a,n,i,{[e]:p(i,a=>l?l(t[a]):t[a])},c,L)}}));else if($(S))u(_)&&I(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=T(R(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,p(t,t=>l?l(a?.[t]):a?.[t])),D(s,n)}),await o(f,a,n,t,e,c,L),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await q(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(p(a,aa),e))(n,...i)+")VALUES"+O(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(p(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,g,O]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>O(async()=>{return await A(),a=(await h(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await g(c,o,{[B]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,g,O,b)=>{const[D,I,S,R]=et(t,f,E,$,_,A,g,O,b),L=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),C=(a,t,n)=>da(1==n?T(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await S(y,U,{[B]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>R(async()=>{await D();const a=await(async()=>da(T(await h(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await D(),u(t)){const[t,n]=a();await L(t),await M(n)}else await L(t[0],!0),await M(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,g;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??U,n[Pa]??Ra],Da(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Da(y),v=Da(y),f=Ga(i,{[qa]:null,[xa]:U,[ka]:s},qa,a=>I(v,a),a=>Ia(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>I(v,t),(a,t)=>Ia(d,t));return ga(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?st:rt)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=g)){const c=t&&!s&&!w(A);A=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=q(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await q(async()=>await n,async()=>{A=h=g=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>g(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{ot as createElectricSqlPersister};
|
|
Binary file
|