tinybase 9.4.0-beta.1 → 9.4.0
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/persisters/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -2
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +9 -2
- package/@types/persisters/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +4 -0
- package/@types/queries/with-schemas/index.d.ts +4 -0
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +6 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +6 -3
- package/@types/ui-react-dom/index.d.ts +10 -10
- package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-react-dom-charts/index.d.ts +7 -7
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
- package/@types/ui-react-inspector/index.d.ts +1 -1
- package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-solid-dom/index.d.ts +10 -10
- package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-solid-inspector/index.d.ts +1 -1
- package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-svelte-dom/index.d.ts +10 -10
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-svelte-inspector/index.d.ts +1 -1
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
- package/index.js +191 -74
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +606 -179
- package/omni/with-schemas/index.js +606 -179
- package/package.json +12 -8
- package/persisters/index.js +49 -10
- package/persisters/persister-automerge/index.js +29 -5
- package/persisters/persister-automerge/with-schemas/index.js +29 -5
- package/persisters/persister-browser/index.js +29 -5
- package/persisters/persister-browser/with-schemas/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-durable-object-sql-storage/index.js +44 -8
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +44 -8
- package/persisters/persister-durable-object-storage/index.js +31 -5
- package/persisters/persister-durable-object-storage/with-schemas/index.js +31 -5
- package/persisters/persister-electric-sql/index.js +29 -5
- package/persisters/persister-electric-sql/with-schemas/index.js +29 -5
- package/persisters/persister-expo-sqlite/index.js +29 -5
- package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-file/index.js +31 -5
- package/persisters/persister-file/with-schemas/index.js +31 -5
- package/persisters/persister-indexed-db/index.js +29 -5
- package/persisters/persister-indexed-db/with-schemas/index.js +29 -5
- package/persisters/persister-libsql/index.js +29 -5
- package/persisters/persister-libsql/with-schemas/index.js +29 -5
- package/persisters/persister-partykit-client/index.js +31 -5
- package/persisters/persister-partykit-client/with-schemas/index.js +31 -5
- package/persisters/persister-pglite/index.js +49 -10
- package/persisters/persister-pglite/with-schemas/index.js +49 -10
- package/persisters/persister-postgres/index.js +49 -10
- package/persisters/persister-postgres/with-schemas/index.js +49 -10
- package/persisters/persister-powersync/index.js +29 -5
- package/persisters/persister-powersync/with-schemas/index.js +29 -5
- package/persisters/persister-react-native-mmkv/index.js +31 -5
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +31 -5
- package/persisters/persister-react-native-sqlite/index.js +29 -5
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-remote/index.js +31 -5
- package/persisters/persister-remote/with-schemas/index.js +31 -5
- package/persisters/persister-sqlite-bun/index.js +29 -5
- package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite-wasm/index.js +29 -5
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite3/index.js +29 -5
- package/persisters/persister-sqlite3/with-schemas/index.js +29 -5
- package/persisters/persister-yjs/index.js +29 -5
- package/persisters/persister-yjs/with-schemas/index.js +29 -5
- package/persisters/with-schemas/index.js +49 -10
- package/queries/index.js +205 -74
- package/queries/with-schemas/index.js +205 -74
- package/readme.md +14 -14
- package/releases.md +84 -67
- package/synchronizers/index.js +31 -5
- package/synchronizers/synchronizer-broadcast-channel/index.js +39 -13
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +39 -13
- package/synchronizers/synchronizer-local/index.js +31 -5
- package/synchronizers/synchronizer-local/with-schemas/index.js +31 -5
- package/synchronizers/synchronizer-ws-client/index.js +220 -61
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +220 -61
- package/synchronizers/synchronizer-ws-server/index.js +253 -73
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +253 -73
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-simple/index.js +184 -60
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +184 -60
- package/synchronizers/with-schemas/index.js +31 -5
- package/ui-react-inspector/index.js +29 -5
- package/ui-react-inspector/with-schemas/index.js +29 -5
- package/ui-solid-inspector/index.js +29 -5
- package/ui-solid-inspector/with-schemas/index.js +29 -5
- package/ui-svelte-inspector/index.js +29 -5
- package/ui-svelte-inspector/with-schemas/index.js +29 -5
- package/with-schemas/index.js +191 -74
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,e="tinybase",n="",r=t(n),s=t(!0),a=t(0),o="utf8",i="open",c="close",l="message",u="error",d=(t,e)=>t?.match(e),f=(t,e="",n)=>t.split(e,n),y=Promise,v=Math,w=t=>(e,n,r)=>t(e)?r?.():n(e),g=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),b=t=>clearTimeout(t),S=(t,e,n)=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),m=v.max,p=v.ceil,A=v.floor,C=v.random,M=isFinite,_=Number.isInteger,E=t=>null==t,O=t=>void 0===t,P=t=>null===t,H=w(E),k=w(O),L=e=>t(e)==r,N=e=>t(e)==a,T=t=>Array.isArray(t),z=(t,e,n)=>t.slice(e,n),D=t=>t.length,x=t=>0==D(t),I=(t,e)=>t.test(e),R=()=>{},W=t=>new y(t),U=(t,e)=>t.indexOf(e),j=(t,e)=>t.forEach(e),V=(t,e="")=>t.join(e),Z=(t,e)=>t.map(e),F=(t,e,n)=>t.reduce(e,n),J=(t,e)=>t.filter(e),$=(t,e=D(t))=>t.splice(0,e),q=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>O(t)||0==B(t),Q=(t,e)=>t?.forEach(e),X=(t,e)=>t?.delete(e),Y=Object,tt=t=>Y.getPrototypeOf(t),et=t=>!E(t)&&H(tt(t),t=>t==Y.prototype||E(tt(t)),()=>!0),nt=Y.keys,rt=Y.freeze,st=(t,e)=>Y.hasOwn(t,e),at=(t,e,n)=>(Y.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ot=(t=[])=>{const e=Y.create(null);return j(t,([t,n])=>at(e,t,n)),e},it=(t,e)=>j(nt(t),n=>e(t[n],n)),ct=(t,e)=>{for(const n in t)if(st(t,n)&&!e(t[n],n))return!1;return!0},lt=t=>et(t)&&0==(t=>D(nt(t)))(t),ut=(t,e,n)=>(st(t,e)||at(t,e,n()),t[e]),dt=Map,ft=t=>new dt(t),yt=(t,e)=>t?.get(e),vt=(t,e)=>Q(t,(t,n)=>e(n,t)),wt=(t,e,n)=>O(n)?(X(t,e),t):t?.set(e,n),gt=(t,e,n,r)=>{let s=yt(t,e);return G(t,e)?r?.(s):wt(t,e,s=n()),s},ht=(t,e,n,r,s=0)=>k((n?gt:yt)(t,e[s],s>D(e)-2?n:ft),a=>{if(s>D(e)-2)return r?.(a)&&wt(t,e[s]),a;const o=ht(a,e,n,r,s+1);return K(a)&&wt(t,e[s]),o}),bt=f("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),St=ft(Z(bt,(t,e)=>[t,e])),mt=(t,e)=>yt(St,t[e])??0,pt=g.crypto?t=>g.crypto.getRandomValues(t):t=>Z(t,()=>A(256*C())),At=(t=16)=>F(pt(new Uint8Array(t)),(t,e)=>t+bt[63&e],n),Ct=15,Mt=(t,r)=>Error(e+":"+t+(O(r)?n:":"+r)),_t=(t,e)=>{throw Mt(t,e)},Et=(t,e)=>{try{return t()}catch{return e}},Ot=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Pt=(t,e)=>{try{return t()}finally{e()}},Ht=async(t,e)=>{try{return await t()}finally{await e()}},kt=t=>new Set(T(t)||O(t)?t:[t]),Lt=JSON.stringify,Nt=JSON.parse,Tt=t=>Lt(t,(t,e)=>O(e)?"":e),zt=t=>""===t?void 0:T(t)?Z(t,zt):et(t)?((t,e)=>{const n=ot();return it(t,(t,r)=>at(n,r,e(t,r))),n})(t,zt):t;new g.TextEncoder;const Dt=2**36,xt=2**30,It=/^[-0-9A-Z_a-z]{16}$/,Rt="\n",Wt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Ut=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,jt=/[\n\r?#]/,Vt=16777216,Zt=t=>{let e=0;for(let n=0;n<D(t);n++){const r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Ft=t=>t>Vt;var Jt=(t=>(t[t.Hello=0]="Hello",t[t.Subscribe=1]="Subscribe",t[t.Unsubscribe=2]="Unsubscribe",t))(Jt||{});const $t=(t,n)=>{let r=!0;return s=>{r&&(r=!1,Pt(()=>n?.(s),()=>{return t.close((n=s.message,r=e+":"+Ct,n.startsWith(r)?1013:1007),s.message);var n,r}))}},qt=t=>N(t)&&M(t)&&_(t)&&t>=0&&t<=4294967295,Bt=(t,e)=>et(t)&&ct(t,t=>e?Bt(t,e-1):qt(t)),Gt=(e,o)=>{return T(e)&&(1==D(e)||2==D(e)&&L(e[1])&&(c=1/0,(i=e[1])==n||L(i)&&I(It,i)&&(t=>mt(t,0)*Dt+mt(t,1)*xt+16777216*mt(t,2)+262144*mt(t,3)+4096*mt(t,4)+64*mt(t,5)+mt(t,6))(i)<=c))&&(o?et(e[0])&&ct(e[0],t=>Gt(t,o-1)):(l=e[0],O(l)||!O((e=>{if(P(e))return"null";if(T(e))return"array";if(et(e))return"object";const n=t(e);return(t=>t==r||t==s)(n)||n==a&&M(e)?n:void 0})(l))));var i,c,l},Kt=t=>T(t)&&2==D(t)&&qt(t[0])&&qt(t[1]),Qt=(t,e,r)=>(P(t)||L(t))&&N(e)&&M(e)&&_(e)&&((t,e)=>0==t?(t=>Kt(t)||Gt(t,3)||Gt(t,1)||T(t)&&2==D(t)&&Gt(t[0],3)&&(Bt(t[1],0)||Bt(t[1],1)))(e):1==t?e===n:2==t?Kt(e):3==t?(t=>T(t)&&(2==D(t)||3==D(t)&&1===t[2])&&Gt(t[0],3)&&Gt(t[1],1))(e):4==t?Bt(e,0):5==t?Bt(e,1):6==t?Bt(e,2):7==t&&Bt(e,0))(e,r),Xt=(t,e=!1)=>Et(()=>{const n=zt(Nt(t));return T(n)&&3==D(n)&&(Qt(n[0],n[1],n[2])||e&&(P(n[0])||L(n[0]))&&-1==n[1])?n:void 0}),Yt=(t,e)=>{const n=t.indexOf(Rt);return-1!==n&&(e(z(t,0,n),z(t,n+1)),!0)},te=(t,e)=>(t.bufferedAmount??0)+e>Vt,ee=(t,e=1,n)=>((t,e=1,n)=>{const r=ft();let s=0,a=!0;const o=(t,e)=>{b(e[4]),s-=e[5],X(r,t)},i=(t=Mt(14))=>{a&&(a=!1,vt(r,(t,e)=>b(e[4])),r.clear(),s=0,n?.(t))};return n=>{a&&(Ft(Zt(n))?i(Mt(Ct,d(n,Ut)?"fragments":"socket")):Yt(n,(n,a)=>{const c=Xt(a);if(c)return void t(n,[a],...c);const[,l,u,f,y]=d(a,Wt)??[];if(l){const c=parseInt(u),d=parseInt(f);if(d>1e3)return void i(Mt(Ct,"fragments"));if(d>0&&c>=0&&c<d){const u=n+Rt+l;let f=yt(r,u);if(!f){if(B(r)>=100)return void i(Mt(Ct,"fragments"));f=[[],[],d,d,h(()=>{const t=yt(r,u);t&&o(u,t)},e),0],wt(r,u,f)}const[v,w]=f;if(d!=f[3]||!O(v[c]))return void i();{const t=Zt(y);if(s+t>Vt)return void i(Mt(Ct,"fragments"));v[c]=y,w[c]=a,f[2]--,f[5]+=t,s+=t}return void(0==f[2]&&(o(u,f),((e,n,r)=>{const s=Xt(r);s?t(e,n,...s):i()})(n,w,V(v))))}}i()})||i())}})((e,n,r,s,a)=>t(e,r,s,a),e,n),ne=(t,e)=>t+Rt+e,re=(t,e)=>ne("M",ne(t,e)),se=(t,e,n)=>ne("S",Tt([t,-1,[e,n]])),ae=t=>{return!x(t)&&!jt.test(t)&&(e=t=>!x(t)&&"."!=t&&".."!=t,f(t,"/").every(e));var e},oe=(t,e,r,s,a)=>{const o=t??n,i=Tt([e,r,s]),c=A(a??0);if(O(a)||c<1)return[ne(o,i)];const l=((t,e)=>{const r=[];let s=n,a=0;for(let o=0;o<D(t);o++){const i=t.charCodeAt(o);let c=z(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=z(t,++o,o+1));const l=Zt(c);a>0&&a+l>e&&(q(r,s),s=n,a=0),s+=c,a+=l}return q(r,s),r})(i,m(c,p(Zt(i)/1e3)+3)),u=D(l);if(1==u)return[ne(o,i)];const d=At();return Z(l,(t,e)=>ne(o,V([d,e,u,t],Rt)))},ie=(t,e)=>e?[t,e]:[t],ce=(t,e)=>((t??n)>(e??n)?t:e)??n,le=(t="")=>ie(ot(),t),ue=/^\d+$/,de=ft(),fe=ft(),ye=ft();ft();const ve=(t,e,r,s,a,o,i,c,l={},u=R)=>{let d,f=0,y=0,v=0,w=!1;const g=ft(),S=()=>At(11),m=t=>vt(g,(e,[,,n,r])=>{b(r),X(g,e),n(t)}),p=(t,n,r,s)=>{y++,o?.(t,n,r,s),e(t,n,r,s)},A=async(t,e,r,s)=>W((o,i)=>{if(B(g)>=100)return void i(Mt(Ct,"requests"));const c=s+"."+At(4),l=h(()=>{X(g,c),i(Mt(3,(t??n)+"."+c+"."+e))},a);wt(g,c,[t,(t,e)=>{b(l),X(g,c),o([t,e,s])},i,l]);try{p(t,c,e,r)}catch(t){b(l),X(g,c),i(t)}}),C=(t,[e,n])=>{it(e,([e,n],r)=>{const s=ut(t[0],r,le);it(e,([t,e],n)=>{const r=ut(s[0],n,le);it(t,([t,e],n)=>at(r[0],n,ie(t,e))),r[1]=ce(r[1],e)}),s[1]=ce(s[1],n)}),t[1]=ce(t[1],n)},M=(e=null,r,s=S())=>Ot(async()=>{O(r)&&([r,e,s]=await A(null,1,n,s));const[a,o]=r,[i,c]=t.getMergeableContentHashes();let l=le();if(i!=a){const[n,r]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=n,!lt(r)){const[n,a]=(await A(e,5,t.getMergeableRowHashes(r),s))[0];if(C(l,n),!lt(a)){const n=(await A(e,6,t.getMergeableCellHashes(a),s))[0];C(l,n)}}}return[l,c==o?le():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},c),_=((t,e,r,s,a,o,i,c={},l=0,u=[])=>{let d,f,y,v,w,g=0,h=0,b=0,S=0,m=0,p=0,A=0,C=0,M=0;const _={},E=c.destroy;gt(de,u,()=>0),gt(fe,u,()=>[]),wt(ye,u,(yt(ye,u)??0)+1);const H=ft(),[L,N,z,R,U]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!lt(t)||!lt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!lt(t)||!lt(e),e.setContent]:_t(0))(i,t,l),[V,F,B]=(t=>{let e;const[r,s]=(()=>{const t=[];let e=0;return[r=>(r?t.shift():null)??n+e++,e=>{I(ue,e)&&D(t)<1e3&&q(t,e)}]})(),a=ft(),o=(t,r,s,o)=>{let i,c=!1;if(j(((t,e=[n])=>{const r=[],s=(t,n)=>n==D(e)?q(r,t):P(e[n])?Q(t,t=>s(t,n+1)):j([e[n],null],e=>s(yt(t,e),n+1));return s(t,0),r})(r,s),n=>Q(n,n=>{const r=()=>yt(a,n)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(r):r()})),c)throw i};return[(s,o,i,c=[],l=()=>[])=>{e??=t();const u=r(1);var d,f;return wt(a,u,[s,o,i,c,l]),d=ht(o,i??[n],kt),f=u,d?.add(f),u},(t,e,...n)=>o(!1,t,e,n),t=>k(yt(a,t),([,e,r])=>(ht(e,r??[n],void 0,e=>(X(e,t),K(e)?1:0)),wt(a,t),s(t),r)),t=>k(yt(a,t),([t,,n=[],r,s])=>{const a=(...o)=>{const i=D(o);i==D(n)?t(e,...o,...s(o)):P(n[i])?j(r[i]?.(...o)??[],t=>a(...o,t)):a(...o,n[i])};a()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>mt),G=t=>{t!=g&&(g=t,F(H,void 0,g))},Y=()=>{yt(ye,u)||yt(de,u)||!x(yt(fe,u)??[])||(wt(de,u),wt(fe,u),wt(ye,u))},tt=e=>{(L&&T(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},et=async()=>{vt()&&t.__?.[0]?.()&&await ct()},nt=t=>Ht(()=>f=t,()=>{f==t&&(f=void 0)}),st=async t=>(2!=g&&(await Ht(async()=>{G(1),h++,await St(()=>Ot(async()=>{const n=await e();T(n)?tt(n):O(n)&&t?U(t):O(n)||_t(1,n)},e=>{o?.(e),t&&U(t)}))},()=>G(0)),await et()),mt),at=async()=>{const t=A;A=0,t&&t==S&&!M&&(2==g?A=t:await st())},ot=async t=>{const e=++S;let n=!0;if(await it(!0),e==S&&!M){const r=Ot(async()=>{const t=await s(async(t,r)=>{if(e==S&&!M)if(r||t){const e=n||2==g||!!p;m++,e&&p++,await Ht(async()=>{G(1),h++,await(e?St(()=>tt(r??t)):Pt(()=>tt(r??t),()=>G(0)))},()=>{e&&p--,--m||G(0)}),m||await et()}else 2==g?A=e:await st()});e!=S||M?O(t)||await a(t):d=t},o);await nt(r),e!=S||M||await Ht(()=>st(t),()=>{n=!1})}return mt},it=async(t=!1)=>{A=0,t||S++;const e=f,n=d;return d=void 0,await nt(Ht(async()=>{await e},async()=>{O(n)||await Ot(()=>a(n),o)})),mt},ct=async t=>(1!=g&&await Ht(()=>Ht(async()=>{G(2),b++,await St(()=>Ot(()=>r(N,t),o))},()=>G(0)),at),mt),ut=async()=>{const e=++C;return await dt(!0),e!=C||M||(await ct(),e!=C||M||(y=t.addDidFinishTransactionListener(()=>{if(e==C&&!M){const t=z();R(t)&&Ot(()=>ct(t))}}))),mt},dt=async(e=!1)=>{e||C++;const n=y;return y=void 0,O(n)||t.delListener(n),mt},vt=()=>!O(y),bt=async(t=!1)=>{const[e,n]=t?[dt,it]:[it,dt];return await Ht(()=>e(),async()=>{await n()}),mt},St=async(...t)=>{let e,n=!1;const r=W(r=>x(t)?r():q(yt(fe,u),...Z(t,(s,a)=>{const i=a==D(t)-1;return[async()=>{let t;w=W(e=>t=e),await Ht(async()=>{try{await Ot(s,o)}catch(t){n||(n=!0,e=t)}i&&r()},()=>{w=void 0,t()})},i?r:void 0,_]})));if(await(async()=>{if(!yt(de,u)){wt(de,u,1);const t=yt(fe,u);let e=0;await Ht(async()=>{for(;e<D(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{$(t,e),wt(de,u,0),Y()})}})(),await r,n)throw e;return mt},mt={load:st,startAutoLoad:ot,stopAutoLoad:it,isAutoLoading:()=>!O(d),save:ct,startAutoSave:ut,stopAutoSave:dt,isAutoSaving:vt,startAutoPersisting:async(t,e=!1)=>{const[n,r]=e?[ut,ot]:[ot,ut];return await n(t),await r(t),mt},stopAutoPersisting:bt,getStatus:()=>g,addStatusListener:t=>V(t,H),delListener:e=>(B(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:h,saves:b}),...c,destroy:async()=>(O(v)&&(M=1,v=(async()=>{const t=yt(fe,u),e=J(t,([,t,e])=>e!=_||(t?.(),!1)),n=w;$(t),q(t,...e),await Ht(()=>Ht(()=>Ht(bt,()=>n),()=>E?.()),()=>{const t=(yt(ye,u)??1)-1;wt(ye,u,t||void 0),Y()})})()),await v,mt)};return rt(mt)})(t,async()=>{const t=await M();return!t||lt(t[0][0])&<(t[1][0])?void 0:t},async(e,n)=>n?p(null,S(),3,n):p(null,S(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(f=1,await _.startAutoPersisting(t)),stopSync:async()=>(f=0,await _.stopAutoPersisting(),_),destroy:async()=>(w=!0,m(Mt(3,"destroyed")),u(),await _.stopSync(),s(),_),getSynchronizerStats:()=>({sends:y,receives:v}),...l},1);return r((e,n,r,s)=>{if(w)return;if(!Qt(n,r,s))return void c?.(Mt(14));const a=f||_.isAutoLoading();v++,i?.(e,n,r,s),0==r?k(yt(g,n),([t,n])=>P(t)||t==e?n(s,e):0):2==r&&a?M(e,s,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==r&&a?d?.(void 0,s):k(1==r&&(f||_.isAutoSaving())?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(s):5==r?t.getMergeableRowDiff(s):6==r?t.getMergeableCellDiff(s):7==r?t.getMergeableValueDiff(s):void 0,t=>{p(e,n,0,t)})},m),_},we=new WeakMap,ge=new WeakSet,he=()=>{let t,e;const n=W((n,r)=>{t=n,e=r});return n.catch(()=>0),[n,t,e]},be=async(t,e,r=1,...s)=>L(r)?(async(t,e,r,s,a,d,f,y)=>{ge.has(e)&&_t(9);const v=we.get(e),w=v??(()=>{const t=(t=>{const e=ft(),r=ft(),s=[];let a,d,f=he(),y=!1,v=!1,w=!1,g=()=>{},m=!1,p=0,A=0;const C=(t,e)=>Et(()=>t[6]?.(e)),M=t=>vt(e,(e,n)=>C(n,t)),_=(e,n)=>{C(e,n),g(),Et(()=>t.close())},E=$t(t,M),O=(e,n)=>q(s,S(t,e,n)),H=t=>vt(r,(e,[,,n,s])=>{b(s),X(r,e),n(t)}),k=t=>vt(e,(e,n)=>Et(()=>n[11]?.(t))),N=t=>{j(t[1],([,t])=>b(t)),p-=D(t[1]),A-=t[8],$(t[1]),t[8]=0},x=(t,e=!1)=>{j(t[2],([,t])=>b(t)),p-=t[10],A-=t[9],$(t[2]),t[9]=0,t[10]=0,e&&(t[7]=void 0)},I=n=>{const r=Mt(Ct,n);return m||v||(m=!0,y=!1,M(r),H(r),k(r),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0}),a&&(b(a),a=void 0),t.close(1013,r.message)),r},R=(e,n,s)=>{const a=At();return W((o,i)=>{if(B(r)>=100)return void i(I("controls"));const c=se(a,e,n),l=Zt(c);if(Ft(l)||te(t,l))return void i(I("socket"));const u=h(()=>{X(r,a),i(Mt(4,e))},s);wt(r,a,[e,o,i,u]);try{t.send(c)}catch(t){b(u),X(r,a),i(t)}})},V=t=>F(t,(t,e)=>t+Zt(e),0),Z=(t,e)=>{const n=V(e);if(p+D(e)>1e3||A+n>Vt)return I("client"),!1;const r=[e,h(()=>((t,e)=>{const n=U(t[2],e);if(n>-1){t[2]=J(t[2],(t,e)=>e!=n);const r=z(e[0],e[2]),s=V(r);t[9]-=s,t[10]-=D(r),p-=D(r),A-=s}})(t,r),t[5]),0];return q(t[2],r),t[9]+=n,t[10]+=D(e),p+=D(e),A+=n,!0},Q=()=>{a??=h(()=>{a=void 0,vt(e,tt)},.01)},Y=(e,n,r,s)=>{if(t.readyState!=t.OPEN)return s?n[7]=s:Z(n,r),!1;for(let a=0;a<D(r);a++){const o=re(e,r[a]),i=Zt(o);if(Ft(i))return I("client"),!1;if(te(t,i)){if(s)n[7]=s;else if(!Z(n,z(r,a)))return!1;return Q(),!1}try{t.send(o)}catch(t){if(s)n[7]=s;else if(!Z(n,z(r,a)))return!1;return _(n,t),!1}}return!0},tt=(e,r)=>{if(!y||!r[3])return;const s=r[2];let a=0;for(;a<D(s);){const o=s[a],i=o[0];let c=o[2];for(;c<D(i);){const l=i[c],u=re(e,l),d=Zt(u);if(Ft(d))return $(s,a),void I("client");if(te(t,d))return $(s,a),void Q();try{t.send(u)}catch(t){return void _(r,t)}i[c]=n,o[2]=++c;const f=Zt(l);r[9]-=f,r[10]--,A-=f,p--}b(o[1]),a++}$(s,a);const o=r[7];o&&(r[7]=void 0,Y(e,r,o(),o))},et=async(t,n,r)=>{if(!n[3]){let s=n[4];s||(s=(async()=>{await f[0],await R(Jt.Subscribe,t,r),yt(e,t)===n&&y&&(n[3]=!0,tt(t,n))})(),n[4]=s);try{await s}finally{n[4]===s&&(n[4]=void 0)}}},nt=()=>{if(v||d?.[0]===f)return;w=!1,m=!1;const t=f,n=(async()=>{try{await R(Jt.Hello,1,(()=>{let t=!0,n=1;return vt(e,(e,r)=>{const s=r[5];(t||s<n)&&(t=!1,n=s)}),n})()),f===t&&(y=!0,t[1](),vt(e,(t,e)=>et(t,e,e[5]).catch(t=>t.message==Mt(5).message?0:C(e,t))))}catch(e){t[2](e),e.message!=Mt(5).message&&M(e)}})();d=[t,n],n.finally(()=>{d?.[1]===n&&(d=void 0)})};g=()=>{if(!v&&!w){w=!0;const t=m;m=!1,y=!1;const n=Mt(5);t||M(n),f[2](n),H(n),k(n),a&&(b(a),a=void 0),f=he(),vt(e,(t,e)=>{e[3]=!1,e[4]=void 0})}};const rt=g;O(l,({data:t})=>{const n=t.toString(o);if(Ft(Zt(n)))return void E(Mt(Ct,"socket"));const s=(t=>{let e=!1;return Yt(t,(t,n)=>{if("S"==t){const[t,s,a]=Xt(n,!0)??[],o=a?.[0],i=a?.[1];-1==s&&T(a)&&2==D(a)&&(0==o?L(t)&&1==i:1==o?L(t)&&L(i)&&ae(i):2==o&&P(t)&&L(i)&&ae(i))&&(e=!0,((t,e)=>{const n=t?yt(r,t):void 0;n?.[0]==e&&(b(n[3]),X(r,t),n[1]())})(t,o))}}),e})(n),a=(t=>{let n=!1;return Yt(t,(t,r)=>{"M"==t&&Yt(r,(t,r)=>{ae(t)&&(n=!0,((t,n)=>{const r=yt(e,t);r?r[0]?r[0](n):((t,e)=>{const n=Zt(e);if(p>=1e3||A+n>Vt)return void I("client");const r=[e,h(()=>((t,e)=>{const n=U(t[1],e);if(n>-1){t[1]=J(t[1],(t,e)=>e!=n);const r=Zt(e[0]);t[8]-=r,p--,A-=r}})(t,r),t[5])];q(t[1],r),t[8]+=n,p++,A+=n})(r,n):E(Mt(14))})(t,r))})}),n})(n);s||a||E(Mt(14))}),O(i,nt),O(c,rt),O(u,t=>{M(t),k(Mt(5))});const st=()=>{if(K(e)&&!v){v=!0;const e=Mt(8);H(e),a&&(b(a),a=void 0),j(s,t=>Et(t)),$(s),we.delete(t),m||Et(()=>t.close())}},at=n=>{const r=yt(e,n);if(r)try{if(N(r),x(r,!0),y&&r[3]){const e=se(null,Jt.Unsubscribe,n),r=Zt(e);Ft(r)||te(t,r)?I("socket"):t.send(e)}}catch(t){C(r,t)}finally{X(e,n),st()}};return{addChannel:async(n,r,s)=>{ae(n)||_t(6,n),G(e,n)&&_t(7,n);const a=[void 0,[],[],!1,void 0,r,s,void 0,0,0,0,void 0];if(wt(e,n,a),t.readyState==t.OPEN)nt();else if(t.readyState>t.OPEN){const t=Mt(5);C(a,t),f[2](t)}try{await et(n,a,r)}catch(t){throw at(n),t}},delChannel:at,destroyIfEmpty:st,invalid:E,registerReceive:(t,n,r)=>{const s=yt(e,t);if(s){s[0]=n,s[11]=r;const t=s[1];let e=0;Pt(()=>{for(;e<D(t);){const[r,a]=t[e];b(a);const o=Zt(r);s[8]-=o,p--,A-=o,e++,n(r)}},()=>$(t,e))}},send:(n,r,s)=>{const a=yt(e,n);a&&(y&&t.readyState==t.OPEN&&a[3]&&!D(a[2])&&!a[7]?Y(n,a,r,s):s?a[7]=s:Z(a,r))}}})(e);return we.set(e,t),t})();try{await w.addChannel(r,s,f)}catch(t){throw v||w.destroyIfEmpty(),t}try{return ve(t,(e,n,s,a)=>w.send(r,oe(e,n,s,a,y),null!=e||2!=s&&3!=s?void 0:()=>oe(null,n,2,t.getMergeableContentHashes(),y)),(t,e)=>w.registerReceive(r,ee(t,s,w.invalid),e),()=>w.delChannel(r),s,a,d,f,{getWebSocket:()=>e})}catch(t){throw w.delChannel(r),t}})(t,e,r,s[0]??1,s[1],s[2],s[3],s[4]):(async(t,e,n=1,r,s,a,d)=>{we.has(e)&&_t(10);let f=!0,y=!1,v=()=>{};const w=t=>Et(()=>a?.(t)),g=ve(t,(t,...n)=>{j(oe(t,...n,d),t=>{if(y)return;const n=Zt(t);Ft(n)||te(e,n)?(()=>{if(!y){y=!0;const t=Mt(Ct,"socket");w(t),e.close(1013,t.message)}})():e.send(t)})},(t,r)=>{const s=$t(e,w),a=ee(t,n,s);let i=[];v=()=>{j(i,t=>Et(t)),$(i)};const d=()=>{Et(()=>r(Mt(5))),v()};i=[S(e,l,({data:t})=>a(t.toString(o))),S(e,c,()=>{f||d()}),S(e,u,t=>{f||(w(t),d())})]},()=>{v(),e.close()},n,r,s,a,{getWebSocket:()=>e});return ge.add(e),W((t,n)=>{let r=()=>{};const s=(t,s=t)=>{w(s),r(),v(),ge.delete(e),Et(()=>e.close()),n(t)};if(e.readyState!=e.OPEN){if(e.readyState>e.OPEN)return void s(Mt(5));const n=[S(e,i,()=>{f=!1,r(),t(g)}),S(e,u,t=>s(Mt(5),t)),S(e,c,()=>s(Mt(5)))];r=()=>{j(n,t=>Et(t)),$(n)}}else f=!1,t(g)})})(t,e,r,s[0],s[1],s[2],s[3]);export{be as createWsSynchronizer};
|
|
1
|
+
const t=t=>typeof t,e="tinybase",n="",r=t(n),s=t(!0),a=t(0),o="utf8",i="open",c="close",l="message",u="error",d=(t,e)=>t?.match(e),f=(t,e="",n)=>t.split(e,n),y=Promise,v=Math,w=t=>(e,n,r)=>t(e)?r?.():n(e),g=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),b=t=>clearTimeout(t),S=(t,e,n)=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),p=v.max,m=v.ceil,A=v.floor,C=v.random,M=isFinite,_=Number.isInteger,E=t=>null==t,O=t=>void 0===t,P=t=>null===t,H=w(E),k=w(O),L=e=>t(e)==r,N=e=>t(e)==a,T=t=>Array.isArray(t),z=(t,e,n)=>t.slice(e,n),D=t=>t.length,x=t=>0==D(t),I=(t,e)=>t.test(e),R=()=>{},U=t=>new y(t),W=(t,e)=>t.indexOf(e),j=(t,e)=>t.forEach(e),V=(t,e="")=>t.join(e),Z=(t,e)=>t.map(e),B=(t,e,n)=>t.reduce(e,n),F=(t,e)=>t.filter(e),J=(t,e=D(t))=>t.splice(0,e),$=(t,...e)=>t.push(...e),q=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>O(t)||0==q(t),Q=(t,e)=>t?.forEach(e),X=(t,e)=>t?.delete(e),Y=Object,tt=t=>Y.getPrototypeOf(t),et=t=>!E(t)&&H(tt(t),t=>t==Y.prototype||E(tt(t)),()=>!0),nt=Y.keys,rt=Y.freeze,st=(t,e)=>Y.hasOwn(t,e),at=(t,e,n)=>(Y.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ot=(t=[])=>{const e=Y.create(null);return j(t,([t,n])=>at(e,t,n)),e},it=(t,e)=>j(nt(t),n=>e(t[n],n)),ct=(t,e)=>{for(const n in t)if(st(t,n)&&!e(t[n],n))return!1;return!0},lt=t=>et(t)&&0==(t=>D(nt(t)))(t),ut=(t,e,n)=>(st(t,e)||at(t,e,n()),t[e]),dt=Map,ft=t=>new dt(t),yt=(t,e)=>t?.get(e),vt=(t,e)=>Q(t,(t,n)=>e(n,t)),wt=(t,e,n)=>O(n)?(X(t,e),t):t?.set(e,n),gt=(t,e,n,r)=>{let s=yt(t,e);return G(t,e)?r?.(s):wt(t,e,s=n()),s},ht=(t,e,n,r,s=0)=>k((n?gt:yt)(t,e[s],s>D(e)-2?n:ft),a=>{if(s>D(e)-2)return r?.(a)&&wt(t,e[s]),a;const o=ht(a,e,n,r,s+1);return K(a)&&wt(t,e[s]),o}),bt=f("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),St=ft(Z(bt,(t,e)=>[t,e])),pt=(t,e)=>yt(St,t[e])??0,mt=g.crypto?t=>g.crypto.getRandomValues(t):t=>Z(t,()=>A(256*C())),At=(t=16)=>B(mt(new Uint8Array(t)),(t,e)=>t+bt[63&e],n),Ct=15,Mt=(t,r)=>Error(e+":"+t+(O(r)?n:":"+r)),_t=(t,e)=>{throw Mt(t,e)},Et=(t,e)=>{try{return t()}catch{return e}},Ot=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Pt=(t,e)=>Ot(t,t=>{Ot(()=>e?.(t))}),Ht=(t,e)=>{try{return t()}finally{e()}},kt=async(t,e)=>{try{return await t()}finally{await e()}},Lt=t=>new Set(T(t)||O(t)?t:[t]),Nt=JSON.stringify,Tt=JSON.parse,zt=t=>Nt(t,(t,e)=>O(e)?"":e),Dt=t=>""===t?void 0:T(t)?Z(t,Dt):et(t)?((t,e)=>{const n=ot();return it(t,(t,r)=>at(n,r,e(t,r))),n})(t,Dt):t;new g.TextEncoder;const xt=2**36,It=2**30,Rt=/^[-0-9A-Z_a-z]{16}$/,Ut="\n",Wt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,jt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Vt=/[\n\r?#]/,Zt=16777216,Bt=t=>{let e=0;for(let n=0;n<D(t);n++){const r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Ft=t=>t>Zt;var Jt=(t=>(t[t.Hello=0]="Hello",t[t.Subscribe=1]="Subscribe",t[t.Unsubscribe=2]="Unsubscribe",t))(Jt||{});const $t=(t,n)=>{let r=!0;return s=>{r&&(r=!1,Ht(()=>n?.(s),()=>{return t.close((n=s.message,r=e+":"+Ct,n.startsWith(r)?1013:1007),s.message);var n,r}))}},qt=t=>N(t)&&M(t)&&_(t)&&t>=0&&t<=4294967295,Gt=(t,e)=>et(t)&&ct(t,t=>e?Gt(t,e-1):qt(t)),Kt=(e,o)=>{return T(e)&&(1==D(e)||2==D(e)&&L(e[1])&&(c=1/0,(i=e[1])==n||L(i)&&I(Rt,i)&&(t=>pt(t,0)*xt+pt(t,1)*It+16777216*pt(t,2)+262144*pt(t,3)+4096*pt(t,4)+64*pt(t,5)+pt(t,6))(i)<=c))&&(o?et(e[0])&&ct(e[0],t=>Kt(t,o-1)):(l=e[0],O(l)||!O((e=>{if(P(e))return"null";if(T(e))return"array";if(et(e))return"object";const n=t(e);return(t=>t==r||t==s)(n)||n==a&&M(e)?n:void 0})(l))));var i,c,l},Qt=t=>T(t)&&2==D(t)&&qt(t[0])&&qt(t[1]),Xt=(t,e,r)=>(P(t)||L(t))&&N(e)&&M(e)&&_(e)&&((t,e)=>0==t?(t=>Qt(t)||Kt(t,3)||Kt(t,1)||T(t)&&2==D(t)&&Kt(t[0],3)&&(Gt(t[1],0)||Gt(t[1],1)))(e):1==t?e===n:2==t?Qt(e):3==t?(t=>T(t)&&(2==D(t)||3==D(t)&&1===t[2])&&Kt(t[0],3)&&Kt(t[1],1))(e):4==t?Gt(e,0):5==t?Gt(e,1):6==t?Gt(e,2):7==t&&Gt(e,0))(e,r),Yt=(t,e=!1)=>Et(()=>{const n=Dt(Tt(t));return T(n)&&3==D(n)&&(Xt(n[0],n[1],n[2])||e&&(P(n[0])||L(n[0]))&&-1==n[1])?n:void 0}),te=(t,e)=>{const n=t.indexOf(Ut);return-1!==n&&(e(z(t,0,n),z(t,n+1)),!0)},ee=(t,e)=>(t.bufferedAmount??0)+e>Zt,ne=(t,e=1,n,r)=>((t,e=1,n,r)=>{const s=ft(),a=r??[0,0];let o=0,i=!0;const c=(t,e)=>{b(e[4]),o-=e[5],a[0]--,a[1]-=e[5],X(s,t)},l=()=>{vt(s,(t,e)=>b(e[4])),a[0]-=q(s),a[1]-=o,s.clear(),o=0},u=(t=Mt(14))=>{i&&(i=!1,l(),n?.(t))};return[n=>{i&&(Ft(Bt(n))?u(Mt(Ct,d(n,jt)?"fragments":"socket")):te(n,(n,r)=>{const i=Yt(r);if(i)return void t(n,[r],...i);const[,l,f,y,v]=d(r,Wt)??[];if(l){const i=parseInt(f),d=parseInt(y);if(d>1e3)return void u(Mt(Ct,"fragments"));if(d>0&&i>=0&&i<d){const f=n+Ut+l;let y=yt(s,f);if(!y&&a[0]>=100)return void u(Mt(Ct,"fragments"));if(!O(y)&&d!=y[3]||!O(y?.[0][i]))return void u();{const t=Bt(r)+(y?0:Bt(f));if(a[1]+t>Zt)return void u(Mt(Ct,"fragments"));y||(y=[[],[],d,d,h(()=>{const t=yt(s,f);t&&c(f,t)},e),0],wt(s,f,y),a[0]++);const[n,l]=y;n[i]=v,l[i]=r,y[2]--,y[5]+=t,o+=t,a[1]+=t}if(0==y[2]){const[e,r]=y;c(f,y),((e,n,r)=>{const s=Yt(r);s?t(e,n,...s):u()})(n,r,V(e))}return}}u()})||u())},l]})((e,n,r,s,a)=>t(e,r,s,a),e,n,r),re=(t,e)=>t+Ut+e,se=(t,e)=>re("M",re(t,e)),ae=(t,e,n)=>re("S",zt([t,-1,[e,n]])),oe=t=>Bt(t)>1024,ie=t=>{return!x(t)&&!Vt.test(t)&&(e=t=>!x(t)&&"."!=t&&".."!=t,f(t,"/").every(e));var e},ce=t=>!oe(t)&&ie(t),le=(t,e,r,s,a)=>{const o=t??n,i=zt([e,r,s]),c=A(a??0);if(O(a)||c<1)return[re(o,i)];const l=((t,e)=>{const r=[];let s=n,a=0;for(let o=0;o<D(t);o++){const i=t.charCodeAt(o);let c=z(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=z(t,++o,o+1));const l=Bt(c);a>0&&a+l>e&&($(r,s),s=n,a=0),s+=c,a+=l}return $(r,s),r})(i,p(c,m(Bt(i)/1e3)+3)),u=D(l);if(1==u)return[re(o,i)];const d=At();return Z(l,(t,e)=>re(o,V([d,e,u,t],Ut)))},ue=(t,e)=>e?[t,e]:[t],de=(t,e)=>((t??n)>(e??n)?t:e)??n,fe=(t="")=>ue(ot(),t),ye=/^\d+$/,ve=ft(),we=ft(),ge=ft();ft();const he=(t,e,r,s,a,o,i,c,l={},u=R)=>{let d,f=0,y=0,v=0,w=!1;const g=ft(),S=()=>At(11),p=t=>vt(g,(e,[,,n,r])=>{b(r),X(g,e),n(t)}),m=(t,n,r,s)=>{y++,o?.(t,n,r,s),e(t,n,r,s)},A=async(t,e,r,s)=>U((o,i)=>{if(q(g)>=100)return void i(Mt(Ct,"requests"));const c=s+"."+At(4),l=h(()=>{X(g,c),i(Mt(3,(t??n)+"."+c+"."+e))},a);wt(g,c,[t,(t,e)=>{b(l),X(g,c),o([t,e,s])},i,l]);try{m(t,c,e,r)}catch(t){b(l),X(g,c),i(t)}}),C=(t,[e,n])=>{it(e,([e,n],r)=>{const s=ut(t[0],r,fe);it(e,([t,e],n)=>{const r=ut(s[0],n,fe);it(t,([t,e],n)=>at(r[0],n,ue(t,e))),r[1]=de(r[1],e)}),s[1]=de(s[1],n)}),t[1]=de(t[1],n)},M=(e=null,r,s=S())=>Ot(async()=>{O(r)&&([r,e,s]=await A(null,1,n,s));const[a,o]=r,[i,c]=t.getMergeableContentHashes();let l=fe();if(i!=a){const[n,r]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=n,!lt(r)){const[n,a]=(await A(e,5,t.getMergeableRowHashes(r),s))[0];if(C(l,n),!lt(a)){const n=(await A(e,6,t.getMergeableCellHashes(a),s))[0];C(l,n)}}}return[l,c==o?fe():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},c),_=((t,e,r,s,a,o,i,c={},l=0,u=[])=>{let d,f,y,v,w,g=0,h=0,b=0,S=0,p=0,m=0,A=0,C=0,M=0;const _={},E=c.destroy;gt(ve,u,()=>0),gt(we,u,()=>[]),wt(ge,u,(yt(ge,u)??0)+1);const H=ft(),[L,N,z,R,W]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!lt(t)||!lt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!lt(t)||!lt(e),e.setContent]:_t(0))(i,t,l),[V,B,q]=(t=>{let e;const[r,s]=(()=>{const t=[];let e=0;return[r=>(r?t.shift():null)??n+e++,e=>{I(ye,e)&&D(t)<1e3&&$(t,e)}]})(),a=ft(),o=(t,r,s,o)=>{let i,c=!1;if(j(((t,e=[n])=>{const r=[],s=(t,n)=>n==D(e)?$(r,t):P(e[n])?Q(t,t=>s(t,n+1)):j([e[n],null],e=>s(yt(t,e),n+1));return s(t,0),r})(r,s),n=>Q(n,n=>{const r=()=>yt(a,n)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(r):r()})),c)throw i};return[(s,o,i,c=[],l=()=>[])=>{e??=t();const u=r(1);var d,f;return wt(a,u,[s,o,i,c,l]),d=ht(o,i??[n],Lt),f=u,d?.add(f),u},(t,e,...n)=>o(!1,t,e,n),t=>k(yt(a,t),([,e,r])=>(ht(e,r??[n],void 0,e=>(X(e,t),K(e)?1:0)),wt(a,t),s(t),r)),t=>k(yt(a,t),([t,,n=[],r,s])=>{const a=(...o)=>{const i=D(o);i==D(n)?t(e,...o,...s(o)):P(n[i])?j(r[i]?.(...o)??[],t=>a(...o,t)):a(...o,n[i])};a()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>pt),G=t=>{t!=g&&(g=t,B(H,void 0,g))},Y=()=>{yt(ge,u)||yt(ve,u)||!x(yt(we,u)??[])||(wt(ve,u),wt(we,u),wt(ge,u))},tt=e=>{(L&&T(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},et=async()=>{vt()&&t.__?.[0]?.()&&await ct()},nt=t=>kt(()=>f=t,()=>{f==t&&(f=void 0)}),st=async t=>(2!=g&&(await kt(async()=>{G(1),h++,await St(()=>Ot(async()=>{const n=await e();T(n)?tt(n):O(n)&&t?W(t):O(n)||_t(1,n)},e=>{o?.(e),t&&W(t)}))},()=>G(0)),await et()),pt),at=async()=>{const t=A;A=0,t&&t==S&&!M&&(2==g?A=t:await st())},ot=async t=>{const e=++S;let n=!0;if(await it(!0),e==S&&!M){const r=Ot(async()=>{const t=await s(async(t,r)=>{if(e==S&&!M)if(r||t){const e=n||2==g||!!m;p++,e&&m++,await kt(async()=>{G(1),h++,await(e?St(()=>tt(r??t)):Ht(()=>tt(r??t),()=>G(0)))},()=>{e&&m--,--p||G(0)}),p||await et()}else 2==g?A=e:await st()});e!=S||M?O(t)||await a(t):d=t},o);await nt(r),e!=S||M||await kt(()=>st(t),()=>{n=!1})}return pt},it=async(t=!1)=>{A=0,t||S++;const e=f,n=d;return d=void 0,await nt(kt(async()=>{await e},async()=>{O(n)||await Ot(()=>a(n),o)})),pt},ct=async t=>(1!=g&&await kt(()=>kt(async()=>{G(2),b++,await St(()=>Ot(()=>r(N,t),o))},()=>G(0)),at),pt),ut=async()=>{const e=++C;return await dt(!0),e!=C||M||(await ct(),e!=C||M||(y=t.addDidFinishTransactionListener(()=>{if(e==C&&!M){const t=z();R(t)&&Ot(()=>ct(t))}}))),pt},dt=async(e=!1)=>{e||C++;const n=y;return y=void 0,O(n)||t.delListener(n),pt},vt=()=>!O(y),bt=async(t=!1)=>{const[e,n]=t?[dt,it]:[it,dt];return await kt(()=>e(),async()=>{await n()}),pt},St=async(...t)=>{let e,n=!1;const r=U(r=>x(t)?r():$(yt(we,u),...Z(t,(s,a)=>{const i=a==D(t)-1;return[async()=>{let t;w=U(e=>t=e),await kt(async()=>{try{await Ot(s,o)}catch(t){n||(n=!0,e=t)}i&&r()},()=>{w=void 0,t()})},i?r:void 0,_]})));if(await(async()=>{if(!yt(ve,u)){wt(ve,u,1);const t=yt(we,u);let e=0;await kt(async()=>{for(;e<D(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{J(t,e),wt(ve,u,0),Y()})}})(),await r,n)throw e;return pt},pt={load:st,startAutoLoad:ot,stopAutoLoad:it,isAutoLoading:()=>!O(d),save:ct,startAutoSave:ut,stopAutoSave:dt,isAutoSaving:vt,startAutoPersisting:async(t,e=!1)=>{const[n,r,s,a]=e?[ut,ot,dt,it]:[ot,ut,it,dt],o=n(t),i=e?C:S;await o;const c=r(t),l=e?S:C;try{await c}catch(t){throw l==(e?S:C)&&await Pt(a),i==(e?C:S)&&await Pt(s),t}return pt},stopAutoPersisting:bt,getStatus:()=>g,addStatusListener:t=>V(t,H),delListener:e=>(q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:h,saves:b}),...c,destroy:async()=>(O(v)&&(M=1,v=(async()=>{const t=yt(we,u),e=F(t,([,t,e])=>e!=_||(t?.(),!1)),n=w;J(t),$(t,...e),await kt(()=>kt(()=>kt(bt,()=>n),()=>E?.()),()=>{const t=(yt(ge,u)??1)-1;wt(ge,u,t||void 0),Y()})})()),await v,pt)};return rt(pt)})(t,async()=>{const t=await M();return!t||lt(t[0][0])&<(t[1][0])?void 0:t},async(e,n)=>n?m(null,S(),3,n):m(null,S(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(f=1,await _.startAutoPersisting(t)),stopSync:async()=>(f=0,await _.stopAutoPersisting(),_),destroy:async()=>(w=!0,p(Mt(3,"destroyed")),u(),await _.stopSync(),s(),_),getSynchronizerStats:()=>({sends:y,receives:v}),...l},1);return r((e,n,r,s)=>{if(w)return;if(!Xt(n,r,s))return void c?.(Mt(14));const a=f||_.isAutoLoading();v++,i?.(e,n,r,s),0==r?k(yt(g,n),([t,n])=>P(t)||t==e?n(s,e):0):2==r&&a?M(e,s,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==r&&a?d?.(void 0,s):k(1==r&&(f||_.isAutoSaving())?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(s):5==r?t.getMergeableRowDiff(s):6==r?t.getMergeableCellDiff(s):7==r?t.getMergeableValueDiff(s):void 0,t=>{m(e,n,0,t)})},p),_},be=new WeakMap,Se=new WeakSet,pe=()=>{let t,e;const n=U((n,r)=>{t=n,e=r});return n.catch(()=>0),[n,t,e]},me=async(t,e,r=1,...s)=>L(r)?(async(t,e,r,s,a,d,f,y)=>{Se.has(e)&&_t(9);const v=be.get(e),w=v??(()=>{const t=(t=>{const e=ft(),r=ft(),s=[];let a,d,f=pe(),y=!1,v=!1,w=!1,g=()=>{},p=!1,m=0,A=0,C=!0;const M=(t,e)=>Et(()=>t[6]?.(e)),_=t=>vt(e,(e,n)=>M(n,t)),E=(e,n)=>{M(e,n),g(),Et(()=>t.close())},O=(e,n)=>$(s,S(t,e,n)),H=t=>vt(r,(e,[,,,n,s])=>{b(s),X(r,e),n(t)}),k=t=>vt(e,(e,n)=>Et(()=>n[11]?.(t))),N=t=>{j(t[1],([,t])=>b(t)),m-=D(t[1]),A-=t[8],J(t[1]),t[8]=0},x=(t,e=!1)=>{j(t[2],([,t])=>b(t)),m-=t[10],A-=t[9],J(t[2]),t[9]=0,t[10]=0,e&&(t[7]=void 0)},I=t=>t[0]?.[1](),R=()=>vt(e,(t,e)=>I(e)),V=$t(t,_),Z=t=>{C&&(C=!1,w=!0,y=!1,R(),f[2](t),H(t),k(t),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0,e[12]=void 0}),a&&(b(a),a=void 0),V(t))},Q=n=>{const r=Mt(Ct,n);return p||v||(p=!0,C=!1,y=!1,R(),_(r),H(r),k(r),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0,e[12]=void 0}),a&&(b(a),a=void 0),t.close(1013,r.message)),r},Y=(e,n,s,a)=>{const o=At();return U((i,c)=>{if(q(r)>=100)return void c(Q("controls"));const l=ae(o,e,n),u=Bt(l);if(Ft(u)||ee(t,u))return void c(Q("socket"));const d=h(()=>{X(r,o),c(Mt(4,e))},s);wt(r,o,[e,n,i,c,d]);try{t.send(l),a?.()}catch(t){b(d),X(r,o),c(t)}})},tt=t=>B(t,(t,e)=>t+Bt(e),0),et=(t,e)=>{const n=tt(e);if(m+D(e)>1e3||A+n>Zt)return Q("client"),!1;const r=[e,h(()=>((t,e)=>{const n=W(t[2],e);if(n>-1){t[2]=F(t[2],(t,e)=>e!=n);const r=z(e[0],e[2]),s=tt(r);t[9]-=s,t[10]-=D(r),m-=D(r),A-=s}})(t,r),t[5]),0];return $(t[2],r),t[9]+=n,t[10]+=D(e),m+=D(e),A+=n,!0},nt=()=>{a??=h(()=>{a=void 0,vt(e,st)},.01)},rt=(e,n,r,s)=>{if(t.readyState!=t.OPEN)return s?n[7]=s:et(n,r),!1;for(let a=0;a<D(r);a++){const o=se(e,r[a]),i=Bt(o);if(Ft(i))return Q("client"),!1;if(ee(t,i)){if(s)n[7]=s;else if(!et(n,z(r,a)))return!1;return nt(),!1}try{t.send(o)}catch(t){if(s)n[7]=s;else if(!et(n,z(r,a)))return!1;return E(n,t),!1}}return!0},st=(e,r)=>{if(!y||!r[3])return;const s=r[2];let a=0;for(;a<D(s);){const o=s[a],i=o[0];let c=o[2];for(;c<D(i);){const l=i[c],u=se(e,l),d=Bt(u);if(Ft(d))return J(s,a),void Q("client");if(ee(t,d))return J(s,a),void nt();try{t.send(u)}catch(t){return void E(r,t)}i[c]=n,o[2]=++c;const f=Bt(l);r[9]-=f,r[10]--,A-=f,m--}b(o[1]),a++}J(s,a);const o=r[7];o&&(r[7]=void 0,rt(e,r,o(),o))},at=async(t,n,r)=>{if(!n[3]){let s=n[4];const a=f;if(s?.[0]!==a){const o=(async()=>{await a[0],yt(e,t)===n&&f===a&&y&&(await Y(Jt.Subscribe,t,r,()=>{yt(e,t)===n&&f===a&&y&&(n[12]=a)}),yt(e,t)===n&&f===a&&y&&(n[3]=!0,st(t,n)))})();s=[a,o],n[4]=s}try{await s[1]}finally{n[4]===s&&(n[4]=void 0)}}},ot=()=>{if(v||!C||y||d?.[0]===f)return;w=!1,p=!1;const t=f,n=(async()=>{try{await Y(Jt.Hello,1,(()=>{let t=!0,n=1;return vt(e,(e,r)=>{const s=r[5];(t||s<n)&&(t=!1,n=s)}),n})()),f===t&&C&&!v&&(y=!0,t[1](),vt(e,(t,e)=>at(t,e,e[5]).catch(t=>t.message==Mt(5).message?0:M(e,t))))}catch(e){t[2](e),e.message!=Mt(5).message&&_(e)}})();d=[t,n],n.finally(()=>{d?.[1]===n&&(d=void 0)})};g=()=>{if(!v&&!w){w=!0;const t=p;p=!1,y=!1;const n=Mt(5);t||_(n),f[2](n),H(n),k(n),a&&(b(a),a=void 0),f=pe(),vt(e,(t,e)=>{I(e),e[3]=!1,e[4]=void 0,e[12]=void 0})}};const it=g;O(l,({data:t})=>{if(!C)return;const n=t.toString(o);if(Ft(Bt(n)))return void Z(Mt(Ct,"socket"));const s=(t=>{let e=!1;return te(t,(t,n)=>{if("S"==t){const[t,s,a]=Yt(n,!0)??[],o=a?.[0],i=a?.[1];-1==s&&T(a)&&2==D(a)&&(0==o?L(t)&&1==i:1==o?L(t)&&L(i)&&(oe(i)||ie(i)):2==o&&P(t)&&L(i)&&(oe(i)||ie(i)))&&(e=!0,((t,e,n)=>{if((e==Jt.Subscribe||e==Jt.Unsubscribe)&&L(n)&&!ce(n))return void Q("channels");const s=t?yt(r,t):void 0;s?.[0]==e&&s[1]===n&&(b(s[4]),X(r,t),s[2]())})(t,o,i))}}),e})(n),a=(t=>{let n=!1;return te(t,(t,r)=>{"M"==t&&te(r,(t,r)=>{oe(t)?(n=!0,Q("channels")):ie(t)&&(n=!0,((t,n)=>{const r=yt(e,t);r?r[0]?r[0][0](n):((t,e)=>{const n=Bt(e);if(m>=1e3||A+n>Zt)return void Q("client");const r=[e,h(()=>((t,e)=>{const n=W(t[1],e);if(n>-1){t[1]=F(t[1],(t,e)=>e!=n);const r=Bt(e[0]);t[8]-=r,m--,A-=r}})(t,r),t[5])];$(t[1],r),t[8]+=n,m++,A+=n})(r,n):Z(Mt(14))})(t,r))})}),n})(n);s||a||Z(Mt(14))}),O(i,ot),O(c,it),O(u,t=>{_(t),k(Mt(5))});const ct=()=>{if(K(e)&&!v){v=!0;const e=C&&!p;C=!1,R();const n=Mt(8);H(n),a&&(b(a),a=void 0),j(s,t=>Et(t)),J(s),be.delete(t),e&&Et(()=>t.close())}},lt=n=>{const r=yt(e,n);if(r)try{if(I(r),N(r),x(r,!0),y&&r[12]===f){const e=ae(null,Jt.Unsubscribe,n),r=Bt(e);Ft(r)||ee(t,r)?Q("socket"):t.send(e)}}catch(t){M(r,t)}finally{X(e,n),ct()}};return{addChannel:async(n,r,s)=>{C&&!v||_t(5),ce(n)||_t(6,n),G(e,n)&&_t(7,n),q(e)>=100&&_t(Ct,"channels");const a=[void 0,[],[],!1,void 0,r,s,void 0,0,0,0,void 0,void 0];if(wt(e,n,a),t.readyState==t.OPEN)ot();else if(t.readyState>t.OPEN){const t=Mt(5);M(a,t),f[2](t)}try{await at(n,a,r)}catch(t){throw lt(n),t}},delChannel:lt,destroyIfEmpty:ct,invalid:Z,payloadBuffer:[0,0],registerReceive:(t,n,r)=>{const s=yt(e,t);if(s){s[0]=n,s[11]=r;const t=s[1];let e=0;Ht(()=>{for(;e<D(t);){const[r,a]=t[e];b(a);const o=Bt(r);s[8]-=o,m--,A-=o,e++,n[0](r)}},()=>J(t,e))}},send:(n,r,s)=>{if(!C)return;const a=yt(e,n);a&&(y&&t.readyState==t.OPEN&&a[3]&&!D(a[2])&&!a[7]?rt(n,a,r,s):s?a[7]=s:et(a,r))}}})(e);return be.set(e,t),t})();try{await w.addChannel(r,s,f)}catch(t){throw v||w.destroyIfEmpty(),t}try{return he(t,(e,n,s,a)=>w.send(r,le(e,n,s,a,y),null!=e||2!=s&&3!=s?void 0:()=>le(null,n,2,t.getMergeableContentHashes(),y)),(t,e)=>w.registerReceive(r,ne(t,s,w.invalid,w.payloadBuffer),e),()=>w.delChannel(r),s,a,d,f,{getWebSocket:()=>e})}catch(t){throw w.delChannel(r),t}})(t,e,r,s[0]??1,s[1],s[2],s[3],s[4]):(async(t,e,n=1,r,s,a,d)=>{be.has(e)&&_t(10);let f=!0,y=!1,v=()=>{};const w=t=>Et(()=>a?.(t)),g=he(t,(t,...n)=>{j(le(t,...n,d),t=>{if(y)return;const n=Bt(t);Ft(n)||ee(e,n)?(()=>{if(!y){y=!0;const t=Mt(Ct,"socket");w(t),e.close(1013,t.message)}})():e.send(t)})},(t,r)=>{const s=$t(e,w),[a,i]=ne(t,n,s);let d=[];v=()=>{i(),j(d,t=>Et(t)),J(d)};const y=()=>{Et(()=>r(Mt(5))),v()};d=[S(e,l,({data:t})=>a(t.toString(o))),S(e,c,()=>{f||y()}),S(e,u,t=>{f||(w(t),y())})]},()=>{v(),e.close()},n,r,s,a,{getWebSocket:()=>e});return Se.add(e),U((t,n)=>{let r=()=>{};const s=(t,s=t)=>{w(s),r(),v(),Se.delete(e),Et(()=>e.close()),n(t)};if(e.readyState!=e.OPEN){if(e.readyState>e.OPEN)return void s(Mt(5));const n=[S(e,i,()=>{f=!1,r(),t(g)}),S(e,u,t=>s(Mt(5),t)),S(e,c,()=>s(Mt(5)))];r=()=>{j(n,t=>Et(t)),J(n)}}else f=!1,t(g)})})(t,e,r,s[0],s[1],s[2],s[3]);export{me as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,e="tinybase",n="",r=t(n),s=t(!0),a=t(0),o="utf8",i="open",c="close",l="message",u="error",d=(t,e)=>t?.match(e),f=(t,e="",n)=>t.split(e,n),y=Promise,v=Math,w=t=>(e,n,r)=>t(e)?r?.():n(e),g=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),b=t=>clearTimeout(t),S=(t,e,n)=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),m=v.max,p=v.ceil,A=v.floor,C=v.random,M=isFinite,_=Number.isInteger,E=t=>null==t,O=t=>void 0===t,P=t=>null===t,H=w(E),k=w(O),L=e=>t(e)==r,N=e=>t(e)==a,T=t=>Array.isArray(t),z=(t,e,n)=>t.slice(e,n),D=t=>t.length,x=t=>0==D(t),I=(t,e)=>t.test(e),R=()=>{},W=t=>new y(t),U=(t,e)=>t.indexOf(e),j=(t,e)=>t.forEach(e),V=(t,e="")=>t.join(e),Z=(t,e)=>t.map(e),F=(t,e,n)=>t.reduce(e,n),J=(t,e)=>t.filter(e),$=(t,e=D(t))=>t.splice(0,e),q=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>O(t)||0==B(t),Q=(t,e)=>t?.forEach(e),X=(t,e)=>t?.delete(e),Y=Object,tt=t=>Y.getPrototypeOf(t),et=t=>!E(t)&&H(tt(t),t=>t==Y.prototype||E(tt(t)),()=>!0),nt=Y.keys,rt=Y.freeze,st=(t,e)=>Y.hasOwn(t,e),at=(t,e,n)=>(Y.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ot=(t=[])=>{const e=Y.create(null);return j(t,([t,n])=>at(e,t,n)),e},it=(t,e)=>j(nt(t),n=>e(t[n],n)),ct=(t,e)=>{for(const n in t)if(st(t,n)&&!e(t[n],n))return!1;return!0},lt=t=>et(t)&&0==(t=>D(nt(t)))(t),ut=(t,e,n)=>(st(t,e)||at(t,e,n()),t[e]),dt=Map,ft=t=>new dt(t),yt=(t,e)=>t?.get(e),vt=(t,e)=>Q(t,(t,n)=>e(n,t)),wt=(t,e,n)=>O(n)?(X(t,e),t):t?.set(e,n),gt=(t,e,n,r)=>{let s=yt(t,e);return G(t,e)?r?.(s):wt(t,e,s=n()),s},ht=(t,e,n,r,s=0)=>k((n?gt:yt)(t,e[s],s>D(e)-2?n:ft),a=>{if(s>D(e)-2)return r?.(a)&&wt(t,e[s]),a;const o=ht(a,e,n,r,s+1);return K(a)&&wt(t,e[s]),o}),bt=f("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),St=ft(Z(bt,(t,e)=>[t,e])),mt=(t,e)=>yt(St,t[e])??0,pt=g.crypto?t=>g.crypto.getRandomValues(t):t=>Z(t,()=>A(256*C())),At=(t=16)=>F(pt(new Uint8Array(t)),(t,e)=>t+bt[63&e],n),Ct=15,Mt=(t,r)=>Error(e+":"+t+(O(r)?n:":"+r)),_t=(t,e)=>{throw Mt(t,e)},Et=(t,e)=>{try{return t()}catch{return e}},Ot=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Pt=(t,e)=>{try{return t()}finally{e()}},Ht=async(t,e)=>{try{return await t()}finally{await e()}},kt=t=>new Set(T(t)||O(t)?t:[t]),Lt=JSON.stringify,Nt=JSON.parse,Tt=t=>Lt(t,(t,e)=>O(e)?"":e),zt=t=>""===t?void 0:T(t)?Z(t,zt):et(t)?((t,e)=>{const n=ot();return it(t,(t,r)=>at(n,r,e(t,r))),n})(t,zt):t;new g.TextEncoder;const Dt=2**36,xt=2**30,It=/^[-0-9A-Z_a-z]{16}$/,Rt="\n",Wt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Ut=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,jt=/[\n\r?#]/,Vt=16777216,Zt=t=>{let e=0;for(let n=0;n<D(t);n++){const r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Ft=t=>t>Vt;var Jt=(t=>(t[t.Hello=0]="Hello",t[t.Subscribe=1]="Subscribe",t[t.Unsubscribe=2]="Unsubscribe",t))(Jt||{});const $t=(t,n)=>{let r=!0;return s=>{r&&(r=!1,Pt(()=>n?.(s),()=>{return t.close((n=s.message,r=e+":"+Ct,n.startsWith(r)?1013:1007),s.message);var n,r}))}},qt=t=>N(t)&&M(t)&&_(t)&&t>=0&&t<=4294967295,Bt=(t,e)=>et(t)&&ct(t,t=>e?Bt(t,e-1):qt(t)),Gt=(e,o)=>{return T(e)&&(1==D(e)||2==D(e)&&L(e[1])&&(c=1/0,(i=e[1])==n||L(i)&&I(It,i)&&(t=>mt(t,0)*Dt+mt(t,1)*xt+16777216*mt(t,2)+262144*mt(t,3)+4096*mt(t,4)+64*mt(t,5)+mt(t,6))(i)<=c))&&(o?et(e[0])&&ct(e[0],t=>Gt(t,o-1)):(l=e[0],O(l)||!O((e=>{if(P(e))return"null";if(T(e))return"array";if(et(e))return"object";const n=t(e);return(t=>t==r||t==s)(n)||n==a&&M(e)?n:void 0})(l))));var i,c,l},Kt=t=>T(t)&&2==D(t)&&qt(t[0])&&qt(t[1]),Qt=(t,e,r)=>(P(t)||L(t))&&N(e)&&M(e)&&_(e)&&((t,e)=>0==t?(t=>Kt(t)||Gt(t,3)||Gt(t,1)||T(t)&&2==D(t)&&Gt(t[0],3)&&(Bt(t[1],0)||Bt(t[1],1)))(e):1==t?e===n:2==t?Kt(e):3==t?(t=>T(t)&&(2==D(t)||3==D(t)&&1===t[2])&&Gt(t[0],3)&&Gt(t[1],1))(e):4==t?Bt(e,0):5==t?Bt(e,1):6==t?Bt(e,2):7==t&&Bt(e,0))(e,r),Xt=(t,e=!1)=>Et(()=>{const n=zt(Nt(t));return T(n)&&3==D(n)&&(Qt(n[0],n[1],n[2])||e&&(P(n[0])||L(n[0]))&&-1==n[1])?n:void 0}),Yt=(t,e)=>{const n=t.indexOf(Rt);return-1!==n&&(e(z(t,0,n),z(t,n+1)),!0)},te=(t,e)=>(t.bufferedAmount??0)+e>Vt,ee=(t,e=1,n)=>((t,e=1,n)=>{const r=ft();let s=0,a=!0;const o=(t,e)=>{b(e[4]),s-=e[5],X(r,t)},i=(t=Mt(14))=>{a&&(a=!1,vt(r,(t,e)=>b(e[4])),r.clear(),s=0,n?.(t))};return n=>{a&&(Ft(Zt(n))?i(Mt(Ct,d(n,Ut)?"fragments":"socket")):Yt(n,(n,a)=>{const c=Xt(a);if(c)return void t(n,[a],...c);const[,l,u,f,y]=d(a,Wt)??[];if(l){const c=parseInt(u),d=parseInt(f);if(d>1e3)return void i(Mt(Ct,"fragments"));if(d>0&&c>=0&&c<d){const u=n+Rt+l;let f=yt(r,u);if(!f){if(B(r)>=100)return void i(Mt(Ct,"fragments"));f=[[],[],d,d,h(()=>{const t=yt(r,u);t&&o(u,t)},e),0],wt(r,u,f)}const[v,w]=f;if(d!=f[3]||!O(v[c]))return void i();{const t=Zt(y);if(s+t>Vt)return void i(Mt(Ct,"fragments"));v[c]=y,w[c]=a,f[2]--,f[5]+=t,s+=t}return void(0==f[2]&&(o(u,f),((e,n,r)=>{const s=Xt(r);s?t(e,n,...s):i()})(n,w,V(v))))}}i()})||i())}})((e,n,r,s,a)=>t(e,r,s,a),e,n),ne=(t,e)=>t+Rt+e,re=(t,e)=>ne("M",ne(t,e)),se=(t,e,n)=>ne("S",Tt([t,-1,[e,n]])),ae=t=>{return!x(t)&&!jt.test(t)&&(e=t=>!x(t)&&"."!=t&&".."!=t,f(t,"/").every(e));var e},oe=(t,e,r,s,a)=>{const o=t??n,i=Tt([e,r,s]),c=A(a??0);if(O(a)||c<1)return[ne(o,i)];const l=((t,e)=>{const r=[];let s=n,a=0;for(let o=0;o<D(t);o++){const i=t.charCodeAt(o);let c=z(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=z(t,++o,o+1));const l=Zt(c);a>0&&a+l>e&&(q(r,s),s=n,a=0),s+=c,a+=l}return q(r,s),r})(i,m(c,p(Zt(i)/1e3)+3)),u=D(l);if(1==u)return[ne(o,i)];const d=At();return Z(l,(t,e)=>ne(o,V([d,e,u,t],Rt)))},ie=(t,e)=>e?[t,e]:[t],ce=(t,e)=>((t??n)>(e??n)?t:e)??n,le=(t="")=>ie(ot(),t),ue=/^\d+$/,de=ft(),fe=ft(),ye=ft();ft();const ve=(t,e,r,s,a,o,i,c,l={},u=R)=>{let d,f=0,y=0,v=0,w=!1;const g=ft(),S=()=>At(11),m=t=>vt(g,(e,[,,n,r])=>{b(r),X(g,e),n(t)}),p=(t,n,r,s)=>{y++,o?.(t,n,r,s),e(t,n,r,s)},A=async(t,e,r,s)=>W((o,i)=>{if(B(g)>=100)return void i(Mt(Ct,"requests"));const c=s+"."+At(4),l=h(()=>{X(g,c),i(Mt(3,(t??n)+"."+c+"."+e))},a);wt(g,c,[t,(t,e)=>{b(l),X(g,c),o([t,e,s])},i,l]);try{p(t,c,e,r)}catch(t){b(l),X(g,c),i(t)}}),C=(t,[e,n])=>{it(e,([e,n],r)=>{const s=ut(t[0],r,le);it(e,([t,e],n)=>{const r=ut(s[0],n,le);it(t,([t,e],n)=>at(r[0],n,ie(t,e))),r[1]=ce(r[1],e)}),s[1]=ce(s[1],n)}),t[1]=ce(t[1],n)},M=(e=null,r,s=S())=>Ot(async()=>{O(r)&&([r,e,s]=await A(null,1,n,s));const[a,o]=r,[i,c]=t.getMergeableContentHashes();let l=le();if(i!=a){const[n,r]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=n,!lt(r)){const[n,a]=(await A(e,5,t.getMergeableRowHashes(r),s))[0];if(C(l,n),!lt(a)){const n=(await A(e,6,t.getMergeableCellHashes(a),s))[0];C(l,n)}}}return[l,c==o?le():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},c),_=((t,e,r,s,a,o,i,c={},l=0,u=[])=>{let d,f,y,v,w,g=0,h=0,b=0,S=0,m=0,p=0,A=0,C=0,M=0;const _={},E=c.destroy;gt(de,u,()=>0),gt(fe,u,()=>[]),wt(ye,u,(yt(ye,u)??0)+1);const H=ft(),[L,N,z,R,U]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!lt(t)||!lt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!lt(t)||!lt(e),e.setContent]:_t(0))(i,t,l),[V,F,B]=(t=>{let e;const[r,s]=(()=>{const t=[];let e=0;return[r=>(r?t.shift():null)??n+e++,e=>{I(ue,e)&&D(t)<1e3&&q(t,e)}]})(),a=ft(),o=(t,r,s,o)=>{let i,c=!1;if(j(((t,e=[n])=>{const r=[],s=(t,n)=>n==D(e)?q(r,t):P(e[n])?Q(t,t=>s(t,n+1)):j([e[n],null],e=>s(yt(t,e),n+1));return s(t,0),r})(r,s),n=>Q(n,n=>{const r=()=>yt(a,n)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(r):r()})),c)throw i};return[(s,o,i,c=[],l=()=>[])=>{e??=t();const u=r(1);var d,f;return wt(a,u,[s,o,i,c,l]),d=ht(o,i??[n],kt),f=u,d?.add(f),u},(t,e,...n)=>o(!1,t,e,n),t=>k(yt(a,t),([,e,r])=>(ht(e,r??[n],void 0,e=>(X(e,t),K(e)?1:0)),wt(a,t),s(t),r)),t=>k(yt(a,t),([t,,n=[],r,s])=>{const a=(...o)=>{const i=D(o);i==D(n)?t(e,...o,...s(o)):P(n[i])?j(r[i]?.(...o)??[],t=>a(...o,t)):a(...o,n[i])};a()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>mt),G=t=>{t!=g&&(g=t,F(H,void 0,g))},Y=()=>{yt(ye,u)||yt(de,u)||!x(yt(fe,u)??[])||(wt(de,u),wt(fe,u),wt(ye,u))},tt=e=>{(L&&T(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},et=async()=>{vt()&&t.__?.[0]?.()&&await ct()},nt=t=>Ht(()=>f=t,()=>{f==t&&(f=void 0)}),st=async t=>(2!=g&&(await Ht(async()=>{G(1),h++,await St(()=>Ot(async()=>{const n=await e();T(n)?tt(n):O(n)&&t?U(t):O(n)||_t(1,n)},e=>{o?.(e),t&&U(t)}))},()=>G(0)),await et()),mt),at=async()=>{const t=A;A=0,t&&t==S&&!M&&(2==g?A=t:await st())},ot=async t=>{const e=++S;let n=!0;if(await it(!0),e==S&&!M){const r=Ot(async()=>{const t=await s(async(t,r)=>{if(e==S&&!M)if(r||t){const e=n||2==g||!!p;m++,e&&p++,await Ht(async()=>{G(1),h++,await(e?St(()=>tt(r??t)):Pt(()=>tt(r??t),()=>G(0)))},()=>{e&&p--,--m||G(0)}),m||await et()}else 2==g?A=e:await st()});e!=S||M?O(t)||await a(t):d=t},o);await nt(r),e!=S||M||await Ht(()=>st(t),()=>{n=!1})}return mt},it=async(t=!1)=>{A=0,t||S++;const e=f,n=d;return d=void 0,await nt(Ht(async()=>{await e},async()=>{O(n)||await Ot(()=>a(n),o)})),mt},ct=async t=>(1!=g&&await Ht(()=>Ht(async()=>{G(2),b++,await St(()=>Ot(()=>r(N,t),o))},()=>G(0)),at),mt),ut=async()=>{const e=++C;return await dt(!0),e!=C||M||(await ct(),e!=C||M||(y=t.addDidFinishTransactionListener(()=>{if(e==C&&!M){const t=z();R(t)&&Ot(()=>ct(t))}}))),mt},dt=async(e=!1)=>{e||C++;const n=y;return y=void 0,O(n)||t.delListener(n),mt},vt=()=>!O(y),bt=async(t=!1)=>{const[e,n]=t?[dt,it]:[it,dt];return await Ht(()=>e(),async()=>{await n()}),mt},St=async(...t)=>{let e,n=!1;const r=W(r=>x(t)?r():q(yt(fe,u),...Z(t,(s,a)=>{const i=a==D(t)-1;return[async()=>{let t;w=W(e=>t=e),await Ht(async()=>{try{await Ot(s,o)}catch(t){n||(n=!0,e=t)}i&&r()},()=>{w=void 0,t()})},i?r:void 0,_]})));if(await(async()=>{if(!yt(de,u)){wt(de,u,1);const t=yt(fe,u);let e=0;await Ht(async()=>{for(;e<D(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{$(t,e),wt(de,u,0),Y()})}})(),await r,n)throw e;return mt},mt={load:st,startAutoLoad:ot,stopAutoLoad:it,isAutoLoading:()=>!O(d),save:ct,startAutoSave:ut,stopAutoSave:dt,isAutoSaving:vt,startAutoPersisting:async(t,e=!1)=>{const[n,r]=e?[ut,ot]:[ot,ut];return await n(t),await r(t),mt},stopAutoPersisting:bt,getStatus:()=>g,addStatusListener:t=>V(t,H),delListener:e=>(B(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:h,saves:b}),...c,destroy:async()=>(O(v)&&(M=1,v=(async()=>{const t=yt(fe,u),e=J(t,([,t,e])=>e!=_||(t?.(),!1)),n=w;$(t),q(t,...e),await Ht(()=>Ht(()=>Ht(bt,()=>n),()=>E?.()),()=>{const t=(yt(ye,u)??1)-1;wt(ye,u,t||void 0),Y()})})()),await v,mt)};return rt(mt)})(t,async()=>{const t=await M();return!t||lt(t[0][0])&<(t[1][0])?void 0:t},async(e,n)=>n?p(null,S(),3,n):p(null,S(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(f=1,await _.startAutoPersisting(t)),stopSync:async()=>(f=0,await _.stopAutoPersisting(),_),destroy:async()=>(w=!0,m(Mt(3,"destroyed")),u(),await _.stopSync(),s(),_),getSynchronizerStats:()=>({sends:y,receives:v}),...l},1);return r((e,n,r,s)=>{if(w)return;if(!Qt(n,r,s))return void c?.(Mt(14));const a=f||_.isAutoLoading();v++,i?.(e,n,r,s),0==r?k(yt(g,n),([t,n])=>P(t)||t==e?n(s,e):0):2==r&&a?M(e,s,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==r&&a?d?.(void 0,s):k(1==r&&(f||_.isAutoSaving())?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(s):5==r?t.getMergeableRowDiff(s):6==r?t.getMergeableCellDiff(s):7==r?t.getMergeableValueDiff(s):void 0,t=>{p(e,n,0,t)})},m),_},we=new WeakMap,ge=new WeakSet,he=()=>{let t,e;const n=W((n,r)=>{t=n,e=r});return n.catch(()=>0),[n,t,e]},be=async(t,e,r=1,...s)=>L(r)?(async(t,e,r,s,a,d,f,y)=>{ge.has(e)&&_t(9);const v=we.get(e),w=v??(()=>{const t=(t=>{const e=ft(),r=ft(),s=[];let a,d,f=he(),y=!1,v=!1,w=!1,g=()=>{},m=!1,p=0,A=0;const C=(t,e)=>Et(()=>t[6]?.(e)),M=t=>vt(e,(e,n)=>C(n,t)),_=(e,n)=>{C(e,n),g(),Et(()=>t.close())},E=$t(t,M),O=(e,n)=>q(s,S(t,e,n)),H=t=>vt(r,(e,[,,n,s])=>{b(s),X(r,e),n(t)}),k=t=>vt(e,(e,n)=>Et(()=>n[11]?.(t))),N=t=>{j(t[1],([,t])=>b(t)),p-=D(t[1]),A-=t[8],$(t[1]),t[8]=0},x=(t,e=!1)=>{j(t[2],([,t])=>b(t)),p-=t[10],A-=t[9],$(t[2]),t[9]=0,t[10]=0,e&&(t[7]=void 0)},I=n=>{const r=Mt(Ct,n);return m||v||(m=!0,y=!1,M(r),H(r),k(r),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0}),a&&(b(a),a=void 0),t.close(1013,r.message)),r},R=(e,n,s)=>{const a=At();return W((o,i)=>{if(B(r)>=100)return void i(I("controls"));const c=se(a,e,n),l=Zt(c);if(Ft(l)||te(t,l))return void i(I("socket"));const u=h(()=>{X(r,a),i(Mt(4,e))},s);wt(r,a,[e,o,i,u]);try{t.send(c)}catch(t){b(u),X(r,a),i(t)}})},V=t=>F(t,(t,e)=>t+Zt(e),0),Z=(t,e)=>{const n=V(e);if(p+D(e)>1e3||A+n>Vt)return I("client"),!1;const r=[e,h(()=>((t,e)=>{const n=U(t[2],e);if(n>-1){t[2]=J(t[2],(t,e)=>e!=n);const r=z(e[0],e[2]),s=V(r);t[9]-=s,t[10]-=D(r),p-=D(r),A-=s}})(t,r),t[5]),0];return q(t[2],r),t[9]+=n,t[10]+=D(e),p+=D(e),A+=n,!0},Q=()=>{a??=h(()=>{a=void 0,vt(e,tt)},.01)},Y=(e,n,r,s)=>{if(t.readyState!=t.OPEN)return s?n[7]=s:Z(n,r),!1;for(let a=0;a<D(r);a++){const o=re(e,r[a]),i=Zt(o);if(Ft(i))return I("client"),!1;if(te(t,i)){if(s)n[7]=s;else if(!Z(n,z(r,a)))return!1;return Q(),!1}try{t.send(o)}catch(t){if(s)n[7]=s;else if(!Z(n,z(r,a)))return!1;return _(n,t),!1}}return!0},tt=(e,r)=>{if(!y||!r[3])return;const s=r[2];let a=0;for(;a<D(s);){const o=s[a],i=o[0];let c=o[2];for(;c<D(i);){const l=i[c],u=re(e,l),d=Zt(u);if(Ft(d))return $(s,a),void I("client");if(te(t,d))return $(s,a),void Q();try{t.send(u)}catch(t){return void _(r,t)}i[c]=n,o[2]=++c;const f=Zt(l);r[9]-=f,r[10]--,A-=f,p--}b(o[1]),a++}$(s,a);const o=r[7];o&&(r[7]=void 0,Y(e,r,o(),o))},et=async(t,n,r)=>{if(!n[3]){let s=n[4];s||(s=(async()=>{await f[0],await R(Jt.Subscribe,t,r),yt(e,t)===n&&y&&(n[3]=!0,tt(t,n))})(),n[4]=s);try{await s}finally{n[4]===s&&(n[4]=void 0)}}},nt=()=>{if(v||d?.[0]===f)return;w=!1,m=!1;const t=f,n=(async()=>{try{await R(Jt.Hello,1,(()=>{let t=!0,n=1;return vt(e,(e,r)=>{const s=r[5];(t||s<n)&&(t=!1,n=s)}),n})()),f===t&&(y=!0,t[1](),vt(e,(t,e)=>et(t,e,e[5]).catch(t=>t.message==Mt(5).message?0:C(e,t))))}catch(e){t[2](e),e.message!=Mt(5).message&&M(e)}})();d=[t,n],n.finally(()=>{d?.[1]===n&&(d=void 0)})};g=()=>{if(!v&&!w){w=!0;const t=m;m=!1,y=!1;const n=Mt(5);t||M(n),f[2](n),H(n),k(n),a&&(b(a),a=void 0),f=he(),vt(e,(t,e)=>{e[3]=!1,e[4]=void 0})}};const rt=g;O(l,({data:t})=>{const n=t.toString(o);if(Ft(Zt(n)))return void E(Mt(Ct,"socket"));const s=(t=>{let e=!1;return Yt(t,(t,n)=>{if("S"==t){const[t,s,a]=Xt(n,!0)??[],o=a?.[0],i=a?.[1];-1==s&&T(a)&&2==D(a)&&(0==o?L(t)&&1==i:1==o?L(t)&&L(i)&&ae(i):2==o&&P(t)&&L(i)&&ae(i))&&(e=!0,((t,e)=>{const n=t?yt(r,t):void 0;n?.[0]==e&&(b(n[3]),X(r,t),n[1]())})(t,o))}}),e})(n),a=(t=>{let n=!1;return Yt(t,(t,r)=>{"M"==t&&Yt(r,(t,r)=>{ae(t)&&(n=!0,((t,n)=>{const r=yt(e,t);r?r[0]?r[0](n):((t,e)=>{const n=Zt(e);if(p>=1e3||A+n>Vt)return void I("client");const r=[e,h(()=>((t,e)=>{const n=U(t[1],e);if(n>-1){t[1]=J(t[1],(t,e)=>e!=n);const r=Zt(e[0]);t[8]-=r,p--,A-=r}})(t,r),t[5])];q(t[1],r),t[8]+=n,p++,A+=n})(r,n):E(Mt(14))})(t,r))})}),n})(n);s||a||E(Mt(14))}),O(i,nt),O(c,rt),O(u,t=>{M(t),k(Mt(5))});const st=()=>{if(K(e)&&!v){v=!0;const e=Mt(8);H(e),a&&(b(a),a=void 0),j(s,t=>Et(t)),$(s),we.delete(t),m||Et(()=>t.close())}},at=n=>{const r=yt(e,n);if(r)try{if(N(r),x(r,!0),y&&r[3]){const e=se(null,Jt.Unsubscribe,n),r=Zt(e);Ft(r)||te(t,r)?I("socket"):t.send(e)}}catch(t){C(r,t)}finally{X(e,n),st()}};return{addChannel:async(n,r,s)=>{ae(n)||_t(6,n),G(e,n)&&_t(7,n);const a=[void 0,[],[],!1,void 0,r,s,void 0,0,0,0,void 0];if(wt(e,n,a),t.readyState==t.OPEN)nt();else if(t.readyState>t.OPEN){const t=Mt(5);C(a,t),f[2](t)}try{await et(n,a,r)}catch(t){throw at(n),t}},delChannel:at,destroyIfEmpty:st,invalid:E,registerReceive:(t,n,r)=>{const s=yt(e,t);if(s){s[0]=n,s[11]=r;const t=s[1];let e=0;Pt(()=>{for(;e<D(t);){const[r,a]=t[e];b(a);const o=Zt(r);s[8]-=o,p--,A-=o,e++,n(r)}},()=>$(t,e))}},send:(n,r,s)=>{const a=yt(e,n);a&&(y&&t.readyState==t.OPEN&&a[3]&&!D(a[2])&&!a[7]?Y(n,a,r,s):s?a[7]=s:Z(a,r))}}})(e);return we.set(e,t),t})();try{await w.addChannel(r,s,f)}catch(t){throw v||w.destroyIfEmpty(),t}try{return ve(t,(e,n,s,a)=>w.send(r,oe(e,n,s,a,y),null!=e||2!=s&&3!=s?void 0:()=>oe(null,n,2,t.getMergeableContentHashes(),y)),(t,e)=>w.registerReceive(r,ee(t,s,w.invalid),e),()=>w.delChannel(r),s,a,d,f,{getWebSocket:()=>e})}catch(t){throw w.delChannel(r),t}})(t,e,r,s[0]??1,s[1],s[2],s[3],s[4]):(async(t,e,n=1,r,s,a,d)=>{we.has(e)&&_t(10);let f=!0,y=!1,v=()=>{};const w=t=>Et(()=>a?.(t)),g=ve(t,(t,...n)=>{j(oe(t,...n,d),t=>{if(y)return;const n=Zt(t);Ft(n)||te(e,n)?(()=>{if(!y){y=!0;const t=Mt(Ct,"socket");w(t),e.close(1013,t.message)}})():e.send(t)})},(t,r)=>{const s=$t(e,w),a=ee(t,n,s);let i=[];v=()=>{j(i,t=>Et(t)),$(i)};const d=()=>{Et(()=>r(Mt(5))),v()};i=[S(e,l,({data:t})=>a(t.toString(o))),S(e,c,()=>{f||d()}),S(e,u,t=>{f||(w(t),d())})]},()=>{v(),e.close()},n,r,s,a,{getWebSocket:()=>e});return ge.add(e),W((t,n)=>{let r=()=>{};const s=(t,s=t)=>{w(s),r(),v(),ge.delete(e),Et(()=>e.close()),n(t)};if(e.readyState!=e.OPEN){if(e.readyState>e.OPEN)return void s(Mt(5));const n=[S(e,i,()=>{f=!1,r(),t(g)}),S(e,u,t=>s(Mt(5),t)),S(e,c,()=>s(Mt(5)))];r=()=>{j(n,t=>Et(t)),$(n)}}else f=!1,t(g)})})(t,e,r,s[0],s[1],s[2],s[3]);export{be as createWsSynchronizer};
|
|
1
|
+
const t=t=>typeof t,e="tinybase",n="",r=t(n),s=t(!0),a=t(0),o="utf8",i="open",c="close",l="message",u="error",d=(t,e)=>t?.match(e),f=(t,e="",n)=>t.split(e,n),y=Promise,v=Math,w=t=>(e,n,r)=>t(e)?r?.():n(e),g=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),b=t=>clearTimeout(t),S=(t,e,n)=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),p=v.max,m=v.ceil,A=v.floor,C=v.random,M=isFinite,_=Number.isInteger,E=t=>null==t,O=t=>void 0===t,P=t=>null===t,H=w(E),k=w(O),L=e=>t(e)==r,N=e=>t(e)==a,T=t=>Array.isArray(t),z=(t,e,n)=>t.slice(e,n),D=t=>t.length,x=t=>0==D(t),I=(t,e)=>t.test(e),R=()=>{},U=t=>new y(t),W=(t,e)=>t.indexOf(e),j=(t,e)=>t.forEach(e),V=(t,e="")=>t.join(e),Z=(t,e)=>t.map(e),B=(t,e,n)=>t.reduce(e,n),F=(t,e)=>t.filter(e),J=(t,e=D(t))=>t.splice(0,e),$=(t,...e)=>t.push(...e),q=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>O(t)||0==q(t),Q=(t,e)=>t?.forEach(e),X=(t,e)=>t?.delete(e),Y=Object,tt=t=>Y.getPrototypeOf(t),et=t=>!E(t)&&H(tt(t),t=>t==Y.prototype||E(tt(t)),()=>!0),nt=Y.keys,rt=Y.freeze,st=(t,e)=>Y.hasOwn(t,e),at=(t,e,n)=>(Y.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ot=(t=[])=>{const e=Y.create(null);return j(t,([t,n])=>at(e,t,n)),e},it=(t,e)=>j(nt(t),n=>e(t[n],n)),ct=(t,e)=>{for(const n in t)if(st(t,n)&&!e(t[n],n))return!1;return!0},lt=t=>et(t)&&0==(t=>D(nt(t)))(t),ut=(t,e,n)=>(st(t,e)||at(t,e,n()),t[e]),dt=Map,ft=t=>new dt(t),yt=(t,e)=>t?.get(e),vt=(t,e)=>Q(t,(t,n)=>e(n,t)),wt=(t,e,n)=>O(n)?(X(t,e),t):t?.set(e,n),gt=(t,e,n,r)=>{let s=yt(t,e);return G(t,e)?r?.(s):wt(t,e,s=n()),s},ht=(t,e,n,r,s=0)=>k((n?gt:yt)(t,e[s],s>D(e)-2?n:ft),a=>{if(s>D(e)-2)return r?.(a)&&wt(t,e[s]),a;const o=ht(a,e,n,r,s+1);return K(a)&&wt(t,e[s]),o}),bt=f("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),St=ft(Z(bt,(t,e)=>[t,e])),pt=(t,e)=>yt(St,t[e])??0,mt=g.crypto?t=>g.crypto.getRandomValues(t):t=>Z(t,()=>A(256*C())),At=(t=16)=>B(mt(new Uint8Array(t)),(t,e)=>t+bt[63&e],n),Ct=15,Mt=(t,r)=>Error(e+":"+t+(O(r)?n:":"+r)),_t=(t,e)=>{throw Mt(t,e)},Et=(t,e)=>{try{return t()}catch{return e}},Ot=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Pt=(t,e)=>Ot(t,t=>{Ot(()=>e?.(t))}),Ht=(t,e)=>{try{return t()}finally{e()}},kt=async(t,e)=>{try{return await t()}finally{await e()}},Lt=t=>new Set(T(t)||O(t)?t:[t]),Nt=JSON.stringify,Tt=JSON.parse,zt=t=>Nt(t,(t,e)=>O(e)?"":e),Dt=t=>""===t?void 0:T(t)?Z(t,Dt):et(t)?((t,e)=>{const n=ot();return it(t,(t,r)=>at(n,r,e(t,r))),n})(t,Dt):t;new g.TextEncoder;const xt=2**36,It=2**30,Rt=/^[-0-9A-Z_a-z]{16}$/,Ut="\n",Wt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,jt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Vt=/[\n\r?#]/,Zt=16777216,Bt=t=>{let e=0;for(let n=0;n<D(t);n++){const r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Ft=t=>t>Zt;var Jt=(t=>(t[t.Hello=0]="Hello",t[t.Subscribe=1]="Subscribe",t[t.Unsubscribe=2]="Unsubscribe",t))(Jt||{});const $t=(t,n)=>{let r=!0;return s=>{r&&(r=!1,Ht(()=>n?.(s),()=>{return t.close((n=s.message,r=e+":"+Ct,n.startsWith(r)?1013:1007),s.message);var n,r}))}},qt=t=>N(t)&&M(t)&&_(t)&&t>=0&&t<=4294967295,Gt=(t,e)=>et(t)&&ct(t,t=>e?Gt(t,e-1):qt(t)),Kt=(e,o)=>{return T(e)&&(1==D(e)||2==D(e)&&L(e[1])&&(c=1/0,(i=e[1])==n||L(i)&&I(Rt,i)&&(t=>pt(t,0)*xt+pt(t,1)*It+16777216*pt(t,2)+262144*pt(t,3)+4096*pt(t,4)+64*pt(t,5)+pt(t,6))(i)<=c))&&(o?et(e[0])&&ct(e[0],t=>Kt(t,o-1)):(l=e[0],O(l)||!O((e=>{if(P(e))return"null";if(T(e))return"array";if(et(e))return"object";const n=t(e);return(t=>t==r||t==s)(n)||n==a&&M(e)?n:void 0})(l))));var i,c,l},Qt=t=>T(t)&&2==D(t)&&qt(t[0])&&qt(t[1]),Xt=(t,e,r)=>(P(t)||L(t))&&N(e)&&M(e)&&_(e)&&((t,e)=>0==t?(t=>Qt(t)||Kt(t,3)||Kt(t,1)||T(t)&&2==D(t)&&Kt(t[0],3)&&(Gt(t[1],0)||Gt(t[1],1)))(e):1==t?e===n:2==t?Qt(e):3==t?(t=>T(t)&&(2==D(t)||3==D(t)&&1===t[2])&&Kt(t[0],3)&&Kt(t[1],1))(e):4==t?Gt(e,0):5==t?Gt(e,1):6==t?Gt(e,2):7==t&&Gt(e,0))(e,r),Yt=(t,e=!1)=>Et(()=>{const n=Dt(Tt(t));return T(n)&&3==D(n)&&(Xt(n[0],n[1],n[2])||e&&(P(n[0])||L(n[0]))&&-1==n[1])?n:void 0}),te=(t,e)=>{const n=t.indexOf(Ut);return-1!==n&&(e(z(t,0,n),z(t,n+1)),!0)},ee=(t,e)=>(t.bufferedAmount??0)+e>Zt,ne=(t,e=1,n,r)=>((t,e=1,n,r)=>{const s=ft(),a=r??[0,0];let o=0,i=!0;const c=(t,e)=>{b(e[4]),o-=e[5],a[0]--,a[1]-=e[5],X(s,t)},l=()=>{vt(s,(t,e)=>b(e[4])),a[0]-=q(s),a[1]-=o,s.clear(),o=0},u=(t=Mt(14))=>{i&&(i=!1,l(),n?.(t))};return[n=>{i&&(Ft(Bt(n))?u(Mt(Ct,d(n,jt)?"fragments":"socket")):te(n,(n,r)=>{const i=Yt(r);if(i)return void t(n,[r],...i);const[,l,f,y,v]=d(r,Wt)??[];if(l){const i=parseInt(f),d=parseInt(y);if(d>1e3)return void u(Mt(Ct,"fragments"));if(d>0&&i>=0&&i<d){const f=n+Ut+l;let y=yt(s,f);if(!y&&a[0]>=100)return void u(Mt(Ct,"fragments"));if(!O(y)&&d!=y[3]||!O(y?.[0][i]))return void u();{const t=Bt(r)+(y?0:Bt(f));if(a[1]+t>Zt)return void u(Mt(Ct,"fragments"));y||(y=[[],[],d,d,h(()=>{const t=yt(s,f);t&&c(f,t)},e),0],wt(s,f,y),a[0]++);const[n,l]=y;n[i]=v,l[i]=r,y[2]--,y[5]+=t,o+=t,a[1]+=t}if(0==y[2]){const[e,r]=y;c(f,y),((e,n,r)=>{const s=Yt(r);s?t(e,n,...s):u()})(n,r,V(e))}return}}u()})||u())},l]})((e,n,r,s,a)=>t(e,r,s,a),e,n,r),re=(t,e)=>t+Ut+e,se=(t,e)=>re("M",re(t,e)),ae=(t,e,n)=>re("S",zt([t,-1,[e,n]])),oe=t=>Bt(t)>1024,ie=t=>{return!x(t)&&!Vt.test(t)&&(e=t=>!x(t)&&"."!=t&&".."!=t,f(t,"/").every(e));var e},ce=t=>!oe(t)&&ie(t),le=(t,e,r,s,a)=>{const o=t??n,i=zt([e,r,s]),c=A(a??0);if(O(a)||c<1)return[re(o,i)];const l=((t,e)=>{const r=[];let s=n,a=0;for(let o=0;o<D(t);o++){const i=t.charCodeAt(o);let c=z(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=z(t,++o,o+1));const l=Bt(c);a>0&&a+l>e&&($(r,s),s=n,a=0),s+=c,a+=l}return $(r,s),r})(i,p(c,m(Bt(i)/1e3)+3)),u=D(l);if(1==u)return[re(o,i)];const d=At();return Z(l,(t,e)=>re(o,V([d,e,u,t],Ut)))},ue=(t,e)=>e?[t,e]:[t],de=(t,e)=>((t??n)>(e??n)?t:e)??n,fe=(t="")=>ue(ot(),t),ye=/^\d+$/,ve=ft(),we=ft(),ge=ft();ft();const he=(t,e,r,s,a,o,i,c,l={},u=R)=>{let d,f=0,y=0,v=0,w=!1;const g=ft(),S=()=>At(11),p=t=>vt(g,(e,[,,n,r])=>{b(r),X(g,e),n(t)}),m=(t,n,r,s)=>{y++,o?.(t,n,r,s),e(t,n,r,s)},A=async(t,e,r,s)=>U((o,i)=>{if(q(g)>=100)return void i(Mt(Ct,"requests"));const c=s+"."+At(4),l=h(()=>{X(g,c),i(Mt(3,(t??n)+"."+c+"."+e))},a);wt(g,c,[t,(t,e)=>{b(l),X(g,c),o([t,e,s])},i,l]);try{m(t,c,e,r)}catch(t){b(l),X(g,c),i(t)}}),C=(t,[e,n])=>{it(e,([e,n],r)=>{const s=ut(t[0],r,fe);it(e,([t,e],n)=>{const r=ut(s[0],n,fe);it(t,([t,e],n)=>at(r[0],n,ue(t,e))),r[1]=de(r[1],e)}),s[1]=de(s[1],n)}),t[1]=de(t[1],n)},M=(e=null,r,s=S())=>Ot(async()=>{O(r)&&([r,e,s]=await A(null,1,n,s));const[a,o]=r,[i,c]=t.getMergeableContentHashes();let l=fe();if(i!=a){const[n,r]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=n,!lt(r)){const[n,a]=(await A(e,5,t.getMergeableRowHashes(r),s))[0];if(C(l,n),!lt(a)){const n=(await A(e,6,t.getMergeableCellHashes(a),s))[0];C(l,n)}}}return[l,c==o?fe():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},c),_=((t,e,r,s,a,o,i,c={},l=0,u=[])=>{let d,f,y,v,w,g=0,h=0,b=0,S=0,p=0,m=0,A=0,C=0,M=0;const _={},E=c.destroy;gt(ve,u,()=>0),gt(we,u,()=>[]),wt(ge,u,(yt(ge,u)??0)+1);const H=ft(),[L,N,z,R,W]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!lt(t)||!lt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!lt(t)||!lt(e),e.setContent]:_t(0))(i,t,l),[V,B,q]=(t=>{let e;const[r,s]=(()=>{const t=[];let e=0;return[r=>(r?t.shift():null)??n+e++,e=>{I(ye,e)&&D(t)<1e3&&$(t,e)}]})(),a=ft(),o=(t,r,s,o)=>{let i,c=!1;if(j(((t,e=[n])=>{const r=[],s=(t,n)=>n==D(e)?$(r,t):P(e[n])?Q(t,t=>s(t,n+1)):j([e[n],null],e=>s(yt(t,e),n+1));return s(t,0),r})(r,s),n=>Q(n,n=>{const r=()=>yt(a,n)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(r):r()})),c)throw i};return[(s,o,i,c=[],l=()=>[])=>{e??=t();const u=r(1);var d,f;return wt(a,u,[s,o,i,c,l]),d=ht(o,i??[n],Lt),f=u,d?.add(f),u},(t,e,...n)=>o(!1,t,e,n),t=>k(yt(a,t),([,e,r])=>(ht(e,r??[n],void 0,e=>(X(e,t),K(e)?1:0)),wt(a,t),s(t),r)),t=>k(yt(a,t),([t,,n=[],r,s])=>{const a=(...o)=>{const i=D(o);i==D(n)?t(e,...o,...s(o)):P(n[i])?j(r[i]?.(...o)??[],t=>a(...o,t)):a(...o,n[i])};a()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>pt),G=t=>{t!=g&&(g=t,B(H,void 0,g))},Y=()=>{yt(ge,u)||yt(ve,u)||!x(yt(we,u)??[])||(wt(ve,u),wt(we,u),wt(ge,u))},tt=e=>{(L&&T(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},et=async()=>{vt()&&t.__?.[0]?.()&&await ct()},nt=t=>kt(()=>f=t,()=>{f==t&&(f=void 0)}),st=async t=>(2!=g&&(await kt(async()=>{G(1),h++,await St(()=>Ot(async()=>{const n=await e();T(n)?tt(n):O(n)&&t?W(t):O(n)||_t(1,n)},e=>{o?.(e),t&&W(t)}))},()=>G(0)),await et()),pt),at=async()=>{const t=A;A=0,t&&t==S&&!M&&(2==g?A=t:await st())},ot=async t=>{const e=++S;let n=!0;if(await it(!0),e==S&&!M){const r=Ot(async()=>{const t=await s(async(t,r)=>{if(e==S&&!M)if(r||t){const e=n||2==g||!!m;p++,e&&m++,await kt(async()=>{G(1),h++,await(e?St(()=>tt(r??t)):Ht(()=>tt(r??t),()=>G(0)))},()=>{e&&m--,--p||G(0)}),p||await et()}else 2==g?A=e:await st()});e!=S||M?O(t)||await a(t):d=t},o);await nt(r),e!=S||M||await kt(()=>st(t),()=>{n=!1})}return pt},it=async(t=!1)=>{A=0,t||S++;const e=f,n=d;return d=void 0,await nt(kt(async()=>{await e},async()=>{O(n)||await Ot(()=>a(n),o)})),pt},ct=async t=>(1!=g&&await kt(()=>kt(async()=>{G(2),b++,await St(()=>Ot(()=>r(N,t),o))},()=>G(0)),at),pt),ut=async()=>{const e=++C;return await dt(!0),e!=C||M||(await ct(),e!=C||M||(y=t.addDidFinishTransactionListener(()=>{if(e==C&&!M){const t=z();R(t)&&Ot(()=>ct(t))}}))),pt},dt=async(e=!1)=>{e||C++;const n=y;return y=void 0,O(n)||t.delListener(n),pt},vt=()=>!O(y),bt=async(t=!1)=>{const[e,n]=t?[dt,it]:[it,dt];return await kt(()=>e(),async()=>{await n()}),pt},St=async(...t)=>{let e,n=!1;const r=U(r=>x(t)?r():$(yt(we,u),...Z(t,(s,a)=>{const i=a==D(t)-1;return[async()=>{let t;w=U(e=>t=e),await kt(async()=>{try{await Ot(s,o)}catch(t){n||(n=!0,e=t)}i&&r()},()=>{w=void 0,t()})},i?r:void 0,_]})));if(await(async()=>{if(!yt(ve,u)){wt(ve,u,1);const t=yt(we,u);let e=0;await kt(async()=>{for(;e<D(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{J(t,e),wt(ve,u,0),Y()})}})(),await r,n)throw e;return pt},pt={load:st,startAutoLoad:ot,stopAutoLoad:it,isAutoLoading:()=>!O(d),save:ct,startAutoSave:ut,stopAutoSave:dt,isAutoSaving:vt,startAutoPersisting:async(t,e=!1)=>{const[n,r,s,a]=e?[ut,ot,dt,it]:[ot,ut,it,dt],o=n(t),i=e?C:S;await o;const c=r(t),l=e?S:C;try{await c}catch(t){throw l==(e?S:C)&&await Pt(a),i==(e?C:S)&&await Pt(s),t}return pt},stopAutoPersisting:bt,getStatus:()=>g,addStatusListener:t=>V(t,H),delListener:e=>(q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:h,saves:b}),...c,destroy:async()=>(O(v)&&(M=1,v=(async()=>{const t=yt(we,u),e=F(t,([,t,e])=>e!=_||(t?.(),!1)),n=w;J(t),$(t,...e),await kt(()=>kt(()=>kt(bt,()=>n),()=>E?.()),()=>{const t=(yt(ge,u)??1)-1;wt(ge,u,t||void 0),Y()})})()),await v,pt)};return rt(pt)})(t,async()=>{const t=await M();return!t||lt(t[0][0])&<(t[1][0])?void 0:t},async(e,n)=>n?m(null,S(),3,n):m(null,S(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(f=1,await _.startAutoPersisting(t)),stopSync:async()=>(f=0,await _.stopAutoPersisting(),_),destroy:async()=>(w=!0,p(Mt(3,"destroyed")),u(),await _.stopSync(),s(),_),getSynchronizerStats:()=>({sends:y,receives:v}),...l},1);return r((e,n,r,s)=>{if(w)return;if(!Xt(n,r,s))return void c?.(Mt(14));const a=f||_.isAutoLoading();v++,i?.(e,n,r,s),0==r?k(yt(g,n),([t,n])=>P(t)||t==e?n(s,e):0):2==r&&a?M(e,s,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==r&&a?d?.(void 0,s):k(1==r&&(f||_.isAutoSaving())?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(s):5==r?t.getMergeableRowDiff(s):6==r?t.getMergeableCellDiff(s):7==r?t.getMergeableValueDiff(s):void 0,t=>{m(e,n,0,t)})},p),_},be=new WeakMap,Se=new WeakSet,pe=()=>{let t,e;const n=U((n,r)=>{t=n,e=r});return n.catch(()=>0),[n,t,e]},me=async(t,e,r=1,...s)=>L(r)?(async(t,e,r,s,a,d,f,y)=>{Se.has(e)&&_t(9);const v=be.get(e),w=v??(()=>{const t=(t=>{const e=ft(),r=ft(),s=[];let a,d,f=pe(),y=!1,v=!1,w=!1,g=()=>{},p=!1,m=0,A=0,C=!0;const M=(t,e)=>Et(()=>t[6]?.(e)),_=t=>vt(e,(e,n)=>M(n,t)),E=(e,n)=>{M(e,n),g(),Et(()=>t.close())},O=(e,n)=>$(s,S(t,e,n)),H=t=>vt(r,(e,[,,,n,s])=>{b(s),X(r,e),n(t)}),k=t=>vt(e,(e,n)=>Et(()=>n[11]?.(t))),N=t=>{j(t[1],([,t])=>b(t)),m-=D(t[1]),A-=t[8],J(t[1]),t[8]=0},x=(t,e=!1)=>{j(t[2],([,t])=>b(t)),m-=t[10],A-=t[9],J(t[2]),t[9]=0,t[10]=0,e&&(t[7]=void 0)},I=t=>t[0]?.[1](),R=()=>vt(e,(t,e)=>I(e)),V=$t(t,_),Z=t=>{C&&(C=!1,w=!0,y=!1,R(),f[2](t),H(t),k(t),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0,e[12]=void 0}),a&&(b(a),a=void 0),V(t))},Q=n=>{const r=Mt(Ct,n);return p||v||(p=!0,C=!1,y=!1,R(),_(r),H(r),k(r),vt(e,(t,e)=>{N(e),x(e,!0),e[3]=!1,e[4]=void 0,e[12]=void 0}),a&&(b(a),a=void 0),t.close(1013,r.message)),r},Y=(e,n,s,a)=>{const o=At();return U((i,c)=>{if(q(r)>=100)return void c(Q("controls"));const l=ae(o,e,n),u=Bt(l);if(Ft(u)||ee(t,u))return void c(Q("socket"));const d=h(()=>{X(r,o),c(Mt(4,e))},s);wt(r,o,[e,n,i,c,d]);try{t.send(l),a?.()}catch(t){b(d),X(r,o),c(t)}})},tt=t=>B(t,(t,e)=>t+Bt(e),0),et=(t,e)=>{const n=tt(e);if(m+D(e)>1e3||A+n>Zt)return Q("client"),!1;const r=[e,h(()=>((t,e)=>{const n=W(t[2],e);if(n>-1){t[2]=F(t[2],(t,e)=>e!=n);const r=z(e[0],e[2]),s=tt(r);t[9]-=s,t[10]-=D(r),m-=D(r),A-=s}})(t,r),t[5]),0];return $(t[2],r),t[9]+=n,t[10]+=D(e),m+=D(e),A+=n,!0},nt=()=>{a??=h(()=>{a=void 0,vt(e,st)},.01)},rt=(e,n,r,s)=>{if(t.readyState!=t.OPEN)return s?n[7]=s:et(n,r),!1;for(let a=0;a<D(r);a++){const o=se(e,r[a]),i=Bt(o);if(Ft(i))return Q("client"),!1;if(ee(t,i)){if(s)n[7]=s;else if(!et(n,z(r,a)))return!1;return nt(),!1}try{t.send(o)}catch(t){if(s)n[7]=s;else if(!et(n,z(r,a)))return!1;return E(n,t),!1}}return!0},st=(e,r)=>{if(!y||!r[3])return;const s=r[2];let a=0;for(;a<D(s);){const o=s[a],i=o[0];let c=o[2];for(;c<D(i);){const l=i[c],u=se(e,l),d=Bt(u);if(Ft(d))return J(s,a),void Q("client");if(ee(t,d))return J(s,a),void nt();try{t.send(u)}catch(t){return void E(r,t)}i[c]=n,o[2]=++c;const f=Bt(l);r[9]-=f,r[10]--,A-=f,m--}b(o[1]),a++}J(s,a);const o=r[7];o&&(r[7]=void 0,rt(e,r,o(),o))},at=async(t,n,r)=>{if(!n[3]){let s=n[4];const a=f;if(s?.[0]!==a){const o=(async()=>{await a[0],yt(e,t)===n&&f===a&&y&&(await Y(Jt.Subscribe,t,r,()=>{yt(e,t)===n&&f===a&&y&&(n[12]=a)}),yt(e,t)===n&&f===a&&y&&(n[3]=!0,st(t,n)))})();s=[a,o],n[4]=s}try{await s[1]}finally{n[4]===s&&(n[4]=void 0)}}},ot=()=>{if(v||!C||y||d?.[0]===f)return;w=!1,p=!1;const t=f,n=(async()=>{try{await Y(Jt.Hello,1,(()=>{let t=!0,n=1;return vt(e,(e,r)=>{const s=r[5];(t||s<n)&&(t=!1,n=s)}),n})()),f===t&&C&&!v&&(y=!0,t[1](),vt(e,(t,e)=>at(t,e,e[5]).catch(t=>t.message==Mt(5).message?0:M(e,t))))}catch(e){t[2](e),e.message!=Mt(5).message&&_(e)}})();d=[t,n],n.finally(()=>{d?.[1]===n&&(d=void 0)})};g=()=>{if(!v&&!w){w=!0;const t=p;p=!1,y=!1;const n=Mt(5);t||_(n),f[2](n),H(n),k(n),a&&(b(a),a=void 0),f=pe(),vt(e,(t,e)=>{I(e),e[3]=!1,e[4]=void 0,e[12]=void 0})}};const it=g;O(l,({data:t})=>{if(!C)return;const n=t.toString(o);if(Ft(Bt(n)))return void Z(Mt(Ct,"socket"));const s=(t=>{let e=!1;return te(t,(t,n)=>{if("S"==t){const[t,s,a]=Yt(n,!0)??[],o=a?.[0],i=a?.[1];-1==s&&T(a)&&2==D(a)&&(0==o?L(t)&&1==i:1==o?L(t)&&L(i)&&(oe(i)||ie(i)):2==o&&P(t)&&L(i)&&(oe(i)||ie(i)))&&(e=!0,((t,e,n)=>{if((e==Jt.Subscribe||e==Jt.Unsubscribe)&&L(n)&&!ce(n))return void Q("channels");const s=t?yt(r,t):void 0;s?.[0]==e&&s[1]===n&&(b(s[4]),X(r,t),s[2]())})(t,o,i))}}),e})(n),a=(t=>{let n=!1;return te(t,(t,r)=>{"M"==t&&te(r,(t,r)=>{oe(t)?(n=!0,Q("channels")):ie(t)&&(n=!0,((t,n)=>{const r=yt(e,t);r?r[0]?r[0][0](n):((t,e)=>{const n=Bt(e);if(m>=1e3||A+n>Zt)return void Q("client");const r=[e,h(()=>((t,e)=>{const n=W(t[1],e);if(n>-1){t[1]=F(t[1],(t,e)=>e!=n);const r=Bt(e[0]);t[8]-=r,m--,A-=r}})(t,r),t[5])];$(t[1],r),t[8]+=n,m++,A+=n})(r,n):Z(Mt(14))})(t,r))})}),n})(n);s||a||Z(Mt(14))}),O(i,ot),O(c,it),O(u,t=>{_(t),k(Mt(5))});const ct=()=>{if(K(e)&&!v){v=!0;const e=C&&!p;C=!1,R();const n=Mt(8);H(n),a&&(b(a),a=void 0),j(s,t=>Et(t)),J(s),be.delete(t),e&&Et(()=>t.close())}},lt=n=>{const r=yt(e,n);if(r)try{if(I(r),N(r),x(r,!0),y&&r[12]===f){const e=ae(null,Jt.Unsubscribe,n),r=Bt(e);Ft(r)||ee(t,r)?Q("socket"):t.send(e)}}catch(t){M(r,t)}finally{X(e,n),ct()}};return{addChannel:async(n,r,s)=>{C&&!v||_t(5),ce(n)||_t(6,n),G(e,n)&&_t(7,n),q(e)>=100&&_t(Ct,"channels");const a=[void 0,[],[],!1,void 0,r,s,void 0,0,0,0,void 0,void 0];if(wt(e,n,a),t.readyState==t.OPEN)ot();else if(t.readyState>t.OPEN){const t=Mt(5);M(a,t),f[2](t)}try{await at(n,a,r)}catch(t){throw lt(n),t}},delChannel:lt,destroyIfEmpty:ct,invalid:Z,payloadBuffer:[0,0],registerReceive:(t,n,r)=>{const s=yt(e,t);if(s){s[0]=n,s[11]=r;const t=s[1];let e=0;Ht(()=>{for(;e<D(t);){const[r,a]=t[e];b(a);const o=Bt(r);s[8]-=o,m--,A-=o,e++,n[0](r)}},()=>J(t,e))}},send:(n,r,s)=>{if(!C)return;const a=yt(e,n);a&&(y&&t.readyState==t.OPEN&&a[3]&&!D(a[2])&&!a[7]?rt(n,a,r,s):s?a[7]=s:et(a,r))}}})(e);return be.set(e,t),t})();try{await w.addChannel(r,s,f)}catch(t){throw v||w.destroyIfEmpty(),t}try{return he(t,(e,n,s,a)=>w.send(r,le(e,n,s,a,y),null!=e||2!=s&&3!=s?void 0:()=>le(null,n,2,t.getMergeableContentHashes(),y)),(t,e)=>w.registerReceive(r,ne(t,s,w.invalid,w.payloadBuffer),e),()=>w.delChannel(r),s,a,d,f,{getWebSocket:()=>e})}catch(t){throw w.delChannel(r),t}})(t,e,r,s[0]??1,s[1],s[2],s[3],s[4]):(async(t,e,n=1,r,s,a,d)=>{be.has(e)&&_t(10);let f=!0,y=!1,v=()=>{};const w=t=>Et(()=>a?.(t)),g=he(t,(t,...n)=>{j(le(t,...n,d),t=>{if(y)return;const n=Bt(t);Ft(n)||ee(e,n)?(()=>{if(!y){y=!0;const t=Mt(Ct,"socket");w(t),e.close(1013,t.message)}})():e.send(t)})},(t,r)=>{const s=$t(e,w),[a,i]=ne(t,n,s);let d=[];v=()=>{i(),j(d,t=>Et(t)),J(d)};const y=()=>{Et(()=>r(Mt(5))),v()};d=[S(e,l,({data:t})=>a(t.toString(o))),S(e,c,()=>{f||y()}),S(e,u,t=>{f||(w(t),y())})]},()=>{v(),e.close()},n,r,s,a,{getWebSocket:()=>e});return Se.add(e),U((t,n)=>{let r=()=>{};const s=(t,s=t)=>{w(s),r(),v(),Se.delete(e),Et(()=>e.close()),n(t)};if(e.readyState!=e.OPEN){if(e.readyState>e.OPEN)return void s(Mt(5));const n=[S(e,i,()=>{f=!1,r(),t(g)}),S(e,u,t=>s(Mt(5),t)),S(e,c,()=>s(Mt(5)))];r=()=>{j(n,t=>Et(t)),J(n)}}else f=!1,t(g)})})(t,e,r,s[0],s[1],s[2],s[3]);export{me as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,e="tinybase",a="",n=t(a),s=t(!0),r=t(0),o="utf8",c="close",i="message",l="error",u=(t,e)=>t?.match(e),d=(t,e="",a)=>t.split(e,a),y=Promise,w=Math,f=t=>(e,a,n)=>t(e)?n?.():a(e),v=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),S=(t,e,a)=>(t.on(e,a),()=>t.off(e,a)),A=w.max,b=w.ceil,p=w.floor,m=w.random,_=isFinite,C=Number.isInteger,M=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=f(M),k=f(L),E=e=>t(e)==n,I=e=>t(e)==r,D=t=>Array.isArray(t),H=(t,e,a)=>t.slice(e,a),T=t=>t.length,z=t=>0==T(t),N=(t,e)=>t.test(e),x=()=>{},j=t=>new y(t),R=async t=>y.all(t),V=(t,e)=>t.forEach(e),Z=(t,e="")=>t.join(e),F=(t,e)=>t.map(e),J=(t,e,a)=>t.reduce(e,a),W=(t,e)=>t.filter(e),$=(t,e)=>t.find(e),q=(t,e=T(t))=>t.splice(0,e),U=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>L(t)||0==B(t),Q=t=>[...t?.values()??[]],X=t=>t.clear(),Y=(t,e)=>t?.forEach(e),tt=(t,e)=>t?.delete(e),et=15,at=(t,n)=>Error(e+":"+t+(L(n)?a:":"+n)),nt=(t,e)=>{throw at(t,e)},st=(t,e)=>{try{return t()}catch{return e}},rt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},ot=(t,e)=>{try{return t()}catch(t){e?.(t)}},ct=(t,e)=>{try{return t()}finally{e()}},it=async(t,e)=>{try{return await t()}finally{await e()}},lt=Object,ut=t=>lt.getPrototypeOf(t),dt=t=>!M(t)&&O(ut(t),t=>t==lt.prototype||M(ut(t)),()=>!0),yt=lt.keys,wt=lt.freeze,ft=(t,e)=>lt.hasOwn(t,e),vt=(t,e,a)=>(lt.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),gt=(t=[])=>{const e=lt.create(null);return V(t,([t,a])=>vt(e,t,a)),e},ht=(t,e)=>V(yt(t),a=>e(t[a],a)),St=(t,e)=>{for(const a in t)if(ft(t,a)&&!e(t[a],a))return!1;return!0},At=t=>dt(t)&&0==(t=>T(yt(t)))(t),bt=(t,e,a)=>(ft(t,e)||vt(t,e,a()),t[e]),pt=Map,mt=t=>new pt(t),_t=t=>[...t?.keys()??[]],Ct=(t,e)=>t?.get(e),Mt=(t,e)=>Y(t,(t,a)=>e(a,t)),Lt=(t,e)=>{const a=[];return Mt(t,(t,n)=>U(a,e(n,t))),a},Pt=(t,e,a)=>L(a)?(tt(t,e),t):t?.set(e,a),Ot=(t,e,a,n)=>{let s=Ct(t,e);return G(t,e)?n?.(s):Pt(t,e,s=a()),s},kt=(t,e,a,n,s=0)=>k((a?Ot:Ct)(t,e[s],s>T(e)-2?a:mt),r=>{if(s>T(e)-2)return n?.(r)&&Pt(t,e[s]),r;const o=kt(r,e,a,n,s+1);return K(r)&&Pt(t,e[s]),o}),Et=/^\d+$/,It=t=>new Set(D(t)||L(t)?t:[t]),Dt=(t,e)=>t?.add(e),Ht=t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,e=>{N(Et,e)&&T(t)<1e3&&U(t,e)}]})(),r=mt(),o=(t,n,s,o)=>{let c,i=!1;if(V(((t,e=[a])=>{const n=[],s=(t,a)=>a==T(e)?U(n,t):P(e[a])?Y(t,t=>s(t,a+1)):V([e[a],null],e=>s(Ct(t,e),a+1));return s(t,0),n})(n,s),a=>Y(a,a=>{const n=()=>Ct(r,a)[0](e,...s??[],...o);t?ot(n,t=>{i||(c=t),i=!0}):n()})),i)throw c};return[(s,o,c,i=[],l=()=>[])=>{e??=t();const u=n(1);return Pt(r,u,[s,o,c,i,l]),Dt(kt(o,c??[a],It),u),u},(t,e,...a)=>o(!1,t,e,a),t=>k(Ct(r,t),([,e,n])=>(kt(e,n??[a],void 0,e=>(tt(e,t),K(e)?1:0)),Pt(r,t),s(t),n)),t=>k(Ct(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=T(o);c==T(a)?t(e,...o,...s(o)):P(a[c])?V(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,e,...a)=>o(!0,t,e,a)]},Tt=JSON.stringify,zt=JSON.parse,Nt=t=>Tt(t,(t,e)=>L(e)?"":e),xt=t=>""===t?void 0:D(t)?F(t,xt):dt(t)?((t,e)=>{const a=gt();return ht(t,(t,n)=>vt(a,n,e(t,n))),a})(t,xt):t,jt=d("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Rt=mt(F(jt,(t,e)=>[t,e])),Vt=(t,e)=>Ct(Rt,t[e])??0,Zt=v.crypto?t=>v.crypto.getRandomValues(t):t=>F(t,()=>p(256*m())),Ft=(t=16)=>J(Zt(new Uint8Array(t)),(t,e)=>t+jt[63&e],a);new v.TextEncoder;const Jt=2**36,Wt=2**30,$t=/^[-0-9A-Z_a-z]{16}$/,qt="\n",Ut=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Bt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Gt=/[\n\r?#]/,Kt=16777216,Qt=t=>{let e=0;for(let a=0;a<T(t);a++){const n=t.charCodeAt(a);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(a+1)>=56320&&t.charCodeAt(a+1)<=57343?(e+=4,a++):e+=3}return e},Xt=t=>t>Kt,Yt=e,te="S",ee=(t,a)=>{let n=!0;return s=>{n&&(n=!1,ct(()=>a?.(s),()=>{return t.close((a=s.message,n=e+":"+et,a.startsWith(n)?1013:1007),s.message);var a,n}))}},ae=t=>I(t)&&_(t)&&C(t)&&t>=0&&t<=4294967295,ne=(t,e)=>dt(t)&&St(t,t=>e?ne(t,e-1):ae(t)),se=(e,o)=>{return D(e)&&(1==T(e)||2==T(e)&&E(e[1])&&(i=1/0,(c=e[1])==a||E(c)&&N($t,c)&&(t=>Vt(t,0)*Jt+Vt(t,1)*Wt+16777216*Vt(t,2)+262144*Vt(t,3)+4096*Vt(t,4)+64*Vt(t,5)+Vt(t,6))(c)<=i))&&(o?dt(e[0])&&St(e[0],t=>se(t,o-1)):(l=e[0],L(l)||!L((e=>{if(P(e))return"null";if(D(e))return"array";if(dt(e))return"object";const a=t(e);return(t=>t==n||t==s)(a)||a==r&&_(e)?a:void 0})(l))));var c,i,l},re=t=>D(t)&&2==T(t)&&ae(t[0])&&ae(t[1]),oe=(t,e,n)=>(P(t)||E(t))&&I(e)&&_(e)&&C(e)&&((t,e)=>0==t?(t=>re(t)||se(t,3)||se(t,1)||D(t)&&2==T(t)&&se(t[0],3)&&(ne(t[1],0)||ne(t[1],1)))(e):1==t?e===a:2==t?re(e):3==t?(t=>D(t)&&(2==T(t)||3==T(t)&&1===t[2])&&se(t[0],3)&&se(t[1],1))(e):4==t?ne(e,0):5==t?ne(e,1):6==t?ne(e,2):7==t&&ne(e,0))(e,n),ce=(t,e=!1)=>st(()=>{const a=xt(zt(t));return D(a)&&3==T(a)&&(oe(a[0],a[1],a[2])||e&&(P(a[0])||E(a[0]))&&-1==a[1])?a:void 0}),ie=(t,e)=>{const a=t.indexOf(qt);return-1!==a&&(e(H(t,0,a),H(t,a+1)),!0)},le=(t,e=1,a)=>{const n=mt();let s=0,r=!0;const o=(t,e)=>{h(e[4]),s-=e[5],tt(n,t)},c=(t=at(14))=>{r&&(r=!1,Mt(n,(t,e)=>h(e[4])),X(n),s=0,a?.(t))};return a=>{r&&(Xt(Qt(a))?c(at(et,u(a,Bt)?"fragments":"socket")):ie(a,(a,r)=>{const i=ce(r);if(i)return void t(a,[r],...i);const[,l,d,y,w]=u(r,Ut)??[];if(l){const i=parseInt(d),u=parseInt(y);if(u>1e3)return void c(at(et,"fragments"));if(u>0&&i>=0&&i<u){const d=a+qt+l;let y=Ct(n,d);if(!y){if(B(n)>=100)return void c(at(et,"fragments"));y=[[],[],u,u,g(()=>{const t=Ct(n,d);t&&o(d,t)},e),0],Pt(n,d,y)}const[f,v]=y;if(u!=y[3]||!L(f[i]))return void c();{const t=Qt(w);if(s+t>Kt)return void c(at(et,"fragments"));f[i]=w,v[i]=r,y[2]--,y[5]+=t,s+=t}return void(0==y[2]&&(o(d,y),((e,a,n)=>{const s=ce(n);s?t(e,a,...s):c()})(a,v,Z(f))))}}c()})||c())}},ue=(t,e)=>(t.bufferedAmount??0)+e>Kt,de=(t,e)=>t+qt+e,ye=t=>{return!z(t)&&!Gt.test(t)&&(e=t=>!z(t)&&"."!=t&&".."!=t,d(t,"/").every(e));var e},we=(t,e)=>e?[t,e]:[t],fe=(t,e)=>((t??a)>(e??a)?t:e)??a,ve=(t="")=>we(gt(),t),ge=mt(),he=mt(),Se=mt();mt();const Ae=/\/([^?]*)/,be=(t,e,n,s=1,r)=>{const d=mt(),y=mt(),w=mt(),f=It(),v=[],m=mt();let _;const C=t=>{st(()=>n?.(t))};U(v,S(t,l,C));const[M,,O,,I]=Ht(()=>zt),N=(...t)=>{ot(()=>I(...t),C)},Y=(t,e,a)=>U(Ot(m,t,()=>[]),S(t,e,a)),lt=(t,e)=>{if(t.readyState==t.OPEN){const a=at(et,e);ct(()=>C(a),()=>t.close(1013,a.message))}},ut=([t,e],a)=>{const n=L(e)?a:((t,e)=>de("M",de(t,e)))(e,a),s=Qt(n);Xt(s)||ue(t,s)?lt(t,"socket"):t.readyState==t.OPEN&&t.send(n)},dt=t=>{t[7]&&(h(t[7]),t[7]=void 0),t[4]=[],t[6]=0},yt=(t,e)=>{t[4]=W(t[4],([t])=>t!=e),t[6]=J(t[4],(t,[,e])=>t+Qt(e),0),T(t[4])||dt(t)},ft=(t,e,n)=>{const s=t[0],r=t[1];ie(n,(t,n)=>{const o=de(e,n);t===a?(e!==te&&r?.[3]?.(o),Mt(s,(t,a)=>t!==e?ut(a,o):0)):t===te?r?.[3]?.(o):k(Ct(s,t),t=>ut(t,o))})},gt=(t,e,a,n)=>V(n,n=>((t,e,a)=>{const n=t[1];!t[4]&&G(t[0],e)&&1==n[0]?ft(t,e,a):!t[4]&&G(t[0],e)&&((t,e,a)=>{const n=t[1],r=n[4],o=((t,e)=>{let a;return ie(e,(e,n)=>{2==ce(n)?.[1]&&(a=t+qt+e)}),a})(e,a),c=o?(i=([,,t])=>t==o,r.findIndex(i)):-1;var i;const l=c>-1?Qt(r[c][1]):0,u=Qt(a);if(c<0&&T(r)>=1e3||n[6]+u-l>Kt)return yt(n,e),void k(Ct(t[0],e),([t])=>lt(t,"server"));const d=[e,a,o];c>-1?r[c]=d:U(r,d),n[6]+=u-l,n[7]??=g(()=>(t=>{const e=t[1],a=It();V(e[4],([e])=>k(Ct(t[0],e),([t])=>Dt(a,t))),dt(e),V(Q(a),t=>lt(t,"server"))})(t),10*s)})(t,e,a)})(t,e,de(a,n))),St=(t,e)=>(e[4]||(e[4]=(async()=>{let a,n=!1;if(await rt(()=>e[2]),await rt(()=>e[3]),dt(e[1]),await rt(()=>(async t=>{let e,a=!1;const n=t=>{a||(e=t),a=!0};if(await rt(()=>t[1]?.destroy(),n),await rt(()=>t[2]?.destroy(),n),a)throw e})(e[1]),t=>{a=t,n=!0}),X(e[0]),Ct(w,t)===e&&(tt(w,t),N(d,void 0,t,-1)),n)throw a})()),e[4]),pt=async(t,e,a)=>{const n=e[0];G(n,a)&&(yt(e[1],a),tt(n,a),N(y,[t],a,-1),K(n)&&await St(t,e))},kt=(t,n,o)=>{const c=Ct(w,t),i=!c||c[4]?((t,n)=>{const o=[mt(),[0,void 0,void 0,void 0,[],void 0,0]];return Pt(w,t,o),n||N(d,void 0,t,1),o[2]=(async(t,n)=>{const o=t[1],c=await(e?.(n));L(c)?o[0]=1:(o[0]=2,o[1]=D(c)?c[0]:c,o[2]=((t,e,n,s,r,o,c,i,l={},u=x)=>{let d,y=0,w=0,f=0,v=!1;const S=mt(),A=()=>Ft(11),b=t=>Mt(S,(e,[,,a,n])=>{h(n),tt(S,e),a(t)}),p=(t,a,n,s)=>{w++,e(t,a,n,s)},m=async(t,e,n,s)=>j((o,c)=>{if(B(S)>=100)return void c(at(et,"requests"));const i=s+"."+Ft(4),l=g(()=>{tt(S,i),c(at(3,(t??a)+"."+i+"."+e))},r);Pt(S,i,[t,(t,e)=>{h(l),tt(S,i),o([t,e,s])},c,l]);try{p(t,i,e,n)}catch(t){h(l),tt(S,i),c(t)}}),_=(t,[e,a])=>{ht(e,([e,a],n)=>{const s=bt(t[0],n,ve);ht(e,([t,e],a)=>{const n=bt(s[0],a,ve);ht(t,([t,e],a)=>vt(n[0],a,we(t,e))),n[1]=fe(n[1],e)}),s[1]=fe(s[1],a)}),t[1]=fe(t[1],a)},C=(e=null,n,s=A())=>rt(async()=>{L(n)&&([n,e,s]=await m(null,1,a,s));const[r,o]=n,[c,i]=t.getMergeableContentHashes();let l=ve();if(c!=r){const[a,n]=(await m(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!At(n)){const[a,r]=(await m(e,5,t.getMergeableRowHashes(n),s))[0];if(_(l,a),!At(r)){const a=(await m(e,6,t.getMergeableCellHashes(r),s))[0];_(l,a)}}}return[l,i==o?ve():(await m(e,7,t.getMergeableValueHashes(),s))[0],1]},i),M=((t,e,a,n,s,r,o,c={},i=0,l=[])=>{let u,d,y,w,f,v=0,g=0,h=0,S=0,A=0,b=0,p=0,m=0,_=0;const C={},M=c.destroy;Ot(ge,l,()=>0),Ot(he,l,()=>[]),Pt(Se,l,(Ct(Se,l)??0)+1);const P=mt(),[O,k,E,I,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!At(t)||!At(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!At(t)||!At(e),e.setContent]:nt(0))(o,t,i),[N,x,R]=Ht(()=>lt),V=t=>{t!=v&&(v=t,x(P,void 0,v))},Z=()=>{Ct(Se,l)||Ct(ge,l)||!z(Ct(he,l)??[])||(Pt(ge,l),Pt(he,l),Pt(Se,l))},J=e=>{(O&&D(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},$=async()=>{at()&&t.__?.[0]?.()&&await Y()},B=t=>it(()=>d=t,()=>{d==t&&(d=void 0)}),G=async t=>(2!=v&&(await it(async()=>{V(1),g++,await ot(()=>rt(async()=>{const a=await e();D(a)?J(a):L(a)&&t?H(t):L(a)||nt(1,a)},e=>{r?.(e),t&&H(t)}))},()=>V(0)),await $()),lt),K=async()=>{const t=p;p=0,t&&t==S&&!_&&(2==v?p=t:await G())},Q=async t=>{const e=++S;let a=!0;if(await X(!0),e==S&&!_){const o=rt(async()=>{const t=await n(async(t,n)=>{if(e==S&&!_)if(n||t){const e=a||2==v||!!b;A++,e&&b++,await it(async()=>{V(1),g++,await(e?ot(()=>J(n??t)):ct(()=>J(n??t),()=>V(0)))},()=>{e&&b--,--A||V(0)}),A||await $()}else 2==v?p=e:await G()});e!=S||_?L(t)||await s(t):u=t},r);await B(o),e!=S||_||await it(()=>G(t),()=>{a=!1})}return lt},X=async(t=!1)=>{p=0,t||S++;const e=d,a=u;return u=void 0,await B(it(async()=>{await e},async()=>{L(a)||await rt(()=>s(a),r)})),lt},Y=async t=>(1!=v&&await it(()=>it(async()=>{V(2),h++,await ot(()=>rt(()=>a(k,t),r))},()=>V(0)),K),lt),tt=async()=>{const e=++m;return await et(!0),e!=m||_||(await Y(),e!=m||_||(y=t.addDidFinishTransactionListener(()=>{if(e==m&&!_){const t=E();I(t)&&rt(()=>Y(t))}}))),lt},et=async(e=!1)=>{e||m++;const a=y;return y=void 0,L(a)||t.delListener(a),lt},at=()=>!L(y),st=async(t=!1)=>{const[e,a]=t?[et,X]:[X,et];return await it(()=>e(),async()=>{await a()}),lt},ot=async(...t)=>{let e,a=!1;const n=j(n=>z(t)?n():U(Ct(he,l),...F(t,(s,o)=>{const c=o==T(t)-1;return[async()=>{let t;f=j(e=>t=e),await it(async()=>{try{await rt(s,r)}catch(t){a||(a=!0,e=t)}c&&n()},()=>{f=void 0,t()})},c?n:void 0,C]})));if(await(async()=>{if(!Ct(ge,l)){Pt(ge,l,1);const t=Ct(he,l);let e=0;await it(async()=>{for(;e<T(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{q(t,e),Pt(ge,l,0),Z()})}})(),await n,a)throw e;return lt},lt={load:G,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!L(u),save:Y,startAutoSave:tt,stopAutoSave:et,isAutoSaving:at,startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[tt,Q]:[Q,tt];return await a(t),await n(t),lt},stopAutoPersisting:st,getStatus:()=>v,addStatusListener:t=>N(t,P),delListener:e=>(R(e),t),schedule:ot,getStore:()=>t,getStats:()=>({loads:g,saves:h}),...c,destroy:async()=>(L(w)&&(_=1,w=(async()=>{const t=Ct(he,l),e=W(t,([,t,e])=>e!=C||(t?.(),!1)),a=f;q(t),U(t,...e),await it(()=>it(()=>it(st,()=>a),()=>M?.()),()=>{const t=(Ct(Se,l)??1)-1;Pt(Se,l,t||void 0),Z()})})()),await w,lt)};return wt(lt)})(t,async()=>{const t=await C();return!t||At(t[0][0])&&At(t[1][0])?void 0:t},async(e,a)=>a?p(null,A(),3,a):p(null,A(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,i,2,{startSync:async t=>(y=1,await M.startAutoPersisting(t)),stopSync:async()=>(y=0,await M.stopAutoPersisting(),M),destroy:async()=>(v=!0,b(at(3,"destroyed")),u(),await M.stopSync(),M),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,a,n,s)=>{if(v)return;if(!oe(a,n,s))return void i?.(at(14));const r=y||M.isAutoLoading();f++,0==n?k(Ct(S,a),([t,a])=>P(t)||t==e?a(s,e):0):2==n&&r?C(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(i):3==n&&r?d?.(void 0,s):k(1==n&&(y||M.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{p(e,a,0,t)})},b),M})(o[1].getStore(),(e,n,s,o)=>V(((t,e,n,s,r)=>{const o=t??a,c=Nt([e,n,s]),i=p(r??0);if(L(r)||i<1)return[de(o,c)];const l=((t,e)=>{const n=[];let s=a,r=0;for(let o=0;o<T(t);o++){const c=t.charCodeAt(o);let i=H(t,o,o+1);c>=55296&&c<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(i+=H(t,++o,o+1));const l=Qt(i);r>0&&r+l>e&&(U(n,s),s=a,r=0),s+=i,r+=l}return U(n,s),n})(c,A(i,b(Qt(c)/1e3)+3)),u=T(l);if(1==u)return[de(o,c)];const d=Ft();return F(l,(t,e)=>de(o,Z([d,e,u,t],qt)))})(e,n,s,o,r),e=>ft(t,te,e)),t=>{o[3]=((t,e=1)=>le((e,a,n,s,r)=>t(e,n,s,r),e,void 0))(t,s)},0,s,0,0,C),o[5]=D(c)?c[1]:t=>0)})(o,t),o})(t,!!c):c;return Pt(i[0],n,o),N(y,[t],n,1),[i,(async()=>{let e,a=!1;if(await rt(async()=>{await i[2],G(i[0],n)&&!i[4]&&await(t=>{const e=t[1];return t[3]||(t[3]=(async()=>{2==e[0]&&await(async t=>{t[0]=3,await t[1].startAutoLoad(),await t[1].startAutoSave(),await t[2].startSync(),t[5](t[1].getStore()),t[0]=1})(e);const a=e[4];dt(e),V(a,([e,a])=>ft(t,e,a))})()),t[3]})(i)},t=>{e=t,a=!0}),a)throw await rt(()=>pt(t,i,n),C),e})()]},Et=S(t,"connection",(t,e)=>{Dt(f,t),Y(t,l,C),_?t.close():k(u(e.url,Ae),([,n])=>k(e.headers["sec-websocket-key"],e=>{t.protocol==Yt?((t,e,n)=>{const r=ee(t,C),[l,u]=((t,e,n,s,r,o,c,i)=>{const l=mt(),u=mt();let d=!1;const y=(t,e,a)=>r(((t,e,a)=>de(te,Nt([t,-1,[e,a]])))(t,e,a)),w=t=>{tt(l,t),tt(u,t)};return[r=>{if(Xt(Qt(r)))return void c(at(et,"socket"));const f=(s=>{let r=!1;return ie(s,(s,o)=>{if(s==te){const[s,c,u]=ce(o,!0)??[],f=u?.[0],v=u?.[1];-1==c&&D(u)&&2==T(u)&&(0==f?E(s)&&1==v:1==f?E(s)&&E(v)&&ye(v):2==f&&P(s)&&E(v)&&ye(v))&&(r=!0,((s,r,o)=>{const c=((s,r,o)=>{if(0==r)d=!0,y(s,r,o);else if(d&&1==r){if(!G(l,o)){const n=t+(t?"/":a)+o,[c,i]=e(n,o);return Pt(l,o,c),y(s,r,o),i?i.catch(t=>{throw w(o),t}):void 0}y(s,r,o)}else if(d&&2==r){const t=Ct(l,o);if(w(o),!L(t))return(async()=>n(t))()}})(s,r,o);c?.catch(t=>st(()=>i?.(t)))})(s,f,v))}}),r})(r),v=(t=>{let e=!1;return ie(t,(t,a)=>{"M"==t&&ie(a,(t,a)=>{ye(t)&&(e=!0,((t,e)=>{const a=d?Ct(l,t):void 0;L(a)?c(at(14)):Ot(u,t,()=>le((t,e)=>s(a,t,e),o,c))(e)})(t,a))})}),e})(r);f||v||c(at(14))},()=>it(()=>R(Lt(l,async t=>n(t))),()=>{X(l),X(u)})]})(n,(a,n)=>{const[s,r]=kt(a,e,[t,n]);return[[a,s],r]},([t,a])=>pt(t,a,e),([,t],a,n)=>gt(t,e,a,n),e=>{const a=Qt(e);Xt(a)||ue(t,a)?lt(t,"socket"):t.readyState==t.OPEN&&t.send(e)},s,r,C);Y(t,i,t=>l(t.toString(o))),Y(t,c,()=>u().catch(C))})(t,e,n):(async(t,e,a)=>{const[n,r]=kt(a,e,[t]),l=le((t,a)=>gt(n,e,t,a),s,ee(t,C));Y(t,i,t=>l(t.toString(o))),Y(t,c,()=>pt(a,n,e).catch(C)),await r})(t,e,n).catch(C)})),Y(t,c,()=>{var e;tt(f,t),k(Ct(m,e=t),t=>V(t,t=>t())),tt(m,e)})});U(v,Et);const Tt=async()=>{const e=async t=>{let e=[!1,void 0];return await rt(t,t=>e=[!0,t]),e},a=await R([e(()=>j((e,a)=>t.close(t=>t?a(t):e()))),...F(Q(f),t=>e(()=>(async t=>{t.readyState!=t.CLOSED&&await j((e,a)=>{const n=S(t,c,()=>{n(),e()});try{t.close()}catch(t){n(),a(t)}})})(t)))]),n=$(a,([t])=>t);if(n)throw n[1]},zt={getWebSocketServer:()=>t,getPathIds:()=>_t(w),getClientIds:t=>_t(Ct(w,t)?.[0]),addPathIdsListener:t=>M(t,d),addClientIdsListener:(t,e)=>M(e,y,[t]),delListener:t=>(O(t),zt),getStats:()=>({paths:B(w),clients:J(Lt(w,t=>B(t[0])),(t,e)=>t+e,0)}),destroy:()=>(_||(_=(async()=>{st(Et);let t=[!1,void 0];const e=rt(Tt,e=>t=[!0,e]),a=await R(Lt(w,async(t,e)=>{let a=[!1,void 0];return await rt(()=>St(e,t),t=>a=[!0,t]),a}));await e,V(v,t=>st(t)),Mt(m,(t,e)=>V(e,t=>st(t))),X(m),X(w),X(f);const n=t[0]?t:$(a,([t])=>t);if(n)throw n[1]})()),_)};return wt(zt)};export{be as createWsServer};
|
|
1
|
+
const t=t=>typeof t,e="tinybase",a="",n=t(a),s=t(!0),r=t(0),o="utf8",c="close",i="message",l="error",u=(t,e)=>t?.match(e),d=(t,e="",a)=>t.split(e,a),y=Promise,w=Math,f=t=>(e,a,n)=>t(e)?n?.():a(e),v=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),g=t=>clearTimeout(t),S=(t,e,a)=>(t.on(e,a),()=>t.off(e,a)),A=w.max,b=w.ceil,p=w.floor,m=w.random,_=isFinite,C=Number.isInteger,M=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=f(M),k=f(L),E=e=>t(e)==n,I=e=>t(e)==r,D=t=>Array.isArray(t),H=(t,e,a)=>t.slice(e,a),T=t=>t.length,z=t=>0==T(t),N=(t,e)=>t.test(e),x=()=>{},j=t=>new y(t),R=async t=>y.all(t),V=(t,e)=>t.forEach(e),Z=(t,e="")=>t.join(e),F=(t,e)=>t.map(e),J=(t,e,a)=>t.reduce(e,a),W=(t,e)=>t.filter(e),$=(t,e)=>t.find(e),q=(t,e=T(t))=>t.splice(0,e),U=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>L(t)||0==B(t),Q=t=>[...t?.values()??[]],X=t=>t.clear(),Y=(t,e)=>t?.forEach(e),tt=(t,e)=>t?.delete(e),et=15,at=(t,n)=>Error(e+":"+t+(L(n)?a:":"+n)),nt=(t,e)=>{throw at(t,e)},st=(t,e)=>{try{return t()}catch{return e}},rt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},ot=(t,e)=>rt(t,t=>{rt(()=>e?.(t))}),ct=(t,e)=>{try{return t()}catch(t){e?.(t)}},it=(t,e)=>{try{return t()}finally{e()}},lt=async(t,e)=>{try{return await t()}finally{await e()}},ut=Object,dt=t=>ut.getPrototypeOf(t),yt=t=>!M(t)&&O(dt(t),t=>t==ut.prototype||M(dt(t)),()=>!0),wt=ut.keys,ft=ut.freeze,vt=(t,e)=>ut.hasOwn(t,e),ht=(t,e,a)=>(ut.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),gt=(t=[])=>{const e=ut.create(null);return V(t,([t,a])=>ht(e,t,a)),e},St=(t,e)=>V(wt(t),a=>e(t[a],a)),At=(t,e)=>{for(const a in t)if(vt(t,a)&&!e(t[a],a))return!1;return!0},bt=t=>yt(t)&&0==(t=>T(wt(t)))(t),pt=(t,e,a)=>(vt(t,e)||ht(t,e,a()),t[e]),mt=Map,_t=t=>new mt(t),Ct=t=>[...t?.keys()??[]],Mt=(t,e)=>t?.get(e),Lt=(t,e)=>Y(t,(t,a)=>e(a,t)),Pt=(t,e)=>{const a=[];return Lt(t,(t,n)=>U(a,e(n,t))),a},Ot=(t,e,a)=>L(a)?(tt(t,e),t):t?.set(e,a),kt=(t,e,a,n)=>{let s=Mt(t,e);return G(t,e)?n?.(s):Ot(t,e,s=a()),s},Et=(t,e,a,n,s=0)=>k((a?kt:Mt)(t,e[s],s>T(e)-2?a:_t),r=>{if(s>T(e)-2)return n?.(r)&&Ot(t,e[s]),r;const o=Et(r,e,a,n,s+1);return K(r)&&Ot(t,e[s]),o}),It=/^\d+$/,Dt=t=>new Set(D(t)||L(t)?t:[t]),Ht=(t,e)=>t?.add(e),Tt=t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,e=>{N(It,e)&&T(t)<1e3&&U(t,e)}]})(),r=_t(),o=(t,n,s,o)=>{let c,i=!1;if(V(((t,e=[a])=>{const n=[],s=(t,a)=>a==T(e)?U(n,t):P(e[a])?Y(t,t=>s(t,a+1)):V([e[a],null],e=>s(Mt(t,e),a+1));return s(t,0),n})(n,s),a=>Y(a,a=>{const n=()=>Mt(r,a)[0](e,...s??[],...o);t?ct(n,t=>{i||(c=t),i=!0}):n()})),i)throw c};return[(s,o,c,i=[],l=()=>[])=>{e??=t();const u=n(1);return Ot(r,u,[s,o,c,i,l]),Ht(Et(o,c??[a],Dt),u),u},(t,e,...a)=>o(!1,t,e,a),t=>k(Mt(r,t),([,e,n])=>(Et(e,n??[a],void 0,e=>(tt(e,t),K(e)?1:0)),Ot(r,t),s(t),n)),t=>k(Mt(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=T(o);c==T(a)?t(e,...o,...s(o)):P(a[c])?V(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,e,...a)=>o(!0,t,e,a)]},zt=JSON.stringify,Nt=JSON.parse,xt=t=>zt(t,(t,e)=>L(e)?"":e),jt=t=>""===t?void 0:D(t)?F(t,jt):yt(t)?((t,e)=>{const a=gt();return St(t,(t,n)=>ht(a,n,e(t,n))),a})(t,jt):t,Rt=d("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Vt=_t(F(Rt,(t,e)=>[t,e])),Zt=(t,e)=>Mt(Vt,t[e])??0,Ft=v.crypto?t=>v.crypto.getRandomValues(t):t=>F(t,()=>p(256*m())),Jt=(t=16)=>J(Ft(new Uint8Array(t)),(t,e)=>t+Rt[63&e],a);new v.TextEncoder;const Wt=2**36,$t=2**30,qt=/^[-0-9A-Z_a-z]{16}$/,Ut="\n",Bt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Gt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Kt=/[\n\r?#]/,Qt=16777216,Xt=t=>{let e=0;for(let a=0;a<T(t);a++){const n=t.charCodeAt(a);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(a+1)>=56320&&t.charCodeAt(a+1)<=57343?(e+=4,a++):e+=3}return e},Yt=t=>t>Qt,te=e,ee="S",ae=(t,a)=>{let n=!0;return s=>{n&&(n=!1,it(()=>a?.(s),()=>{return t.close((a=s.message,n=e+":"+et,a.startsWith(n)?1013:1007),s.message);var a,n}))}},ne=t=>I(t)&&_(t)&&C(t)&&t>=0&&t<=4294967295,se=(t,e)=>yt(t)&&At(t,t=>e?se(t,e-1):ne(t)),re=(e,o)=>{return D(e)&&(1==T(e)||2==T(e)&&E(e[1])&&(i=1/0,(c=e[1])==a||E(c)&&N(qt,c)&&(t=>Zt(t,0)*Wt+Zt(t,1)*$t+16777216*Zt(t,2)+262144*Zt(t,3)+4096*Zt(t,4)+64*Zt(t,5)+Zt(t,6))(c)<=i))&&(o?yt(e[0])&&At(e[0],t=>re(t,o-1)):(l=e[0],L(l)||!L((e=>{if(P(e))return"null";if(D(e))return"array";if(yt(e))return"object";const a=t(e);return(t=>t==n||t==s)(a)||a==r&&_(e)?a:void 0})(l))));var c,i,l},oe=t=>D(t)&&2==T(t)&&ne(t[0])&&ne(t[1]),ce=(t,e,n)=>(P(t)||E(t))&&I(e)&&_(e)&&C(e)&&((t,e)=>0==t?(t=>oe(t)||re(t,3)||re(t,1)||D(t)&&2==T(t)&&re(t[0],3)&&(se(t[1],0)||se(t[1],1)))(e):1==t?e===a:2==t?oe(e):3==t?(t=>D(t)&&(2==T(t)||3==T(t)&&1===t[2])&&re(t[0],3)&&re(t[1],1))(e):4==t?se(e,0):5==t?se(e,1):6==t?se(e,2):7==t&&se(e,0))(e,n),ie=(t,e=!1)=>st(()=>{const a=jt(Nt(t));return D(a)&&3==T(a)&&(ce(a[0],a[1],a[2])||e&&(P(a[0])||E(a[0]))&&-1==a[1])?a:void 0}),le=(t,e)=>{const a=t.indexOf(Ut);return-1!==a&&(e(H(t,0,a),H(t,a+1)),!0)},ue=(t,e=1,a,n)=>{const s=_t(),r=n??[0,0];let o=0,c=!0;const i=(t,e)=>{g(e[4]),o-=e[5],r[0]--,r[1]-=e[5],tt(s,t)},l=()=>{Lt(s,(t,e)=>g(e[4])),r[0]-=B(s),r[1]-=o,X(s),o=0},d=(t=at(14))=>{c&&(c=!1,l(),a?.(t))};return[a=>{c&&(Yt(Xt(a))?d(at(et,u(a,Gt)?"fragments":"socket")):le(a,(a,n)=>{const c=ie(n);if(c)return void t(a,[n],...c);const[,l,y,w,f]=u(n,Bt)??[];if(l){const c=parseInt(y),u=parseInt(w);if(u>1e3)return void d(at(et,"fragments"));if(u>0&&c>=0&&c<u){const y=a+Ut+l;let w=Mt(s,y);if(!w&&r[0]>=100)return void d(at(et,"fragments"));if(!L(w)&&u!=w[3]||!L(w?.[0][c]))return void d();{const t=Xt(n)+(w?0:Xt(y));if(r[1]+t>Qt)return void d(at(et,"fragments"));w||(w=[[],[],u,u,h(()=>{const t=Mt(s,y);t&&i(y,t)},e),0],Ot(s,y,w),r[0]++);const[a,l]=w;a[c]=f,l[c]=n,w[2]--,w[5]+=t,o+=t,r[1]+=t}if(0==w[2]){const[e,n]=w;i(y,w),((e,a,n)=>{const s=ie(n);s?t(e,a,...s):d()})(a,n,Z(e))}return}}d()})||d())},l]},de=(t,e)=>(t.bufferedAmount??0)+e>Qt,ye=(t,e)=>t+Ut+e,we=t=>Xt(t)>1024,fe=t=>{return!z(t)&&!Kt.test(t)&&(e=t=>!z(t)&&"."!=t&&".."!=t,d(t,"/").every(e));var e},ve=(t,e)=>e?[t,e]:[t],he=(t,e)=>((t??a)>(e??a)?t:e)??a,ge=(t="")=>ve(gt(),t),Se=_t(),Ae=_t(),be=_t();_t();const pe=/\/([^?]*)/,me=(t,e,n,s=1,r)=>{const d=_t(),y=_t(),w=_t(),f=Dt(),v=_t(),m=[],_=_t();let C;const M=t=>{st(()=>n?.(t))};U(m,S(t,l,M));const[O,,I,,N]=Tt(()=>Vt),Y=(...t)=>{ct(()=>N(...t),M)},ut=(t,e,a)=>U(kt(_,t,()=>[]),S(t,e,a)),dt=(t,e)=>{if(t.readyState==t.OPEN){const a=at(et,e);it(()=>M(a),()=>t.close(1013,a.message))}},yt=([t,e],a)=>{const n=L(e)?a:((t,e)=>ye("M",ye(t,e)))(e,a),s=Xt(n);Yt(s)||de(t,s)?dt(t,"socket"):t.readyState==t.OPEN&&t.send(n)},wt=(t,e,a)=>{const n=kt(v,t,()=>[0,0]);n[0]+=e,n[1]+=a,n[0]||Ot(v,t)},vt=([,t,,e])=>wt(e,-1,-Xt(t)),gt=t=>{t[7]&&(g(t[7]),t[7]=void 0),V(t[4],vt),t[4]=[],t[6]=0},At=(t,e)=>{t[4]=W(t[4],t=>t[0]!=e||(vt(t),!1)),t[6]=J(t[4],(t,[,e])=>t+Xt(e),0),T(t[4])||gt(t)},mt=(t,e,n)=>{const s=t[0],r=t[1];le(n,(t,n)=>{const o=ye(e,n);t===a?(e!==ee&&r?.[3]?.(o),Lt(s,(t,a)=>t!==e?yt(a,o):0)):t===ee?r?.[3]?.(o):k(Mt(s,t),t=>yt(t,o))})},Et=(t,e,a,n)=>V(n,n=>((t,e,a)=>{const n=t[1];!t[4]&&G(t[0],e)&&1==n[0]?mt(t,e,a):!t[4]&&G(t[0],e)&&((t,e,a)=>{const n=t[1],r=n[4],o=Mt(t[0],e)?.[0];if(L(o))return;const c=((t,e)=>{let a;return le(e,(e,n)=>{2==ie(n)?.[1]&&(a=t+Ut+e)}),a})(e,a),i=c?(l=([,,t])=>t==c,r.findIndex(l)):-1;var l;const u=i>-1?r[i]:void 0,d=L(u)?0:Xt(u[1]),y=Xt(a),w=Mt(v,o),f=u?.[3]===o;if(i<0&&T(r)>=1e3||n[6]+y-d>Qt||!f&&(w?.[0]??0)>=1e3||(w?.[1]??0)+y-(f?d:0)>Qt)return At(n,e),void k(Mt(t[0],e),([t])=>dt(t,"server"));const g=[e,a,c,o];i>-1?(vt(r[i]),r[i]=g):U(r,g),wt(o,1,y),n[6]+=y-d,n[7]??=h(()=>(t=>{const e=t[1],a=Dt();V(e[4],([,,,t])=>Ht(a,t)),gt(e),V(Q(a),t=>dt(t,"server"))})(t),10*s)})(t,e,a)})(t,e,ye(a,n))),It=(t,e)=>(e[4]||(e[4]=(async()=>{let a,n=!1;if(await rt(()=>e[2]),await rt(()=>e[3]),gt(e[1]),await rt(()=>(async t=>{let e,a=!1;const n=t=>{a||(e=t),a=!0};if(await rt(()=>t[1]?.destroy(),n),await rt(()=>t[2]?.destroy(),n),a)throw e})(e[1]),t=>{a=t,n=!0}),X(e[0]),Mt(w,t)===e&&(tt(w,t),Y(d,void 0,t,-1)),n)throw a})()),e[4]),zt=async(t,e,a)=>{const n=e[0];G(n,a)&&(At(e[1],a),tt(n,a),Y(y,[t],a,-1),K(n)&&await It(t,e))},Nt=(t,n,o)=>{const c=Mt(w,t),i=!c||c[4]?((t,n)=>{const o=[_t(),[0,void 0,void 0,void 0,[],void 0,0]];return Ot(w,t,o),n||Y(d,void 0,t,1),o[2]=(async(t,n)=>{const o=t[1],c=await(e?.(n));L(c)?o[0]=1:(o[0]=2,o[1]=D(c)?c[0]:c,o[2]=((t,e,n,s,r,o,c,i,l={},u=x)=>{let d,y=0,w=0,f=0,v=!1;const S=_t(),A=()=>Jt(11),b=t=>Lt(S,(e,[,,a,n])=>{g(n),tt(S,e),a(t)}),p=(t,a,n,s)=>{w++,e(t,a,n,s)},m=async(t,e,n,s)=>j((o,c)=>{if(B(S)>=100)return void c(at(et,"requests"));const i=s+"."+Jt(4),l=h(()=>{tt(S,i),c(at(3,(t??a)+"."+i+"."+e))},r);Ot(S,i,[t,(t,e)=>{g(l),tt(S,i),o([t,e,s])},c,l]);try{p(t,i,e,n)}catch(t){g(l),tt(S,i),c(t)}}),_=(t,[e,a])=>{St(e,([e,a],n)=>{const s=pt(t[0],n,ge);St(e,([t,e],a)=>{const n=pt(s[0],a,ge);St(t,([t,e],a)=>ht(n[0],a,ve(t,e))),n[1]=he(n[1],e)}),s[1]=he(s[1],a)}),t[1]=he(t[1],a)},C=(e=null,n,s=A())=>rt(async()=>{L(n)&&([n,e,s]=await m(null,1,a,s));const[r,o]=n,[c,i]=t.getMergeableContentHashes();let l=ge();if(c!=r){const[a,n]=(await m(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!bt(n)){const[a,r]=(await m(e,5,t.getMergeableRowHashes(n),s))[0];if(_(l,a),!bt(r)){const a=(await m(e,6,t.getMergeableCellHashes(r),s))[0];_(l,a)}}}return[l,i==o?ge():(await m(e,7,t.getMergeableValueHashes(),s))[0],1]},i),M=((t,e,a,n,s,r,o,c={},i=0,l=[])=>{let u,d,y,w,f,v=0,h=0,g=0,S=0,A=0,b=0,p=0,m=0,_=0;const C={},M=c.destroy;kt(Se,l,()=>0),kt(Ae,l,()=>[]),Ot(be,l,(Mt(be,l)??0)+1);const P=_t(),[O,k,E,I,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!bt(t)||!bt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!bt(t)||!bt(e),e.setContent]:nt(0))(o,t,i),[N,x,R]=Tt(()=>ut),V=t=>{t!=v&&(v=t,x(P,void 0,v))},Z=()=>{Mt(be,l)||Mt(Se,l)||!z(Mt(Ae,l)??[])||(Ot(Se,l),Ot(Ae,l),Ot(be,l))},J=e=>{(O&&D(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},$=async()=>{at()&&t.__?.[0]?.()&&await Y()},B=t=>lt(()=>d=t,()=>{d==t&&(d=void 0)}),G=async t=>(2!=v&&(await lt(async()=>{V(1),h++,await ct(()=>rt(async()=>{const a=await e();D(a)?J(a):L(a)&&t?H(t):L(a)||nt(1,a)},e=>{r?.(e),t&&H(t)}))},()=>V(0)),await $()),ut),K=async()=>{const t=p;p=0,t&&t==S&&!_&&(2==v?p=t:await G())},Q=async t=>{const e=++S;let a=!0;if(await X(!0),e==S&&!_){const o=rt(async()=>{const t=await n(async(t,n)=>{if(e==S&&!_)if(n||t){const e=a||2==v||!!b;A++,e&&b++,await lt(async()=>{V(1),h++,await(e?ct(()=>J(n??t)):it(()=>J(n??t),()=>V(0)))},()=>{e&&b--,--A||V(0)}),A||await $()}else 2==v?p=e:await G()});e!=S||_?L(t)||await s(t):u=t},r);await B(o),e!=S||_||await lt(()=>G(t),()=>{a=!1})}return ut},X=async(t=!1)=>{p=0,t||S++;const e=d,a=u;return u=void 0,await B(lt(async()=>{await e},async()=>{L(a)||await rt(()=>s(a),r)})),ut},Y=async t=>(1!=v&&await lt(()=>lt(async()=>{V(2),g++,await ct(()=>rt(()=>a(k,t),r))},()=>V(0)),K),ut),tt=async()=>{const e=++m;return await et(!0),e!=m||_||(await Y(),e!=m||_||(y=t.addDidFinishTransactionListener(()=>{if(e==m&&!_){const t=E();I(t)&&rt(()=>Y(t))}}))),ut},et=async(e=!1)=>{e||m++;const a=y;return y=void 0,L(a)||t.delListener(a),ut},at=()=>!L(y),st=async(t=!1)=>{const[e,a]=t?[et,X]:[X,et];return await lt(()=>e(),async()=>{await a()}),ut},ct=async(...t)=>{let e,a=!1;const n=j(n=>z(t)?n():U(Mt(Ae,l),...F(t,(s,o)=>{const c=o==T(t)-1;return[async()=>{let t;f=j(e=>t=e),await lt(async()=>{try{await rt(s,r)}catch(t){a||(a=!0,e=t)}c&&n()},()=>{f=void 0,t()})},c?n:void 0,C]})));if(await(async()=>{if(!Mt(Se,l)){Ot(Se,l,1);const t=Mt(Ae,l);let e=0;await lt(async()=>{for(;e<T(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{q(t,e),Ot(Se,l,0),Z()})}})(),await n,a)throw e;return ut},ut={load:G,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!L(u),save:Y,startAutoSave:tt,stopAutoSave:et,isAutoSaving:at,startAutoPersisting:async(t,e=!1)=>{const[a,n,s,r]=e?[tt,Q,et,X]:[Q,tt,X,et],o=a(t),c=e?m:S;await o;const i=n(t),l=e?S:m;try{await i}catch(t){throw l==(e?S:m)&&await ot(r),c==(e?m:S)&&await ot(s),t}return ut},stopAutoPersisting:st,getStatus:()=>v,addStatusListener:t=>N(t,P),delListener:e=>(R(e),t),schedule:ct,getStore:()=>t,getStats:()=>({loads:h,saves:g}),...c,destroy:async()=>(L(w)&&(_=1,w=(async()=>{const t=Mt(Ae,l),e=W(t,([,t,e])=>e!=C||(t?.(),!1)),a=f;q(t),U(t,...e),await lt(()=>lt(()=>lt(st,()=>a),()=>M?.()),()=>{const t=(Mt(be,l)??1)-1;Ot(be,l,t||void 0),Z()})})()),await w,ut)};return ft(ut)})(t,async()=>{const t=await C();return!t||bt(t[0][0])&&bt(t[1][0])?void 0:t},async(e,a)=>a?p(null,A(),3,a):p(null,A(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,i,2,{startSync:async t=>(y=1,await M.startAutoPersisting(t)),stopSync:async()=>(y=0,await M.stopAutoPersisting(),M),destroy:async()=>(v=!0,b(at(3,"destroyed")),u(),await M.stopSync(),M),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,a,n,s)=>{if(v)return;if(!ce(a,n,s))return void i?.(at(14));const r=y||M.isAutoLoading();f++,0==n?k(Mt(S,a),([t,a])=>P(t)||t==e?a(s,e):0):2==n&&r?C(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(i):3==n&&r?d?.(void 0,s):k(1==n&&(y||M.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{p(e,a,0,t)})},b),M})(o[1].getStore(),(e,n,s,o)=>V(((t,e,n,s,r)=>{const o=t??a,c=xt([e,n,s]),i=p(r??0);if(L(r)||i<1)return[ye(o,c)];const l=((t,e)=>{const n=[];let s=a,r=0;for(let o=0;o<T(t);o++){const c=t.charCodeAt(o);let i=H(t,o,o+1);c>=55296&&c<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(i+=H(t,++o,o+1));const l=Xt(i);r>0&&r+l>e&&(U(n,s),s=a,r=0),s+=i,r+=l}return U(n,s),n})(c,A(i,b(Xt(c)/1e3)+3)),u=T(l);if(1==u)return[ye(o,c)];const d=Jt();return F(l,(t,e)=>ye(o,Z([d,e,u,t],Ut)))})(e,n,s,o,r),e=>mt(t,ee,e)),t=>{o[3]=((t,e=1)=>ue((e,a,n,s,r)=>t(e,n,s,r),e,void 0,void 0))(t,s)[0]},0,s,0,0,M),o[5]=D(c)?c[1]:t=>0)})(o,t),o})(t,!!c):c;return Ot(i[0],n,o),Y(y,[t],n,1),[i,(async()=>{let e,a=!1;if(await rt(async()=>{await i[2],G(i[0],n)&&!i[4]&&await(t=>{const e=t[1];return t[3]||(t[3]=(async()=>{2==e[0]&&await(async t=>{t[0]=3,await t[1].startAutoLoad(),await t[1].startAutoSave(),await t[2].startSync(),t[5](t[1].getStore()),t[0]=1})(e);const a=e[4];gt(e),V(a,([e,a])=>mt(t,e,a))})()),t[3]})(i)},t=>{e=t,a=!0}),a)throw await rt(()=>zt(t,i,n),M),e})()]},jt=S(t,"connection",(t,e)=>{Ht(f,t),ut(t,l,M),C?t.close():k(u(e.url,pe),([,n])=>k(e.headers["sec-websocket-key"],e=>{t.protocol==te?((t,e,n)=>{const r=ae(t,M),[l,u]=((t,e,n,s,r,o,c,i)=>{const l=_t(),u=_t(),d=[0,0],y=Dt();let w=0,f=!1,v=!0;const h=(t,e,a)=>r(((t,e,a)=>ye(ee,xt([t,-1,[e,a]])))(t,e,a)),g=t=>{tt(l,t),Mt(u,t)?.[1](),tt(u,t)},S=()=>{Lt(u,(t,e)=>e[1]()),X(u)},A=t=>{v&&(v=!1,S(),c(t))},b=t=>{t[2]||(t[2]=1,w--,tt(y,t))},p=t=>t[1]??=(async()=>{try{const e=n(t[0]);L(e)?b(t):await e}finally{b(t)}})();return[n=>{if(!v)return;if(Yt(Xt(n)))return void A(at(et,"socket"));const r=(n=>{let s=!1;return le(n,(n,r)=>{if(n==ee){const[n,o,c]=ie(r,!0)??[],u=c?.[0],d=c?.[1];-1==o&&D(c)&&2==T(c)&&(0==u?E(n)&&1==d:1==u?E(n)&&E(d)&&(we(d)||fe(d)):2==u&&P(n)&&E(d)&&(we(d)||fe(d)))&&(s=!0,((n,s,r)=>{const o=((n,s,r)=>{if(0==s)f=!0,h(n,s,r);else if(f&&1==s){const o=G(l,r);if(we(r)||!o&&(B(l)>=100||w>=200))return void A(at(et,"channels"));if(!o){const o=t+(t?"/":a)+r;let c;w++;try{c=e(o,r)}catch(t){throw w--,t}const[i,u]=c,d=[i];return Ht(y,d),Ot(l,r,d),h(n,s,r),u?u.catch(t=>{throw Mt(l,r)===d&&g(r),d[1]||b(d),t}):void 0}h(n,s,r)}else if(f&&2==s){if(we(r))return void A(at(et,"channels"));const t=Mt(l,r);return g(r),L(t)?void 0:p(t)}})(n,s,r);o?.catch(t=>st(()=>i?.(t)))})(n,u,d))}}),s})(n),c=(t=>{let e=!1;return le(t,(t,a)=>{"M"==t&&le(a,(t,a)=>{we(t)?(e=!0,A(at(et,"channels"))):fe(t)&&(e=!0,((t,e)=>{const a=f?Mt(l,t):void 0;L(a)?A(at(14)):kt(u,t,()=>ue((t,e)=>s(a[0],t,e),o,A,d))[0](e)})(t,a))})}),e})(n);r||c||A(at(14))},()=>(v=!1,S(),lt(async()=>{let t,e=!1;if(await R(F(Q(y),async a=>{try{await p(a)}catch(a){e||(t=a,e=!0)}})),e)throw t},()=>{X(l),S()}))]})(n,(a,n)=>{const[s,r]=Nt(a,e,[t,n]);return[[a,s],r]},([t,a])=>zt(t,a,e),([,t],a,n)=>Et(t,e,a,n),e=>{const a=Xt(e);Yt(a)||de(t,a)?dt(t,"socket"):t.readyState==t.OPEN&&t.send(e)},s,r,M);ut(t,i,t=>l(t.toString(o))),ut(t,c,()=>u().catch(M))})(t,e,n):(async(t,e,a)=>{const[n,r]=Nt(a,e,[t]),[l,u]=ue((t,a)=>Et(n,e,t,a),s,ae(t,M));ut(t,i,t=>l(t.toString(o))),ut(t,c,()=>{u(),zt(a,n,e).catch(M)}),await r})(t,e,n).catch(M)})),ut(t,c,()=>{var e;tt(f,t),k(Mt(_,e=t),t=>V(t,t=>t())),tt(_,e)})});U(m,jt);const Rt=async()=>{const e=async t=>{let e=[!1,void 0];return await rt(t,t=>e=[!0,t]),e},a=await R([e(()=>j((e,a)=>t.close(t=>t?a(t):e()))),...F(Q(f),t=>e(()=>(async t=>{t.readyState!=t.CLOSED&&await j((e,a)=>{const n=S(t,c,()=>{n(),e()});try{t.close()}catch(t){n(),a(t)}})})(t)))]),n=$(a,([t])=>t);if(n)throw n[1]},Vt={getWebSocketServer:()=>t,getPathIds:()=>Ct(w),getClientIds:t=>Ct(Mt(w,t)?.[0]),addPathIdsListener:t=>O(t,d),addClientIdsListener:(t,e)=>O(e,y,[t]),delListener:t=>(I(t),Vt),getStats:()=>({paths:B(w),clients:J(Pt(w,t=>B(t[0])),(t,e)=>t+e,0)}),destroy:()=>(C||(C=(async()=>{st(jt);let t=[!1,void 0];const e=rt(Rt,e=>t=[!0,e]),a=await R(Pt(w,async(t,e)=>{let a=[!1,void 0];return await rt(()=>It(e,t),t=>a=[!0,t]),a}));await e,V(m,t=>st(t)),Lt(_,(t,e)=>V(e,t=>st(t))),X(_),X(v),X(w),X(f);const n=t[0]?t:$(a,([t])=>t);if(n)throw n[1]})()),C)};return ft(Vt)};export{me as createWsServer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,e="tinybase",a="",n=t(a),s=t(!0),r=t(0),o="utf8",c="close",i="message",l="error",u=(t,e)=>t?.match(e),d=(t,e="",a)=>t.split(e,a),y=Promise,w=Math,f=t=>(e,a,n)=>t(e)?n?.():a(e),v=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),S=(t,e,a)=>(t.on(e,a),()=>t.off(e,a)),A=w.max,b=w.ceil,p=w.floor,m=w.random,_=isFinite,C=Number.isInteger,M=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=f(M),k=f(L),E=e=>t(e)==n,I=e=>t(e)==r,D=t=>Array.isArray(t),H=(t,e,a)=>t.slice(e,a),T=t=>t.length,z=t=>0==T(t),N=(t,e)=>t.test(e),x=()=>{},j=t=>new y(t),R=async t=>y.all(t),V=(t,e)=>t.forEach(e),Z=(t,e="")=>t.join(e),F=(t,e)=>t.map(e),J=(t,e,a)=>t.reduce(e,a),W=(t,e)=>t.filter(e),$=(t,e)=>t.find(e),q=(t,e=T(t))=>t.splice(0,e),U=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>L(t)||0==B(t),Q=t=>[...t?.values()??[]],X=t=>t.clear(),Y=(t,e)=>t?.forEach(e),tt=(t,e)=>t?.delete(e),et=15,at=(t,n)=>Error(e+":"+t+(L(n)?a:":"+n)),nt=(t,e)=>{throw at(t,e)},st=(t,e)=>{try{return t()}catch{return e}},rt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},ot=(t,e)=>{try{return t()}catch(t){e?.(t)}},ct=(t,e)=>{try{return t()}finally{e()}},it=async(t,e)=>{try{return await t()}finally{await e()}},lt=Object,ut=t=>lt.getPrototypeOf(t),dt=t=>!M(t)&&O(ut(t),t=>t==lt.prototype||M(ut(t)),()=>!0),yt=lt.keys,wt=lt.freeze,ft=(t,e)=>lt.hasOwn(t,e),vt=(t,e,a)=>(lt.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),gt=(t=[])=>{const e=lt.create(null);return V(t,([t,a])=>vt(e,t,a)),e},ht=(t,e)=>V(yt(t),a=>e(t[a],a)),St=(t,e)=>{for(const a in t)if(ft(t,a)&&!e(t[a],a))return!1;return!0},At=t=>dt(t)&&0==(t=>T(yt(t)))(t),bt=(t,e,a)=>(ft(t,e)||vt(t,e,a()),t[e]),pt=Map,mt=t=>new pt(t),_t=t=>[...t?.keys()??[]],Ct=(t,e)=>t?.get(e),Mt=(t,e)=>Y(t,(t,a)=>e(a,t)),Lt=(t,e)=>{const a=[];return Mt(t,(t,n)=>U(a,e(n,t))),a},Pt=(t,e,a)=>L(a)?(tt(t,e),t):t?.set(e,a),Ot=(t,e,a,n)=>{let s=Ct(t,e);return G(t,e)?n?.(s):Pt(t,e,s=a()),s},kt=(t,e,a,n,s=0)=>k((a?Ot:Ct)(t,e[s],s>T(e)-2?a:mt),r=>{if(s>T(e)-2)return n?.(r)&&Pt(t,e[s]),r;const o=kt(r,e,a,n,s+1);return K(r)&&Pt(t,e[s]),o}),Et=/^\d+$/,It=t=>new Set(D(t)||L(t)?t:[t]),Dt=(t,e)=>t?.add(e),Ht=t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,e=>{N(Et,e)&&T(t)<1e3&&U(t,e)}]})(),r=mt(),o=(t,n,s,o)=>{let c,i=!1;if(V(((t,e=[a])=>{const n=[],s=(t,a)=>a==T(e)?U(n,t):P(e[a])?Y(t,t=>s(t,a+1)):V([e[a],null],e=>s(Ct(t,e),a+1));return s(t,0),n})(n,s),a=>Y(a,a=>{const n=()=>Ct(r,a)[0](e,...s??[],...o);t?ot(n,t=>{i||(c=t),i=!0}):n()})),i)throw c};return[(s,o,c,i=[],l=()=>[])=>{e??=t();const u=n(1);return Pt(r,u,[s,o,c,i,l]),Dt(kt(o,c??[a],It),u),u},(t,e,...a)=>o(!1,t,e,a),t=>k(Ct(r,t),([,e,n])=>(kt(e,n??[a],void 0,e=>(tt(e,t),K(e)?1:0)),Pt(r,t),s(t),n)),t=>k(Ct(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=T(o);c==T(a)?t(e,...o,...s(o)):P(a[c])?V(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,e,...a)=>o(!0,t,e,a)]},Tt=JSON.stringify,zt=JSON.parse,Nt=t=>Tt(t,(t,e)=>L(e)?"":e),xt=t=>""===t?void 0:D(t)?F(t,xt):dt(t)?((t,e)=>{const a=gt();return ht(t,(t,n)=>vt(a,n,e(t,n))),a})(t,xt):t,jt=d("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Rt=mt(F(jt,(t,e)=>[t,e])),Vt=(t,e)=>Ct(Rt,t[e])??0,Zt=v.crypto?t=>v.crypto.getRandomValues(t):t=>F(t,()=>p(256*m())),Ft=(t=16)=>J(Zt(new Uint8Array(t)),(t,e)=>t+jt[63&e],a);new v.TextEncoder;const Jt=2**36,Wt=2**30,$t=/^[-0-9A-Z_a-z]{16}$/,qt="\n",Ut=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Bt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Gt=/[\n\r?#]/,Kt=16777216,Qt=t=>{let e=0;for(let a=0;a<T(t);a++){const n=t.charCodeAt(a);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(a+1)>=56320&&t.charCodeAt(a+1)<=57343?(e+=4,a++):e+=3}return e},Xt=t=>t>Kt,Yt=e,te="S",ee=(t,a)=>{let n=!0;return s=>{n&&(n=!1,ct(()=>a?.(s),()=>{return t.close((a=s.message,n=e+":"+et,a.startsWith(n)?1013:1007),s.message);var a,n}))}},ae=t=>I(t)&&_(t)&&C(t)&&t>=0&&t<=4294967295,ne=(t,e)=>dt(t)&&St(t,t=>e?ne(t,e-1):ae(t)),se=(e,o)=>{return D(e)&&(1==T(e)||2==T(e)&&E(e[1])&&(i=1/0,(c=e[1])==a||E(c)&&N($t,c)&&(t=>Vt(t,0)*Jt+Vt(t,1)*Wt+16777216*Vt(t,2)+262144*Vt(t,3)+4096*Vt(t,4)+64*Vt(t,5)+Vt(t,6))(c)<=i))&&(o?dt(e[0])&&St(e[0],t=>se(t,o-1)):(l=e[0],L(l)||!L((e=>{if(P(e))return"null";if(D(e))return"array";if(dt(e))return"object";const a=t(e);return(t=>t==n||t==s)(a)||a==r&&_(e)?a:void 0})(l))));var c,i,l},re=t=>D(t)&&2==T(t)&&ae(t[0])&&ae(t[1]),oe=(t,e,n)=>(P(t)||E(t))&&I(e)&&_(e)&&C(e)&&((t,e)=>0==t?(t=>re(t)||se(t,3)||se(t,1)||D(t)&&2==T(t)&&se(t[0],3)&&(ne(t[1],0)||ne(t[1],1)))(e):1==t?e===a:2==t?re(e):3==t?(t=>D(t)&&(2==T(t)||3==T(t)&&1===t[2])&&se(t[0],3)&&se(t[1],1))(e):4==t?ne(e,0):5==t?ne(e,1):6==t?ne(e,2):7==t&&ne(e,0))(e,n),ce=(t,e=!1)=>st(()=>{const a=xt(zt(t));return D(a)&&3==T(a)&&(oe(a[0],a[1],a[2])||e&&(P(a[0])||E(a[0]))&&-1==a[1])?a:void 0}),ie=(t,e)=>{const a=t.indexOf(qt);return-1!==a&&(e(H(t,0,a),H(t,a+1)),!0)},le=(t,e=1,a)=>{const n=mt();let s=0,r=!0;const o=(t,e)=>{h(e[4]),s-=e[5],tt(n,t)},c=(t=at(14))=>{r&&(r=!1,Mt(n,(t,e)=>h(e[4])),X(n),s=0,a?.(t))};return a=>{r&&(Xt(Qt(a))?c(at(et,u(a,Bt)?"fragments":"socket")):ie(a,(a,r)=>{const i=ce(r);if(i)return void t(a,[r],...i);const[,l,d,y,w]=u(r,Ut)??[];if(l){const i=parseInt(d),u=parseInt(y);if(u>1e3)return void c(at(et,"fragments"));if(u>0&&i>=0&&i<u){const d=a+qt+l;let y=Ct(n,d);if(!y){if(B(n)>=100)return void c(at(et,"fragments"));y=[[],[],u,u,g(()=>{const t=Ct(n,d);t&&o(d,t)},e),0],Pt(n,d,y)}const[f,v]=y;if(u!=y[3]||!L(f[i]))return void c();{const t=Qt(w);if(s+t>Kt)return void c(at(et,"fragments"));f[i]=w,v[i]=r,y[2]--,y[5]+=t,s+=t}return void(0==y[2]&&(o(d,y),((e,a,n)=>{const s=ce(n);s?t(e,a,...s):c()})(a,v,Z(f))))}}c()})||c())}},ue=(t,e)=>(t.bufferedAmount??0)+e>Kt,de=(t,e)=>t+qt+e,ye=t=>{return!z(t)&&!Gt.test(t)&&(e=t=>!z(t)&&"."!=t&&".."!=t,d(t,"/").every(e));var e},we=(t,e)=>e?[t,e]:[t],fe=(t,e)=>((t??a)>(e??a)?t:e)??a,ve=(t="")=>we(gt(),t),ge=mt(),he=mt(),Se=mt();mt();const Ae=/\/([^?]*)/,be=(t,e,n,s=1,r)=>{const d=mt(),y=mt(),w=mt(),f=It(),v=[],m=mt();let _;const C=t=>{st(()=>n?.(t))};U(v,S(t,l,C));const[M,,O,,I]=Ht(()=>zt),N=(...t)=>{ot(()=>I(...t),C)},Y=(t,e,a)=>U(Ot(m,t,()=>[]),S(t,e,a)),lt=(t,e)=>{if(t.readyState==t.OPEN){const a=at(et,e);ct(()=>C(a),()=>t.close(1013,a.message))}},ut=([t,e],a)=>{const n=L(e)?a:((t,e)=>de("M",de(t,e)))(e,a),s=Qt(n);Xt(s)||ue(t,s)?lt(t,"socket"):t.readyState==t.OPEN&&t.send(n)},dt=t=>{t[7]&&(h(t[7]),t[7]=void 0),t[4]=[],t[6]=0},yt=(t,e)=>{t[4]=W(t[4],([t])=>t!=e),t[6]=J(t[4],(t,[,e])=>t+Qt(e),0),T(t[4])||dt(t)},ft=(t,e,n)=>{const s=t[0],r=t[1];ie(n,(t,n)=>{const o=de(e,n);t===a?(e!==te&&r?.[3]?.(o),Mt(s,(t,a)=>t!==e?ut(a,o):0)):t===te?r?.[3]?.(o):k(Ct(s,t),t=>ut(t,o))})},gt=(t,e,a,n)=>V(n,n=>((t,e,a)=>{const n=t[1];!t[4]&&G(t[0],e)&&1==n[0]?ft(t,e,a):!t[4]&&G(t[0],e)&&((t,e,a)=>{const n=t[1],r=n[4],o=((t,e)=>{let a;return ie(e,(e,n)=>{2==ce(n)?.[1]&&(a=t+qt+e)}),a})(e,a),c=o?(i=([,,t])=>t==o,r.findIndex(i)):-1;var i;const l=c>-1?Qt(r[c][1]):0,u=Qt(a);if(c<0&&T(r)>=1e3||n[6]+u-l>Kt)return yt(n,e),void k(Ct(t[0],e),([t])=>lt(t,"server"));const d=[e,a,o];c>-1?r[c]=d:U(r,d),n[6]+=u-l,n[7]??=g(()=>(t=>{const e=t[1],a=It();V(e[4],([e])=>k(Ct(t[0],e),([t])=>Dt(a,t))),dt(e),V(Q(a),t=>lt(t,"server"))})(t),10*s)})(t,e,a)})(t,e,de(a,n))),St=(t,e)=>(e[4]||(e[4]=(async()=>{let a,n=!1;if(await rt(()=>e[2]),await rt(()=>e[3]),dt(e[1]),await rt(()=>(async t=>{let e,a=!1;const n=t=>{a||(e=t),a=!0};if(await rt(()=>t[1]?.destroy(),n),await rt(()=>t[2]?.destroy(),n),a)throw e})(e[1]),t=>{a=t,n=!0}),X(e[0]),Ct(w,t)===e&&(tt(w,t),N(d,void 0,t,-1)),n)throw a})()),e[4]),pt=async(t,e,a)=>{const n=e[0];G(n,a)&&(yt(e[1],a),tt(n,a),N(y,[t],a,-1),K(n)&&await St(t,e))},kt=(t,n,o)=>{const c=Ct(w,t),i=!c||c[4]?((t,n)=>{const o=[mt(),[0,void 0,void 0,void 0,[],void 0,0]];return Pt(w,t,o),n||N(d,void 0,t,1),o[2]=(async(t,n)=>{const o=t[1],c=await(e?.(n));L(c)?o[0]=1:(o[0]=2,o[1]=D(c)?c[0]:c,o[2]=((t,e,n,s,r,o,c,i,l={},u=x)=>{let d,y=0,w=0,f=0,v=!1;const S=mt(),A=()=>Ft(11),b=t=>Mt(S,(e,[,,a,n])=>{h(n),tt(S,e),a(t)}),p=(t,a,n,s)=>{w++,e(t,a,n,s)},m=async(t,e,n,s)=>j((o,c)=>{if(B(S)>=100)return void c(at(et,"requests"));const i=s+"."+Ft(4),l=g(()=>{tt(S,i),c(at(3,(t??a)+"."+i+"."+e))},r);Pt(S,i,[t,(t,e)=>{h(l),tt(S,i),o([t,e,s])},c,l]);try{p(t,i,e,n)}catch(t){h(l),tt(S,i),c(t)}}),_=(t,[e,a])=>{ht(e,([e,a],n)=>{const s=bt(t[0],n,ve);ht(e,([t,e],a)=>{const n=bt(s[0],a,ve);ht(t,([t,e],a)=>vt(n[0],a,we(t,e))),n[1]=fe(n[1],e)}),s[1]=fe(s[1],a)}),t[1]=fe(t[1],a)},C=(e=null,n,s=A())=>rt(async()=>{L(n)&&([n,e,s]=await m(null,1,a,s));const[r,o]=n,[c,i]=t.getMergeableContentHashes();let l=ve();if(c!=r){const[a,n]=(await m(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!At(n)){const[a,r]=(await m(e,5,t.getMergeableRowHashes(n),s))[0];if(_(l,a),!At(r)){const a=(await m(e,6,t.getMergeableCellHashes(r),s))[0];_(l,a)}}}return[l,i==o?ve():(await m(e,7,t.getMergeableValueHashes(),s))[0],1]},i),M=((t,e,a,n,s,r,o,c={},i=0,l=[])=>{let u,d,y,w,f,v=0,g=0,h=0,S=0,A=0,b=0,p=0,m=0,_=0;const C={},M=c.destroy;Ot(ge,l,()=>0),Ot(he,l,()=>[]),Pt(Se,l,(Ct(Se,l)??0)+1);const P=mt(),[O,k,E,I,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!At(t)||!At(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!At(t)||!At(e),e.setContent]:nt(0))(o,t,i),[N,x,R]=Ht(()=>lt),V=t=>{t!=v&&(v=t,x(P,void 0,v))},Z=()=>{Ct(Se,l)||Ct(ge,l)||!z(Ct(he,l)??[])||(Pt(ge,l),Pt(he,l),Pt(Se,l))},J=e=>{(O&&D(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},$=async()=>{at()&&t.__?.[0]?.()&&await Y()},B=t=>it(()=>d=t,()=>{d==t&&(d=void 0)}),G=async t=>(2!=v&&(await it(async()=>{V(1),g++,await ot(()=>rt(async()=>{const a=await e();D(a)?J(a):L(a)&&t?H(t):L(a)||nt(1,a)},e=>{r?.(e),t&&H(t)}))},()=>V(0)),await $()),lt),K=async()=>{const t=p;p=0,t&&t==S&&!_&&(2==v?p=t:await G())},Q=async t=>{const e=++S;let a=!0;if(await X(!0),e==S&&!_){const o=rt(async()=>{const t=await n(async(t,n)=>{if(e==S&&!_)if(n||t){const e=a||2==v||!!b;A++,e&&b++,await it(async()=>{V(1),g++,await(e?ot(()=>J(n??t)):ct(()=>J(n??t),()=>V(0)))},()=>{e&&b--,--A||V(0)}),A||await $()}else 2==v?p=e:await G()});e!=S||_?L(t)||await s(t):u=t},r);await B(o),e!=S||_||await it(()=>G(t),()=>{a=!1})}return lt},X=async(t=!1)=>{p=0,t||S++;const e=d,a=u;return u=void 0,await B(it(async()=>{await e},async()=>{L(a)||await rt(()=>s(a),r)})),lt},Y=async t=>(1!=v&&await it(()=>it(async()=>{V(2),h++,await ot(()=>rt(()=>a(k,t),r))},()=>V(0)),K),lt),tt=async()=>{const e=++m;return await et(!0),e!=m||_||(await Y(),e!=m||_||(y=t.addDidFinishTransactionListener(()=>{if(e==m&&!_){const t=E();I(t)&&rt(()=>Y(t))}}))),lt},et=async(e=!1)=>{e||m++;const a=y;return y=void 0,L(a)||t.delListener(a),lt},at=()=>!L(y),st=async(t=!1)=>{const[e,a]=t?[et,X]:[X,et];return await it(()=>e(),async()=>{await a()}),lt},ot=async(...t)=>{let e,a=!1;const n=j(n=>z(t)?n():U(Ct(he,l),...F(t,(s,o)=>{const c=o==T(t)-1;return[async()=>{let t;f=j(e=>t=e),await it(async()=>{try{await rt(s,r)}catch(t){a||(a=!0,e=t)}c&&n()},()=>{f=void 0,t()})},c?n:void 0,C]})));if(await(async()=>{if(!Ct(ge,l)){Pt(ge,l,1);const t=Ct(he,l);let e=0;await it(async()=>{for(;e<T(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{q(t,e),Pt(ge,l,0),Z()})}})(),await n,a)throw e;return lt},lt={load:G,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!L(u),save:Y,startAutoSave:tt,stopAutoSave:et,isAutoSaving:at,startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[tt,Q]:[Q,tt];return await a(t),await n(t),lt},stopAutoPersisting:st,getStatus:()=>v,addStatusListener:t=>N(t,P),delListener:e=>(R(e),t),schedule:ot,getStore:()=>t,getStats:()=>({loads:g,saves:h}),...c,destroy:async()=>(L(w)&&(_=1,w=(async()=>{const t=Ct(he,l),e=W(t,([,t,e])=>e!=C||(t?.(),!1)),a=f;q(t),U(t,...e),await it(()=>it(()=>it(st,()=>a),()=>M?.()),()=>{const t=(Ct(Se,l)??1)-1;Pt(Se,l,t||void 0),Z()})})()),await w,lt)};return wt(lt)})(t,async()=>{const t=await C();return!t||At(t[0][0])&&At(t[1][0])?void 0:t},async(e,a)=>a?p(null,A(),3,a):p(null,A(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,i,2,{startSync:async t=>(y=1,await M.startAutoPersisting(t)),stopSync:async()=>(y=0,await M.stopAutoPersisting(),M),destroy:async()=>(v=!0,b(at(3,"destroyed")),u(),await M.stopSync(),M),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,a,n,s)=>{if(v)return;if(!oe(a,n,s))return void i?.(at(14));const r=y||M.isAutoLoading();f++,0==n?k(Ct(S,a),([t,a])=>P(t)||t==e?a(s,e):0):2==n&&r?C(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(i):3==n&&r?d?.(void 0,s):k(1==n&&(y||M.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{p(e,a,0,t)})},b),M})(o[1].getStore(),(e,n,s,o)=>V(((t,e,n,s,r)=>{const o=t??a,c=Nt([e,n,s]),i=p(r??0);if(L(r)||i<1)return[de(o,c)];const l=((t,e)=>{const n=[];let s=a,r=0;for(let o=0;o<T(t);o++){const c=t.charCodeAt(o);let i=H(t,o,o+1);c>=55296&&c<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(i+=H(t,++o,o+1));const l=Qt(i);r>0&&r+l>e&&(U(n,s),s=a,r=0),s+=i,r+=l}return U(n,s),n})(c,A(i,b(Qt(c)/1e3)+3)),u=T(l);if(1==u)return[de(o,c)];const d=Ft();return F(l,(t,e)=>de(o,Z([d,e,u,t],qt)))})(e,n,s,o,r),e=>ft(t,te,e)),t=>{o[3]=((t,e=1)=>le((e,a,n,s,r)=>t(e,n,s,r),e,void 0))(t,s)},0,s,0,0,C),o[5]=D(c)?c[1]:t=>0)})(o,t),o})(t,!!c):c;return Pt(i[0],n,o),N(y,[t],n,1),[i,(async()=>{let e,a=!1;if(await rt(async()=>{await i[2],G(i[0],n)&&!i[4]&&await(t=>{const e=t[1];return t[3]||(t[3]=(async()=>{2==e[0]&&await(async t=>{t[0]=3,await t[1].startAutoLoad(),await t[1].startAutoSave(),await t[2].startSync(),t[5](t[1].getStore()),t[0]=1})(e);const a=e[4];dt(e),V(a,([e,a])=>ft(t,e,a))})()),t[3]})(i)},t=>{e=t,a=!0}),a)throw await rt(()=>pt(t,i,n),C),e})()]},Et=S(t,"connection",(t,e)=>{Dt(f,t),Y(t,l,C),_?t.close():k(u(e.url,Ae),([,n])=>k(e.headers["sec-websocket-key"],e=>{t.protocol==Yt?((t,e,n)=>{const r=ee(t,C),[l,u]=((t,e,n,s,r,o,c,i)=>{const l=mt(),u=mt();let d=!1;const y=(t,e,a)=>r(((t,e,a)=>de(te,Nt([t,-1,[e,a]])))(t,e,a)),w=t=>{tt(l,t),tt(u,t)};return[r=>{if(Xt(Qt(r)))return void c(at(et,"socket"));const f=(s=>{let r=!1;return ie(s,(s,o)=>{if(s==te){const[s,c,u]=ce(o,!0)??[],f=u?.[0],v=u?.[1];-1==c&&D(u)&&2==T(u)&&(0==f?E(s)&&1==v:1==f?E(s)&&E(v)&&ye(v):2==f&&P(s)&&E(v)&&ye(v))&&(r=!0,((s,r,o)=>{const c=((s,r,o)=>{if(0==r)d=!0,y(s,r,o);else if(d&&1==r){if(!G(l,o)){const n=t+(t?"/":a)+o,[c,i]=e(n,o);return Pt(l,o,c),y(s,r,o),i?i.catch(t=>{throw w(o),t}):void 0}y(s,r,o)}else if(d&&2==r){const t=Ct(l,o);if(w(o),!L(t))return(async()=>n(t))()}})(s,r,o);c?.catch(t=>st(()=>i?.(t)))})(s,f,v))}}),r})(r),v=(t=>{let e=!1;return ie(t,(t,a)=>{"M"==t&&ie(a,(t,a)=>{ye(t)&&(e=!0,((t,e)=>{const a=d?Ct(l,t):void 0;L(a)?c(at(14)):Ot(u,t,()=>le((t,e)=>s(a,t,e),o,c))(e)})(t,a))})}),e})(r);f||v||c(at(14))},()=>it(()=>R(Lt(l,async t=>n(t))),()=>{X(l),X(u)})]})(n,(a,n)=>{const[s,r]=kt(a,e,[t,n]);return[[a,s],r]},([t,a])=>pt(t,a,e),([,t],a,n)=>gt(t,e,a,n),e=>{const a=Qt(e);Xt(a)||ue(t,a)?lt(t,"socket"):t.readyState==t.OPEN&&t.send(e)},s,r,C);Y(t,i,t=>l(t.toString(o))),Y(t,c,()=>u().catch(C))})(t,e,n):(async(t,e,a)=>{const[n,r]=kt(a,e,[t]),l=le((t,a)=>gt(n,e,t,a),s,ee(t,C));Y(t,i,t=>l(t.toString(o))),Y(t,c,()=>pt(a,n,e).catch(C)),await r})(t,e,n).catch(C)})),Y(t,c,()=>{var e;tt(f,t),k(Ct(m,e=t),t=>V(t,t=>t())),tt(m,e)})});U(v,Et);const Tt=async()=>{const e=async t=>{let e=[!1,void 0];return await rt(t,t=>e=[!0,t]),e},a=await R([e(()=>j((e,a)=>t.close(t=>t?a(t):e()))),...F(Q(f),t=>e(()=>(async t=>{t.readyState!=t.CLOSED&&await j((e,a)=>{const n=S(t,c,()=>{n(),e()});try{t.close()}catch(t){n(),a(t)}})})(t)))]),n=$(a,([t])=>t);if(n)throw n[1]},zt={getWebSocketServer:()=>t,getPathIds:()=>_t(w),getClientIds:t=>_t(Ct(w,t)?.[0]),addPathIdsListener:t=>M(t,d),addClientIdsListener:(t,e)=>M(e,y,[t]),delListener:t=>(O(t),zt),getStats:()=>({paths:B(w),clients:J(Lt(w,t=>B(t[0])),(t,e)=>t+e,0)}),destroy:()=>(_||(_=(async()=>{st(Et);let t=[!1,void 0];const e=rt(Tt,e=>t=[!0,e]),a=await R(Lt(w,async(t,e)=>{let a=[!1,void 0];return await rt(()=>St(e,t),t=>a=[!0,t]),a}));await e,V(v,t=>st(t)),Mt(m,(t,e)=>V(e,t=>st(t))),X(m),X(w),X(f);const n=t[0]?t:$(a,([t])=>t);if(n)throw n[1]})()),_)};return wt(zt)};export{be as createWsServer};
|
|
1
|
+
const t=t=>typeof t,e="tinybase",a="",n=t(a),s=t(!0),r=t(0),o="utf8",c="close",i="message",l="error",u=(t,e)=>t?.match(e),d=(t,e="",a)=>t.split(e,a),y=Promise,w=Math,f=t=>(e,a,n)=>t(e)?n?.():a(e),v=globalThis,h=(t,e=0)=>setTimeout(t,1e3*e),g=t=>clearTimeout(t),S=(t,e,a)=>(t.on(e,a),()=>t.off(e,a)),A=w.max,b=w.ceil,p=w.floor,m=w.random,_=isFinite,C=Number.isInteger,M=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=f(M),k=f(L),E=e=>t(e)==n,I=e=>t(e)==r,D=t=>Array.isArray(t),H=(t,e,a)=>t.slice(e,a),T=t=>t.length,z=t=>0==T(t),N=(t,e)=>t.test(e),x=()=>{},j=t=>new y(t),R=async t=>y.all(t),V=(t,e)=>t.forEach(e),Z=(t,e="")=>t.join(e),F=(t,e)=>t.map(e),J=(t,e,a)=>t.reduce(e,a),W=(t,e)=>t.filter(e),$=(t,e)=>t.find(e),q=(t,e=T(t))=>t.splice(0,e),U=(t,...e)=>t.push(...e),B=t=>t?.size??0,G=(t,e)=>t?.has(e)??!1,K=t=>L(t)||0==B(t),Q=t=>[...t?.values()??[]],X=t=>t.clear(),Y=(t,e)=>t?.forEach(e),tt=(t,e)=>t?.delete(e),et=15,at=(t,n)=>Error(e+":"+t+(L(n)?a:":"+n)),nt=(t,e)=>{throw at(t,e)},st=(t,e)=>{try{return t()}catch{return e}},rt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},ot=(t,e)=>rt(t,t=>{rt(()=>e?.(t))}),ct=(t,e)=>{try{return t()}catch(t){e?.(t)}},it=(t,e)=>{try{return t()}finally{e()}},lt=async(t,e)=>{try{return await t()}finally{await e()}},ut=Object,dt=t=>ut.getPrototypeOf(t),yt=t=>!M(t)&&O(dt(t),t=>t==ut.prototype||M(dt(t)),()=>!0),wt=ut.keys,ft=ut.freeze,vt=(t,e)=>ut.hasOwn(t,e),ht=(t,e,a)=>(ut.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),gt=(t=[])=>{const e=ut.create(null);return V(t,([t,a])=>ht(e,t,a)),e},St=(t,e)=>V(wt(t),a=>e(t[a],a)),At=(t,e)=>{for(const a in t)if(vt(t,a)&&!e(t[a],a))return!1;return!0},bt=t=>yt(t)&&0==(t=>T(wt(t)))(t),pt=(t,e,a)=>(vt(t,e)||ht(t,e,a()),t[e]),mt=Map,_t=t=>new mt(t),Ct=t=>[...t?.keys()??[]],Mt=(t,e)=>t?.get(e),Lt=(t,e)=>Y(t,(t,a)=>e(a,t)),Pt=(t,e)=>{const a=[];return Lt(t,(t,n)=>U(a,e(n,t))),a},Ot=(t,e,a)=>L(a)?(tt(t,e),t):t?.set(e,a),kt=(t,e,a,n)=>{let s=Mt(t,e);return G(t,e)?n?.(s):Ot(t,e,s=a()),s},Et=(t,e,a,n,s=0)=>k((a?kt:Mt)(t,e[s],s>T(e)-2?a:_t),r=>{if(s>T(e)-2)return n?.(r)&&Ot(t,e[s]),r;const o=Et(r,e,a,n,s+1);return K(r)&&Ot(t,e[s]),o}),It=/^\d+$/,Dt=t=>new Set(D(t)||L(t)?t:[t]),Ht=(t,e)=>t?.add(e),Tt=t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,e=>{N(It,e)&&T(t)<1e3&&U(t,e)}]})(),r=_t(),o=(t,n,s,o)=>{let c,i=!1;if(V(((t,e=[a])=>{const n=[],s=(t,a)=>a==T(e)?U(n,t):P(e[a])?Y(t,t=>s(t,a+1)):V([e[a],null],e=>s(Mt(t,e),a+1));return s(t,0),n})(n,s),a=>Y(a,a=>{const n=()=>Mt(r,a)[0](e,...s??[],...o);t?ct(n,t=>{i||(c=t),i=!0}):n()})),i)throw c};return[(s,o,c,i=[],l=()=>[])=>{e??=t();const u=n(1);return Ot(r,u,[s,o,c,i,l]),Ht(Et(o,c??[a],Dt),u),u},(t,e,...a)=>o(!1,t,e,a),t=>k(Mt(r,t),([,e,n])=>(Et(e,n??[a],void 0,e=>(tt(e,t),K(e)?1:0)),Ot(r,t),s(t),n)),t=>k(Mt(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=T(o);c==T(a)?t(e,...o,...s(o)):P(a[c])?V(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,e,...a)=>o(!0,t,e,a)]},zt=JSON.stringify,Nt=JSON.parse,xt=t=>zt(t,(t,e)=>L(e)?"":e),jt=t=>""===t?void 0:D(t)?F(t,jt):yt(t)?((t,e)=>{const a=gt();return St(t,(t,n)=>ht(a,n,e(t,n))),a})(t,jt):t,Rt=d("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Vt=_t(F(Rt,(t,e)=>[t,e])),Zt=(t,e)=>Mt(Vt,t[e])??0,Ft=v.crypto?t=>v.crypto.getRandomValues(t):t=>F(t,()=>p(256*m())),Jt=(t=16)=>J(Ft(new Uint8Array(t)),(t,e)=>t+Rt[63&e],a);new v.TextEncoder;const Wt=2**36,$t=2**30,qt=/^[-0-9A-Z_a-z]{16}$/,Ut="\n",Bt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Gt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Kt=/[\n\r?#]/,Qt=16777216,Xt=t=>{let e=0;for(let a=0;a<T(t);a++){const n=t.charCodeAt(a);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(a+1)>=56320&&t.charCodeAt(a+1)<=57343?(e+=4,a++):e+=3}return e},Yt=t=>t>Qt,te=e,ee="S",ae=(t,a)=>{let n=!0;return s=>{n&&(n=!1,it(()=>a?.(s),()=>{return t.close((a=s.message,n=e+":"+et,a.startsWith(n)?1013:1007),s.message);var a,n}))}},ne=t=>I(t)&&_(t)&&C(t)&&t>=0&&t<=4294967295,se=(t,e)=>yt(t)&&At(t,t=>e?se(t,e-1):ne(t)),re=(e,o)=>{return D(e)&&(1==T(e)||2==T(e)&&E(e[1])&&(i=1/0,(c=e[1])==a||E(c)&&N(qt,c)&&(t=>Zt(t,0)*Wt+Zt(t,1)*$t+16777216*Zt(t,2)+262144*Zt(t,3)+4096*Zt(t,4)+64*Zt(t,5)+Zt(t,6))(c)<=i))&&(o?yt(e[0])&&At(e[0],t=>re(t,o-1)):(l=e[0],L(l)||!L((e=>{if(P(e))return"null";if(D(e))return"array";if(yt(e))return"object";const a=t(e);return(t=>t==n||t==s)(a)||a==r&&_(e)?a:void 0})(l))));var c,i,l},oe=t=>D(t)&&2==T(t)&&ne(t[0])&&ne(t[1]),ce=(t,e,n)=>(P(t)||E(t))&&I(e)&&_(e)&&C(e)&&((t,e)=>0==t?(t=>oe(t)||re(t,3)||re(t,1)||D(t)&&2==T(t)&&re(t[0],3)&&(se(t[1],0)||se(t[1],1)))(e):1==t?e===a:2==t?oe(e):3==t?(t=>D(t)&&(2==T(t)||3==T(t)&&1===t[2])&&re(t[0],3)&&re(t[1],1))(e):4==t?se(e,0):5==t?se(e,1):6==t?se(e,2):7==t&&se(e,0))(e,n),ie=(t,e=!1)=>st(()=>{const a=jt(Nt(t));return D(a)&&3==T(a)&&(ce(a[0],a[1],a[2])||e&&(P(a[0])||E(a[0]))&&-1==a[1])?a:void 0}),le=(t,e)=>{const a=t.indexOf(Ut);return-1!==a&&(e(H(t,0,a),H(t,a+1)),!0)},ue=(t,e=1,a,n)=>{const s=_t(),r=n??[0,0];let o=0,c=!0;const i=(t,e)=>{g(e[4]),o-=e[5],r[0]--,r[1]-=e[5],tt(s,t)},l=()=>{Lt(s,(t,e)=>g(e[4])),r[0]-=B(s),r[1]-=o,X(s),o=0},d=(t=at(14))=>{c&&(c=!1,l(),a?.(t))};return[a=>{c&&(Yt(Xt(a))?d(at(et,u(a,Gt)?"fragments":"socket")):le(a,(a,n)=>{const c=ie(n);if(c)return void t(a,[n],...c);const[,l,y,w,f]=u(n,Bt)??[];if(l){const c=parseInt(y),u=parseInt(w);if(u>1e3)return void d(at(et,"fragments"));if(u>0&&c>=0&&c<u){const y=a+Ut+l;let w=Mt(s,y);if(!w&&r[0]>=100)return void d(at(et,"fragments"));if(!L(w)&&u!=w[3]||!L(w?.[0][c]))return void d();{const t=Xt(n)+(w?0:Xt(y));if(r[1]+t>Qt)return void d(at(et,"fragments"));w||(w=[[],[],u,u,h(()=>{const t=Mt(s,y);t&&i(y,t)},e),0],Ot(s,y,w),r[0]++);const[a,l]=w;a[c]=f,l[c]=n,w[2]--,w[5]+=t,o+=t,r[1]+=t}if(0==w[2]){const[e,n]=w;i(y,w),((e,a,n)=>{const s=ie(n);s?t(e,a,...s):d()})(a,n,Z(e))}return}}d()})||d())},l]},de=(t,e)=>(t.bufferedAmount??0)+e>Qt,ye=(t,e)=>t+Ut+e,we=t=>Xt(t)>1024,fe=t=>{return!z(t)&&!Kt.test(t)&&(e=t=>!z(t)&&"."!=t&&".."!=t,d(t,"/").every(e));var e},ve=(t,e)=>e?[t,e]:[t],he=(t,e)=>((t??a)>(e??a)?t:e)??a,ge=(t="")=>ve(gt(),t),Se=_t(),Ae=_t(),be=_t();_t();const pe=/\/([^?]*)/,me=(t,e,n,s=1,r)=>{const d=_t(),y=_t(),w=_t(),f=Dt(),v=_t(),m=[],_=_t();let C;const M=t=>{st(()=>n?.(t))};U(m,S(t,l,M));const[O,,I,,N]=Tt(()=>Vt),Y=(...t)=>{ct(()=>N(...t),M)},ut=(t,e,a)=>U(kt(_,t,()=>[]),S(t,e,a)),dt=(t,e)=>{if(t.readyState==t.OPEN){const a=at(et,e);it(()=>M(a),()=>t.close(1013,a.message))}},yt=([t,e],a)=>{const n=L(e)?a:((t,e)=>ye("M",ye(t,e)))(e,a),s=Xt(n);Yt(s)||de(t,s)?dt(t,"socket"):t.readyState==t.OPEN&&t.send(n)},wt=(t,e,a)=>{const n=kt(v,t,()=>[0,0]);n[0]+=e,n[1]+=a,n[0]||Ot(v,t)},vt=([,t,,e])=>wt(e,-1,-Xt(t)),gt=t=>{t[7]&&(g(t[7]),t[7]=void 0),V(t[4],vt),t[4]=[],t[6]=0},At=(t,e)=>{t[4]=W(t[4],t=>t[0]!=e||(vt(t),!1)),t[6]=J(t[4],(t,[,e])=>t+Xt(e),0),T(t[4])||gt(t)},mt=(t,e,n)=>{const s=t[0],r=t[1];le(n,(t,n)=>{const o=ye(e,n);t===a?(e!==ee&&r?.[3]?.(o),Lt(s,(t,a)=>t!==e?yt(a,o):0)):t===ee?r?.[3]?.(o):k(Mt(s,t),t=>yt(t,o))})},Et=(t,e,a,n)=>V(n,n=>((t,e,a)=>{const n=t[1];!t[4]&&G(t[0],e)&&1==n[0]?mt(t,e,a):!t[4]&&G(t[0],e)&&((t,e,a)=>{const n=t[1],r=n[4],o=Mt(t[0],e)?.[0];if(L(o))return;const c=((t,e)=>{let a;return le(e,(e,n)=>{2==ie(n)?.[1]&&(a=t+Ut+e)}),a})(e,a),i=c?(l=([,,t])=>t==c,r.findIndex(l)):-1;var l;const u=i>-1?r[i]:void 0,d=L(u)?0:Xt(u[1]),y=Xt(a),w=Mt(v,o),f=u?.[3]===o;if(i<0&&T(r)>=1e3||n[6]+y-d>Qt||!f&&(w?.[0]??0)>=1e3||(w?.[1]??0)+y-(f?d:0)>Qt)return At(n,e),void k(Mt(t[0],e),([t])=>dt(t,"server"));const g=[e,a,c,o];i>-1?(vt(r[i]),r[i]=g):U(r,g),wt(o,1,y),n[6]+=y-d,n[7]??=h(()=>(t=>{const e=t[1],a=Dt();V(e[4],([,,,t])=>Ht(a,t)),gt(e),V(Q(a),t=>dt(t,"server"))})(t),10*s)})(t,e,a)})(t,e,ye(a,n))),It=(t,e)=>(e[4]||(e[4]=(async()=>{let a,n=!1;if(await rt(()=>e[2]),await rt(()=>e[3]),gt(e[1]),await rt(()=>(async t=>{let e,a=!1;const n=t=>{a||(e=t),a=!0};if(await rt(()=>t[1]?.destroy(),n),await rt(()=>t[2]?.destroy(),n),a)throw e})(e[1]),t=>{a=t,n=!0}),X(e[0]),Mt(w,t)===e&&(tt(w,t),Y(d,void 0,t,-1)),n)throw a})()),e[4]),zt=async(t,e,a)=>{const n=e[0];G(n,a)&&(At(e[1],a),tt(n,a),Y(y,[t],a,-1),K(n)&&await It(t,e))},Nt=(t,n,o)=>{const c=Mt(w,t),i=!c||c[4]?((t,n)=>{const o=[_t(),[0,void 0,void 0,void 0,[],void 0,0]];return Ot(w,t,o),n||Y(d,void 0,t,1),o[2]=(async(t,n)=>{const o=t[1],c=await(e?.(n));L(c)?o[0]=1:(o[0]=2,o[1]=D(c)?c[0]:c,o[2]=((t,e,n,s,r,o,c,i,l={},u=x)=>{let d,y=0,w=0,f=0,v=!1;const S=_t(),A=()=>Jt(11),b=t=>Lt(S,(e,[,,a,n])=>{g(n),tt(S,e),a(t)}),p=(t,a,n,s)=>{w++,e(t,a,n,s)},m=async(t,e,n,s)=>j((o,c)=>{if(B(S)>=100)return void c(at(et,"requests"));const i=s+"."+Jt(4),l=h(()=>{tt(S,i),c(at(3,(t??a)+"."+i+"."+e))},r);Ot(S,i,[t,(t,e)=>{g(l),tt(S,i),o([t,e,s])},c,l]);try{p(t,i,e,n)}catch(t){g(l),tt(S,i),c(t)}}),_=(t,[e,a])=>{St(e,([e,a],n)=>{const s=pt(t[0],n,ge);St(e,([t,e],a)=>{const n=pt(s[0],a,ge);St(t,([t,e],a)=>ht(n[0],a,ve(t,e))),n[1]=he(n[1],e)}),s[1]=he(s[1],a)}),t[1]=he(t[1],a)},C=(e=null,n,s=A())=>rt(async()=>{L(n)&&([n,e,s]=await m(null,1,a,s));const[r,o]=n,[c,i]=t.getMergeableContentHashes();let l=ge();if(c!=r){const[a,n]=(await m(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!bt(n)){const[a,r]=(await m(e,5,t.getMergeableRowHashes(n),s))[0];if(_(l,a),!bt(r)){const a=(await m(e,6,t.getMergeableCellHashes(r),s))[0];_(l,a)}}}return[l,i==o?ge():(await m(e,7,t.getMergeableValueHashes(),s))[0],1]},i),M=((t,e,a,n,s,r,o,c={},i=0,l=[])=>{let u,d,y,w,f,v=0,h=0,g=0,S=0,A=0,b=0,p=0,m=0,_=0;const C={},M=c.destroy;kt(Se,l,()=>0),kt(Ae,l,()=>[]),Ot(be,l,(Mt(be,l)??0)+1);const P=_t(),[O,k,E,I,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!bt(t)||!bt(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!bt(t)||!bt(e),e.setContent]:nt(0))(o,t,i),[N,x,R]=Tt(()=>ut),V=t=>{t!=v&&(v=t,x(P,void 0,v))},Z=()=>{Mt(be,l)||Mt(Se,l)||!z(Mt(Ae,l)??[])||(Ot(Se,l),Ot(Ae,l),Ot(be,l))},J=e=>{(O&&D(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},$=async()=>{at()&&t.__?.[0]?.()&&await Y()},B=t=>lt(()=>d=t,()=>{d==t&&(d=void 0)}),G=async t=>(2!=v&&(await lt(async()=>{V(1),h++,await ct(()=>rt(async()=>{const a=await e();D(a)?J(a):L(a)&&t?H(t):L(a)||nt(1,a)},e=>{r?.(e),t&&H(t)}))},()=>V(0)),await $()),ut),K=async()=>{const t=p;p=0,t&&t==S&&!_&&(2==v?p=t:await G())},Q=async t=>{const e=++S;let a=!0;if(await X(!0),e==S&&!_){const o=rt(async()=>{const t=await n(async(t,n)=>{if(e==S&&!_)if(n||t){const e=a||2==v||!!b;A++,e&&b++,await lt(async()=>{V(1),h++,await(e?ct(()=>J(n??t)):it(()=>J(n??t),()=>V(0)))},()=>{e&&b--,--A||V(0)}),A||await $()}else 2==v?p=e:await G()});e!=S||_?L(t)||await s(t):u=t},r);await B(o),e!=S||_||await lt(()=>G(t),()=>{a=!1})}return ut},X=async(t=!1)=>{p=0,t||S++;const e=d,a=u;return u=void 0,await B(lt(async()=>{await e},async()=>{L(a)||await rt(()=>s(a),r)})),ut},Y=async t=>(1!=v&&await lt(()=>lt(async()=>{V(2),g++,await ct(()=>rt(()=>a(k,t),r))},()=>V(0)),K),ut),tt=async()=>{const e=++m;return await et(!0),e!=m||_||(await Y(),e!=m||_||(y=t.addDidFinishTransactionListener(()=>{if(e==m&&!_){const t=E();I(t)&&rt(()=>Y(t))}}))),ut},et=async(e=!1)=>{e||m++;const a=y;return y=void 0,L(a)||t.delListener(a),ut},at=()=>!L(y),st=async(t=!1)=>{const[e,a]=t?[et,X]:[X,et];return await lt(()=>e(),async()=>{await a()}),ut},ct=async(...t)=>{let e,a=!1;const n=j(n=>z(t)?n():U(Mt(Ae,l),...F(t,(s,o)=>{const c=o==T(t)-1;return[async()=>{let t;f=j(e=>t=e),await lt(async()=>{try{await rt(s,r)}catch(t){a||(a=!0,e=t)}c&&n()},()=>{f=void 0,t()})},c?n:void 0,C]})));if(await(async()=>{if(!Mt(Se,l)){Ot(Se,l,1);const t=Mt(Ae,l);let e=0;await lt(async()=>{for(;e<T(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{q(t,e),Ot(Se,l,0),Z()})}})(),await n,a)throw e;return ut},ut={load:G,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!L(u),save:Y,startAutoSave:tt,stopAutoSave:et,isAutoSaving:at,startAutoPersisting:async(t,e=!1)=>{const[a,n,s,r]=e?[tt,Q,et,X]:[Q,tt,X,et],o=a(t),c=e?m:S;await o;const i=n(t),l=e?S:m;try{await i}catch(t){throw l==(e?S:m)&&await ot(r),c==(e?m:S)&&await ot(s),t}return ut},stopAutoPersisting:st,getStatus:()=>v,addStatusListener:t=>N(t,P),delListener:e=>(R(e),t),schedule:ct,getStore:()=>t,getStats:()=>({loads:h,saves:g}),...c,destroy:async()=>(L(w)&&(_=1,w=(async()=>{const t=Mt(Ae,l),e=W(t,([,t,e])=>e!=C||(t?.(),!1)),a=f;q(t),U(t,...e),await lt(()=>lt(()=>lt(st,()=>a),()=>M?.()),()=>{const t=(Mt(be,l)??1)-1;Ot(be,l,t||void 0),Z()})})()),await w,ut)};return ft(ut)})(t,async()=>{const t=await C();return!t||bt(t[0][0])&&bt(t[1][0])?void 0:t},async(e,a)=>a?p(null,A(),3,a):p(null,A(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,i,2,{startSync:async t=>(y=1,await M.startAutoPersisting(t)),stopSync:async()=>(y=0,await M.stopAutoPersisting(),M),destroy:async()=>(v=!0,b(at(3,"destroyed")),u(),await M.stopSync(),M),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,a,n,s)=>{if(v)return;if(!ce(a,n,s))return void i?.(at(14));const r=y||M.isAutoLoading();f++,0==n?k(Mt(S,a),([t,a])=>P(t)||t==e?a(s,e):0):2==n&&r?C(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(i):3==n&&r?d?.(void 0,s):k(1==n&&(y||M.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{p(e,a,0,t)})},b),M})(o[1].getStore(),(e,n,s,o)=>V(((t,e,n,s,r)=>{const o=t??a,c=xt([e,n,s]),i=p(r??0);if(L(r)||i<1)return[ye(o,c)];const l=((t,e)=>{const n=[];let s=a,r=0;for(let o=0;o<T(t);o++){const c=t.charCodeAt(o);let i=H(t,o,o+1);c>=55296&&c<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(i+=H(t,++o,o+1));const l=Xt(i);r>0&&r+l>e&&(U(n,s),s=a,r=0),s+=i,r+=l}return U(n,s),n})(c,A(i,b(Xt(c)/1e3)+3)),u=T(l);if(1==u)return[ye(o,c)];const d=Jt();return F(l,(t,e)=>ye(o,Z([d,e,u,t],Ut)))})(e,n,s,o,r),e=>mt(t,ee,e)),t=>{o[3]=((t,e=1)=>ue((e,a,n,s,r)=>t(e,n,s,r),e,void 0,void 0))(t,s)[0]},0,s,0,0,M),o[5]=D(c)?c[1]:t=>0)})(o,t),o})(t,!!c):c;return Ot(i[0],n,o),Y(y,[t],n,1),[i,(async()=>{let e,a=!1;if(await rt(async()=>{await i[2],G(i[0],n)&&!i[4]&&await(t=>{const e=t[1];return t[3]||(t[3]=(async()=>{2==e[0]&&await(async t=>{t[0]=3,await t[1].startAutoLoad(),await t[1].startAutoSave(),await t[2].startSync(),t[5](t[1].getStore()),t[0]=1})(e);const a=e[4];gt(e),V(a,([e,a])=>mt(t,e,a))})()),t[3]})(i)},t=>{e=t,a=!0}),a)throw await rt(()=>zt(t,i,n),M),e})()]},jt=S(t,"connection",(t,e)=>{Ht(f,t),ut(t,l,M),C?t.close():k(u(e.url,pe),([,n])=>k(e.headers["sec-websocket-key"],e=>{t.protocol==te?((t,e,n)=>{const r=ae(t,M),[l,u]=((t,e,n,s,r,o,c,i)=>{const l=_t(),u=_t(),d=[0,0],y=Dt();let w=0,f=!1,v=!0;const h=(t,e,a)=>r(((t,e,a)=>ye(ee,xt([t,-1,[e,a]])))(t,e,a)),g=t=>{tt(l,t),Mt(u,t)?.[1](),tt(u,t)},S=()=>{Lt(u,(t,e)=>e[1]()),X(u)},A=t=>{v&&(v=!1,S(),c(t))},b=t=>{t[2]||(t[2]=1,w--,tt(y,t))},p=t=>t[1]??=(async()=>{try{const e=n(t[0]);L(e)?b(t):await e}finally{b(t)}})();return[n=>{if(!v)return;if(Yt(Xt(n)))return void A(at(et,"socket"));const r=(n=>{let s=!1;return le(n,(n,r)=>{if(n==ee){const[n,o,c]=ie(r,!0)??[],u=c?.[0],d=c?.[1];-1==o&&D(c)&&2==T(c)&&(0==u?E(n)&&1==d:1==u?E(n)&&E(d)&&(we(d)||fe(d)):2==u&&P(n)&&E(d)&&(we(d)||fe(d)))&&(s=!0,((n,s,r)=>{const o=((n,s,r)=>{if(0==s)f=!0,h(n,s,r);else if(f&&1==s){const o=G(l,r);if(we(r)||!o&&(B(l)>=100||w>=200))return void A(at(et,"channels"));if(!o){const o=t+(t?"/":a)+r;let c;w++;try{c=e(o,r)}catch(t){throw w--,t}const[i,u]=c,d=[i];return Ht(y,d),Ot(l,r,d),h(n,s,r),u?u.catch(t=>{throw Mt(l,r)===d&&g(r),d[1]||b(d),t}):void 0}h(n,s,r)}else if(f&&2==s){if(we(r))return void A(at(et,"channels"));const t=Mt(l,r);return g(r),L(t)?void 0:p(t)}})(n,s,r);o?.catch(t=>st(()=>i?.(t)))})(n,u,d))}}),s})(n),c=(t=>{let e=!1;return le(t,(t,a)=>{"M"==t&&le(a,(t,a)=>{we(t)?(e=!0,A(at(et,"channels"))):fe(t)&&(e=!0,((t,e)=>{const a=f?Mt(l,t):void 0;L(a)?A(at(14)):kt(u,t,()=>ue((t,e)=>s(a[0],t,e),o,A,d))[0](e)})(t,a))})}),e})(n);r||c||A(at(14))},()=>(v=!1,S(),lt(async()=>{let t,e=!1;if(await R(F(Q(y),async a=>{try{await p(a)}catch(a){e||(t=a,e=!0)}})),e)throw t},()=>{X(l),S()}))]})(n,(a,n)=>{const[s,r]=Nt(a,e,[t,n]);return[[a,s],r]},([t,a])=>zt(t,a,e),([,t],a,n)=>Et(t,e,a,n),e=>{const a=Xt(e);Yt(a)||de(t,a)?dt(t,"socket"):t.readyState==t.OPEN&&t.send(e)},s,r,M);ut(t,i,t=>l(t.toString(o))),ut(t,c,()=>u().catch(M))})(t,e,n):(async(t,e,a)=>{const[n,r]=Nt(a,e,[t]),[l,u]=ue((t,a)=>Et(n,e,t,a),s,ae(t,M));ut(t,i,t=>l(t.toString(o))),ut(t,c,()=>{u(),zt(a,n,e).catch(M)}),await r})(t,e,n).catch(M)})),ut(t,c,()=>{var e;tt(f,t),k(Mt(_,e=t),t=>V(t,t=>t())),tt(_,e)})});U(m,jt);const Rt=async()=>{const e=async t=>{let e=[!1,void 0];return await rt(t,t=>e=[!0,t]),e},a=await R([e(()=>j((e,a)=>t.close(t=>t?a(t):e()))),...F(Q(f),t=>e(()=>(async t=>{t.readyState!=t.CLOSED&&await j((e,a)=>{const n=S(t,c,()=>{n(),e()});try{t.close()}catch(t){n(),a(t)}})})(t)))]),n=$(a,([t])=>t);if(n)throw n[1]},Vt={getWebSocketServer:()=>t,getPathIds:()=>Ct(w),getClientIds:t=>Ct(Mt(w,t)?.[0]),addPathIdsListener:t=>O(t,d),addClientIdsListener:(t,e)=>O(e,y,[t]),delListener:t=>(I(t),Vt),getStats:()=>({paths:B(w),clients:J(Pt(w,t=>B(t[0])),(t,e)=>t+e,0)}),destroy:()=>(C||(C=(async()=>{st(jt);let t=[!1,void 0];const e=rt(Rt,e=>t=[!0,e]),a=await R(Pt(w,async(t,e)=>{let a=[!1,void 0];return await rt(()=>It(e,t),t=>a=[!0,t]),a}));await e,V(m,t=>st(t)),Lt(_,(t,e)=>V(e,t=>st(t))),X(_),X(v),X(w),X(f);const n=t[0]?t:$(a,([t])=>t);if(n)throw n[1]})()),C)};return ft(Vt)};export{me as createWsServer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DurableObject as t}from"cloudflare:workers";const e=t=>typeof t,n="tinybase",s="",a=e(s),r=e(!0),o=e(0),i=(t,e)=>t?.match(e),c=Promise,l=Math,u=t=>(e,n,s)=>t(e)?s?.():n(e),d=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),y=l.max,w=l.ceil,f=l.floor,v=l.random,S=isFinite,p=Number.isInteger,b=t=>null==t,C=t=>void 0===t,m=t=>null===t,A=u(b),M=u(C),_=t=>e(t)==a,k=t=>e(t)==o,P=t=>Array.isArray(t),T=(t,e,n)=>t.slice(e,n),I=t=>t.length,x=t=>0==I(t),D=(t,e)=>t.test(e),L=()=>{},z=t=>new c(t),R=(t,e)=>t.forEach(e),H=(t,e="")=>t.join(e),E=(t,e)=>t.map(e),O=(t,e=I(t))=>t.splice(0,e),W=(t,...e)=>t.push(...e),q=t=>t?.size??0,F=t=>C(t)||0==q(t),N=(t,e)=>t?.forEach(e),j=(t,e)=>t?.delete(e),U=Object,V=t=>U.getPrototypeOf(t),Z=t=>!b(t)&&A(V(t),t=>t==U.prototype||b(V(t)),()=>!0),J=U.keys,$=U.freeze,B=(t,e)=>U.hasOwn(t,e),G=(t,e,n)=>(U.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),K=(t=[])=>{const e=U.create(null);return R(t,([t,n])=>G(e,t,n)),e},Q=(t,e)=>R(J(t),n=>e(t[n],n)),X=(t,e)=>{for(const n in t)if(B(t,n)&&!e(t[n],n))return!1;return!0},Y=t=>Z(t)&&0==(t=>I(J(t)))(t),tt=(t,e,n)=>(B(t,e)||G(t,e,n()),t[e]),et=Map,nt=t=>new et(t),st=(t,e)=>t?.get(e),at=(t,e)=>N(t,(t,n)=>e(n,t)),rt=(t,e,n)=>C(n)?(j(t,e),t):t?.set(e,n),ot=(t,e,n,s)=>{let a=st(t,e);var r,o;return r=t,o=e,r?.has(o)?s?.(a):rt(t,e,a=n()),a},it=(t,e,n,s,a=0)=>M((n?ot:st)(t,e[a],a>I(e)-2?n:nt),r=>{if(a>I(e)-2)return s?.(r)&&rt(t,e[a]),r;const o=it(r,e,n,s,a+1);return F(r)&&rt(t,e[a]),o}),ct=JSON.stringify,lt=JSON.parse,ut=t=>ct(t,(t,e)=>C(e)?"":e),dt=t=>""===t?void 0:P(t)?E(t,dt):Z(t)?((t,e)=>{const n=K();return Q(t,(t,s)=>G(n,s,e(t,s))),n})(t,dt):t,gt=((t,e="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e,void 0))(),ht=nt(E(gt,(t,e)=>[t,e])),yt=(t,e)=>st(ht,t[e])??0,wt=d.crypto?t=>d.crypto.getRandomValues(t):t=>E(t,()=>f(256*v())),ft=(t=16)=>{return e=(t,e)=>t+gt[63&e],wt(new Uint8Array(t)).reduce(e,"");var e},vt=15,St=(t,e)=>Error(n+":"+t+(C(e)?s:":"+e)),pt=(t,e)=>{throw St(t,e)},bt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Ct=(t,e)=>{try{return t()}finally{e()}},mt=async(t,e)=>{try{return await t()}finally{await e()}};new d.TextEncoder;const At=2**36,Mt=2**30,_t=/^[-0-9A-Z_a-z]{16}$/,kt="\n",Pt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Tt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,It=16777216,xt=t=>{let e=0;for(let n=0;n<I(t);n++){const s=t.charCodeAt(n);s<128?e++:s<2048?e+=2:s>=55296&&s<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Dt=t=>k(t)&&S(t)&&p(t)&&t>=0&&t<=4294967295,Lt=(t,e)=>Z(t)&&X(t,t=>e?Lt(t,e-1):Dt(t)),zt=(t,n)=>{return P(t)&&(1==I(t)||2==I(t)&&_(t[1])&&(c=1/0,(i=t[1])==s||_(i)&&D(_t,i)&&(t=>yt(t,0)*At+yt(t,1)*Mt+16777216*yt(t,2)+262144*yt(t,3)+4096*yt(t,4)+64*yt(t,5)+yt(t,6))(i)<=c))&&(n?Z(t[0])&&X(t[0],t=>zt(t,n-1)):(l=t[0],C(l)||!C((t=>{if(m(t))return"null";if(P(t))return"array";if(Z(t))return"object";const n=e(t);return(t=>t==a||t==r)(n)||n==o&&S(t)?n:void 0})(l))));var i,c,l},Rt=t=>P(t)&&2==I(t)&&Dt(t[0])&&Dt(t[1]),Ht=(t,e,n)=>(m(t)||_(t))&&k(e)&&S(e)&&p(e)&&((t,e)=>0==t?(t=>Rt(t)||zt(t,3)||zt(t,1)||P(t)&&2==I(t)&&zt(t[0],3)&&(Lt(t[1],0)||Lt(t[1],1)))(e):1==t?e===s:2==t?Rt(e):3==t?(t=>P(t)&&(2==I(t)||3==I(t)&&1===t[2])&&zt(t[0],3)&&zt(t[1],1))(e):4==t?Lt(e,0):5==t?Lt(e,1):6==t?Lt(e,2):7==t&&Lt(e,0))(e,n),Et=(t,e=!1)=>(()=>{try{return(()=>{const n=dt(lt(t));return P(n)&&3==I(n)&&(Ht(n[0],n[1],n[2])||e&&(m(n[0])||_(n[0]))&&-1==n[1])?n:void 0})()}catch{return}})(),Ot=(t,e)=>{const n=t.indexOf(kt);return-1!==n&&(e(T(t,0,n),T(t,n+1)),!0)},Wt=(t,e=1,n)=>{const s=nt();let a=0,r=!0;const o=(t,e)=>{h(e[4]),a-=e[5],j(s,t)},c=(t=St(14))=>{r&&(r=!1,at(s,(t,e)=>h(e[4])),s.clear(),a=0,n?.(t))};return n=>{r&&(xt(n)>It?c(St(vt,i(n,Tt)?"fragments":"socket")):Ot(n,(n,r)=>{const l=Et(r);if(l)return void t(n,[r],...l);const[,u,d,h,y]=i(r,Pt)??[];if(u){const i=parseInt(d),l=parseInt(h);if(l>1e3)return void c(St(vt,"fragments"));if(l>0&&i>=0&&i<l){const d=n+kt+u;let h=st(s,d);if(!h){if(q(s)>=100)return void c(St(vt,"fragments"));h=[[],[],l,l,g(()=>{const t=st(s,d);t&&o(d,t)},e),0],rt(s,d,h)}const[w,f]=h;if(l!=h[3]||!C(w[i]))return void c();{const t=xt(y);if(a+t>It)return void c(St(vt,"fragments"));w[i]=y,f[i]=r,h[2]--,h[5]+=t,a+=t}return void(0==h[2]&&(o(d,h),((e,n,s)=>{const a=Et(s);a?t(e,n,...a):c()})(n,f,H(w))))}}c()})||c())}},qt=(t,e)=>t+kt+e,Ft=(t,e)=>e?[t,e]:[t],Nt=(t,e)=>((t??s)>(e??s)?t:e)??s,jt=(t="")=>Ft(K(),t),Ut=/^\d+$/,Vt=t=>new Set(P(t)||C(t)?t:[t]),Zt=nt(),Jt=nt(),$t=nt();nt();const Bt=/\/([^?]*)/,Gt="S",Kt=t=>i(new URL(t.url).pathname,Bt)?.[1]??s,Qt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,Xt=(t,e=null,n=null)=>new Response(n,{status:t,webSocket:e}),Yt=()=>Xt(426,null,"Upgrade required");class te extends t{#t;#e=(()=>new WeakMap)();constructor(t,e){super(t,e),this.ctx.blockConcurrencyWhile(async()=>await M(await this.createPersister(),async t=>{const e=this.getRequestTimeoutSeconds(),n=((t,e,n,a,r,o,i,c,l={},u=L)=>{let d,y=0,w=0,f=0,v=!1;const S=nt(),p=()=>ft(11),b=t=>at(S,(e,[,,n,s])=>{h(s),j(S,e),n(t)}),A=(t,n,s,a)=>{w++,e(t,n,s,a)},_=async(t,e,n,a)=>z((o,i)=>{if(q(S)>=100)return void i(St(vt,"requests"));const c=a+"."+ft(4),l=g(()=>{j(S,c),i(St(3,(t??s)+"."+c+"."+e))},r);rt(S,c,[t,(t,e)=>{h(l),j(S,c),o([t,e,a])},i,l]);try{A(t,c,e,n)}catch(t){h(l),j(S,c),i(t)}}),k=(t,[e,n])=>{Q(e,([e,n],s)=>{const a=tt(t[0],s,jt);Q(e,([t,e],n)=>{const s=tt(a[0],n,jt);Q(t,([t,e],n)=>G(s[0],n,Ft(t,e))),s[1]=Nt(s[1],e)}),a[1]=Nt(a[1],n)}),t[1]=Nt(t[1],n)},T=(e=null,n,a=p())=>bt(async()=>{C(n)&&([n,e,a]=await _(null,1,s,a));const[r,o]=n,[i,c]=t.getMergeableContentHashes();let l=jt();if(i!=r){const[n,s]=(await _(e,4,t.getMergeableTableHashes(),a))[0];if(l=n,!Y(s)){const[n,r]=(await _(e,5,t.getMergeableRowHashes(s),a))[0];if(k(l,n),!Y(r)){const n=(await _(e,6,t.getMergeableCellHashes(r),a))[0];k(l,n)}}}return[l,c==o?jt():(await _(e,7,t.getMergeableValueHashes(),a))[0],1]},c),H=((t,e,n,a,r,o,i,c={},l=0,u=[])=>{let d,g,h,y,w,f=0,v=0,S=0,p=0,b=0,A=0,_=0,k=0,T=0;const L={},H=c.destroy;ot(Zt,u,()=>0),ot(Jt,u,()=>[]),rt($t,u,(st($t,u)??0)+1);const q=nt(),[U,V,Z,J,B]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!Y(t)||!Y(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!Y(t)||!Y(e),e.setContent]:pt(0))(i,t,l),[G,K,Q]=(t=>{let e;const[n,a]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??s+e++,e=>{D(Ut,e)&&I(t)<1e3&&W(t,e)}]})(),r=nt(),o=(t,n,a,o)=>{let i,c=!1;if(R(((t,e=[s])=>{const n=[],a=(t,s)=>s==I(e)?W(n,t):m(e[s])?N(t,t=>a(t,s+1)):R([e[s],null],e=>a(st(t,e),s+1));return a(t,0),n})(n,a),n=>N(n,n=>{const s=()=>st(r,n)[0](e,...a??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(s):s()})),c)throw i};return[(a,o,i,c=[],l=()=>[])=>{e??=t();const u=n(1);var d,g;return rt(r,u,[a,o,i,c,l]),d=it(o,i??[s],Vt),g=u,d?.add(g),u},(t,e,...n)=>o(!1,t,e,n),t=>M(st(r,t),([,e,n])=>(it(e,n??[s],void 0,e=>(j(e,t),F(e)?1:0)),rt(r,t),a(t),n)),t=>M(st(r,t),([t,,n=[],s,a])=>{const r=(...o)=>{const i=I(o);i==I(n)?t(e,...o,...a(o)):m(n[i])?R(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,n[i])};r()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>At),X=t=>{t!=f&&(f=t,K(q,void 0,f))},tt=()=>{st($t,u)||st(Zt,u)||!x(st(Jt,u)??[])||(rt(Zt,u),rt(Jt,u),rt($t,u))},et=e=>{(U&&P(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},at=async()=>{ft()&&t.__?.[0]?.()&&await ht()},ct=t=>mt(()=>g=t,()=>{g==t&&(g=void 0)}),lt=async t=>(2!=f&&(await mt(async()=>{X(1),v++,await St(()=>bt(async()=>{const n=await e();P(n)?et(n):C(n)&&t?B(t):C(n)||pt(1,n)},e=>{o?.(e),t&&B(t)}))},()=>X(0)),await at()),At),ut=async()=>{const t=_;_=0,t&&t==p&&!T&&(2==f?_=t:await lt())},dt=async t=>{const e=++p;let n=!0;if(await gt(!0),e==p&&!T){const s=bt(async()=>{const t=await a(async(t,s)=>{if(e==p&&!T)if(s||t){const e=n||2==f||!!A;b++,e&&A++,await mt(async()=>{X(1),v++,await(e?St(()=>et(s??t)):Ct(()=>et(s??t),()=>X(0)))},()=>{e&&A--,--b||X(0)}),b||await at()}else 2==f?_=e:await lt()});e!=p||T?C(t)||await r(t):d=t},o);await ct(s),e!=p||T||await mt(()=>lt(t),()=>{n=!1})}return At},gt=async(t=!1)=>{_=0,t||p++;const e=g,n=d;return d=void 0,await ct(mt(async()=>{await e},async()=>{C(n)||await bt(()=>r(n),o)})),At},ht=async t=>(1!=f&&await mt(()=>mt(async()=>{X(2),S++,await St(()=>bt(()=>n(V,t),o))},()=>X(0)),ut),At),yt=async()=>{const e=++k;return await wt(!0),e!=k||T||(await ht(),e!=k||T||(h=t.addDidFinishTransactionListener(()=>{if(e==k&&!T){const t=Z();J(t)&&bt(()=>ht(t))}}))),At},wt=async(e=!1)=>{e||k++;const n=h;return h=void 0,C(n)||t.delListener(n),At},ft=()=>!C(h),vt=async(t=!1)=>{const[e,n]=t?[wt,gt]:[gt,wt];return await mt(()=>e(),async()=>{await n()}),At},St=async(...t)=>{let e,n=!1;const s=z(s=>x(t)?s():W(st(Jt,u),...E(t,(a,r)=>{const i=r==I(t)-1;return[async()=>{let t;w=z(e=>t=e),await mt(async()=>{try{await bt(a,o)}catch(t){n||(n=!0,e=t)}i&&s()},()=>{w=void 0,t()})},i?s:void 0,L]})));if(await(async()=>{if(!st(Zt,u)){rt(Zt,u,1);const t=st(Jt,u);let e=0;await mt(async()=>{for(;e<I(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{O(t,e),rt(Zt,u,0),tt()})}})(),await s,n)throw e;return At},At={load:lt,startAutoLoad:dt,stopAutoLoad:gt,isAutoLoading:()=>!C(d),save:ht,startAutoSave:yt,stopAutoSave:wt,isAutoSaving:ft,startAutoPersisting:async(t,e=!1)=>{const[n,s]=e?[yt,dt]:[dt,yt];return await n(t),await s(t),At},stopAutoPersisting:vt,getStatus:()=>f,addStatusListener:t=>G(t,q),delListener:e=>(Q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:v,saves:S}),...c,destroy:async()=>(C(y)&&(T=1,y=(async()=>{const t=st(Jt,u),e=(n=([,t,e])=>e!=L||(t?.(),!1),t.filter(n));var n;const s=w;O(t),W(t,...e),await mt(()=>mt(()=>mt(vt,()=>s),()=>H?.()),()=>{const t=(st($t,u)??1)-1;rt($t,u,t||void 0),tt()})})()),await y,At)};return $(At)})(t,async()=>{const t=await T();return!t||Y(t[0][0])&&Y(t[1][0])?void 0:t},async(e,n)=>n?A(null,p(),3,n):A(null,p(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(y=1,await H.startAutoPersisting(t)),stopSync:async()=>(y=0,await H.stopAutoPersisting(),H),destroy:async()=>(v=!0,b(St(3,"destroyed")),u(),await H.stopSync(),H),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,n,s,a)=>{if(v)return;if(!Ht(n,s,a))return;const r=y||H.isAutoLoading();f++,0==s?M(st(S,n),([t,n])=>m(t)||t==e?n(a,e):0):2==s&&r?T(e,a,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==s&&r?d?.(void 0,a):M(1==s&&(y||H.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(a):5==s?t.getMergeableRowDiff(a):6==s?t.getMergeableCellDiff(a):7==s?t.getMergeableValueDiff(a):void 0,t=>{A(e,n,0,t)})},b),H})(t.getStore(),(t,e,n,a)=>R(((t,e,n,a,r)=>{const o=t??s,i=ut([e,n,a]),c=f(r??0);if(C(r)||c<1)return[qt(o,i)];const l=((t,e)=>{const n=[];let a=s,r=0;for(let o=0;o<I(t);o++){const i=t.charCodeAt(o);let c=T(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=T(t,++o,o+1));const l=xt(c);r>0&&r+l>e&&(W(n,a),a=s,r=0),a+=c,r+=l}return W(n,a),n})(i,y(c,w(xt(i)/1e3)+3)),u=I(l);if(1==u)return[qt(o,i)];const d=ft();return E(l,(t,e)=>qt(o,H([d,e,u,t],kt)))})(t,e,n,a,this.getFragmentSize()),t=>this.#n(Gt,t)),t=>this.#t=((t,e=1)=>Wt((e,n,s,a,r)=>t(e,s,a,r),e,void 0))(t,e),0,e);await t.load(),await t.startAutoSave(),g(n.startSync)}))}fetch(t){const e=Kt(t);return M(Qt(t),t=>{const[n,a]=(r=new WebSocketPair,U.values(r));var r;return x(this.#s())&&this.onPathId(e,1),this.ctx.acceptWebSocket(a,[t,e]),this.onClientId(e,t,1),a.send(qt(Gt,ut([null,1,s]))),Xt(101,n)},Yt)}webSocketMessage(t,e){M(this.ctx.getTags(t)[0],s=>{let a=this.#e.get(t);a||(a=Wt((e,n)=>R(n,n=>this.#n(s,qt(e,n),t)),this.getRequestTimeoutSeconds(),((t,e)=>{let s=!0;return a=>{s&&(s=!1,Ct(()=>e?.(a),()=>{return t.close((e=a.message,s=n+":"+vt,e.startsWith(s)?1013:1007),a.message);var e,s}))}})(t,t=>this.onIgnoredError(t))),this.#e.set(t,a)),a(e.toString())})}webSocketClose(t){this.#e.delete(t);const[e,n]=this.ctx.getTags(t);this.onClientId(n,e,-1),1==I(this.#s())&&this.onPathId(n,-1)}#n(t,e,n){Ot(e.toString(),(e,a)=>{const r=qt(t,a);this.onMessage(t,e,a),e==s?(t!=Gt&&this.#t?.(r),R(this.#s(),t=>{t!=n&&t.send(r)})):e==Gt?this.#t?.(r):e!=t&&this.#s(e)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return M(this.#s()[0],t=>this.ctx.getTags(t)?.[1]??s)??s}getClientIds(){return E(this.#s(),t=>this.ctx.getTags(t)[0])}getFragmentSize(){}getRequestTimeoutSeconds(){return 1}onIgnoredError(t){}onPathId(t,e){}onClientId(t,e,n){}onMessage(t,e,n){}}const ee=t=>(e,n)=>Qt(e)?n[t].get(n[t].idFromName(Kt(e))).fetch(e):Yt();export{te as WsServerDurableObject,ee as getWsServerDurableObjectFetch};
|
|
1
|
+
import{DurableObject as t}from"cloudflare:workers";const e=t=>typeof t,s="tinybase",n="",a=e(n),r=e(!0),o=e(0),i=(t,e)=>t?.match(e),c=Promise,l=Math,u=t=>(e,s,n)=>t(e)?n?.():s(e),d=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),w=l.max,y=l.ceil,f=l.floor,v=l.random,S=isFinite,p=Number.isInteger,b=t=>null==t,C=t=>void 0===t,m=t=>null===t,A=u(b),M=u(C),_=t=>e(t)==a,k=t=>e(t)==o,P=t=>Array.isArray(t),T=(t,e,s)=>t.slice(e,s),I=t=>t.length,x=t=>0==I(t),D=(t,e)=>t.test(e),L=()=>{},z=t=>new c(t),R=(t,e)=>t.forEach(e),H=(t,e="")=>t.join(e),E=(t,e)=>t.map(e),O=(t,e=I(t))=>t.splice(0,e),W=(t,...e)=>t.push(...e),q=t=>t?.size??0,F=t=>C(t)||0==q(t),N=(t,e)=>t?.forEach(e),j=(t,e)=>t?.delete(e),U=Object,V=t=>U.getPrototypeOf(t),Z=t=>!b(t)&&A(V(t),t=>t==U.prototype||b(V(t)),()=>!0),J=U.keys,$=U.freeze,B=(t,e)=>U.hasOwn(t,e),G=(t,e,s)=>(U.defineProperty(t,e,{configurable:!0,enumerable:!0,value:s,writable:!0}),s),K=(t=[])=>{const e=U.create(null);return R(t,([t,s])=>G(e,t,s)),e},Q=(t,e)=>R(J(t),s=>e(t[s],s)),X=(t,e)=>{for(const s in t)if(B(t,s)&&!e(t[s],s))return!1;return!0},Y=t=>Z(t)&&0==(t=>I(J(t)))(t),tt=(t,e,s)=>(B(t,e)||G(t,e,s()),t[e]),et=Map,st=t=>new et(t),nt=(t,e)=>t?.get(e),at=(t,e)=>N(t,(t,s)=>e(s,t)),rt=(t,e,s)=>C(s)?(j(t,e),t):t?.set(e,s),ot=(t,e,s,n)=>{let a=nt(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(a):rt(t,e,a=s()),a},it=(t,e,s,n,a=0)=>M((s?ot:nt)(t,e[a],a>I(e)-2?s:st),r=>{if(a>I(e)-2)return n?.(r)&&rt(t,e[a]),r;const o=it(r,e,s,n,a+1);return F(r)&&rt(t,e[a]),o}),ct=JSON.stringify,lt=JSON.parse,ut=t=>ct(t,(t,e)=>C(e)?"":e),dt=t=>""===t?void 0:P(t)?E(t,dt):Z(t)?((t,e)=>{const s=K();return Q(t,(t,n)=>G(s,n,e(t,n))),s})(t,dt):t,gt=((t,e="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e,void 0))(),ht=st(E(gt,(t,e)=>[t,e])),wt=(t,e)=>nt(ht,t[e])??0,yt=d.crypto?t=>d.crypto.getRandomValues(t):t=>E(t,()=>f(256*v())),ft=(t=16)=>{return e=(t,e)=>t+gt[63&e],yt(new Uint8Array(t)).reduce(e,"");var e},vt=15,St=(t,e)=>Error(s+":"+t+(C(e)?n:":"+e)),pt=(t,e)=>{throw St(t,e)},bt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Ct=(t,e)=>bt(t,t=>{bt(()=>e?.(t))}),mt=(t,e)=>{try{return t()}finally{e()}},At=async(t,e)=>{try{return await t()}finally{await e()}};new d.TextEncoder;const Mt=2**36,_t=2**30,kt=/^[-0-9A-Z_a-z]{16}$/,Pt=t=>new Set(P(t)||C(t)?t:[t]),Tt="\n",It=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,xt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Dt=16777216,Lt=t=>{let e=0;for(let s=0;s<I(t);s++){const n=t.charCodeAt(s);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(s+1)>=56320&&t.charCodeAt(s+1)<=57343?(e+=4,s++):e+=3}return e},zt=t=>k(t)&&S(t)&&p(t)&&t>=0&&t<=4294967295,Rt=(t,e)=>Z(t)&&X(t,t=>e?Rt(t,e-1):zt(t)),Ht=(t,s)=>{return P(t)&&(1==I(t)||2==I(t)&&_(t[1])&&(c=1/0,(i=t[1])==n||_(i)&&D(kt,i)&&(t=>wt(t,0)*Mt+wt(t,1)*_t+16777216*wt(t,2)+262144*wt(t,3)+4096*wt(t,4)+64*wt(t,5)+wt(t,6))(i)<=c))&&(s?Z(t[0])&&X(t[0],t=>Ht(t,s-1)):(l=t[0],C(l)||!C((t=>{if(m(t))return"null";if(P(t))return"array";if(Z(t))return"object";const s=e(t);return(t=>t==a||t==r)(s)||s==o&&S(t)?s:void 0})(l))));var i,c,l},Et=t=>P(t)&&2==I(t)&&zt(t[0])&&zt(t[1]),Ot=(t,e,s)=>(m(t)||_(t))&&k(e)&&S(e)&&p(e)&&((t,e)=>0==t?(t=>Et(t)||Ht(t,3)||Ht(t,1)||P(t)&&2==I(t)&&Ht(t[0],3)&&(Rt(t[1],0)||Rt(t[1],1)))(e):1==t?e===n:2==t?Et(e):3==t?(t=>P(t)&&(2==I(t)||3==I(t)&&1===t[2])&&Ht(t[0],3)&&Ht(t[1],1))(e):4==t?Rt(e,0):5==t?Rt(e,1):6==t?Rt(e,2):7==t&&Rt(e,0))(e,s),Wt=(t,e=!1)=>(()=>{try{return(()=>{const s=dt(lt(t));return P(s)&&3==I(s)&&(Ot(s[0],s[1],s[2])||e&&(m(s[0])||_(s[0]))&&-1==s[1])?s:void 0})()}catch{return}})(),qt=(t,e)=>{const s=t.indexOf(Tt);return-1!==s&&(e(T(t,0,s),T(t,s+1)),!0)},Ft=(t,e=1,s,n)=>{const a=st(),r=[0,0];let o=0,c=!0;const l=(t,e)=>{h(e[4]),o-=e[5],r[0]--,r[1]-=e[5],j(a,t)},u=()=>{at(a,(t,e)=>h(e[4])),r[0]-=q(a),r[1]-=o,a.clear(),o=0},d=(t=St(14))=>{c&&(c=!1,u(),s?.(t))};return[s=>{c&&(Lt(s)>Dt?d(St(vt,i(s,xt)?"fragments":"socket")):qt(s,(s,n)=>{const c=Wt(n);if(c)return void t(s,[n],...c);const[,u,h,w,y]=i(n,It)??[];if(u){const i=parseInt(h),c=parseInt(w);if(c>1e3)return void d(St(vt,"fragments"));if(c>0&&i>=0&&i<c){const h=s+Tt+u;let w=nt(a,h);if(!w&&r[0]>=100)return void d(St(vt,"fragments"));if(!C(w)&&c!=w[3]||!C(w?.[0][i]))return void d();{const t=Lt(n)+(w?0:Lt(h));if(r[1]+t>Dt)return void d(St(vt,"fragments"));w||(w=[[],[],c,c,g(()=>{const t=nt(a,h);t&&l(h,t)},e),0],rt(a,h,w),r[0]++);const[s,u]=w;s[i]=y,u[i]=n,w[2]--,w[5]+=t,o+=t,r[1]+=t}if(0==w[2]){const[e,n]=w;l(h,w),((e,s,n)=>{const a=Wt(n);a?t(e,s,...a):d()})(s,n,H(e))}return}}d()})||d())},u]},Nt=(t,e)=>t+Tt+e,jt=(t,e)=>e?[t,e]:[t],Ut=(t,e)=>((t??n)>(e??n)?t:e)??n,Vt=(t="")=>jt(K(),t),Zt=/^\d+$/,Jt=st(),$t=st(),Bt=st();st();const Gt=/\/([^?]*)/,Kt="S",Qt=t=>i(new URL(t.url).pathname,Gt)?.[1]??n,Xt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,Yt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),te=()=>Yt(426,null,"Upgrade required");class ee extends t{#t;#e=(()=>new WeakMap)();constructor(t,e){super(t,e),this.ctx.blockConcurrencyWhile(async()=>await M(await this.createPersister(),async t=>{const e=this.getRequestTimeoutSeconds(),s=((t,e,s,a,r,o,i,c,l={},u=L)=>{let d,w=0,y=0,f=0,v=!1;const S=st(),p=()=>ft(11),b=t=>at(S,(e,[,,s,n])=>{h(n),j(S,e),s(t)}),A=(t,s,n,a)=>{y++,e(t,s,n,a)},_=async(t,e,s,a)=>z((o,i)=>{if(q(S)>=100)return void i(St(vt,"requests"));const c=a+"."+ft(4),l=g(()=>{j(S,c),i(St(3,(t??n)+"."+c+"."+e))},r);rt(S,c,[t,(t,e)=>{h(l),j(S,c),o([t,e,a])},i,l]);try{A(t,c,e,s)}catch(t){h(l),j(S,c),i(t)}}),k=(t,[e,s])=>{Q(e,([e,s],n)=>{const a=tt(t[0],n,Vt);Q(e,([t,e],s)=>{const n=tt(a[0],s,Vt);Q(t,([t,e],s)=>G(n[0],s,jt(t,e))),n[1]=Ut(n[1],e)}),a[1]=Ut(a[1],s)}),t[1]=Ut(t[1],s)},T=(e=null,s,a=p())=>bt(async()=>{C(s)&&([s,e,a]=await _(null,1,n,a));const[r,o]=s,[i,c]=t.getMergeableContentHashes();let l=Vt();if(i!=r){const[s,n]=(await _(e,4,t.getMergeableTableHashes(),a))[0];if(l=s,!Y(n)){const[s,r]=(await _(e,5,t.getMergeableRowHashes(n),a))[0];if(k(l,s),!Y(r)){const s=(await _(e,6,t.getMergeableCellHashes(r),a))[0];k(l,s)}}}return[l,c==o?Vt():(await _(e,7,t.getMergeableValueHashes(),a))[0],1]},c),H=((t,e,s,a,r,o,i,c={},l=0,u=[])=>{let d,g,h,w,y,f=0,v=0,S=0,p=0,b=0,A=0,_=0,k=0,T=0;const L={},H=c.destroy;ot(Jt,u,()=>0),ot($t,u,()=>[]),rt(Bt,u,(nt(Bt,u)??0)+1);const q=st(),[U,V,Z,J,B]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!s),([[t],[e]])=>!Y(t)||!Y(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!Y(t)||!Y(e),e.setContent]:pt(0))(i,t,l),[G,K,Q]=(t=>{let e;const[s,a]=(()=>{const t=[];let e=0;return[s=>(s?t.shift():null)??n+e++,e=>{D(Zt,e)&&I(t)<1e3&&W(t,e)}]})(),r=st(),o=(t,s,a,o)=>{let i,c=!1;if(R(((t,e=[n])=>{const s=[],a=(t,n)=>n==I(e)?W(s,t):m(e[n])?N(t,t=>a(t,n+1)):R([e[n],null],e=>a(nt(t,e),n+1));return a(t,0),s})(s,a),s=>N(s,s=>{const n=()=>nt(r,s)[0](e,...a??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(n):n()})),c)throw i};return[(a,o,i,c=[],l=()=>[])=>{e??=t();const u=s(1);var d,g;return rt(r,u,[a,o,i,c,l]),d=it(o,i??[n],Pt),g=u,d?.add(g),u},(t,e,...s)=>o(!1,t,e,s),t=>M(nt(r,t),([,e,s])=>(it(e,s??[n],void 0,e=>(j(e,t),F(e)?1:0)),rt(r,t),a(t),s)),t=>M(nt(r,t),([t,,s=[],n,a])=>{const r=(...o)=>{const i=I(o);i==I(s)?t(e,...o,...a(o)):m(s[i])?R(n[i]?.(...o)??[],t=>r(...o,t)):r(...o,s[i])};r()}),(t,e,...s)=>o(!0,t,e,s)]})(()=>Mt),X=t=>{t!=f&&(f=t,K(q,void 0,f))},tt=()=>{nt(Bt,u)||nt(Jt,u)||!x(nt($t,u)??[])||(rt(Jt,u),rt($t,u),rt(Bt,u))},et=e=>{(U&&P(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},at=async()=>{ft()&&t.__?.[0]?.()&&await ht()},ct=t=>At(()=>g=t,()=>{g==t&&(g=void 0)}),lt=async t=>(2!=f&&(await At(async()=>{X(1),v++,await St(()=>bt(async()=>{const s=await e();P(s)?et(s):C(s)&&t?B(t):C(s)||pt(1,s)},e=>{o?.(e),t&&B(t)}))},()=>X(0)),await at()),Mt),ut=async()=>{const t=_;_=0,t&&t==p&&!T&&(2==f?_=t:await lt())},dt=async t=>{const e=++p;let s=!0;if(await gt(!0),e==p&&!T){const n=bt(async()=>{const t=await a(async(t,n)=>{if(e==p&&!T)if(n||t){const e=s||2==f||!!A;b++,e&&A++,await At(async()=>{X(1),v++,await(e?St(()=>et(n??t)):mt(()=>et(n??t),()=>X(0)))},()=>{e&&A--,--b||X(0)}),b||await at()}else 2==f?_=e:await lt()});e!=p||T?C(t)||await r(t):d=t},o);await ct(n),e!=p||T||await At(()=>lt(t),()=>{s=!1})}return Mt},gt=async(t=!1)=>{_=0,t||p++;const e=g,s=d;return d=void 0,await ct(At(async()=>{await e},async()=>{C(s)||await bt(()=>r(s),o)})),Mt},ht=async t=>(1!=f&&await At(()=>At(async()=>{X(2),S++,await St(()=>bt(()=>s(V,t),o))},()=>X(0)),ut),Mt),wt=async()=>{const e=++k;return await yt(!0),e!=k||T||(await ht(),e!=k||T||(h=t.addDidFinishTransactionListener(()=>{if(e==k&&!T){const t=Z();J(t)&&bt(()=>ht(t))}}))),Mt},yt=async(e=!1)=>{e||k++;const s=h;return h=void 0,C(s)||t.delListener(s),Mt},ft=()=>!C(h),vt=async(t=!1)=>{const[e,s]=t?[yt,gt]:[gt,yt];return await At(()=>e(),async()=>{await s()}),Mt},St=async(...t)=>{let e,s=!1;const n=z(n=>x(t)?n():W(nt($t,u),...E(t,(a,r)=>{const i=r==I(t)-1;return[async()=>{let t;y=z(e=>t=e),await At(async()=>{try{await bt(a,o)}catch(t){s||(s=!0,e=t)}i&&n()},()=>{y=void 0,t()})},i?n:void 0,L]})));if(await(async()=>{if(!nt(Jt,u)){rt(Jt,u,1);const t=nt($t,u);let e=0;await At(async()=>{for(;e<I(t);){const s=t[e++];s[2]=void 0,await s[0]()}},()=>{O(t,e),rt(Jt,u,0),tt()})}})(),await n,s)throw e;return Mt},Mt={load:lt,startAutoLoad:dt,stopAutoLoad:gt,isAutoLoading:()=>!C(d),save:ht,startAutoSave:wt,stopAutoSave:yt,isAutoSaving:ft,startAutoPersisting:async(t,e=!1)=>{const[s,n,a,r]=e?[wt,dt,yt,gt]:[dt,wt,gt,yt],o=s(t),i=e?k:p;await o;const c=n(t),l=e?p:k;try{await c}catch(t){throw l==(e?p:k)&&await Ct(r),i==(e?k:p)&&await Ct(a),t}return Mt},stopAutoPersisting:vt,getStatus:()=>f,addStatusListener:t=>G(t,q),delListener:e=>(Q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:v,saves:S}),...c,destroy:async()=>(C(w)&&(T=1,w=(async()=>{const t=nt($t,u),e=(s=([,t,e])=>e!=L||(t?.(),!1),t.filter(s));var s;const n=y;O(t),W(t,...e),await At(()=>At(()=>At(vt,()=>n),()=>H?.()),()=>{const t=(nt(Bt,u)??1)-1;rt(Bt,u,t||void 0),tt()})})()),await w,Mt)};return $(Mt)})(t,async()=>{const t=await T();return!t||Y(t[0][0])&&Y(t[1][0])?void 0:t},async(e,s)=>s?A(null,p(),3,s):A(null,p(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(w=1,await H.startAutoPersisting(t)),stopSync:async()=>(w=0,await H.stopAutoPersisting(),H),destroy:async()=>(v=!0,b(St(3,"destroyed")),u(),await H.stopSync(),H),getSynchronizerStats:()=>({sends:y,receives:f}),...l},1);return s((e,s,n,a)=>{if(v)return;if(!Ot(s,n,a))return;const r=w||H.isAutoLoading();f++,0==n?M(nt(S,s),([t,s])=>m(t)||t==e?s(a,e):0):2==n&&r?T(e,a,s??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==n&&r?d?.(void 0,a):M(1==n&&(w||H.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(a):5==n?t.getMergeableRowDiff(a):6==n?t.getMergeableCellDiff(a):7==n?t.getMergeableValueDiff(a):void 0,t=>{A(e,s,0,t)})},b),H})(t.getStore(),(t,e,s,a)=>R(((t,e,s,a,r)=>{const o=t??n,i=ut([e,s,a]),c=f(r??0);if(C(r)||c<1)return[Nt(o,i)];const l=((t,e)=>{const s=[];let a=n,r=0;for(let o=0;o<I(t);o++){const i=t.charCodeAt(o);let c=T(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=T(t,++o,o+1));const l=Lt(c);r>0&&r+l>e&&(W(s,a),a=n,r=0),a+=c,r+=l}return W(s,a),s})(i,w(c,y(Lt(i)/1e3)+3)),u=I(l);if(1==u)return[Nt(o,i)];const d=ft();return E(l,(t,e)=>Nt(o,H([d,e,u,t],Tt)))})(t,e,s,a,this.getFragmentSize()),t=>this.#s(Kt,t)),t=>this.#t=((t,e=1)=>Ft((e,s,n,a,r)=>t(e,n,a,r),e,void 0))(t,e)[0],0,e);await t.load(),await t.startAutoSave(),g(s.startSync)}))}fetch(t){const e=Qt(t);return M(Xt(t),t=>{const[s,a]=(r=new WebSocketPair,U.values(r));var r;return x(this.#n())&&this.onPathId(e,1),this.ctx.acceptWebSocket(a,[t,e]),this.onClientId(e,t,1),a.send(Nt(Kt,ut([null,1,n]))),Yt(101,s)},te)}webSocketMessage(t,e){M(this.ctx.getTags(t)[0],n=>{let a=this.#e.get(t);a||(a=Ft((e,s)=>R(s,s=>this.#s(n,Nt(e,s),t)),this.getRequestTimeoutSeconds(),((t,e)=>{let n=!0;return a=>{n&&(n=!1,mt(()=>e?.(a),()=>{return t.close((e=a.message,n=s+":"+vt,e.startsWith(n)?1013:1007),a.message);var e,n}))}})(t,t=>this.onIgnoredError(t))),this.#e.set(t,a)),a[0](e.toString())})}webSocketClose(t){this.#e.get(t)?.[1](),this.#e.delete(t);const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==I(this.#n())&&this.onPathId(s,-1)}#s(t,e,s){qt(e.toString(),(e,a)=>{const r=Nt(t,a);this.onMessage(t,e,a),e==n?(t!=Kt&&this.#t?.(r),R(this.#n(),t=>{t!=s&&t.send(r)})):e==Kt?this.#t?.(r):e!=t&&this.#n(e)[0]?.send(r)})}#n(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return M(this.#n()[0],t=>this.ctx.getTags(t)?.[1]??n)??n}getClientIds(){return E(this.#n(),t=>this.ctx.getTags(t)[0])}getFragmentSize(){}getRequestTimeoutSeconds(){return 1}onIgnoredError(t){}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const se=t=>(e,s)=>Xt(e)?s[t].get(s[t].idFromName(Qt(e))).fetch(e):te();export{ee as WsServerDurableObject,se as getWsServerDurableObjectFetch};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DurableObject as t}from"cloudflare:workers";const e=t=>typeof t,n="tinybase",s="",a=e(s),r=e(!0),o=e(0),i=(t,e)=>t?.match(e),c=Promise,l=Math,u=t=>(e,n,s)=>t(e)?s?.():n(e),d=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),y=l.max,w=l.ceil,f=l.floor,v=l.random,S=isFinite,p=Number.isInteger,b=t=>null==t,C=t=>void 0===t,m=t=>null===t,A=u(b),M=u(C),_=t=>e(t)==a,k=t=>e(t)==o,P=t=>Array.isArray(t),T=(t,e,n)=>t.slice(e,n),I=t=>t.length,x=t=>0==I(t),D=(t,e)=>t.test(e),L=()=>{},z=t=>new c(t),R=(t,e)=>t.forEach(e),H=(t,e="")=>t.join(e),E=(t,e)=>t.map(e),O=(t,e=I(t))=>t.splice(0,e),W=(t,...e)=>t.push(...e),q=t=>t?.size??0,F=t=>C(t)||0==q(t),N=(t,e)=>t?.forEach(e),j=(t,e)=>t?.delete(e),U=Object,V=t=>U.getPrototypeOf(t),Z=t=>!b(t)&&A(V(t),t=>t==U.prototype||b(V(t)),()=>!0),J=U.keys,$=U.freeze,B=(t,e)=>U.hasOwn(t,e),G=(t,e,n)=>(U.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),K=(t=[])=>{const e=U.create(null);return R(t,([t,n])=>G(e,t,n)),e},Q=(t,e)=>R(J(t),n=>e(t[n],n)),X=(t,e)=>{for(const n in t)if(B(t,n)&&!e(t[n],n))return!1;return!0},Y=t=>Z(t)&&0==(t=>I(J(t)))(t),tt=(t,e,n)=>(B(t,e)||G(t,e,n()),t[e]),et=Map,nt=t=>new et(t),st=(t,e)=>t?.get(e),at=(t,e)=>N(t,(t,n)=>e(n,t)),rt=(t,e,n)=>C(n)?(j(t,e),t):t?.set(e,n),ot=(t,e,n,s)=>{let a=st(t,e);var r,o;return r=t,o=e,r?.has(o)?s?.(a):rt(t,e,a=n()),a},it=(t,e,n,s,a=0)=>M((n?ot:st)(t,e[a],a>I(e)-2?n:nt),r=>{if(a>I(e)-2)return s?.(r)&&rt(t,e[a]),r;const o=it(r,e,n,s,a+1);return F(r)&&rt(t,e[a]),o}),ct=JSON.stringify,lt=JSON.parse,ut=t=>ct(t,(t,e)=>C(e)?"":e),dt=t=>""===t?void 0:P(t)?E(t,dt):Z(t)?((t,e)=>{const n=K();return Q(t,(t,s)=>G(n,s,e(t,s))),n})(t,dt):t,gt=((t,e="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e,void 0))(),ht=nt(E(gt,(t,e)=>[t,e])),yt=(t,e)=>st(ht,t[e])??0,wt=d.crypto?t=>d.crypto.getRandomValues(t):t=>E(t,()=>f(256*v())),ft=(t=16)=>{return e=(t,e)=>t+gt[63&e],wt(new Uint8Array(t)).reduce(e,"");var e},vt=15,St=(t,e)=>Error(n+":"+t+(C(e)?s:":"+e)),pt=(t,e)=>{throw St(t,e)},bt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Ct=(t,e)=>{try{return t()}finally{e()}},mt=async(t,e)=>{try{return await t()}finally{await e()}};new d.TextEncoder;const At=2**36,Mt=2**30,_t=/^[-0-9A-Z_a-z]{16}$/,kt="\n",Pt=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,Tt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,It=16777216,xt=t=>{let e=0;for(let n=0;n<I(t);n++){const s=t.charCodeAt(n);s<128?e++:s<2048?e+=2:s>=55296&&s<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(e+=4,n++):e+=3}return e},Dt=t=>k(t)&&S(t)&&p(t)&&t>=0&&t<=4294967295,Lt=(t,e)=>Z(t)&&X(t,t=>e?Lt(t,e-1):Dt(t)),zt=(t,n)=>{return P(t)&&(1==I(t)||2==I(t)&&_(t[1])&&(c=1/0,(i=t[1])==s||_(i)&&D(_t,i)&&(t=>yt(t,0)*At+yt(t,1)*Mt+16777216*yt(t,2)+262144*yt(t,3)+4096*yt(t,4)+64*yt(t,5)+yt(t,6))(i)<=c))&&(n?Z(t[0])&&X(t[0],t=>zt(t,n-1)):(l=t[0],C(l)||!C((t=>{if(m(t))return"null";if(P(t))return"array";if(Z(t))return"object";const n=e(t);return(t=>t==a||t==r)(n)||n==o&&S(t)?n:void 0})(l))));var i,c,l},Rt=t=>P(t)&&2==I(t)&&Dt(t[0])&&Dt(t[1]),Ht=(t,e,n)=>(m(t)||_(t))&&k(e)&&S(e)&&p(e)&&((t,e)=>0==t?(t=>Rt(t)||zt(t,3)||zt(t,1)||P(t)&&2==I(t)&&zt(t[0],3)&&(Lt(t[1],0)||Lt(t[1],1)))(e):1==t?e===s:2==t?Rt(e):3==t?(t=>P(t)&&(2==I(t)||3==I(t)&&1===t[2])&&zt(t[0],3)&&zt(t[1],1))(e):4==t?Lt(e,0):5==t?Lt(e,1):6==t?Lt(e,2):7==t&&Lt(e,0))(e,n),Et=(t,e=!1)=>(()=>{try{return(()=>{const n=dt(lt(t));return P(n)&&3==I(n)&&(Ht(n[0],n[1],n[2])||e&&(m(n[0])||_(n[0]))&&-1==n[1])?n:void 0})()}catch{return}})(),Ot=(t,e)=>{const n=t.indexOf(kt);return-1!==n&&(e(T(t,0,n),T(t,n+1)),!0)},Wt=(t,e=1,n)=>{const s=nt();let a=0,r=!0;const o=(t,e)=>{h(e[4]),a-=e[5],j(s,t)},c=(t=St(14))=>{r&&(r=!1,at(s,(t,e)=>h(e[4])),s.clear(),a=0,n?.(t))};return n=>{r&&(xt(n)>It?c(St(vt,i(n,Tt)?"fragments":"socket")):Ot(n,(n,r)=>{const l=Et(r);if(l)return void t(n,[r],...l);const[,u,d,h,y]=i(r,Pt)??[];if(u){const i=parseInt(d),l=parseInt(h);if(l>1e3)return void c(St(vt,"fragments"));if(l>0&&i>=0&&i<l){const d=n+kt+u;let h=st(s,d);if(!h){if(q(s)>=100)return void c(St(vt,"fragments"));h=[[],[],l,l,g(()=>{const t=st(s,d);t&&o(d,t)},e),0],rt(s,d,h)}const[w,f]=h;if(l!=h[3]||!C(w[i]))return void c();{const t=xt(y);if(a+t>It)return void c(St(vt,"fragments"));w[i]=y,f[i]=r,h[2]--,h[5]+=t,a+=t}return void(0==h[2]&&(o(d,h),((e,n,s)=>{const a=Et(s);a?t(e,n,...a):c()})(n,f,H(w))))}}c()})||c())}},qt=(t,e)=>t+kt+e,Ft=(t,e)=>e?[t,e]:[t],Nt=(t,e)=>((t??s)>(e??s)?t:e)??s,jt=(t="")=>Ft(K(),t),Ut=/^\d+$/,Vt=t=>new Set(P(t)||C(t)?t:[t]),Zt=nt(),Jt=nt(),$t=nt();nt();const Bt=/\/([^?]*)/,Gt="S",Kt=t=>i(new URL(t.url).pathname,Bt)?.[1]??s,Qt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,Xt=(t,e=null,n=null)=>new Response(n,{status:t,webSocket:e}),Yt=()=>Xt(426,null,"Upgrade required");class te extends t{#t;#e=(()=>new WeakMap)();constructor(t,e){super(t,e),this.ctx.blockConcurrencyWhile(async()=>await M(await this.createPersister(),async t=>{const e=this.getRequestTimeoutSeconds(),n=((t,e,n,a,r,o,i,c,l={},u=L)=>{let d,y=0,w=0,f=0,v=!1;const S=nt(),p=()=>ft(11),b=t=>at(S,(e,[,,n,s])=>{h(s),j(S,e),n(t)}),A=(t,n,s,a)=>{w++,e(t,n,s,a)},_=async(t,e,n,a)=>z((o,i)=>{if(q(S)>=100)return void i(St(vt,"requests"));const c=a+"."+ft(4),l=g(()=>{j(S,c),i(St(3,(t??s)+"."+c+"."+e))},r);rt(S,c,[t,(t,e)=>{h(l),j(S,c),o([t,e,a])},i,l]);try{A(t,c,e,n)}catch(t){h(l),j(S,c),i(t)}}),k=(t,[e,n])=>{Q(e,([e,n],s)=>{const a=tt(t[0],s,jt);Q(e,([t,e],n)=>{const s=tt(a[0],n,jt);Q(t,([t,e],n)=>G(s[0],n,Ft(t,e))),s[1]=Nt(s[1],e)}),a[1]=Nt(a[1],n)}),t[1]=Nt(t[1],n)},T=(e=null,n,a=p())=>bt(async()=>{C(n)&&([n,e,a]=await _(null,1,s,a));const[r,o]=n,[i,c]=t.getMergeableContentHashes();let l=jt();if(i!=r){const[n,s]=(await _(e,4,t.getMergeableTableHashes(),a))[0];if(l=n,!Y(s)){const[n,r]=(await _(e,5,t.getMergeableRowHashes(s),a))[0];if(k(l,n),!Y(r)){const n=(await _(e,6,t.getMergeableCellHashes(r),a))[0];k(l,n)}}}return[l,c==o?jt():(await _(e,7,t.getMergeableValueHashes(),a))[0],1]},c),H=((t,e,n,a,r,o,i,c={},l=0,u=[])=>{let d,g,h,y,w,f=0,v=0,S=0,p=0,b=0,A=0,_=0,k=0,T=0;const L={},H=c.destroy;ot(Zt,u,()=>0),ot(Jt,u,()=>[]),rt($t,u,(st($t,u)??0)+1);const q=nt(),[U,V,Z,J,B]=((t=1,e,n)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!n),([[t],[e]])=>!Y(t)||!Y(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!Y(t)||!Y(e),e.setContent]:pt(0))(i,t,l),[G,K,Q]=(t=>{let e;const[n,a]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??s+e++,e=>{D(Ut,e)&&I(t)<1e3&&W(t,e)}]})(),r=nt(),o=(t,n,a,o)=>{let i,c=!1;if(R(((t,e=[s])=>{const n=[],a=(t,s)=>s==I(e)?W(n,t):m(e[s])?N(t,t=>a(t,s+1)):R([e[s],null],e=>a(st(t,e),s+1));return a(t,0),n})(n,a),n=>N(n,n=>{const s=()=>st(r,n)[0](e,...a??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(s):s()})),c)throw i};return[(a,o,i,c=[],l=()=>[])=>{e??=t();const u=n(1);var d,g;return rt(r,u,[a,o,i,c,l]),d=it(o,i??[s],Vt),g=u,d?.add(g),u},(t,e,...n)=>o(!1,t,e,n),t=>M(st(r,t),([,e,n])=>(it(e,n??[s],void 0,e=>(j(e,t),F(e)?1:0)),rt(r,t),a(t),n)),t=>M(st(r,t),([t,,n=[],s,a])=>{const r=(...o)=>{const i=I(o);i==I(n)?t(e,...o,...a(o)):m(n[i])?R(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,n[i])};r()}),(t,e,...n)=>o(!0,t,e,n)]})(()=>At),X=t=>{t!=f&&(f=t,K(q,void 0,f))},tt=()=>{st($t,u)||st(Zt,u)||!x(st(Jt,u)??[])||(rt(Zt,u),rt(Jt,u),rt($t,u))},et=e=>{(U&&P(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},at=async()=>{ft()&&t.__?.[0]?.()&&await ht()},ct=t=>mt(()=>g=t,()=>{g==t&&(g=void 0)}),lt=async t=>(2!=f&&(await mt(async()=>{X(1),v++,await St(()=>bt(async()=>{const n=await e();P(n)?et(n):C(n)&&t?B(t):C(n)||pt(1,n)},e=>{o?.(e),t&&B(t)}))},()=>X(0)),await at()),At),ut=async()=>{const t=_;_=0,t&&t==p&&!T&&(2==f?_=t:await lt())},dt=async t=>{const e=++p;let n=!0;if(await gt(!0),e==p&&!T){const s=bt(async()=>{const t=await a(async(t,s)=>{if(e==p&&!T)if(s||t){const e=n||2==f||!!A;b++,e&&A++,await mt(async()=>{X(1),v++,await(e?St(()=>et(s??t)):Ct(()=>et(s??t),()=>X(0)))},()=>{e&&A--,--b||X(0)}),b||await at()}else 2==f?_=e:await lt()});e!=p||T?C(t)||await r(t):d=t},o);await ct(s),e!=p||T||await mt(()=>lt(t),()=>{n=!1})}return At},gt=async(t=!1)=>{_=0,t||p++;const e=g,n=d;return d=void 0,await ct(mt(async()=>{await e},async()=>{C(n)||await bt(()=>r(n),o)})),At},ht=async t=>(1!=f&&await mt(()=>mt(async()=>{X(2),S++,await St(()=>bt(()=>n(V,t),o))},()=>X(0)),ut),At),yt=async()=>{const e=++k;return await wt(!0),e!=k||T||(await ht(),e!=k||T||(h=t.addDidFinishTransactionListener(()=>{if(e==k&&!T){const t=Z();J(t)&&bt(()=>ht(t))}}))),At},wt=async(e=!1)=>{e||k++;const n=h;return h=void 0,C(n)||t.delListener(n),At},ft=()=>!C(h),vt=async(t=!1)=>{const[e,n]=t?[wt,gt]:[gt,wt];return await mt(()=>e(),async()=>{await n()}),At},St=async(...t)=>{let e,n=!1;const s=z(s=>x(t)?s():W(st(Jt,u),...E(t,(a,r)=>{const i=r==I(t)-1;return[async()=>{let t;w=z(e=>t=e),await mt(async()=>{try{await bt(a,o)}catch(t){n||(n=!0,e=t)}i&&s()},()=>{w=void 0,t()})},i?s:void 0,L]})));if(await(async()=>{if(!st(Zt,u)){rt(Zt,u,1);const t=st(Jt,u);let e=0;await mt(async()=>{for(;e<I(t);){const n=t[e++];n[2]=void 0,await n[0]()}},()=>{O(t,e),rt(Zt,u,0),tt()})}})(),await s,n)throw e;return At},At={load:lt,startAutoLoad:dt,stopAutoLoad:gt,isAutoLoading:()=>!C(d),save:ht,startAutoSave:yt,stopAutoSave:wt,isAutoSaving:ft,startAutoPersisting:async(t,e=!1)=>{const[n,s]=e?[yt,dt]:[dt,yt];return await n(t),await s(t),At},stopAutoPersisting:vt,getStatus:()=>f,addStatusListener:t=>G(t,q),delListener:e=>(Q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:v,saves:S}),...c,destroy:async()=>(C(y)&&(T=1,y=(async()=>{const t=st(Jt,u),e=(n=([,t,e])=>e!=L||(t?.(),!1),t.filter(n));var n;const s=w;O(t),W(t,...e),await mt(()=>mt(()=>mt(vt,()=>s),()=>H?.()),()=>{const t=(st($t,u)??1)-1;rt($t,u,t||void 0),tt()})})()),await y,At)};return $(At)})(t,async()=>{const t=await T();return!t||Y(t[0][0])&&Y(t[1][0])?void 0:t},async(e,n)=>n?A(null,p(),3,n):A(null,p(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(y=1,await H.startAutoPersisting(t)),stopSync:async()=>(y=0,await H.stopAutoPersisting(),H),destroy:async()=>(v=!0,b(St(3,"destroyed")),u(),await H.stopSync(),H),getSynchronizerStats:()=>({sends:w,receives:f}),...l},1);return n((e,n,s,a)=>{if(v)return;if(!Ht(n,s,a))return;const r=y||H.isAutoLoading();f++,0==s?M(st(S,n),([t,n])=>m(t)||t==e?n(a,e):0):2==s&&r?T(e,a,n??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==s&&r?d?.(void 0,a):M(1==s&&(y||H.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(a):5==s?t.getMergeableRowDiff(a):6==s?t.getMergeableCellDiff(a):7==s?t.getMergeableValueDiff(a):void 0,t=>{A(e,n,0,t)})},b),H})(t.getStore(),(t,e,n,a)=>R(((t,e,n,a,r)=>{const o=t??s,i=ut([e,n,a]),c=f(r??0);if(C(r)||c<1)return[qt(o,i)];const l=((t,e)=>{const n=[];let a=s,r=0;for(let o=0;o<I(t);o++){const i=t.charCodeAt(o);let c=T(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=T(t,++o,o+1));const l=xt(c);r>0&&r+l>e&&(W(n,a),a=s,r=0),a+=c,r+=l}return W(n,a),n})(i,y(c,w(xt(i)/1e3)+3)),u=I(l);if(1==u)return[qt(o,i)];const d=ft();return E(l,(t,e)=>qt(o,H([d,e,u,t],kt)))})(t,e,n,a,this.getFragmentSize()),t=>this.#n(Gt,t)),t=>this.#t=((t,e=1)=>Wt((e,n,s,a,r)=>t(e,s,a,r),e,void 0))(t,e),0,e);await t.load(),await t.startAutoSave(),g(n.startSync)}))}fetch(t){const e=Kt(t);return M(Qt(t),t=>{const[n,a]=(r=new WebSocketPair,U.values(r));var r;return x(this.#s())&&this.onPathId(e,1),this.ctx.acceptWebSocket(a,[t,e]),this.onClientId(e,t,1),a.send(qt(Gt,ut([null,1,s]))),Xt(101,n)},Yt)}webSocketMessage(t,e){M(this.ctx.getTags(t)[0],s=>{let a=this.#e.get(t);a||(a=Wt((e,n)=>R(n,n=>this.#n(s,qt(e,n),t)),this.getRequestTimeoutSeconds(),((t,e)=>{let s=!0;return a=>{s&&(s=!1,Ct(()=>e?.(a),()=>{return t.close((e=a.message,s=n+":"+vt,e.startsWith(s)?1013:1007),a.message);var e,s}))}})(t,t=>this.onIgnoredError(t))),this.#e.set(t,a)),a(e.toString())})}webSocketClose(t){this.#e.delete(t);const[e,n]=this.ctx.getTags(t);this.onClientId(n,e,-1),1==I(this.#s())&&this.onPathId(n,-1)}#n(t,e,n){Ot(e.toString(),(e,a)=>{const r=qt(t,a);this.onMessage(t,e,a),e==s?(t!=Gt&&this.#t?.(r),R(this.#s(),t=>{t!=n&&t.send(r)})):e==Gt?this.#t?.(r):e!=t&&this.#s(e)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return M(this.#s()[0],t=>this.ctx.getTags(t)?.[1]??s)??s}getClientIds(){return E(this.#s(),t=>this.ctx.getTags(t)[0])}getFragmentSize(){}getRequestTimeoutSeconds(){return 1}onIgnoredError(t){}onPathId(t,e){}onClientId(t,e,n){}onMessage(t,e,n){}}const ee=t=>(e,n)=>Qt(e)?n[t].get(n[t].idFromName(Kt(e))).fetch(e):Yt();export{te as WsServerDurableObject,ee as getWsServerDurableObjectFetch};
|
|
1
|
+
import{DurableObject as t}from"cloudflare:workers";const e=t=>typeof t,s="tinybase",n="",a=e(n),r=e(!0),o=e(0),i=(t,e)=>t?.match(e),c=Promise,l=Math,u=t=>(e,s,n)=>t(e)?n?.():s(e),d=globalThis,g=(t,e=0)=>setTimeout(t,1e3*e),h=t=>clearTimeout(t),w=l.max,y=l.ceil,f=l.floor,v=l.random,S=isFinite,p=Number.isInteger,b=t=>null==t,C=t=>void 0===t,m=t=>null===t,A=u(b),M=u(C),_=t=>e(t)==a,k=t=>e(t)==o,P=t=>Array.isArray(t),T=(t,e,s)=>t.slice(e,s),I=t=>t.length,x=t=>0==I(t),D=(t,e)=>t.test(e),L=()=>{},z=t=>new c(t),R=(t,e)=>t.forEach(e),H=(t,e="")=>t.join(e),E=(t,e)=>t.map(e),O=(t,e=I(t))=>t.splice(0,e),W=(t,...e)=>t.push(...e),q=t=>t?.size??0,F=t=>C(t)||0==q(t),N=(t,e)=>t?.forEach(e),j=(t,e)=>t?.delete(e),U=Object,V=t=>U.getPrototypeOf(t),Z=t=>!b(t)&&A(V(t),t=>t==U.prototype||b(V(t)),()=>!0),J=U.keys,$=U.freeze,B=(t,e)=>U.hasOwn(t,e),G=(t,e,s)=>(U.defineProperty(t,e,{configurable:!0,enumerable:!0,value:s,writable:!0}),s),K=(t=[])=>{const e=U.create(null);return R(t,([t,s])=>G(e,t,s)),e},Q=(t,e)=>R(J(t),s=>e(t[s],s)),X=(t,e)=>{for(const s in t)if(B(t,s)&&!e(t[s],s))return!1;return!0},Y=t=>Z(t)&&0==(t=>I(J(t)))(t),tt=(t,e,s)=>(B(t,e)||G(t,e,s()),t[e]),et=Map,st=t=>new et(t),nt=(t,e)=>t?.get(e),at=(t,e)=>N(t,(t,s)=>e(s,t)),rt=(t,e,s)=>C(s)?(j(t,e),t):t?.set(e,s),ot=(t,e,s,n)=>{let a=nt(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(a):rt(t,e,a=s()),a},it=(t,e,s,n,a=0)=>M((s?ot:nt)(t,e[a],a>I(e)-2?s:st),r=>{if(a>I(e)-2)return n?.(r)&&rt(t,e[a]),r;const o=it(r,e,s,n,a+1);return F(r)&&rt(t,e[a]),o}),ct=JSON.stringify,lt=JSON.parse,ut=t=>ct(t,(t,e)=>C(e)?"":e),dt=t=>""===t?void 0:P(t)?E(t,dt):Z(t)?((t,e)=>{const s=K();return Q(t,(t,n)=>G(s,n,e(t,n))),s})(t,dt):t,gt=((t,e="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e,void 0))(),ht=st(E(gt,(t,e)=>[t,e])),wt=(t,e)=>nt(ht,t[e])??0,yt=d.crypto?t=>d.crypto.getRandomValues(t):t=>E(t,()=>f(256*v())),ft=(t=16)=>{return e=(t,e)=>t+gt[63&e],yt(new Uint8Array(t)).reduce(e,"");var e},vt=15,St=(t,e)=>Error(s+":"+t+(C(e)?n:":"+e)),pt=(t,e)=>{throw St(t,e)},bt=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},Ct=(t,e)=>bt(t,t=>{bt(()=>e?.(t))}),mt=(t,e)=>{try{return t()}finally{e()}},At=async(t,e)=>{try{return await t()}finally{await e()}};new d.TextEncoder;const Mt=2**36,_t=2**30,kt=/^[-0-9A-Z_a-z]{16}$/,Pt=t=>new Set(P(t)||C(t)?t:[t]),Tt="\n",It=/^([-0-9A-Z_a-z]{16})\n(\d+)\n(\d+)\n([\s\S]*)$/,xt=/^[^\n]*\n[-0-9A-Z_a-z]{16}\n\d+\n\d+\n/,Dt=16777216,Lt=t=>{let e=0;for(let s=0;s<I(t);s++){const n=t.charCodeAt(s);n<128?e++:n<2048?e+=2:n>=55296&&n<=56319&&t.charCodeAt(s+1)>=56320&&t.charCodeAt(s+1)<=57343?(e+=4,s++):e+=3}return e},zt=t=>k(t)&&S(t)&&p(t)&&t>=0&&t<=4294967295,Rt=(t,e)=>Z(t)&&X(t,t=>e?Rt(t,e-1):zt(t)),Ht=(t,s)=>{return P(t)&&(1==I(t)||2==I(t)&&_(t[1])&&(c=1/0,(i=t[1])==n||_(i)&&D(kt,i)&&(t=>wt(t,0)*Mt+wt(t,1)*_t+16777216*wt(t,2)+262144*wt(t,3)+4096*wt(t,4)+64*wt(t,5)+wt(t,6))(i)<=c))&&(s?Z(t[0])&&X(t[0],t=>Ht(t,s-1)):(l=t[0],C(l)||!C((t=>{if(m(t))return"null";if(P(t))return"array";if(Z(t))return"object";const s=e(t);return(t=>t==a||t==r)(s)||s==o&&S(t)?s:void 0})(l))));var i,c,l},Et=t=>P(t)&&2==I(t)&&zt(t[0])&&zt(t[1]),Ot=(t,e,s)=>(m(t)||_(t))&&k(e)&&S(e)&&p(e)&&((t,e)=>0==t?(t=>Et(t)||Ht(t,3)||Ht(t,1)||P(t)&&2==I(t)&&Ht(t[0],3)&&(Rt(t[1],0)||Rt(t[1],1)))(e):1==t?e===n:2==t?Et(e):3==t?(t=>P(t)&&(2==I(t)||3==I(t)&&1===t[2])&&Ht(t[0],3)&&Ht(t[1],1))(e):4==t?Rt(e,0):5==t?Rt(e,1):6==t?Rt(e,2):7==t&&Rt(e,0))(e,s),Wt=(t,e=!1)=>(()=>{try{return(()=>{const s=dt(lt(t));return P(s)&&3==I(s)&&(Ot(s[0],s[1],s[2])||e&&(m(s[0])||_(s[0]))&&-1==s[1])?s:void 0})()}catch{return}})(),qt=(t,e)=>{const s=t.indexOf(Tt);return-1!==s&&(e(T(t,0,s),T(t,s+1)),!0)},Ft=(t,e=1,s,n)=>{const a=st(),r=[0,0];let o=0,c=!0;const l=(t,e)=>{h(e[4]),o-=e[5],r[0]--,r[1]-=e[5],j(a,t)},u=()=>{at(a,(t,e)=>h(e[4])),r[0]-=q(a),r[1]-=o,a.clear(),o=0},d=(t=St(14))=>{c&&(c=!1,u(),s?.(t))};return[s=>{c&&(Lt(s)>Dt?d(St(vt,i(s,xt)?"fragments":"socket")):qt(s,(s,n)=>{const c=Wt(n);if(c)return void t(s,[n],...c);const[,u,h,w,y]=i(n,It)??[];if(u){const i=parseInt(h),c=parseInt(w);if(c>1e3)return void d(St(vt,"fragments"));if(c>0&&i>=0&&i<c){const h=s+Tt+u;let w=nt(a,h);if(!w&&r[0]>=100)return void d(St(vt,"fragments"));if(!C(w)&&c!=w[3]||!C(w?.[0][i]))return void d();{const t=Lt(n)+(w?0:Lt(h));if(r[1]+t>Dt)return void d(St(vt,"fragments"));w||(w=[[],[],c,c,g(()=>{const t=nt(a,h);t&&l(h,t)},e),0],rt(a,h,w),r[0]++);const[s,u]=w;s[i]=y,u[i]=n,w[2]--,w[5]+=t,o+=t,r[1]+=t}if(0==w[2]){const[e,n]=w;l(h,w),((e,s,n)=>{const a=Wt(n);a?t(e,s,...a):d()})(s,n,H(e))}return}}d()})||d())},u]},Nt=(t,e)=>t+Tt+e,jt=(t,e)=>e?[t,e]:[t],Ut=(t,e)=>((t??n)>(e??n)?t:e)??n,Vt=(t="")=>jt(K(),t),Zt=/^\d+$/,Jt=st(),$t=st(),Bt=st();st();const Gt=/\/([^?]*)/,Kt="S",Qt=t=>i(new URL(t.url).pathname,Gt)?.[1]??n,Xt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,Yt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),te=()=>Yt(426,null,"Upgrade required");class ee extends t{#t;#e=(()=>new WeakMap)();constructor(t,e){super(t,e),this.ctx.blockConcurrencyWhile(async()=>await M(await this.createPersister(),async t=>{const e=this.getRequestTimeoutSeconds(),s=((t,e,s,a,r,o,i,c,l={},u=L)=>{let d,w=0,y=0,f=0,v=!1;const S=st(),p=()=>ft(11),b=t=>at(S,(e,[,,s,n])=>{h(n),j(S,e),s(t)}),A=(t,s,n,a)=>{y++,e(t,s,n,a)},_=async(t,e,s,a)=>z((o,i)=>{if(q(S)>=100)return void i(St(vt,"requests"));const c=a+"."+ft(4),l=g(()=>{j(S,c),i(St(3,(t??n)+"."+c+"."+e))},r);rt(S,c,[t,(t,e)=>{h(l),j(S,c),o([t,e,a])},i,l]);try{A(t,c,e,s)}catch(t){h(l),j(S,c),i(t)}}),k=(t,[e,s])=>{Q(e,([e,s],n)=>{const a=tt(t[0],n,Vt);Q(e,([t,e],s)=>{const n=tt(a[0],s,Vt);Q(t,([t,e],s)=>G(n[0],s,jt(t,e))),n[1]=Ut(n[1],e)}),a[1]=Ut(a[1],s)}),t[1]=Ut(t[1],s)},T=(e=null,s,a=p())=>bt(async()=>{C(s)&&([s,e,a]=await _(null,1,n,a));const[r,o]=s,[i,c]=t.getMergeableContentHashes();let l=Vt();if(i!=r){const[s,n]=(await _(e,4,t.getMergeableTableHashes(),a))[0];if(l=s,!Y(n)){const[s,r]=(await _(e,5,t.getMergeableRowHashes(n),a))[0];if(k(l,s),!Y(r)){const s=(await _(e,6,t.getMergeableCellHashes(r),a))[0];k(l,s)}}}return[l,c==o?Vt():(await _(e,7,t.getMergeableValueHashes(),a))[0],1]},c),H=((t,e,s,a,r,o,i,c={},l=0,u=[])=>{let d,g,h,w,y,f=0,v=0,S=0,p=0,b=0,A=0,_=0,k=0,T=0;const L={},H=c.destroy;ot(Jt,u,()=>0),ot($t,u,()=>[]),rt(Bt,u,(nt(Bt,u)??0)+1);const q=st(),[U,V,Z,J,B]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!s),([[t],[e]])=>!Y(t)||!Y(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!Y(t)||!Y(e),e.setContent]:pt(0))(i,t,l),[G,K,Q]=(t=>{let e;const[s,a]=(()=>{const t=[];let e=0;return[s=>(s?t.shift():null)??n+e++,e=>{D(Zt,e)&&I(t)<1e3&&W(t,e)}]})(),r=st(),o=(t,s,a,o)=>{let i,c=!1;if(R(((t,e=[n])=>{const s=[],a=(t,n)=>n==I(e)?W(s,t):m(e[n])?N(t,t=>a(t,n+1)):R([e[n],null],e=>a(nt(t,e),n+1));return a(t,0),s})(s,a),s=>N(s,s=>{const n=()=>nt(r,s)[0](e,...a??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(n):n()})),c)throw i};return[(a,o,i,c=[],l=()=>[])=>{e??=t();const u=s(1);var d,g;return rt(r,u,[a,o,i,c,l]),d=it(o,i??[n],Pt),g=u,d?.add(g),u},(t,e,...s)=>o(!1,t,e,s),t=>M(nt(r,t),([,e,s])=>(it(e,s??[n],void 0,e=>(j(e,t),F(e)?1:0)),rt(r,t),a(t),s)),t=>M(nt(r,t),([t,,s=[],n,a])=>{const r=(...o)=>{const i=I(o);i==I(s)?t(e,...o,...a(o)):m(s[i])?R(n[i]?.(...o)??[],t=>r(...o,t)):r(...o,s[i])};r()}),(t,e,...s)=>o(!0,t,e,s)]})(()=>Mt),X=t=>{t!=f&&(f=t,K(q,void 0,f))},tt=()=>{nt(Bt,u)||nt(Jt,u)||!x(nt($t,u)??[])||(rt(Jt,u),rt($t,u),rt(Bt,u))},et=e=>{(U&&P(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},at=async()=>{ft()&&t.__?.[0]?.()&&await ht()},ct=t=>At(()=>g=t,()=>{g==t&&(g=void 0)}),lt=async t=>(2!=f&&(await At(async()=>{X(1),v++,await St(()=>bt(async()=>{const s=await e();P(s)?et(s):C(s)&&t?B(t):C(s)||pt(1,s)},e=>{o?.(e),t&&B(t)}))},()=>X(0)),await at()),Mt),ut=async()=>{const t=_;_=0,t&&t==p&&!T&&(2==f?_=t:await lt())},dt=async t=>{const e=++p;let s=!0;if(await gt(!0),e==p&&!T){const n=bt(async()=>{const t=await a(async(t,n)=>{if(e==p&&!T)if(n||t){const e=s||2==f||!!A;b++,e&&A++,await At(async()=>{X(1),v++,await(e?St(()=>et(n??t)):mt(()=>et(n??t),()=>X(0)))},()=>{e&&A--,--b||X(0)}),b||await at()}else 2==f?_=e:await lt()});e!=p||T?C(t)||await r(t):d=t},o);await ct(n),e!=p||T||await At(()=>lt(t),()=>{s=!1})}return Mt},gt=async(t=!1)=>{_=0,t||p++;const e=g,s=d;return d=void 0,await ct(At(async()=>{await e},async()=>{C(s)||await bt(()=>r(s),o)})),Mt},ht=async t=>(1!=f&&await At(()=>At(async()=>{X(2),S++,await St(()=>bt(()=>s(V,t),o))},()=>X(0)),ut),Mt),wt=async()=>{const e=++k;return await yt(!0),e!=k||T||(await ht(),e!=k||T||(h=t.addDidFinishTransactionListener(()=>{if(e==k&&!T){const t=Z();J(t)&&bt(()=>ht(t))}}))),Mt},yt=async(e=!1)=>{e||k++;const s=h;return h=void 0,C(s)||t.delListener(s),Mt},ft=()=>!C(h),vt=async(t=!1)=>{const[e,s]=t?[yt,gt]:[gt,yt];return await At(()=>e(),async()=>{await s()}),Mt},St=async(...t)=>{let e,s=!1;const n=z(n=>x(t)?n():W(nt($t,u),...E(t,(a,r)=>{const i=r==I(t)-1;return[async()=>{let t;y=z(e=>t=e),await At(async()=>{try{await bt(a,o)}catch(t){s||(s=!0,e=t)}i&&n()},()=>{y=void 0,t()})},i?n:void 0,L]})));if(await(async()=>{if(!nt(Jt,u)){rt(Jt,u,1);const t=nt($t,u);let e=0;await At(async()=>{for(;e<I(t);){const s=t[e++];s[2]=void 0,await s[0]()}},()=>{O(t,e),rt(Jt,u,0),tt()})}})(),await n,s)throw e;return Mt},Mt={load:lt,startAutoLoad:dt,stopAutoLoad:gt,isAutoLoading:()=>!C(d),save:ht,startAutoSave:wt,stopAutoSave:yt,isAutoSaving:ft,startAutoPersisting:async(t,e=!1)=>{const[s,n,a,r]=e?[wt,dt,yt,gt]:[dt,wt,gt,yt],o=s(t),i=e?k:p;await o;const c=n(t),l=e?p:k;try{await c}catch(t){throw l==(e?p:k)&&await Ct(r),i==(e?k:p)&&await Ct(a),t}return Mt},stopAutoPersisting:vt,getStatus:()=>f,addStatusListener:t=>G(t,q),delListener:e=>(Q(e),t),schedule:St,getStore:()=>t,getStats:()=>({loads:v,saves:S}),...c,destroy:async()=>(C(w)&&(T=1,w=(async()=>{const t=nt($t,u),e=(s=([,t,e])=>e!=L||(t?.(),!1),t.filter(s));var s;const n=y;O(t),W(t,...e),await At(()=>At(()=>At(vt,()=>n),()=>H?.()),()=>{const t=(nt(Bt,u)??1)-1;rt(Bt,u,t||void 0),tt()})})()),await w,Mt)};return $(Mt)})(t,async()=>{const t=await T();return!t||Y(t[0][0])&&Y(t[1][0])?void 0:t},async(e,s)=>s?A(null,p(),3,s):A(null,p(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(w=1,await H.startAutoPersisting(t)),stopSync:async()=>(w=0,await H.stopAutoPersisting(),H),destroy:async()=>(v=!0,b(St(3,"destroyed")),u(),await H.stopSync(),H),getSynchronizerStats:()=>({sends:y,receives:f}),...l},1);return s((e,s,n,a)=>{if(v)return;if(!Ot(s,n,a))return;const r=w||H.isAutoLoading();f++,0==n?M(nt(S,s),([t,s])=>m(t)||t==e?s(a,e):0):2==n&&r?T(e,a,s??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==n&&r?d?.(void 0,a):M(1==n&&(w||H.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(a):5==n?t.getMergeableRowDiff(a):6==n?t.getMergeableCellDiff(a):7==n?t.getMergeableValueDiff(a):void 0,t=>{A(e,s,0,t)})},b),H})(t.getStore(),(t,e,s,a)=>R(((t,e,s,a,r)=>{const o=t??n,i=ut([e,s,a]),c=f(r??0);if(C(r)||c<1)return[Nt(o,i)];const l=((t,e)=>{const s=[];let a=n,r=0;for(let o=0;o<I(t);o++){const i=t.charCodeAt(o);let c=T(t,o,o+1);i>=55296&&i<=56319&&t.charCodeAt(o+1)>=56320&&t.charCodeAt(o+1)<=57343&&(c+=T(t,++o,o+1));const l=Lt(c);r>0&&r+l>e&&(W(s,a),a=n,r=0),a+=c,r+=l}return W(s,a),s})(i,w(c,y(Lt(i)/1e3)+3)),u=I(l);if(1==u)return[Nt(o,i)];const d=ft();return E(l,(t,e)=>Nt(o,H([d,e,u,t],Tt)))})(t,e,s,a,this.getFragmentSize()),t=>this.#s(Kt,t)),t=>this.#t=((t,e=1)=>Ft((e,s,n,a,r)=>t(e,n,a,r),e,void 0))(t,e)[0],0,e);await t.load(),await t.startAutoSave(),g(s.startSync)}))}fetch(t){const e=Qt(t);return M(Xt(t),t=>{const[s,a]=(r=new WebSocketPair,U.values(r));var r;return x(this.#n())&&this.onPathId(e,1),this.ctx.acceptWebSocket(a,[t,e]),this.onClientId(e,t,1),a.send(Nt(Kt,ut([null,1,n]))),Yt(101,s)},te)}webSocketMessage(t,e){M(this.ctx.getTags(t)[0],n=>{let a=this.#e.get(t);a||(a=Ft((e,s)=>R(s,s=>this.#s(n,Nt(e,s),t)),this.getRequestTimeoutSeconds(),((t,e)=>{let n=!0;return a=>{n&&(n=!1,mt(()=>e?.(a),()=>{return t.close((e=a.message,n=s+":"+vt,e.startsWith(n)?1013:1007),a.message);var e,n}))}})(t,t=>this.onIgnoredError(t))),this.#e.set(t,a)),a[0](e.toString())})}webSocketClose(t){this.#e.get(t)?.[1](),this.#e.delete(t);const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==I(this.#n())&&this.onPathId(s,-1)}#s(t,e,s){qt(e.toString(),(e,a)=>{const r=Nt(t,a);this.onMessage(t,e,a),e==n?(t!=Kt&&this.#t?.(r),R(this.#n(),t=>{t!=s&&t.send(r)})):e==Kt?this.#t?.(r):e!=t&&this.#n(e)[0]?.send(r)})}#n(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return M(this.#n()[0],t=>this.ctx.getTags(t)?.[1]??n)??n}getClientIds(){return E(this.#n(),t=>this.ctx.getTags(t)[0])}getFragmentSize(){}getRequestTimeoutSeconds(){return 1}onIgnoredError(t){}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const se=t=>(e,s)=>Xt(e)?s[t].get(s[t].idFromName(Qt(e))).fetch(e):te();export{ee as WsServerDurableObject,se as getWsServerDurableObjectFetch};
|