tinybase 10.0.0-beta.0 → 10.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/common/index.d.ts +1 -0
- package/@types/common/with-schemas/index.d.ts +1 -0
- package/@types/indexes/index.d.ts +4 -3
- package/@types/indexes/with-schemas/index.d.ts +4 -3
- package/@types/metrics/index.d.ts +1 -0
- package/@types/metrics/with-schemas/index.d.ts +1 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/persisters/index.d.ts +1 -0
- package/@types/persisters/persister-partykit-server/index.d.ts +17 -0
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +17 -0
- package/@types/persisters/persister-tinyjoin/index.d.ts +197 -0
- package/@types/persisters/persister-tinyjoin/with-schemas/index.d.ts +221 -0
- package/@types/persisters/with-schemas/index.d.ts +1 -0
- package/@types/queries/index.d.ts +3 -0
- package/@types/queries/with-schemas/index.d.ts +3 -0
- package/@types/relationships/index.d.ts +1 -0
- package/@types/relationships/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +4 -0
- package/@types/store/with-schemas/index.d.ts +4 -0
- package/@types/ui-react/index.d.ts +2 -0
- package/@types/ui-react/with-schemas/index.d.ts +1 -0
- package/@types/ui-react-dom-charts/index.d.ts +7 -0
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -0
- package/@types/ui-solid/index.d.ts +2 -0
- package/@types/ui-solid/with-schemas/index.d.ts +1 -0
- package/@types/ui-svelte/index.d.ts +23 -0
- package/@types/ui-svelte/with-schemas/index.d.ts +23 -0
- package/@types/ui-svelte-dom/index.d.ts +10 -0
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -0
- package/@types/ui-svelte-inspector/index.d.ts +1 -0
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -0
- package/checkpoints/index.js +4 -2
- package/checkpoints/with-schemas/index.js +4 -2
- package/index.js +37 -4
- package/metrics/index.js +2 -1
- package/metrics/with-schemas/index.js +2 -1
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/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-better-sqlite3/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pg/index.js +1 -1
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -1
- package/min/persisters/persister-pg/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/index.js +1 -1
- package/min/persisters/persister-sqlite-node/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-node/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/index.js +1 -0
- package/min/persisters/persister-tinyjoin/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js +1 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/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/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/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/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +205 -94
- package/omni/with-schemas/index.js +205 -94
- package/package.json +54 -14
- package/persisters/index.js +28 -13
- package/persisters/persister-better-sqlite3/index.js +70 -55
- package/persisters/persister-better-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-durable-object-sql-storage/index.js +28 -13
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +28 -13
- package/persisters/persister-electric-sql/index.js +70 -55
- package/persisters/persister-electric-sql/with-schemas/index.js +70 -55
- package/persisters/persister-expo-sqlite/index.js +70 -55
- package/persisters/persister-expo-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-libsql/index.js +91 -78
- package/persisters/persister-libsql/with-schemas/index.js +91 -78
- package/persisters/persister-pg/index.js +77 -62
- package/persisters/persister-pg/with-schemas/index.js +77 -62
- package/persisters/persister-pglite/index.js +28 -13
- package/persisters/persister-pglite/with-schemas/index.js +28 -13
- package/persisters/persister-postgres/index.js +28 -13
- package/persisters/persister-postgres/with-schemas/index.js +28 -13
- package/persisters/persister-powersync/index.js +81 -66
- package/persisters/persister-powersync/with-schemas/index.js +81 -66
- package/persisters/persister-react-native-sqlite/index.js +70 -55
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-bun/index.js +70 -55
- package/persisters/persister-sqlite-bun/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-node/index.js +70 -55
- package/persisters/persister-sqlite-node/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-wasm/index.js +70 -55
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite3/index.js +70 -55
- package/persisters/persister-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-tinyjoin/index.js +1710 -0
- package/persisters/persister-tinyjoin/with-schemas/index.js +1710 -0
- package/persisters/with-schemas/index.js +28 -13
- package/queries/index.js +2 -1
- package/queries/with-schemas/index.js +2 -1
- package/readme.md +3 -3
- package/relationships/index.js +39 -9
- package/relationships/with-schemas/index.js +39 -9
- package/releases.md +20 -1
- package/synchronizers/synchronizer-local/index.js +1 -1
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/with-schemas/index.js +37 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():B(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;ga(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(_)&&!E&&y&&m==s&&$(T)&&O(d,a))return await f("DROP "+J+aa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!$(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(Ta(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(T,a=>e+aa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(T)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(T))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(g(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,O,p,g)=>{const[T,I,S,D]=et(t,f,E,$,_,A,O,p,g),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>da(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:j,[qa]:s},Ba,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ot as createSqlite3Persister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):q(a)?V(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,N,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(ha(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(c,a,l),[aa,ta,na]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ea=a=>{a!=O&&(O=a,ta(G,void 0,O))},ia=()=>{ha(at,w)||ha(Wa,w)||!_(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=O&&(await L(async()=>{ea(1),g++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ea(1),g++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==O?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=O&&await L(()=>L(async()=>{ea(2),T++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(ha(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:Ea,getStatus:()=>O,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(ha(at,w)??1)-1;ga(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||O(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(N)&&!E&&y&&m==s&&_(T)&&O(d,a))return await f("DROP "+ia+fa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!_(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(Ta(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(T,a=>e+fa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await h(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(T)){const i=F(J(t),A);_(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if(_(T))u(N)&&O(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(g(ha(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(s,c)})`),s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,_,N)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[aa]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,_,N,A,O,p,g)=>{const[T,I,S,D]=et(t,f,E,_,N,A,O,p,g),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,ta,{[aa]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>G(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>Y(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:ta,[qa]:s},Ba,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,N,3,t);export{ot as createSqlite3Persister};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=t=>typeof t,a="tinybase",n="",e=",",s=t(n),i="true",r=(t,a,n)=>t.replace(a,n),o=Promise,c=t=>(a,n,e)=>t(a)?e?.():n(a),w=globalThis,l=t=>null==t,u=t=>void 0===t,y=t=>null===t,d=c(l),v=c(u),f=a=>t(a)==s,E=t=>Array.isArray(t),T=t=>t.length,N=t=>0==T(t),A=()=>{},h=t=>new o(t),g=async t=>o.all(t),p=(t,a)=>t.forEach(a),S=(t,a="")=>t.join(a),_=(t,a)=>t.map(a),I=(t,a)=>t.filter(a),L=(t,a=T(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),O=(t,a)=>t?.has(a)??!1,m=t=>u(t)||0==(t=>t?.size??0)(t),$=t=>[...t?.values()??[]],R=t=>t.clear(),D=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),P=(t,e)=>{throw((t,e)=>Error(a+":"+t+(u(e)?n:":"+e)))(t,e)},M=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},U=(t,a)=>M(t,t=>{M(()=>a?.(t))}),x=async(t,a)=>{try{return await t()}finally{await a()}},F=Object,j=t=>F.getPrototypeOf(t),q=F.entries,B=t=>!l(t)&&d(j(t),t=>t==F.prototype||l(j(t)),()=>!0),J=F.keys,k=F.freeze,z=(...t)=>F.assign(F.create(null),...t),G=(t,a,n)=>(F.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),K=(t=[])=>{const a=F.create(null);return p(t,([t,n])=>G(a,t,n)),a},V=(t,a)=>(delete t[a],t),X=(t,a)=>p(J(t),n=>a(t[n],n)),Y=(t,a)=>_(q(t),([t,n])=>a(n,t)),H=(t,a)=>{const n=K();return X(t,(t,e)=>G(n,e,a(t,e))),n},Q=t=>T(J(t)),W=t=>B(t)&&0==Q(t),Z=JSON.stringify,tt=JSON.parse,at=t=>""===t?void 0:E(t)?_(t,at):B(t)?H(t,at):t,nt="_",et="_id",st="WHERE",it="TABLE",rt="INSERT",ot="UPDATE",ct="ALTER "+it,wt="FROM",lt="DELETE "+wt,ut="SELECT*"+wt,yt="CREATE "+it,dt=/\$tableName/g,vt=t=>S(_(((t,a="",n)=>t.split(a,n))(t,"."),t=>`"${r(t,/"/g,'""')}"`),"."),ft=(...t)=>S(_(t,vt),e),Et=t=>"$"+t[0]++,Tt=(t,a,n=[1])=>S(_(t,()=>a(n)),e),Nt=(t,a=i,e)=>{const s=I([a==i?void 0:`(${At(a,vt(t))})`,e],t=>!u(t));return N(s)?n:st+S(s,"AND")},At=(t,a)=>r(t,dt,a),ht=async(t,a,n,s,i,r)=>{const o=[1],c=S(_(s,t=>vt(t)+"="+r(o)),e),w=r(o);for(const[e,o]of Y(i,(t,a)=>[a,t])){const i=_(o,t=>t??null);if(N(await t(ot+vt(a)+" SET"+c+" "+st+vt(n)+"="+w+" RETURNING"+vt(n),[...i,e]))){const c=[1];await t(rt+" INTO"+vt(a)+"("+ft(n,...s)+")VALUES("+Tt([e,...o],r,c)+")",[e,...i])}}},gt=Map,pt=t=>new gt(t),St=(t,a)=>t?.get(a),_t=(t,a)=>D(t,(t,n)=>a(n,t)),It=(t,a)=>{const n=[];return _t(t,(t,e)=>b(n,a(e,t))),n},Lt=(t,a,n)=>u(n)?(C(t,a),t):t?.set(a,n),bt=(t,a,n,e)=>{let s=St(t,a);return O(t,a)?e?.(s):Lt(t,a,s=n()),s},Ot=(t,a,n,e,s=0)=>v((n?bt:St)(t,a[s],s>T(a)-2?n:pt),i=>{if(s>T(a)-2)return e?.(i)&&Lt(t,a[s]),i;const r=Ot(i,a,n,e,s+1);return m(i)&&Lt(t,a[s]),r}),mt=t=>new Set(E(t)||u(t)?t:[t]),$t=(t,a)=>t?.add(a),Rt="ColumnName",Dt="store",Ct="json",Pt=Dt+"TableName",Mt=Dt+"Id"+Rt,Ut=Dt+Rt,xt="autoLoadIntervalSeconds",Ft="rowId"+Rt,jt="tableId",qt="tableName",Bt="deleteEmptyColumns",Jt="deleteEmptyTable",kt="condition",zt={mode:Ct,[xt]:1},Gt={load:0,save:0,[qt]:a+"_values"},Kt=t=>E(t)?t:void 0,Vt=t=>!0===t||E(t),Xt=(t,a,n,e,s)=>{const i=pt();return X(t,(t,r)=>{const o=(l=z(a,f(t)?{[n]:t}:t),c=F.values(l),w=Q(a),c.slice(0,w));var c,w,l;y(o[0])||e(r,o[0])||(s(r,o[0]),Lt(i,r,o))}),i},Yt=/^\d+$/,Ht=pt(),Qt=pt(),Wt=pt(),Zt=(t,a,e,s,i,r,o,c={},w=0,l=[])=>{let d,f,A,g,S,O=0,$=0,R=0,F=0,j=0,q=0,B=0,J=0,z=0;const G={},K=c.destroy;bt(Ht,l,()=>0),bt(Qt,l,()=>[]),Lt(Wt,l,(St(Wt,l)??0)+1);const V=pt(),[X,Y,H,Q,Z]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!W(t)||!W(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!W(t)||!W(a),a.setContent]:P(0))(o,t,w),[tt,at,nt]=(t=>{let a;const[e,s]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??n+a++,a=>{Yt.test(a)&&T(t)<1e3&&b(t,a)}]})(),i=pt(),r=(t,e,s,r)=>{let o,c=!1;if(p(((t,a=[n])=>{const e=[],s=(t,n)=>n==T(a)?b(e,t):y(a[n])?D(t,t=>s(t,n+1)):p([a[n],null],a=>s(St(t,a),n+1));return s(t,0),e})(e,s),n=>D(n,n=>{const e=()=>St(i,n)[0](a,...s??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(e):e()})),c)throw o};return[(s,r,o,c=[],w=()=>[])=>{a??=t();const l=e(1);return Lt(i,l,[s,r,o,c,w]),$t(Ot(r,o??[n],mt),l),l},(t,a,...n)=>r(!1,t,a,n),t=>v(St(i,t),([,a,e])=>(Ot(a,e??[n],void 0,a=>(C(a,t),m(a)?1:0)),Lt(i,t),s(t),e)),t=>v(St(i,t),([t,,n=[],e,s])=>{const i=(...r)=>{const o=T(r);o==T(n)?t(a,...r,...s(r)):y(n[o])?p(e[o]?.(...r)??[],t=>i(...r,t)):i(...r,n[o])};i()}),(t,a,...n)=>r(!0,t,a,n)]})(()=>Nt),et=t=>{t!=O&&(O=t,at(V,void 0,O))},st=()=>{St(Wt,l)||St(Ht,l)||!N(St(Qt,l)??[])||(Lt(Ht,l),Lt(Qt,l),Lt(Wt,l))},it=a=>{(X&&E(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},rt=async()=>{ft()&&t.__?.[0]?.()&&await yt()},ot=t=>x(()=>f=t,()=>{f==t&&(f=void 0)}),ct=async t=>(2!=O&&(await x(async()=>{et(1),$++,await Tt(()=>M(async()=>{const n=await a();E(n)?it(n):u(n)&&t?Z(t):u(n)||P(1,n)},a=>{r?.(a),t&&Z(t)}))},()=>et(0)),await rt()),Nt),wt=async()=>{const t=B;B=0,t&&t==F&&!z&&(2==O?B=t:await ct())},lt=async t=>{const a=++F;let n=!0;if(await ut(!0),a==F&&!z){const e=M(async()=>{const t=await s(async(t,e)=>{if(a==F&&!z)if(e||t){const a=n||2==O||!!q;j++,a&&q++,await x(async()=>{et(1),$++,await(a?Tt(()=>it(e??t)):(()=>{try{return it(e??t)}finally{et(0)}})())},()=>{a&&q--,--j||et(0)}),j||await rt()}else 2==O?B=a:await ct()});a!=F||z?u(t)||await i(t):d=t},r);await ot(e),a!=F||z||await x(()=>ct(t),()=>{n=!1})}return Nt},ut=async(t=!1)=>{B=0,t||F++;const a=f,n=d;return d=void 0,await ot(x(async()=>{await a},async()=>{u(n)||await M(()=>i(n),r)})),Nt},yt=async t=>(1!=O&&await x(()=>x(async()=>{et(2),R++,await Tt(()=>M(()=>e(Y,t),r))},()=>et(0)),wt),Nt),dt=async()=>{const a=++J;return await vt(!0),a!=J||z||(await yt(),a!=J||z||(A=t.addDidFinishTransactionListener(()=>{if(a==J&&!z){const t=H();Q(t)&&M(()=>yt(t))}}))),Nt},vt=async(a=!1)=>{a||J++;const n=A;return A=void 0,u(n)||t.delListener(n),Nt},ft=()=>!u(A),Et=async(t=!1)=>{const[a,n]=t?[vt,ut]:[ut,vt];return await x(()=>a(),async()=>{await n()}),Nt},Tt=async(...t)=>{let a,n=!1;const e=h(e=>N(t)?e():b(St(Qt,l),..._(t,(s,i)=>{const o=i==T(t)-1;return[async()=>{let t;S=h(a=>t=a),await x(async()=>{try{await M(s,r)}catch(t){n||(n=!0,a=t)}o&&e()},()=>{S=void 0,t()})},o?e:void 0,G]})));if(await(async()=>{if(!St(Ht,l)){Lt(Ht,l,1);const t=St(Qt,l);let a=0;await x(async()=>{for(;a<T(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{L(t,a),Lt(Ht,l,0),st()})}})(),await e,n)throw a;return Nt},Nt={load:ct,startAutoLoad:lt,stopAutoLoad:ut,isAutoLoading:()=>!u(d),save:yt,startAutoSave:dt,stopAutoSave:vt,isAutoSaving:ft,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,i]=a?[dt,lt,vt,ut]:[lt,dt,ut,vt],r=n(t),o=a?J:F;await r;const c=e(t),w=a?F:J;try{await c}catch(t){throw w==(a?F:J)&&await U(i),o==(a?J:F)&&await U(s),t}return Nt},stopAutoPersisting:Et,getStatus:()=>O,addStatusListener:t=>tt(t,V),delListener:a=>(nt(a),t),schedule:Tt,getStore:()=>t,getStats:()=>({loads:$,saves:R}),...c,destroy:async()=>(u(g)&&(z=1,g=(async()=>{const t=St(Qt,l),a=I(t,([,t,a])=>a!=G||(t?.(),!1)),n=S;L(t),b(t,...a),await x(()=>x(()=>x(Et,()=>n),()=>K?.()),()=>{const t=(St(Wt,l)??1)-1;Lt(Wt,l,t||void 0),st()})})()),await g,Nt)};return k(Nt)},ta=new w.TextEncoder,aa=(t,n,s,r,o,c=na,w,l,y)=>{const d=pt(),v=pt();let f=t;return[async()=>{R(d),R(v),p(await s(f,n),({tn:t,cn:a,uq:n})=>{$t(bt(d,t,mt),a),n&&$t(bt(v,t,mt),a)})},async(t,a,n,e)=>{const s=u(e)?void 0:mt(e);return((t,a)=>O(St(d,t),a))(t,a)?K(I(_(await f(ut+vt(t)+Nt(t,n)),t=>{const n=t[a],e=l?H(V(t,a),l):V(t,a);return[n,u(s)?e:K(I(Y(e,(t,a)=>[a,t]),([t])=>(t=>u(s)||O(s,t))(t)))]}),t=>!u(t[0])&&!W(t[1]))):{}},async(t,n,s,l,y,E=!1,T=i,A)=>{const h=u(A)?void 0:mt(A),L=t=>u(h)||O(h,t),m=mt();X(s??{},t=>p(I(J(t??{}),L),t=>$t(m,t)));const R=$(m);if(u(h)&&!E&&y&&T==i&&N(R)&&O(d,t))return await f("DROP "+it+vt(t)),Lt(d,t),void Lt(v,t);const D=St(d,t),P=mt(I($(D),t=>t==n||L(t)));if(!N(R))if(O(d,t)){if(await g(_([n,...R],async a=>{C(P,a)||(await f(ct+vt(t)+"ADD"+vt(a)+r),$t(D,a))})),c==na&&!O(St(v,t),n)){const e=a+"_pk_"+(t=>{let a=2166136261;return p(ta.encode(t),t=>{a^=t,a+=(a<<1)+(a<<4)+(a<<7)+(a<<8)+(a<<24)}),a>>>0})(Z([t,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+vt(e)+"ON"+vt(t)+`(${vt(n)})`),$t(bt(v,t,mt),n)}}else await f(yt+vt(t)+`(${vt(n)}${r} PRIMARY KEY${S(_(R,t=>e+vt(t)+r))});`),Lt(d,t,mt([n,...R])),Lt(v,t,mt([n]));if(await g([...!E&&l?_($(P),async a=>{a!=n&&(await f(ct+vt(t)+"DROP"+vt(a)),C(D,a))}):[]]),E)u(s)?u(h)&&await f(lt+vt(t)+Nt(t,T)):await g(Y(s,async(a,e)=>{if(u(a))await f(lt+vt(t)+Nt(t,T,`(${vt(n)}=${o([1])})`),[e]);else if(!N(R)){const s=I(J(a),L);N(s)||await c(f,t,n,s,{[e]:_(s,t=>w?w(a[t]):a[t])},o,D)}}));else if(N(R))u(h)&&O(d,t)&&await f(lt+vt(t)+Nt(t,T));else{const a=I($(St(d,t)),t=>t!=n&&L(t)),e=K(),i=[];X(s??{},(t,n)=>{G(e,n,_(a,a=>w?w(t?.[a]):t?.[a])),b(i,n)}),await c(f,t,n,a,e,o,D),await f(lt+vt(t)+Nt(t,T,`${vt(n)}NOT IN(${Tt(i,o)})`),i)}},async a=>{if(y)return await y(async t=>{const n=f;return f=t,await x(a,()=>{f=n})});await t("BEGIN");try{const n=await a();return await t("END"),n}catch(a){throw await M(()=>t("ROLLBACK")),a}}]},na=async(t,a,n,s,i,r)=>{const o=[1];await t(rt+" INTO"+vt(a)+"("+ft(n,...s)+")VALUES"+S(Y(i,t=>"("+r(o)+","+Tt(t,r,o)+")"),e)+"ON CONFLICT("+vt(n)+`)DO ${ot} SET`+S(_(s,t=>vt(t)+"=excluded."+vt(t)),e),Y(i,(t,a)=>[a,..._(t,t=>t??null)]).flat())},ea=(t,a,n,e,s,i,r,[o,c,w],l,y,d,v,f,E,T,N,A,h)=>{const[g,p,S,_]=aa(a,l,y,f,E,T,void 0,void 0,h);return Zt(t,()=>_(async()=>{return await g(),t=(await p(o,c))[nt]?.[w]??"null",at(tt(t));var t}),t=>_(async()=>{var a;await g(),await S(o,c,{[nt]:{[w]:(a=t()??null,Z(a,(t,a)=>u(a)?"":a))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},sa=(t,a,n,e,s,i,r,[o,c,[w,l,y,d,v]],f,E,T,N,A,h,p,S,L,b)=>{const[O,m,$,R]=aa(a,f,E,A,h,p,S,L,b),D=(t,a)=>g(It(c,async([n,e,s,i,r],o)=>{var c,w;a&&(c=t,w=o,!F.hasOwn(c,w))||await $(n,e,t[o],s,i,a,r)})),C=(t,a,n)=>K(1==n?I(Y(t,(t,a)=>[a,t]),([t])=>{return n=t,a.includes(n);var n}):I(_(a,a=>[a,t[a]]),([,t])=>!u(t))),P=async(t,a)=>l?await $(y,et,{[nt]:u(v)?t:C(t,v,a)},!0,!0,a,void 0,v):null;return Zt(t,()=>R(async()=>{await O();const t=await(async()=>K(I(await g(It(o,async([t,a,n],e)=>[t,await m(e,a,n)])),t=>!W(t[1]))))(),a=await(async()=>w?(await m(y,et,void 0,d))[nt]:{})();return W(t)&&u(a)?void 0:[t,a]}),(t,a)=>R(async()=>{if(await O(),u(a)){const[a,n]=t();await D(a),await P(n)}else await D(a[0],!0),await P(a[1],!0)}),n,e,s,r,{[N]:()=>T,destroy:i},0,T)},ia=(t,n,e,s,r)=>{const o=((t,a)=>a?async(n,e)=>(a(n,e),await t(n,e)):t)(async(t,a=[])=>(await n.query(t,a)).rows,s),[c,,w,l]=(t=>{const n=(t=>z(zt,f(t)?{[Pt]:t}:t??{}))(t),e=n[xt];if(n.mode==Ct){const t=n[Pt]??a;return[1,e,[t,n[Mt]??et,n[Ut]??Dt],mt(t)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=z(Gt,o),{load:w,save:l}=c,u=[Vt(w),Vt(l),c[qt],Kt(w),Kt(l)],y=u[2],d=mt(y),v=mt(y),E=Xt(s,{[jt]:null,[Ft]:et,[kt]:i},jt,t=>O(v,t),t=>$t(d,t)),T=Xt(r,{[qt]:null,[Ft]:et,[Bt]:0,[Jt]:0,[kt]:null},qt,(t,a)=>O(v,a),(t,a)=>$t(d,a));return _t(T,(t,a)=>a[4]??=St(E,a[0])?.[2]??i),[0,e,[E,T,u],d]})(e);!c&&t.isMergeable()&&P(0);const u=$(l);return(c?ea:sa)(t,o,t=>n.subscribe({tables:u},()=>{U(t,r)}),t=>t(),r,A,3,w,u,async()=>{const t=[];return await g(_(u,async a=>{const e=ut+vt(a)+"LIMIT 0";s?.(e),await U(async()=>p((await n.query(e)).fields,({name:n})=>b(t,{tn:a,cn:n})))})),t},n,"getTinyJoin","text",Et,ht,t=>Z(t),t=>tt(t),t=>t(o))};export{ia as createTinyJoinPersister};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=t=>typeof t,a="tinybase",n="",e=",",s=t(n),i="true",r=(t,a,n)=>t.replace(a,n),o=Promise,c=t=>(a,n,e)=>t(a)?e?.():n(a),w=globalThis,l=t=>null==t,u=t=>void 0===t,y=t=>null===t,d=c(l),v=c(u),f=a=>t(a)==s,E=t=>Array.isArray(t),T=t=>t.length,N=t=>0==T(t),A=()=>{},h=t=>new o(t),g=async t=>o.all(t),p=(t,a)=>t.forEach(a),S=(t,a="")=>t.join(a),_=(t,a)=>t.map(a),I=(t,a)=>t.filter(a),L=(t,a=T(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),O=(t,a)=>t?.has(a)??!1,m=t=>u(t)||0==(t=>t?.size??0)(t),$=t=>[...t?.values()??[]],R=t=>t.clear(),D=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),P=(t,e)=>{throw((t,e)=>Error(a+":"+t+(u(e)?n:":"+e)))(t,e)},M=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},U=(t,a)=>M(t,t=>{M(()=>a?.(t))}),x=async(t,a)=>{try{return await t()}finally{await a()}},F=Object,j=t=>F.getPrototypeOf(t),q=F.entries,B=t=>!l(t)&&d(j(t),t=>t==F.prototype||l(j(t)),()=>!0),J=F.keys,k=F.freeze,z=(...t)=>F.assign(F.create(null),...t),G=(t,a,n)=>(F.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),K=(t=[])=>{const a=F.create(null);return p(t,([t,n])=>G(a,t,n)),a},V=(t,a)=>(delete t[a],t),X=(t,a)=>p(J(t),n=>a(t[n],n)),Y=(t,a)=>_(q(t),([t,n])=>a(n,t)),H=(t,a)=>{const n=K();return X(t,(t,e)=>G(n,e,a(t,e))),n},Q=t=>T(J(t)),W=t=>B(t)&&0==Q(t),Z=JSON.stringify,tt=JSON.parse,at=t=>""===t?void 0:E(t)?_(t,at):B(t)?H(t,at):t,nt="_",et="_id",st="WHERE",it="TABLE",rt="INSERT",ot="UPDATE",ct="ALTER "+it,wt="FROM",lt="DELETE "+wt,ut="SELECT*"+wt,yt="CREATE "+it,dt=/\$tableName/g,vt=t=>S(_(((t,a="",n)=>t.split(a,n))(t,"."),t=>`"${r(t,/"/g,'""')}"`),"."),ft=(...t)=>S(_(t,vt),e),Et=t=>"$"+t[0]++,Tt=(t,a,n=[1])=>S(_(t,()=>a(n)),e),Nt=(t,a=i,e)=>{const s=I([a==i?void 0:`(${At(a,vt(t))})`,e],t=>!u(t));return N(s)?n:st+S(s,"AND")},At=(t,a)=>r(t,dt,a),ht=async(t,a,n,s,i,r)=>{const o=[1],c=S(_(s,t=>vt(t)+"="+r(o)),e),w=r(o);for(const[e,o]of Y(i,(t,a)=>[a,t])){const i=_(o,t=>t??null);if(N(await t(ot+vt(a)+" SET"+c+" "+st+vt(n)+"="+w+" RETURNING"+vt(n),[...i,e]))){const c=[1];await t(rt+" INTO"+vt(a)+"("+ft(n,...s)+")VALUES("+Tt([e,...o],r,c)+")",[e,...i])}}},gt=Map,pt=t=>new gt(t),St=(t,a)=>t?.get(a),_t=(t,a)=>D(t,(t,n)=>a(n,t)),It=(t,a)=>{const n=[];return _t(t,(t,e)=>b(n,a(e,t))),n},Lt=(t,a,n)=>u(n)?(C(t,a),t):t?.set(a,n),bt=(t,a,n,e)=>{let s=St(t,a);return O(t,a)?e?.(s):Lt(t,a,s=n()),s},Ot=(t,a,n,e,s=0)=>v((n?bt:St)(t,a[s],s>T(a)-2?n:pt),i=>{if(s>T(a)-2)return e?.(i)&&Lt(t,a[s]),i;const r=Ot(i,a,n,e,s+1);return m(i)&&Lt(t,a[s]),r}),mt=t=>new Set(E(t)||u(t)?t:[t]),$t=(t,a)=>t?.add(a),Rt="ColumnName",Dt="store",Ct="json",Pt=Dt+"TableName",Mt=Dt+"Id"+Rt,Ut=Dt+Rt,xt="autoLoadIntervalSeconds",Ft="rowId"+Rt,jt="tableId",qt="tableName",Bt="deleteEmptyColumns",Jt="deleteEmptyTable",kt="condition",zt={mode:Ct,[xt]:1},Gt={load:0,save:0,[qt]:a+"_values"},Kt=t=>E(t)?t:void 0,Vt=t=>!0===t||E(t),Xt=(t,a,n,e,s)=>{const i=pt();return X(t,(t,r)=>{const o=(l=z(a,f(t)?{[n]:t}:t),c=F.values(l),w=Q(a),c.slice(0,w));var c,w,l;y(o[0])||e(r,o[0])||(s(r,o[0]),Lt(i,r,o))}),i},Yt=/^\d+$/,Ht=pt(),Qt=pt(),Wt=pt(),Zt=(t,a,e,s,i,r,o,c={},w=0,l=[])=>{let d,f,A,g,S,O=0,$=0,R=0,F=0,j=0,q=0,B=0,J=0,z=0;const G={},K=c.destroy;bt(Ht,l,()=>0),bt(Qt,l,()=>[]),Lt(Wt,l,(St(Wt,l)??0)+1);const V=pt(),[X,Y,H,Q,Z]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!W(t)||!W(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!W(t)||!W(a),a.setContent]:P(0))(o,t,w),[tt,at,nt]=(t=>{let a;const[e,s]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??n+a++,a=>{Yt.test(a)&&T(t)<1e3&&b(t,a)}]})(),i=pt(),r=(t,e,s,r)=>{let o,c=!1;if(p(((t,a=[n])=>{const e=[],s=(t,n)=>n==T(a)?b(e,t):y(a[n])?D(t,t=>s(t,n+1)):p([a[n],null],a=>s(St(t,a),n+1));return s(t,0),e})(e,s),n=>D(n,n=>{const e=()=>St(i,n)[0](a,...s??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(e):e()})),c)throw o};return[(s,r,o,c=[],w=()=>[])=>{a??=t();const l=e(1);return Lt(i,l,[s,r,o,c,w]),$t(Ot(r,o??[n],mt),l),l},(t,a,...n)=>r(!1,t,a,n),t=>v(St(i,t),([,a,e])=>(Ot(a,e??[n],void 0,a=>(C(a,t),m(a)?1:0)),Lt(i,t),s(t),e)),t=>v(St(i,t),([t,,n=[],e,s])=>{const i=(...r)=>{const o=T(r);o==T(n)?t(a,...r,...s(r)):y(n[o])?p(e[o]?.(...r)??[],t=>i(...r,t)):i(...r,n[o])};i()}),(t,a,...n)=>r(!0,t,a,n)]})(()=>Nt),et=t=>{t!=O&&(O=t,at(V,void 0,O))},st=()=>{St(Wt,l)||St(Ht,l)||!N(St(Qt,l)??[])||(Lt(Ht,l),Lt(Qt,l),Lt(Wt,l))},it=a=>{(X&&E(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},rt=async()=>{ft()&&t.__?.[0]?.()&&await yt()},ot=t=>x(()=>f=t,()=>{f==t&&(f=void 0)}),ct=async t=>(2!=O&&(await x(async()=>{et(1),$++,await Tt(()=>M(async()=>{const n=await a();E(n)?it(n):u(n)&&t?Z(t):u(n)||P(1,n)},a=>{r?.(a),t&&Z(t)}))},()=>et(0)),await rt()),Nt),wt=async()=>{const t=B;B=0,t&&t==F&&!z&&(2==O?B=t:await ct())},lt=async t=>{const a=++F;let n=!0;if(await ut(!0),a==F&&!z){const e=M(async()=>{const t=await s(async(t,e)=>{if(a==F&&!z)if(e||t){const a=n||2==O||!!q;j++,a&&q++,await x(async()=>{et(1),$++,await(a?Tt(()=>it(e??t)):(()=>{try{return it(e??t)}finally{et(0)}})())},()=>{a&&q--,--j||et(0)}),j||await rt()}else 2==O?B=a:await ct()});a!=F||z?u(t)||await i(t):d=t},r);await ot(e),a!=F||z||await x(()=>ct(t),()=>{n=!1})}return Nt},ut=async(t=!1)=>{B=0,t||F++;const a=f,n=d;return d=void 0,await ot(x(async()=>{await a},async()=>{u(n)||await M(()=>i(n),r)})),Nt},yt=async t=>(1!=O&&await x(()=>x(async()=>{et(2),R++,await Tt(()=>M(()=>e(Y,t),r))},()=>et(0)),wt),Nt),dt=async()=>{const a=++J;return await vt(!0),a!=J||z||(await yt(),a!=J||z||(A=t.addDidFinishTransactionListener(()=>{if(a==J&&!z){const t=H();Q(t)&&M(()=>yt(t))}}))),Nt},vt=async(a=!1)=>{a||J++;const n=A;return A=void 0,u(n)||t.delListener(n),Nt},ft=()=>!u(A),Et=async(t=!1)=>{const[a,n]=t?[vt,ut]:[ut,vt];return await x(()=>a(),async()=>{await n()}),Nt},Tt=async(...t)=>{let a,n=!1;const e=h(e=>N(t)?e():b(St(Qt,l),..._(t,(s,i)=>{const o=i==T(t)-1;return[async()=>{let t;S=h(a=>t=a),await x(async()=>{try{await M(s,r)}catch(t){n||(n=!0,a=t)}o&&e()},()=>{S=void 0,t()})},o?e:void 0,G]})));if(await(async()=>{if(!St(Ht,l)){Lt(Ht,l,1);const t=St(Qt,l);let a=0;await x(async()=>{for(;a<T(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{L(t,a),Lt(Ht,l,0),st()})}})(),await e,n)throw a;return Nt},Nt={load:ct,startAutoLoad:lt,stopAutoLoad:ut,isAutoLoading:()=>!u(d),save:yt,startAutoSave:dt,stopAutoSave:vt,isAutoSaving:ft,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,i]=a?[dt,lt,vt,ut]:[lt,dt,ut,vt],r=n(t),o=a?J:F;await r;const c=e(t),w=a?F:J;try{await c}catch(t){throw w==(a?F:J)&&await U(i),o==(a?J:F)&&await U(s),t}return Nt},stopAutoPersisting:Et,getStatus:()=>O,addStatusListener:t=>tt(t,V),delListener:a=>(nt(a),t),schedule:Tt,getStore:()=>t,getStats:()=>({loads:$,saves:R}),...c,destroy:async()=>(u(g)&&(z=1,g=(async()=>{const t=St(Qt,l),a=I(t,([,t,a])=>a!=G||(t?.(),!1)),n=S;L(t),b(t,...a),await x(()=>x(()=>x(Et,()=>n),()=>K?.()),()=>{const t=(St(Wt,l)??1)-1;Lt(Wt,l,t||void 0),st()})})()),await g,Nt)};return k(Nt)},ta=new w.TextEncoder,aa=(t,n,s,r,o,c=na,w,l,y)=>{const d=pt(),v=pt();let f=t;return[async()=>{R(d),R(v),p(await s(f,n),({tn:t,cn:a,uq:n})=>{$t(bt(d,t,mt),a),n&&$t(bt(v,t,mt),a)})},async(t,a,n,e)=>{const s=u(e)?void 0:mt(e);return((t,a)=>O(St(d,t),a))(t,a)?K(I(_(await f(ut+vt(t)+Nt(t,n)),t=>{const n=t[a],e=l?H(V(t,a),l):V(t,a);return[n,u(s)?e:K(I(Y(e,(t,a)=>[a,t]),([t])=>(t=>u(s)||O(s,t))(t)))]}),t=>!u(t[0])&&!W(t[1]))):{}},async(t,n,s,l,y,E=!1,T=i,A)=>{const h=u(A)?void 0:mt(A),L=t=>u(h)||O(h,t),m=mt();X(s??{},t=>p(I(J(t??{}),L),t=>$t(m,t)));const R=$(m);if(u(h)&&!E&&y&&T==i&&N(R)&&O(d,t))return await f("DROP "+it+vt(t)),Lt(d,t),void Lt(v,t);const D=St(d,t),P=mt(I($(D),t=>t==n||L(t)));if(!N(R))if(O(d,t)){if(await g(_([n,...R],async a=>{C(P,a)||(await f(ct+vt(t)+"ADD"+vt(a)+r),$t(D,a))})),c==na&&!O(St(v,t),n)){const e=a+"_pk_"+(t=>{let a=2166136261;return p(ta.encode(t),t=>{a^=t,a+=(a<<1)+(a<<4)+(a<<7)+(a<<8)+(a<<24)}),a>>>0})(Z([t,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+vt(e)+"ON"+vt(t)+`(${vt(n)})`),$t(bt(v,t,mt),n)}}else await f(yt+vt(t)+`(${vt(n)}${r} PRIMARY KEY${S(_(R,t=>e+vt(t)+r))});`),Lt(d,t,mt([n,...R])),Lt(v,t,mt([n]));if(await g([...!E&&l?_($(P),async a=>{a!=n&&(await f(ct+vt(t)+"DROP"+vt(a)),C(D,a))}):[]]),E)u(s)?u(h)&&await f(lt+vt(t)+Nt(t,T)):await g(Y(s,async(a,e)=>{if(u(a))await f(lt+vt(t)+Nt(t,T,`(${vt(n)}=${o([1])})`),[e]);else if(!N(R)){const s=I(J(a),L);N(s)||await c(f,t,n,s,{[e]:_(s,t=>w?w(a[t]):a[t])},o,D)}}));else if(N(R))u(h)&&O(d,t)&&await f(lt+vt(t)+Nt(t,T));else{const a=I($(St(d,t)),t=>t!=n&&L(t)),e=K(),i=[];X(s??{},(t,n)=>{G(e,n,_(a,a=>w?w(t?.[a]):t?.[a])),b(i,n)}),await c(f,t,n,a,e,o,D),await f(lt+vt(t)+Nt(t,T,`${vt(n)}NOT IN(${Tt(i,o)})`),i)}},async a=>{if(y)return await y(async t=>{const n=f;return f=t,await x(a,()=>{f=n})});await t("BEGIN");try{const n=await a();return await t("END"),n}catch(a){throw await M(()=>t("ROLLBACK")),a}}]},na=async(t,a,n,s,i,r)=>{const o=[1];await t(rt+" INTO"+vt(a)+"("+ft(n,...s)+")VALUES"+S(Y(i,t=>"("+r(o)+","+Tt(t,r,o)+")"),e)+"ON CONFLICT("+vt(n)+`)DO ${ot} SET`+S(_(s,t=>vt(t)+"=excluded."+vt(t)),e),Y(i,(t,a)=>[a,..._(t,t=>t??null)]).flat())},ea=(t,a,n,e,s,i,r,[o,c,w],l,y,d,v,f,E,T,N,A,h)=>{const[g,p,S,_]=aa(a,l,y,f,E,T,void 0,void 0,h);return Zt(t,()=>_(async()=>{return await g(),t=(await p(o,c))[nt]?.[w]??"null",at(tt(t));var t}),t=>_(async()=>{var a;await g(),await S(o,c,{[nt]:{[w]:(a=t()??null,Z(a,(t,a)=>u(a)?"":a))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},sa=(t,a,n,e,s,i,r,[o,c,[w,l,y,d,v]],f,E,T,N,A,h,p,S,L,b)=>{const[O,m,$,R]=aa(a,f,E,A,h,p,S,L,b),D=(t,a)=>g(It(c,async([n,e,s,i,r],o)=>{var c,w;a&&(c=t,w=o,!F.hasOwn(c,w))||await $(n,e,t[o],s,i,a,r)})),C=(t,a,n)=>K(1==n?I(Y(t,(t,a)=>[a,t]),([t])=>{return n=t,a.includes(n);var n}):I(_(a,a=>[a,t[a]]),([,t])=>!u(t))),P=async(t,a)=>l?await $(y,et,{[nt]:u(v)?t:C(t,v,a)},!0,!0,a,void 0,v):null;return Zt(t,()=>R(async()=>{await O();const t=await(async()=>K(I(await g(It(o,async([t,a,n],e)=>[t,await m(e,a,n)])),t=>!W(t[1]))))(),a=await(async()=>w?(await m(y,et,void 0,d))[nt]:{})();return W(t)&&u(a)?void 0:[t,a]}),(t,a)=>R(async()=>{if(await O(),u(a)){const[a,n]=t();await D(a),await P(n)}else await D(a[0],!0),await P(a[1],!0)}),n,e,s,r,{[N]:()=>T,destroy:i},0,T)},ia=(t,n,e,s,r)=>{const o=((t,a)=>a?async(n,e)=>(a(n,e),await t(n,e)):t)(async(t,a=[])=>(await n.query(t,a)).rows,s),[c,,w,l]=(t=>{const n=(t=>z(zt,f(t)?{[Pt]:t}:t??{}))(t),e=n[xt];if(n.mode==Ct){const t=n[Pt]??a;return[1,e,[t,n[Mt]??et,n[Ut]??Dt],mt(t)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=z(Gt,o),{load:w,save:l}=c,u=[Vt(w),Vt(l),c[qt],Kt(w),Kt(l)],y=u[2],d=mt(y),v=mt(y),E=Xt(s,{[jt]:null,[Ft]:et,[kt]:i},jt,t=>O(v,t),t=>$t(d,t)),T=Xt(r,{[qt]:null,[Ft]:et,[Bt]:0,[Jt]:0,[kt]:null},qt,(t,a)=>O(v,a),(t,a)=>$t(d,a));return _t(T,(t,a)=>a[4]??=St(E,a[0])?.[2]??i),[0,e,[E,T,u],d]})(e);!c&&t.isMergeable()&&P(0);const u=$(l);return(c?ea:sa)(t,o,t=>n.subscribe({tables:u},()=>{U(t,r)}),t=>t(),r,A,3,w,u,async()=>{const t=[];return await g(_(u,async a=>{const e=ut+vt(a)+"LIMIT 0";s?.(e),await U(async()=>p((await n.query(e)).fields,({name:n})=>b(t,{tn:a,cn:n})))})),t},n,"getTinyJoin","text",Et,ht,t=>Z(t),t=>tt(t),t=>t(o))};export{ia as createTinyJoinPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",c=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,_=o(l),E=o(u),m=t=>a(t)==i,N=a=>Array.isArray(a),v=a=>a.length,$=a=>0==v(a),O=(a,t)=>a.test(t),A=a=>new r(a),f=async a=>r.all(a),R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),I=(a,t)=>a.filter(t),g=(a,t=v(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},b=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>b(a,a=>{b(()=>t?.(a))}),p=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a?.has(t)??!1,F=a=>u(a)||0==(a=>a?.size??0)(a),M=a=>[...a?.values()??[]],P=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),G=Object,x=a=>G.getPrototypeOf(a),H=G.entries,Y=a=>!l(a)&&_(x(a),a=>a==G.prototype||l(x(a)),()=>!0),B=G.keys,W=G.freeze,X=(...a)=>G.assign(G.create(null),...a),j=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return R(a,([a,n])=>j(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>R(B(a),n=>t(a[n],n)),z=(a,t)=>h(H(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>j(n,e,t(a,e))),n},V=a=>v(B(a)),Z=a=>Y(a)&&0==V(a),aa=Map,ta=a=>new aa(a),na=(a,t)=>a?.get(t),ea=(a,t)=>k(a,(a,n)=>t(n,a)),ia=(a,t)=>{const n=[];return ea(a,(a,e)=>S(n,t(e,a))),n},sa=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ca=(a,t,n,e)=>{let i=na(a,t);return C(a,t)?e?.(i):sa(a,t,i=n()),i},ra=(a,t,n,e,i=0)=>E((n?ca:na)(a,t[i],i>v(t)-2?n:ta),s=>{if(i>v(t)-2)return e?.(s)&&sa(a,t[i]),s;const c=ra(s,t,n,e,i+1);return F(s)&&sa(a,t[i]),c}),oa=/^\d+$/,wa=a=>new Set(N(a)||u(a)?a:[a]),la=(a,t)=>a?.add(t),ua={Idle:0,Loading:1,Saving:2},ya={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},da=ta(),_a=ta(),Ea=ta(),ma=(a,t,e,i,s,c,r,o={},w=0,l=[])=>{let d,_,m,f,T,C=0,M=0,P=0,G=0,x=0,H=0,Y=0,B=0,X=0;const j={},q=o.destroy;ca(da,l,()=>0),ca(_a,l,()=>[]),sa(Ea,l,(na(Ea,l)??0)+1);const J=ta(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(r,a,w),[ea,ia,ua]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{O(oa,t)&&v(a)<1e3&&S(a,t)}]})(),s=ta(),c=(a,e,i,c)=>{let r,o=!1;if(R(((a,t=[n])=>{const e=[],i=(a,n)=>n==v(t)?S(e,a):y(t[n])?k(a,a=>i(a,n+1)):R([t[n],null],t=>i(na(a,t),n+1));return i(a,0),e})(e,i),n=>k(n,n=>{const e=()=>na(s,n)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(i,c,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return sa(s,l,[i,c,r,o,w]),la(ra(c,r??[n],wa),l),l},(a,t,...n)=>c(!1,a,t,n),a=>E(na(s,a),([,t,e])=>(ra(t,e??[n],void 0,t=>(U(t,a),F(t)?1:0)),sa(s,a),i(a),e)),a=>E(na(s,a),([a,,n=[],e,i])=>{const s=(...c)=>{const r=v(c);r==v(n)?a(t,...c,...i(c)):y(n[r])?R(e[r]?.(...c)??[],a=>s(...c,a)):s(...c,n[r])};s()}),(a,t,...n)=>c(!0,a,t,n)]})(()=>ba),ya=a=>{a!=C&&(C=a,ia(J,void 0,C))},ma=()=>{na(Ea,l)||na(da,l)||!$(na(_a,l)??[])||(sa(da,l),sa(_a,l),sa(Ea,l))},Na=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},va=async()=>{ga()&&a.__?.[0]?.()&&await Ta()},$a=a=>p(()=>_=a,()=>{_==a&&(_=void 0)}),Oa=async a=>(2!=C&&(await p(async()=>{ya(1),M++,await Da(()=>b(async()=>{const n=await t();N(n)?Na(n):u(n)&&a?aa(a):u(n)||D(1,n)},t=>{c?.(t),a&&aa(a)}))},()=>ya(0)),await va()),ba),Aa=async()=>{const a=Y;Y=0,a&&a==G&&!X&&(2==C?Y=a:await Oa())},fa=async a=>{const t=++G;let n=!0;if(await Ra(!0),t==G&&!X){const e=b(async()=>{const a=await i(async(a,e)=>{if(t==G&&!X)if(e||a){const t=n||2==C||!!H;x++,t&&H++,await p(async()=>{ya(1),M++,await(t?Da(()=>Na(e??a)):(()=>{try{return Na(e??a)}finally{ya(0)}})())},()=>{t&&H--,--x||ya(0)}),x||await va()}else 2==C?Y=t:await Oa()});t!=G||X?u(a)||await s(a):d=a},c);await $a(e),t!=G||X||await p(()=>Oa(a),()=>{n=!1})}return ba},Ra=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await $a(p(async()=>{await t},async()=>{u(n)||await b(()=>s(n),c)})),ba},Ta=async a=>(1!=C&&await p(()=>p(async()=>{ya(2),P++,await Da(()=>b(()=>e(z,a),c))},()=>ya(0)),Aa),ba),ha=async()=>{const t=++B;return await Ia(!0),t!=B||X||(await Ta(),t!=B||X||(m=a.addDidFinishTransactionListener(()=>{if(t==B&&!X){const a=Q();V(a)&&b(()=>Ta(a))}}))),ba},Ia=async(t=!1)=>{t||B++;const n=m;return m=void 0,u(n)||a.delListener(n),ba},ga=()=>!u(m),Sa=async(a=!1)=>{const[t,n]=a?[Ia,Ra]:[Ra,Ia];return await p(()=>t(),async()=>{await n()}),ba},Da=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():S(na(_a,l),...h(a,(i,s)=>{const r=s==v(a)-1;return[async()=>{let a;T=A(t=>a=t),await p(async()=>{try{await b(i,c)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{T=void 0,a()})},r?e:void 0,j]})));if(await(async()=>{if(!na(da,l)){sa(da,l,1);const a=na(_a,l);let t=0;await p(async()=>{for(;t<v(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{g(a,t),sa(da,l,0),ma()})}})(),await e,n)throw t;return ba},ba={load:Oa,startAutoLoad:fa,stopAutoLoad:Ra,isAutoLoading:()=>!u(d),save:Ta,startAutoSave:ha,stopAutoSave:Ia,isAutoSaving:ga,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ha,fa,Ia,Ra]:[fa,ha,Ra,Ia],c=n(a),r=t?B:G;await c;const o=e(a),w=t?G:B;try{await o}catch(a){throw w==(t?G:B)&&await L(s),r==(t?B:G)&&await L(i),a}return ba},stopAutoPersisting:Sa,getStatus:()=>C,addStatusListener:a=>ea(a,J),delListener:t=>(ua(t),a),schedule:Da,getStore:()=>a,getStats:()=>({loads:M,saves:P}),...o,destroy:async()=>(u(f)&&(X=1,f=(async()=>{const a=na(_a,l),t=I(a,([,a,t])=>t!=j||(a?.(),!1)),n=T;g(a),S(a,...t),await p(()=>p(()=>p(Sa,()=>n),()=>q?.()),()=>{const a=(na(Ea,l)??1)-1;sa(Ea,l,a||void 0),ma()})})()),await f,ba)};return W(ba)},Na=JSON.stringify,va=JSON.parse,$a=a=>Na(a,(a,t)=>u(t)?"":t),Oa=a=>""===a?void 0:N(a)?h(a,Oa):Y(a)?Q(a,Oa):a,Aa=new w.TextEncoder,fa=a=>{let t=2166136261;return R(Aa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ra="_",Ta="_id",ha="SELECT",Ia="WHERE",ga="TABLE",Sa="INSERT",Da="DELETE",ba="UPDATE",La="ALTER "+ga,pa="FROM",Ca=Da+" "+pa,Fa=ha+"*"+pa,Ma="pragma_",Pa="data_version",ka="schema_version",Ua="pragma_table_",Ga="CREATE ",xa=Ga+ga,Ha="OR REPLACE ",Ya="FUNCTION",Ba=/\$tableName/g,Wa=(a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a,Xa=a=>T(h(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),ja=(...a)=>Xa(T(a,"_")),qa=a=>"$"+a[0]++,Ja=()=>"?",Ka=(a,t,n=[1])=>T(h(a,()=>t(n)),e),za=(a,t=s)=>Ia+`(${Qa(t,Xa(a))})`,Qa=(a,t)=>c(a,Ba,t),Va="ColumnName",Za="store",at="json",tt=Za+"TableName",nt=Za+"Id"+Va,et=Za+Va,it="autoLoadIntervalSeconds",st="rowId"+Va,ct="tableId",rt="tableName",ot="deleteEmptyColumns",wt="deleteEmptyTable",lt="condition",ut={mode:at,[it]:1},yt={load:0,save:0,[rt]:t+"_values"},dt=a=>N(a)?a:void 0,_t=a=>d(a)||N(a),Et=(a,t,n,e,i)=>{const s=ta();return K(a,(a,c)=>{const r=(l=X(t,m(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(c,r[0])||(i(c,r[0]),sa(s,c,r))}),s},mt=a=>{const n=(a=>X(ut,m(a)?{[tt]:a}:a??{}))(a),e=n[it];if(n.mode==at){const a=n[tt]??t;return[1,e,[a,n[nt]??Ta,n[et]??Za],wa(a)]}const{tables:{load:i={},save:c={}}={},values:r={}}=n,o=X(yt,r),{load:w,save:l}=o,u=[_t(w),_t(l),o[rt],dt(w),dt(l)],y=u[2],d=wa(y),_=wa(y),E=Et(i,{[ct]:null,[st]:Ta,[lt]:s},ct,a=>C(_,a),a=>la(d,a)),N=Et(c,{[rt]:null,[st]:Ta,[ot]:0,[wt]:0,[lt]:null},rt,(a,t)=>C(_,t),(a,t)=>la(d,t));return ea(N,(a,t)=>t[4]??=na(E,t[0])?.[2]??s),[0,e,[E,N,u],d]},Nt=(a,n,i,c,r,o=vt,w,l,y)=>{const d=ta(),_=ta();let E=a;return[async()=>{P(d),P(_),R(await i(E,n),({tn:a,cn:t,uq:n})=>{la(ca(d,a,wa),t),n&&la(ca(_,a,wa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:wa(e);return((a,t)=>C(na(d,a),t))(a,t)?q(I(h(await E(Fa+Xa(a)+za(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(i)?e:q(I(z(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||C(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,l,y,m=!1,N=s,v)=>{const O=u(v)?void 0:wa(v),A=a=>u(O)||C(O,a),g=wa();K(i??{},a=>R(I(B(a??{}),A),a=>la(g,a)));const D=M(g);if(u(O)&&!m&&y&&N==s&&$(D)&&C(d,a))return await E("DROP "+ga+Xa(a)),sa(d,a),void sa(_,a);const b=na(d,a),L=wa(I(M(b),a=>a==n||A(a)));if(!$(D))if(C(d,a)){if(await f(h([n,...D],async t=>{U(L,t)||(await E(La+Xa(a)+"ADD"+Xa(t)+c),la(b,t))})),o==vt&&!C(na(_,a),n)){const e=t+"_pk_"+fa(Na([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Xa(e)+"ON"+Xa(a)+`(${Xa(n)})`),la(ca(_,a,wa),n)}}else await E(xa+Xa(a)+`(${Xa(n)}${c} PRIMARY KEY${T(h(D,a=>e+Xa(a)+c))});`),sa(d,a,wa([n,...D])),sa(_,a,wa([n]));if(await f([...!m&&l?h(M(L),async t=>{t!=n&&(await E(La+Xa(a)+"DROP"+Xa(t)),U(b,t))}):[]]),m)u(i)?u(O)&&await E(Ca+Xa(a)+za(a,N)):await f(z(i,async(t,e)=>{if(u(t))await E(Ca+Xa(a)+za(a,N)+`AND(${Xa(n)}=${r([1])})`,[e]);else if(!$(D)){const i=I(B(t),A);$(i)||await o(E,a,n,i,{[e]:h(i,a=>w?w(t[a]):t[a])},r,b)}}));else if($(D))u(O)&&C(d,a)&&await E(Ca+Xa(a)+za(a,N));else{const t=I(M(na(d,a)),a=>a!=n&&A(a)),e=q(),s=[];K(i??{},(a,n)=>{j(e,n,h(t,t=>w?w(a?.[t]):a?.[t])),S(s,n)}),await o(E,a,n,t,e,r,b),await E(Ca+Xa(a)+za(a,N)+`AND${Xa(n)}NOT IN(${Ka(s,r)})`,s)}},async t=>{if(y)return await y(async a=>{const n=E;return E=a,await p(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await b(()=>a("ROLLBACK")),t}}]},vt=async(a,t,n,i,s,c)=>{const r=[1];await a(Sa+" INTO"+Xa(t)+"("+((...a)=>T(h(a,Xa),e))(n,...i)+")VALUES"+T(z(s,a=>"("+c(r)+","+Ka(a,c,r)+")"),e)+"ON CONFLICT("+Xa(n)+`)DO ${ba} SET`+T(h(i,a=>Xa(a)+"=excluded."+Xa(a)),e),z(s,(a,t)=>[t,...h(a,a=>a??null)]).flat())},$t=(a,t,n,e,i,s,c,[r,o,w],l,u,y,d,_,E,m,N,v,$)=>{const[O,A,f,R]=Nt(t,l,u,_,E,m,void 0,void 0,$);return ma(a,()=>R(async()=>{return await O(),a=(await A(r,o))[Ra]?.[w]??"null",Oa(va(a));var a}),a=>R(async()=>{await O(),await f(r,o,{[Ra]:{[w]:$a(a()??null)}},!0,!0)}),n,e,i,c,{[d]:()=>y,destroy:s},0,y)},Ot=(a,t,n,e,i,s,c,[r,o,[w,l,y,d,_]],E,m,N,v,$,O,A,R,T,g)=>{const[S,D,b,L]=Nt(t,E,m,$,O,A,R,T,g),p=(a,t)=>f(ia(o,async([n,e,i,s,c],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await b(n,e,a[r],i,s,t,c)})),C=(a,t,n)=>q(1==n?I(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):I(h(t,t=>[t,a[t]]),([,a])=>!u(a))),F=async(a,t)=>l?await b(y,Ta,{[Ra]:u(_)?a:C(a,_,t)},!0,!0,t,void 0,_):null;return ma(a,()=>L(async()=>{await S();const a=await(async()=>q(I(await f(ia(r,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await D(y,Ta,void 0,d))[Ra]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>L(async()=>{if(await S(),u(t)){const[t,n]=a();await p(t),await F(n)}else await p(t[0],!0),await F(t[1],!0)}),n,e,i,c,{[v]:()=>N,destroy:s},0,N)},At=/^([cd]:)(.+)/,ft=/^[A-Za-z0-9_]+$/,Rt=ta(),Tt=(a,e,i,c,r,o,w,l,u,y,d="getDb")=>{const _=Wa(i,o),[m,,N,A]=mt(e);!m&&a.isMergeable()&&D(0);const R=n+fa($a(N)),I=t+"_"+R,g=y??i,P=async(a,n,e="",i="")=>{const s=ja(t,a,R);return await _(Ga+Ha+Ya+s+`()RETURNS ${e}trigger AS $$ ${i}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),s},k=async(a,t,n,e)=>(await _(Ga+a+"TRIGGER"+t+n+"EXECUTE "+Ya+e+"()"),t),U=a=>`PERFORM pg_notify('${I}',${a});`,G=(a,t)=>m?s:2===t?G(a,0)+" OR "+G(a,1):Qa(na(N[0],a)?.[2]??s,0==t?"NEW":"OLD"),x=(a,e)=>f(h([Sa,Da,ba],(i,s)=>{const c=T([t,"d",R,a,i],"_");return k(Ha,O(ft,a)&&v(c)<=63?Xa(c):ja(t,"d",R,i,n+fa(a)),`AFTER ${i} ON${Xa(a)}FOR EACH ROW WHEN(${G(a,s)})`,e)})),H=async a=>{$(a)||await _(`DROP FUNCTION IF EXISTS${T(a,",")}CASCADE`)},Y=(a,t)=>{na(a,R)===t&&(sa(a,R),F(a)&&na(Rt,g)===a&&sa(Rt,g))},B=async()=>{const a=ca(Rt,g,()=>ta()),n=na(a,R);if(n)return await n[1],n[0]?(n[0]++,n):(await b(()=>n[4]),await B());const e=[],i=[1,void 0,e];sa(a,R,i),i[1]=(async()=>{const a=await P("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ia} command_tag='${xa}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");S(e,a),await k("EVENT ",ja(t,"c",R),`ON ddl_command_end WHEN TAG IN('${xa}')`,a);const n=await P("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");S(e,n),i[3]=n,await f(h(M(A),async a=>(await _(xa+` IF NOT EXISTS${Xa(a)}("_id"text PRIMARY KEY)`),await x(a,n))))})();try{await i[1]}catch(t){throw i[0]=0,i[4]=p(()=>H(e),()=>Y(a,i)),await b(()=>i[4]),t}return i},W=async a=>{if(0==--a[0]){const t=na(Rt,g);a[4]=p(()=>H(a[2]),()=>Y(t,a)),await a[4]}};return(m?$t:Ot)(a,_,async a=>{const t=await B();try{return[await c(I,n=>{L(()=>{return E((e=n,i=At,e?.match(i)),async([,n,e])=>{C(A,e)&&("c:"==n&&await x(e,t[3]),await a())});var e,i},w)}),t]}catch(a){throw await L(()=>W(t),w),a}},async([a,t])=>{await p(()=>r(a),()=>W(t))},w,l,u,N,M(A),async(a,t)=>await a(ha+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${ha} count(*) FROM information_schema.key_column_usage kcu2 ${Ia} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Ia} c.table_schema='public'AND c.table_name IN(${Ka(t,qa)})`,t),y,d,"text",qa,void 0,a=>Na(a),a=>va(a))},ht=(a,t,e,i,s,c,o,w,y,_,E="getDb",m,N)=>{let v,$,O;const A=Wa(e,c),[f,R,T,h]=mt(t);return!f&&a.isMergeable()&&D(0),(f?$t:Ot)(a,A,a=>{let t,n,e=1,c=0,w=0;const y=async(t=!0)=>{const[{d:n,s:i,c:s}]=await A(ha+` ${Pa} d,${ka} s,TOTAL_CHANGES() c FROM ${Ma}${Pa} JOIN ${Ma}${ka}`);if(e&&(n!=v||i!=$||s!=O)){const c=t&&!w&&!l(v);v=n,$=i,O=s,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},_=(i=!1)=>{if(n)return n;const s=p(()=>L(async()=>{for(c?i&&await y():(await y(!1),c=1);e&&w;)w=0,await y(!1),e&&(await a(),await y())},o),()=>{n==s&&(n=void 0),e&&(w?_():e&&u(t)&&(t=setInterval(()=>_(!0),1e3*R)))});return n=s,s},E=i(a=>{e&&C(h,a)&&(w=1,d(),r.resolve().then(()=>e?void _():0))});return _().then(()=>async()=>{e=0,w=0,d(),await p(async()=>await n,async()=>{v=$=O=null,await s(E)})})},a=>a(),o,w,y,T,M(h),async(a,t)=>await a(ha+` t.name tn,c.name cn,c.pk OR EXISTS(${ha} 1 FROM ${Ma}index_list(t.name)i,${Ma}index_info(i.name)ii ${Ia} i."unique"=1 AND ii.name=c.name AND(${ha} count(*) FROM ${Ma}index_info(i.name))=1)uq FROM ${Ua}list()t,${Ua}info(t.name)c ${Ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ka(t,Ja)})ORDER BY t.name,c.name`,t),_,E,n,Ja,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)};export{ya as Persists,ua as Status,ma as createCustomPersister,Tt as createCustomPostgreSqlPersister,ht as createCustomSqlitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",c=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,_=o(l),E=o(u),m=t=>a(t)==i,N=a=>Array.isArray(a),v=a=>a.length,$=a=>0==v(a),O=(a,t)=>a.test(t),A=a=>new r(a),f=async a=>r.all(a),R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),I=(a,t)=>a.filter(t),g=(a,t=v(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},D=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>D(a,a=>{D(()=>t?.(a))}),p=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a?.has(t)??!1,F=a=>u(a)||0==(a=>a?.size??0)(a),M=a=>[...a?.values()??[]],P=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),G=Object,x=a=>G.getPrototypeOf(a),H=G.entries,Y=a=>!l(a)&&_(x(a),a=>a==G.prototype||l(x(a)),()=>!0),B=G.keys,W=G.freeze,X=(...a)=>G.assign(G.create(null),...a),j=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return R(a,([a,n])=>j(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>R(B(a),n=>t(a[n],n)),z=(a,t)=>h(H(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>j(n,e,t(a,e))),n},V=a=>v(B(a)),Z=a=>Y(a)&&0==V(a),aa=Map,ta=a=>new aa(a),na=(a,t)=>a?.get(t),ea=(a,t)=>k(a,(a,n)=>t(n,a)),ia=(a,t)=>{const n=[];return ea(a,(a,e)=>S(n,t(e,a))),n},sa=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ca=(a,t,n,e)=>{let i=na(a,t);return C(a,t)?e?.(i):sa(a,t,i=n()),i},ra=(a,t,n,e,i=0)=>E((n?ca:na)(a,t[i],i>v(t)-2?n:ta),s=>{if(i>v(t)-2)return e?.(s)&&sa(a,t[i]),s;const c=ra(s,t,n,e,i+1);return F(s)&&sa(a,t[i]),c}),oa=/^\d+$/,wa=a=>new Set(N(a)||u(a)?a:[a]),la=(a,t)=>a?.add(t),ua={Idle:0,Loading:1,Saving:2},ya={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},da=ta(),_a=ta(),Ea=ta(),ma=(a,t,e,i,s,c,r,o={},w=0,l=[])=>{let d,_,m,f,T,C=0,M=0,P=0,G=0,x=0,H=0,Y=0,B=0,X=0;const j={},q=o.destroy;ca(da,l,()=>0),ca(_a,l,()=>[]),sa(Ea,l,(na(Ea,l)??0)+1);const J=ta(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:b(0))(r,a,w),[ea,ia,ua]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{O(oa,t)&&v(a)<1e3&&S(a,t)}]})(),s=ta(),c=(a,e,i,c)=>{let r,o=!1;if(R(((a,t=[n])=>{const e=[],i=(a,n)=>n==v(t)?S(e,a):y(t[n])?k(a,a=>i(a,n+1)):R([t[n],null],t=>i(na(a,t),n+1));return i(a,0),e})(e,i),n=>k(n,n=>{const e=()=>na(s,n)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(i,c,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return sa(s,l,[i,c,r,o,w]),la(ra(c,r??[n],wa),l),l},(a,t,...n)=>c(!1,a,t,n),a=>E(na(s,a),([,t,e])=>(ra(t,e??[n],void 0,t=>(U(t,a),F(t)?1:0)),sa(s,a),i(a),e)),a=>E(na(s,a),([a,,n=[],e,i])=>{const s=(...c)=>{const r=v(c);r==v(n)?a(t,...c,...i(c)):y(n[r])?R(e[r]?.(...c)??[],a=>s(...c,a)):s(...c,n[r])};s()}),(a,t,...n)=>c(!0,a,t,n)]})(()=>Da),ya=a=>{a!=C&&(C=a,ia(J,void 0,C))},ma=()=>{na(Ea,l)||na(da,l)||!$(na(_a,l)??[])||(sa(da,l),sa(_a,l),sa(Ea,l))},Na=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},va=async()=>{ga()&&a.__?.[0]?.()&&await Ta()},$a=a=>p(()=>_=a,()=>{_==a&&(_=void 0)}),Oa=async a=>(2!=C&&(await p(async()=>{ya(1),M++,await ba(()=>D(async()=>{const n=await t();N(n)?Na(n):u(n)&&a?aa(a):u(n)||b(1,n)},t=>{c?.(t),a&&aa(a)}))},()=>ya(0)),await va()),Da),Aa=async()=>{const a=Y;Y=0,a&&a==G&&!X&&(2==C?Y=a:await Oa())},fa=async a=>{const t=++G;let n=!0;if(await Ra(!0),t==G&&!X){const e=D(async()=>{const a=await i(async(a,e)=>{if(t==G&&!X)if(e||a){const t=n||2==C||!!H;x++,t&&H++,await p(async()=>{ya(1),M++,await(t?ba(()=>Na(e??a)):(()=>{try{return Na(e??a)}finally{ya(0)}})())},()=>{t&&H--,--x||ya(0)}),x||await va()}else 2==C?Y=t:await Oa()});t!=G||X?u(a)||await s(a):d=a},c);await $a(e),t!=G||X||await p(()=>Oa(a),()=>{n=!1})}return Da},Ra=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await $a(p(async()=>{await t},async()=>{u(n)||await D(()=>s(n),c)})),Da},Ta=async a=>(1!=C&&await p(()=>p(async()=>{ya(2),P++,await ba(()=>D(()=>e(z,a),c))},()=>ya(0)),Aa),Da),ha=async()=>{const t=++B;return await Ia(!0),t!=B||X||(await Ta(),t!=B||X||(m=a.addDidFinishTransactionListener(()=>{if(t==B&&!X){const a=Q();V(a)&&D(()=>Ta(a))}}))),Da},Ia=async(t=!1)=>{t||B++;const n=m;return m=void 0,u(n)||a.delListener(n),Da},ga=()=>!u(m),Sa=async(a=!1)=>{const[t,n]=a?[Ia,Ra]:[Ra,Ia];return await p(()=>t(),async()=>{await n()}),Da},ba=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():S(na(_a,l),...h(a,(i,s)=>{const r=s==v(a)-1;return[async()=>{let a;T=A(t=>a=t),await p(async()=>{try{await D(i,c)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{T=void 0,a()})},r?e:void 0,j]})));if(await(async()=>{if(!na(da,l)){sa(da,l,1);const a=na(_a,l);let t=0;await p(async()=>{for(;t<v(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{g(a,t),sa(da,l,0),ma()})}})(),await e,n)throw t;return Da},Da={load:Oa,startAutoLoad:fa,stopAutoLoad:Ra,isAutoLoading:()=>!u(d),save:Ta,startAutoSave:ha,stopAutoSave:Ia,isAutoSaving:ga,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ha,fa,Ia,Ra]:[fa,ha,Ra,Ia],c=n(a),r=t?B:G;await c;const o=e(a),w=t?G:B;try{await o}catch(a){throw w==(t?G:B)&&await L(s),r==(t?B:G)&&await L(i),a}return Da},stopAutoPersisting:Sa,getStatus:()=>C,addStatusListener:a=>ea(a,J),delListener:t=>(ua(t),a),schedule:ba,getStore:()=>a,getStats:()=>({loads:M,saves:P}),...o,destroy:async()=>(u(f)&&(X=1,f=(async()=>{const a=na(_a,l),t=I(a,([,a,t])=>t!=j||(a?.(),!1)),n=T;g(a),S(a,...t),await p(()=>p(()=>p(Sa,()=>n),()=>q?.()),()=>{const a=(na(Ea,l)??1)-1;sa(Ea,l,a||void 0),ma()})})()),await f,Da)};return W(Da)},Na=JSON.stringify,va=JSON.parse,$a=a=>Na(a,(a,t)=>u(t)?"":t),Oa=a=>""===a?void 0:N(a)?h(a,Oa):Y(a)?Q(a,Oa):a,Aa=new w.TextEncoder,fa=a=>{let t=2166136261;return R(Aa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ra="_",Ta="_id",ha="SELECT",Ia="WHERE",ga="TABLE",Sa="INSERT",ba="DELETE",Da="UPDATE",La="ALTER "+ga,pa="FROM",Ca=ba+" "+pa,Fa=ha+"*"+pa,Ma="pragma_",Pa="data_version",ka="schema_version",Ua="pragma_table_",Ga="CREATE ",xa=Ga+ga,Ha="OR REPLACE ",Ya="FUNCTION",Ba=/\$tableName/g,Wa=(a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a,Xa=a=>T(h(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),ja=(...a)=>Xa(T(a,"_")),qa=a=>"$"+a[0]++,Ja=()=>"?",Ka=(a,t,n=[1])=>T(h(a,()=>t(n)),e),za=(a,t=s,e)=>{const i=I([t==s?void 0:`(${Qa(t,Xa(a))})`,e],a=>!u(a));return $(i)?n:Ia+T(i,"AND")},Qa=(a,t)=>c(a,Ba,t),Va="ColumnName",Za="store",at="json",tt=Za+"TableName",nt=Za+"Id"+Va,et=Za+Va,it="autoLoadIntervalSeconds",st="rowId"+Va,ct="tableId",rt="tableName",ot="deleteEmptyColumns",wt="deleteEmptyTable",lt="condition",ut={mode:at,[it]:1},yt={load:0,save:0,[rt]:t+"_values"},dt=a=>N(a)?a:void 0,_t=a=>d(a)||N(a),Et=(a,t,n,e,i)=>{const s=ta();return K(a,(a,c)=>{const r=(l=X(t,m(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(c,r[0])||(i(c,r[0]),sa(s,c,r))}),s},mt=a=>{const n=(a=>X(ut,m(a)?{[tt]:a}:a??{}))(a),e=n[it];if(n.mode==at){const a=n[tt]??t;return[1,e,[a,n[nt]??Ta,n[et]??Za],wa(a)]}const{tables:{load:i={},save:c={}}={},values:r={}}=n,o=X(yt,r),{load:w,save:l}=o,u=[_t(w),_t(l),o[rt],dt(w),dt(l)],y=u[2],d=wa(y),_=wa(y),E=Et(i,{[ct]:null,[st]:Ta,[lt]:s},ct,a=>C(_,a),a=>la(d,a)),N=Et(c,{[rt]:null,[st]:Ta,[ot]:0,[wt]:0,[lt]:null},rt,(a,t)=>C(_,t),(a,t)=>la(d,t));return ea(N,(a,t)=>t[4]??=na(E,t[0])?.[2]??s),[0,e,[E,N,u],d]},Nt=(a,n,i,c,r,o=vt,w,l,y)=>{const d=ta(),_=ta();let E=a;return[async()=>{P(d),P(_),R(await i(E,n),({tn:a,cn:t,uq:n})=>{la(ca(d,a,wa),t),n&&la(ca(_,a,wa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:wa(e);return((a,t)=>C(na(d,a),t))(a,t)?q(I(h(await E(Fa+Xa(a)+za(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(i)?e:q(I(z(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||C(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,l,y,m=!1,N=s,v)=>{const O=u(v)?void 0:wa(v),A=a=>u(O)||C(O,a),g=wa();K(i??{},a=>R(I(B(a??{}),A),a=>la(g,a)));const b=M(g);if(u(O)&&!m&&y&&N==s&&$(b)&&C(d,a))return await E("DROP "+ga+Xa(a)),sa(d,a),void sa(_,a);const D=na(d,a),L=wa(I(M(D),a=>a==n||A(a)));if(!$(b))if(C(d,a)){if(await f(h([n,...b],async t=>{U(L,t)||(await E(La+Xa(a)+"ADD"+Xa(t)+c),la(D,t))})),o==vt&&!C(na(_,a),n)){const e=t+"_pk_"+fa(Na([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Xa(e)+"ON"+Xa(a)+`(${Xa(n)})`),la(ca(_,a,wa),n)}}else await E(xa+Xa(a)+`(${Xa(n)}${c} PRIMARY KEY${T(h(b,a=>e+Xa(a)+c))});`),sa(d,a,wa([n,...b])),sa(_,a,wa([n]));if(await f([...!m&&l?h(M(L),async t=>{t!=n&&(await E(La+Xa(a)+"DROP"+Xa(t)),U(D,t))}):[]]),m)u(i)?u(O)&&await E(Ca+Xa(a)+za(a,N)):await f(z(i,async(t,e)=>{if(u(t))await E(Ca+Xa(a)+za(a,N,`(${Xa(n)}=${r([1])})`),[e]);else if(!$(b)){const i=I(B(t),A);$(i)||await o(E,a,n,i,{[e]:h(i,a=>w?w(t[a]):t[a])},r,D)}}));else if($(b))u(O)&&C(d,a)&&await E(Ca+Xa(a)+za(a,N));else{const t=I(M(na(d,a)),a=>a!=n&&A(a)),e=q(),s=[];K(i??{},(a,n)=>{j(e,n,h(t,t=>w?w(a?.[t]):a?.[t])),S(s,n)}),await o(E,a,n,t,e,r,D),await E(Ca+Xa(a)+za(a,N,`${Xa(n)}NOT IN(${Ka(s,r)})`),s)}},async t=>{if(y)return await y(async a=>{const n=E;return E=a,await p(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await D(()=>a("ROLLBACK")),t}}]},vt=async(a,t,n,i,s,c)=>{const r=[1];await a(Sa+" INTO"+Xa(t)+"("+((...a)=>T(h(a,Xa),e))(n,...i)+")VALUES"+T(z(s,a=>"("+c(r)+","+Ka(a,c,r)+")"),e)+"ON CONFLICT("+Xa(n)+`)DO ${Da} SET`+T(h(i,a=>Xa(a)+"=excluded."+Xa(a)),e),z(s,(a,t)=>[t,...h(a,a=>a??null)]).flat())},$t=(a,t,n,e,i,s,c,[r,o,w],l,u,y,d,_,E,m,N,v,$)=>{const[O,A,f,R]=Nt(t,l,u,_,E,m,void 0,void 0,$);return ma(a,()=>R(async()=>{return await O(),a=(await A(r,o))[Ra]?.[w]??"null",Oa(va(a));var a}),a=>R(async()=>{await O(),await f(r,o,{[Ra]:{[w]:$a(a()??null)}},!0,!0)}),n,e,i,c,{[d]:()=>y,destroy:s},0,y)},Ot=(a,t,n,e,i,s,c,[r,o,[w,l,y,d,_]],E,m,N,v,$,O,A,R,T,g)=>{const[S,b,D,L]=Nt(t,E,m,$,O,A,R,T,g),p=(a,t)=>f(ia(o,async([n,e,i,s,c],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await D(n,e,a[r],i,s,t,c)})),C=(a,t,n)=>q(1==n?I(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):I(h(t,t=>[t,a[t]]),([,a])=>!u(a))),F=async(a,t)=>l?await D(y,Ta,{[Ra]:u(_)?a:C(a,_,t)},!0,!0,t,void 0,_):null;return ma(a,()=>L(async()=>{await S();const a=await(async()=>q(I(await f(ia(r,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await b(y,Ta,void 0,d))[Ra]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>L(async()=>{if(await S(),u(t)){const[t,n]=a();await p(t),await F(n)}else await p(t[0],!0),await F(t[1],!0)}),n,e,i,c,{[v]:()=>N,destroy:s},0,N)},At=/^([cd]:)(.+)/,ft=/^[A-Za-z0-9_]+$/,Rt=ta(),Tt=(a,e,i,c,r,o,w,l,u,y,d="getDb")=>{const _=Wa(i,o),[m,,N,A]=mt(e);!m&&a.isMergeable()&&b(0);const R=n+fa($a(N)),I=t+"_"+R,g=y??i,P=async(a,n,e="",i="")=>{const s=ja(t,a,R);return await _(Ga+Ha+Ya+s+`()RETURNS ${e}trigger AS $$ ${i}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),s},k=async(a,t,n,e)=>(await _(Ga+a+"TRIGGER"+t+n+"EXECUTE "+Ya+e+"()"),t),U=a=>`PERFORM pg_notify('${I}',${a});`,G=(a,t)=>m?s:2===t?G(a,0)+" OR "+G(a,1):Qa(na(N[0],a)?.[2]??s,0==t?"NEW":"OLD"),x=(a,e)=>f(h([Sa,ba,Da],(i,s)=>{const c=T([t,"d",R,a,i],"_");return k(Ha,O(ft,a)&&v(c)<=63?Xa(c):ja(t,"d",R,i,n+fa(a)),`AFTER ${i} ON${Xa(a)}FOR EACH ROW WHEN(${G(a,s)})`,e)})),H=async a=>{$(a)||await _(`DROP FUNCTION IF EXISTS${T(a,",")}CASCADE`)},Y=(a,t)=>{na(a,R)===t&&(sa(a,R),F(a)&&na(Rt,g)===a&&sa(Rt,g))},B=async()=>{const a=ca(Rt,g,()=>ta()),n=na(a,R);if(n)return await n[1],n[0]?(n[0]++,n):(await D(()=>n[4]),await B());const e=[],i=[1,void 0,e];sa(a,R,i),i[1]=(async()=>{const a=await P("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ia} command_tag='${xa}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");S(e,a),await k("EVENT ",ja(t,"c",R),`ON ddl_command_end WHEN TAG IN('${xa}')`,a);const n=await P("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");S(e,n),i[3]=n,await f(h(M(A),async a=>(await _(xa+` IF NOT EXISTS${Xa(a)}("_id"text PRIMARY KEY)`),await x(a,n))))})();try{await i[1]}catch(t){throw i[0]=0,i[4]=p(()=>H(e),()=>Y(a,i)),await D(()=>i[4]),t}return i},W=async a=>{if(0==--a[0]){const t=na(Rt,g);a[4]=p(()=>H(a[2]),()=>Y(t,a)),await a[4]}};return(m?$t:Ot)(a,_,async a=>{const t=await B();try{return[await c(I,n=>{L(()=>{return E((e=n,i=At,e?.match(i)),async([,n,e])=>{C(A,e)&&("c:"==n&&await x(e,t[3]),await a())});var e,i},w)}),t]}catch(a){throw await L(()=>W(t),w),a}},async([a,t])=>{await p(()=>r(a),()=>W(t))},w,l,u,N,M(A),async(a,t)=>await a(ha+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${ha} count(*) FROM information_schema.key_column_usage kcu2 ${Ia} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Ia} c.table_schema='public'AND c.table_name IN(${Ka(t,qa)})`,t),y,d,"text",qa,void 0,a=>Na(a),a=>va(a))},ht=(a,t,e,i,s,c,o,w,y,_,E="getDb",m,N)=>{let v,$,O;const A=Wa(e,c),[f,R,T,h]=mt(t);return!f&&a.isMergeable()&&b(0),(f?$t:Ot)(a,A,a=>{let t,n,e=1,c=0,w=0;const y=async(t=!0)=>{const[{d:n,s:i,c:s}]=await A(ha+` ${Pa} d,${ka} s,TOTAL_CHANGES() c FROM ${Ma}${Pa} JOIN ${Ma}${ka}`);if(e&&(n!=v||i!=$||s!=O)){const c=t&&!w&&!l(v);v=n,$=i,O=s,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},_=(i=!1)=>{if(n)return n;const s=p(()=>L(async()=>{for(c?i&&await y():(await y(!1),c=1);e&&w;)w=0,await y(!1),e&&(await a(),await y())},o),()=>{n==s&&(n=void 0),e&&(w?_():e&&u(t)&&(t=setInterval(()=>_(!0),1e3*R)))});return n=s,s},E=i(a=>{e&&C(h,a)&&(w=1,d(),r.resolve().then(()=>e?void _():0))});return _().then(()=>async()=>{e=0,w=0,d(),await p(async()=>await n,async()=>{v=$=O=null,await s(E)})})},a=>a(),o,w,y,T,M(h),async(a,t)=>await a(ha+` t.name tn,c.name cn,c.pk OR EXISTS(${ha} 1 FROM ${Ma}index_list(t.name)i,${Ma}index_info(i.name)ii ${Ia} i."unique"=1 AND ii.name=c.name AND(${ha} count(*) FROM ${Ma}index_info(i.name))=1)uq FROM ${Ua}list()t,${Ua}info(t.name)c ${Ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ka(t,Ja)})ORDER BY t.name,c.name`,t),_,E,n,Ja,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)};export{ya as Persists,ua as Status,ma as createCustomPersister,Tt as createCustomPostgreSqlPersister,ht as createCustomSqlitePersister};
|
|
Binary file
|
package/min/queries/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",r=e(t),n=e(!0),s=e(0),o=e(e),l="Listener",a="Result",i="Ids",d="Table",c="Row",u=c+"Count",v=c+i,w="Sorted"+c+i,f="Cell",L=f+i,g=Math,h=e=>(t,r,n)=>e(t)?n?.():r(t),R=g.max,y=g.min,b=1/0,p=isFinite,C=e=>null==e,m=e=>void 0===e,T=e=>!0===e,I=h(C),P=h(m),V=t=>e(t)==o,E=e=>Array.isArray(e),S=(e,t,r)=>e.slice(t,r),Q=e=>e.length,D=e=>0==Q(e),O=()=>{},_=(e,t)=>e.every(t),j=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),x=e=>A(e,(e,t)=>e+t,0),A=(e,t,r)=>e.reduce(t,r),F=(e,...t)=>e.push(...t),M=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,W=e=>m(e)||0==M(e),J=(e,t)=>{for(const[r,n]of e?.entries()??[])if(!t(n,r))return!1;return!0},N=e=>e.clear(),q=(e,t)=>e?.forEach(t),B=(e,t)=>e?.delete(t),G=Object,H=e=>G.getPrototypeOf(e),K=e=>!C(e)&&I(H(e),e=>e==G.prototype||C(H(e)),()=>!0),U=G.keys,X=G.freeze,Y=(e,t,r)=>(G.defineProperty(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}),r),Z=(e=[])=>{const t=G.create(null);return k(e,([e,r])=>Y(t,e,r)),t},$=e=>K(e)&&0==(e=>Q(U(e)))(e),ee=Map,te=e=>new ee(e),re=(e,t)=>e?.get(t),ne=(e,t)=>q(e,(e,r)=>t(r,e)),se=(e,t,r)=>m(r)?(B(e,t),e):e?.set(t,r),oe=(e,t,r,n)=>{let s=re(e,t);return z(e,t)?n?.(s):se(e,t,s=r()),s},le=(e,t,r,n,s=0)=>P((r?oe:re)(e,t[s],s>Q(t)-2?r:te),o=>{if(s>Q(t)-2)return n?.(o)&&se(e,t[s]),o;const l=le(o,t,r,n,s+1);return W(o)&&se(e,t[s]),l}),ae=te([["avg",[(e,t)=>x(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=>A(e,(e,t)=>R(e,t),-1/0),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>A(e,(e,t)=>y(e,t),b),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:y(t,e)]],["sum",[e=>x(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),ie=JSON.stringify,de=(e,t)=>{try{return e()}catch(e){t?.(e)}},ce=e=>new Set(E(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),ve="_",we=(()=>{const o=new WeakMap;return i=>{if(!o.has(i)){const g=(o=>{const i=o._[0],g=i(),h=i(),R=te(),y=te(),b=ce(),C=te(),I=te(),x={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},A=te(),H=te(),ee=te(),we=te(),fe=te(),Le=te(),{_:[,ge,he],delListener:Re}=h,[ye,be,pe,Ce,me,Te,Ie,Pe,,Ve,Ee,Se]=((e,t,r,n,s)=>{const o=e.hasRow,l=te(),a=te(),i=te(),d=te(),c=te(),u=te(),v=t=>P(re(u,t),r=>{q(r,t=>{e.delListener(t),B(r,t)}),se(u,t)}),w=(e,t)=>{se(l,e,t),z(a,e)||(se(a,e,[]),se(d,e,te()),se(c,e,te()),de(()=>s(i),t=>{throw se(l,e),se(a,e),se(d,e),se(c,e),t}))},f=e=>{se(l,e),se(a,e),se(d,e),se(c,e),v(e),s(i)};return[()=>e,()=>{return e=l,[...e?.keys()??[]];var e},e=>ne(a,e),e=>z(a,e),e=>re(l,e),e=>re(a,e),(e,t)=>se(a,e,t),w,(t,n,s,l,a)=>{w(t,n);const i=te(),f=te(),L=re(d,t),g=re(c,t),h=t=>{const s=r=>e.getCell(n,t,r),d=re(L,t),c=o(n,t)?r(l(s,t)):void 0;var u,v,w,h;if(d===c||E(d)&&E(c)&&(v=c,Q(u=d)===Q(v)&&_(u,(e,t)=>v[t]===e))||se(i,t,[d,c]),!m(a)){const e=re(g,t),r=o(n,t)?a(s,t):void 0;(w=e)===(h=r)||(K(w)||E(w))&&ie(w)===ie(h)||se(f,t,r)}},R=e=>{s(()=>{q(i,([,e],t)=>se(L,t,e)),q(f,(e,t)=>se(g,t,e))},i,f,L,g,e),N(i),N(f)};ne(L,h),e.hasTable(n)&&k(e.getRowIds(n),e=>{z(L,e)||h(e)}),R(!0),v(t),((e,...t)=>{const r=oe(u,e,ce);k(t,e=>ue(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>h(r)),e.addTableListener(n,()=>R()))},f,e=>n(e,i),()=>ne(u,f)]})(o,0,O,ge,he),Qe=e=>oe(y,e,i),De=(e,t,...r)=>k(r,r=>ue(oe(t,e,ce),r)),Oe=e=>ne(e,(e,t)=>q(t,t=>e.delListener(t))),_e=(e,t,r,...n)=>{const s=oe(t,e,ce);return k(n,t=>{ue(s,t),r&&e.callListener(t)}),n},je=(e,t,r)=>P(re(t,e),n=>{e.delListener(r),B(n,r),W(n)&&se(t,e)}),ke=e=>P(re(we,e),t=>{ne(t,(e,t)=>ne(t,(t,r)=>e.delListener(r))),se(we,e)}),xe=(e,t=te())=>{const r=oe(ee,e,te);ne(r,(e,n)=>{ne(n,(r,s)=>z(re(t,e),r)?0:(e.delListener(s),se(n,r))),W(n)&&se(r,e)}),ne(t,(t,n)=>{const s=oe(r,t,te);q(n,r=>oe(s,r,()=>t.addTableCellIdsListener(r,()=>de(()=>We(e),n=>{throw((e,t,r)=>{const n=oe(oe(we,e,te),t,te);oe(n,r,()=>t.addTableListener(r,()=>We(e)))})(e,t,r),n}))))}),W(r)&&se(ee,e)},Ae=()=>{ne(R,e=>Ce(e)?0:se(R,e)),ne(y,(e,t)=>Ce(e)||((e,t)=>!(J(C,([,e])=>J(e,([e])=>e!==t))&&J(Le,t=>!z(t,e))&&_([A,H],e=>J(e,e=>!z(e,t)))))(e,t)?0:se(y,e))},Fe=(e,t,r)=>{De(e,r,e.addWillFinishTransactionListener(t.startTransaction)),De(e,r,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},Me=(e,t)=>($(t)?g.delRow:g.setRow)(ve,e,{...t}),ze=(l,a,d,c)=>Qe(l).transaction(()=>P(((e,r)=>m(r)?Te(e):[r[1],t,r[2]])(l,d),([u,,v])=>{const[w,f]=a,L=d?.[0]??me(l),g=v?Qe(L):o,h=Qe(l),R=d?.[3]??qe(l),y=a[4];v&&ue(y,L);const b=[];let C=!1,I=0;const S=[[void 0,[L,void 0,void 0,[],te(),g]]],Q=[],x=[],A=[];u({select:(e,r,n)=>{const s=T(e)?r:e,o=T(e)?n:r,l=V(e)?[0,I+t,e]:m(o)?[0,e,t=>t(e)]:[0,o,t=>T(e)?t(!0,s,o):t(s,o)];return I++,F(b,l),{as:e=>l[1]=e}},selectAll:(e,r,n)=>{C=!0;const s=T(e)?r:e,o=T(e)?n:r;F(b,[1,s,V(o)?o:e=>(o??t)+e,V(o)||!m(o)&&o!==t?1:0])},join:(e,t,r,n)=>{const s=T(e)?t:e,[l,a]=T(e)?m(n)||V(r)?[void 0,r]:[r,n]:m(r)||V(t)?[void 0,t]:[t,r],i=T(e),d=i?Qe(s):o;i&&ue(y,s);const c=[s,[s,l,V(a)?a:e=>e(a),[],te(),d]];return F(S,c),{as:e=>c[0]=e}},where:(e,t,r,n)=>F(Q,V(e)?e:T(e)?e=>e(!0,t,r)===n:m(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,V(t)?[t,r,n,s]:re(ae,t)??[(e,t)=>t]]];return F(x,o),{as:e=>o[0]=e}},having:(e,t)=>F(A,V(e)?e:r=>r(e)===t),param:e=>{return t=e,P(R,e=>P(G.getOwnPropertyDescriptor(e,t),()=>e[t]));var t}});const N=te(S);ne(N,(e,[,t])=>P(re(N,t),({3:t})=>m(e)?0:F(t,e)));const H=e=>m(e),U=e=>re(N,H(e)?void 0:e),X=a[5];if(k(b,([e,t,,r=0])=>e?P(U(t),([e,,,,,t])=>t===o?0:se(X,e,re(X,e)||r?1:0)):0),((e,r)=>{const n=(t,s,o=ce())=>t===s||!z(o,t)&&(ue(o,t),!J((t=>t===e?r:re(fe,t))(t),(e,t)=>!n(t,s,o))),s=(e,t)=>!J(t,(t,r)=>!t||!n(r,e));!s(e,r)&&J(fe,(t,r)=>r===e||!s(r,t))||(()=>{throw Error("tinybase:16"+(m(e=void 0)?t:":"+e));var e})()})(l,X),h.delTable(l),D(b))return c?.(),Be;const ee=te(x),de=!W(ee)||!D(A),ve=[],we=a[3];k(b,([e,t,r])=>{e?de&&P(U(t),([e,,,,,t])=>{ue(oe(we,t,ce),e),k(j(t.getTableCellIds(e)),e=>F(ve,[r(e),O]))}):F(ve,[t,r])});const Le=te(ve);if(de&&W(Le))return c?.(),Be;const ge=de?a[2]=i():h;if(de){const t=te();ne(ee,(e,[r,n])=>ue(oe(t,r,ce),[e,n]));const o=ce();ne(Le,e=>z(t,e)?0:ue(o,e));const a=te(),i=e=>{return m(e)?void 0:K(t=e)||E(t)?"�"+ie(t):t;var t},d=(o,a,i,d)=>P(o,([c,u,v,w])=>{ne(a,(o,[l])=>{const a=oe(c,o,te),u=re(a,i),v=d?void 0:l;if(u!==v){const l=ce([[u,v]]),d=M(a);se(a,i,v),q(re(t,o),([t,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(W(r))return;const[l,a,i,d]=s;return o||=m(e),q(n,([r,n])=>{o||(e=m(r)?a?.(e,n,t++):m(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=m(e))}),o?l((c=r,[...c?.values()??[]]),M(r)):e;var c})(w[t],d,a,l,o);Y(w,t,m((t=>{if(null===t)return"null";if(E(t))return"array";if(K(t))return"object";const o=e(t);return(e=>e==r||e==n)(o)||o==s&&p(t)?o:void 0})(i))?void 0:i)})}}),W(u)||!_(A,e=>e(e=>w[e]))?h.delRow(l,v):m(v)?o[2]=h.addRow(l,{...w}):h.setRow(l,v,{...w})});De(ge,w,ge.addRowListener(l,null,(e,r,n,s)=>{const c=[],u=[],v=te(),w=ge.hasRow(l,n);let f=!w;q(o,e=>{const[t,r,o]=s(l,n,e);F(c,i(r)),F(u,i(o)),f||=t}),ne(t,e=>{const[t,,r]=s(l,n,e);(f||t)&&se(v,e,[r])}),f&&d(le(a,c,void 0,([,e])=>(B(e,n),W(e))),v,n,1),w&&d(le(a,u,()=>{const e=Z();return q(o,t=>Y(e,t,ge.getCell(l,n,t))),[te(),ce(),void 0,e]},([,e])=>{ue(e,n)}),v,n)}))}const he=(e,t,r,n,s)=>{const o=e=>t.getCell(r,n,e);k(s,t=>{const[r,,n,s,l,a]=re(N,t),i=n?.(o,e),d=re(l,e),c=d?.[0];i!=c&&(P(d,([,e,t])=>je(e,f,t)),se(l,e,m(i)?void 0:[i,a,..._e(a,f,1,a.addRowListener(r,i,()=>he(e,a,r,i,s)))]))}),(e=>{const t=(t,r,n)=>{const s=T(t)?r:t,o=T(t)?n:r;if(m(o))return g.getCell(L,e,t);if(s===L&&!T(t))return g.getCell(L,e,o);const l=re(N,s);return m(l)?void 0:l[5].getCell(l[0],re(l[4],e)?.[0],o)};ge.transaction(()=>{_(Q,e=>e(t))?C?(()=>{const r=Z();k(b,([n,s,o])=>{if(n)P(U(s),([t,,,,n,l])=>{const a=H(s)?e:re(n,e)?.[0];P(a,e=>k(j(l.getCellIds(t,e)),n=>Y(r,o(n),l.getCell(t,e,n))))});else{const n=o(t,e),l=s;m(n)?delete r[l]:Y(r,l,n)}}),$(r)?ge.delRow(l,e):ge.setRow(l,e,r)})():ne(Le,(r,n)=>ge._[5](l,e,r,n(t,e))):ge.delRow(l,e)})})(e)},{3:Re}=re(N,void 0),ye=(e,t,r)=>{g.hasRow(L,r)?he(r,g,L,r,Re):(ge.delRow(l,r),q(N,({4:e})=>P(re(e,r),([,t,n])=>{je(t,f,n),se(e,r)})))};return ge.transaction(()=>{k(g.getRowIds(L),e=>ye(0,0,e)),_e(g,f,0,g.addRowListener(L,null,ye))}),de&&Fe(ge,h,w),Fe(g,ge,w),c?.(),Be})),We=(e,t)=>{const r=[te(),te(),void 0,te(),ce(),te()];let n=!1;return de(()=>ze(e,r,t,()=>{P(t,t=>Je(e,t)),Oe(re(A,e)),Oe(re(H,e)),se(A,e,W(r[0])?void 0:r[0]),se(H,e,W(r[1])?void 0:r[1]),se(R,e,r[2]),xe(e,r[3]),ke(e),se(Le,e,W(r[4])?void 0:r[4]),se(fe,e,W(r[5])?void 0:r[5]),n=!0}),e=>{throw n||(Oe(r[0]),Oe(r[1])),Ae(),e}),Be},Je=(e,[t,r,n,s])=>{P(Te(e),([,e])=>g.delListener(e)),ue(b,e),(()=>{try{return Pe(e,t),Ie(e,[r,g.addRowListener(ve,e,()=>z(b,e)?0:We(e),!0),n]),void Me(e,s)}finally{B(b,e)}})()},Ne=e=>(P(Te(e),([,e])=>g.delListener(e)),g.delRow(ve,e),(e=>{Oe(re(A,e)),se(A,e),k([re(y,e),re(R,e)],t=>t?.delTable(e))})(e),(e=>{Oe(re(H,e)),se(H,e)})(e),xe(e),ke(e),se(Le,e),se(fe,e),Ve(e),Ae(),Be),qe=e=>g.getRow(ve,e),Be={setQueryDefinition:(e,t,r,n,s={})=>{const[o,l,a,i]=T(t)?[r,n,1,s]:[t,r,0,n??{}];return We(e,[o,l,a,i]),Ae(),Be},delQueryDefinition:Ne,getParamValues:qe,getParamValue:(e,t)=>g.getCell(ve,e,t),setParamValues:(e,t)=>(Ce(e)&&Me(e,t),Be),setParamValue:(e,t,r)=>(Ce(e)&&g.setCell(ve,e,t,r),Be),getStore:ye,getQueryIds:be,forEachQuery:pe,hasQuery:Ce,getTableId:me,forEachResultTable:e=>pe(t=>Qe(t).hasTable(t)?e(t,e=>Be.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Ee(()=>e(Be)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(ve,e,(e,r,n)=>t(Be,n,qe(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(ve,e,t,(e,t,n,s,o)=>r(Be,n,s,o)),delListener:e=>{const t=re(C,e);if("p"==e[0])g.delListener(S(e,1));else if(m(t))Re(e);else{const[r,n,s]=t;ne(n,(e,[t,r])=>t.delListener(r)),P(s,Re),se(C,e),Re(e),x[r]--}return Ae(),Be},destroy:()=>{k(be(),Ne),Se()},getListenerStats:()=>({...x,paramValues:g.getListenerStats().row-Q(be()),paramValue:g.getListenerStats().cell})};var Ge,He;return He=([e,t],r)=>{k(S(["get","has","forEach"],0,e),e=>Y(Be,e+a+r,(...t)=>(re(y,t[0])??h)[e+r](...t))),Y(Be,"add"+a+r+l,(...e)=>((n,s)=>{const o=ge(O,I),a=te(),i=()=>{const n=null==s?be():[s];k(n,n=>{return z(a,n)?0:se(a,n,[Qe(n),(s=Qe(n),s["add"+r+l](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:S(e,0,t))(e,t),(r,...n)=>e[t](Be,...n),!0))]);var s}),ne(a,(e,[t,r])=>null==s&&Ce(e)||e==s?0:(t.delListener(r),void se(a,e)))};return i(),se(C,o,[n,a,null==s?Ee(i):void 0]),x[n]++,o})((e=>e[0].toLowerCase()+S(e,1))(r),e[0]))},k(U(Ge={[d]:[2,1],[d+L]:[1,1],[u]:[1,1],[v]:[1,1],[w]:[1,5],[c]:[3,2],[L]:[1,2],[f]:[3,3]}),e=>He(Ge[e],e)),X(Be)})(i);o.set(i,g)}return o.get(i)}})();export{we as createQueries};
|
|
1
|
+
const e=e=>typeof e,t="",r=e(t),n=e(!0),s=e(0),o=e(e),l="Listener",a="Result",i="Ids",d="Table",c="Row",u=c+"Count",v=c+i,w="Sorted"+c+i,f="Cell",L=f+i,g=Math,h=e=>(t,r,n)=>e(t)?n?.():r(t),R=g.max,y=g.min,b=1/0,p=isFinite,C=e=>null==e,m=e=>void 0===e,T=e=>!0===e,I=h(C),P=h(m),V=t=>e(t)==o,E=e=>Array.isArray(e),S=(e,t,r)=>e.slice(t,r),Q=e=>e.length,D=e=>0==Q(e),O=()=>{},_=(e,t)=>e.every(t),j=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),x=e=>A(e,(e,t)=>e+t,0),A=(e,t,r)=>e.reduce(t,r),F=(e,...t)=>e.push(...t),M=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,W=e=>m(e)||0==M(e),J=(e,t)=>{for(const[r,n]of e?.entries()??[])if(!t(n,r))return!1;return!0},N=e=>e.clear(),q=(e,t)=>e?.forEach(t),B=(e,t)=>e?.delete(t),G=Object,H=e=>G.getPrototypeOf(e),K=e=>!C(e)&&I(H(e),e=>e==G.prototype||C(H(e)),()=>!0),U=G.keys,X=G.freeze,Y=(e,t,r)=>(G.defineProperty(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}),r),Z=(e=[])=>{const t=G.create(null);return k(e,([e,r])=>Y(t,e,r)),t},$=e=>K(e)&&0==(e=>Q(U(e)))(e),ee=Map,te=e=>new ee(e),re=(e,t)=>e?.get(t),ne=(e,t)=>q(e,(e,r)=>t(r,e)),se=(e,t,r)=>m(r)?(B(e,t),e):e?.set(t,r),oe=(e,t,r,n)=>{let s=re(e,t);return z(e,t)?n?.(s):se(e,t,s=r()),s},le=(e,t,r,n,s=0)=>P((r?oe:re)(e,t[s],s>Q(t)-2?r:te),o=>{if(s>Q(t)-2)return n?.(o)&&se(e,t[s]),o;const l=le(o,t,r,n,s+1);return W(o)&&se(e,t[s]),l}),ae=te([["avg",[(e,t)=>x(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>r>1?e+(e-t)/(r-1):void 0,(e,t,r,n)=>e+(t-r)/n]],["max",[e=>A(e,(e,t)=>R(e,t),-1/0),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>A(e,(e,t)=>y(e,t),b),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:y(t,e)]],["sum",[e=>x(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),ie=JSON.stringify,de=(e,t)=>{try{return e()}catch(e){t?.(e)}},ce=e=>new Set(E(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),ve="_",we=(()=>{const o=new WeakMap;return i=>{if(!o.has(i)){const g=(o=>{const i=o._[0],g=i(),h=i(),R=te(),y=te(),b=ce(),C=te(),I=te(),x={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},A=te(),H=te(),ee=te(),we=te(),fe=te(),Le=te(),{_:[,ge,he],delListener:Re}=h,[ye,be,pe,Ce,me,Te,Ie,Pe,,Ve,Ee,Se]=((e,t,r,n,s)=>{const o=e.hasRow,l=te(),a=te(),i=te(),d=te(),c=te(),u=te(),v=t=>P(re(u,t),r=>{q(r,t=>{e.delListener(t),B(r,t)}),se(u,t)}),w=(e,t)=>{se(l,e,t),z(a,e)||(se(a,e,[]),se(d,e,te()),se(c,e,te()),de(()=>s(i),t=>{throw se(l,e),se(a,e),se(d,e),se(c,e),t}))},f=e=>{se(l,e),se(a,e),se(d,e),se(c,e),v(e),s(i)};return[()=>e,()=>{return e=l,[...e?.keys()??[]];var e},e=>ne(a,e),e=>z(a,e),e=>re(l,e),e=>re(a,e),(e,t)=>se(a,e,t),w,(t,n,s,l,a)=>{w(t,n);const i=te(),f=te(),L=re(d,t),g=re(c,t),h=t=>{const s=r=>e.getCell(n,t,r),d=re(L,t),c=o(n,t)?r(l(s,t)):void 0;var u,v,w,h;if(d===c||E(d)&&E(c)&&(v=c,Q(u=d)===Q(v)&&_(u,(e,t)=>v[t]===e))||se(i,t,[d,c]),!m(a)){const e=re(g,t),r=o(n,t)?a(s,t):void 0;(w=e)===(h=r)||(K(w)||E(w))&&ie(w)===ie(h)||se(f,t,r)}},R=e=>{s(()=>{q(i,([,e],t)=>se(L,t,e)),q(f,(e,t)=>se(g,t,e))},i,f,L,g,e),N(i),N(f)};ne(L,h),e.hasTable(n)&&k(e.getRowIds(n),e=>{z(L,e)||h(e)}),R(!0),v(t),((e,...t)=>{const r=oe(u,e,ce);k(t,e=>ue(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>h(r)),e.addTableListener(n,()=>R()))},f,e=>n(e,i),()=>ne(u,f)]})(o,0,O,ge,he),Qe=e=>oe(y,e,i),De=(e,t,...r)=>k(r,r=>ue(oe(t,e,ce),r)),Oe=e=>ne(e,(e,t)=>q(t,t=>e.delListener(t))),_e=(e,t,r,...n)=>{const s=oe(t,e,ce);return k(n,t=>{ue(s,t),r&&e.callListener(t)}),n},je=(e,t,r)=>P(re(t,e),n=>{e.delListener(r),B(n,r),W(n)&&se(t,e)}),ke=e=>P(re(we,e),t=>{ne(t,(e,t)=>ne(t,(t,r)=>e.delListener(r))),se(we,e)}),xe=(e,t=te())=>{const r=oe(ee,e,te);ne(r,(e,n)=>{ne(n,(r,s)=>z(re(t,e),r)?0:(e.delListener(s),se(n,r))),W(n)&&se(r,e)}),ne(t,(t,n)=>{const s=oe(r,t,te);q(n,r=>oe(s,r,()=>t.addTableCellIdsListener(r,()=>de(()=>We(e),n=>{throw((e,t,r)=>{const n=oe(oe(we,e,te),t,te);oe(n,r,()=>t.addTableListener(r,()=>We(e)))})(e,t,r),n}))))}),W(r)&&se(ee,e)},Ae=()=>{ne(R,e=>Ce(e)?0:se(R,e)),ne(y,(e,t)=>Ce(e)||((e,t)=>!(J(C,([,e])=>J(e,([e])=>e!==t))&&J(Le,t=>!z(t,e))&&_([A,H],e=>J(e,e=>!z(e,t)))))(e,t)?0:se(y,e))},Fe=(e,t,r)=>{De(e,r,e.addWillFinishTransactionListener(t.startTransaction)),De(e,r,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},Me=(e,t)=>($(t)?g.delRow:g.setRow)(ve,e,{...t}),ze=(l,a,d,c)=>Qe(l).transaction(()=>P(((e,r)=>m(r)?Te(e):[r[1],t,r[2]])(l,d),([u,,v])=>{const[w,f]=a,L=d?.[0]??me(l),g=v?Qe(L):o,h=Qe(l),R=d?.[3]??qe(l),y=a[4];v&&ue(y,L);const b=[];let C=!1,I=0;const S=[[void 0,[L,void 0,void 0,[],te(),g]]],Q=[],x=[],A=[];u({select:(e,r,n)=>{const s=T(e)?r:e,o=T(e)?n:r,l=V(e)?[0,I+t,e]:m(o)?[0,e,t=>t(e)]:[0,o,t=>T(e)?t(!0,s,o):t(s,o)];return I++,F(b,l),{as:e=>l[1]=e}},selectAll:(e,r,n)=>{C=!0;const s=T(e)?r:e,o=T(e)?n:r;F(b,[1,s,V(o)?o:e=>(o??t)+e,V(o)||!m(o)&&o!==t?1:0])},join:(e,t,r,n)=>{const s=T(e)?t:e,[l,a]=T(e)?m(n)||V(r)?[void 0,r]:[r,n]:m(r)||V(t)?[void 0,t]:[t,r],i=T(e),d=i?Qe(s):o;i&&ue(y,s);const c=[s,[s,l,V(a)?a:e=>e(a),[],te(),d]];return F(S,c),{as:e=>c[0]=e}},where:(e,t,r,n)=>F(Q,V(e)?e:T(e)?e=>e(!0,t,r)===n:m(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,V(t)?[t,r,n,s]:re(ae,t)??[(e,t)=>t]]];return F(x,o),{as:e=>o[0]=e}},having:(e,t)=>F(A,V(e)?e:r=>r(e)===t),param:e=>{return t=e,P(R,e=>P(G.getOwnPropertyDescriptor(e,t),()=>e[t]));var t}});const N=te(S);ne(N,(e,[,t])=>P(re(N,t),({3:t})=>m(e)?0:F(t,e)));const H=e=>m(e),U=e=>re(N,H(e)?void 0:e),X=a[5];if(k(b,([e,t,,r=0])=>e?P(U(t),([e,,,,,t])=>t===o?0:se(X,e,re(X,e)||r?1:0)):0),((e,r)=>{const n=(t,s,o=ce())=>t===s||!z(o,t)&&(ue(o,t),!J((t=>t===e?r:re(fe,t))(t),(e,t)=>!n(t,s,o))),s=(e,t)=>!J(t,(t,r)=>!t||!n(r,e));!s(e,r)&&J(fe,(t,r)=>r===e||!s(r,t))||(()=>{throw Error("tinybase:16"+(m(e=void 0)?t:":"+e));var e})()})(l,X),h.delTable(l),D(b))return c?.(),Be;const ee=te(x),de=!W(ee)||!D(A),ve=[],we=a[3];k(b,([e,t,r])=>{e?de&&P(U(t),([e,,,,,t])=>{ue(oe(we,t,ce),e),k(j(t.getTableCellIds(e)),e=>F(ve,[r(e),O]))}):F(ve,[t,r])});const Le=te(ve);if(de&&W(Le))return c?.(),Be;const ge=de?a[2]=i():h;if(de){const t=te();ne(ee,(e,[r,n])=>ue(oe(t,r,ce),[e,n]));const o=ce();ne(Le,e=>z(t,e)?0:ue(o,e));const a=te(),i=e=>{return m(e)?void 0:K(t=e)||E(t)?"�"+ie(t):t;var t},d=(o,a,i,d)=>P(o,([c,u,v,w])=>{ne(a,(o,[l])=>{const a=oe(c,o,te),u=re(a,i),v=d?void 0:l;if(u!==v){const l=ce([[u,v]]),d=M(a);se(a,i,v),q(re(t,o),([t,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(W(r))return;const[l,a,i,d]=s;return o||=m(e),q(n,([r,n])=>{o||(e=m(r)?a?.(e,n,t++):m(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=m(e))}),o?l((c=r,[...c?.values()??[]]),M(r)):e;var c})(w[t],d,a,l,o);Y(w,t,m((t=>{if(null===t)return"null";if(E(t))return"array";if(K(t))return"object";const o=e(t);return(e=>e==r||e==n)(o)||o==s&&p(t)?o:void 0})(i))?void 0:i)})}}),W(u)||!_(A,e=>e(e=>w[e]))?h.delRow(l,v):m(v)?o[2]=h.addRow(l,{...w}):h.setRow(l,v,{...w})});De(ge,w,ge.addRowListener(l,null,(e,r,n,s)=>{const c=[],u=[],v=te(),w=ge.hasRow(l,n);let f=!w;q(o,e=>{const[t,r,o]=s(l,n,e);F(c,i(r)),F(u,i(o)),f||=t}),ne(t,e=>{const[t,,r]=s(l,n,e);(f||t)&&se(v,e,[r])}),f&&d(le(a,c,void 0,([,e])=>(B(e,n),W(e))),v,n,1),w&&d(le(a,u,()=>{const e=Z();return q(o,t=>Y(e,t,ge.getCell(l,n,t))),[te(),ce(),void 0,e]},([,e])=>{ue(e,n)}),v,n)}))}const he=(e,t,r,n,s)=>{const o=e=>t.getCell(r,n,e);k(s,t=>{const[r,,n,s,l,a]=re(N,t),i=n?.(o,e),d=re(l,e),c=d?.[0];i!=c&&(P(d,([,e,t])=>je(e,f,t)),se(l,e,m(i)?void 0:[i,a,..._e(a,f,1,a.addRowListener(r,i,()=>he(e,a,r,i,s)))]))}),(e=>{const t=(t,r,n)=>{const s=T(t)?r:t,o=T(t)?n:r;if(m(o))return g.getCell(L,e,t);if(s===L&&!T(t))return g.getCell(L,e,o);const l=re(N,s);return m(l)?void 0:l[5].getCell(l[0],re(l[4],e)?.[0],o)};ge.transaction(()=>{_(Q,e=>e(t))?C?(()=>{const r=Z();k(b,([n,s,o])=>{if(n)P(U(s),([t,,,,n,l])=>{const a=H(s)?e:re(n,e)?.[0];P(a,e=>k(j(l.getCellIds(t,e)),n=>Y(r,o(n),l.getCell(t,e,n))))});else{const n=o(t,e),l=s;m(n)?delete r[l]:Y(r,l,n)}}),$(r)?ge.delRow(l,e):ge.setRow(l,e,r)})():ne(Le,(r,n)=>ge._[5](l,e,r,n(t,e))):ge.delRow(l,e)})})(e)},{3:Re}=re(N,void 0),ye=(e,t,r)=>{g.hasRow(L,r)?he(r,g,L,r,Re):(ge.delRow(l,r),q(N,({4:e})=>P(re(e,r),([,t,n])=>{je(t,f,n),se(e,r)})))};return ge.transaction(()=>{k(g.getRowIds(L),e=>ye(0,0,e)),_e(g,f,0,g.addRowListener(L,null,ye))}),de&&Fe(ge,h,w),Fe(g,ge,w),c?.(),Be})),We=(e,t)=>{const r=[te(),te(),void 0,te(),ce(),te()];let n=!1;return de(()=>ze(e,r,t,()=>{P(t,t=>Je(e,t)),Oe(re(A,e)),Oe(re(H,e)),se(A,e,W(r[0])?void 0:r[0]),se(H,e,W(r[1])?void 0:r[1]),se(R,e,r[2]),xe(e,r[3]),ke(e),se(Le,e,W(r[4])?void 0:r[4]),se(fe,e,W(r[5])?void 0:r[5]),n=!0}),e=>{throw n||(Oe(r[0]),Oe(r[1])),Ae(),e}),Be},Je=(e,[t,r,n,s])=>{P(Te(e),([,e])=>g.delListener(e)),ue(b,e),(()=>{try{return Pe(e,t),Ie(e,[r,g.addRowListener(ve,e,()=>z(b,e)?0:We(e),!0),n]),void Me(e,s)}finally{B(b,e)}})()},Ne=e=>(P(Te(e),([,e])=>g.delListener(e)),g.delRow(ve,e),(e=>{Oe(re(A,e)),se(A,e),k([re(y,e),re(R,e)],t=>t?.delTable(e))})(e),(e=>{Oe(re(H,e)),se(H,e)})(e),xe(e),ke(e),se(Le,e),se(fe,e),Ve(e),Ae(),Be),qe=e=>g.getRow(ve,e),Be={setQueryDefinition:(e,t,r,n,s={})=>{const[o,l,a,i]=T(t)?[r,n,1,s]:[t,r,0,n??{}];return We(e,[o,l,a,i]),Ae(),Be},delQueryDefinition:Ne,getParamValues:qe,getParamValue:(e,t)=>g.getCell(ve,e,t),setParamValues:(e,t)=>(Ce(e)&&Me(e,t),Be),setParamValue:(e,t,r)=>(Ce(e)&&g.setCell(ve,e,t,r),Be),getStore:ye,getQueryIds:be,forEachQuery:pe,hasQuery:Ce,getTableId:me,forEachResultTable:e=>pe(t=>Qe(t).hasTable(t)?e(t,e=>Be.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Ee(()=>e(Be)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(ve,e,(e,r,n)=>t(Be,n,qe(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(ve,e,t,(e,t,n,s,o)=>r(Be,n,s,o)),delListener:e=>{const t=re(C,e);if("p"==e[0])g.delListener(S(e,1));else if(m(t))Re(e);else{const[r,n,s]=t;ne(n,(e,[t,r])=>t.delListener(r)),P(s,Re),se(C,e),Re(e),x[r]--}return Ae(),Be},destroy:()=>{k(be(),Ne),Se()},getListenerStats:()=>({...x,paramValues:g.getListenerStats().row-Q(be()),paramValue:g.getListenerStats().cell})};var Ge,He;return He=([e,t],r)=>{k(S(["get","has","forEach"],0,e),e=>Y(Be,e+a+r,(...t)=>(re(y,t[0])??h)[e+r](...t))),Y(Be,"add"+a+r+l,(...e)=>((n,s)=>{const o=ge(O,I),a=te(),i=()=>{const n=null==s?be():[s];k(n,n=>{return z(a,n)?0:se(a,n,[Qe(n),(s=Qe(n),s["add"+r+l](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:S(e,0,t))(e,t),(r,...n)=>e[t](Be,...n),!0))]);var s}),ne(a,(e,[t,r])=>null==s&&Ce(e)||e==s?0:(t.delListener(r),void se(a,e)))};return i(),se(C,o,[n,a,null==s?Ee(i):void 0]),x[n]++,o})((e=>e[0].toLowerCase()+S(e,1))(r),e[0]))},k(U(Ge={[d]:[2,1],[d+L]:[1,1],[u]:[1,1],[v]:[1,1],[w]:[1,5],[c]:[3,2],[L]:[1,2],[f]:[3,3]}),e=>He(Ge[e],e)),X(Be)})(i);o.set(i,g)}return o.get(i)}})();export{we as createQueries};
|
package/min/queries/index.js.gz
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",r=e(t),n=e(!0),s=e(0),o=e(e),l="Listener",a="Result",i="Ids",d="Table",c="Row",u=c+"Count",v=c+i,w="Sorted"+c+i,f="Cell",L=f+i,g=Math,h=e=>(t,r,n)=>e(t)?n?.():r(t),R=g.max,y=g.min,b=1/0,p=isFinite,C=e=>null==e,m=e=>void 0===e,T=e=>!0===e,I=h(C),P=h(m),V=t=>e(t)==o,E=e=>Array.isArray(e),S=(e,t,r)=>e.slice(t,r),Q=e=>e.length,D=e=>0==Q(e),O=()=>{},_=(e,t)=>e.every(t),j=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),x=e=>A(e,(e,t)=>e+t,0),A=(e,t,r)=>e.reduce(t,r),F=(e,...t)=>e.push(...t),M=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,W=e=>m(e)||0==M(e),J=(e,t)=>{for(const[r,n]of e?.entries()??[])if(!t(n,r))return!1;return!0},N=e=>e.clear(),q=(e,t)=>e?.forEach(t),B=(e,t)=>e?.delete(t),G=Object,H=e=>G.getPrototypeOf(e),K=e=>!C(e)&&I(H(e),e=>e==G.prototype||C(H(e)),()=>!0),U=G.keys,X=G.freeze,Y=(e,t,r)=>(G.defineProperty(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}),r),Z=(e=[])=>{const t=G.create(null);return k(e,([e,r])=>Y(t,e,r)),t},$=e=>K(e)&&0==(e=>Q(U(e)))(e),ee=Map,te=e=>new ee(e),re=(e,t)=>e?.get(t),ne=(e,t)=>q(e,(e,r)=>t(r,e)),se=(e,t,r)=>m(r)?(B(e,t),e):e?.set(t,r),oe=(e,t,r,n)=>{let s=re(e,t);return z(e,t)?n?.(s):se(e,t,s=r()),s},le=(e,t,r,n,s=0)=>P((r?oe:re)(e,t[s],s>Q(t)-2?r:te),o=>{if(s>Q(t)-2)return n?.(o)&&se(e,t[s]),o;const l=le(o,t,r,n,s+1);return W(o)&&se(e,t[s]),l}),ae=te([["avg",[(e,t)=>x(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=>A(e,(e,t)=>R(e,t),-1/0),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>A(e,(e,t)=>y(e,t),b),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:y(t,e)]],["sum",[e=>x(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),ie=JSON.stringify,de=(e,t)=>{try{return e()}catch(e){t?.(e)}},ce=e=>new Set(E(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),ve="_",we=(()=>{const o=new WeakMap;return i=>{if(!o.has(i)){const g=(o=>{const i=o._[0],g=i(),h=i(),R=te(),y=te(),b=ce(),C=te(),I=te(),x={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},A=te(),H=te(),ee=te(),we=te(),fe=te(),Le=te(),{_:[,ge,he],delListener:Re}=h,[ye,be,pe,Ce,me,Te,Ie,Pe,,Ve,Ee,Se]=((e,t,r,n,s)=>{const o=e.hasRow,l=te(),a=te(),i=te(),d=te(),c=te(),u=te(),v=t=>P(re(u,t),r=>{q(r,t=>{e.delListener(t),B(r,t)}),se(u,t)}),w=(e,t)=>{se(l,e,t),z(a,e)||(se(a,e,[]),se(d,e,te()),se(c,e,te()),de(()=>s(i),t=>{throw se(l,e),se(a,e),se(d,e),se(c,e),t}))},f=e=>{se(l,e),se(a,e),se(d,e),se(c,e),v(e),s(i)};return[()=>e,()=>{return e=l,[...e?.keys()??[]];var e},e=>ne(a,e),e=>z(a,e),e=>re(l,e),e=>re(a,e),(e,t)=>se(a,e,t),w,(t,n,s,l,a)=>{w(t,n);const i=te(),f=te(),L=re(d,t),g=re(c,t),h=t=>{const s=r=>e.getCell(n,t,r),d=re(L,t),c=o(n,t)?r(l(s,t)):void 0;var u,v,w,h;if(d===c||E(d)&&E(c)&&(v=c,Q(u=d)===Q(v)&&_(u,(e,t)=>v[t]===e))||se(i,t,[d,c]),!m(a)){const e=re(g,t),r=o(n,t)?a(s,t):void 0;(w=e)===(h=r)||(K(w)||E(w))&&ie(w)===ie(h)||se(f,t,r)}},R=e=>{s(()=>{q(i,([,e],t)=>se(L,t,e)),q(f,(e,t)=>se(g,t,e))},i,f,L,g,e),N(i),N(f)};ne(L,h),e.hasTable(n)&&k(e.getRowIds(n),e=>{z(L,e)||h(e)}),R(!0),v(t),((e,...t)=>{const r=oe(u,e,ce);k(t,e=>ue(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>h(r)),e.addTableListener(n,()=>R()))},f,e=>n(e,i),()=>ne(u,f)]})(o,0,O,ge,he),Qe=e=>oe(y,e,i),De=(e,t,...r)=>k(r,r=>ue(oe(t,e,ce),r)),Oe=e=>ne(e,(e,t)=>q(t,t=>e.delListener(t))),_e=(e,t,r,...n)=>{const s=oe(t,e,ce);return k(n,t=>{ue(s,t),r&&e.callListener(t)}),n},je=(e,t,r)=>P(re(t,e),n=>{e.delListener(r),B(n,r),W(n)&&se(t,e)}),ke=e=>P(re(we,e),t=>{ne(t,(e,t)=>ne(t,(t,r)=>e.delListener(r))),se(we,e)}),xe=(e,t=te())=>{const r=oe(ee,e,te);ne(r,(e,n)=>{ne(n,(r,s)=>z(re(t,e),r)?0:(e.delListener(s),se(n,r))),W(n)&&se(r,e)}),ne(t,(t,n)=>{const s=oe(r,t,te);q(n,r=>oe(s,r,()=>t.addTableCellIdsListener(r,()=>de(()=>We(e),n=>{throw((e,t,r)=>{const n=oe(oe(we,e,te),t,te);oe(n,r,()=>t.addTableListener(r,()=>We(e)))})(e,t,r),n}))))}),W(r)&&se(ee,e)},Ae=()=>{ne(R,e=>Ce(e)?0:se(R,e)),ne(y,(e,t)=>Ce(e)||((e,t)=>!(J(C,([,e])=>J(e,([e])=>e!==t))&&J(Le,t=>!z(t,e))&&_([A,H],e=>J(e,e=>!z(e,t)))))(e,t)?0:se(y,e))},Fe=(e,t,r)=>{De(e,r,e.addWillFinishTransactionListener(t.startTransaction)),De(e,r,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},Me=(e,t)=>($(t)?g.delRow:g.setRow)(ve,e,{...t}),ze=(l,a,d,c)=>Qe(l).transaction(()=>P(((e,r)=>m(r)?Te(e):[r[1],t,r[2]])(l,d),([u,,v])=>{const[w,f]=a,L=d?.[0]??me(l),g=v?Qe(L):o,h=Qe(l),R=d?.[3]??qe(l),y=a[4];v&&ue(y,L);const b=[];let C=!1,I=0;const S=[[void 0,[L,void 0,void 0,[],te(),g]]],Q=[],x=[],A=[];u({select:(e,r,n)=>{const s=T(e)?r:e,o=T(e)?n:r,l=V(e)?[0,I+t,e]:m(o)?[0,e,t=>t(e)]:[0,o,t=>T(e)?t(!0,s,o):t(s,o)];return I++,F(b,l),{as:e=>l[1]=e}},selectAll:(e,r,n)=>{C=!0;const s=T(e)?r:e,o=T(e)?n:r;F(b,[1,s,V(o)?o:e=>(o??t)+e,V(o)||!m(o)&&o!==t?1:0])},join:(e,t,r,n)=>{const s=T(e)?t:e,[l,a]=T(e)?m(n)||V(r)?[void 0,r]:[r,n]:m(r)||V(t)?[void 0,t]:[t,r],i=T(e),d=i?Qe(s):o;i&&ue(y,s);const c=[s,[s,l,V(a)?a:e=>e(a),[],te(),d]];return F(S,c),{as:e=>c[0]=e}},where:(e,t,r,n)=>F(Q,V(e)?e:T(e)?e=>e(!0,t,r)===n:m(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,V(t)?[t,r,n,s]:re(ae,t)??[(e,t)=>t]]];return F(x,o),{as:e=>o[0]=e}},having:(e,t)=>F(A,V(e)?e:r=>r(e)===t),param:e=>{return t=e,P(R,e=>P(G.getOwnPropertyDescriptor(e,t),()=>e[t]));var t}});const N=te(S);ne(N,(e,[,t])=>P(re(N,t),({3:t})=>m(e)?0:F(t,e)));const H=e=>m(e),U=e=>re(N,H(e)?void 0:e),X=a[5];if(k(b,([e,t,,r=0])=>e?P(U(t),([e,,,,,t])=>t===o?0:se(X,e,re(X,e)||r?1:0)):0),((e,r)=>{const n=(t,s,o=ce())=>t===s||!z(o,t)&&(ue(o,t),!J((t=>t===e?r:re(fe,t))(t),(e,t)=>!n(t,s,o))),s=(e,t)=>!J(t,(t,r)=>!t||!n(r,e));!s(e,r)&&J(fe,(t,r)=>r===e||!s(r,t))||(()=>{throw Error("tinybase:16"+(m(e=void 0)?t:":"+e));var e})()})(l,X),h.delTable(l),D(b))return c?.(),Be;const ee=te(x),de=!W(ee)||!D(A),ve=[],we=a[3];k(b,([e,t,r])=>{e?de&&P(U(t),([e,,,,,t])=>{ue(oe(we,t,ce),e),k(j(t.getTableCellIds(e)),e=>F(ve,[r(e),O]))}):F(ve,[t,r])});const Le=te(ve);if(de&&W(Le))return c?.(),Be;const ge=de?a[2]=i():h;if(de){const t=te();ne(ee,(e,[r,n])=>ue(oe(t,r,ce),[e,n]));const o=ce();ne(Le,e=>z(t,e)?0:ue(o,e));const a=te(),i=e=>{return m(e)?void 0:K(t=e)||E(t)?"�"+ie(t):t;var t},d=(o,a,i,d)=>P(o,([c,u,v,w])=>{ne(a,(o,[l])=>{const a=oe(c,o,te),u=re(a,i),v=d?void 0:l;if(u!==v){const l=ce([[u,v]]),d=M(a);se(a,i,v),q(re(t,o),([t,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(W(r))return;const[l,a,i,d]=s;return o||=m(e),q(n,([r,n])=>{o||(e=m(r)?a?.(e,n,t++):m(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=m(e))}),o?l((c=r,[...c?.values()??[]]),M(r)):e;var c})(w[t],d,a,l,o);Y(w,t,m((t=>{if(null===t)return"null";if(E(t))return"array";if(K(t))return"object";const o=e(t);return(e=>e==r||e==n)(o)||o==s&&p(t)?o:void 0})(i))?void 0:i)})}}),W(u)||!_(A,e=>e(e=>w[e]))?h.delRow(l,v):m(v)?o[2]=h.addRow(l,{...w}):h.setRow(l,v,{...w})});De(ge,w,ge.addRowListener(l,null,(e,r,n,s)=>{const c=[],u=[],v=te(),w=ge.hasRow(l,n);let f=!w;q(o,e=>{const[t,r,o]=s(l,n,e);F(c,i(r)),F(u,i(o)),f||=t}),ne(t,e=>{const[t,,r]=s(l,n,e);(f||t)&&se(v,e,[r])}),f&&d(le(a,c,void 0,([,e])=>(B(e,n),W(e))),v,n,1),w&&d(le(a,u,()=>{const e=Z();return q(o,t=>Y(e,t,ge.getCell(l,n,t))),[te(),ce(),void 0,e]},([,e])=>{ue(e,n)}),v,n)}))}const he=(e,t,r,n,s)=>{const o=e=>t.getCell(r,n,e);k(s,t=>{const[r,,n,s,l,a]=re(N,t),i=n?.(o,e),d=re(l,e),c=d?.[0];i!=c&&(P(d,([,e,t])=>je(e,f,t)),se(l,e,m(i)?void 0:[i,a,..._e(a,f,1,a.addRowListener(r,i,()=>he(e,a,r,i,s)))]))}),(e=>{const t=(t,r,n)=>{const s=T(t)?r:t,o=T(t)?n:r;if(m(o))return g.getCell(L,e,t);if(s===L&&!T(t))return g.getCell(L,e,o);const l=re(N,s);return m(l)?void 0:l[5].getCell(l[0],re(l[4],e)?.[0],o)};ge.transaction(()=>{_(Q,e=>e(t))?C?(()=>{const r=Z();k(b,([n,s,o])=>{if(n)P(U(s),([t,,,,n,l])=>{const a=H(s)?e:re(n,e)?.[0];P(a,e=>k(j(l.getCellIds(t,e)),n=>Y(r,o(n),l.getCell(t,e,n))))});else{const n=o(t,e),l=s;m(n)?delete r[l]:Y(r,l,n)}}),$(r)?ge.delRow(l,e):ge.setRow(l,e,r)})():ne(Le,(r,n)=>ge._[5](l,e,r,n(t,e))):ge.delRow(l,e)})})(e)},{3:Re}=re(N,void 0),ye=(e,t,r)=>{g.hasRow(L,r)?he(r,g,L,r,Re):(ge.delRow(l,r),q(N,({4:e})=>P(re(e,r),([,t,n])=>{je(t,f,n),se(e,r)})))};return ge.transaction(()=>{k(g.getRowIds(L),e=>ye(0,0,e)),_e(g,f,0,g.addRowListener(L,null,ye))}),de&&Fe(ge,h,w),Fe(g,ge,w),c?.(),Be})),We=(e,t)=>{const r=[te(),te(),void 0,te(),ce(),te()];let n=!1;return de(()=>ze(e,r,t,()=>{P(t,t=>Je(e,t)),Oe(re(A,e)),Oe(re(H,e)),se(A,e,W(r[0])?void 0:r[0]),se(H,e,W(r[1])?void 0:r[1]),se(R,e,r[2]),xe(e,r[3]),ke(e),se(Le,e,W(r[4])?void 0:r[4]),se(fe,e,W(r[5])?void 0:r[5]),n=!0}),e=>{throw n||(Oe(r[0]),Oe(r[1])),Ae(),e}),Be},Je=(e,[t,r,n,s])=>{P(Te(e),([,e])=>g.delListener(e)),ue(b,e),(()=>{try{return Pe(e,t),Ie(e,[r,g.addRowListener(ve,e,()=>z(b,e)?0:We(e),!0),n]),void Me(e,s)}finally{B(b,e)}})()},Ne=e=>(P(Te(e),([,e])=>g.delListener(e)),g.delRow(ve,e),(e=>{Oe(re(A,e)),se(A,e),k([re(y,e),re(R,e)],t=>t?.delTable(e))})(e),(e=>{Oe(re(H,e)),se(H,e)})(e),xe(e),ke(e),se(Le,e),se(fe,e),Ve(e),Ae(),Be),qe=e=>g.getRow(ve,e),Be={setQueryDefinition:(e,t,r,n,s={})=>{const[o,l,a,i]=T(t)?[r,n,1,s]:[t,r,0,n??{}];return We(e,[o,l,a,i]),Ae(),Be},delQueryDefinition:Ne,getParamValues:qe,getParamValue:(e,t)=>g.getCell(ve,e,t),setParamValues:(e,t)=>(Ce(e)&&Me(e,t),Be),setParamValue:(e,t,r)=>(Ce(e)&&g.setCell(ve,e,t,r),Be),getStore:ye,getQueryIds:be,forEachQuery:pe,hasQuery:Ce,getTableId:me,forEachResultTable:e=>pe(t=>Qe(t).hasTable(t)?e(t,e=>Be.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Ee(()=>e(Be)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(ve,e,(e,r,n)=>t(Be,n,qe(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(ve,e,t,(e,t,n,s,o)=>r(Be,n,s,o)),delListener:e=>{const t=re(C,e);if("p"==e[0])g.delListener(S(e,1));else if(m(t))Re(e);else{const[r,n,s]=t;ne(n,(e,[t,r])=>t.delListener(r)),P(s,Re),se(C,e),Re(e),x[r]--}return Ae(),Be},destroy:()=>{k(be(),Ne),Se()},getListenerStats:()=>({...x,paramValues:g.getListenerStats().row-Q(be()),paramValue:g.getListenerStats().cell})};var Ge,He;return He=([e,t],r)=>{k(S(["get","has","forEach"],0,e),e=>Y(Be,e+a+r,(...t)=>(re(y,t[0])??h)[e+r](...t))),Y(Be,"add"+a+r+l,(...e)=>((n,s)=>{const o=ge(O,I),a=te(),i=()=>{const n=null==s?be():[s];k(n,n=>{return z(a,n)?0:se(a,n,[Qe(n),(s=Qe(n),s["add"+r+l](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:S(e,0,t))(e,t),(r,...n)=>e[t](Be,...n),!0))]);var s}),ne(a,(e,[t,r])=>null==s&&Ce(e)||e==s?0:(t.delListener(r),void se(a,e)))};return i(),se(C,o,[n,a,null==s?Ee(i):void 0]),x[n]++,o})((e=>e[0].toLowerCase()+S(e,1))(r),e[0]))},k(U(Ge={[d]:[2,1],[d+L]:[1,1],[u]:[1,1],[v]:[1,1],[w]:[1,5],[c]:[3,2],[L]:[1,2],[f]:[3,3]}),e=>He(Ge[e],e)),X(Be)})(i);o.set(i,g)}return o.get(i)}})();export{we as createQueries};
|
|
1
|
+
const e=e=>typeof e,t="",r=e(t),n=e(!0),s=e(0),o=e(e),l="Listener",a="Result",i="Ids",d="Table",c="Row",u=c+"Count",v=c+i,w="Sorted"+c+i,f="Cell",L=f+i,g=Math,h=e=>(t,r,n)=>e(t)?n?.():r(t),R=g.max,y=g.min,b=1/0,p=isFinite,C=e=>null==e,m=e=>void 0===e,T=e=>!0===e,I=h(C),P=h(m),V=t=>e(t)==o,E=e=>Array.isArray(e),S=(e,t,r)=>e.slice(t,r),Q=e=>e.length,D=e=>0==Q(e),O=()=>{},_=(e,t)=>e.every(t),j=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),x=e=>A(e,(e,t)=>e+t,0),A=(e,t,r)=>e.reduce(t,r),F=(e,...t)=>e.push(...t),M=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,W=e=>m(e)||0==M(e),J=(e,t)=>{for(const[r,n]of e?.entries()??[])if(!t(n,r))return!1;return!0},N=e=>e.clear(),q=(e,t)=>e?.forEach(t),B=(e,t)=>e?.delete(t),G=Object,H=e=>G.getPrototypeOf(e),K=e=>!C(e)&&I(H(e),e=>e==G.prototype||C(H(e)),()=>!0),U=G.keys,X=G.freeze,Y=(e,t,r)=>(G.defineProperty(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}),r),Z=(e=[])=>{const t=G.create(null);return k(e,([e,r])=>Y(t,e,r)),t},$=e=>K(e)&&0==(e=>Q(U(e)))(e),ee=Map,te=e=>new ee(e),re=(e,t)=>e?.get(t),ne=(e,t)=>q(e,(e,r)=>t(r,e)),se=(e,t,r)=>m(r)?(B(e,t),e):e?.set(t,r),oe=(e,t,r,n)=>{let s=re(e,t);return z(e,t)?n?.(s):se(e,t,s=r()),s},le=(e,t,r,n,s=0)=>P((r?oe:re)(e,t[s],s>Q(t)-2?r:te),o=>{if(s>Q(t)-2)return n?.(o)&&se(e,t[s]),o;const l=le(o,t,r,n,s+1);return W(o)&&se(e,t[s]),l}),ae=te([["avg",[(e,t)=>x(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>r>1?e+(e-t)/(r-1):void 0,(e,t,r,n)=>e+(t-r)/n]],["max",[e=>A(e,(e,t)=>R(e,t),-1/0),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>A(e,(e,t)=>y(e,t),b),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:y(t,e)]],["sum",[e=>x(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),ie=JSON.stringify,de=(e,t)=>{try{return e()}catch(e){t?.(e)}},ce=e=>new Set(E(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),ve="_",we=(()=>{const o=new WeakMap;return i=>{if(!o.has(i)){const g=(o=>{const i=o._[0],g=i(),h=i(),R=te(),y=te(),b=ce(),C=te(),I=te(),x={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},A=te(),H=te(),ee=te(),we=te(),fe=te(),Le=te(),{_:[,ge,he],delListener:Re}=h,[ye,be,pe,Ce,me,Te,Ie,Pe,,Ve,Ee,Se]=((e,t,r,n,s)=>{const o=e.hasRow,l=te(),a=te(),i=te(),d=te(),c=te(),u=te(),v=t=>P(re(u,t),r=>{q(r,t=>{e.delListener(t),B(r,t)}),se(u,t)}),w=(e,t)=>{se(l,e,t),z(a,e)||(se(a,e,[]),se(d,e,te()),se(c,e,te()),de(()=>s(i),t=>{throw se(l,e),se(a,e),se(d,e),se(c,e),t}))},f=e=>{se(l,e),se(a,e),se(d,e),se(c,e),v(e),s(i)};return[()=>e,()=>{return e=l,[...e?.keys()??[]];var e},e=>ne(a,e),e=>z(a,e),e=>re(l,e),e=>re(a,e),(e,t)=>se(a,e,t),w,(t,n,s,l,a)=>{w(t,n);const i=te(),f=te(),L=re(d,t),g=re(c,t),h=t=>{const s=r=>e.getCell(n,t,r),d=re(L,t),c=o(n,t)?r(l(s,t)):void 0;var u,v,w,h;if(d===c||E(d)&&E(c)&&(v=c,Q(u=d)===Q(v)&&_(u,(e,t)=>v[t]===e))||se(i,t,[d,c]),!m(a)){const e=re(g,t),r=o(n,t)?a(s,t):void 0;(w=e)===(h=r)||(K(w)||E(w))&&ie(w)===ie(h)||se(f,t,r)}},R=e=>{s(()=>{q(i,([,e],t)=>se(L,t,e)),q(f,(e,t)=>se(g,t,e))},i,f,L,g,e),N(i),N(f)};ne(L,h),e.hasTable(n)&&k(e.getRowIds(n),e=>{z(L,e)||h(e)}),R(!0),v(t),((e,...t)=>{const r=oe(u,e,ce);k(t,e=>ue(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>h(r)),e.addTableListener(n,()=>R()))},f,e=>n(e,i),()=>ne(u,f)]})(o,0,O,ge,he),Qe=e=>oe(y,e,i),De=(e,t,...r)=>k(r,r=>ue(oe(t,e,ce),r)),Oe=e=>ne(e,(e,t)=>q(t,t=>e.delListener(t))),_e=(e,t,r,...n)=>{const s=oe(t,e,ce);return k(n,t=>{ue(s,t),r&&e.callListener(t)}),n},je=(e,t,r)=>P(re(t,e),n=>{e.delListener(r),B(n,r),W(n)&&se(t,e)}),ke=e=>P(re(we,e),t=>{ne(t,(e,t)=>ne(t,(t,r)=>e.delListener(r))),se(we,e)}),xe=(e,t=te())=>{const r=oe(ee,e,te);ne(r,(e,n)=>{ne(n,(r,s)=>z(re(t,e),r)?0:(e.delListener(s),se(n,r))),W(n)&&se(r,e)}),ne(t,(t,n)=>{const s=oe(r,t,te);q(n,r=>oe(s,r,()=>t.addTableCellIdsListener(r,()=>de(()=>We(e),n=>{throw((e,t,r)=>{const n=oe(oe(we,e,te),t,te);oe(n,r,()=>t.addTableListener(r,()=>We(e)))})(e,t,r),n}))))}),W(r)&&se(ee,e)},Ae=()=>{ne(R,e=>Ce(e)?0:se(R,e)),ne(y,(e,t)=>Ce(e)||((e,t)=>!(J(C,([,e])=>J(e,([e])=>e!==t))&&J(Le,t=>!z(t,e))&&_([A,H],e=>J(e,e=>!z(e,t)))))(e,t)?0:se(y,e))},Fe=(e,t,r)=>{De(e,r,e.addWillFinishTransactionListener(t.startTransaction)),De(e,r,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},Me=(e,t)=>($(t)?g.delRow:g.setRow)(ve,e,{...t}),ze=(l,a,d,c)=>Qe(l).transaction(()=>P(((e,r)=>m(r)?Te(e):[r[1],t,r[2]])(l,d),([u,,v])=>{const[w,f]=a,L=d?.[0]??me(l),g=v?Qe(L):o,h=Qe(l),R=d?.[3]??qe(l),y=a[4];v&&ue(y,L);const b=[];let C=!1,I=0;const S=[[void 0,[L,void 0,void 0,[],te(),g]]],Q=[],x=[],A=[];u({select:(e,r,n)=>{const s=T(e)?r:e,o=T(e)?n:r,l=V(e)?[0,I+t,e]:m(o)?[0,e,t=>t(e)]:[0,o,t=>T(e)?t(!0,s,o):t(s,o)];return I++,F(b,l),{as:e=>l[1]=e}},selectAll:(e,r,n)=>{C=!0;const s=T(e)?r:e,o=T(e)?n:r;F(b,[1,s,V(o)?o:e=>(o??t)+e,V(o)||!m(o)&&o!==t?1:0])},join:(e,t,r,n)=>{const s=T(e)?t:e,[l,a]=T(e)?m(n)||V(r)?[void 0,r]:[r,n]:m(r)||V(t)?[void 0,t]:[t,r],i=T(e),d=i?Qe(s):o;i&&ue(y,s);const c=[s,[s,l,V(a)?a:e=>e(a),[],te(),d]];return F(S,c),{as:e=>c[0]=e}},where:(e,t,r,n)=>F(Q,V(e)?e:T(e)?e=>e(!0,t,r)===n:m(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,V(t)?[t,r,n,s]:re(ae,t)??[(e,t)=>t]]];return F(x,o),{as:e=>o[0]=e}},having:(e,t)=>F(A,V(e)?e:r=>r(e)===t),param:e=>{return t=e,P(R,e=>P(G.getOwnPropertyDescriptor(e,t),()=>e[t]));var t}});const N=te(S);ne(N,(e,[,t])=>P(re(N,t),({3:t})=>m(e)?0:F(t,e)));const H=e=>m(e),U=e=>re(N,H(e)?void 0:e),X=a[5];if(k(b,([e,t,,r=0])=>e?P(U(t),([e,,,,,t])=>t===o?0:se(X,e,re(X,e)||r?1:0)):0),((e,r)=>{const n=(t,s,o=ce())=>t===s||!z(o,t)&&(ue(o,t),!J((t=>t===e?r:re(fe,t))(t),(e,t)=>!n(t,s,o))),s=(e,t)=>!J(t,(t,r)=>!t||!n(r,e));!s(e,r)&&J(fe,(t,r)=>r===e||!s(r,t))||(()=>{throw Error("tinybase:16"+(m(e=void 0)?t:":"+e));var e})()})(l,X),h.delTable(l),D(b))return c?.(),Be;const ee=te(x),de=!W(ee)||!D(A),ve=[],we=a[3];k(b,([e,t,r])=>{e?de&&P(U(t),([e,,,,,t])=>{ue(oe(we,t,ce),e),k(j(t.getTableCellIds(e)),e=>F(ve,[r(e),O]))}):F(ve,[t,r])});const Le=te(ve);if(de&&W(Le))return c?.(),Be;const ge=de?a[2]=i():h;if(de){const t=te();ne(ee,(e,[r,n])=>ue(oe(t,r,ce),[e,n]));const o=ce();ne(Le,e=>z(t,e)?0:ue(o,e));const a=te(),i=e=>{return m(e)?void 0:K(t=e)||E(t)?"�"+ie(t):t;var t},d=(o,a,i,d)=>P(o,([c,u,v,w])=>{ne(a,(o,[l])=>{const a=oe(c,o,te),u=re(a,i),v=d?void 0:l;if(u!==v){const l=ce([[u,v]]),d=M(a);se(a,i,v),q(re(t,o),([t,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(W(r))return;const[l,a,i,d]=s;return o||=m(e),q(n,([r,n])=>{o||(e=m(r)?a?.(e,n,t++):m(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=m(e))}),o?l((c=r,[...c?.values()??[]]),M(r)):e;var c})(w[t],d,a,l,o);Y(w,t,m((t=>{if(null===t)return"null";if(E(t))return"array";if(K(t))return"object";const o=e(t);return(e=>e==r||e==n)(o)||o==s&&p(t)?o:void 0})(i))?void 0:i)})}}),W(u)||!_(A,e=>e(e=>w[e]))?h.delRow(l,v):m(v)?o[2]=h.addRow(l,{...w}):h.setRow(l,v,{...w})});De(ge,w,ge.addRowListener(l,null,(e,r,n,s)=>{const c=[],u=[],v=te(),w=ge.hasRow(l,n);let f=!w;q(o,e=>{const[t,r,o]=s(l,n,e);F(c,i(r)),F(u,i(o)),f||=t}),ne(t,e=>{const[t,,r]=s(l,n,e);(f||t)&&se(v,e,[r])}),f&&d(le(a,c,void 0,([,e])=>(B(e,n),W(e))),v,n,1),w&&d(le(a,u,()=>{const e=Z();return q(o,t=>Y(e,t,ge.getCell(l,n,t))),[te(),ce(),void 0,e]},([,e])=>{ue(e,n)}),v,n)}))}const he=(e,t,r,n,s)=>{const o=e=>t.getCell(r,n,e);k(s,t=>{const[r,,n,s,l,a]=re(N,t),i=n?.(o,e),d=re(l,e),c=d?.[0];i!=c&&(P(d,([,e,t])=>je(e,f,t)),se(l,e,m(i)?void 0:[i,a,..._e(a,f,1,a.addRowListener(r,i,()=>he(e,a,r,i,s)))]))}),(e=>{const t=(t,r,n)=>{const s=T(t)?r:t,o=T(t)?n:r;if(m(o))return g.getCell(L,e,t);if(s===L&&!T(t))return g.getCell(L,e,o);const l=re(N,s);return m(l)?void 0:l[5].getCell(l[0],re(l[4],e)?.[0],o)};ge.transaction(()=>{_(Q,e=>e(t))?C?(()=>{const r=Z();k(b,([n,s,o])=>{if(n)P(U(s),([t,,,,n,l])=>{const a=H(s)?e:re(n,e)?.[0];P(a,e=>k(j(l.getCellIds(t,e)),n=>Y(r,o(n),l.getCell(t,e,n))))});else{const n=o(t,e),l=s;m(n)?delete r[l]:Y(r,l,n)}}),$(r)?ge.delRow(l,e):ge.setRow(l,e,r)})():ne(Le,(r,n)=>ge._[5](l,e,r,n(t,e))):ge.delRow(l,e)})})(e)},{3:Re}=re(N,void 0),ye=(e,t,r)=>{g.hasRow(L,r)?he(r,g,L,r,Re):(ge.delRow(l,r),q(N,({4:e})=>P(re(e,r),([,t,n])=>{je(t,f,n),se(e,r)})))};return ge.transaction(()=>{k(g.getRowIds(L),e=>ye(0,0,e)),_e(g,f,0,g.addRowListener(L,null,ye))}),de&&Fe(ge,h,w),Fe(g,ge,w),c?.(),Be})),We=(e,t)=>{const r=[te(),te(),void 0,te(),ce(),te()];let n=!1;return de(()=>ze(e,r,t,()=>{P(t,t=>Je(e,t)),Oe(re(A,e)),Oe(re(H,e)),se(A,e,W(r[0])?void 0:r[0]),se(H,e,W(r[1])?void 0:r[1]),se(R,e,r[2]),xe(e,r[3]),ke(e),se(Le,e,W(r[4])?void 0:r[4]),se(fe,e,W(r[5])?void 0:r[5]),n=!0}),e=>{throw n||(Oe(r[0]),Oe(r[1])),Ae(),e}),Be},Je=(e,[t,r,n,s])=>{P(Te(e),([,e])=>g.delListener(e)),ue(b,e),(()=>{try{return Pe(e,t),Ie(e,[r,g.addRowListener(ve,e,()=>z(b,e)?0:We(e),!0),n]),void Me(e,s)}finally{B(b,e)}})()},Ne=e=>(P(Te(e),([,e])=>g.delListener(e)),g.delRow(ve,e),(e=>{Oe(re(A,e)),se(A,e),k([re(y,e),re(R,e)],t=>t?.delTable(e))})(e),(e=>{Oe(re(H,e)),se(H,e)})(e),xe(e),ke(e),se(Le,e),se(fe,e),Ve(e),Ae(),Be),qe=e=>g.getRow(ve,e),Be={setQueryDefinition:(e,t,r,n,s={})=>{const[o,l,a,i]=T(t)?[r,n,1,s]:[t,r,0,n??{}];return We(e,[o,l,a,i]),Ae(),Be},delQueryDefinition:Ne,getParamValues:qe,getParamValue:(e,t)=>g.getCell(ve,e,t),setParamValues:(e,t)=>(Ce(e)&&Me(e,t),Be),setParamValue:(e,t,r)=>(Ce(e)&&g.setCell(ve,e,t,r),Be),getStore:ye,getQueryIds:be,forEachQuery:pe,hasQuery:Ce,getTableId:me,forEachResultTable:e=>pe(t=>Qe(t).hasTable(t)?e(t,e=>Be.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Ee(()=>e(Be)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(ve,e,(e,r,n)=>t(Be,n,qe(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(ve,e,t,(e,t,n,s,o)=>r(Be,n,s,o)),delListener:e=>{const t=re(C,e);if("p"==e[0])g.delListener(S(e,1));else if(m(t))Re(e);else{const[r,n,s]=t;ne(n,(e,[t,r])=>t.delListener(r)),P(s,Re),se(C,e),Re(e),x[r]--}return Ae(),Be},destroy:()=>{k(be(),Ne),Se()},getListenerStats:()=>({...x,paramValues:g.getListenerStats().row-Q(be()),paramValue:g.getListenerStats().cell})};var Ge,He;return He=([e,t],r)=>{k(S(["get","has","forEach"],0,e),e=>Y(Be,e+a+r,(...t)=>(re(y,t[0])??h)[e+r](...t))),Y(Be,"add"+a+r+l,(...e)=>((n,s)=>{const o=ge(O,I),a=te(),i=()=>{const n=null==s?be():[s];k(n,n=>{return z(a,n)?0:se(a,n,[Qe(n),(s=Qe(n),s["add"+r+l](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:S(e,0,t))(e,t),(r,...n)=>e[t](Be,...n),!0))]);var s}),ne(a,(e,[t,r])=>null==s&&Ce(e)||e==s?0:(t.delListener(r),void se(a,e)))};return i(),se(C,o,[n,a,null==s?Ee(i):void 0]),x[n]++,o})((e=>e[0].toLowerCase()+S(e,1))(r),e[0]))},k(U(Ge={[d]:[2,1],[d+L]:[1,1],[u]:[1,1],[v]:[1,1],[w]:[1,5],[c]:[3,2],[L]:[1,2],[f]:[3,3]}),e=>He(Ge[e],e)),X(Be)})(i);o.set(i,g)}return o.get(i)}})();export{we as createQueries};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",o=e(t),
|
|
1
|
+
const e=e=>typeof e,t="",o=e(t),r=e=>(t,o,r)=>e(t)?r?.():o(t),n=e=>null==e,s=e=>void 0===e,i=e=>null===e,a=r(n),l=r(s),d=e=>Array.isArray(e),c=e=>e.length,u=(e,t)=>{return c(e)===c(t)&&(o=(e,o)=>t[o]===e,e.every(o));var o},R=(e,t)=>e.forEach(t),f=(e,...t)=>e.push(...t),h=e=>t=>{let o=0;for(const r of t.values())o+=e(r);return o},w=e=>e?.size??0,g=h(w),p=h(g),I=(e,t)=>e?.has(t)??!1,L=e=>s(e)||0==w(e),v=e=>[...e?.values()??[]],y=e=>e.clear(),b=(e,t)=>e?.forEach(t),k=(e,t)=>e?.delete(t),m=(e,t)=>{try{return e()}catch(e){t?.(e)}},E=Object,S=e=>E.getPrototypeOf(e),T=E.freeze,O=JSON.stringify,z=Map,A=e=>new z(e),D=(e,t)=>e?.get(t),M=(e,t)=>b(e,(e,o)=>t(o,e)),j=(e,t,o)=>s(o)?(k(e,t),e):e?.set(t,o),x=(e,t,o,r)=>{let n=D(e,t);return I(e,t)?r?.(n):j(e,t,n=o()),n},C=(e,t,o,r,n=0)=>l((o?x:D)(e,t[n],n>c(t)-2?o:A),s=>{if(n>c(t)-2)return r?.(s)&&j(e,t[n]),s;const i=C(s,t,o,r,n+1);return L(s)&&j(e,t[n]),i}),J=e=>new Set(d(e)||s(e)?e:[e]),N=(e,t)=>e?.add(t),P=/^\d+$/,W=(()=>{const r=new WeakMap;return h=>{if(!r.has(h)){const w=(r=>{const h=A(),w=A(),g=A(),z=A(),[W,$,q]=(()=>{let e;const[o,r]=(()=>{const e=[];let o=0;return[r=>(r?e.shift():null)??t+o++,t=>{P.test(t)&&c(e)<1e3&&f(e,t)}]})(),n=A(),s=(o,r,s,a)=>{let l,d=!1;if(R(((e,o=[t])=>{const r=[],n=(e,t)=>t==c(o)?f(r,e):i(o[t])?b(e,e=>n(e,t+1)):R([o[t],null],o=>n(D(e,o),t+1));return n(e,0),r})(r,s),t=>b(t,t=>{const r=()=>D(n,t)[0](e,...s??[],...a);o?m(r,e=>{d||(l=e),d=!0}):r()})),d)throw l};return[(r,s,i,a=[],l=()=>[])=>{e??=oe;const d=o(1);return j(n,d,[r,s,i,a,l]),N(C(s,i??[t],J),d),d},(e,t,...o)=>s(!1,e,t,o),e=>l(D(n,e),([,o,s])=>(C(o,s??[t],void 0,t=>(k(t,e),L(t)?1:0)),j(n,e),r(e),s)),t=>l(D(n,t),([t,,o=[],r,n])=>{const s=(...a)=>{const l=c(a);l==c(o)?t(e,...a,...n(a)):i(o[l])?R(r[l]?.(...a)??[],e=>s(...a,e)):s(...a,o[l])};s()}),(e,t,...o)=>s(!0,e,t,o)]})(),[B,F,G,H,K,Q,,,U,V,X,Y]=((e,t,o,r,i)=>{const c=e.hasRow,f=A(),h=A(),w=A(),g=A(),p=A(),L=A(),v=t=>l(D(L,t),o=>{b(o,t=>{e.delListener(t),k(o,t)}),j(L,t)}),T=(e,o)=>{j(f,e,o),I(h,e)||(j(h,e,t()),j(g,e,A()),j(p,e,A()),m(()=>i(w),t=>{throw j(f,e),j(h,e),j(g,e),j(p,e),t}))},z=e=>{j(f,e),j(h,e),j(g,e),j(p,e),v(e),i(w)};return[()=>e,()=>{return e=f,[...e?.keys()??[]];var e},e=>M(h,e),e=>I(h,e),e=>D(f,e),e=>D(h,e),(e,t)=>j(h,e,t),T,(t,r,i,l,f)=>{T(t,r);const h=A(),w=A(),k=D(g,t),m=D(p,t),z=t=>{const i=o=>e.getCell(r,t,o),R=D(k,t),g=c(r,t)?o(l(i,t)):void 0;if(R===g||d(R)&&d(g)&&u(R,g)||j(h,t,[R,g]),!s(f)){const e=D(m,t),o=c(r,t)?f(i,t):void 0;(p=e)===(I=o)||(!n(L=p)&&a(S(L),e=>e==E.prototype||n(S(e)),()=>!0)||d(p))&&O(p)===O(I)||j(w,t,o)}var p,I,L},C=e=>{i(()=>{b(h,([,e],t)=>j(k,t,e)),b(w,(e,t)=>j(m,t,e))},h,w,k,m,e),y(h),y(w)};M(k,z),e.hasTable(r)&&R(e.getRowIds(r),e=>{I(k,e)||z(e)}),C(!0),v(t),((e,...t)=>{const o=x(L,e,J);R(t,e=>N(o,e))})(t,e.addRowListener(r,null,(e,t,o)=>z(o)),e.addTableListener(r,()=>C()))},z,e=>r(e,w),()=>M(L,z)]})(r,()=>[A(),A(),A(),A()],e=>s(e)?void 0:e+t,W,$),Z=(e,t,o)=>l(Q(e),([r,,n])=>{if(!I(n,t)){const i=J();if(K(e)!=ee(e))N(i,t);else{let e=t;for(;!s(e)&&!I(i,e);)N(i,e),e=D(r,e)}if(o)return i;j(n,t,i)}return D(n,t)}),_=(e,t)=>l(Q(e),([,,e])=>j(e,t)),ee=e=>D(h,e),te=(e,t)=>s(Q(e))?[t]:v(Z(e,t,!0)),oe={setRelationshipDefinition:(r,n,i,a)=>{return M(D(z,r),e=>Z(r,e)),j(h,r,i),U(r,n,(e,t,o,n,i,a)=>{const d=J(),c=J(),R=J(),[f,h]=Q(r);b(t,([e,t],o)=>{s(e)||(N(c,e),l(D(h,e),t=>{k(t,o),L(t)&&j(h,e)})),s(t)||(N(c,t),I(h,t)||j(h,t,J()),N(D(h,t),o)),N(d,o),j(f,o,t),M(D(z,r),e=>{I(Z(r,e),o)&&N(R,e)})}),e(),a&&M(D(z,r),e=>{const t=te(r,e);_(r,e),u(t,te(r,e))||N(R,e)}),b(d,e=>$(w,[r,e])),b(c,e=>$(g,[r,e])),b(R,e=>{_(r,e),$(z,[r,e])})},e(d=a)==o?e=>e(d):d??(()=>t)),oe;var d},delRelationshipDefinition:e=>(j(h,e),V(e),oe),getStore:B,getRelationshipIds:F,forEachRelationship:e=>G(t=>e(t,e=>r.forEachRow(K(t),e))),hasRelationship:H,getLocalTableId:K,getRemoteTableId:ee,getRemoteRowId:(e,t)=>D(Q(e)?.[0],t),getLocalRowIds:(e,t)=>v(D(Q(e)?.[1],t)),getLinkedRowIds:te,addRelationshipIdsListener:X,addRemoteRowIdListener:(e,t,o)=>W(o,w,[e,t]),addLocalRowIdsListener:(e,t,o)=>W(o,g,[e,t]),addLinkedRowIdsListener:(e,t,o)=>(Z(e,t),W(o,z,[e,t])),delListener:e=>(_(...q(e)??[]),oe),destroy:Y,getListenerStats:()=>({remoteRowId:p(w),localRowIds:p(g),linkedRowIds:p(z)})};return T(oe)})(h);r.set(h,w)}return r.get(h)}})();export{W as createRelationships};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",o=e(t),
|
|
1
|
+
const e=e=>typeof e,t="",o=e(t),r=e=>(t,o,r)=>e(t)?r?.():o(t),n=e=>null==e,s=e=>void 0===e,i=e=>null===e,a=r(n),l=r(s),d=e=>Array.isArray(e),c=e=>e.length,u=(e,t)=>{return c(e)===c(t)&&(o=(e,o)=>t[o]===e,e.every(o));var o},R=(e,t)=>e.forEach(t),f=(e,...t)=>e.push(...t),h=e=>t=>{let o=0;for(const r of t.values())o+=e(r);return o},w=e=>e?.size??0,g=h(w),p=h(g),I=(e,t)=>e?.has(t)??!1,L=e=>s(e)||0==w(e),v=e=>[...e?.values()??[]],y=e=>e.clear(),b=(e,t)=>e?.forEach(t),k=(e,t)=>e?.delete(t),m=(e,t)=>{try{return e()}catch(e){t?.(e)}},E=Object,S=e=>E.getPrototypeOf(e),T=E.freeze,O=JSON.stringify,z=Map,A=e=>new z(e),D=(e,t)=>e?.get(t),M=(e,t)=>b(e,(e,o)=>t(o,e)),j=(e,t,o)=>s(o)?(k(e,t),e):e?.set(t,o),x=(e,t,o,r)=>{let n=D(e,t);return I(e,t)?r?.(n):j(e,t,n=o()),n},C=(e,t,o,r,n=0)=>l((o?x:D)(e,t[n],n>c(t)-2?o:A),s=>{if(n>c(t)-2)return r?.(s)&&j(e,t[n]),s;const i=C(s,t,o,r,n+1);return L(s)&&j(e,t[n]),i}),J=e=>new Set(d(e)||s(e)?e:[e]),N=(e,t)=>e?.add(t),P=/^\d+$/,W=(()=>{const r=new WeakMap;return h=>{if(!r.has(h)){const w=(r=>{const h=A(),w=A(),g=A(),z=A(),[W,$,q]=(()=>{let e;const[o,r]=(()=>{const e=[];let o=0;return[r=>(r?e.shift():null)??t+o++,t=>{P.test(t)&&c(e)<1e3&&f(e,t)}]})(),n=A(),s=(o,r,s,a)=>{let l,d=!1;if(R(((e,o=[t])=>{const r=[],n=(e,t)=>t==c(o)?f(r,e):i(o[t])?b(e,e=>n(e,t+1)):R([o[t],null],o=>n(D(e,o),t+1));return n(e,0),r})(r,s),t=>b(t,t=>{const r=()=>D(n,t)[0](e,...s??[],...a);o?m(r,e=>{d||(l=e),d=!0}):r()})),d)throw l};return[(r,s,i,a=[],l=()=>[])=>{e??=oe;const d=o(1);return j(n,d,[r,s,i,a,l]),N(C(s,i??[t],J),d),d},(e,t,...o)=>s(!1,e,t,o),e=>l(D(n,e),([,o,s])=>(C(o,s??[t],void 0,t=>(k(t,e),L(t)?1:0)),j(n,e),r(e),s)),t=>l(D(n,t),([t,,o=[],r,n])=>{const s=(...a)=>{const l=c(a);l==c(o)?t(e,...a,...n(a)):i(o[l])?R(r[l]?.(...a)??[],e=>s(...a,e)):s(...a,o[l])};s()}),(e,t,...o)=>s(!0,e,t,o)]})(),[B,F,G,H,K,Q,,,U,V,X,Y]=((e,t,o,r,i)=>{const c=e.hasRow,f=A(),h=A(),w=A(),g=A(),p=A(),L=A(),v=t=>l(D(L,t),o=>{b(o,t=>{e.delListener(t),k(o,t)}),j(L,t)}),T=(e,o)=>{j(f,e,o),I(h,e)||(j(h,e,t()),j(g,e,A()),j(p,e,A()),m(()=>i(w),t=>{throw j(f,e),j(h,e),j(g,e),j(p,e),t}))},z=e=>{j(f,e),j(h,e),j(g,e),j(p,e),v(e),i(w)};return[()=>e,()=>{return e=f,[...e?.keys()??[]];var e},e=>M(h,e),e=>I(h,e),e=>D(f,e),e=>D(h,e),(e,t)=>j(h,e,t),T,(t,r,i,l,f)=>{T(t,r);const h=A(),w=A(),k=D(g,t),m=D(p,t),z=t=>{const i=o=>e.getCell(r,t,o),R=D(k,t),g=c(r,t)?o(l(i,t)):void 0;if(R===g||d(R)&&d(g)&&u(R,g)||j(h,t,[R,g]),!s(f)){const e=D(m,t),o=c(r,t)?f(i,t):void 0;(p=e)===(I=o)||(!n(L=p)&&a(S(L),e=>e==E.prototype||n(S(e)),()=>!0)||d(p))&&O(p)===O(I)||j(w,t,o)}var p,I,L},C=e=>{i(()=>{b(h,([,e],t)=>j(k,t,e)),b(w,(e,t)=>j(m,t,e))},h,w,k,m,e),y(h),y(w)};M(k,z),e.hasTable(r)&&R(e.getRowIds(r),e=>{I(k,e)||z(e)}),C(!0),v(t),((e,...t)=>{const o=x(L,e,J);R(t,e=>N(o,e))})(t,e.addRowListener(r,null,(e,t,o)=>z(o)),e.addTableListener(r,()=>C()))},z,e=>r(e,w),()=>M(L,z)]})(r,()=>[A(),A(),A(),A()],e=>s(e)?void 0:e+t,W,$),Z=(e,t,o)=>l(Q(e),([r,,n])=>{if(!I(n,t)){const i=J();if(K(e)!=ee(e))N(i,t);else{let e=t;for(;!s(e)&&!I(i,e);)N(i,e),e=D(r,e)}if(o)return i;j(n,t,i)}return D(n,t)}),_=(e,t)=>l(Q(e),([,,e])=>j(e,t)),ee=e=>D(h,e),te=(e,t)=>s(Q(e))?[t]:v(Z(e,t,!0)),oe={setRelationshipDefinition:(r,n,i,a)=>{return M(D(z,r),e=>Z(r,e)),j(h,r,i),U(r,n,(e,t,o,n,i,a)=>{const d=J(),c=J(),R=J(),[f,h]=Q(r);b(t,([e,t],o)=>{s(e)||(N(c,e),l(D(h,e),t=>{k(t,o),L(t)&&j(h,e)})),s(t)||(N(c,t),I(h,t)||j(h,t,J()),N(D(h,t),o)),N(d,o),j(f,o,t),M(D(z,r),e=>{I(Z(r,e),o)&&N(R,e)})}),e(),a&&M(D(z,r),e=>{const t=te(r,e);_(r,e),u(t,te(r,e))||N(R,e)}),b(d,e=>$(w,[r,e])),b(c,e=>$(g,[r,e])),b(R,e=>{_(r,e),$(z,[r,e])})},e(d=a)==o?e=>e(d):d??(()=>t)),oe;var d},delRelationshipDefinition:e=>(j(h,e),V(e),oe),getStore:B,getRelationshipIds:F,forEachRelationship:e=>G(t=>e(t,e=>r.forEachRow(K(t),e))),hasRelationship:H,getLocalTableId:K,getRemoteTableId:ee,getRemoteRowId:(e,t)=>D(Q(e)?.[0],t),getLocalRowIds:(e,t)=>v(D(Q(e)?.[1],t)),getLinkedRowIds:te,addRelationshipIdsListener:X,addRemoteRowIdListener:(e,t,o)=>W(o,w,[e,t]),addLocalRowIdsListener:(e,t,o)=>W(o,g,[e,t]),addLinkedRowIdsListener:(e,t,o)=>(Z(e,t),W(o,z,[e,t])),delListener:e=>(_(...q(e)??[]),oe),destroy:Y,getListenerStats:()=>({remoteRowId:p(w),localRowIds:p(g),linkedRowIds:p(z)})};return T(oe)})(h);r.set(h,w)}return r.get(h)}})();export{W as createRelationships};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,a="",e=t(a),n=t(!0),s=t(0),r=Promise,i=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),c=globalThis,l=(t,a=0)=>setTimeout(t,1e3*a),u=t=>clearTimeout(t),y=i.floor,w=i.random,d=isFinite,g=Number.isInteger,f=t=>null==t,v=t=>void 0===t,h=t=>null===t,b=o(f),p=o(v),A=a=>t(a)==e,_=a=>t(a)==s,M=t=>Array.isArray(t),S=t=>t.length,m=t=>0==S(t),L=(t,a)=>t.test(a),C=()=>{},H=t=>new r(t),P=(t,a)=>t.forEach(a),T=(t,a)=>t.map(a),D=(t,a=S(t))=>t.splice(0,a),z=(t,...a)=>t.push(...a),E=t=>t?.size??0,O=t=>v(t)||0==E(t),R=(t,a)=>t?.forEach(a),V=(t,a)=>t?.delete(a),j=Object,x=t=>j.getPrototypeOf(t),F=t=>!f(t)&&b(x(t),t=>t==j.prototype||f(x(t)),()=>!0),k=j.keys,q=j.freeze,I=(t,a)=>j.hasOwn(t,a),N=(t,a,e)=>(j.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),U=(t,a)=>P(k(t),e=>a(t[e],e)),Z=(t,a)=>{for(const e in t)if(I(t,e)&&!a(t[e],e))return!1;return!0},$=t=>F(t)&&0==(t=>S(k(t)))(t),B=(t,a,e)=>(I(t,a)||N(t,a,e()),t[a]),G=Map,J=t=>new G(t),K=(t,a)=>t?.get(a),Q=(t,a)=>R(t,(t,e)=>a(e,t)),W=(t,a,e)=>v(e)?(V(t,a),t):t?.set(a,e),X=(t,a,e,n)=>{let s=K(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):W(t,a,s=e()),s},Y=(t,a,e,n,s=0)=>p((e?X:K)(t,a[s],s>S(a)-2?e:J),r=>{if(s>S(a)-2)return n?.(r)&&W(t,a[s]),r;const i=Y(r,a,e,n,s+1);return O(r)&&W(t,a[s]),i}),tt=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))(),at=J(T(tt,(t,a)=>[t,a])),et=(t,a)=>K(at,t[a])??0,nt=c.crypto?t=>c.crypto.getRandomValues(t):t=>T(t,()=>y(256*w())),st=(t=16)=>{return a=(t,a)=>t+tt[63&a],nt(new Uint8Array(t)).reduce(a,"");var a},rt=t=>new Set(M(t)||v(t)?t:[t]),it=(t,a)=>t?.add(a),ot=(t,e)=>Error("tinybase:"+t+(v(e)?a:":"+e)),ct=(t,a)=>{throw ot(t,a)},lt=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},ut=(t,a)=>lt(t,t=>{lt(()=>a?.(t))}),yt=async(t,a)=>{try{return await t()}finally{await a()}};new c.TextEncoder;const wt=(t,a)=>a?[t,a]:[t],dt=(t,e)=>((t??a)>(e??a)?t:e)??a,gt=(t="")=>wt(((t=[])=>{const a=j.create(null);return P(t,([t,e])=>N(a,t,e)),a})(),t),ft=/^\d+$/,vt=J(),ht=J(),bt=J(),pt=(t,e,n,s,r,i,o,c={},l=0,u=[])=>{let y,w,d,g,f,b=0,A=0,_=0,C=0,E=0,j=0,x=0,F=0,k=0;const I={},N=c.destroy;X(vt,u,()=>0),X(ht,u,()=>[]),W(bt,u,(K(bt,u)??0)+1);const U=J(),[Z,B,G,Q,tt]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!$(t)||!$(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!$(t)||!$(a),a.setContent]:ct(0))(o,t,l),[at,et,nt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{L(ft,a)&&S(t)<1e3&&z(t,a)}]})(),r=J(),i=(t,n,s,i)=>{let o,c=!1;if(P(((t,e=[a])=>{const n=[],s=(t,a)=>a==S(e)?z(n,t):h(e[a])?R(t,t=>s(t,a+1)):P([e[a],null],e=>s(K(t,e),a+1));return s(t,0),n})(n,s),a=>R(a,a=>{const n=()=>K(r,a)[0](e,...s??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(n):n()})),c)throw o};return[(s,i,o,c=[],l=()=>[])=>{e??=t();const u=n(1);return W(r,u,[s,i,o,c,l]),it(Y(i,o??[a],rt),u),u},(t,a,...e)=>i(!1,t,a,e),t=>p(K(r,t),([,e,n])=>(Y(e,n??[a],void 0,a=>(V(a,t),O(a)?1:0)),W(r,t),s(t),n)),t=>p(K(r,t),([t,,a=[],n,s])=>{const r=(...i)=>{const o=S(i);o==S(a)?t(e,...i,...s(i)):h(a[o])?P(n[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Tt),st=t=>{t!=b&&(b=t,et(U,void 0,b))},ot=()=>{K(bt,u)||K(vt,u)||!m(K(ht,u)??[])||(W(vt,u),W(ht,u),W(bt,u))},wt=a=>{(Z&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Ct()&&t.__?.[0]?.()&&await St()},gt=t=>yt(()=>w=t,()=>{w==t&&(w=void 0)}),pt=async t=>(2!=b&&(await yt(async()=>{st(1),A++,await Pt(()=>lt(async()=>{const a=await e();M(a)?wt(a):v(a)&&t?tt(t):v(a)||ct(1,a)},a=>{i?.(a),t&&tt(t)}))},()=>st(0)),await dt()),Tt),At=async()=>{const t=x;x=0,t&&t==C&&!k&&(2==b?x=t:await pt())},_t=async t=>{const a=++C;let e=!0;if(await Mt(!0),a==C&&!k){const n=lt(async()=>{const t=await s(async(t,n)=>{if(a==C&&!k)if(n||t){const a=e||2==b||!!j;E++,a&&j++,await yt(async()=>{st(1),A++,await(a?Pt(()=>wt(n??t)):(()=>{try{return wt(n??t)}finally{st(0)}})())},()=>{a&&j--,--E||st(0)}),E||await dt()}else 2==b?x=a:await pt()});a!=C||k?v(t)||await r(t):y=t},i);await gt(n),a!=C||k||await yt(()=>pt(t),()=>{e=!1})}return Tt},Mt=async(t=!1)=>{x=0,t||C++;const a=w,e=y;return y=void 0,await gt(yt(async()=>{await a},async()=>{v(e)||await lt(()=>r(e),i)})),Tt},St=async t=>(1!=b&&await yt(()=>yt(async()=>{st(2),_++,await Pt(()=>lt(()=>n(B,t),i))},()=>st(0)),At),Tt),mt=async()=>{const a=++F;return await Lt(!0),a!=F||k||(await St(),a!=F||k||(d=t.addDidFinishTransactionListener(()=>{if(a==F&&!k){const t=G();Q(t)&<(()=>St(t))}}))),Tt},Lt=async(a=!1)=>{a||F++;const e=d;return d=void 0,v(e)||t.delListener(e),Tt},Ct=()=>!v(d),Ht=async(t=!1)=>{const[a,e]=t?[Lt,Mt]:[Mt,Lt];return await yt(()=>a(),async()=>{await e()}),Tt},Pt=async(...t)=>{let a,e=!1;const n=H(n=>m(t)?n():z(K(ht,u),...T(t,(s,r)=>{const o=r==S(t)-1;return[async()=>{let t;f=H(a=>t=a),await yt(async()=>{try{await lt(s,i)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{f=void 0,t()})},o?n:void 0,I]})));if(await(async()=>{if(!K(vt,u)){W(vt,u,1);const t=K(ht,u);let a=0;await yt(async()=>{for(;a<S(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{D(t,a),W(vt,u,0),ot()})}})(),await n,e)throw a;return Tt},Tt={load:pt,startAutoLoad:_t,stopAutoLoad:Mt,isAutoLoading:()=>!v(y),save:St,startAutoSave:mt,stopAutoSave:Lt,isAutoSaving:Ct,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[mt,_t,Lt,Mt]:[_t,mt,Mt,Lt],i=e(t),o=a?F:C;await i;const c=n(t),l=a?C:F;try{await c}catch(t){throw l==(a?C:F)&&await ut(r),o==(a?F:C)&&await ut(s),t}return Tt},stopAutoPersisting:Ht,getStatus:()=>b,addStatusListener:t=>at(t,U),delListener:a=>(nt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:A,saves:_}),...c,destroy:async()=>(v(g)&&(k=1,g=(async()=>{const t=K(ht,u),a=(e=([,t,a])=>a!=I||(t?.(),!1),t.filter(e));var e;const n=f;D(t),z(t,...a),await yt(()=>yt(()=>yt(Ht,()=>n),()=>N?.()),()=>{const t=(K(bt,u)??1)-1;W(bt,u,t||void 0),ot()})})()),await g,Tt)};return q(Tt)};J();const At=2**36,_t=2**30,Mt=/^[-0-9A-Z_a-z]{16}$/,St=t=>_(t)&&d(t)&&g(t)&&t>=0&&t<=4294967295,mt=(t,a)=>F(t)&&Z(t,t=>a?mt(t,a-1):St(t)),Lt=(r,i)=>{return M(r)&&(1==S(r)||2==S(r)&&A(r[1])&&(c=1/0,(o=r[1])==a||A(o)&&L(Mt,o)&&(t=>et(t,0)*At+et(t,1)*_t+16777216*et(t,2)+262144*et(t,3)+4096*et(t,4)+64*et(t,5)+et(t,6))(o)<=c))&&(i?F(r[0])&&Z(r[0],t=>Lt(t,i-1)):(l=r[0],v(l)||!v((a=>{if(h(a))return"null";if(M(a))return"array";if(F(a))return"object";const r=t(a);return(t=>t==e||t==n)(r)||r==s&&d(a)?r:void 0})(l))));var o,c,l},Ct=t=>M(t)&&2==S(t)&&St(t[0])&&St(t[1]),Ht=J(),Pt=(t,e,n,s)=>{const r=st(),i=rt();return((t,e,n,s,r,i,o,c,y={},w=C)=>{let f,b=0,m=0,L=0,P=!1;const T=J(),D=()=>st(11),z=t=>Q(T,(a,[,,e,n])=>{u(n),V(T,a),e(t)}),O=(t,a,n,s)=>{m++,i?.(t,a,n,s),e(t,a,n,s)},R=async(t,e,n,s)=>H((i,o)=>{if(E(T)>=100)return void o(ot(15,"requests"));const c=s+"."+st(4),y=l(()=>{V(T,c),o(ot(3,(t??a)+"."+c+"."+e))},r);W(T,c,[t,(t,a)=>{u(y),V(T,c),i([t,a,s])},o,y]);try{O(t,c,e,n)}catch(t){u(y),V(T,c),o(t)}}),j=(t,[a,e])=>{U(a,([a,e],n)=>{const s=B(t[0],n,gt);U(a,([t,a],e)=>{const n=B(s[0],e,gt);U(t,([t,a],e)=>N(n[0],e,wt(t,a))),n[1]=dt(n[1],a)}),s[1]=dt(s[1],e)}),t[1]=dt(t[1],e)},x=(e=null,n,s=D())=>lt(async()=>{v(n)&&([n,e,s]=await R(null,1,a,s));const[r,i]=n,[o,c]=t.getMergeableContentHashes();let l=gt();if(o!=r){const[a,n]=(await R(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!$(n)){const[a,r]=(await R(e,5,t.getMergeableRowHashes(n),s))[0];if(j(l,a),!$(r)){const a=(await R(e,6,t.getMergeableCellHashes(r),s))[0];j(l,a)}}}return[l,c==i?gt():(await R(e,7,t.getMergeableValueHashes(),s))[0],1]},c),F=pt(t,async()=>{const t=await x();return!t||$(t[0][0])&&$(t[1][0])?void 0:t},async(a,e)=>e?O(null,D(),3,e):O(null,D(),2,t.getMergeableContentHashes()),t=>f=t,()=>f=void 0,c,2,{startSync:async t=>(b=1,await F.startAutoPersisting(t)),stopSync:async()=>(b=0,await F.stopAutoPersisting(),F),destroy:async()=>(P=!0,z(ot(3,"destroyed")),w(),await F.stopSync(),s(),F),getSynchronizerStats:()=>({sends:m,receives:L}),...y},1);return n((e,n,s,r)=>{if(P)return;if(!((t,e,n)=>(h(t)||A(t))&&_(e)&&d(e)&&g(e)&&((t,e)=>0==t?(t=>Ct(t)||Lt(t,3)||Lt(t,1)||M(t)&&2==S(t)&&Lt(t[0],3)&&(mt(t[1],0)||mt(t[1],1)))(e):1==t?e===a:2==t?Ct(e):3==t?(t=>M(t)&&(2==S(t)||3==S(t)&&1===t[2])&&Lt(t[0],3)&&Lt(t[1],1))(e):4==t?mt(e,0):5==t?mt(e,1):6==t?mt(e,2):7==t&&mt(e,0))(e,n))(n,s,r))return void c?.(ot(14));const i=b||F.isAutoLoading();L++,o?.(e,n,s,r),0==s?p(K(T,n),([t,a])=>h(t)||t==e?a(r,e):0):2==s&&i?x(e,r,n??void 0).then(t=>{f?.(void 0,t)}).catch(c):3==s&&i?f?.(void 0,r):p(1==s&&(b||F.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(r):5==s?t.getMergeableRowDiff(r):6==s?t.getMergeableCellDiff(r):7==s?t.getMergeableValueDiff(r):void 0,t=>{O(e,n,0,t)})},z),F})(t,(t,a,e,n)=>{const s=h(t)?[]:[t];h(t)&&Q(Ht,t=>t!=r?z(s,t):0);const o=l(()=>{V(i,o),P(s,t=>K(Ht,t)?.(r,a,e,n))});return it(i,o),o},t=>{W(Ht,r,t)},()=>{V(Ht,r)},.
|
|
1
|
+
const t=t=>typeof t,a="",e=t(a),n=t(!0),s=t(0),r=Promise,i=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),c=globalThis,l=(t,a=0)=>setTimeout(t,1e3*a),u=t=>clearTimeout(t),y=i.floor,w=i.random,d=isFinite,g=Number.isInteger,f=t=>null==t,v=t=>void 0===t,h=t=>null===t,b=o(f),p=o(v),A=a=>t(a)==e,_=a=>t(a)==s,M=t=>Array.isArray(t),S=t=>t.length,m=t=>0==S(t),L=(t,a)=>t.test(a),C=()=>{},H=t=>new r(t),P=(t,a)=>t.forEach(a),T=(t,a)=>t.map(a),D=(t,a=S(t))=>t.splice(0,a),z=(t,...a)=>t.push(...a),E=t=>t?.size??0,O=t=>v(t)||0==E(t),R=(t,a)=>t?.forEach(a),V=(t,a)=>t?.delete(a),j=Object,x=t=>j.getPrototypeOf(t),F=t=>!f(t)&&b(x(t),t=>t==j.prototype||f(x(t)),()=>!0),k=j.keys,q=j.freeze,I=(t,a)=>j.hasOwn(t,a),N=(t,a,e)=>(j.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),U=(t,a)=>P(k(t),e=>a(t[e],e)),Z=(t,a)=>{for(const e in t)if(I(t,e)&&!a(t[e],e))return!1;return!0},$=t=>F(t)&&0==(t=>S(k(t)))(t),B=(t,a,e)=>(I(t,a)||N(t,a,e()),t[a]),G=Map,J=t=>new G(t),K=(t,a)=>t?.get(a),Q=(t,a)=>R(t,(t,e)=>a(e,t)),W=(t,a,e)=>v(e)?(V(t,a),t):t?.set(a,e),X=(t,a,e,n)=>{let s=K(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):W(t,a,s=e()),s},Y=(t,a,e,n,s=0)=>p((e?X:K)(t,a[s],s>S(a)-2?e:J),r=>{if(s>S(a)-2)return n?.(r)&&W(t,a[s]),r;const i=Y(r,a,e,n,s+1);return O(r)&&W(t,a[s]),i}),tt=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))(),at=J(T(tt,(t,a)=>[t,a])),et=(t,a)=>K(at,t[a])??0,nt=c.crypto?t=>c.crypto.getRandomValues(t):t=>T(t,()=>y(256*w())),st=(t=16)=>{return a=(t,a)=>t+tt[63&a],nt(new Uint8Array(t)).reduce(a,"");var a},rt=t=>new Set(M(t)||v(t)?t:[t]),it=(t,a)=>t?.add(a),ot=(t,e)=>Error("tinybase:"+t+(v(e)?a:":"+e)),ct=(t,a)=>{throw ot(t,a)},lt=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},ut=(t,a)=>lt(t,t=>{lt(()=>a?.(t))}),yt=async(t,a)=>{try{return await t()}finally{await a()}};new c.TextEncoder;const wt=(t,a)=>a?[t,a]:[t],dt=(t,e)=>((t??a)>(e??a)?t:e)??a,gt=(t="")=>wt(((t=[])=>{const a=j.create(null);return P(t,([t,e])=>N(a,t,e)),a})(),t),ft=/^\d+$/,vt=J(),ht=J(),bt=J(),pt=(t,e,n,s,r,i,o,c={},l=0,u=[])=>{let y,w,d,g,f,b=0,A=0,_=0,C=0,E=0,j=0,x=0,F=0,k=0;const I={},N=c.destroy;X(vt,u,()=>0),X(ht,u,()=>[]),W(bt,u,(K(bt,u)??0)+1);const U=J(),[Z,B,G,Q,tt]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!$(t)||!$(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!$(t)||!$(a),a.setContent]:ct(0))(o,t,l),[at,et,nt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{L(ft,a)&&S(t)<1e3&&z(t,a)}]})(),r=J(),i=(t,n,s,i)=>{let o,c=!1;if(P(((t,e=[a])=>{const n=[],s=(t,a)=>a==S(e)?z(n,t):h(e[a])?R(t,t=>s(t,a+1)):P([e[a],null],e=>s(K(t,e),a+1));return s(t,0),n})(n,s),a=>R(a,a=>{const n=()=>K(r,a)[0](e,...s??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(n):n()})),c)throw o};return[(s,i,o,c=[],l=()=>[])=>{e??=t();const u=n(1);return W(r,u,[s,i,o,c,l]),it(Y(i,o??[a],rt),u),u},(t,a,...e)=>i(!1,t,a,e),t=>p(K(r,t),([,e,n])=>(Y(e,n??[a],void 0,a=>(V(a,t),O(a)?1:0)),W(r,t),s(t),n)),t=>p(K(r,t),([t,,a=[],n,s])=>{const r=(...i)=>{const o=S(i);o==S(a)?t(e,...i,...s(i)):h(a[o])?P(n[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Tt),st=t=>{t!=b&&(b=t,et(U,void 0,b))},ot=()=>{K(bt,u)||K(vt,u)||!m(K(ht,u)??[])||(W(vt,u),W(ht,u),W(bt,u))},wt=a=>{(Z&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Ct()&&t.__?.[0]?.()&&await St()},gt=t=>yt(()=>w=t,()=>{w==t&&(w=void 0)}),pt=async t=>(2!=b&&(await yt(async()=>{st(1),A++,await Pt(()=>lt(async()=>{const a=await e();M(a)?wt(a):v(a)&&t?tt(t):v(a)||ct(1,a)},a=>{i?.(a),t&&tt(t)}))},()=>st(0)),await dt()),Tt),At=async()=>{const t=x;x=0,t&&t==C&&!k&&(2==b?x=t:await pt())},_t=async t=>{const a=++C;let e=!0;if(await Mt(!0),a==C&&!k){const n=lt(async()=>{const t=await s(async(t,n)=>{if(a==C&&!k)if(n||t){const a=e||2==b||!!j;E++,a&&j++,await yt(async()=>{st(1),A++,await(a?Pt(()=>wt(n??t)):(()=>{try{return wt(n??t)}finally{st(0)}})())},()=>{a&&j--,--E||st(0)}),E||await dt()}else 2==b?x=a:await pt()});a!=C||k?v(t)||await r(t):y=t},i);await gt(n),a!=C||k||await yt(()=>pt(t),()=>{e=!1})}return Tt},Mt=async(t=!1)=>{x=0,t||C++;const a=w,e=y;return y=void 0,await gt(yt(async()=>{await a},async()=>{v(e)||await lt(()=>r(e),i)})),Tt},St=async t=>(1!=b&&await yt(()=>yt(async()=>{st(2),_++,await Pt(()=>lt(()=>n(B,t),i))},()=>st(0)),At),Tt),mt=async()=>{const a=++F;return await Lt(!0),a!=F||k||(await St(),a!=F||k||(d=t.addDidFinishTransactionListener(()=>{if(a==F&&!k){const t=G();Q(t)&<(()=>St(t))}}))),Tt},Lt=async(a=!1)=>{a||F++;const e=d;return d=void 0,v(e)||t.delListener(e),Tt},Ct=()=>!v(d),Ht=async(t=!1)=>{const[a,e]=t?[Lt,Mt]:[Mt,Lt];return await yt(()=>a(),async()=>{await e()}),Tt},Pt=async(...t)=>{let a,e=!1;const n=H(n=>m(t)?n():z(K(ht,u),...T(t,(s,r)=>{const o=r==S(t)-1;return[async()=>{let t;f=H(a=>t=a),await yt(async()=>{try{await lt(s,i)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{f=void 0,t()})},o?n:void 0,I]})));if(await(async()=>{if(!K(vt,u)){W(vt,u,1);const t=K(ht,u);let a=0;await yt(async()=>{for(;a<S(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{D(t,a),W(vt,u,0),ot()})}})(),await n,e)throw a;return Tt},Tt={load:pt,startAutoLoad:_t,stopAutoLoad:Mt,isAutoLoading:()=>!v(y),save:St,startAutoSave:mt,stopAutoSave:Lt,isAutoSaving:Ct,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[mt,_t,Lt,Mt]:[_t,mt,Mt,Lt],i=e(t),o=a?F:C;await i;const c=n(t),l=a?C:F;try{await c}catch(t){throw l==(a?C:F)&&await ut(r),o==(a?F:C)&&await ut(s),t}return Tt},stopAutoPersisting:Ht,getStatus:()=>b,addStatusListener:t=>at(t,U),delListener:a=>(nt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:A,saves:_}),...c,destroy:async()=>(v(g)&&(k=1,g=(async()=>{const t=K(ht,u),a=(e=([,t,a])=>a!=I||(t?.(),!1),t.filter(e));var e;const n=f;D(t),z(t,...a),await yt(()=>yt(()=>yt(Ht,()=>n),()=>N?.()),()=>{const t=(K(bt,u)??1)-1;W(bt,u,t||void 0),ot()})})()),await g,Tt)};return q(Tt)};J();const At=2**36,_t=2**30,Mt=/^[-0-9A-Z_a-z]{16}$/,St=t=>_(t)&&d(t)&&g(t)&&t>=0&&t<=4294967295,mt=(t,a)=>F(t)&&Z(t,t=>a?mt(t,a-1):St(t)),Lt=(r,i)=>{return M(r)&&(1==S(r)||2==S(r)&&A(r[1])&&(c=1/0,(o=r[1])==a||A(o)&&L(Mt,o)&&(t=>et(t,0)*At+et(t,1)*_t+16777216*et(t,2)+262144*et(t,3)+4096*et(t,4)+64*et(t,5)+et(t,6))(o)<=c))&&(i?F(r[0])&&Z(r[0],t=>Lt(t,i-1)):(l=r[0],v(l)||!v((a=>{if(h(a))return"null";if(M(a))return"array";if(F(a))return"object";const r=t(a);return(t=>t==e||t==n)(r)||r==s&&d(a)?r:void 0})(l))));var o,c,l},Ct=t=>M(t)&&2==S(t)&&St(t[0])&&St(t[1]),Ht=J(),Pt=(t,e,n,s)=>{const r=st(),i=rt();return((t,e,n,s,r,i,o,c,y={},w=C)=>{let f,b=0,m=0,L=0,P=!1;const T=J(),D=()=>st(11),z=t=>Q(T,(a,[,,e,n])=>{u(n),V(T,a),e(t)}),O=(t,a,n,s)=>{m++,i?.(t,a,n,s),e(t,a,n,s)},R=async(t,e,n,s)=>H((i,o)=>{if(E(T)>=100)return void o(ot(15,"requests"));const c=s+"."+st(4),y=l(()=>{V(T,c),o(ot(3,(t??a)+"."+c+"."+e))},r);W(T,c,[t,(t,a)=>{u(y),V(T,c),i([t,a,s])},o,y]);try{O(t,c,e,n)}catch(t){u(y),V(T,c),o(t)}}),j=(t,[a,e])=>{U(a,([a,e],n)=>{const s=B(t[0],n,gt);U(a,([t,a],e)=>{const n=B(s[0],e,gt);U(t,([t,a],e)=>N(n[0],e,wt(t,a))),n[1]=dt(n[1],a)}),s[1]=dt(s[1],e)}),t[1]=dt(t[1],e)},x=(e=null,n,s=D())=>lt(async()=>{v(n)&&([n,e,s]=await R(null,1,a,s));const[r,i]=n,[o,c]=t.getMergeableContentHashes();let l=gt();if(o!=r){const[a,n]=(await R(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!$(n)){const[a,r]=(await R(e,5,t.getMergeableRowHashes(n),s))[0];if(j(l,a),!$(r)){const a=(await R(e,6,t.getMergeableCellHashes(r),s))[0];j(l,a)}}}return[l,c==i?gt():(await R(e,7,t.getMergeableValueHashes(),s))[0],1]},c),F=pt(t,async()=>{const t=await x();return!t||$(t[0][0])&&$(t[1][0])?void 0:t},async(a,e)=>e?O(null,D(),3,e):O(null,D(),2,t.getMergeableContentHashes()),t=>f=t,()=>f=void 0,c,2,{startSync:async t=>(b=1,await F.startAutoPersisting(t)),stopSync:async()=>(b=0,await F.stopAutoPersisting(),F),destroy:async()=>(P=!0,z(ot(3,"destroyed")),w(),await F.stopSync(),s(),F),getSynchronizerStats:()=>({sends:m,receives:L}),...y},1);return n((e,n,s,r)=>{if(P)return;if(!((t,e,n)=>(h(t)||A(t))&&_(e)&&d(e)&&g(e)&&((t,e)=>0==t?(t=>Ct(t)||Lt(t,3)||Lt(t,1)||M(t)&&2==S(t)&&Lt(t[0],3)&&(mt(t[1],0)||mt(t[1],1)))(e):1==t?e===a:2==t?Ct(e):3==t?(t=>M(t)&&(2==S(t)||3==S(t)&&1===t[2])&&Lt(t[0],3)&&Lt(t[1],1))(e):4==t?mt(e,0):5==t?mt(e,1):6==t?mt(e,2):7==t&&mt(e,0))(e,n))(n,s,r))return void c?.(ot(14));const i=b||F.isAutoLoading();L++,o?.(e,n,s,r),0==s?p(K(T,n),([t,a])=>h(t)||t==e?a(r,e):0):2==s&&i?x(e,r,n??void 0).then(t=>{f?.(void 0,t)}).catch(c):3==s&&i?f?.(void 0,r):p(1==s&&(b||F.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(r):5==s?t.getMergeableRowDiff(r):6==s?t.getMergeableCellDiff(r):7==s?t.getMergeableValueDiff(r):void 0,t=>{O(e,n,0,t)})},z),F})(t,(t,a,e,n)=>{const s=h(t)?[]:[t];h(t)&&Q(Ht,t=>t!=r?z(s,t):0);const o=l(()=>{V(i,o),P(s,t=>K(Ht,t)?.(r,a,e,n))});return it(i,o),o},t=>{W(Ht,r,t)},()=>{V(Ht,r)},.05,e,n,s,{},()=>{R(i,u),i.clear()})};export{Pt as createLocalSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,a="",e=t(a),n=t(!0),s=t(0),r=Promise,i=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),c=globalThis,l=(t,a=0)=>setTimeout(t,1e3*a),u=t=>clearTimeout(t),y=i.floor,w=i.random,d=isFinite,g=Number.isInteger,f=t=>null==t,v=t=>void 0===t,h=t=>null===t,b=o(f),p=o(v),A=a=>t(a)==e,_=a=>t(a)==s,M=t=>Array.isArray(t),S=t=>t.length,m=t=>0==S(t),L=(t,a)=>t.test(a),C=()=>{},H=t=>new r(t),P=(t,a)=>t.forEach(a),T=(t,a)=>t.map(a),D=(t,a=S(t))=>t.splice(0,a),z=(t,...a)=>t.push(...a),E=t=>t?.size??0,O=t=>v(t)||0==E(t),R=(t,a)=>t?.forEach(a),V=(t,a)=>t?.delete(a),j=Object,x=t=>j.getPrototypeOf(t),F=t=>!f(t)&&b(x(t),t=>t==j.prototype||f(x(t)),()=>!0),k=j.keys,q=j.freeze,I=(t,a)=>j.hasOwn(t,a),N=(t,a,e)=>(j.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),U=(t,a)=>P(k(t),e=>a(t[e],e)),Z=(t,a)=>{for(const e in t)if(I(t,e)&&!a(t[e],e))return!1;return!0},$=t=>F(t)&&0==(t=>S(k(t)))(t),B=(t,a,e)=>(I(t,a)||N(t,a,e()),t[a]),G=Map,J=t=>new G(t),K=(t,a)=>t?.get(a),Q=(t,a)=>R(t,(t,e)=>a(e,t)),W=(t,a,e)=>v(e)?(V(t,a),t):t?.set(a,e),X=(t,a,e,n)=>{let s=K(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):W(t,a,s=e()),s},Y=(t,a,e,n,s=0)=>p((e?X:K)(t,a[s],s>S(a)-2?e:J),r=>{if(s>S(a)-2)return n?.(r)&&W(t,a[s]),r;const i=Y(r,a,e,n,s+1);return O(r)&&W(t,a[s]),i}),tt=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))(),at=J(T(tt,(t,a)=>[t,a])),et=(t,a)=>K(at,t[a])??0,nt=c.crypto?t=>c.crypto.getRandomValues(t):t=>T(t,()=>y(256*w())),st=(t=16)=>{return a=(t,a)=>t+tt[63&a],nt(new Uint8Array(t)).reduce(a,"");var a},rt=t=>new Set(M(t)||v(t)?t:[t]),it=(t,a)=>t?.add(a),ot=(t,e)=>Error("tinybase:"+t+(v(e)?a:":"+e)),ct=(t,a)=>{throw ot(t,a)},lt=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},ut=(t,a)=>lt(t,t=>{lt(()=>a?.(t))}),yt=async(t,a)=>{try{return await t()}finally{await a()}};new c.TextEncoder;const wt=(t,a)=>a?[t,a]:[t],dt=(t,e)=>((t??a)>(e??a)?t:e)??a,gt=(t="")=>wt(((t=[])=>{const a=j.create(null);return P(t,([t,e])=>N(a,t,e)),a})(),t),ft=/^\d+$/,vt=J(),ht=J(),bt=J(),pt=(t,e,n,s,r,i,o,c={},l=0,u=[])=>{let y,w,d,g,f,b=0,A=0,_=0,C=0,E=0,j=0,x=0,F=0,k=0;const I={},N=c.destroy;X(vt,u,()=>0),X(ht,u,()=>[]),W(bt,u,(K(bt,u)??0)+1);const U=J(),[Z,B,G,Q,tt]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!$(t)||!$(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!$(t)||!$(a),a.setContent]:ct(0))(o,t,l),[at,et,nt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{L(ft,a)&&S(t)<1e3&&z(t,a)}]})(),r=J(),i=(t,n,s,i)=>{let o,c=!1;if(P(((t,e=[a])=>{const n=[],s=(t,a)=>a==S(e)?z(n,t):h(e[a])?R(t,t=>s(t,a+1)):P([e[a],null],e=>s(K(t,e),a+1));return s(t,0),n})(n,s),a=>R(a,a=>{const n=()=>K(r,a)[0](e,...s??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(n):n()})),c)throw o};return[(s,i,o,c=[],l=()=>[])=>{e??=t();const u=n(1);return W(r,u,[s,i,o,c,l]),it(Y(i,o??[a],rt),u),u},(t,a,...e)=>i(!1,t,a,e),t=>p(K(r,t),([,e,n])=>(Y(e,n??[a],void 0,a=>(V(a,t),O(a)?1:0)),W(r,t),s(t),n)),t=>p(K(r,t),([t,,a=[],n,s])=>{const r=(...i)=>{const o=S(i);o==S(a)?t(e,...i,...s(i)):h(a[o])?P(n[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Tt),st=t=>{t!=b&&(b=t,et(U,void 0,b))},ot=()=>{K(bt,u)||K(vt,u)||!m(K(ht,u)??[])||(W(vt,u),W(ht,u),W(bt,u))},wt=a=>{(Z&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Ct()&&t.__?.[0]?.()&&await St()},gt=t=>yt(()=>w=t,()=>{w==t&&(w=void 0)}),pt=async t=>(2!=b&&(await yt(async()=>{st(1),A++,await Pt(()=>lt(async()=>{const a=await e();M(a)?wt(a):v(a)&&t?tt(t):v(a)||ct(1,a)},a=>{i?.(a),t&&tt(t)}))},()=>st(0)),await dt()),Tt),At=async()=>{const t=x;x=0,t&&t==C&&!k&&(2==b?x=t:await pt())},_t=async t=>{const a=++C;let e=!0;if(await Mt(!0),a==C&&!k){const n=lt(async()=>{const t=await s(async(t,n)=>{if(a==C&&!k)if(n||t){const a=e||2==b||!!j;E++,a&&j++,await yt(async()=>{st(1),A++,await(a?Pt(()=>wt(n??t)):(()=>{try{return wt(n??t)}finally{st(0)}})())},()=>{a&&j--,--E||st(0)}),E||await dt()}else 2==b?x=a:await pt()});a!=C||k?v(t)||await r(t):y=t},i);await gt(n),a!=C||k||await yt(()=>pt(t),()=>{e=!1})}return Tt},Mt=async(t=!1)=>{x=0,t||C++;const a=w,e=y;return y=void 0,await gt(yt(async()=>{await a},async()=>{v(e)||await lt(()=>r(e),i)})),Tt},St=async t=>(1!=b&&await yt(()=>yt(async()=>{st(2),_++,await Pt(()=>lt(()=>n(B,t),i))},()=>st(0)),At),Tt),mt=async()=>{const a=++F;return await Lt(!0),a!=F||k||(await St(),a!=F||k||(d=t.addDidFinishTransactionListener(()=>{if(a==F&&!k){const t=G();Q(t)&<(()=>St(t))}}))),Tt},Lt=async(a=!1)=>{a||F++;const e=d;return d=void 0,v(e)||t.delListener(e),Tt},Ct=()=>!v(d),Ht=async(t=!1)=>{const[a,e]=t?[Lt,Mt]:[Mt,Lt];return await yt(()=>a(),async()=>{await e()}),Tt},Pt=async(...t)=>{let a,e=!1;const n=H(n=>m(t)?n():z(K(ht,u),...T(t,(s,r)=>{const o=r==S(t)-1;return[async()=>{let t;f=H(a=>t=a),await yt(async()=>{try{await lt(s,i)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{f=void 0,t()})},o?n:void 0,I]})));if(await(async()=>{if(!K(vt,u)){W(vt,u,1);const t=K(ht,u);let a=0;await yt(async()=>{for(;a<S(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{D(t,a),W(vt,u,0),ot()})}})(),await n,e)throw a;return Tt},Tt={load:pt,startAutoLoad:_t,stopAutoLoad:Mt,isAutoLoading:()=>!v(y),save:St,startAutoSave:mt,stopAutoSave:Lt,isAutoSaving:Ct,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[mt,_t,Lt,Mt]:[_t,mt,Mt,Lt],i=e(t),o=a?F:C;await i;const c=n(t),l=a?C:F;try{await c}catch(t){throw l==(a?C:F)&&await ut(r),o==(a?F:C)&&await ut(s),t}return Tt},stopAutoPersisting:Ht,getStatus:()=>b,addStatusListener:t=>at(t,U),delListener:a=>(nt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:A,saves:_}),...c,destroy:async()=>(v(g)&&(k=1,g=(async()=>{const t=K(ht,u),a=(e=([,t,a])=>a!=I||(t?.(),!1),t.filter(e));var e;const n=f;D(t),z(t,...a),await yt(()=>yt(()=>yt(Ht,()=>n),()=>N?.()),()=>{const t=(K(bt,u)??1)-1;W(bt,u,t||void 0),ot()})})()),await g,Tt)};return q(Tt)};J();const At=2**36,_t=2**30,Mt=/^[-0-9A-Z_a-z]{16}$/,St=t=>_(t)&&d(t)&&g(t)&&t>=0&&t<=4294967295,mt=(t,a)=>F(t)&&Z(t,t=>a?mt(t,a-1):St(t)),Lt=(r,i)=>{return M(r)&&(1==S(r)||2==S(r)&&A(r[1])&&(c=1/0,(o=r[1])==a||A(o)&&L(Mt,o)&&(t=>et(t,0)*At+et(t,1)*_t+16777216*et(t,2)+262144*et(t,3)+4096*et(t,4)+64*et(t,5)+et(t,6))(o)<=c))&&(i?F(r[0])&&Z(r[0],t=>Lt(t,i-1)):(l=r[0],v(l)||!v((a=>{if(h(a))return"null";if(M(a))return"array";if(F(a))return"object";const r=t(a);return(t=>t==e||t==n)(r)||r==s&&d(a)?r:void 0})(l))));var o,c,l},Ct=t=>M(t)&&2==S(t)&&St(t[0])&&St(t[1]),Ht=J(),Pt=(t,e,n,s)=>{const r=st(),i=rt();return((t,e,n,s,r,i,o,c,y={},w=C)=>{let f,b=0,m=0,L=0,P=!1;const T=J(),D=()=>st(11),z=t=>Q(T,(a,[,,e,n])=>{u(n),V(T,a),e(t)}),O=(t,a,n,s)=>{m++,i?.(t,a,n,s),e(t,a,n,s)},R=async(t,e,n,s)=>H((i,o)=>{if(E(T)>=100)return void o(ot(15,"requests"));const c=s+"."+st(4),y=l(()=>{V(T,c),o(ot(3,(t??a)+"."+c+"."+e))},r);W(T,c,[t,(t,a)=>{u(y),V(T,c),i([t,a,s])},o,y]);try{O(t,c,e,n)}catch(t){u(y),V(T,c),o(t)}}),j=(t,[a,e])=>{U(a,([a,e],n)=>{const s=B(t[0],n,gt);U(a,([t,a],e)=>{const n=B(s[0],e,gt);U(t,([t,a],e)=>N(n[0],e,wt(t,a))),n[1]=dt(n[1],a)}),s[1]=dt(s[1],e)}),t[1]=dt(t[1],e)},x=(e=null,n,s=D())=>lt(async()=>{v(n)&&([n,e,s]=await R(null,1,a,s));const[r,i]=n,[o,c]=t.getMergeableContentHashes();let l=gt();if(o!=r){const[a,n]=(await R(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!$(n)){const[a,r]=(await R(e,5,t.getMergeableRowHashes(n),s))[0];if(j(l,a),!$(r)){const a=(await R(e,6,t.getMergeableCellHashes(r),s))[0];j(l,a)}}}return[l,c==i?gt():(await R(e,7,t.getMergeableValueHashes(),s))[0],1]},c),F=pt(t,async()=>{const t=await x();return!t||$(t[0][0])&&$(t[1][0])?void 0:t},async(a,e)=>e?O(null,D(),3,e):O(null,D(),2,t.getMergeableContentHashes()),t=>f=t,()=>f=void 0,c,2,{startSync:async t=>(b=1,await F.startAutoPersisting(t)),stopSync:async()=>(b=0,await F.stopAutoPersisting(),F),destroy:async()=>(P=!0,z(ot(3,"destroyed")),w(),await F.stopSync(),s(),F),getSynchronizerStats:()=>({sends:m,receives:L}),...y},1);return n((e,n,s,r)=>{if(P)return;if(!((t,e,n)=>(h(t)||A(t))&&_(e)&&d(e)&&g(e)&&((t,e)=>0==t?(t=>Ct(t)||Lt(t,3)||Lt(t,1)||M(t)&&2==S(t)&&Lt(t[0],3)&&(mt(t[1],0)||mt(t[1],1)))(e):1==t?e===a:2==t?Ct(e):3==t?(t=>M(t)&&(2==S(t)||3==S(t)&&1===t[2])&&Lt(t[0],3)&&Lt(t[1],1))(e):4==t?mt(e,0):5==t?mt(e,1):6==t?mt(e,2):7==t&&mt(e,0))(e,n))(n,s,r))return void c?.(ot(14));const i=b||F.isAutoLoading();L++,o?.(e,n,s,r),0==s?p(K(T,n),([t,a])=>h(t)||t==e?a(r,e):0):2==s&&i?x(e,r,n??void 0).then(t=>{f?.(void 0,t)}).catch(c):3==s&&i?f?.(void 0,r):p(1==s&&(b||F.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(r):5==s?t.getMergeableRowDiff(r):6==s?t.getMergeableCellDiff(r):7==s?t.getMergeableValueDiff(r):void 0,t=>{O(e,n,0,t)})},z),F})(t,(t,a,e,n)=>{const s=h(t)?[]:[t];h(t)&&Q(Ht,t=>t!=r?z(s,t):0);const o=l(()=>{V(i,o),P(s,t=>K(Ht,t)?.(r,a,e,n))});return it(i,o),o},t=>{W(Ht,r,t)},()=>{V(Ht,r)},.
|
|
1
|
+
const t=t=>typeof t,a="",e=t(a),n=t(!0),s=t(0),r=Promise,i=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),c=globalThis,l=(t,a=0)=>setTimeout(t,1e3*a),u=t=>clearTimeout(t),y=i.floor,w=i.random,d=isFinite,g=Number.isInteger,f=t=>null==t,v=t=>void 0===t,h=t=>null===t,b=o(f),p=o(v),A=a=>t(a)==e,_=a=>t(a)==s,M=t=>Array.isArray(t),S=t=>t.length,m=t=>0==S(t),L=(t,a)=>t.test(a),C=()=>{},H=t=>new r(t),P=(t,a)=>t.forEach(a),T=(t,a)=>t.map(a),D=(t,a=S(t))=>t.splice(0,a),z=(t,...a)=>t.push(...a),E=t=>t?.size??0,O=t=>v(t)||0==E(t),R=(t,a)=>t?.forEach(a),V=(t,a)=>t?.delete(a),j=Object,x=t=>j.getPrototypeOf(t),F=t=>!f(t)&&b(x(t),t=>t==j.prototype||f(x(t)),()=>!0),k=j.keys,q=j.freeze,I=(t,a)=>j.hasOwn(t,a),N=(t,a,e)=>(j.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),U=(t,a)=>P(k(t),e=>a(t[e],e)),Z=(t,a)=>{for(const e in t)if(I(t,e)&&!a(t[e],e))return!1;return!0},$=t=>F(t)&&0==(t=>S(k(t)))(t),B=(t,a,e)=>(I(t,a)||N(t,a,e()),t[a]),G=Map,J=t=>new G(t),K=(t,a)=>t?.get(a),Q=(t,a)=>R(t,(t,e)=>a(e,t)),W=(t,a,e)=>v(e)?(V(t,a),t):t?.set(a,e),X=(t,a,e,n)=>{let s=K(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):W(t,a,s=e()),s},Y=(t,a,e,n,s=0)=>p((e?X:K)(t,a[s],s>S(a)-2?e:J),r=>{if(s>S(a)-2)return n?.(r)&&W(t,a[s]),r;const i=Y(r,a,e,n,s+1);return O(r)&&W(t,a[s]),i}),tt=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))(),at=J(T(tt,(t,a)=>[t,a])),et=(t,a)=>K(at,t[a])??0,nt=c.crypto?t=>c.crypto.getRandomValues(t):t=>T(t,()=>y(256*w())),st=(t=16)=>{return a=(t,a)=>t+tt[63&a],nt(new Uint8Array(t)).reduce(a,"");var a},rt=t=>new Set(M(t)||v(t)?t:[t]),it=(t,a)=>t?.add(a),ot=(t,e)=>Error("tinybase:"+t+(v(e)?a:":"+e)),ct=(t,a)=>{throw ot(t,a)},lt=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},ut=(t,a)=>lt(t,t=>{lt(()=>a?.(t))}),yt=async(t,a)=>{try{return await t()}finally{await a()}};new c.TextEncoder;const wt=(t,a)=>a?[t,a]:[t],dt=(t,e)=>((t??a)>(e??a)?t:e)??a,gt=(t="")=>wt(((t=[])=>{const a=j.create(null);return P(t,([t,e])=>N(a,t,e)),a})(),t),ft=/^\d+$/,vt=J(),ht=J(),bt=J(),pt=(t,e,n,s,r,i,o,c={},l=0,u=[])=>{let y,w,d,g,f,b=0,A=0,_=0,C=0,E=0,j=0,x=0,F=0,k=0;const I={},N=c.destroy;X(vt,u,()=>0),X(ht,u,()=>[]),W(bt,u,(K(bt,u)??0)+1);const U=J(),[Z,B,G,Q,tt]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!$(t)||!$(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!$(t)||!$(a),a.setContent]:ct(0))(o,t,l),[at,et,nt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{L(ft,a)&&S(t)<1e3&&z(t,a)}]})(),r=J(),i=(t,n,s,i)=>{let o,c=!1;if(P(((t,e=[a])=>{const n=[],s=(t,a)=>a==S(e)?z(n,t):h(e[a])?R(t,t=>s(t,a+1)):P([e[a],null],e=>s(K(t,e),a+1));return s(t,0),n})(n,s),a=>R(a,a=>{const n=()=>K(r,a)[0](e,...s??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(n):n()})),c)throw o};return[(s,i,o,c=[],l=()=>[])=>{e??=t();const u=n(1);return W(r,u,[s,i,o,c,l]),it(Y(i,o??[a],rt),u),u},(t,a,...e)=>i(!1,t,a,e),t=>p(K(r,t),([,e,n])=>(Y(e,n??[a],void 0,a=>(V(a,t),O(a)?1:0)),W(r,t),s(t),n)),t=>p(K(r,t),([t,,a=[],n,s])=>{const r=(...i)=>{const o=S(i);o==S(a)?t(e,...i,...s(i)):h(a[o])?P(n[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Tt),st=t=>{t!=b&&(b=t,et(U,void 0,b))},ot=()=>{K(bt,u)||K(vt,u)||!m(K(ht,u)??[])||(W(vt,u),W(ht,u),W(bt,u))},wt=a=>{(Z&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Ct()&&t.__?.[0]?.()&&await St()},gt=t=>yt(()=>w=t,()=>{w==t&&(w=void 0)}),pt=async t=>(2!=b&&(await yt(async()=>{st(1),A++,await Pt(()=>lt(async()=>{const a=await e();M(a)?wt(a):v(a)&&t?tt(t):v(a)||ct(1,a)},a=>{i?.(a),t&&tt(t)}))},()=>st(0)),await dt()),Tt),At=async()=>{const t=x;x=0,t&&t==C&&!k&&(2==b?x=t:await pt())},_t=async t=>{const a=++C;let e=!0;if(await Mt(!0),a==C&&!k){const n=lt(async()=>{const t=await s(async(t,n)=>{if(a==C&&!k)if(n||t){const a=e||2==b||!!j;E++,a&&j++,await yt(async()=>{st(1),A++,await(a?Pt(()=>wt(n??t)):(()=>{try{return wt(n??t)}finally{st(0)}})())},()=>{a&&j--,--E||st(0)}),E||await dt()}else 2==b?x=a:await pt()});a!=C||k?v(t)||await r(t):y=t},i);await gt(n),a!=C||k||await yt(()=>pt(t),()=>{e=!1})}return Tt},Mt=async(t=!1)=>{x=0,t||C++;const a=w,e=y;return y=void 0,await gt(yt(async()=>{await a},async()=>{v(e)||await lt(()=>r(e),i)})),Tt},St=async t=>(1!=b&&await yt(()=>yt(async()=>{st(2),_++,await Pt(()=>lt(()=>n(B,t),i))},()=>st(0)),At),Tt),mt=async()=>{const a=++F;return await Lt(!0),a!=F||k||(await St(),a!=F||k||(d=t.addDidFinishTransactionListener(()=>{if(a==F&&!k){const t=G();Q(t)&<(()=>St(t))}}))),Tt},Lt=async(a=!1)=>{a||F++;const e=d;return d=void 0,v(e)||t.delListener(e),Tt},Ct=()=>!v(d),Ht=async(t=!1)=>{const[a,e]=t?[Lt,Mt]:[Mt,Lt];return await yt(()=>a(),async()=>{await e()}),Tt},Pt=async(...t)=>{let a,e=!1;const n=H(n=>m(t)?n():z(K(ht,u),...T(t,(s,r)=>{const o=r==S(t)-1;return[async()=>{let t;f=H(a=>t=a),await yt(async()=>{try{await lt(s,i)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{f=void 0,t()})},o?n:void 0,I]})));if(await(async()=>{if(!K(vt,u)){W(vt,u,1);const t=K(ht,u);let a=0;await yt(async()=>{for(;a<S(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{D(t,a),W(vt,u,0),ot()})}})(),await n,e)throw a;return Tt},Tt={load:pt,startAutoLoad:_t,stopAutoLoad:Mt,isAutoLoading:()=>!v(y),save:St,startAutoSave:mt,stopAutoSave:Lt,isAutoSaving:Ct,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[mt,_t,Lt,Mt]:[_t,mt,Mt,Lt],i=e(t),o=a?F:C;await i;const c=n(t),l=a?C:F;try{await c}catch(t){throw l==(a?C:F)&&await ut(r),o==(a?F:C)&&await ut(s),t}return Tt},stopAutoPersisting:Ht,getStatus:()=>b,addStatusListener:t=>at(t,U),delListener:a=>(nt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:A,saves:_}),...c,destroy:async()=>(v(g)&&(k=1,g=(async()=>{const t=K(ht,u),a=(e=([,t,a])=>a!=I||(t?.(),!1),t.filter(e));var e;const n=f;D(t),z(t,...a),await yt(()=>yt(()=>yt(Ht,()=>n),()=>N?.()),()=>{const t=(K(bt,u)??1)-1;W(bt,u,t||void 0),ot()})})()),await g,Tt)};return q(Tt)};J();const At=2**36,_t=2**30,Mt=/^[-0-9A-Z_a-z]{16}$/,St=t=>_(t)&&d(t)&&g(t)&&t>=0&&t<=4294967295,mt=(t,a)=>F(t)&&Z(t,t=>a?mt(t,a-1):St(t)),Lt=(r,i)=>{return M(r)&&(1==S(r)||2==S(r)&&A(r[1])&&(c=1/0,(o=r[1])==a||A(o)&&L(Mt,o)&&(t=>et(t,0)*At+et(t,1)*_t+16777216*et(t,2)+262144*et(t,3)+4096*et(t,4)+64*et(t,5)+et(t,6))(o)<=c))&&(i?F(r[0])&&Z(r[0],t=>Lt(t,i-1)):(l=r[0],v(l)||!v((a=>{if(h(a))return"null";if(M(a))return"array";if(F(a))return"object";const r=t(a);return(t=>t==e||t==n)(r)||r==s&&d(a)?r:void 0})(l))));var o,c,l},Ct=t=>M(t)&&2==S(t)&&St(t[0])&&St(t[1]),Ht=J(),Pt=(t,e,n,s)=>{const r=st(),i=rt();return((t,e,n,s,r,i,o,c,y={},w=C)=>{let f,b=0,m=0,L=0,P=!1;const T=J(),D=()=>st(11),z=t=>Q(T,(a,[,,e,n])=>{u(n),V(T,a),e(t)}),O=(t,a,n,s)=>{m++,i?.(t,a,n,s),e(t,a,n,s)},R=async(t,e,n,s)=>H((i,o)=>{if(E(T)>=100)return void o(ot(15,"requests"));const c=s+"."+st(4),y=l(()=>{V(T,c),o(ot(3,(t??a)+"."+c+"."+e))},r);W(T,c,[t,(t,a)=>{u(y),V(T,c),i([t,a,s])},o,y]);try{O(t,c,e,n)}catch(t){u(y),V(T,c),o(t)}}),j=(t,[a,e])=>{U(a,([a,e],n)=>{const s=B(t[0],n,gt);U(a,([t,a],e)=>{const n=B(s[0],e,gt);U(t,([t,a],e)=>N(n[0],e,wt(t,a))),n[1]=dt(n[1],a)}),s[1]=dt(s[1],e)}),t[1]=dt(t[1],e)},x=(e=null,n,s=D())=>lt(async()=>{v(n)&&([n,e,s]=await R(null,1,a,s));const[r,i]=n,[o,c]=t.getMergeableContentHashes();let l=gt();if(o!=r){const[a,n]=(await R(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!$(n)){const[a,r]=(await R(e,5,t.getMergeableRowHashes(n),s))[0];if(j(l,a),!$(r)){const a=(await R(e,6,t.getMergeableCellHashes(r),s))[0];j(l,a)}}}return[l,c==i?gt():(await R(e,7,t.getMergeableValueHashes(),s))[0],1]},c),F=pt(t,async()=>{const t=await x();return!t||$(t[0][0])&&$(t[1][0])?void 0:t},async(a,e)=>e?O(null,D(),3,e):O(null,D(),2,t.getMergeableContentHashes()),t=>f=t,()=>f=void 0,c,2,{startSync:async t=>(b=1,await F.startAutoPersisting(t)),stopSync:async()=>(b=0,await F.stopAutoPersisting(),F),destroy:async()=>(P=!0,z(ot(3,"destroyed")),w(),await F.stopSync(),s(),F),getSynchronizerStats:()=>({sends:m,receives:L}),...y},1);return n((e,n,s,r)=>{if(P)return;if(!((t,e,n)=>(h(t)||A(t))&&_(e)&&d(e)&&g(e)&&((t,e)=>0==t?(t=>Ct(t)||Lt(t,3)||Lt(t,1)||M(t)&&2==S(t)&&Lt(t[0],3)&&(mt(t[1],0)||mt(t[1],1)))(e):1==t?e===a:2==t?Ct(e):3==t?(t=>M(t)&&(2==S(t)||3==S(t)&&1===t[2])&&Lt(t[0],3)&&Lt(t[1],1))(e):4==t?mt(e,0):5==t?mt(e,1):6==t?mt(e,2):7==t&&mt(e,0))(e,n))(n,s,r))return void c?.(ot(14));const i=b||F.isAutoLoading();L++,o?.(e,n,s,r),0==s?p(K(T,n),([t,a])=>h(t)||t==e?a(r,e):0):2==s&&i?x(e,r,n??void 0).then(t=>{f?.(void 0,t)}).catch(c):3==s&&i?f?.(void 0,r):p(1==s&&(b||F.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(r):5==s?t.getMergeableRowDiff(r):6==s?t.getMergeableCellDiff(r):7==s?t.getMergeableValueDiff(r):void 0,t=>{O(e,n,0,t)})},z),F})(t,(t,a,e,n)=>{const s=h(t)?[]:[t];h(t)&&Q(Ht,t=>t!=r?z(s,t):0);const o=l(()=>{V(i,o),P(s,t=>K(Ht,t)?.(r,a,e,n))});return it(i,o),o},t=>{W(Ht,r,t)},()=>{V(Ht,r)},.05,e,n,s,{},()=>{R(i,u),i.clear()})};export{Pt as createLocalSynchronizer};
|
|
Binary file
|