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=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,A=a=>0==m(a),v=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),D=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",Aa="TABLE",va="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+Aa,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+Aa,La="OR REPLACE ",Sa="FUNCTION",Da=/\$tableName/g,ba=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>ba(L(a,"_")),Ca=a=>"$"+a[0]++,Pa=(a,t,n=[1])=>L(S(a,()=>t(n)),e),Fa=(a,t=c)=>ma+`(${ka(t,ba(a))})`,ka=(a,t)=>i(a,Da,t),Ua=a=>new Set(N(a)||u(a)?a:[a]),Ma=(a,t)=>a?.add(t),Ga="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",ja=Ha+"Id"+Ga,xa=Ha+Ga,Ba="autoLoadIntervalSeconds",Xa="rowId"+Ga,qa="tableId",Ja="tableName",Ka="deleteEmptyColumns",za="deleteEmptyTable",Qa="condition",Va={mode:Wa,[Ba]:1},Za={load:0,save:0,[Ja]:t+"_values"},at=a=>N(a)?a:void 0,tt=a=>!0===a||N(a),nt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},et=/^\d+$/,st=ra(),ct=ra(),it=ra(),rt=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(st,l,()=>0),ya(ct,l,()=>[]),ua(it,l,(oa(it,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{v(et,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return ua(c,l,[s,i,r,o,w]),Ma(da(i,r??[n],Ua),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(it,l)||oa(st,l)||!A(oa(ct,l)??[])||(ua(st,l),ua(ct,l),ua(it,l))},ia=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await Aa()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},Aa=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),va=async()=>{const t=++j;return await fa(!0),t!=j||B||(await Aa(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>Aa(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>A(a)?e():p(oa(ct,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(st,l)){ua(st,l,1);const a=oa(ct,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),ua(st,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:Aa,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[va,Na,fa,ma]:[Na,va,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(ct,l),t=D(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;b(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(it,l)??1)-1;ua(it,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},ot=(a,n,s,i,r,o=wt,w,l,y)=>{const d=ra(),E=ra();let _=a;return[async()=>{k(d),k(E),g(await s(_,n),({tn:a,cn:t,uq:n})=>{Ma(ya(d,a,Ua),t),n&&Ma(ya(E,a,Ua),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ua(e);return((a,t)=>C(oa(d,a),t))(a,t)?q(D(S(await _(Ra+ba(a)+Fa(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(s)?e:q(D(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,v)=>{const f=u(v)?void 0:Ua(v),O=a=>u(f)||C(f,a),$=Ua();K(s??{},a=>g(D(j(a??{}),O),a=>Ma($,a)));const h=F($);if(u(f)&&!N&&y&&m==c&&A(h)&&C(d,a))return await _("DROP "+Aa+ba(a)),ua(d,a),void ua(E,a);const R=oa(d,a),I=Ua(D(F(R),a=>a==n||O(a)));if(!A(h))if(C(d,a)){if(await T(S([n,...h],async t=>{M(I,t)||(await _(Ta+ba(a)+"ADD"+ba(t)+i),Ma(R,t))})),o==wt&&!C(oa(E,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ma(ya(E,a,Ua),n)}}else await _(ga+ba(a)+`(${ba(n)}${i} PRIMARY KEY${L(S(h,a=>e+ba(a)+i))});`),ua(d,a,Ua([n,...h])),ua(E,a,Ua([n]));if(await T([...!N&&l?S(F(I),async t=>{t!=n&&(await _(Ta+ba(a)+"DROP"+ba(t)),M(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+ba(a)+Fa(a,m)):await T(z(s,async(t,e)=>{if(u(t))await _(ha+ba(a)+Fa(a,m)+`AND(${ba(n)}=${r([1])})`,[e]);else if(!A(h)){const s=D(j(t),O);A(s)||await o(_,a,n,s,{[e]:S(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(A(h))u(f)&&C(d,a)&&await _(ha+ba(a)+Fa(a,m));else{const t=D(F(oa(d,a)),a=>a!=n&&O(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>w?w(a?.[t]):a?.[t])),p(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+ba(a)+Fa(a,m)+`AND${ba(n)}NOT IN(${Pa(c,r)})`,c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await I(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},wt=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>L(S(a,ba),e))(n,...s)+")VALUES"+L(z(c,a=>"("+i(r)+","+Pa(a,i,r)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${Oa} SET`+L(S(s,a=>ba(a)+"=excluded."+ba(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,A,v)=>{const[f,O,T,$]=ot(t,l,u,E,_,N,void 0,void 0,v);return rt(a,()=>$(async()=>{return await f(),a=(await O(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>$(async()=>{await f(),await T(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},ut=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,A,v,f,O,$,h,R)=>{const[I,g,L,b]=ot(t,_,N,v,f,O,$,h,R),p=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await L(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>q(1==n?D(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):D(S(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await L(y,_a,{[Ea]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return rt(a,()=>b(async()=>{await I();const a=await(async()=>q(D(await T(la(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await g(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[A]:()=>m,destroy:c},0,m)},yt=/^([cd]:)(.+)/,dt=/^[A-Za-z0-9_]+$/,Et=ra(),_t=async(a,e,s,i,r)=>((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,O,g]=(a=>{const n=(a=>B(Va,_(a)?{[Ya]:a}:a??{}))(a),e=n[Ba];if(n.mode==Wa){const a=n[Ya]??t;return[1,e,[a,n[ja]??_a,n[xa]??Ha],Ua(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Za,r),{load:w,save:l}=o,u=[tt(w),tt(l),o[Ja],at(w),at(l)],y=u[2],d=Ua(y),E=Ua(y),N=nt(s,{[qa]:null,[Xa]:_a,[Qa]:c},qa,a=>C(E,a),a=>Ma(d,a)),m=nt(i,{[Ja]:null,[Xa]:_a,[Ka]:0,[za]:0,[Qa]:null},Ja,(a,t)=>C(E,t),(a,t)=>Ma(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const D=n+ca(na(O)),b=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,D);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${b}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):ka(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([va,fa,Oa],(s,c)=>{const i=L([t,"d",D,a,s],"_");return M(La,v(dt,a)&&m(i)<=63?ba(i):pa(t,"d",D,s,n+ca(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{A(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,D)===t&&(ua(a,D),P(a)&&oa(Et,k)===a&&ua(Et,k))},x=async()=>{const a=ya(Et,k,()=>ra()),n=oa(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",D),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(Et,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?lt:ut)(a,N,async a=>{const t=await x();try{return[await i(b,n=>{R(()=>{return E((e=n,s=yt,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${ma} c.table_schema='public'AND c.table_name IN(${Pa(t,Ca)})`,t),y,d,"text",Ca,void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{_t as createPglitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),b=(a,t)=>a.filter(t),D=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",va="TABLE",Aa="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+va,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+va,La="OR REPLACE ",Sa="FUNCTION",ba=/\$tableName/g,Da=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>Da(L(a,"_")),Ca=a=>"$"+a[0]++,Pa=(a,t,n=[1])=>L(S(a,()=>t(n)),e),Fa=(a,t=c,e)=>{const s=b([t==c?void 0:`(${ka(t,Da(a))})`,e],a=>!u(a));return v(s)?n:ma+L(s,"AND")},ka=(a,t)=>i(a,ba,t),Ua=a=>new Set(N(a)||u(a)?a:[a]),Ma=(a,t)=>a?.add(t),Ga="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",ja=Ha+"Id"+Ga,xa=Ha+Ga,Ba="autoLoadIntervalSeconds",Xa="rowId"+Ga,qa="tableId",Ja="tableName",Ka="deleteEmptyColumns",za="deleteEmptyTable",Qa="condition",Va={mode:Wa,[Ba]:1},Za={load:0,save:0,[Ja]:t+"_values"},at=a=>N(a)?a:void 0,tt=a=>!0===a||N(a),nt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},et=/^\d+$/,st=ra(),ct=ra(),it=ra(),rt=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(st,l,()=>0),ya(ct,l,()=>[]),ua(it,l,(oa(it,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(et,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return ua(c,l,[s,i,r,o,w]),Ma(da(i,r??[n],Ua),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(it,l)||oa(st,l)||!v(oa(ct,l)??[])||(ua(st,l),ua(ct,l),ua(it,l))},ia=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},va=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),Aa=async()=>{const t=++j;return await fa(!0),t!=j||B||(await va(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>va(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>v(a)?e():p(oa(ct,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(st,l)){ua(st,l,1);const a=oa(ct,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),ua(st,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(ct,l),t=b(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;D(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(it,l)??1)-1;ua(it,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},ot=(a,n,s,i,r,o=wt,w,l,y)=>{const d=ra(),E=ra();let _=a;return[async()=>{k(d),k(E),g(await s(_,n),({tn:a,cn:t,uq:n})=>{Ma(ya(d,a,Ua),t),n&&Ma(ya(E,a,Ua),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ua(e);return((a,t)=>C(oa(d,a),t))(a,t)?q(b(S(await _(Ra+Da(a)+Fa(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(s)?e:q(b(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:Ua(A),O=a=>u(f)||C(f,a),$=Ua();K(s??{},a=>g(b(j(a??{}),O),a=>Ma($,a)));const h=F($);if(u(f)&&!N&&y&&m==c&&v(h)&&C(d,a))return await _("DROP "+va+Da(a)),ua(d,a),void ua(E,a);const R=oa(d,a),I=Ua(b(F(R),a=>a==n||O(a)));if(!v(h))if(C(d,a)){if(await T(S([n,...h],async t=>{M(I,t)||(await _(Ta+Da(a)+"ADD"+Da(t)+i),Ma(R,t))})),o==wt&&!C(oa(E,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+Da(e)+"ON"+Da(a)+`(${Da(n)})`),Ma(ya(E,a,Ua),n)}}else await _(ga+Da(a)+`(${Da(n)}${i} PRIMARY KEY${L(S(h,a=>e+Da(a)+i))});`),ua(d,a,Ua([n,...h])),ua(E,a,Ua([n]));if(await T([...!N&&l?S(F(I),async t=>{t!=n&&(await _(Ta+Da(a)+"DROP"+Da(t)),M(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+Da(a)+Fa(a,m)):await T(z(s,async(t,e)=>{if(u(t))await _(ha+Da(a)+Fa(a,m,`(${Da(n)}=${r([1])})`),[e]);else if(!v(h)){const s=b(j(t),O);v(s)||await o(_,a,n,s,{[e]:S(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v(h))u(f)&&C(d,a)&&await _(ha+Da(a)+Fa(a,m));else{const t=b(F(oa(d,a)),a=>a!=n&&O(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>w?w(a?.[t]):a?.[t])),p(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+Da(a)+Fa(a,m,`${Da(n)}NOT IN(${Pa(c,r)})`),c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await I(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},wt=async(a,t,n,s,c,i)=>{const r=[1];await a(Aa+" INTO"+Da(t)+"("+((...a)=>L(S(a,Da),e))(n,...s)+")VALUES"+L(z(c,a=>"("+i(r)+","+Pa(a,i,r)+")"),e)+"ON CONFLICT("+Da(n)+`)DO ${Oa} SET`+L(S(s,a=>Da(a)+"=excluded."+Da(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,$]=ot(t,l,u,E,_,N,void 0,void 0,A);return rt(a,()=>$(async()=>{return await f(),a=(await O(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>$(async()=>{await f(),await T(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},ut=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,O,$,h,R)=>{const[I,g,L,D]=ot(t,_,N,A,f,O,$,h,R),p=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await L(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>q(1==n?b(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):b(S(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await L(y,_a,{[Ea]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return rt(a,()=>D(async()=>{await I();const a=await(async()=>q(b(await T(la(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await g(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},yt=/^([cd]:)(.+)/,dt=/^[A-Za-z0-9_]+$/,Et=ra(),_t=async(a,e,s,i,r)=>((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,O,g]=(a=>{const n=(a=>B(Va,_(a)?{[Ya]:a}:a??{}))(a),e=n[Ba];if(n.mode==Wa){const a=n[Ya]??t;return[1,e,[a,n[ja]??_a,n[xa]??Ha],Ua(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Za,r),{load:w,save:l}=o,u=[tt(w),tt(l),o[Ja],at(w),at(l)],y=u[2],d=Ua(y),E=Ua(y),N=nt(s,{[qa]:null,[Xa]:_a,[Qa]:c},qa,a=>C(E,a),a=>Ma(d,a)),m=nt(i,{[Ja]:null,[Xa]:_a,[Ka]:0,[za]:0,[Qa]:null},Ja,(a,t)=>C(E,t),(a,t)=>Ma(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const b=n+ca(na(O)),D=t+"_"+b,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,b);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${D}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):ka(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([Aa,fa,Oa],(s,c)=>{const i=L([t,"d",b,a,s],"_");return M(La,A(dt,a)&&m(i)<=63?Da(i):pa(t,"d",b,s,n+ca(a)),`AFTER ${s} ON${Da(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,b)===t&&(ua(a,b),P(a)&&oa(Et,k)===a&&ua(Et,k))},x=async()=>{const a=ya(Et,k,()=>ra()),n=oa(a,b);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,b,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",b),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${Da(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(Et,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?lt:ut)(a,N,async a=>{const t=await x();try{return[await i(D,n=>{R(()=>{return E((e=n,s=yt,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${ma} c.table_schema='public'AND c.table_name IN(${Pa(t,Ca)})`,t),y,d,"text",Ca,void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{_t as createPglitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,A=a=>0==m(a),v=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),D=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",Aa="TABLE",va="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+Aa,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+Aa,La="OR REPLACE ",Sa="FUNCTION",Da=/\$tableName/g,ba=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>ba(L(a,"_")),Ca=a=>"$"+a[0]++,Pa=(a,t,n=[1])=>L(S(a,()=>t(n)),e),Fa=(a,t=c)=>ma+`(${ka(t,ba(a))})`,ka=(a,t)=>i(a,Da,t),Ua=a=>new Set(N(a)||u(a)?a:[a]),Ma=(a,t)=>a?.add(t),Ga="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",ja=Ha+"Id"+Ga,xa=Ha+Ga,Ba="autoLoadIntervalSeconds",Xa="rowId"+Ga,qa="tableId",Ja="tableName",Ka="deleteEmptyColumns",za="deleteEmptyTable",Qa="condition",Va={mode:Wa,[Ba]:1},Za={load:0,save:0,[Ja]:t+"_values"},at=a=>N(a)?a:void 0,tt=a=>!0===a||N(a),nt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},et=/^\d+$/,st=ra(),ct=ra(),it=ra(),rt=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(st,l,()=>0),ya(ct,l,()=>[]),ua(it,l,(oa(it,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{v(et,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return ua(c,l,[s,i,r,o,w]),Ma(da(i,r??[n],Ua),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(it,l)||oa(st,l)||!A(oa(ct,l)??[])||(ua(st,l),ua(ct,l),ua(it,l))},ia=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await Aa()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},Aa=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),va=async()=>{const t=++j;return await fa(!0),t!=j||B||(await Aa(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>Aa(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>A(a)?e():p(oa(ct,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(st,l)){ua(st,l,1);const a=oa(ct,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),ua(st,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:Aa,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[va,Na,fa,ma]:[Na,va,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(ct,l),t=D(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;b(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(it,l)??1)-1;ua(it,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},ot=(a,n,s,i,r,o=wt,w,l,y)=>{const d=ra(),E=ra();let _=a;return[async()=>{k(d),k(E),g(await s(_,n),({tn:a,cn:t,uq:n})=>{Ma(ya(d,a,Ua),t),n&&Ma(ya(E,a,Ua),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ua(e);return((a,t)=>C(oa(d,a),t))(a,t)?q(D(S(await _(Ra+ba(a)+Fa(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(s)?e:q(D(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,v)=>{const f=u(v)?void 0:Ua(v),O=a=>u(f)||C(f,a),$=Ua();K(s??{},a=>g(D(j(a??{}),O),a=>Ma($,a)));const h=F($);if(u(f)&&!N&&y&&m==c&&A(h)&&C(d,a))return await _("DROP "+Aa+ba(a)),ua(d,a),void ua(E,a);const R=oa(d,a),I=Ua(D(F(R),a=>a==n||O(a)));if(!A(h))if(C(d,a)){if(await T(S([n,...h],async t=>{M(I,t)||(await _(Ta+ba(a)+"ADD"+ba(t)+i),Ma(R,t))})),o==wt&&!C(oa(E,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ma(ya(E,a,Ua),n)}}else await _(ga+ba(a)+`(${ba(n)}${i} PRIMARY KEY${L(S(h,a=>e+ba(a)+i))});`),ua(d,a,Ua([n,...h])),ua(E,a,Ua([n]));if(await T([...!N&&l?S(F(I),async t=>{t!=n&&(await _(Ta+ba(a)+"DROP"+ba(t)),M(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+ba(a)+Fa(a,m)):await T(z(s,async(t,e)=>{if(u(t))await _(ha+ba(a)+Fa(a,m)+`AND(${ba(n)}=${r([1])})`,[e]);else if(!A(h)){const s=D(j(t),O);A(s)||await o(_,a,n,s,{[e]:S(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(A(h))u(f)&&C(d,a)&&await _(ha+ba(a)+Fa(a,m));else{const t=D(F(oa(d,a)),a=>a!=n&&O(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>w?w(a?.[t]):a?.[t])),p(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+ba(a)+Fa(a,m)+`AND${ba(n)}NOT IN(${Pa(c,r)})`,c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await I(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},wt=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>L(S(a,ba),e))(n,...s)+")VALUES"+L(z(c,a=>"("+i(r)+","+Pa(a,i,r)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${Oa} SET`+L(S(s,a=>ba(a)+"=excluded."+ba(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,A,v)=>{const[f,O,T,$]=ot(t,l,u,E,_,N,void 0,void 0,v);return rt(a,()=>$(async()=>{return await f(),a=(await O(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>$(async()=>{await f(),await T(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},ut=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,A,v,f,O,$,h,R)=>{const[I,g,L,b]=ot(t,_,N,v,f,O,$,h,R),p=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await L(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>q(1==n?D(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):D(S(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await L(y,_a,{[Ea]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return rt(a,()=>b(async()=>{await I();const a=await(async()=>q(D(await T(la(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await g(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[A]:()=>m,destroy:c},0,m)},yt=/^([cd]:)(.+)/,dt=/^[A-Za-z0-9_]+$/,Et=ra(),_t=async(a,e,s,i,r)=>((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,O,g]=(a=>{const n=(a=>B(Va,_(a)?{[Ya]:a}:a??{}))(a),e=n[Ba];if(n.mode==Wa){const a=n[Ya]??t;return[1,e,[a,n[ja]??_a,n[xa]??Ha],Ua(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Za,r),{load:w,save:l}=o,u=[tt(w),tt(l),o[Ja],at(w),at(l)],y=u[2],d=Ua(y),E=Ua(y),N=nt(s,{[qa]:null,[Xa]:_a,[Qa]:c},qa,a=>C(E,a),a=>Ma(d,a)),m=nt(i,{[Ja]:null,[Xa]:_a,[Ka]:0,[za]:0,[Qa]:null},Ja,(a,t)=>C(E,t),(a,t)=>Ma(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const D=n+ca(na(O)),b=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,D);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${b}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):ka(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([va,fa,Oa],(s,c)=>{const i=L([t,"d",D,a,s],"_");return M(La,v(dt,a)&&m(i)<=63?ba(i):pa(t,"d",D,s,n+ca(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{A(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,D)===t&&(ua(a,D),P(a)&&oa(Et,k)===a&&ua(Et,k))},x=async()=>{const a=ya(Et,k,()=>ra()),n=oa(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",D),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(Et,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?lt:ut)(a,N,async a=>{const t=await x();try{return[await i(b,n=>{R(()=>{return E((e=n,s=yt,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${ma} c.table_schema='public'AND c.table_name IN(${Pa(t,Ca)})`,t),y,d,"text",Ca,void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{_t as createPglitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),b=(a,t)=>a.filter(t),D=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",va="TABLE",Aa="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+va,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+va,La="OR REPLACE ",Sa="FUNCTION",ba=/\$tableName/g,Da=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>Da(L(a,"_")),Ca=a=>"$"+a[0]++,Pa=(a,t,n=[1])=>L(S(a,()=>t(n)),e),Fa=(a,t=c,e)=>{const s=b([t==c?void 0:`(${ka(t,Da(a))})`,e],a=>!u(a));return v(s)?n:ma+L(s,"AND")},ka=(a,t)=>i(a,ba,t),Ua=a=>new Set(N(a)||u(a)?a:[a]),Ma=(a,t)=>a?.add(t),Ga="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",ja=Ha+"Id"+Ga,xa=Ha+Ga,Ba="autoLoadIntervalSeconds",Xa="rowId"+Ga,qa="tableId",Ja="tableName",Ka="deleteEmptyColumns",za="deleteEmptyTable",Qa="condition",Va={mode:Wa,[Ba]:1},Za={load:0,save:0,[Ja]:t+"_values"},at=a=>N(a)?a:void 0,tt=a=>!0===a||N(a),nt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},et=/^\d+$/,st=ra(),ct=ra(),it=ra(),rt=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(st,l,()=>0),ya(ct,l,()=>[]),ua(it,l,(oa(it,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(et,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return ua(c,l,[s,i,r,o,w]),Ma(da(i,r??[n],Ua),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(it,l)||oa(st,l)||!v(oa(ct,l)??[])||(ua(st,l),ua(ct,l),ua(it,l))},ia=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},va=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),Aa=async()=>{const t=++j;return await fa(!0),t!=j||B||(await va(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>va(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>v(a)?e():p(oa(ct,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(st,l)){ua(st,l,1);const a=oa(ct,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),ua(st,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(ct,l),t=b(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;D(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(it,l)??1)-1;ua(it,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},ot=(a,n,s,i,r,o=wt,w,l,y)=>{const d=ra(),E=ra();let _=a;return[async()=>{k(d),k(E),g(await s(_,n),({tn:a,cn:t,uq:n})=>{Ma(ya(d,a,Ua),t),n&&Ma(ya(E,a,Ua),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ua(e);return((a,t)=>C(oa(d,a),t))(a,t)?q(b(S(await _(Ra+Da(a)+Fa(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(s)?e:q(b(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:Ua(A),O=a=>u(f)||C(f,a),$=Ua();K(s??{},a=>g(b(j(a??{}),O),a=>Ma($,a)));const h=F($);if(u(f)&&!N&&y&&m==c&&v(h)&&C(d,a))return await _("DROP "+va+Da(a)),ua(d,a),void ua(E,a);const R=oa(d,a),I=Ua(b(F(R),a=>a==n||O(a)));if(!v(h))if(C(d,a)){if(await T(S([n,...h],async t=>{M(I,t)||(await _(Ta+Da(a)+"ADD"+Da(t)+i),Ma(R,t))})),o==wt&&!C(oa(E,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+Da(e)+"ON"+Da(a)+`(${Da(n)})`),Ma(ya(E,a,Ua),n)}}else await _(ga+Da(a)+`(${Da(n)}${i} PRIMARY KEY${L(S(h,a=>e+Da(a)+i))});`),ua(d,a,Ua([n,...h])),ua(E,a,Ua([n]));if(await T([...!N&&l?S(F(I),async t=>{t!=n&&(await _(Ta+Da(a)+"DROP"+Da(t)),M(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+Da(a)+Fa(a,m)):await T(z(s,async(t,e)=>{if(u(t))await _(ha+Da(a)+Fa(a,m,`(${Da(n)}=${r([1])})`),[e]);else if(!v(h)){const s=b(j(t),O);v(s)||await o(_,a,n,s,{[e]:S(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v(h))u(f)&&C(d,a)&&await _(ha+Da(a)+Fa(a,m));else{const t=b(F(oa(d,a)),a=>a!=n&&O(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>w?w(a?.[t]):a?.[t])),p(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+Da(a)+Fa(a,m,`${Da(n)}NOT IN(${Pa(c,r)})`),c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await I(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},wt=async(a,t,n,s,c,i)=>{const r=[1];await a(Aa+" INTO"+Da(t)+"("+((...a)=>L(S(a,Da),e))(n,...s)+")VALUES"+L(z(c,a=>"("+i(r)+","+Pa(a,i,r)+")"),e)+"ON CONFLICT("+Da(n)+`)DO ${Oa} SET`+L(S(s,a=>Da(a)+"=excluded."+Da(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,$]=ot(t,l,u,E,_,N,void 0,void 0,A);return rt(a,()=>$(async()=>{return await f(),a=(await O(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>$(async()=>{await f(),await T(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},ut=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,O,$,h,R)=>{const[I,g,L,D]=ot(t,_,N,A,f,O,$,h,R),p=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await L(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>q(1==n?b(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):b(S(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await L(y,_a,{[Ea]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return rt(a,()=>D(async()=>{await I();const a=await(async()=>q(b(await T(la(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await g(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},yt=/^([cd]:)(.+)/,dt=/^[A-Za-z0-9_]+$/,Et=ra(),_t=async(a,e,s,i,r)=>((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,O,g]=(a=>{const n=(a=>B(Va,_(a)?{[Ya]:a}:a??{}))(a),e=n[Ba];if(n.mode==Wa){const a=n[Ya]??t;return[1,e,[a,n[ja]??_a,n[xa]??Ha],Ua(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Za,r),{load:w,save:l}=o,u=[tt(w),tt(l),o[Ja],at(w),at(l)],y=u[2],d=Ua(y),E=Ua(y),N=nt(s,{[qa]:null,[Xa]:_a,[Qa]:c},qa,a=>C(E,a),a=>Ma(d,a)),m=nt(i,{[Ja]:null,[Xa]:_a,[Ka]:0,[za]:0,[Qa]:null},Ja,(a,t)=>C(E,t),(a,t)=>Ma(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const b=n+ca(na(O)),D=t+"_"+b,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,b);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${D}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):ka(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([Aa,fa,Oa],(s,c)=>{const i=L([t,"d",b,a,s],"_");return M(La,A(dt,a)&&m(i)<=63?Da(i):pa(t,"d",b,s,n+ca(a)),`AFTER ${s} ON${Da(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,b)===t&&(ua(a,b),P(a)&&oa(Et,k)===a&&ua(Et,k))},x=async()=>{const a=ya(Et,k,()=>ra()),n=oa(a,b);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,b,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",b),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${Da(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(Et,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?lt:ut)(a,N,async a=>{const t=await x();try{return[await i(D,n=>{R(()=>{return E((e=n,s=yt,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${ma} c.table_schema='public'AND c.table_name IN(${Pa(t,Ca)})`,t),y,d,"text",Ca,void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{_t as createPglitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=a=>new r(a),O=async a=>r.all(a),T=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>h(a,a=>{h(()=>t?.(a))}),R=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),S=(a,t)=>a.filter(t),D=(a,t=m(a))=>a.splice(0,t),b=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),P=a=>[...a?.values()??[]],F=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),M=Object,G=a=>M.getPrototypeOf(a),H=M.entries,W=a=>!l(a)&&d(G(a),a=>a==M.prototype||l(G(a)),()=>!0),Y=M.keys,j=M.freeze,x=(...a)=>M.assign(M.create(null),...a),B=(a,t,n)=>(M.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),X=(a=[])=>{const t=M.create(null);return I(a,([a,n])=>B(t,a,n)),t},q=(a,t)=>(delete a[t],a),J=(a,t)=>I(Y(a),n=>t(a[n],n)),K=(a,t)=>L(H(a),([a,n])=>t(n,a)),z=(a,t)=>{const n=X();return J(a,(a,e)=>B(n,e,t(a,e))),n},Q=a=>m(Y(a)),V=a=>W(a)&&0==Q(a),Z=JSON.stringify,aa=JSON.parse,ta=a=>Z(a,(a,t)=>u(t)?"":t),na=a=>""===a?void 0:N(a)?L(a,na):W(a)?z(a,na):a,ea=new w.TextEncoder,sa=a=>{let t=2166136261;return I(ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ca=Map,ia=a=>new ca(a),ra=(a,t)=>a?.get(t),oa=(a,t)=>k(a,(a,n)=>t(n,a)),wa=(a,t)=>{const n=[];return oa(a,(a,e)=>b(n,t(e,a))),n},la=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ua=(a,t,n,e)=>{let s=ra(a,t);return p(a,t)?e?.(s):la(a,t,s=n()),s},ya=(a,t,n,e,s=0)=>E((n?ua:ra)(a,t[s],s>m(t)-2?n:ia),c=>{if(s>m(t)-2)return e?.(c)&&la(a,t[s]),c;const i=ya(c,t,n,e,s+1);return C(c)&&la(a,t[s]),i}),da="_",Ea="_id",_a="SELECT",Na="WHERE",ma="TABLE",va="INSERT",Aa="DELETE",fa="UPDATE",Oa="ALTER "+ma,Ta="FROM",ha=Aa+" "+Ta,$a=_a+"*"+Ta,Ra="CREATE ",Ia=Ra+ma,ga="OR REPLACE ",La="FUNCTION",Sa=/\$tableName/g,Da=a=>g(L(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),ba=(...a)=>Da(g(a,"_")),pa=a=>"$"+a[0]++,Ca=(a,t,n=[1])=>g(L(a,()=>t(n)),e),Pa=(a,t=c)=>Na+`(${Fa(t,Da(a))})`,Fa=(a,t)=>i(a,Sa,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ia();return J(a,(a,i)=>{const r=(l=x(t,_(a)?{[n]:a}:a),o=M.values(l),w=Q(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),la(c,i,r))}),c},nt=/^\d+$/,et=ia(),st=ia(),ct=ia(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,O,g,p,P=0,F=0,M=0,G=0,H=0,W=0,Y=0,x=0,B=0;const X={},q=o.destroy;ua(et,l,()=>0),ua(st,l,()=>[]),la(ct,l,(ra(ct,l)??0)+1);const J=ia(),[K,z,Q,Z,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!V(a)||!V(t),t.setContent]:T(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(nt,t)&&m(a)<1e3&&b(a,t)}]})(),c=ia(),i=(a,e,s,i)=>{let r,o=!1;if(I(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?b(e,a):y(t[n])?k(a,a=>s(a,n+1)):I([t[n],null],t=>s(ra(a,t),n+1));return s(a,0),e})(e,s),n=>k(n,n=>{const e=()=>ra(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return la(c,l,[s,i,r,o,w]),Ua(ya(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ra(c,a),([,t,e])=>(ya(t,e??[n],void 0,t=>(U(t,a),C(t)?1:0)),la(c,a),s(a),e)),a=>E(ra(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?I(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>$a),sa=a=>{a!=P&&(P=a,na(J,void 0,P))},ca=()=>{ra(ct,l)||ra(et,l)||!v(ra(st,l)??[])||(la(et,l),la(st,l),la(ct,l))},oa=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},da=a=>R(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=P&&(await R(async()=>{sa(1),F++,await ha(()=>h(async()=>{const n=await t();N(n)?oa(n):u(n)&&a?aa(a):u(n)||T(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),$a),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==P?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==P||!!W;H++,t&&W++,await R(async()=>{sa(1),F++,await(t?ha(()=>oa(e??a)):(()=>{try{return oa(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==P?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await da(e),t!=G||B||await R(()=>Ea(a),()=>{n=!1})}return $a},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await da(R(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),$a},va=async a=>(1!=P&&await R(()=>R(async()=>{sa(2),M++,await ha(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),$a),Aa=async()=>{const t=++x;return await fa(!0),t!=x||B||(await va(),t!=x||B||(O=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=Q();Z(a)&&h(()=>va(a))}}))),$a},fa=async(t=!1)=>{t||x++;const n=O;return O=void 0,u(n)||a.delListener(n),$a},Oa=()=>!u(O),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await R(()=>t(),async()=>{await n()}),$a},ha=async(...a)=>{let t,n=!1;const e=f(e=>v(a)?e():b(ra(st,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;p=f(t=>a=t),await R(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{p=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!ra(et,l)){la(et,l,1);const a=ra(st,l);let t=0;await R(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),la(et,l,0),ca()})}})(),await e,n)throw t;return $a},$a={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?x:G;await i;const o=e(a),w=t?G:x;try{await o}catch(a){throw w==(t?G:x)&&await $(c),r==(t?x:G)&&await $(s),a}return $a},stopAutoPersisting:Ta,getStatus:()=>P,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:ha,getStore:()=>a,getStats:()=>({loads:F,saves:M}),...o,destroy:async()=>(u(g)&&(B=1,g=(async()=>{const a=ra(st,l),t=S(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;D(a),b(a,...t),await R(()=>R(()=>R(Ta,()=>n),()=>q?.()),()=>{const a=(ra(ct,l)??1)-1;la(ct,l,a||void 0),ca()})})()),await g,$a)};return j($a)},rt=(a,n,s,i,r,o=ot,w,l,y)=>{const d=ia(),E=ia();let _=a;return[async()=>{F(d),F(E),I(await s(_,n),({tn:a,cn:t,uq:n})=>{Ua(ua(d,a,ka),t),n&&Ua(ua(E,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>p(ra(d,a),t))(a,t)?X(S(L(await _($a+Da(a)+Pa(a,n)),a=>{const n=a[t],e=l?z(q(a,t),l):q(a,t);return[n,u(s)?e:X(S(K(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||p(s,a))(a)))]}),a=>!u(a[0])&&!V(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:ka(A),T=a=>u(f)||p(f,a),h=ka();J(s??{},a=>I(S(Y(a??{}),T),a=>Ua(h,a)));const $=P(h);if(u(f)&&!N&&y&&m==c&&v($)&&p(d,a))return await _("DROP "+ma+Da(a)),la(d,a),void la(E,a);const R=ra(d,a),D=ka(S(P(R),a=>a==n||T(a)));if(!v($))if(p(d,a)){if(await O(L([n,...$],async t=>{U(D,t)||(await _(Oa+Da(a)+"ADD"+Da(t)+i),Ua(R,t))})),o==ot&&!p(ra(E,a),n)){const e=t+"_pk_"+sa(Z([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+Da(e)+"ON"+Da(a)+`(${Da(n)})`),Ua(ua(E,a,ka),n)}}else await _(Ia+Da(a)+`(${Da(n)}${i} PRIMARY KEY${g(L($,a=>e+Da(a)+i))});`),la(d,a,ka([n,...$])),la(E,a,ka([n]));if(await O([...!N&&l?L(P(D),async t=>{t!=n&&(await _(Oa+Da(a)+"DROP"+Da(t)),U(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+Da(a)+Pa(a,m)):await O(K(s,async(t,e)=>{if(u(t))await _(ha+Da(a)+Pa(a,m)+`AND(${Da(n)}=${r([1])})`,[e]);else if(!v($)){const s=S(Y(t),T);v(s)||await o(_,a,n,s,{[e]:L(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v($))u(f)&&p(d,a)&&await _(ha+Da(a)+Pa(a,m));else{const t=S(P(ra(d,a)),a=>a!=n&&T(a)),e=X(),c=[];J(s??{},(a,n)=>{B(e,n,L(t,t=>w?w(a?.[t]):a?.[t])),b(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+Da(a)+Pa(a,m)+`AND${Da(n)}NOT IN(${Ca(c,r)})`,c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await R(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+Da(t)+"("+((...a)=>g(L(a,Da),e))(n,...s)+")VALUES"+g(K(c,a=>"("+i(r)+","+Ca(a,i,r)+")"),e)+"ON CONFLICT("+Da(n)+`)DO ${fa} SET`+g(L(s,a=>Da(a)+"=excluded."+Da(a)),e),K(c,(a,t)=>[t,...L(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,h]=rt(t,l,u,E,_,N,void 0,void 0,A);return it(a,()=>h(async()=>{return await f(),a=(await O(r,o))[da]?.[w]??"null",na(aa(a));var a}),a=>h(async()=>{await f(),await T(r,o,{[da]:{[w]:ta(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,T,h,$,R)=>{const[I,g,D,b]=rt(t,_,N,A,f,T,h,$,R),p=(a,t)=>O(wa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!M.hasOwn(o,w))||await D(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>X(1==n?S(K(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):S(L(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await D(y,Ea,{[da]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>b(async()=>{await I();const a=await(async()=>X(S(await O(wa(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!V(a[1]))))(),t=await(async()=>w?(await g(y,Ea,void 0,d))[da]:{})();return V(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ia(),Et=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,I,S]=(a=>{const n=(a=>x(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??Ea,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=x(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:Ea,[za]:c},Xa,a=>p(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:Ea,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>p(E,t),(a,t)=>Ua(d,t));return oa(m,(a,t)=>t[4]??=ra(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&T(0);const D=n+sa(ta(I)),F=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=ba(t,a,D);return await N(Ra+ga+La+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ra+a+"TRIGGER"+t+n+"EXECUTE "+La+e+"()"),t),G=a=>`PERFORM pg_notify('${F}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(ra(I[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>O(L([va,Aa,fa],(s,c)=>{const i=g([t,"d",D,a,s],"_");return M(ga,A(yt,a)&&m(i)<=63?Da(i):ba(t,"d",D,s,n+sa(a)),`AFTER ${s} ON${Da(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},j=(a,t)=>{ra(a,D)===t&&(la(a,D),C(a)&&ra(dt,k)===a&&la(dt,k))},B=async()=>{const a=ua(dt,k,()=>ia()),n=ra(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await B());const e=[],s=[1,void 0,e];la(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");b(e,a),await M("EVENT ",ba(t,"c",D),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");b(e,n),s[3]=n,await O(L(P(S),async a=>(await N(Ia+` IF NOT EXISTS${Da(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=R(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=ra(dt,k);a[4]=R(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await B();try{return[await i(F,n=>{$(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{p(S,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>X(t),w),a}},async([a,t])=>{await R(()=>r(a),()=>X(t))},w,l,u,I,P(S),async(a,t)=>await a(_a+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${_a} count(*) FROM information_schema.key_column_usage kcu2 ${Na} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Na} c.table_schema='public'AND c.table_name IN(${Ca(t,pa)})`,t),y,d,"text",pa,void 0,a=>Z(a),a=>aa(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>h(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{Et as createPostgresPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=a=>new r(a),O=async a=>r.all(a),T=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>h(a,a=>{h(()=>t?.(a))}),R=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),S=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),P=a=>[...a?.values()??[]],F=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),M=Object,G=a=>M.getPrototypeOf(a),H=M.entries,W=a=>!l(a)&&d(G(a),a=>a==M.prototype||l(G(a)),()=>!0),Y=M.keys,j=M.freeze,x=(...a)=>M.assign(M.create(null),...a),B=(a,t,n)=>(M.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),X=(a=[])=>{const t=M.create(null);return I(a,([a,n])=>B(t,a,n)),t},q=(a,t)=>(delete a[t],a),J=(a,t)=>I(Y(a),n=>t(a[n],n)),K=(a,t)=>L(H(a),([a,n])=>t(n,a)),z=(a,t)=>{const n=X();return J(a,(a,e)=>B(n,e,t(a,e))),n},Q=a=>m(Y(a)),V=a=>W(a)&&0==Q(a),Z=JSON.stringify,aa=JSON.parse,ta=a=>Z(a,(a,t)=>u(t)?"":t),na=a=>""===a?void 0:N(a)?L(a,na):W(a)?z(a,na):a,ea=new w.TextEncoder,sa=a=>{let t=2166136261;return I(ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ca=Map,ia=a=>new ca(a),ra=(a,t)=>a?.get(t),oa=(a,t)=>k(a,(a,n)=>t(n,a)),wa=(a,t)=>{const n=[];return oa(a,(a,e)=>D(n,t(e,a))),n},la=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ua=(a,t,n,e)=>{let s=ra(a,t);return p(a,t)?e?.(s):la(a,t,s=n()),s},ya=(a,t,n,e,s=0)=>E((n?ua:ra)(a,t[s],s>m(t)-2?n:ia),c=>{if(s>m(t)-2)return e?.(c)&&la(a,t[s]),c;const i=ya(c,t,n,e,s+1);return C(c)&&la(a,t[s]),i}),da="_",Ea="_id",_a="SELECT",Na="WHERE",ma="TABLE",va="INSERT",Aa="DELETE",fa="UPDATE",Oa="ALTER "+ma,Ta="FROM",ha=Aa+" "+Ta,$a=_a+"*"+Ta,Ra="CREATE ",Ia=Ra+ma,ga="OR REPLACE ",La="FUNCTION",Sa=/\$tableName/g,ba=a=>g(L(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),Da=(...a)=>ba(g(a,"_")),pa=a=>"$"+a[0]++,Ca=(a,t,n=[1])=>g(L(a,()=>t(n)),e),Pa=(a,t=c,e)=>{const s=S([t==c?void 0:`(${Fa(t,ba(a))})`,e],a=>!u(a));return v(s)?n:Na+g(s,"AND")},Fa=(a,t)=>i(a,Sa,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ia();return J(a,(a,i)=>{const r=(l=x(t,_(a)?{[n]:a}:a),o=M.values(l),w=Q(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),la(c,i,r))}),c},nt=/^\d+$/,et=ia(),st=ia(),ct=ia(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,O,g,p,P=0,F=0,M=0,G=0,H=0,W=0,Y=0,x=0,B=0;const X={},q=o.destroy;ua(et,l,()=>0),ua(st,l,()=>[]),la(ct,l,(ra(ct,l)??0)+1);const J=ia(),[K,z,Q,Z,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!V(a)||!V(t),t.setContent]:T(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(nt,t)&&m(a)<1e3&&D(a,t)}]})(),c=ia(),i=(a,e,s,i)=>{let r,o=!1;if(I(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?D(e,a):y(t[n])?k(a,a=>s(a,n+1)):I([t[n],null],t=>s(ra(a,t),n+1));return s(a,0),e})(e,s),n=>k(n,n=>{const e=()=>ra(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return la(c,l,[s,i,r,o,w]),Ua(ya(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ra(c,a),([,t,e])=>(ya(t,e??[n],void 0,t=>(U(t,a),C(t)?1:0)),la(c,a),s(a),e)),a=>E(ra(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?I(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>$a),sa=a=>{a!=P&&(P=a,na(J,void 0,P))},ca=()=>{ra(ct,l)||ra(et,l)||!v(ra(st,l)??[])||(la(et,l),la(st,l),la(ct,l))},oa=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},da=a=>R(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=P&&(await R(async()=>{sa(1),F++,await ha(()=>h(async()=>{const n=await t();N(n)?oa(n):u(n)&&a?aa(a):u(n)||T(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),$a),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==P?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==P||!!W;H++,t&&W++,await R(async()=>{sa(1),F++,await(t?ha(()=>oa(e??a)):(()=>{try{return oa(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==P?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await da(e),t!=G||B||await R(()=>Ea(a),()=>{n=!1})}return $a},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await da(R(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),$a},va=async a=>(1!=P&&await R(()=>R(async()=>{sa(2),M++,await ha(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),$a),Aa=async()=>{const t=++x;return await fa(!0),t!=x||B||(await va(),t!=x||B||(O=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=Q();Z(a)&&h(()=>va(a))}}))),$a},fa=async(t=!1)=>{t||x++;const n=O;return O=void 0,u(n)||a.delListener(n),$a},Oa=()=>!u(O),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await R(()=>t(),async()=>{await n()}),$a},ha=async(...a)=>{let t,n=!1;const e=f(e=>v(a)?e():D(ra(st,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;p=f(t=>a=t),await R(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{p=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!ra(et,l)){la(et,l,1);const a=ra(st,l);let t=0;await R(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),la(et,l,0),ca()})}})(),await e,n)throw t;return $a},$a={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?x:G;await i;const o=e(a),w=t?G:x;try{await o}catch(a){throw w==(t?G:x)&&await $(c),r==(t?x:G)&&await $(s),a}return $a},stopAutoPersisting:Ta,getStatus:()=>P,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:ha,getStore:()=>a,getStats:()=>({loads:F,saves:M}),...o,destroy:async()=>(u(g)&&(B=1,g=(async()=>{const a=ra(st,l),t=S(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;b(a),D(a,...t),await R(()=>R(()=>R(Ta,()=>n),()=>q?.()),()=>{const a=(ra(ct,l)??1)-1;la(ct,l,a||void 0),ca()})})()),await g,$a)};return j($a)},rt=(a,n,s,i,r,o=ot,w,l,y)=>{const d=ia(),E=ia();let _=a;return[async()=>{F(d),F(E),I(await s(_,n),({tn:a,cn:t,uq:n})=>{Ua(ua(d,a,ka),t),n&&Ua(ua(E,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>p(ra(d,a),t))(a,t)?X(S(L(await _($a+ba(a)+Pa(a,n)),a=>{const n=a[t],e=l?z(q(a,t),l):q(a,t);return[n,u(s)?e:X(S(K(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||p(s,a))(a)))]}),a=>!u(a[0])&&!V(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:ka(A),T=a=>u(f)||p(f,a),h=ka();J(s??{},a=>I(S(Y(a??{}),T),a=>Ua(h,a)));const $=P(h);if(u(f)&&!N&&y&&m==c&&v($)&&p(d,a))return await _("DROP "+ma+ba(a)),la(d,a),void la(E,a);const R=ra(d,a),b=ka(S(P(R),a=>a==n||T(a)));if(!v($))if(p(d,a)){if(await O(L([n,...$],async t=>{U(b,t)||(await _(Oa+ba(a)+"ADD"+ba(t)+i),Ua(R,t))})),o==ot&&!p(ra(E,a),n)){const e=t+"_pk_"+sa(Z([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ua(ua(E,a,ka),n)}}else await _(Ia+ba(a)+`(${ba(n)}${i} PRIMARY KEY${g(L($,a=>e+ba(a)+i))});`),la(d,a,ka([n,...$])),la(E,a,ka([n]));if(await O([...!N&&l?L(P(b),async t=>{t!=n&&(await _(Oa+ba(a)+"DROP"+ba(t)),U(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+ba(a)+Pa(a,m)):await O(K(s,async(t,e)=>{if(u(t))await _(ha+ba(a)+Pa(a,m,`(${ba(n)}=${r([1])})`),[e]);else if(!v($)){const s=S(Y(t),T);v(s)||await o(_,a,n,s,{[e]:L(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v($))u(f)&&p(d,a)&&await _(ha+ba(a)+Pa(a,m));else{const t=S(P(ra(d,a)),a=>a!=n&&T(a)),e=X(),c=[];J(s??{},(a,n)=>{B(e,n,L(t,t=>w?w(a?.[t]):a?.[t])),D(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+ba(a)+Pa(a,m,`${ba(n)}NOT IN(${Ca(c,r)})`),c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await R(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>g(L(a,ba),e))(n,...s)+")VALUES"+g(K(c,a=>"("+i(r)+","+Ca(a,i,r)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${fa} SET`+g(L(s,a=>ba(a)+"=excluded."+ba(a)),e),K(c,(a,t)=>[t,...L(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,h]=rt(t,l,u,E,_,N,void 0,void 0,A);return it(a,()=>h(async()=>{return await f(),a=(await O(r,o))[da]?.[w]??"null",na(aa(a));var a}),a=>h(async()=>{await f(),await T(r,o,{[da]:{[w]:ta(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,T,h,$,R)=>{const[I,g,b,D]=rt(t,_,N,A,f,T,h,$,R),p=(a,t)=>O(wa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!M.hasOwn(o,w))||await b(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>X(1==n?S(K(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):S(L(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await b(y,Ea,{[da]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>D(async()=>{await I();const a=await(async()=>X(S(await O(wa(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!V(a[1]))))(),t=await(async()=>w?(await g(y,Ea,void 0,d))[da]:{})();return V(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ia(),Et=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,I,S]=(a=>{const n=(a=>x(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??Ea,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=x(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:Ea,[za]:c},Xa,a=>p(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:Ea,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>p(E,t),(a,t)=>Ua(d,t));return oa(m,(a,t)=>t[4]??=ra(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&T(0);const b=n+sa(ta(I)),F=t+"_"+b,k=y??s,U=async(a,n,e="",s="")=>{const c=Da(t,a,b);return await N(Ra+ga+La+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ra+a+"TRIGGER"+t+n+"EXECUTE "+La+e+"()"),t),G=a=>`PERFORM pg_notify('${F}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(ra(I[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>O(L([va,Aa,fa],(s,c)=>{const i=g([t,"d",b,a,s],"_");return M(ga,A(yt,a)&&m(i)<=63?ba(i):Da(t,"d",b,s,n+sa(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},j=(a,t)=>{ra(a,b)===t&&(la(a,b),C(a)&&ra(dt,k)===a&&la(dt,k))},B=async()=>{const a=ua(dt,k,()=>ia()),n=ra(a,b);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await B());const e=[],s=[1,void 0,e];la(a,b,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");D(e,a),await M("EVENT ",Da(t,"c",b),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");D(e,n),s[3]=n,await O(L(P(S),async a=>(await N(Ia+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=R(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=ra(dt,k);a[4]=R(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await B();try{return[await i(F,n=>{$(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{p(S,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>X(t),w),a}},async([a,t])=>{await R(()=>r(a),()=>X(t))},w,l,u,I,P(S),async(a,t)=>await a(_a+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${_a} count(*) FROM information_schema.key_column_usage kcu2 ${Na} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Na} c.table_schema='public'AND c.table_name IN(${Ca(t,pa)})`,t),y,d,"text",pa,void 0,a=>Z(a),a=>aa(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>h(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{Et as createPostgresPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=a=>new r(a),O=async a=>r.all(a),T=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>h(a,a=>{h(()=>t?.(a))}),R=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),S=(a,t)=>a.filter(t),D=(a,t=m(a))=>a.splice(0,t),b=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),P=a=>[...a?.values()??[]],F=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),M=Object,G=a=>M.getPrototypeOf(a),H=M.entries,W=a=>!l(a)&&d(G(a),a=>a==M.prototype||l(G(a)),()=>!0),Y=M.keys,j=M.freeze,x=(...a)=>M.assign(M.create(null),...a),B=(a,t,n)=>(M.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),X=(a=[])=>{const t=M.create(null);return I(a,([a,n])=>B(t,a,n)),t},q=(a,t)=>(delete a[t],a),J=(a,t)=>I(Y(a),n=>t(a[n],n)),K=(a,t)=>L(H(a),([a,n])=>t(n,a)),z=(a,t)=>{const n=X();return J(a,(a,e)=>B(n,e,t(a,e))),n},Q=a=>m(Y(a)),V=a=>W(a)&&0==Q(a),Z=JSON.stringify,aa=JSON.parse,ta=a=>Z(a,(a,t)=>u(t)?"":t),na=a=>""===a?void 0:N(a)?L(a,na):W(a)?z(a,na):a,ea=new w.TextEncoder,sa=a=>{let t=2166136261;return I(ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ca=Map,ia=a=>new ca(a),ra=(a,t)=>a?.get(t),oa=(a,t)=>k(a,(a,n)=>t(n,a)),wa=(a,t)=>{const n=[];return oa(a,(a,e)=>b(n,t(e,a))),n},la=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ua=(a,t,n,e)=>{let s=ra(a,t);return p(a,t)?e?.(s):la(a,t,s=n()),s},ya=(a,t,n,e,s=0)=>E((n?ua:ra)(a,t[s],s>m(t)-2?n:ia),c=>{if(s>m(t)-2)return e?.(c)&&la(a,t[s]),c;const i=ya(c,t,n,e,s+1);return C(c)&&la(a,t[s]),i}),da="_",Ea="_id",_a="SELECT",Na="WHERE",ma="TABLE",va="INSERT",Aa="DELETE",fa="UPDATE",Oa="ALTER "+ma,Ta="FROM",ha=Aa+" "+Ta,$a=_a+"*"+Ta,Ra="CREATE ",Ia=Ra+ma,ga="OR REPLACE ",La="FUNCTION",Sa=/\$tableName/g,Da=a=>g(L(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),ba=(...a)=>Da(g(a,"_")),pa=a=>"$"+a[0]++,Ca=(a,t,n=[1])=>g(L(a,()=>t(n)),e),Pa=(a,t=c)=>Na+`(${Fa(t,Da(a))})`,Fa=(a,t)=>i(a,Sa,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ia();return J(a,(a,i)=>{const r=(l=x(t,_(a)?{[n]:a}:a),o=M.values(l),w=Q(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),la(c,i,r))}),c},nt=/^\d+$/,et=ia(),st=ia(),ct=ia(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,O,g,p,P=0,F=0,M=0,G=0,H=0,W=0,Y=0,x=0,B=0;const X={},q=o.destroy;ua(et,l,()=>0),ua(st,l,()=>[]),la(ct,l,(ra(ct,l)??0)+1);const J=ia(),[K,z,Q,Z,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!V(a)||!V(t),t.setContent]:T(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(nt,t)&&m(a)<1e3&&b(a,t)}]})(),c=ia(),i=(a,e,s,i)=>{let r,o=!1;if(I(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?b(e,a):y(t[n])?k(a,a=>s(a,n+1)):I([t[n],null],t=>s(ra(a,t),n+1));return s(a,0),e})(e,s),n=>k(n,n=>{const e=()=>ra(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return la(c,l,[s,i,r,o,w]),Ua(ya(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ra(c,a),([,t,e])=>(ya(t,e??[n],void 0,t=>(U(t,a),C(t)?1:0)),la(c,a),s(a),e)),a=>E(ra(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?I(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>$a),sa=a=>{a!=P&&(P=a,na(J,void 0,P))},ca=()=>{ra(ct,l)||ra(et,l)||!v(ra(st,l)??[])||(la(et,l),la(st,l),la(ct,l))},oa=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},da=a=>R(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=P&&(await R(async()=>{sa(1),F++,await ha(()=>h(async()=>{const n=await t();N(n)?oa(n):u(n)&&a?aa(a):u(n)||T(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),$a),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==P?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==P||!!W;H++,t&&W++,await R(async()=>{sa(1),F++,await(t?ha(()=>oa(e??a)):(()=>{try{return oa(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==P?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await da(e),t!=G||B||await R(()=>Ea(a),()=>{n=!1})}return $a},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await da(R(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),$a},va=async a=>(1!=P&&await R(()=>R(async()=>{sa(2),M++,await ha(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),$a),Aa=async()=>{const t=++x;return await fa(!0),t!=x||B||(await va(),t!=x||B||(O=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=Q();Z(a)&&h(()=>va(a))}}))),$a},fa=async(t=!1)=>{t||x++;const n=O;return O=void 0,u(n)||a.delListener(n),$a},Oa=()=>!u(O),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await R(()=>t(),async()=>{await n()}),$a},ha=async(...a)=>{let t,n=!1;const e=f(e=>v(a)?e():b(ra(st,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;p=f(t=>a=t),await R(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{p=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!ra(et,l)){la(et,l,1);const a=ra(st,l);let t=0;await R(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),la(et,l,0),ca()})}})(),await e,n)throw t;return $a},$a={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?x:G;await i;const o=e(a),w=t?G:x;try{await o}catch(a){throw w==(t?G:x)&&await $(c),r==(t?x:G)&&await $(s),a}return $a},stopAutoPersisting:Ta,getStatus:()=>P,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:ha,getStore:()=>a,getStats:()=>({loads:F,saves:M}),...o,destroy:async()=>(u(g)&&(B=1,g=(async()=>{const a=ra(st,l),t=S(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;D(a),b(a,...t),await R(()=>R(()=>R(Ta,()=>n),()=>q?.()),()=>{const a=(ra(ct,l)??1)-1;la(ct,l,a||void 0),ca()})})()),await g,$a)};return j($a)},rt=(a,n,s,i,r,o=ot,w,l,y)=>{const d=ia(),E=ia();let _=a;return[async()=>{F(d),F(E),I(await s(_,n),({tn:a,cn:t,uq:n})=>{Ua(ua(d,a,ka),t),n&&Ua(ua(E,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>p(ra(d,a),t))(a,t)?X(S(L(await _($a+Da(a)+Pa(a,n)),a=>{const n=a[t],e=l?z(q(a,t),l):q(a,t);return[n,u(s)?e:X(S(K(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||p(s,a))(a)))]}),a=>!u(a[0])&&!V(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:ka(A),T=a=>u(f)||p(f,a),h=ka();J(s??{},a=>I(S(Y(a??{}),T),a=>Ua(h,a)));const $=P(h);if(u(f)&&!N&&y&&m==c&&v($)&&p(d,a))return await _("DROP "+ma+Da(a)),la(d,a),void la(E,a);const R=ra(d,a),D=ka(S(P(R),a=>a==n||T(a)));if(!v($))if(p(d,a)){if(await O(L([n,...$],async t=>{U(D,t)||(await _(Oa+Da(a)+"ADD"+Da(t)+i),Ua(R,t))})),o==ot&&!p(ra(E,a),n)){const e=t+"_pk_"+sa(Z([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+Da(e)+"ON"+Da(a)+`(${Da(n)})`),Ua(ua(E,a,ka),n)}}else await _(Ia+Da(a)+`(${Da(n)}${i} PRIMARY KEY${g(L($,a=>e+Da(a)+i))});`),la(d,a,ka([n,...$])),la(E,a,ka([n]));if(await O([...!N&&l?L(P(D),async t=>{t!=n&&(await _(Oa+Da(a)+"DROP"+Da(t)),U(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+Da(a)+Pa(a,m)):await O(K(s,async(t,e)=>{if(u(t))await _(ha+Da(a)+Pa(a,m)+`AND(${Da(n)}=${r([1])})`,[e]);else if(!v($)){const s=S(Y(t),T);v(s)||await o(_,a,n,s,{[e]:L(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v($))u(f)&&p(d,a)&&await _(ha+Da(a)+Pa(a,m));else{const t=S(P(ra(d,a)),a=>a!=n&&T(a)),e=X(),c=[];J(s??{},(a,n)=>{B(e,n,L(t,t=>w?w(a?.[t]):a?.[t])),b(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+Da(a)+Pa(a,m)+`AND${Da(n)}NOT IN(${Ca(c,r)})`,c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await R(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+Da(t)+"("+((...a)=>g(L(a,Da),e))(n,...s)+")VALUES"+g(K(c,a=>"("+i(r)+","+Ca(a,i,r)+")"),e)+"ON CONFLICT("+Da(n)+`)DO ${fa} SET`+g(L(s,a=>Da(a)+"=excluded."+Da(a)),e),K(c,(a,t)=>[t,...L(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,h]=rt(t,l,u,E,_,N,void 0,void 0,A);return it(a,()=>h(async()=>{return await f(),a=(await O(r,o))[da]?.[w]??"null",na(aa(a));var a}),a=>h(async()=>{await f(),await T(r,o,{[da]:{[w]:ta(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,T,h,$,R)=>{const[I,g,D,b]=rt(t,_,N,A,f,T,h,$,R),p=(a,t)=>O(wa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!M.hasOwn(o,w))||await D(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>X(1==n?S(K(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):S(L(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await D(y,Ea,{[da]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>b(async()=>{await I();const a=await(async()=>X(S(await O(wa(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!V(a[1]))))(),t=await(async()=>w?(await g(y,Ea,void 0,d))[da]:{})();return V(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ia(),Et=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,I,S]=(a=>{const n=(a=>x(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??Ea,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=x(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:Ea,[za]:c},Xa,a=>p(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:Ea,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>p(E,t),(a,t)=>Ua(d,t));return oa(m,(a,t)=>t[4]??=ra(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&T(0);const D=n+sa(ta(I)),F=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=ba(t,a,D);return await N(Ra+ga+La+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ra+a+"TRIGGER"+t+n+"EXECUTE "+La+e+"()"),t),G=a=>`PERFORM pg_notify('${F}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(ra(I[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>O(L([va,Aa,fa],(s,c)=>{const i=g([t,"d",D,a,s],"_");return M(ga,A(yt,a)&&m(i)<=63?Da(i):ba(t,"d",D,s,n+sa(a)),`AFTER ${s} ON${Da(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},j=(a,t)=>{ra(a,D)===t&&(la(a,D),C(a)&&ra(dt,k)===a&&la(dt,k))},B=async()=>{const a=ua(dt,k,()=>ia()),n=ra(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await B());const e=[],s=[1,void 0,e];la(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");b(e,a),await M("EVENT ",ba(t,"c",D),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");b(e,n),s[3]=n,await O(L(P(S),async a=>(await N(Ia+` IF NOT EXISTS${Da(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=R(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=ra(dt,k);a[4]=R(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await B();try{return[await i(F,n=>{$(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{p(S,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>X(t),w),a}},async([a,t])=>{await R(()=>r(a),()=>X(t))},w,l,u,I,P(S),async(a,t)=>await a(_a+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${_a} count(*) FROM information_schema.key_column_usage kcu2 ${Na} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Na} c.table_schema='public'AND c.table_name IN(${Ca(t,pa)})`,t),y,d,"text",pa,void 0,a=>Z(a),a=>aa(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>h(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{Et as createPostgresPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=a=>new r(a),O=async a=>r.all(a),T=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>h(a,a=>{h(()=>t?.(a))}),R=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),S=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),P=a=>[...a?.values()??[]],F=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),M=Object,G=a=>M.getPrototypeOf(a),H=M.entries,W=a=>!l(a)&&d(G(a),a=>a==M.prototype||l(G(a)),()=>!0),Y=M.keys,j=M.freeze,x=(...a)=>M.assign(M.create(null),...a),B=(a,t,n)=>(M.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),X=(a=[])=>{const t=M.create(null);return I(a,([a,n])=>B(t,a,n)),t},q=(a,t)=>(delete a[t],a),J=(a,t)=>I(Y(a),n=>t(a[n],n)),K=(a,t)=>L(H(a),([a,n])=>t(n,a)),z=(a,t)=>{const n=X();return J(a,(a,e)=>B(n,e,t(a,e))),n},Q=a=>m(Y(a)),V=a=>W(a)&&0==Q(a),Z=JSON.stringify,aa=JSON.parse,ta=a=>Z(a,(a,t)=>u(t)?"":t),na=a=>""===a?void 0:N(a)?L(a,na):W(a)?z(a,na):a,ea=new w.TextEncoder,sa=a=>{let t=2166136261;return I(ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ca=Map,ia=a=>new ca(a),ra=(a,t)=>a?.get(t),oa=(a,t)=>k(a,(a,n)=>t(n,a)),wa=(a,t)=>{const n=[];return oa(a,(a,e)=>D(n,t(e,a))),n},la=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ua=(a,t,n,e)=>{let s=ra(a,t);return p(a,t)?e?.(s):la(a,t,s=n()),s},ya=(a,t,n,e,s=0)=>E((n?ua:ra)(a,t[s],s>m(t)-2?n:ia),c=>{if(s>m(t)-2)return e?.(c)&&la(a,t[s]),c;const i=ya(c,t,n,e,s+1);return C(c)&&la(a,t[s]),i}),da="_",Ea="_id",_a="SELECT",Na="WHERE",ma="TABLE",va="INSERT",Aa="DELETE",fa="UPDATE",Oa="ALTER "+ma,Ta="FROM",ha=Aa+" "+Ta,$a=_a+"*"+Ta,Ra="CREATE ",Ia=Ra+ma,ga="OR REPLACE ",La="FUNCTION",Sa=/\$tableName/g,ba=a=>g(L(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),Da=(...a)=>ba(g(a,"_")),pa=a=>"$"+a[0]++,Ca=(a,t,n=[1])=>g(L(a,()=>t(n)),e),Pa=(a,t=c,e)=>{const s=S([t==c?void 0:`(${Fa(t,ba(a))})`,e],a=>!u(a));return v(s)?n:Na+g(s,"AND")},Fa=(a,t)=>i(a,Sa,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ia();return J(a,(a,i)=>{const r=(l=x(t,_(a)?{[n]:a}:a),o=M.values(l),w=Q(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),la(c,i,r))}),c},nt=/^\d+$/,et=ia(),st=ia(),ct=ia(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,O,g,p,P=0,F=0,M=0,G=0,H=0,W=0,Y=0,x=0,B=0;const X={},q=o.destroy;ua(et,l,()=>0),ua(st,l,()=>[]),la(ct,l,(ra(ct,l)??0)+1);const J=ia(),[K,z,Q,Z,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!V(a)||!V(t),t.setContent]:T(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(nt,t)&&m(a)<1e3&&D(a,t)}]})(),c=ia(),i=(a,e,s,i)=>{let r,o=!1;if(I(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?D(e,a):y(t[n])?k(a,a=>s(a,n+1)):I([t[n],null],t=>s(ra(a,t),n+1));return s(a,0),e})(e,s),n=>k(n,n=>{const e=()=>ra(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return la(c,l,[s,i,r,o,w]),Ua(ya(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ra(c,a),([,t,e])=>(ya(t,e??[n],void 0,t=>(U(t,a),C(t)?1:0)),la(c,a),s(a),e)),a=>E(ra(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?I(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>$a),sa=a=>{a!=P&&(P=a,na(J,void 0,P))},ca=()=>{ra(ct,l)||ra(et,l)||!v(ra(st,l)??[])||(la(et,l),la(st,l),la(ct,l))},oa=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},da=a=>R(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=P&&(await R(async()=>{sa(1),F++,await ha(()=>h(async()=>{const n=await t();N(n)?oa(n):u(n)&&a?aa(a):u(n)||T(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),$a),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==P?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==P||!!W;H++,t&&W++,await R(async()=>{sa(1),F++,await(t?ha(()=>oa(e??a)):(()=>{try{return oa(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==P?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await da(e),t!=G||B||await R(()=>Ea(a),()=>{n=!1})}return $a},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await da(R(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),$a},va=async a=>(1!=P&&await R(()=>R(async()=>{sa(2),M++,await ha(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),$a),Aa=async()=>{const t=++x;return await fa(!0),t!=x||B||(await va(),t!=x||B||(O=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=Q();Z(a)&&h(()=>va(a))}}))),$a},fa=async(t=!1)=>{t||x++;const n=O;return O=void 0,u(n)||a.delListener(n),$a},Oa=()=>!u(O),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await R(()=>t(),async()=>{await n()}),$a},ha=async(...a)=>{let t,n=!1;const e=f(e=>v(a)?e():D(ra(st,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;p=f(t=>a=t),await R(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{p=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!ra(et,l)){la(et,l,1);const a=ra(st,l);let t=0;await R(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),la(et,l,0),ca()})}})(),await e,n)throw t;return $a},$a={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?x:G;await i;const o=e(a),w=t?G:x;try{await o}catch(a){throw w==(t?G:x)&&await $(c),r==(t?x:G)&&await $(s),a}return $a},stopAutoPersisting:Ta,getStatus:()=>P,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:ha,getStore:()=>a,getStats:()=>({loads:F,saves:M}),...o,destroy:async()=>(u(g)&&(B=1,g=(async()=>{const a=ra(st,l),t=S(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;b(a),D(a,...t),await R(()=>R(()=>R(Ta,()=>n),()=>q?.()),()=>{const a=(ra(ct,l)??1)-1;la(ct,l,a||void 0),ca()})})()),await g,$a)};return j($a)},rt=(a,n,s,i,r,o=ot,w,l,y)=>{const d=ia(),E=ia();let _=a;return[async()=>{F(d),F(E),I(await s(_,n),({tn:a,cn:t,uq:n})=>{Ua(ua(d,a,ka),t),n&&Ua(ua(E,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>p(ra(d,a),t))(a,t)?X(S(L(await _($a+ba(a)+Pa(a,n)),a=>{const n=a[t],e=l?z(q(a,t),l):q(a,t);return[n,u(s)?e:X(S(K(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||p(s,a))(a)))]}),a=>!u(a[0])&&!V(a[1]))):{}},async(a,n,s,l,y,N=!1,m=c,A)=>{const f=u(A)?void 0:ka(A),T=a=>u(f)||p(f,a),h=ka();J(s??{},a=>I(S(Y(a??{}),T),a=>Ua(h,a)));const $=P(h);if(u(f)&&!N&&y&&m==c&&v($)&&p(d,a))return await _("DROP "+ma+ba(a)),la(d,a),void la(E,a);const R=ra(d,a),b=ka(S(P(R),a=>a==n||T(a)));if(!v($))if(p(d,a)){if(await O(L([n,...$],async t=>{U(b,t)||(await _(Oa+ba(a)+"ADD"+ba(t)+i),Ua(R,t))})),o==ot&&!p(ra(E,a),n)){const e=t+"_pk_"+sa(Z([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ua(ua(E,a,ka),n)}}else await _(Ia+ba(a)+`(${ba(n)}${i} PRIMARY KEY${g(L($,a=>e+ba(a)+i))});`),la(d,a,ka([n,...$])),la(E,a,ka([n]));if(await O([...!N&&l?L(P(b),async t=>{t!=n&&(await _(Oa+ba(a)+"DROP"+ba(t)),U(R,t))}):[]]),N)u(s)?u(f)&&await _(ha+ba(a)+Pa(a,m)):await O(K(s,async(t,e)=>{if(u(t))await _(ha+ba(a)+Pa(a,m,`(${ba(n)}=${r([1])})`),[e]);else if(!v($)){const s=S(Y(t),T);v(s)||await o(_,a,n,s,{[e]:L(s,a=>w?w(t[a]):t[a])},r,R)}}));else if(v($))u(f)&&p(d,a)&&await _(ha+ba(a)+Pa(a,m));else{const t=S(P(ra(d,a)),a=>a!=n&&T(a)),e=X(),c=[];J(s??{},(a,n)=>{B(e,n,L(t,t=>w?w(a?.[t]):a?.[t])),D(c,n)}),await o(_,a,n,t,e,r,R),await _(ha+ba(a)+Pa(a,m,`${ba(n)}NOT IN(${Ca(c,r)})`),c)}},async t=>{if(y)return await y(async a=>{const n=_;return _=a,await R(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c,i)=>{const r=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>g(L(a,ba),e))(n,...s)+")VALUES"+g(K(c,a=>"("+i(r)+","+Ca(a,i,r)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${fa} SET`+g(L(s,a=>ba(a)+"=excluded."+ba(a)),e),K(c,(a,t)=>[t,...L(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v,A)=>{const[f,O,T,h]=rt(t,l,u,E,_,N,void 0,void 0,A);return it(a,()=>h(async()=>{return await f(),a=(await O(r,o))[da]?.[w]??"null",na(aa(a));var a}),a=>h(async()=>{await f(),await T(r,o,{[da]:{[w]:ta(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,T,h,$,R)=>{const[I,g,b,D]=rt(t,_,N,A,f,T,h,$,R),p=(a,t)=>O(wa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!M.hasOwn(o,w))||await b(n,e,a[r],s,c,t,i)})),C=(a,t,n)=>X(1==n?S(K(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):S(L(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>l?await b(y,Ea,{[da]:u(E)?a:C(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>D(async()=>{await I();const a=await(async()=>X(S(await O(wa(r,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!V(a[1]))))(),t=await(async()=>w?(await g(y,Ea,void 0,d))[da]:{})();return V(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await p(t),await P(n)}else await p(t[0],!0),await P(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ia(),Et=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,I,S]=(a=>{const n=(a=>x(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??Ea,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=x(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:Ea,[za]:c},Xa,a=>p(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:Ea,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>p(E,t),(a,t)=>Ua(d,t));return oa(m,(a,t)=>t[4]??=ra(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&T(0);const b=n+sa(ta(I)),F=t+"_"+b,k=y??s,U=async(a,n,e="",s="")=>{const c=Da(t,a,b);return await N(Ra+ga+La+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ra+a+"TRIGGER"+t+n+"EXECUTE "+La+e+"()"),t),G=a=>`PERFORM pg_notify('${F}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(ra(I[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>O(L([va,Aa,fa],(s,c)=>{const i=g([t,"d",b,a,s],"_");return M(ga,A(yt,a)&&m(i)<=63?ba(i):Da(t,"d",b,s,n+sa(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},j=(a,t)=>{ra(a,b)===t&&(la(a,b),C(a)&&ra(dt,k)===a&&la(dt,k))},B=async()=>{const a=ua(dt,k,()=>ia()),n=ra(a,b);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await B());const e=[],s=[1,void 0,e];la(a,b,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");D(e,a),await M("EVENT ",Da(t,"c",b),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");D(e,n),s[3]=n,await O(L(P(S),async a=>(await N(Ia+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=R(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=ra(dt,k);a[4]=R(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await B();try{return[await i(F,n=>{$(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{p(S,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>X(t),w),a}},async([a,t])=>{await R(()=>r(a),()=>X(t))},w,l,u,I,P(S),async(a,t)=>await a(_a+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${_a} count(*) FROM information_schema.key_column_usage kcu2 ${Na} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Na} c.table_schema='public'AND c.table_name IN(${Ca(t,pa)})`,t),y,d,"text",pa,void 0,a=>Z(a),a=>aa(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>h(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{Et as createPostgresPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,A=a=>0==m(a),$=()=>{},_=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=m(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>m(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=()=>"?",va=(a,t,n=[1])=>T(O(a,()=>t(n)),e),fa=(a,t=i)=>Q+`(${Ea(t,ua(a))})`,Ea=(a,t)=>r(a,wa,t),Na=(a,t)=>a?.has(t)??!1,ma=a=>u(a)||0==(a=>a?.size??0)(a),Aa=a=>[...a?.values()??[]],$a=a=>a.clear(),_a=(a,t)=>a?.forEach(t),ha=(a,t)=>a?.delete(t),ga=Map,Ta=a=>new ga(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>_a(a,(a,n)=>t(n,a)),Sa=(a,t)=>{const n=[];return pa(a,(a,e)=>I(n,t(e,a))),n},Ia=(a,t,n)=>u(n)?(ha(a,t),a):a?.set(t,n),ba=(a,t,n,e)=>{let s=Oa(a,t);return Na(a,t)?e?.(s):Ia(a,t,s=n()),s},Ra=(a,t,n,e,s=0)=>f((n?ba:Oa)(a,t[s],s>m(t)-2?n:Ta),i=>{if(s>m(t)-2)return e?.(i)&&Ia(a,t[s]),i;const r=Ra(i,t,n,e,s+1);return ma(i)&&Ia(a,t[s]),r}),Da=a=>new Set(N(a)||u(a)?a:[a]),La=(a,t)=>a?.add(t),Ca="ColumnName",Pa="store",Ma="json",Fa=Pa+"TableName",xa=Pa+"Id"+Ca,Ua=Pa+Ca,Ba="autoLoadIntervalSeconds",ja="rowId"+Ca,ka="tableId",qa="tableName",Ga="deleteEmptyColumns",Ja="deleteEmptyTable",Xa="condition",Ya={mode:Ma,[Ba]:1},za={load:0,save:0,[qa]:t+"_values"},Ha=a=>N(a)?a:void 0,Ka=a=>d(a)||N(a),Va=(a,t,n,e,s)=>{const i=Ta();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Ia(i,r,o))}),i},Qa=JSON.stringify,Wa=JSON.parse,Za=a=>""===a?void 0:N(a)?O(a,Za):F(a)?X(a,Za):a,at=/^\d+$/,tt=Ta(),nt=Ta(),et=Ta(),st=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,$,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;ba(tt,w,()=>0),ba(nt,w,()=>[]),Ia(et,w,(Oa(et,w)??0)+1);const J=Ta(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{at.test(t)&&m(a)<1e3&&I(a,t)}]})(),i=Ta(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?I(e,a):y(t[n])?_a(a,a=>s(a,n+1)):g([t[n],null],t=>s(Oa(a,t),n+1));return s(a,0),e})(e,s),n=>_a(n,n=>{const e=()=>Oa(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ia(i,w,[s,r,o,c,l]),La(Ra(r,o??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(i,a),([,t,e])=>(Ra(t,e??[n],void 0,t=>(ha(t,a),ma(t)?1:0)),Ia(i,a),s(a),e)),a=>f(Oa(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{Oa(et,w)||Oa(tt,w)||!A(Oa(nt,w)??[])||(Ia(tt,w),Ia(nt,w),Ia(et,w))},na=t=>{(X&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();N(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=_(e=>A(a)?e():I(Oa(nt,w),...O(a,(s,i)=>{const o=i==m(a)-1;return[async()=>{let a;h=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!Oa(tt,w)){Ia(tt,w,1);const a=Oa(nt,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Ia(tt,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u($)&&(k=1,$=(async()=>{const a=Oa(nt,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(Oa(et,w)??1)-1;Ia(et,w,a||void 0),ta()})})()),await $,fa)};return U(fa)},it=new l.TextEncoder,rt=(a,n,s,r,o,c=ot,l,w,y)=>{const d=Ta(),v=Ta();let f=a;return[async()=>{$a(d),$a(v),g(await s(f,n),({tn:a,cn:t,uq:n})=>{La(ba(d,a,Da),t),n&&La(ba(v,a,Da),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Da(e);return((a,t)=>Na(Oa(d,a),t))(a,t)?k(p(O(await f(sa+ua(a)+fa(a,n)),a=>{const n=a[t],e=w?X(q(a,t),w):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Na(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,w,y,E=!1,N=i,m)=>{const $=u(m)?void 0:Da(m),_=a=>u($)||Na($,a),S=Da();G(s??{},a=>g(p(x(a??{}),_),a=>La(S,a)));const b=Aa(S);if(u($)&&!E&&y&&N==i&&A(b)&&Na(d,a))return await f("DROP "+W+ua(a)),Ia(d,a),void Ia(v,a);const R=Oa(d,a),D=Da(p(Aa(R),a=>a==n||_(a)));if(!A(b))if(Na(d,a)){if(await h(O([n,...b],async t=>{ha(D,t)||(await f(ta+ua(a)+"ADD"+ua(t)+r),La(R,t))})),c==ot&&!Na(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(it.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Qa([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),La(ba(v,a,Da),n)}}else await f(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(b,a=>e+ua(a)+r))});`),Ia(d,a,Da([n,...b])),Ia(v,a,Da([n]));if(await h([...!E&&w?O(Aa(D),async t=>{t!=n&&(await f(ta+ua(a)+"DROP"+ua(t)),ha(R,t))}):[]]),E)u(s)?u($)&&await f(ea+ua(a)+fa(a,N)):await h(J(s,async(t,e)=>{if(u(t))await f(ea+ua(a)+fa(a,N)+`AND(${ua(n)}=${o([1])})`,[e]);else if(!A(b)){const s=p(x(t),_);A(s)||await c(f,a,n,s,{[e]:O(s,a=>l?l(t[a]):t[a])},o,R)}}));else if(A(b))u($)&&Na(d,a)&&await f(ea+ua(a)+fa(a,N));else{const t=p(Aa(Oa(d,a)),a=>a!=n&&_(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>l?l(a?.[t]):a?.[t])),I(i,n)}),await c(f,a,n,t,e,o,R),await f(ea+ua(a)+fa(a,N)+`AND${ua(n)}NOT IN(${va(i,o)})`,i)}},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}}]},ot=async(a,t,n,s,i,r)=>{const o=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"("+r(o)+","+va(a,r,o)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ct=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,N,m,A,$)=>{const[_,h,g,T]=rt(t,w,y,f,E,N,void 0,void 0,$);return st(a,()=>T(async()=>{return await _(),a=(await h(o,c))[H]?.[l]??"null",Za(Wa(a));var a}),a=>T(async()=>{var t;await _(),await g(o,c,{[H]:{[l]:(t=a()??null,Qa(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},lt=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,N,m,A,$,_,g,T,S)=>{const[I,b,R,D]=rt(t,f,E,A,$,_,g,T,S),L=(a,t)=>h(Sa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await R(n,e,a[o],s,i,t,r)})),P=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,K,{[H]:u(v)?a:P(a,v,t)},!0,!0,t,void 0,v):null;return st(a,()=>D(async()=>{await I();const a=await(async()=>k(p(await h(Sa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await b(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),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,s,r,{[m]:()=>N,destroy:i},0,N)},wt=(a,e,s,r,c,l,y,v,f,N,m="getDb",A,$)=>{let _,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Ya,E(a)?{[Fa]:a}:a??{}))(a),e=n[Ba];if(n.mode==Ma){const a=n[Fa]??t;return[1,e,[a,n[xa]??K,n[Ua]??Pa],Da(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(za,o),{load:l,save:w}=c,u=[Ka(l),Ka(w),c[qa],Ha(l),Ha(w)],y=u[2],d=Da(y),v=Da(y),f=Va(s,{[ka]:null,[ja]:K,[Xa]:i},ka,a=>Na(v,a),a=>La(d,a)),N=Va(r,{[qa]:null,[ja]:K,[Ga]:0,[Ja]:0,[Xa]:null},qa,(a,t)=>Na(v,t),(a,t)=>La(d,t));return pa(N,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??i),[0,e,[f,N,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ct:lt)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=h||r!=g)){const o=t&&!i&&!w(_);_=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Na(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=h=g=null,await c(f)})})},a=>a(),y,v,f,S,Aa(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${va(t,da)})ORDER BY t.name,c.name`,t),N,m,n,da,A,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ut=(a,t,n,e,s)=>{let i;return wt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,$,1,t,"getPowerSync",yt)},yt=async(a,t,n,s,i,r)=>{const o=[1],c=T(O(s,a=>ua(a)+"="+r(o)),e),l=r(o);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(A(await a(aa+ua(t)+" SET"+c+" "+Q+ua(n)+"="+l+" RETURNING"+ua(n),[...i,e]))){const c=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+va([e,...o],r,c)+")",[e,...i])}}};export{ut as createPowerSyncPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,$=a=>0==m(a),_=()=>{},A=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=m(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>m(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=()=>"?",va=(a,t,n=[1])=>T(O(a,()=>t(n)),e),fa=(a,t=i,e)=>{const s=p([t==i?void 0:`(${Ea(t,ua(a))})`,e],a=>!u(a));return $(s)?n:Q+T(s,"AND")},Ea=(a,t)=>r(a,wa,t),Na=async(a,t,n,s,i,r)=>{const o=[1],c=T(O(s,a=>ua(a)+"="+r(o)),e),l=r(o);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if($(await a(aa+ua(t)+" SET"+c+" "+Q+ua(n)+"="+l+" RETURNING"+ua(n),[...i,e]))){const c=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+va([e,...o],r,c)+")",[e,...i])}}},ma=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),_a=a=>[...a?.values()??[]],Aa=a=>a.clear(),ha=(a,t)=>a?.forEach(t),ga=(a,t)=>a?.delete(t),Ta=Map,Oa=a=>new Ta(a),pa=(a,t)=>a?.get(t),Sa=(a,t)=>ha(a,(a,n)=>t(n,a)),Ia=(a,t)=>{const n=[];return Sa(a,(a,e)=>I(n,t(e,a))),n},ba=(a,t,n)=>u(n)?(ga(a,t),a):a?.set(t,n),Ra=(a,t,n,e)=>{let s=pa(a,t);return ma(a,t)?e?.(s):ba(a,t,s=n()),s},Da=(a,t,n,e,s=0)=>f((n?Ra:pa)(a,t[s],s>m(t)-2?n:Oa),i=>{if(s>m(t)-2)return e?.(i)&&ba(a,t[s]),i;const r=Da(i,t,n,e,s+1);return $a(i)&&ba(a,t[s]),r}),La=a=>new Set(N(a)||u(a)?a:[a]),Ca=(a,t)=>a?.add(t),Pa="ColumnName",Ma="store",Fa="json",xa=Ma+"TableName",Ua=Ma+"Id"+Pa,Ba=Ma+Pa,ja="autoLoadIntervalSeconds",ka="rowId"+Pa,qa="tableId",Ga="tableName",Ja="deleteEmptyColumns",Xa="deleteEmptyTable",Ya="condition",za={mode:Fa,[ja]:1},Ha={load:0,save:0,[Ga]:t+"_values"},Ka=a=>N(a)?a:void 0,Va=a=>d(a)||N(a),Qa=(a,t,n,e,s)=>{const i=Oa();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),ba(i,r,o))}),i},Wa=JSON.stringify,Za=JSON.parse,at=a=>""===a?void 0:N(a)?O(a,at):F(a)?X(a,at):a,tt=/^\d+$/,nt=Oa(),et=Oa(),st=Oa(),it=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,_,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;Ra(nt,w,()=>0),Ra(et,w,()=>[]),ba(st,w,(pa(st,w)??0)+1);const J=Oa(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{tt.test(t)&&m(a)<1e3&&I(a,t)}]})(),i=Oa(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?I(e,a):y(t[n])?ha(a,a=>s(a,n+1)):g([t[n],null],t=>s(pa(a,t),n+1));return s(a,0),e})(e,s),n=>ha(n,n=>{const e=()=>pa(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return ba(i,w,[s,r,o,c,l]),Ca(Da(r,o??[n],La),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(i,a),([,t,e])=>(Da(t,e??[n],void 0,t=>(ga(t,a),$a(t)?1:0)),ba(i,a),s(a),e)),a=>f(pa(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{pa(st,w)||pa(nt,w)||!$(pa(et,w)??[])||(ba(nt,w),ba(et,w),ba(st,w))},na=t=>{(X&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();N(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():I(pa(et,w),...O(a,(s,i)=>{const o=i==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!pa(nt,w)){ba(nt,w,1);const a=pa(et,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),ba(nt,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=pa(et,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(pa(st,w)??1)-1;ba(st,w,a||void 0),ta()})})()),await _,fa)};return U(fa)},rt=new l.TextEncoder,ot=(a,n,s,r,o,c=ct,l,w,y)=>{const d=Oa(),v=Oa();let f=a;return[async()=>{Aa(d),Aa(v),g(await s(f,n),({tn:a,cn:t,uq:n})=>{Ca(Ra(d,a,La),t),n&&Ca(Ra(v,a,La),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:La(e);return((a,t)=>ma(pa(d,a),t))(a,t)?k(p(O(await f(sa+ua(a)+fa(a,n)),a=>{const n=a[t],e=w?X(q(a,t),w):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||ma(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,w,y,E=!1,N=i,m)=>{const _=u(m)?void 0:La(m),A=a=>u(_)||ma(_,a),S=La();G(s??{},a=>g(p(x(a??{}),A),a=>Ca(S,a)));const b=_a(S);if(u(_)&&!E&&y&&N==i&&$(b)&&ma(d,a))return await f("DROP "+W+ua(a)),ba(d,a),void ba(v,a);const R=pa(d,a),D=La(p(_a(R),a=>a==n||A(a)));if(!$(b))if(ma(d,a)){if(await h(O([n,...b],async t=>{ga(D,t)||(await f(ta+ua(a)+"ADD"+ua(t)+r),Ca(R,t))})),c==ct&&!ma(pa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(rt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Wa([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Ca(Ra(v,a,La),n)}}else await f(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(b,a=>e+ua(a)+r))});`),ba(d,a,La([n,...b])),ba(v,a,La([n]));if(await h([...!E&&w?O(_a(D),async t=>{t!=n&&(await f(ta+ua(a)+"DROP"+ua(t)),ga(R,t))}):[]]),E)u(s)?u(_)&&await f(ea+ua(a)+fa(a,N)):await h(J(s,async(t,e)=>{if(u(t))await f(ea+ua(a)+fa(a,N,`(${ua(n)}=${o([1])})`),[e]);else if(!$(b)){const s=p(x(t),A);$(s)||await c(f,a,n,s,{[e]:O(s,a=>l?l(t[a]):t[a])},o,R)}}));else if($(b))u(_)&&ma(d,a)&&await f(ea+ua(a)+fa(a,N));else{const t=p(_a(pa(d,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>l?l(a?.[t]):a?.[t])),I(i,n)}),await c(f,a,n,t,e,o,R),await f(ea+ua(a)+fa(a,N,`${ua(n)}NOT IN(${va(i,o)})`),i)}},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}}]},ct=async(a,t,n,s,i,r)=>{const o=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"("+r(o)+","+va(a,r,o)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,N,m,$,_)=>{const[A,h,g,T]=ot(t,w,y,f,E,N,void 0,void 0,_);return it(a,()=>T(async()=>{return await A(),a=(await h(o,c))[H]?.[l]??"null",at(Za(a));var a}),a=>T(async()=>{var t;await A(),await g(o,c,{[H]:{[l]:(t=a()??null,Wa(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},wt=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,N,m,$,_,A,g,T,S)=>{const[I,b,R,D]=ot(t,f,E,$,_,A,g,T,S),L=(a,t)=>h(Ia(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await R(n,e,a[o],s,i,t,r)})),P=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,K,{[H]:u(v)?a:P(a,v,t)},!0,!0,t,void 0,v):null;return it(a,()=>D(async()=>{await I();const a=await(async()=>k(p(await h(Ia(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await b(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),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,s,r,{[m]:()=>N,destroy:i},0,N)},ut=(a,e,s,r,c,l,y,v,f,N,m="getDb",$,_)=>{let A,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(za,E(a)?{[xa]:a}:a??{}))(a),e=n[ja];if(n.mode==Fa){const a=n[xa]??t;return[1,e,[a,n[Ua]??K,n[Ba]??Ma],La(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ha,o),{load:l,save:w}=c,u=[Va(l),Va(w),c[Ga],Ka(l),Ka(w)],y=u[2],d=La(y),v=La(y),f=Qa(s,{[qa]:null,[ka]:K,[Ya]:i},qa,a=>ma(v,a),a=>Ca(d,a)),N=Qa(r,{[Ga]:null,[ka]:K,[Ja]:0,[Xa]:0,[Ya]:null},Ga,(a,t)=>ma(v,t),(a,t)=>Ca(d,t));return Sa(N,(a,t)=>t[4]??=pa(f,t[0])?.[2]??i),[0,e,[f,N,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?lt:wt)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=A||s!=h||r!=g)){const o=t&&!i&&!w(A);A=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&ma(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{A=h=g=null,await c(f)})})},a=>a(),y,v,f,S,_a(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${va(t,da)})ORDER BY t.name,c.name`,t),N,m,n,da,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},yt=(a,t,n,e,s)=>{let i;return ut(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,_,1,t,"getPowerSync",Na)};export{yt as createPowerSyncPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,A=a=>0==m(a),$=()=>{},_=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=m(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>m(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=()=>"?",va=(a,t,n=[1])=>T(O(a,()=>t(n)),e),fa=(a,t=i)=>Q+`(${Ea(t,ua(a))})`,Ea=(a,t)=>r(a,wa,t),Na=(a,t)=>a?.has(t)??!1,ma=a=>u(a)||0==(a=>a?.size??0)(a),Aa=a=>[...a?.values()??[]],$a=a=>a.clear(),_a=(a,t)=>a?.forEach(t),ha=(a,t)=>a?.delete(t),ga=Map,Ta=a=>new ga(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>_a(a,(a,n)=>t(n,a)),Sa=(a,t)=>{const n=[];return pa(a,(a,e)=>I(n,t(e,a))),n},Ia=(a,t,n)=>u(n)?(ha(a,t),a):a?.set(t,n),ba=(a,t,n,e)=>{let s=Oa(a,t);return Na(a,t)?e?.(s):Ia(a,t,s=n()),s},Ra=(a,t,n,e,s=0)=>f((n?ba:Oa)(a,t[s],s>m(t)-2?n:Ta),i=>{if(s>m(t)-2)return e?.(i)&&Ia(a,t[s]),i;const r=Ra(i,t,n,e,s+1);return ma(i)&&Ia(a,t[s]),r}),Da=a=>new Set(N(a)||u(a)?a:[a]),La=(a,t)=>a?.add(t),Ca="ColumnName",Pa="store",Ma="json",Fa=Pa+"TableName",xa=Pa+"Id"+Ca,Ua=Pa+Ca,Ba="autoLoadIntervalSeconds",ja="rowId"+Ca,ka="tableId",qa="tableName",Ga="deleteEmptyColumns",Ja="deleteEmptyTable",Xa="condition",Ya={mode:Ma,[Ba]:1},za={load:0,save:0,[qa]:t+"_values"},Ha=a=>N(a)?a:void 0,Ka=a=>d(a)||N(a),Va=(a,t,n,e,s)=>{const i=Ta();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Ia(i,r,o))}),i},Qa=JSON.stringify,Wa=JSON.parse,Za=a=>""===a?void 0:N(a)?O(a,Za):F(a)?X(a,Za):a,at=/^\d+$/,tt=Ta(),nt=Ta(),et=Ta(),st=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,$,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;ba(tt,w,()=>0),ba(nt,w,()=>[]),Ia(et,w,(Oa(et,w)??0)+1);const J=Ta(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{at.test(t)&&m(a)<1e3&&I(a,t)}]})(),i=Ta(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?I(e,a):y(t[n])?_a(a,a=>s(a,n+1)):g([t[n],null],t=>s(Oa(a,t),n+1));return s(a,0),e})(e,s),n=>_a(n,n=>{const e=()=>Oa(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ia(i,w,[s,r,o,c,l]),La(Ra(r,o??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(i,a),([,t,e])=>(Ra(t,e??[n],void 0,t=>(ha(t,a),ma(t)?1:0)),Ia(i,a),s(a),e)),a=>f(Oa(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{Oa(et,w)||Oa(tt,w)||!A(Oa(nt,w)??[])||(Ia(tt,w),Ia(nt,w),Ia(et,w))},na=t=>{(X&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();N(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=_(e=>A(a)?e():I(Oa(nt,w),...O(a,(s,i)=>{const o=i==m(a)-1;return[async()=>{let a;h=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!Oa(tt,w)){Ia(tt,w,1);const a=Oa(nt,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Ia(tt,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u($)&&(k=1,$=(async()=>{const a=Oa(nt,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(Oa(et,w)??1)-1;Ia(et,w,a||void 0),ta()})})()),await $,fa)};return U(fa)},it=new l.TextEncoder,rt=(a,n,s,r,o,c=ot,l,w,y)=>{const d=Ta(),v=Ta();let f=a;return[async()=>{$a(d),$a(v),g(await s(f,n),({tn:a,cn:t,uq:n})=>{La(ba(d,a,Da),t),n&&La(ba(v,a,Da),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Da(e);return((a,t)=>Na(Oa(d,a),t))(a,t)?k(p(O(await f(sa+ua(a)+fa(a,n)),a=>{const n=a[t],e=w?X(q(a,t),w):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Na(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,w,y,E=!1,N=i,m)=>{const $=u(m)?void 0:Da(m),_=a=>u($)||Na($,a),S=Da();G(s??{},a=>g(p(x(a??{}),_),a=>La(S,a)));const b=Aa(S);if(u($)&&!E&&y&&N==i&&A(b)&&Na(d,a))return await f("DROP "+W+ua(a)),Ia(d,a),void Ia(v,a);const R=Oa(d,a),D=Da(p(Aa(R),a=>a==n||_(a)));if(!A(b))if(Na(d,a)){if(await h(O([n,...b],async t=>{ha(D,t)||(await f(ta+ua(a)+"ADD"+ua(t)+r),La(R,t))})),c==ot&&!Na(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(it.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Qa([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),La(ba(v,a,Da),n)}}else await f(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(b,a=>e+ua(a)+r))});`),Ia(d,a,Da([n,...b])),Ia(v,a,Da([n]));if(await h([...!E&&w?O(Aa(D),async t=>{t!=n&&(await f(ta+ua(a)+"DROP"+ua(t)),ha(R,t))}):[]]),E)u(s)?u($)&&await f(ea+ua(a)+fa(a,N)):await h(J(s,async(t,e)=>{if(u(t))await f(ea+ua(a)+fa(a,N)+`AND(${ua(n)}=${o([1])})`,[e]);else if(!A(b)){const s=p(x(t),_);A(s)||await c(f,a,n,s,{[e]:O(s,a=>l?l(t[a]):t[a])},o,R)}}));else if(A(b))u($)&&Na(d,a)&&await f(ea+ua(a)+fa(a,N));else{const t=p(Aa(Oa(d,a)),a=>a!=n&&_(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>l?l(a?.[t]):a?.[t])),I(i,n)}),await c(f,a,n,t,e,o,R),await f(ea+ua(a)+fa(a,N)+`AND${ua(n)}NOT IN(${va(i,o)})`,i)}},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}}]},ot=async(a,t,n,s,i,r)=>{const o=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"("+r(o)+","+va(a,r,o)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ct=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,N,m,A,$)=>{const[_,h,g,T]=rt(t,w,y,f,E,N,void 0,void 0,$);return st(a,()=>T(async()=>{return await _(),a=(await h(o,c))[H]?.[l]??"null",Za(Wa(a));var a}),a=>T(async()=>{var t;await _(),await g(o,c,{[H]:{[l]:(t=a()??null,Qa(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},lt=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,N,m,A,$,_,g,T,S)=>{const[I,b,R,D]=rt(t,f,E,A,$,_,g,T,S),L=(a,t)=>h(Sa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await R(n,e,a[o],s,i,t,r)})),P=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,K,{[H]:u(v)?a:P(a,v,t)},!0,!0,t,void 0,v):null;return st(a,()=>D(async()=>{await I();const a=await(async()=>k(p(await h(Sa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await b(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),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,s,r,{[m]:()=>N,destroy:i},0,N)},wt=(a,e,s,r,c,l,y,v,f,N,m="getDb",A,$)=>{let _,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Ya,E(a)?{[Fa]:a}:a??{}))(a),e=n[Ba];if(n.mode==Ma){const a=n[Fa]??t;return[1,e,[a,n[xa]??K,n[Ua]??Pa],Da(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(za,o),{load:l,save:w}=c,u=[Ka(l),Ka(w),c[qa],Ha(l),Ha(w)],y=u[2],d=Da(y),v=Da(y),f=Va(s,{[ka]:null,[ja]:K,[Xa]:i},ka,a=>Na(v,a),a=>La(d,a)),N=Va(r,{[qa]:null,[ja]:K,[Ga]:0,[Ja]:0,[Xa]:null},qa,(a,t)=>Na(v,t),(a,t)=>La(d,t));return pa(N,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??i),[0,e,[f,N,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ct:lt)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=h||r!=g)){const o=t&&!i&&!w(_);_=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Na(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=h=g=null,await c(f)})})},a=>a(),y,v,f,S,Aa(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${va(t,da)})ORDER BY t.name,c.name`,t),N,m,n,da,A,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ut=(a,t,n,e,s)=>{let i;return wt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,$,1,t,"getPowerSync",yt)},yt=async(a,t,n,s,i,r)=>{const o=[1],c=T(O(s,a=>ua(a)+"="+r(o)),e),l=r(o);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(A(await a(aa+ua(t)+" SET"+c+" "+Q+ua(n)+"="+l+" RETURNING"+ua(n),[...i,e]))){const c=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+va([e,...o],r,c)+")",[e,...i])}}};export{ut as createPowerSyncPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,$=a=>0==m(a),_=()=>{},A=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=m(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>m(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=()=>"?",va=(a,t,n=[1])=>T(O(a,()=>t(n)),e),fa=(a,t=i,e)=>{const s=p([t==i?void 0:`(${Ea(t,ua(a))})`,e],a=>!u(a));return $(s)?n:Q+T(s,"AND")},Ea=(a,t)=>r(a,wa,t),Na=async(a,t,n,s,i,r)=>{const o=[1],c=T(O(s,a=>ua(a)+"="+r(o)),e),l=r(o);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if($(await a(aa+ua(t)+" SET"+c+" "+Q+ua(n)+"="+l+" RETURNING"+ua(n),[...i,e]))){const c=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+va([e,...o],r,c)+")",[e,...i])}}},ma=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),_a=a=>[...a?.values()??[]],Aa=a=>a.clear(),ha=(a,t)=>a?.forEach(t),ga=(a,t)=>a?.delete(t),Ta=Map,Oa=a=>new Ta(a),pa=(a,t)=>a?.get(t),Sa=(a,t)=>ha(a,(a,n)=>t(n,a)),Ia=(a,t)=>{const n=[];return Sa(a,(a,e)=>I(n,t(e,a))),n},ba=(a,t,n)=>u(n)?(ga(a,t),a):a?.set(t,n),Ra=(a,t,n,e)=>{let s=pa(a,t);return ma(a,t)?e?.(s):ba(a,t,s=n()),s},Da=(a,t,n,e,s=0)=>f((n?Ra:pa)(a,t[s],s>m(t)-2?n:Oa),i=>{if(s>m(t)-2)return e?.(i)&&ba(a,t[s]),i;const r=Da(i,t,n,e,s+1);return $a(i)&&ba(a,t[s]),r}),La=a=>new Set(N(a)||u(a)?a:[a]),Ca=(a,t)=>a?.add(t),Pa="ColumnName",Ma="store",Fa="json",xa=Ma+"TableName",Ua=Ma+"Id"+Pa,Ba=Ma+Pa,ja="autoLoadIntervalSeconds",ka="rowId"+Pa,qa="tableId",Ga="tableName",Ja="deleteEmptyColumns",Xa="deleteEmptyTable",Ya="condition",za={mode:Fa,[ja]:1},Ha={load:0,save:0,[Ga]:t+"_values"},Ka=a=>N(a)?a:void 0,Va=a=>d(a)||N(a),Qa=(a,t,n,e,s)=>{const i=Oa();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),ba(i,r,o))}),i},Wa=JSON.stringify,Za=JSON.parse,at=a=>""===a?void 0:N(a)?O(a,at):F(a)?X(a,at):a,tt=/^\d+$/,nt=Oa(),et=Oa(),st=Oa(),it=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,_,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;Ra(nt,w,()=>0),Ra(et,w,()=>[]),ba(st,w,(pa(st,w)??0)+1);const J=Oa(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{tt.test(t)&&m(a)<1e3&&I(a,t)}]})(),i=Oa(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?I(e,a):y(t[n])?ha(a,a=>s(a,n+1)):g([t[n],null],t=>s(pa(a,t),n+1));return s(a,0),e})(e,s),n=>ha(n,n=>{const e=()=>pa(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return ba(i,w,[s,r,o,c,l]),Ca(Da(r,o??[n],La),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(i,a),([,t,e])=>(Da(t,e??[n],void 0,t=>(ga(t,a),$a(t)?1:0)),ba(i,a),s(a),e)),a=>f(pa(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{pa(st,w)||pa(nt,w)||!$(pa(et,w)??[])||(ba(nt,w),ba(et,w),ba(st,w))},na=t=>{(X&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();N(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():I(pa(et,w),...O(a,(s,i)=>{const o=i==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!pa(nt,w)){ba(nt,w,1);const a=pa(et,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),ba(nt,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=pa(et,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(pa(st,w)??1)-1;ba(st,w,a||void 0),ta()})})()),await _,fa)};return U(fa)},rt=new l.TextEncoder,ot=(a,n,s,r,o,c=ct,l,w,y)=>{const d=Oa(),v=Oa();let f=a;return[async()=>{Aa(d),Aa(v),g(await s(f,n),({tn:a,cn:t,uq:n})=>{Ca(Ra(d,a,La),t),n&&Ca(Ra(v,a,La),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:La(e);return((a,t)=>ma(pa(d,a),t))(a,t)?k(p(O(await f(sa+ua(a)+fa(a,n)),a=>{const n=a[t],e=w?X(q(a,t),w):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||ma(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,w,y,E=!1,N=i,m)=>{const _=u(m)?void 0:La(m),A=a=>u(_)||ma(_,a),S=La();G(s??{},a=>g(p(x(a??{}),A),a=>Ca(S,a)));const b=_a(S);if(u(_)&&!E&&y&&N==i&&$(b)&&ma(d,a))return await f("DROP "+W+ua(a)),ba(d,a),void ba(v,a);const R=pa(d,a),D=La(p(_a(R),a=>a==n||A(a)));if(!$(b))if(ma(d,a)){if(await h(O([n,...b],async t=>{ga(D,t)||(await f(ta+ua(a)+"ADD"+ua(t)+r),Ca(R,t))})),c==ct&&!ma(pa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(rt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Wa([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Ca(Ra(v,a,La),n)}}else await f(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(b,a=>e+ua(a)+r))});`),ba(d,a,La([n,...b])),ba(v,a,La([n]));if(await h([...!E&&w?O(_a(D),async t=>{t!=n&&(await f(ta+ua(a)+"DROP"+ua(t)),ga(R,t))}):[]]),E)u(s)?u(_)&&await f(ea+ua(a)+fa(a,N)):await h(J(s,async(t,e)=>{if(u(t))await f(ea+ua(a)+fa(a,N,`(${ua(n)}=${o([1])})`),[e]);else if(!$(b)){const s=p(x(t),A);$(s)||await c(f,a,n,s,{[e]:O(s,a=>l?l(t[a]):t[a])},o,R)}}));else if($(b))u(_)&&ma(d,a)&&await f(ea+ua(a)+fa(a,N));else{const t=p(_a(pa(d,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>l?l(a?.[t]):a?.[t])),I(i,n)}),await c(f,a,n,t,e,o,R),await f(ea+ua(a)+fa(a,N,`${ua(n)}NOT IN(${va(i,o)})`),i)}},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}}]},ct=async(a,t,n,s,i,r)=>{const o=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"("+r(o)+","+va(a,r,o)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},lt=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,N,m,$,_)=>{const[A,h,g,T]=ot(t,w,y,f,E,N,void 0,void 0,_);return it(a,()=>T(async()=>{return await A(),a=(await h(o,c))[H]?.[l]??"null",at(Za(a));var a}),a=>T(async()=>{var t;await A(),await g(o,c,{[H]:{[l]:(t=a()??null,Wa(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},wt=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,N,m,$,_,A,g,T,S)=>{const[I,b,R,D]=ot(t,f,E,$,_,A,g,T,S),L=(a,t)=>h(Ia(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await R(n,e,a[o],s,i,t,r)})),P=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await R(y,K,{[H]:u(v)?a:P(a,v,t)},!0,!0,t,void 0,v):null;return it(a,()=>D(async()=>{await I();const a=await(async()=>k(p(await h(Ia(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await b(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),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,s,r,{[m]:()=>N,destroy:i},0,N)},ut=(a,e,s,r,c,l,y,v,f,N,m="getDb",$,_)=>{let A,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(za,E(a)?{[xa]:a}:a??{}))(a),e=n[ja];if(n.mode==Fa){const a=n[xa]??t;return[1,e,[a,n[Ua]??K,n[Ba]??Ma],La(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ha,o),{load:l,save:w}=c,u=[Va(l),Va(w),c[Ga],Ka(l),Ka(w)],y=u[2],d=La(y),v=La(y),f=Qa(s,{[qa]:null,[ka]:K,[Ya]:i},qa,a=>ma(v,a),a=>Ca(d,a)),N=Qa(r,{[Ga]:null,[ka]:K,[Ja]:0,[Xa]:0,[Ya]:null},Ga,(a,t)=>ma(v,t),(a,t)=>Ca(d,t));return Sa(N,(a,t)=>t[4]??=pa(f,t[0])?.[2]??i),[0,e,[f,N,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?lt:wt)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=A||s!=h||r!=g)){const o=t&&!i&&!w(A);A=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&ma(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{A=h=g=null,await c(f)})})},a=>a(),y,v,f,S,_a(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${va(t,da)})ORDER BY t.name,c.name`,t),N,m,n,da,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},yt=(a,t,n,e,s)=>{let i;return ut(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,_,1,t,"getPowerSync",Na)};export{yt as createPowerSyncPersister};
|
|
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),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
|