tinybase 10.0.0-beta.1 → 10.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/common/index.d.ts +1 -0
- package/@types/common/with-schemas/index.d.ts +1 -0
- package/@types/indexes/index.d.ts +1 -0
- package/@types/indexes/with-schemas/index.d.ts +1 -0
- package/@types/metrics/index.d.ts +1 -0
- package/@types/metrics/with-schemas/index.d.ts +1 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/persisters/index.d.ts +1 -0
- package/@types/persisters/persister-partykit-server/index.d.ts +17 -0
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +17 -0
- package/@types/persisters/persister-tinyjoin/index.d.ts +197 -0
- package/@types/persisters/persister-tinyjoin/with-schemas/index.d.ts +221 -0
- package/@types/persisters/with-schemas/index.d.ts +1 -0
- package/@types/queries/index.d.ts +3 -0
- package/@types/queries/with-schemas/index.d.ts +3 -0
- package/@types/relationships/index.d.ts +1 -0
- package/@types/relationships/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +4 -0
- package/@types/store/with-schemas/index.d.ts +4 -0
- package/@types/ui-react/index.d.ts +2 -0
- package/@types/ui-react/with-schemas/index.d.ts +1 -0
- package/@types/ui-react-dom-charts/index.d.ts +7 -0
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -0
- package/@types/ui-solid/index.d.ts +2 -0
- package/@types/ui-solid/with-schemas/index.d.ts +1 -0
- package/@types/ui-svelte/index.d.ts +23 -0
- package/@types/ui-svelte/with-schemas/index.d.ts +23 -0
- package/@types/ui-svelte-dom/index.d.ts +10 -0
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -0
- package/@types/ui-svelte-inspector/index.d.ts +1 -0
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -1
- 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-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 -1
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -1
- 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-node/index.js +1 -1
- package/min/persisters/persister-sqlite-node/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-node/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-tinyjoin/index.js +1 -0
- package/min/persisters/persister-tinyjoin/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js +1 -0
- package/min/persisters/persister-tinyjoin/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 +146 -66
- package/omni/with-schemas/index.js +146 -66
- package/package.json +41 -1
- package/persisters/index.js +28 -13
- package/persisters/persister-better-sqlite3/index.js +70 -55
- package/persisters/persister-better-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-durable-object-sql-storage/index.js +28 -13
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +28 -13
- package/persisters/persister-electric-sql/index.js +70 -55
- package/persisters/persister-electric-sql/with-schemas/index.js +70 -55
- package/persisters/persister-expo-sqlite/index.js +70 -55
- package/persisters/persister-expo-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-libsql/index.js +70 -55
- package/persisters/persister-libsql/with-schemas/index.js +70 -55
- package/persisters/persister-pg/index.js +77 -62
- package/persisters/persister-pg/with-schemas/index.js +77 -62
- package/persisters/persister-pglite/index.js +28 -13
- package/persisters/persister-pglite/with-schemas/index.js +28 -13
- package/persisters/persister-postgres/index.js +28 -13
- package/persisters/persister-postgres/with-schemas/index.js +28 -13
- package/persisters/persister-powersync/index.js +81 -66
- package/persisters/persister-powersync/with-schemas/index.js +81 -66
- package/persisters/persister-react-native-sqlite/index.js +70 -55
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-bun/index.js +70 -55
- package/persisters/persister-sqlite-bun/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-node/index.js +70 -55
- package/persisters/persister-sqlite-node/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-wasm/index.js +70 -55
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite3/index.js +70 -55
- package/persisters/persister-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-tinyjoin/index.js +1710 -0
- package/persisters/persister-tinyjoin/with-schemas/index.js +1710 -0
- package/persisters/with-schemas/index.js +28 -13
- package/readme.md +3 -3
- package/releases.md +20 -1
|
@@ -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),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(l),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),S=(a,t)=>a?.forEach(t),I=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(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=>!l(a)&&v(ra(a),a=>a==sa.prototype||l(ra(a)),()=>!0),wa=sa.keys,la=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(wa(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(wa(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>S(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(I(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Sa=(a,t,n,e,i=0)=>f((n?ga:ha)(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=Sa(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Ia=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,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=(l=ua(t,E(a)?{[n]:a}:a),o=sa.values(l),w=Na(t),o.slice(0,w));var o,w,l;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={},w=0,l=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;ga(Wa,l,()=>0),ga(Za,l,()=>[]),Ta(at,l,(ha(at,l)??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,w),[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&&q(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)?q(e,a):y(t[n])?S(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>S(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=[],w=()=>[])=>{t??=a();const l=e(1);return Ta(s,l,[i,r,c,o,w]),Da(Sa(r,c??[n],Ia),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Sa(t,e??[n],void 0,t=>(I(t,a),p(t)?1:0)),Ta(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])?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!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,l)||ha(Wa,l)||!$(ha(Za,l)??[])||(Ta(Wa,l),Ta(Za,l),Ta(at,l))},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!=O&&(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=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},wa=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>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)&&R(()=>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 L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():q(ha(Za,l),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,l)){Ta(Wa,l,1);const a=ha(Za,l);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,l,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:M;await r;const o=e(a),w=t?M:k;try{await o}catch(a){throw w==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,l),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,l)??1)-1;Ta(at,l,a||void 0),na()})})()),await _,ma)};return la(ma)},nt=new w.TextEncoder,et=(a,n,i,r,c,o=it,w,l,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,Ia),t),n&&Da(ga(v,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=l?ma(va(a,t),l):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Ia(N),A=a=>u(_)||O(_,a),p=Ia();fa(i??{},a=>C(F(wa(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(_)&&!E&&y&&m==s&&$(g)&&O(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const S=ha(d,a),D=Ia(F(T(S),a=>a==n||A(a)));if(!$(g))if(O(d,a)){if(await h(P([n,...g],async t=>{I(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(S,t))})),o==it&&!O(ha(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,Ia),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Ia([n,...g])),Ta(v,a,Ia([n]));if(await h([...!E&&l?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),I(S,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(!$(g)){const i=F(wa(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>w?w(t[a]):t[a])},c,S)}}));else if($(g))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>w?w(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,S),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,w],l,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,l,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[B]?.[w]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[B]:{[w]:(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,[w,l,y,d,v]],f,E,m,N,$,_,A,O,p,T)=>{const[g,S,I,D]=et(t,f,E,$,_,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,w;t&&(o=a,w=c,!sa.hasOwn(o,w))||await I(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)=>l?await I(y,U,{[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 h(pa(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>w?(await S(y,U,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,w,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,w),[S,I,R,C]=(a=>{const n=(a=>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]??ba],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:w,save:l}=o,u=[za(w),za(l),o[Ba],Ya(w),Ya(l)],y=u[2],d=Ia(y),v=Ia(y),f=Ga(i,{[qa]:null,[xa]:U,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?st:rt)(a,g,a=>{let t,n,e=1,i=0,s=0;const w=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!l(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await w():(await w(!1),i=1);e&&s;)s=0,await w(!1),e&&(await a(),await w())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*I)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${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.executeSql(a,n))[0].rows.raw(),_,_,e,i,_,3,t);export{ot as createReactNativeSqlitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(l),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),S=(a,t)=>a?.forEach(t),I=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=$(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B=Object,U=a=>B.getPrototypeOf(a),j=B.entries,k=a=>!l(a)&&v(U(a),a=>a==B.prototype||l(U(a)),()=>!0),J=B.keys,X=B.freeze,Y=(...a)=>B.assign(B.create(null),...a),z=(a,t,n)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=B.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(j(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>k(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,wa="pragma_",la="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>S(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(I(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Sa=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Sa(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Ia=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,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 K(a,(a,r)=>{const c=(l=Y(t,E(a)?{[n]:a}:a),o=B.values(l),w=W(t),o.slice(0,w));var o,w,l;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):k(a)?V(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},w=0,l=[])=>{let d,v,E,N,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const Y={},z=o.destroy;ga(Wa,l,()=>0),ga(Za,l,()=>[]),Ta(at,l,(ha(at,l)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,w),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&q(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?q(e,a):y(t[n])?S(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>S(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=[],w=()=>[])=>{t??=a();const l=e(1);return Ta(s,l,[i,r,c,o,w]),Da(Sa(r,c??[n],Ia),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Sa(t,e??[n],void 0,t=>(I(t,a),p(t)?1:0)),Ta(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,l)||ha(Wa,l)||!_(ha(Za,l)??[])||(Ta(Wa,l),Ta(Za,l),Ta(at,l))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=O&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),wa=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await oa())},la=async a=>{const t=++M;let n=!0;if(await ua(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&U--,--B||ea(0)}),B||await ra()}else 2==O?j=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=O&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),wa),$a),da=async()=>{const t=++k;return await va(!0),t!=k||J||(await ya(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():q(ha(Za,l),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,l)){Ta(Wa,l,1);const a=ha(Za,l);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,l,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:la,stopAutoLoad:ua,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,ua]:[la,da,ua,va],r=n(a),c=t?k:M;await r;const o=e(a),w=t?M:k;try{await o}catch(a){throw w==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=ha(Za,l),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,l)??1)-1;Ta(at,l,a||void 0),ia()})})()),await N,$a)};return X($a)},nt=new w.TextEncoder,et=(a,n,i,r,c,o=it,w,l,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,Ia),t),n&&Da(ga(v,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(ha(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=l?V(H(a,t),l):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,l,y,E=!1,m=s,$)=>{const N=u($)?void 0:Ia($),A=a=>u(N)||O(N,a),p=Ia();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(N)&&!E&&y&&m==s&&_(g)&&O(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const S=ha(d,a),D=Ia(F(T(S),a=>a==n||A(a)));if(!_(g))if(O(d,a)){if(await h(P([n,...g],async t=>{I(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(S,t))})),o==it&&!O(ha(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Ia),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Ia([n,...g])),Ta(v,a,Ia([n]));if(await h([...!E&&l?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),I(S,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await h(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(t),A);_(i)||await o(f,a,n,i,{[e]:P(i,a=>w?w(t[a]):t[a])},c,S)}}));else if(_(g))u(N)&&O(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>w?w(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,S),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,w],l,y,d,v,f,E,m,$,_,N)=>{const[A,h,O,p]=et(t,l,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[aa]?.[w]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[aa]:{[w]:(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,[w,l,y,d,v]],f,E,m,$,_,N,A,O,p,T)=>{const[g,S,I,D]=et(t,f,E,_,N,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,w;t&&(o=a,w=c,!B.hasOwn(o,w))||await I(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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)=>l?await I(y,ta,{[aa]: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()=>G(F(await h(pa(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await S(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,w,y,v,f,m,$="getDb",_,N)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,w),[S,I,R,C]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??ba],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(Xa,c),{load:w,save:l}=o,u=[za(w),za(l),o[Ba],Ya(w),Ya(l)],y=u[2],d=Ia(y),v=Ia(y),f=Ga(i,{[qa]:null,[xa]:ta,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:ta,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?st:rt)(a,g,a=>{let t,n,e=1,i=0,s=0;const w=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(na+` ${la} d,${ua} s,TOTAL_CHANGES() c FROM ${wa}${la} JOIN ${wa}${ua}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!l(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await w():(await w(!1),i=1);e&&s;)s=0,await w(!1),e&&(await a(),await w())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*I)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${wa}index_list(t.name)i,${wa}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${wa}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>(await t.executeSql(a,n))[0].rows.raw(),N,N,e,i,N,3,t);export{ot as createReactNativeSqlitePersister};
|
|
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),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(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 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),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(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=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(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,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]),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,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(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]: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&&q(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)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 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(ha(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(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])?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!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(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!=O&&(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=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>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)&&R(()=>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 L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(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?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(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)=>O(ha(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)||O(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(_)||O(_,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)&&O(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(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 h([...!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 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(!$(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(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(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])),q(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,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(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,O,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,O,p,T),R=(a,t)=>h(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,U,{[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 h(pa(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)=>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,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>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]??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,{[qa]:null,[xa]:U,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(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(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${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=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteBunPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=$(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B=Object,U=a=>B.getPrototypeOf(a),j=B.entries,k=a=>!w(a)&&v(U(a),a=>a==B.prototype||w(U(a)),()=>!0),J=B.keys,X=B.freeze,Y=(...a)=>B.assign(B.create(null),...a),z=(a,t,n)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=B.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(j(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>k(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(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=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(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,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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=B.values(w),l=W(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):k(a)?V(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,N,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&q(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 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(ha(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(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!_(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=O&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&U--,--B||ea(0)}),B||await ra()}else 2==O?j=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=O&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++k;return await va(!0),t!=k||J||(await ya(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>O(ha(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||O(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(N)&&!E&&y&&m==s&&_(g)&&O(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!O(ha(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await h([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await h(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&O(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,I),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,O,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[aa]:{[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,O,p,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!B.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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,{[qa]:null,[xa]:ta,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:ta,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.query(a).all(...n),()=>N,a=>a(),e,i,N,3,t);export{ot as createSqliteBunPersister};
|
|
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),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(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 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),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(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=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(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,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]),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,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(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]: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&&q(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)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 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(ha(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(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])?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!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(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!=O&&(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=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>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)&&R(()=>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 L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(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?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(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)=>O(ha(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)||O(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(_)||O(_,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)&&O(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(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 h([...!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 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(!$(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(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(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])),q(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,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(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,O,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,O,p,T),R=(a,t)=>h(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,U,{[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 h(pa(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)=>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,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>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]??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,{[qa]:null,[xa]:U,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(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(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${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=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteBunPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=$(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B=Object,U=a=>B.getPrototypeOf(a),j=B.entries,k=a=>!w(a)&&v(U(a),a=>a==B.prototype||w(U(a)),()=>!0),J=B.keys,X=B.freeze,Y=(...a)=>B.assign(B.create(null),...a),z=(a,t,n)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=B.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(j(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>k(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(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=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(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,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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=B.values(w),l=W(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):k(a)?V(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,N,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&q(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 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(ha(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(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!_(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=O&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&U--,--B||ea(0)}),B||await ra()}else 2==O?j=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=O&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++k;return await va(!0),t!=k||J||(await ya(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>O(ha(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||O(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(N)&&!E&&y&&m==s&&_(g)&&O(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!O(ha(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await h([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await h(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&O(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,I),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,O,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[aa]:{[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,O,p,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!B.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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,{[qa]:null,[xa]:ta,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:ta,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.query(a).all(...n),()=>N,a=>a(),e,i,N,3,t);export{ot as createSqliteBunPersister};
|
|
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),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=[])=>t.prepare(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteNodePersister};
|
|
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,_=a=>0==$(a),N=()=>{},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=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(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>$(t)-2?n:Aa),s=>{if(i>$(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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(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):q(a)?V(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,N,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&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==$(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=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{pa(at,w)||pa(Wa,w)||!_(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==$(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,Y]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),O=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(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(sa+fa(a)+"ADD"+fa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(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(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await p(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(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(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,N);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,_,N,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,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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]:ta,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);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(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.prepare(a).all(...n),()=>N,a=>a(),e,i,N,3,t);export{ot as createSqliteNodePersister};
|
|
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),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=[])=>t.prepare(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteNodePersister};
|
|
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,_=a=>0==$(a),N=()=>{},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=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(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>$(t)-2?n:Aa),s=>{if(i>$(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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(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):q(a)?V(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,N,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&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==$(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=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{pa(at,w)||pa(Wa,w)||!_(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==$(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,Y]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),O=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(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(sa+fa(a)+"ADD"+fa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(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(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await p(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(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(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,N);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,_,N,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,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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]:ta,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);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(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.prepare(a).all(...n),()=>N,a=>a(),e,i,N,3,t);export{ot as createSqliteNodePersister};
|
|
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),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),$=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ea=(a,t=s)=>U+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),oa=sa.entries,ca=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 h(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>h(la(a),n=>t(a[n],n)),Ea=(a,t)=>T(oa(a),([a,n])=>t(n,a)),_a=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},ma=a=>m(la(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,pa=a=>new $a(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:pa),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return D(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+Da,Pa=Ra+Da,Fa="autoLoadIntervalSeconds",xa="rowId"+Da,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=pa();return fa(a,(a,r)=>{const o=(w=ua(t,E(a)?{[n]:a}:a),c=sa.values(w),l=ma(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):ca(a)?_a(a,Va):a,Qa=/^\d+$/,Wa=pa(),Za=pa(),at=pa(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,$,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Aa(at,w)??0)+1);const z=pa(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&S(a,t)}]})(),s=pa(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([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=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(at,w)||Aa(Wa,w)||!N(Aa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await 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||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},la=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():S(Aa(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!Aa(Wa,w)){Ta(Wa,w,1);const a=Aa(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,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,ca,da,la]:[ca,ya,la,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u($)&&(J=1,$=(async()=>{const a=Aa(Za,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await $,_a)};return wa(_a)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=pa(),v=pa();let f=a;return[async()=>{L(d),L(v),h(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(Aa(d,a),t))(a,t)?da(g(T(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?_a(va(a,t),w):va(a,t);return[n,u(i)?e:da(g(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const $=u(m)?void 0:Sa(m),p=a=>u($)||b($,a),I=Sa();fa(i??{},a=>h(g(la(a??{}),p),a=>ba(I,a)));const D=R(I);if(u($)&&!E&&y&&_==s&&N(D)&&b(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const L=Aa(d,a),C=Sa(g(R(L),a=>a==n||p(a)));if(!N(D))if(b(d,a)){if(await A(T([n,...D],async t=>{M(C,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),ba(L,t))})),c==it&&!b(Aa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(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)})`),ba(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(D,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...D])),Ta(v,a,Sa([n]));if(await A([...!E&&w?T(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,_)):await A(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,_)+`AND(${aa(n)}=${o([1])})`,[e]);else if(!N(D)){const i=g(la(t),p);N(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if(N(D))u($)&&b(d,a)&&await f(z+aa(a)+ea(a,_));else{const t=g(R(Aa(d,a)),a=>a!=n&&p(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(z+aa(a)+ea(a,_)+`AND${aa(n)}NOT IN(${na(s,o)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(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 o=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(Ea(s,a=>"("+r(o)+","+na(a,r,o)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,N,$)=>{const[p,A,h,O]=et(t,w,y,f,E,_,void 0,void 0,$);return tt(a,()=>O(async()=>{return await p(),a=(await A(o,c))[q]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await p(),await h(o,c,{[q]:{[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,[o,c,[l,w,y,d,v]],f,E,_,m,N,$,p,h,O,I)=>{const[S,b,D,R]=et(t,f,E,N,$,p,h,O,I),L=(a,t)=>A(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!sa.hasOwn(c,l))||await D(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>da(1==n?g(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await D(y,j,{[q]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>R(async()=>{await S();const a=await(async()=>da(g(await A(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>l?(await b(y,j,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),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,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",N,$)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>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]??Ra],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=ua(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:j,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:j,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return ha(_,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?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(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),_,m,n,ta,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,$,0),i,s,$,3,n);export{ct as createSqliteWasmPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,$=a=>0==m(a),p=()=>{},N=a=>new o(a),h=async a=>o.all(a),A=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,R=a=>u(a)||0==(a=>a?.size??0)(a),D=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q=Object,j=a=>q.getPrototypeOf(a),B=q.entries,U=a=>!w(a)&&v(j(a),a=>a==q.prototype||w(j(a)),()=>!0),J=q.keys,X=q.freeze,Y=(...a)=>q.assign(q.create(null),...a),z=(a,t,n)=>(q.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=q.create(null);return A(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>A(J(a),n=>t(a[n],n)),V=(a,t)=>T(B(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>m(J(a)),Z=a=>U(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",oa="DELETE "+ra,ca=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",_a=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ma=(a,t=s,e)=>{const i=g([t==s?void 0:`(${$a(t,fa(a))})`,e],a=>!u(a));return $(i)?n:ea+O(i,"AND")},$a=(a,t)=>r(a,va,t),pa=Map,Na=a=>new pa(a),ha=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return R(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Ra="ColumnName",Da="store",La="json",Ca=Da+"TableName",Ma=Da+"Id"+Ra,Pa=Da+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=Na();return K(a,(a,r)=>{const o=(w=Y(t,E(a)?{[n]:a}:a),c=q.values(w),l=W(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):U(a)?Q(a,Va):a,Qa=/^\d+$/,Wa=Na(),Za=Na(),at=Na(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,p,h,O=0,b=0,D=0,L=0,q=0,j=0,B=0,U=0,J=0;const Y={},z=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const G=Na(),[H,K,V,Q,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:P(0))(o,a,l),[aa,ta,na]=(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&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(A(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):A([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=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),R(t)?1:0)),Ta(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?A(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},oa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=O&&(await k(async()=>{ea(1),b++,await _a(()=>F(async()=>{const n=await t();_(n)?sa(n):u(n)&&a?W(a):u(n)||P(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),ma),la=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ca())},wa=async a=>{const t=++L;let n=!0;if(await ua(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ea(1),b++,await(t?_a(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--q||ea(0)}),q||await ra()}else 2==O?B=t:await ca()});t!=L||J?u(a)||await s(a):d=a},r);await oa(e),t!=L||J||await k(()=>ca(a),()=>{n=!1})}return ma},ua=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await oa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ya=async a=>(1!=O&&await k(()=>k(async()=>{ea(2),D++,await _a(()=>F(()=>e(K,a),r))},()=>ea(0)),la),ma),da=async()=>{const t=++U;return await va(!0),t!=U||J||(await ya(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=V();Q(a)&&F(()=>ya(a))}}))),ma},va=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await k(()=>t(),async()=>{await n()}),ma},_a=async(...a)=>{let t,n=!1;const e=N(e=>$(a)?e():S(ha(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;h=N(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return ma},ma={load:ca,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return ma},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:_a,getStore:()=>a,getStats:()=>({loads:b,saves:D}),...c,destroy:async()=>(u(p)&&(J=1,p=(async()=>{const a=ha(Za,w),t=g(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;I(a),S(a,...t),await k(()=>k(()=>k(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await p,ma)};return X(ma)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=Na(),v=Na();let f=a;return[async()=>{L(d),L(v),A(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(ha(d,a),t))(a,t)?G(g(T(await f(ca+fa(a)+ma(a,n)),a=>{const n=a[t],e=w?Q(H(a,t),w):H(a,t);return[n,u(i)?e:G(g(V(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const p=u(m)?void 0:Sa(m),N=a=>u(p)||b(p,a),I=Sa();K(i??{},a=>A(g(J(a??{}),N),a=>ba(I,a)));const R=D(I);if(u(p)&&!E&&y&&_==s&&$(R)&&b(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const L=ha(d,a),C=Sa(g(D(L),a=>a==n||N(a)));if(!$(R))if(b(d,a)){if(await h(T([n,...R],async t=>{M(C,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),ba(L,t))})),c==it&&!b(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return A(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),ba(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${O(T(R,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...R])),Ta(v,a,Sa([n]));if(await h([...!E&&w?T(D(C),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),M(L,t))}):[]]),E)u(i)?u(p)&&await f(oa+fa(a)+ma(a,_)):await h(V(i,async(t,e)=>{if(u(t))await f(oa+fa(a)+ma(a,_,`(${fa(n)}=${o([1])})`),[e]);else if(!$(R)){const i=g(J(t),N);$(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if($(R))u(p)&&b(d,a)&&await f(oa+fa(a)+ma(a,_));else{const t=g(D(ha(d,a)),a=>a!=n&&N(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(oa+fa(a)+ma(a,_,`${fa(n)}NOT IN(${_a(s,o)})`),s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(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 o=[1];await a("INSERT INTO"+fa(t)+"("+((...a)=>O(T(a,fa),e))(n,...i)+")VALUES"+O(V(s,a=>"("+r(o)+","+_a(a,r,o)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+O(T(i,a=>fa(a)+"=excluded."+fa(a)),e),V(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,$,p)=>{const[N,h,A,O]=et(t,w,y,f,E,_,void 0,void 0,p);return tt(a,()=>O(async()=>{return await N(),a=(await h(o,c))[aa]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await N(),await A(o,c,{[aa]:{[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,[o,c,[l,w,y,d,v]],f,E,_,m,$,p,N,A,O,I)=>{const[S,b,R,D]=et(t,f,E,$,p,N,A,O,I),L=(a,t)=>h(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!q.hasOwn(c,l))||await R(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>G(1==n?g(V(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,ta,{[aa]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await S();const a=await(async()=>G(g(await h(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await b(y,ta,void 0,d))[aa]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await S(),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,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",$,p)=>{let N,h,A;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??Da],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=Y(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:ta,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:ta,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return Aa(_,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=N||i!=h||r!=A)){const o=t&&!s&&!w(N);N=n,h=i,A=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{N=h=A=null,await c(f)})})},a=>a(),y,v,f,I,D(S),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_a(t,Ea)})ORDER BY t.name,c.name`,t),_,m,n,Ea,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,p)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,p,0),i,s,p,3,n);export{ct as createSqliteWasmPersister};
|
|
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),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),$=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ea=(a,t=s)=>U+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),oa=sa.entries,ca=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 h(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>h(la(a),n=>t(a[n],n)),Ea=(a,t)=>T(oa(a),([a,n])=>t(n,a)),_a=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},ma=a=>m(la(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,pa=a=>new $a(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:pa),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return D(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+Da,Pa=Ra+Da,Fa="autoLoadIntervalSeconds",xa="rowId"+Da,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=pa();return fa(a,(a,r)=>{const o=(w=ua(t,E(a)?{[n]:a}:a),c=sa.values(w),l=ma(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):ca(a)?_a(a,Va):a,Qa=/^\d+$/,Wa=pa(),Za=pa(),at=pa(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,$,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Aa(at,w)??0)+1);const z=pa(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&S(a,t)}]})(),s=pa(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([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=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(at,w)||Aa(Wa,w)||!N(Aa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await 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||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},la=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():S(Aa(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!Aa(Wa,w)){Ta(Wa,w,1);const a=Aa(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,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,ca,da,la]:[ca,ya,la,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u($)&&(J=1,$=(async()=>{const a=Aa(Za,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await $,_a)};return wa(_a)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=pa(),v=pa();let f=a;return[async()=>{L(d),L(v),h(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(Aa(d,a),t))(a,t)?da(g(T(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?_a(va(a,t),w):va(a,t);return[n,u(i)?e:da(g(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const $=u(m)?void 0:Sa(m),p=a=>u($)||b($,a),I=Sa();fa(i??{},a=>h(g(la(a??{}),p),a=>ba(I,a)));const D=R(I);if(u($)&&!E&&y&&_==s&&N(D)&&b(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const L=Aa(d,a),C=Sa(g(R(L),a=>a==n||p(a)));if(!N(D))if(b(d,a)){if(await A(T([n,...D],async t=>{M(C,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),ba(L,t))})),c==it&&!b(Aa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(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)})`),ba(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(D,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...D])),Ta(v,a,Sa([n]));if(await A([...!E&&w?T(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,_)):await A(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,_)+`AND(${aa(n)}=${o([1])})`,[e]);else if(!N(D)){const i=g(la(t),p);N(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if(N(D))u($)&&b(d,a)&&await f(z+aa(a)+ea(a,_));else{const t=g(R(Aa(d,a)),a=>a!=n&&p(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(z+aa(a)+ea(a,_)+`AND${aa(n)}NOT IN(${na(s,o)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(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 o=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(Ea(s,a=>"("+r(o)+","+na(a,r,o)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,N,$)=>{const[p,A,h,O]=et(t,w,y,f,E,_,void 0,void 0,$);return tt(a,()=>O(async()=>{return await p(),a=(await A(o,c))[q]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await p(),await h(o,c,{[q]:{[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,[o,c,[l,w,y,d,v]],f,E,_,m,N,$,p,h,O,I)=>{const[S,b,D,R]=et(t,f,E,N,$,p,h,O,I),L=(a,t)=>A(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!sa.hasOwn(c,l))||await D(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>da(1==n?g(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await D(y,j,{[q]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>R(async()=>{await S();const a=await(async()=>da(g(await A(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>l?(await b(y,j,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),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,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",N,$)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>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]??Ra],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=ua(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:j,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:j,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return ha(_,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?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(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),_,m,n,ta,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,$,0),i,s,$,3,n);export{ct as createSqliteWasmPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,$=a=>0==m(a),p=()=>{},N=a=>new o(a),h=async a=>o.all(a),A=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,R=a=>u(a)||0==(a=>a?.size??0)(a),D=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q=Object,j=a=>q.getPrototypeOf(a),B=q.entries,U=a=>!w(a)&&v(j(a),a=>a==q.prototype||w(j(a)),()=>!0),J=q.keys,X=q.freeze,Y=(...a)=>q.assign(q.create(null),...a),z=(a,t,n)=>(q.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=q.create(null);return A(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>A(J(a),n=>t(a[n],n)),V=(a,t)=>T(B(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>m(J(a)),Z=a=>U(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",oa="DELETE "+ra,ca=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",_a=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ma=(a,t=s,e)=>{const i=g([t==s?void 0:`(${$a(t,fa(a))})`,e],a=>!u(a));return $(i)?n:ea+O(i,"AND")},$a=(a,t)=>r(a,va,t),pa=Map,Na=a=>new pa(a),ha=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return R(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Ra="ColumnName",Da="store",La="json",Ca=Da+"TableName",Ma=Da+"Id"+Ra,Pa=Da+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=Na();return K(a,(a,r)=>{const o=(w=Y(t,E(a)?{[n]:a}:a),c=q.values(w),l=W(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):U(a)?Q(a,Va):a,Qa=/^\d+$/,Wa=Na(),Za=Na(),at=Na(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,p,h,O=0,b=0,D=0,L=0,q=0,j=0,B=0,U=0,J=0;const Y={},z=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const G=Na(),[H,K,V,Q,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:P(0))(o,a,l),[aa,ta,na]=(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&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(A(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):A([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=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),R(t)?1:0)),Ta(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?A(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},oa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=O&&(await k(async()=>{ea(1),b++,await _a(()=>F(async()=>{const n=await t();_(n)?sa(n):u(n)&&a?W(a):u(n)||P(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),ma),la=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ca())},wa=async a=>{const t=++L;let n=!0;if(await ua(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ea(1),b++,await(t?_a(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--q||ea(0)}),q||await ra()}else 2==O?B=t:await ca()});t!=L||J?u(a)||await s(a):d=a},r);await oa(e),t!=L||J||await k(()=>ca(a),()=>{n=!1})}return ma},ua=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await oa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ya=async a=>(1!=O&&await k(()=>k(async()=>{ea(2),D++,await _a(()=>F(()=>e(K,a),r))},()=>ea(0)),la),ma),da=async()=>{const t=++U;return await va(!0),t!=U||J||(await ya(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=V();Q(a)&&F(()=>ya(a))}}))),ma},va=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await k(()=>t(),async()=>{await n()}),ma},_a=async(...a)=>{let t,n=!1;const e=N(e=>$(a)?e():S(ha(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;h=N(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return ma},ma={load:ca,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return ma},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:_a,getStore:()=>a,getStats:()=>({loads:b,saves:D}),...c,destroy:async()=>(u(p)&&(J=1,p=(async()=>{const a=ha(Za,w),t=g(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;I(a),S(a,...t),await k(()=>k(()=>k(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await p,ma)};return X(ma)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=Na(),v=Na();let f=a;return[async()=>{L(d),L(v),A(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(ha(d,a),t))(a,t)?G(g(T(await f(ca+fa(a)+ma(a,n)),a=>{const n=a[t],e=w?Q(H(a,t),w):H(a,t);return[n,u(i)?e:G(g(V(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const p=u(m)?void 0:Sa(m),N=a=>u(p)||b(p,a),I=Sa();K(i??{},a=>A(g(J(a??{}),N),a=>ba(I,a)));const R=D(I);if(u(p)&&!E&&y&&_==s&&$(R)&&b(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const L=ha(d,a),C=Sa(g(D(L),a=>a==n||N(a)));if(!$(R))if(b(d,a)){if(await h(T([n,...R],async t=>{M(C,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),ba(L,t))})),c==it&&!b(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return A(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),ba(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${O(T(R,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...R])),Ta(v,a,Sa([n]));if(await h([...!E&&w?T(D(C),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),M(L,t))}):[]]),E)u(i)?u(p)&&await f(oa+fa(a)+ma(a,_)):await h(V(i,async(t,e)=>{if(u(t))await f(oa+fa(a)+ma(a,_,`(${fa(n)}=${o([1])})`),[e]);else if(!$(R)){const i=g(J(t),N);$(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if($(R))u(p)&&b(d,a)&&await f(oa+fa(a)+ma(a,_));else{const t=g(D(ha(d,a)),a=>a!=n&&N(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(oa+fa(a)+ma(a,_,`${fa(n)}NOT IN(${_a(s,o)})`),s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(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 o=[1];await a("INSERT INTO"+fa(t)+"("+((...a)=>O(T(a,fa),e))(n,...i)+")VALUES"+O(V(s,a=>"("+r(o)+","+_a(a,r,o)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+O(T(i,a=>fa(a)+"=excluded."+fa(a)),e),V(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,$,p)=>{const[N,h,A,O]=et(t,w,y,f,E,_,void 0,void 0,p);return tt(a,()=>O(async()=>{return await N(),a=(await h(o,c))[aa]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await N(),await A(o,c,{[aa]:{[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,[o,c,[l,w,y,d,v]],f,E,_,m,$,p,N,A,O,I)=>{const[S,b,R,D]=et(t,f,E,$,p,N,A,O,I),L=(a,t)=>h(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!q.hasOwn(c,l))||await R(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>G(1==n?g(V(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,ta,{[aa]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await S();const a=await(async()=>G(g(await h(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await b(y,ta,void 0,d))[aa]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await S(),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,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",$,p)=>{let N,h,A;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??Da],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=Y(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:ta,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:ta,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return Aa(_,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=N||i!=h||r!=A)){const o=t&&!s&&!w(N);N=n,h=i,A=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{N=h=A=null,await c(f)})})},a=>a(),y,v,f,I,D(S),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_a(t,Ea)})ORDER BY t.name,c.name`,t),_,m,n,Ea,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,p)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,p,0),i,s,p,3,n);export{ct as createSqliteWasmPersister};
|
|
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),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=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),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(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)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(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]),ga(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,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(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]: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(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 ga(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(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(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])?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!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(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!=O&&(await L(async()=>{ta(1),g++,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==O?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==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return 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!=O&&await L(()=>L(async()=>{ta(2),T++,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(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(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),ga(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:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;ga(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()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(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)||O(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(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(_)&&!E&&y&&m==s&&$(T)&&O(d,a))return await f("DROP "+J+aa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!$(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(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(Ta(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(T,a=>e+aa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(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 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(!$(T)){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($(T))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(g(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])),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,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(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,O,p,g)=>{const[T,I,S,D]=et(t,f,E,$,_,A,O,p,g),R=(a,t)=>h(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,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>da(F(await h(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))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),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,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>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=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${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 A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ot as createSqlite3Persister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(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},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):q(a)?V(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,N,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(ha(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&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==$(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(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 ga(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(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!_(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=O&&(await L(async()=>{ea(1),g++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ea(1),g++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==O?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=O&&await L(()=>L(async()=>{ea(2),T++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(ha(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;ga(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||O(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(N)&&!E&&y&&m==s&&_(T)&&O(d,a))return await f("DROP "+ia+fa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!_(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!O(ha(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(Ta(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(T,a=>e+fa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await h(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(T)){const i=F(J(t),A);_(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if(_(T))u(N)&&O(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(g(ha(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(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(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,O,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[aa]:{[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,O,p,g)=>{const[T,I,S,D]=et(t,f,E,_,N,A,O,p,g),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>G(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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]:ta,[qa]:s},Ba,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,N,3,t);export{ot as createSqlite3Persister};
|
|
Binary file
|