tinybase 8.6.0-beta.0 → 9.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/_internal/queries/with-schemas/index.d.ts +1 -2
- package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
- package/@types/mergeable-store/index.d.ts +4 -4
- package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
- package/@types/persisters/index.d.ts +34 -13
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
- package/@types/persisters/with-schemas/index.d.ts +72 -30
- package/@types/queries/index.d.ts +5 -7
- package/@types/queries/with-schemas/index.d.ts +9 -15
- package/@types/store/index.d.ts +1 -2
- package/@types/store/with-schemas/index.d.ts +19 -29
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
- package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
- package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
- package/@types/ui-react/with-schemas/index.d.ts +3 -6
- package/@types/ui-react-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +3 -4
- package/@types/ui-solid/with-schemas/index.d.ts +4 -8
- package/@types/ui-solid-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +6 -12
- package/index.js +67 -25
- package/indexes/index.js +6 -8
- package/indexes/with-schemas/index.js +6 -8
- package/mergeable-store/index.js +46 -6
- package/mergeable-store/with-schemas/index.js +46 -6
- package/metrics/index.js +6 -8
- package/metrics/with-schemas/index.js +6 -8
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +364 -155
- package/omni/with-schemas/index.js +364 -155
- package/package.json +8 -8
- package/persisters/index.js +133 -40
- package/persisters/persister-automerge/index.js +4 -3
- package/persisters/persister-automerge/with-schemas/index.js +4 -3
- package/persisters/persister-browser/index.js +4 -3
- package/persisters/persister-browser/with-schemas/index.js +4 -3
- package/persisters/persister-cr-sqlite-wasm/index.js +133 -40
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-durable-object-sql-storage/index.js +275 -113
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +275 -113
- package/persisters/persister-durable-object-storage/index.js +4 -3
- package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
- package/persisters/persister-electric-sql/index.js +133 -40
- package/persisters/persister-electric-sql/with-schemas/index.js +133 -40
- package/persisters/persister-expo-sqlite/index.js +133 -40
- package/persisters/persister-expo-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-file/index.js +4 -3
- package/persisters/persister-file/with-schemas/index.js +4 -3
- package/persisters/persister-indexed-db/index.js +4 -3
- package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
- package/persisters/persister-libsql/index.js +133 -40
- package/persisters/persister-libsql/with-schemas/index.js +133 -40
- package/persisters/persister-partykit-client/index.js +4 -3
- package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
- package/persisters/persister-pglite/index.js +134 -40
- package/persisters/persister-pglite/with-schemas/index.js +134 -40
- package/persisters/persister-postgres/index.js +134 -40
- package/persisters/persister-postgres/with-schemas/index.js +134 -40
- package/persisters/persister-powersync/index.js +186 -120
- package/persisters/persister-powersync/with-schemas/index.js +186 -120
- package/persisters/persister-react-native-mmkv/index.js +4 -3
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
- package/persisters/persister-react-native-sqlite/index.js +133 -40
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-remote/index.js +4 -3
- package/persisters/persister-remote/with-schemas/index.js +4 -3
- package/persisters/persister-sqlite-bun/index.js +133 -40
- package/persisters/persister-sqlite-bun/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite-wasm/index.js +133 -40
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite3/index.js +133 -40
- package/persisters/persister-sqlite3/with-schemas/index.js +133 -40
- package/persisters/persister-yjs/index.js +4 -3
- package/persisters/persister-yjs/with-schemas/index.js +4 -3
- package/persisters/with-schemas/index.js +133 -40
- package/queries/index.js +21 -19
- package/queries/with-schemas/index.js +21 -19
- package/readme.md +14 -14
- package/relationships/index.js +6 -8
- package/relationships/with-schemas/index.js +6 -8
- package/releases.md +72 -57
- package/store/index.js +33 -2
- package/store/with-schemas/index.js +33 -2
- package/synchronizers/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-local/index.js +4 -3
- package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-ws-client/index.js +120 -45
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +120 -45
- package/synchronizers/synchronizer-ws-server/index.js +116 -36
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +116 -36
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +125 -41
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +125 -41
- package/synchronizers/with-schemas/index.js +4 -3
- package/ui-react-inspector/index.js +36 -5
- package/ui-react-inspector/with-schemas/index.js +36 -5
- package/ui-solid-inspector/index.js +36 -5
- package/ui-solid-inspector/with-schemas/index.js +36 -5
- package/ui-svelte/index.js +1 -1
- package/ui-svelte/with-schemas/index.js +1 -1
- package/ui-svelte-dom/index.js +2 -2
- package/ui-svelte-dom/with-schemas/index.js +2 -2
- package/ui-svelte-inspector/index.js +38 -7
- package/ui-svelte-inspector/with-schemas/index.js +38 -7
- package/with-schemas/index.js +67 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=c(w),p=c(u),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{o?.(t),a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=c(w),p=c(u),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{o?.(t),a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||m("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||m("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):t?I(t):g("Content is not an array: "+a)},()
|
|
1
|
+
import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):o(a)&&t?I(t):o(a)||g("Content is not an array: "+a)},e=>{i?.(e),t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):t?I(t):g("Content is not an array: "+a)},()
|
|
1
|
+
import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):o(a)&&t?I(t):o(a)||g("Content is not an array: "+a)},e=>{i?.(e),t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,y=a=>null==a,d=a=>void 0===a,u=a=>null===a,E=c(y),N=c(d),$=t=>a(t)==s,A=a=>Array.isArray(a),O=(a,t,e)=>a.slice(t,e),m=a=>a.length,_=async a=>o.all(a),g=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},T=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),I=a=>0==m(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,C=a=>d(a)||0==(a=>a?.size??0)(a),f=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!y(a)&&E(M(a),a=>a==F.prototype||y(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>v(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>F.values(a),k=a=>m(j(a)),z=a=>G(a)&&0==k(a),K=Map,V=a=>new K(a),q=(a,t)=>a?.get(t),Q=(a,t)=>v([...a?.entries()??[]],([a,e])=>t(e,a)),Z=(a,t,e)=>d(e)?(P(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(D(a,t)?n?.(q(a,t)):Z(a,t,e()),q(a,t)),ta=(a,t,e,n,s=0)=>N((e?aa:q)(a,t[s],s>m(t)-2?e:V),i=>{if(s>m(t)-2)return n?.(i)&&Z(a,t[s]),i;const r=ta(i,t,e,n,s+1);return C(i)&&Z(a,t[s]),r}),ea=/^\d+$/,na=a=>new Set(A(a)||d(a)?a:[a]),sa=(a,t)=>a?.add(t),ia={Idle:0,Loading:1,Saving:2},ra={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},oa=V(),ca=V(),la=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let y,E,$,O=0,_=0,p=0;aa(oa,w,()=>0),aa(ca,w,()=>[]);const v=V(),[I,S,D,f,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ea.test(t)&&m(a)<1e3&&L(a,t)}]})(),s=V();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Z(s,l,[n,i,r,o,c]),sa(ta(i,r??[e],na),l),l},(t,n,...i)=>T(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):T([t[e],null],t=>s(q(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>q(s,t)[0](a,...n??[],...i))),a=>N(q(s,a),([,t,i])=>(ta(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Z(s,a),n(a),i)),t=>N(q(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=m(r);o==m(e)?t(a,...r,...s(r)):u(e[o])?T(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=O&&(O=a,U(v,void 0,O))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{Q()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=O&&(j(1),_++,await ra(async()=>{await R(async()=>{const e=await t();A(e)?B(e):a?F(a):g("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await R(async()=>E=await s(async(a,t)=>{t||a?2!=O&&(j(1),_++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await R(()=>i(E),r),E=void 0),la),J=async a=>(1!=O&&(j(2),p++,await ra(async()=>{await R(()=>n(S,a),r),j(0)})),la),k=async()=>(K(),await J(),$=a.addDidFinishTransactionListener(()=>{const a=D();f(a)&&J(a)}),la),K=async()=>($&&(a.delListener($),$=void 0),la),Q=()=>!d($),ia=async(a=!1)=>{const[t,e]=a?[K,X]:[X,K];return await t(),await e(),la},ra=async(...a)=>(L(q(ca,w),...a),await(async()=>{if(!q(oa,w)){for(Z(oa,w,1);!d(y=b(q(ca,w)));)await R(y,r);Z(oa,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!d(E),save:J,startAutoSave:k,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[k,Y]:[Y,k];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>O,addStatusListener:a=>M(a,v),delListener:t=>(G(t),a),schedule:ra,getStore:()=>a,destroy:()=>(q(ca,w).splice(0,void 0),ia()),getStats:()=>({loads:_,saves:p}),...c};return x(la)},wa=JSON.stringify,ya=JSON.parse,da=a=>wa(a,(a,t)=>d(t)?"":t),ua=a=>""===a?void 0:A(a)?v(a,ua):G(a)?X(a,ua):a,Ea=new l.TextEncoder,Na="_",$a="_id",Aa="SELECT",Oa="WHERE",ma="TABLE",_a="INSERT",ga="DELETE",Ra="UPDATE",Ta="ALTER "+ma,pa="FROM",va=ga+" "+pa,Ia=Aa+"*"+pa,Sa="pragma_",La="data_version",ba="schema_version",Da="pragma_table_",Ca="CREATE ",fa=Ca+ma,ha="OR REPLACE ",Pa="FUNCTION",Fa="$tableName",Ma=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ua=a=>p(v(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ga=(...a)=>Ua(p(a,"_")),ja=(a,t=[1])=>p(v(a,()=>"$"+t[0]++),n),xa=(a,t=i)=>Oa+`(${r(t,Fa,Ua(a))})`,Ba="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",Xa=Ha+"Id"+Ba,Ja=Ha+Ba,ka="autoLoadIntervalSeconds",za="rowId"+Ba,Ka="tableId",Va="tableName",qa="deleteEmptyColumns",Qa="deleteEmptyTable",Za="condition",at={mode:Wa,[ka]:1},tt={load:0,save:0,[Va]:t+"_values"},et=(a,t,e,n,s)=>{const i=V();return X(a,(a,r)=>{const o=O(J(H(t,$(a)?{[e]:a}:a)),0,k(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Z(i,r,o))}),i},nt=a=>{const e=(a=>H(at,$(a)?{[Ya]:a}:a??{}))(a),n=e[ka];if(e.mode==Wa){const a=e[Ya]??t;return[1,n,[a,e[Xa]??$a,e[Ja]??Ha],na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=O(J(H(tt,o)),0,k(tt)),l=c[2],w=na(l),y=na(l),d=et(s,{[Ka]:null,[za]:$a,[Za]:i},Ka,a=>D(y,a),a=>sa(w,a)),u=et(r,{[Va]:null,[za]:$a,[qa]:0,[Qa]:0,[Za]:null},Va,(a,t)=>D(y,t),(a,t)=>sa(w,t));var E;return E=(a,t)=>t[4]??=q(d,t[0])?.[2]??i,h(u,(a,t)=>E(0,a)),[0,n,[d,u,c],w]},st=(a,t,e,s,r,o=it,c,l)=>{const w=V();return[async()=>{w.clear(),v(await e(a,t),({tn:a,cn:t})=>sa(aa(w,a,na),t))},async(t,e,n)=>((a,t)=>D(q(w,a),t))(t,e)?B(S(v(await a(Ia+Ua(t)+xa(t,n)),a=>[a[e],l?X(W(a,e),l):W(a,e)]),a=>!d(a[0])&&!z(a[1]))):{},async(t,e,s,l,y,u=!1,E=i)=>{const N=na();X(s??{},a=>v(j(a??{}),a=>sa(N,a)));const $=f(N);if(!u&&y&&E==i&&I($)&&D(w,t))return await a("DROP "+ma+Ua(t)),void Z(w,t);const A=q(w,t),O=na(f(A));if(I($)||(D(w,t)?await _(v([e,...$],async(n,s)=>{P(O,n)||(await a(Ta+Ua(t)+"ADD"+Ua(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ua(t)+`(${Ua(e)})`),sa(A,n))})):(await a(fa+Ua(t)+`(${Ua(e)}${r} PRIMARY KEY${p(v($,a=>n+Ua(a)+r))});`),Z(w,t,na([e,...$])))),await _([...!u&&l?v(f(O),async n=>{n!=e&&(await a(Ta+Ua(t)+"DROP"+Ua(n)),P(A,n))}):[]]),u)d(s)?await a(va+Ua(t)+xa(t,E)):await _(Y(s,async(n,s)=>{d(n)?await a(va+Ua(t)+xa(t,E)+`AND(${Ua(e)}=$1)`,[s]):I($)||await o(a,t,e,j(n),{[s]:c?v(J(n),c):J(n)},A)}));else if(I($))D(w,t)&&await a(va+Ua(t)+xa(t,E));else{const n=S(f(q(w,t)),a=>a!=e),i={},r=[];X(s??{},(a,t)=>{i[t]=v(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i),await a(va+Ua(t)+xa(t,E)+`AND${Ua(e)}NOT IN(${ja(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},it=async(a,t,e,s,i)=>{const r=[1];await a(_a+" INTO"+Ua(t)+"("+((...a)=>p(v(a,Ua),n))(e,...s)+")VALUES"+p(Y(i,a=>"($"+r[0]+++","+ja(a,r)+")"),n)+"ON CONFLICT("+Ua(e)+`)DO ${Ra} SET`+p(v(s,a=>Ua(a)+"=excluded."+Ua(a)),n),Y(i,(a,t)=>[t,...v(a,a=>a??null)]).flat())},rt=(a,t,e,n,s,i,r,[o,c,l],w,y,d,u,E,N)=>{const[$,A,O,m]=st(t,w,y,s,E,N),_=la(a,()=>m(async()=>{return await $(),a=(await A(o,c))[Na]?.[l]??"null",ua(ya(a));var a}),a=>m(async()=>{await $(),await O(o,c,{[Na]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>d,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,d);return _},ot=(a,t,e,n,s,i,r,[o,c,[l,w,y]],u,E,N,$,A,O,m,g)=>{const[R,T,p,v]=st(t,u,E,s,A,O,m,g),I=(a,t)=>_(Q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await p(e,n,a[o],s,i,t,r)})),L=async(a,t)=>w?await p(y,$a,{[Na]:a},!0,!0,t):null,b=la(a,()=>v(async()=>{await R();const a=await(async()=>B(S(await _(Q(o,async([a,t,e],n)=>[a,await T(n,t,e)])),a=>!z(a[1]))))(),t=await(async()=>l?(await T(y,$a))[Na]:{})();return z(a)&&d(t)?void 0:[a,t]}),(a,t)=>v(async()=>{if(await R(),d(t)){const[t,e]=a();await I(t),await L(e)}else await I(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[$]:()=>N,destroy:async()=>(await b.stopAutoPersisting(),i(),b)},0,N);return b},ct=/^([cd]:)(.+)/,lt=(a,n,s,o,c,l,w,y,d,u,E="getDb")=>{const $=Ma(s,l),[A,,O,m]=nt(n),g=e+(a=>{let t=2166136261;return T(Ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(O)),R=t+"_"+g,I=async(a,e,n="",s="")=>{const i=Ga(t,a,g);return await $(Ca+ha+Pa+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await $(Ca+a+"TRIGGER"+t+e+"EXECUTE "+Pa+n+"()"),t),L=a=>`PERFORM pg_notify('${R}',${a});`,b=(a,t)=>A?i:2===t?b(a,0)+" OR "+b(a,1):r(q(O[0],a)?.[2]??i,Fa,0==t?"NEW":"OLD"),C=(a,e)=>_(v([_a,ga,Ra],(n,s)=>S(ha,Ga(t,"d",g,a,n),`AFTER ${n} ON${Ua(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(A?rt:ot)(a,$,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Oa} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ga(t,"c",g),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await _(v(f(m),async a=>(await $(fa+` IF NOT EXISTS${Ua(a)}("_id"text PRIMARY KEY)`),await C(a,n)))),[await o(R,t=>{return N((e=t,s=ct,e?.match(s)),async([,t,e])=>{D(m,e)&&("c:"==t&&await C(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await $(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)},w,y,d,O,f(m),async(a,t)=>await a(Aa+` table_name tn,column_name cn FROM information_schema.columns ${Oa} table_schema='public'AND table_name IN(${ja(t)})`,t),u,E,"text",void 0,a=>wa(a),a=>ya(a))},wt=(a,t,n,s,i,r,o,c,l,d,u="getDb",E)=>{let N,$,A;const O=Ma(n,r),[m,_,g,T]=nt(t);return(m?rt:ot)(a,O,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await O(Aa+` ${La} d,${ba} s,TOTAL_CHANGES() c FROM ${Sa}${La} JOIN ${Sa}${ba}`);t==N&&e==$&&n==A||(y(N)||a(),N=t,$=e,A=n)}),1e3*_),n=()=>{N=$=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,g,f(T),async(a,t)=>await a(Aa+` t.name tn,c.name cn FROM ${Da}list()t,${Da}info(t.name)c ${Oa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),d,u,e,E,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ra as Persists,ia as Status,la as createCustomPersister,lt as createCustomPostgreSqlPersister,wt as createCustomSqlitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,d=a=>null==a,y=a=>void 0===a,u=a=>null===a,E=a=>!0===a,N=c(d),$=c(y),v=t=>a(t)==s,A=a=>Array.isArray(a),O=a=>a.length,m=async a=>o.all(a),_=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),I=a=>0==O(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,f=a=>y(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!d(a)&&N(M(a),a=>a==F.prototype||d(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>p(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>O(j(a)),k=a=>G(a)&&0==J(a),z=Map,K=a=>new z(a),V=(a,t)=>a?.get(t),q=(a,t)=>p([...a?.entries()??[]],([a,e])=>t(e,a)),Q=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(D(a,t)?n?.(V(a,t)):Q(a,t,e()),V(a,t)),aa=(a,t,e,n,s=0)=>$((e?Z:V)(a,t[s],s>O(t)-2?e:K),i=>{if(s>O(t)-2)return n?.(i)&&Q(a,t[s]),i;const r=aa(i,t,e,n,s+1);return f(i)&&Q(a,t[s]),r}),ta=/^\d+$/,ea=a=>new Set(A(a)||y(a)?a:[a]),na=(a,t)=>a?.add(t),sa={Idle:0,Loading:1,Saving:2},ia={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ra=K(),oa=K(),ca=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,E,N,v=0,m=0,T=0;Z(ra,w,()=>0),Z(oa,w,()=>[]);const p=K(),[I,S,D,C,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!k(a)||!k(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!k(a)||!k(t),t.setContent]:_("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ta.test(t)&&O(a)<1e3&&L(a,t)}]})(),s=K();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Q(s,l,[n,i,r,o,c]),na(aa(i,r??[e],ea),l),l},(t,n,...i)=>R(((a,t=[e])=>{const n=[],s=(a,e)=>e==O(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):R([t[e],null],t=>s(V(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>V(s,t)[0](a,...n??[],...i))),a=>$(V(s,a),([,t,i])=>(aa(t,i??[e],void 0,t=>(P(t,a),f(t)?1:0)),Q(s,a),n(a),i)),t=>$(V(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=O(r);o==O(e)?t(a,...r,...s(r)):u(e[o])?R(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=v&&(v=a,U(p,void 0,v))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{sa()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=v&&(j(1),m++,await ca(async()=>{await g(async()=>{const e=await t();A(e)?B(e):y(e)&&a?F(a):y(e)||_("Content is not an array: "+e)},t=>{r?.(t),a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await g(async()=>E=await s(async(a,t)=>{t||a?2!=v&&(j(1),m++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await g(()=>i(E),r),E=void 0),la),J=async a=>(1!=v&&(j(2),T++,await ca(async()=>{await g(()=>n(S,a),r),j(0)})),la),z=async()=>(q(),await J(),N=a.addDidFinishTransactionListener(()=>{const a=D();C(a)&&J(a)}),la),q=async()=>(N&&(a.delListener(N),N=void 0),la),sa=()=>!y(N),ia=async(a=!1)=>{const[t,e]=a?[q,X]:[X,q];return await t(),await e(),la},ca=async(...a)=>(L(V(oa,w),...a),await(async()=>{if(!V(ra,w)){for(Q(ra,w,1);!y(d=b(V(oa,w)));)await g(d,r);Q(ra,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!y(E),save:J,startAutoSave:z,stopAutoSave:q,isAutoSaving:sa,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[z,Y]:[Y,z];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>v,addStatusListener:a=>M(a,p),delListener:t=>(G(t),a),schedule:ca,getStore:()=>a,destroy:()=>(V(oa,w).splice(0,void 0),ia()),getStats:()=>({loads:m,saves:T}),...c};return x(la)},la=JSON.stringify,wa=JSON.parse,da=a=>la(a,(a,t)=>y(t)?"":t),ya=a=>""===a?void 0:A(a)?p(a,ya):G(a)?X(a,ya):a,ua=new l.TextEncoder,Ea="_",Na="_id",$a="SELECT",va="WHERE",Aa="TABLE",Oa="INSERT",ma="DELETE",_a="UPDATE",ga="ALTER "+Aa,Ra="FROM",Ta=ma+" "+Ra,pa=$a+"*"+Ra,Ia="pragma_",Sa="data_version",La="schema_version",ba="pragma_table_",Da="CREATE ",fa=Da+Aa,Ca="OR REPLACE ",ha="FUNCTION",Pa="$tableName",Fa=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ma=a=>T(p(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ua=(...a)=>Ma(T(a,"_")),Ga=(a,t=[1])=>T(p(a,()=>"$"+t[0]++),n),ja=(a,t=i)=>va+`(${r(t,Pa,Ma(a))})`,xa="ColumnName",Ba="store",Ha="json",Wa=Ba+"TableName",Ya=Ba+"Id"+xa,Xa=Ba+xa,Ja="autoLoadIntervalSeconds",ka="rowId"+xa,za="tableId",Ka="tableName",Va="deleteEmptyColumns",qa="deleteEmptyTable",Qa="condition",Za={mode:Ha,[Ja]:1},at={load:0,save:0,[Ka]:t+"_values"},tt=a=>A(a)?a:void 0,et=a=>E(a)||A(a),nt=(a,t,e,n,s)=>{const i=K();return X(a,(a,r)=>{const o=(w=H(t,v(a)?{[e]:a}:a),c=F.values(w),l=J(t),c.slice(0,l));var c,l,w;u(o[0])||n(r,o[0])||(s(r,o[0]),Q(i,r,o))}),i},st=a=>{const e=(a=>H(Za,v(a)?{[Wa]:a}:a??{}))(a),n=e[Ja];if(e.mode==Ha){const a=e[Wa]??t;return[1,n,[a,e[Ya]??Na,e[Xa]??Ba],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=H(at,o),{load:l,save:w}=c,d=[et(l),et(w),c[Ka],tt(l),tt(w)],y=d[2],u=ea(y),E=ea(y),N=nt(s,{[za]:null,[ka]:Na,[Qa]:i},za,a=>D(E,a),a=>na(u,a)),$=nt(r,{[Ka]:null,[ka]:Na,[Va]:0,[qa]:0,[Qa]:null},Ka,(a,t)=>D(E,t),(a,t)=>na(u,t));var A;return A=(a,t)=>t[4]??=V(N,t[0])?.[2]??i,h($,(a,t)=>A(0,a)),[0,n,[N,$,d],u]},it=(a,t,e,s,r,o=rt,c,l)=>{const w=K();return[async()=>{w.clear(),p(await e(a,t),({tn:a,cn:t})=>na(Z(w,a,ea),t))},async(t,e,n,s)=>{const i=y(s)?void 0:ea(s);return((a,t)=>D(V(w,a),t))(t,e)?B(S(p(await a(pa+Ma(t)+ja(t,n)),a=>{const t=a[e],n=l?X(W(a,e),l):W(a,e);return[t,y(i)?n:B(S(Y(n,(a,t)=>[t,a]),([a])=>(a=>y(i)||D(i,a))(a)))]}),a=>!y(a[0])&&!k(a[1]))):{}},async(t,e,s,l,d,u=!1,E=i,N)=>{const $=y(N)?void 0:ea(N),v=a=>y($)||D($,a),A=ea();X(s??{},a=>p(S(j(a??{}),v),a=>na(A,a)));const O=C(A);if(y($)&&!u&&d&&E==i&&I(O)&&D(w,t))return await a("DROP "+Aa+Ma(t)),void Q(w,t);const _=V(w,t),g=ea(S(C(_),a=>a==e||v(a)));if(I(O)||(D(w,t)?await m(p([e,...O],async(n,s)=>{P(g,n)||(await a(ga+Ma(t)+"ADD"+Ma(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ma(t)+`(${Ma(e)})`),na(_,n))})):(await a(fa+Ma(t)+`(${Ma(e)}${r} PRIMARY KEY${T(p(O,a=>n+Ma(a)+r))});`),Q(w,t,ea([e,...O])))),await m([...!u&&l?p(C(g),async n=>{n!=e&&(await a(ga+Ma(t)+"DROP"+Ma(n)),P(_,n))}):[]]),u)y(s)?y($)&&await a(Ta+Ma(t)+ja(t,E)):await m(Y(s,async(n,s)=>{if(y(n))await a(Ta+Ma(t)+ja(t,E)+`AND(${Ma(e)}=$1)`,[s]);else if(!I(O)){const i=S(j(n),v);I(i)||await o(a,t,e,i,{[s]:p(i,a=>c?c(n[a]):n[a])},_)}}));else if(I(O))y($)&&D(w,t)&&await a(Ta+Ma(t)+ja(t,E));else{const n=S(C(V(w,t)),a=>a!=e&&v(a)),i={},r=[];X(s??{},(a,t)=>{i[t]=p(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i,_),await a(Ta+Ma(t)+ja(t,E)+`AND${Ma(e)}NOT IN(${Ga(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await g(async()=>e=await t(),s),await a("END"),e}]},rt=async(a,t,e,s,i)=>{const r=[1];await a(Oa+" INTO"+Ma(t)+"("+((...a)=>T(p(a,Ma),n))(e,...s)+")VALUES"+T(Y(i,a=>"($"+r[0]+++","+Ga(a,r)+")"),n)+"ON CONFLICT("+Ma(e)+`)DO ${_a} SET`+T(p(s,a=>Ma(a)+"=excluded."+Ma(a)),n),Y(i,(a,t)=>[t,...p(a,a=>a??null)]).flat())},ot=(a,t,e,n,s,i,r,[o,c,l],w,d,y,u,E,N)=>{const[$,v,A,O]=it(t,w,d,s,E,N),m=ca(a,()=>O(async()=>{return await $(),a=(await v(o,c))[Ea]?.[l]??"null",ya(wa(a));var a}),a=>O(async()=>{await $(),await A(o,c,{[Ea]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},ct=(a,t,e,n,s,i,r,[o,c,[l,w,d,u,E]],N,$,v,A,O,_,g,R)=>{const[T,I,L,b]=it(t,N,$,s,O,_,g,R),D=(a,t)=>m(q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t,r)})),f=(a,t,e)=>B(1==e?S(Y(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(p(t,t=>[t,a[t]]),([,a])=>!y(a))),C=async(a,t)=>w?await L(d,Na,{[Ea]:y(E)?a:f(a,E,t)},!0,!0,t,void 0,E):null,h=ca(a,()=>b(async()=>{await T();const a=await(async()=>B(S(await m(q(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!k(a[1]))))(),t=await(async()=>l?(await I(d,Na,void 0,u))[Ea]:{})();return k(a)&&y(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await T(),y(t)){const[t,e]=a();await D(t),await C(e)}else await D(t[0],!0),await C(t[1],!0)}),e,n,s,r,{[A]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},lt=/^([cd]:)(.+)/,wt=(a,n,s,o,c,l,w,d,y,u,E="getDb")=>{const N=Fa(s,l),[v,,A,O]=st(n),_=e+(a=>{let t=2166136261;return R(ua.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(A)),g=t+"_"+_,I=async(a,e,n="",s="")=>{const i=Ua(t,a,_);return await N(Da+Ca+ha+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await N(Da+a+"TRIGGER"+t+e+"EXECUTE "+ha+n+"()"),t),L=a=>`PERFORM pg_notify('${g}',${a});`,b=(a,t)=>v?i:2===t?b(a,0)+" OR "+b(a,1):r(V(A[0],a)?.[2]??i,Pa,0==t?"NEW":"OLD"),f=(a,e)=>m(p([Oa,ma,_a],(n,s)=>S(Ca,Ua(t,"d",_,a,n),`AFTER ${n} ON${Ma(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(v?ot:ct)(a,N,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${va} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ua(t,"c",_),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await m(p(C(O),async a=>(await N(fa+` IF NOT EXISTS${Ma(a)}("_id"text PRIMARY KEY)`),await f(a,n)))),[await o(g,t=>{return $((e=t,s=lt,e?.match(s)),async([,t,e])=>{D(O,e)&&("c:"==t&&await f(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await N(`DROP FUNCTION IF EXISTS${T(t,",")}CASCADE`)},w,d,y,A,C(O),async(a,t)=>await a($a+` table_name tn,column_name cn FROM information_schema.columns ${va} table_schema='public'AND table_name IN(${Ga(t)})`,t),u,E,"text",void 0,a=>la(a),a=>wa(a))},dt=(a,t,n,s,i,r,o,c,l,y,u="getDb",N)=>{let $,v,A;const O=Fa(n,r),[m,_,R,T]=st(t);return(m?ot:ct)(a,O,a=>{let t;const e=()=>t=setInterval(()=>g(async()=>{const[{d:t,s:e,c:n}]=await O($a+` ${Sa} d,${La} s,TOTAL_CHANGES() c FROM ${Ia}${Sa} JOIN ${Ia}${La}`);t==$&&e==v&&n==A||(d($)||a(),$=t,v=e,A=n)}),1e3*_),n=()=>{$=v=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,R,C(T),async(a,t)=>await a($a+` t.name tn,c.name cn FROM ${ba}list()t,${ba}info(t.name)c ${va} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ga(t)})ORDER BY t.name,c.name`,t),y,u,e,N,a=>E(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ia as Persists,sa as Status,ca as createCustomPersister,wt as createCustomPostgreSqlPersister,dt as createCustomSqlitePersister};
|
|
Binary file
|
package/min/queries/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",
|
|
1
|
+
const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",i="Ids",l="Table",d="Row",c=d+"Count",u=d+i,v="Sorted"+d+i,w="Cell",L=w+i,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return i=>(s.has(i)||s.set(i,(s=>{const i=s._[0],f=i(),g=i(),R=U(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:ie}=g,[le,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),i=U(),l=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(i,e)||(Z(i,e,[]),Z(d,e,U()),Z(c,e,U()),s(l))},L=e=>{Z(a,e),Z(i,e),Z(d,e),Z(c,e),v(e),s(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(i,e),e=>M(i,e),e=>X(a,e),e=>X(i,e),(e,t)=>Z(i,e,t),w,(t,n,s,a,i)=>{w(t,n);const l=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(l,t,[d,c]),!y(i)){const e=X(g,t),r=o(n,t)?i(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(l,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},l,L,f,g,e),F(l),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,l),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,i),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),X(R,e)],t=>t?.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?f.delRow:f.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const d=ve(o),c=l?me(d):s,u=me(o),v=Se(o);ne(p,o),ye(o),Te(o);const w=[],L=[[void 0,[d,void 0,void 0,[],U(),c]]],f=[],g=[],h=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(w)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(w,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,i]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],l=[o,[o,a,I(i)?i:e=>e(i),[],U(),C(e)?me(o):s]];return x(L,l),{as:e=>l[0]=e}},where:(e,t,r,n)=>x(f,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(h,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(v,e=>e[t]);var t}});const b=U(w);if(z(b))return W(p,o),Qe;const E=U(L);Y(E,(e,[,t])=>T(X(E,t),({3:t})=>y(e)?0:x(t,e)));const S=U(g),j=!(z(S)&&(k=h,0==P(k)));var k;const F=j?(e=>$(R,e,i))(o):u;if(j){Ie(o,F,u);const s=U();Y(S,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(b,e=>M(s,e)?0:ne(a,e));const i=U(),l=(a,i,l,d)=>T(a,([c,v,w,L])=>{Y(i,(o,[a])=>{const i=$(c,o,U),u=X(i,l),v=d?void 0:a;if(u!==v){const a=re([[u,v]]),d=D(i);Z(i,l,v),O(X(s,o),([s,o])=>{const l=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,i,l,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?i?.(e,n,t++):y(n)?l?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,i,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(l))?void 0:l})}}),z(v)||!Q(h,e=>e(e=>L[e]))?u.delRow(o,w):y(w)?a[2]=u.addRow(o,L):u.setRow(o,w,L)});pe(F,o,F.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=F.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&l(ee(i,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&l(ee(i,c,()=>{const e={};return O(a,t=>e[t]=F.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,c,F);const q=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,i,l]=X(E,t),d=n?.(a,e),c=X(i,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(i,e,y(d)?void 0:[d,l,...Ce(l,o,1,l.addRowListener(r,d,()=>q(e,l,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return c.getCell(d,e,t);if(s===d&&!C(t))return c.getCell(d,e,o);const a=X(E,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};F.transaction(()=>Q(f,e=>e(t))?Y(b,(r,n)=>F._[5](o,e,r,n(t,e))):F.delRow(o,e))})(e)},{3:B}=X(E,void 0),G=(e,t,r)=>{c.hasRow(d,r)?q(r,c,d,r,B):(F.delRow(o,r),O(E,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return F.transaction(()=>{_(c.getRowIds(d),e=>G(0,0,e)),Ce(c,o,0,c.addRowListener(d,null,G))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>f.delListener(e)),f.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>f.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,i,l]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>f.delListener(e)),fe(e,o),Le(e,[a,f.addRowListener(se,e,()=>Ee(e)),i]),Ve(e,l),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>f.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&f.setCell(se,e,t,r),Qe),getStore:le,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+f.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+f.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])f.delListener(E(e,1));else if(y(t))ie(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,ie),Z(b,e),ie(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:f.getListenerStats().row-P(de()),paramValue:f.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),i=U(),l=()=>{const n=null==s?de():[s];_(n,n=>{return M(i,n)?0:Z(i,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(i,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(i,e)))};return l(),Z(b,a,[n,i,null==s?Re(l):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[l]:[2,1],[l+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(i)),s.get(i))})();export{oe as createQueries};
|
package/min/queries/index.js.gz
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",
|
|
1
|
+
const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",i="Ids",l="Table",d="Row",c=d+"Count",u=d+i,v="Sorted"+d+i,w="Cell",L=w+i,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return i=>(s.has(i)||s.set(i,(s=>{const i=s._[0],f=i(),g=i(),R=U(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:ie}=g,[le,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),i=U(),l=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(i,e)||(Z(i,e,[]),Z(d,e,U()),Z(c,e,U()),s(l))},L=e=>{Z(a,e),Z(i,e),Z(d,e),Z(c,e),v(e),s(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(i,e),e=>M(i,e),e=>X(a,e),e=>X(i,e),(e,t)=>Z(i,e,t),w,(t,n,s,a,i)=>{w(t,n);const l=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(l,t,[d,c]),!y(i)){const e=X(g,t),r=o(n,t)?i(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(l,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},l,L,f,g,e),F(l),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,l),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,i),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),X(R,e)],t=>t?.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?f.delRow:f.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const d=ve(o),c=l?me(d):s,u=me(o),v=Se(o);ne(p,o),ye(o),Te(o);const w=[],L=[[void 0,[d,void 0,void 0,[],U(),c]]],f=[],g=[],h=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(w)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(w,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,i]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],l=[o,[o,a,I(i)?i:e=>e(i),[],U(),C(e)?me(o):s]];return x(L,l),{as:e=>l[0]=e}},where:(e,t,r,n)=>x(f,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(h,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(v,e=>e[t]);var t}});const b=U(w);if(z(b))return W(p,o),Qe;const E=U(L);Y(E,(e,[,t])=>T(X(E,t),({3:t})=>y(e)?0:x(t,e)));const S=U(g),j=!(z(S)&&(k=h,0==P(k)));var k;const F=j?(e=>$(R,e,i))(o):u;if(j){Ie(o,F,u);const s=U();Y(S,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(b,e=>M(s,e)?0:ne(a,e));const i=U(),l=(a,i,l,d)=>T(a,([c,v,w,L])=>{Y(i,(o,[a])=>{const i=$(c,o,U),u=X(i,l),v=d?void 0:a;if(u!==v){const a=re([[u,v]]),d=D(i);Z(i,l,v),O(X(s,o),([s,o])=>{const l=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,i,l,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?i?.(e,n,t++):y(n)?l?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,i,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(l))?void 0:l})}}),z(v)||!Q(h,e=>e(e=>L[e]))?u.delRow(o,w):y(w)?a[2]=u.addRow(o,L):u.setRow(o,w,L)});pe(F,o,F.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=F.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&l(ee(i,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&l(ee(i,c,()=>{const e={};return O(a,t=>e[t]=F.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,c,F);const q=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,i,l]=X(E,t),d=n?.(a,e),c=X(i,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(i,e,y(d)?void 0:[d,l,...Ce(l,o,1,l.addRowListener(r,d,()=>q(e,l,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return c.getCell(d,e,t);if(s===d&&!C(t))return c.getCell(d,e,o);const a=X(E,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};F.transaction(()=>Q(f,e=>e(t))?Y(b,(r,n)=>F._[5](o,e,r,n(t,e))):F.delRow(o,e))})(e)},{3:B}=X(E,void 0),G=(e,t,r)=>{c.hasRow(d,r)?q(r,c,d,r,B):(F.delRow(o,r),O(E,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return F.transaction(()=>{_(c.getRowIds(d),e=>G(0,0,e)),Ce(c,o,0,c.addRowListener(d,null,G))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>f.delListener(e)),f.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>f.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,i,l]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>f.delListener(e)),fe(e,o),Le(e,[a,f.addRowListener(se,e,()=>Ee(e)),i]),Ve(e,l),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>f.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&f.setCell(se,e,t,r),Qe),getStore:le,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+f.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+f.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])f.delListener(E(e,1));else if(y(t))ie(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,ie),Z(b,e),ie(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:f.getListenerStats().row-P(de()),paramValue:f.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),i=U(),l=()=>{const n=null==s?de():[s];_(n,n=>{return M(i,n)?0:Z(i,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(i,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(i,e)))};return l(),Z(b,a,[n,i,null==s?Re(l):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[l]:[2,1],[l+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(i)),s.get(i))})();export{oe as createQueries};
|
|
Binary file
|