tinybase 8.5.0-beta.0 → 8.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/@types/ui-react-dom-charts/index.d.ts +242 -0
  2. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +296 -0
  3. package/common/index.js +3 -2
  4. package/common/with-schemas/index.js +3 -2
  5. package/index.js +5 -3
  6. package/mergeable-store/index.js +5 -3
  7. package/mergeable-store/with-schemas/index.js +5 -3
  8. package/metrics/index.js +1 -1
  9. package/metrics/with-schemas/index.js +1 -1
  10. package/min/common/index.js +1 -1
  11. package/min/common/index.js.gz +0 -0
  12. package/min/common/with-schemas/index.js +1 -1
  13. package/min/common/with-schemas/index.js.gz +0 -0
  14. package/min/index.js +1 -1
  15. package/min/index.js.gz +0 -0
  16. package/min/mergeable-store/index.js +1 -1
  17. package/min/mergeable-store/index.js.gz +0 -0
  18. package/min/mergeable-store/with-schemas/index.js +1 -1
  19. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  20. package/min/omni/index.js +1 -1
  21. package/min/omni/index.js.gz +0 -0
  22. package/min/omni/with-schemas/index.js +1 -1
  23. package/min/omni/with-schemas/index.js.gz +0 -0
  24. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  25. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  26. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  27. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  28. package/min/persisters/persister-partykit-server/index.js +1 -1
  29. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  30. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  31. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  32. package/min/queries/index.js +1 -1
  33. package/min/queries/index.js.gz +0 -0
  34. package/min/queries/with-schemas/index.js +1 -1
  35. package/min/queries/with-schemas/index.js.gz +0 -0
  36. package/min/synchronizers/index.js +1 -1
  37. package/min/synchronizers/index.js.gz +0 -0
  38. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  39. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  40. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  41. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  42. package/min/synchronizers/synchronizer-local/index.js +1 -1
  43. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  44. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  45. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  46. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  47. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  48. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  49. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  50. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  51. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  52. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  53. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  54. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  55. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  56. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  57. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  58. package/min/synchronizers/with-schemas/index.js +1 -1
  59. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  60. package/min/ui-react-dom/index.js +1 -1
  61. package/min/ui-react-dom/index.js.gz +0 -0
  62. package/min/ui-react-dom/with-schemas/index.js +1 -1
  63. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  64. package/min/ui-react-dom-charts/index.js +1 -0
  65. package/min/ui-react-dom-charts/index.js.gz +0 -0
  66. package/min/ui-react-dom-charts/with-schemas/index.js +1 -0
  67. package/min/ui-react-dom-charts/with-schemas/index.js.gz +0 -0
  68. package/min/ui-react-inspector/index.js +1 -1
  69. package/min/ui-react-inspector/index.js.gz +0 -0
  70. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  71. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  72. package/min/ui-solid-dom/index.js +1 -1
  73. package/min/ui-solid-dom/index.js.gz +0 -0
  74. package/min/ui-solid-dom/with-schemas/index.js +1 -1
  75. package/min/ui-solid-dom/with-schemas/index.js.gz +0 -0
  76. package/min/ui-solid-inspector/index.js +1 -1
  77. package/min/ui-solid-inspector/index.js.gz +0 -0
  78. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  79. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  80. package/min/ui-svelte-dom/index.js +1 -1
  81. package/min/ui-svelte-dom/index.js.gz +0 -0
  82. package/min/ui-svelte-dom/with-schemas/index.js +1 -1
  83. package/min/ui-svelte-dom/with-schemas/index.js.gz +0 -0
  84. package/min/ui-svelte-inspector/index.js +1 -1
  85. package/min/ui-svelte-inspector/index.js.gz +0 -0
  86. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  87. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  88. package/min/with-schemas/index.js +1 -1
  89. package/min/with-schemas/index.js.gz +0 -0
  90. package/omni/index.js +7 -4
  91. package/omni/with-schemas/index.js +7 -4
  92. package/package.json +50 -14
  93. package/persisters/persister-durable-object-sql-storage/index.js +13 -11
  94. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +13 -11
  95. package/persisters/persister-partykit-client/index.js +2 -1
  96. package/persisters/persister-partykit-client/with-schemas/index.js +2 -1
  97. package/persisters/persister-partykit-server/index.js +2 -1
  98. package/persisters/persister-partykit-server/with-schemas/index.js +2 -1
  99. package/queries/index.js +1 -1
  100. package/queries/with-schemas/index.js +1 -1
  101. package/readme.md +18 -14
  102. package/releases.md +91 -58
  103. package/synchronizers/index.js +3 -2
  104. package/synchronizers/synchronizer-broadcast-channel/index.js +3 -2
  105. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +3 -2
  106. package/synchronizers/synchronizer-local/index.js +3 -2
  107. package/synchronizers/synchronizer-local/with-schemas/index.js +3 -2
  108. package/synchronizers/synchronizer-ws-client/index.js +3 -2
  109. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +3 -2
  110. package/synchronizers/synchronizer-ws-server/index.js +3 -2
  111. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +3 -2
  112. package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -2
  113. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -2
  114. package/synchronizers/with-schemas/index.js +3 -2
  115. package/ui-react-dom/index.js +10 -7
  116. package/ui-react-dom/with-schemas/index.js +10 -7
  117. package/ui-react-dom-charts/index.js +1229 -0
  118. package/ui-react-dom-charts/with-schemas/index.js +1229 -0
  119. package/ui-react-inspector/index.js +16 -10
  120. package/ui-react-inspector/with-schemas/index.js +16 -10
  121. package/ui-solid-dom/index.js +10 -7
  122. package/ui-solid-dom/with-schemas/index.js +10 -7
  123. package/ui-solid-inspector/index.js +16 -10
  124. package/ui-solid-inspector/with-schemas/index.js +16 -10
  125. package/ui-svelte/index.js +5 -5
  126. package/ui-svelte/with-schemas/index.js +5 -5
  127. package/ui-svelte-dom/index.js +162 -164
  128. package/ui-svelte-dom/with-schemas/index.js +162 -164
  129. package/ui-svelte-inspector/index.js +192 -196
  130. package/ui-svelte-inspector/with-schemas/index.js +192 -196
  131. package/with-schemas/index.js +5 -3
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,v="Sorted"+d+l,w="Cell",L=w+l,f=e=>(t,r,n)=>e(t)?n?.():r(t),g=Math,R=g.max,h=g.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=f(p),T=f(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return l=>(s.has(l)||s.set(l,(s=>{const l=s._[0],f=l(),g=l(),R=l(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:le}=R,[ie,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),l=U(),i=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(l,e)||(Z(l,e,[]),Z(d,e,U()),Z(c,e,U()),s(i))},L=e=>{Z(a,e),Z(l,e),Z(d,e),Z(c,e),v(e),s(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(l,e),e=>M(l,e),e=>X(a,e),e=>X(l,e),(e,t)=>Z(l,e,t),w,(t,n,s,a,l)=>{w(t,n);const i=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(i,t,[d,c]),!y(l)){const e=X(g,t),r=o(n,t)?l(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(i,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},i,L,f,g,e),F(i),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,i),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,l),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),f],t=>t.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?g.delRow:g.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const i=ve(o),d=l?me(i):s,c=me(o),u=Se(o);ne(p,o),ye(o),Te(o);const v=[],w=[[void 0,[i,void 0,void 0,[],U(),d]]],L=[],g=[],R=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(v)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(v,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,l]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],i=[o,[o,a,I(l)?l:e=>e(l),[],U(),C(e)?me(o):s]];return x(w,i),{as:e=>i[0]=e}},where:(e,t,r,n)=>x(L,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(R,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(u,e=>e[t]);var t}});const h=U(v);if(z(h))return W(p,o),Qe;const b=U(w);Y(b,(e,[,t])=>T(X(b,t),({3:t})=>y(e)?0:x(t,e)));const E=U(g);let S=f;if(z(E)&&0==P(R))S=c;else{Ie(o,S,c);const s=U();Y(E,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(h,e=>M(s,e)?0:ne(a,e));const l=U(),i=(a,l,i,d)=>T(a,([u,v,w,L])=>{Y(l,(o,[a])=>{const l=$(u,o,U),c=X(l,i),v=d?void 0:a;if(c!==v){const a=re([[c,v]]),d=D(l);Z(l,i,v),O(X(s,o),([s,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,l,i,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?l?.(e,n,t++):y(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,l,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(i))?void 0:i})}}),z(v)||!Q(R,e=>e(e=>L[e]))?c.delRow(o,w):y(w)?a[2]=c.addRow(o,L):c.setRow(o,w,L)});pe(S,o,S.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=S.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&i(ee(l,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&i(ee(l,c,()=>{const e={};return O(a,t=>e[t]=S.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,d,S);const j=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,l,i]=X(b,t),d=n?.(a,e),c=X(l,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(l,e,y(d)?void 0:[d,i,...Ce(i,o,1,i.addRowListener(r,d,()=>j(e,i,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return d.getCell(i,e,t);if(s===i&&!C(t))return d.getCell(i,e,o);const a=X(b,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};S.transaction(()=>Q(L,e=>e(t))?Y(h,(r,n)=>S._[5](o,e,r,n(t,e))):S.delRow(o,e))})(e)},{3:k}=X(b,void 0),F=(e,t,r)=>{d.hasRow(i,r)?j(r,d,i,r,k):(S.delRow(o,r),O(b,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return S.transaction(()=>{_(d.getRowIds(i),e=>F(0,0,e)),Ce(d,o,0,d.addRowListener(i,null,F))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>g.delListener(e)),g.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>g.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,l,i]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>g.delListener(e)),fe(e,o),Le(e,[a,g.addRowListener(se,e,()=>Ee(e)),l]),Ve(e,i),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>g.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&g.setCell(se,e,t,r),Qe),getStore:ie,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])g.delListener(E(e,1));else if(y(t))le(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,le),Z(b,e),le(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:g.getListenerStats().row-P(de()),paramValue:g.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),l=U(),i=()=>{const n=null==s?de():[s];_(n,n=>{return M(l,n)?0:Z(l,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(l,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(l,e)))};return i(),Z(b,a,[n,l,null==s?Re(i):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[i]:[2,1],[i+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(l)),s.get(l))})();export{oe as createQueries};
1
+ const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,v="Sorted"+d+l,w="Cell",L=w+l,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return l=>(s.has(l)||s.set(l,(s=>{const l=s._[0],f=l(),g=l(),R=l(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:le}=R,[ie,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),l=U(),i=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(l,e)||(Z(l,e,[]),Z(d,e,U()),Z(c,e,U()),s(i))},L=e=>{Z(a,e),Z(l,e),Z(d,e),Z(c,e),v(e),s(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(l,e),e=>M(l,e),e=>X(a,e),e=>X(l,e),(e,t)=>Z(l,e,t),w,(t,n,s,a,l)=>{w(t,n);const i=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(i,t,[d,c]),!y(l)){const e=X(g,t),r=o(n,t)?l(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(i,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},i,L,f,g,e),F(i),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,i),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,l),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),f],t=>t.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?g.delRow:g.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const i=ve(o),d=l?me(i):s,c=me(o),u=Se(o);ne(p,o),ye(o),Te(o);const v=[],w=[[void 0,[i,void 0,void 0,[],U(),d]]],L=[],g=[],R=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(v)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(v,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,l]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],i=[o,[o,a,I(l)?l:e=>e(l),[],U(),C(e)?me(o):s]];return x(w,i),{as:e=>i[0]=e}},where:(e,t,r,n)=>x(L,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(R,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(u,e=>e[t]);var t}});const h=U(v);if(z(h))return W(p,o),Qe;const b=U(w);Y(b,(e,[,t])=>T(X(b,t),({3:t})=>y(e)?0:x(t,e)));const E=U(g);let S=f;if(z(E)&&0==P(R))S=c;else{Ie(o,S,c);const s=U();Y(E,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(h,e=>M(s,e)?0:ne(a,e));const l=U(),i=(a,l,i,d)=>T(a,([u,v,w,L])=>{Y(l,(o,[a])=>{const l=$(u,o,U),c=X(l,i),v=d?void 0:a;if(c!==v){const a=re([[c,v]]),d=D(l);Z(l,i,v),O(X(s,o),([s,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,l,i,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?l?.(e,n,t++):y(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,l,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(i))?void 0:i})}}),z(v)||!Q(R,e=>e(e=>L[e]))?c.delRow(o,w):y(w)?a[2]=c.addRow(o,L):c.setRow(o,w,L)});pe(S,o,S.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=S.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&i(ee(l,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&i(ee(l,c,()=>{const e={};return O(a,t=>e[t]=S.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,d,S);const j=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,l,i]=X(b,t),d=n?.(a,e),c=X(l,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(l,e,y(d)?void 0:[d,i,...Ce(i,o,1,i.addRowListener(r,d,()=>j(e,i,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return d.getCell(i,e,t);if(s===i&&!C(t))return d.getCell(i,e,o);const a=X(b,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};S.transaction(()=>Q(L,e=>e(t))?Y(h,(r,n)=>S._[5](o,e,r,n(t,e))):S.delRow(o,e))})(e)},{3:k}=X(b,void 0),F=(e,t,r)=>{d.hasRow(i,r)?j(r,d,i,r,k):(S.delRow(o,r),O(b,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return S.transaction(()=>{_(d.getRowIds(i),e=>F(0,0,e)),Ce(d,o,0,d.addRowListener(i,null,F))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>g.delListener(e)),g.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>g.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,l,i]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>g.delListener(e)),fe(e,o),Le(e,[a,g.addRowListener(se,e,()=>Ee(e)),l]),Ve(e,i),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>g.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&g.setCell(se,e,t,r),Qe),getStore:ie,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])g.delListener(E(e,1));else if(y(t))le(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,le),Z(b,e),le(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:g.getListenerStats().row-P(de()),paramValue:g.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),l=U(),i=()=>{const n=null==s?de():[s];_(n,n=>{return M(l,n)?0:Z(l,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(l,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(l,e)))};return i(),Z(b,a,[n,l,null==s?Re(i):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[i]:[2,1],[i+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(l)),s.get(l))})();export{oe as createQueries};
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,s)=>t(e)?s?.():a(e),s=globalThis,n=Math,o=n.floor,r=t=>null==t,i=t=>void 0===t,c=t=>null===t,l=a(r),u=a(i),y=t=>Array.isArray(t),g=t=>t.length,w=t=>{throw Error(t)},d=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),h=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>i(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),C=(t,e)=>t?.delete(e),M=Object,A=t=>M.getPrototypeOf(t),S=M.entries,D=M.keys,H=M.freeze,m=(t,e)=>f(S(t),([t,a])=>e(a,t)),L=t=>(t=>!r(t)&&l(A(t),t=>t==M.prototype||r(A(t)),()=>!0))(t)&&0==(t=>g(D(t)))(t),_=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),P=Map,T=t=>new P(t),G=(t,e)=>t?.get(e),R=(t,e,a)=>i(a)?(C(t,e),t):t?.set(e,a),E=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(G(t,e)):R(t,e,a()),G(t,e)},V=(t,e,a,s,n=0)=>u((a?E:G)(t,e[n],n>g(e)-2?a:T),o=>{if(n>g(e)-2)return s?.(o)&&R(t,e[n]),o;const r=V(o,e,a,s,n+1);return v(o)&&R(t,e[n]),r}),z=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),O=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*n.random())))(t),$=(t=16)=>{return e=(t,e)=>t+z[63&e],O(new Uint8Array(t)).reduce(e,"");var e},j=(t,e)=>e?[t,e]:[t],k=(t,e)=>((t??"")>(e??"")?t:e)??"",x=(t="")=>j(((t=[])=>M.fromEntries(t))(),t),F=/^\d+$/,N=t=>new Set(y(t)||i(t)?t:[t]),U=T(),q=T(),B=(t,e,a,s,n,o,r,l={},M=0,A=[])=>{let S,D,m,_=0,P=0,z=0;E(U,A,()=>0),E(q,A,()=>[]);const O=T(),[$,j,k,x,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!L(t)||!L(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!L(t)||!L(e),e.setContent]:w("Store type not supported by this Persister"))(r,t,M),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{F.test(e)&&g(t)<1e3&&h(t,e)}]})(),s=T();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return R(s,c,[a,n,o,r,i]),l=V(n,o??[""],N),u=c,l?.add(u),c},(e,a,...n)=>f(((t,e=[""])=>{const a=[],s=(t,n)=>n==g(e)?h(a,t):c(e[n])?b(t,t=>s(t,n+1)):f([e[n],null],e=>s(G(t,e),n+1));return s(t,0),a})(e,a),e=>b(e,e=>G(s,e)[0](t,...a??[],...n))),t=>u(G(s,t),([,e,n])=>(V(e,n??[""],void 0,e=>(C(e,t),v(e)?1:0)),R(s,t),a(t),n)),e=>u(G(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=g(r);i==g(a)?e(t,...r,...n(r)):c(a[i])?f(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=_&&(_=t,J(O,void 0,_))},W=e=>{($&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=_&&(Q(1),P++,await rt(async()=>{await d(async()=>{const a=await e();y(a)?W(a):t?B(t):w("Content is not an array: "+a)},()=>{t&&B(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await d(async()=>D=await s(async(t,e)=>{e||t?2!=_&&(Q(1),P++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(D&&(await d(()=>n(D),o),D=void 0),it),et=async t=>(1!=_&&(Q(2),z++,await rt(async()=>{await d(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),m=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(m&&(t.delListener(m),m=void 0),it),nt=()=>!i(m),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(h(G(q,A),...t),await(async()=>{if(!G(U,A)){for(R(U,A,1);!i(S=p(G(q,A)));)await d(S,o);R(U,A,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!i(D),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>_,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(G(q,A).splice(0,void 0),ot()),getStats:()=>({loads:P,saves:z}),...l};return H(it)},I={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},J=(t,a,s,n,o,r,l,y,g={})=>{let w,f=0,h=0,p=0;const v=T(),b=()=>$(11),M=(t,e,s,n)=>{h++,r?.(t,e,s,n),a(t,e,s,n)},A=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+$(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{C(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);R(v,i,[t,(t,a)=>{clearTimeout(c),C(v,i),e([t,a,n])}]),M(t,i,a,s)}),S=(t,[e,a])=>{m(e,([e,a],s)=>{const n=_(t[0],s,x);m(e,([t,e],a)=>{const s=_(n[0],a,x);m(t,([t,e],a)=>s[0][a]=j(t,e)),s[1]=k(s[1],e)}),n[1]=k(n[1],a)}),t[1]=k(t[1],a)},D=(e=null,a,s=b())=>d(async()=>{i(a)&&([a,e,s]=await A(null,1,"",s));const[n,o]=a,[r,c]=t.getMergeableContentHashes();let l=x();if(r!=n){const[a,n]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!L(n)){const[a,o]=(await A(e,5,t.getMergeableRowHashes(n),s))[0];if(S(l,a),!L(o)){const a=(await A(e,6,t.getMergeableCellHashes(o),s))[0];S(l,a)}}}return[l,c==o?x():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},y),H=B(t,async()=>{const t=await D();return!t||L(t[0][0])&&L(t[1][0])?void 0:t},async(e,a)=>a?M(null,b(),3,a):M(null,b(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,y,2,{startSync:async t=>(f=1,await H.startAutoPersisting(t)),stopSync:async()=>(f=0,await H.stopAutoPersisting(),H),destroy:async()=>(await H.stopSync(),n(),H),getSynchronizerStats:()=>({sends:h,receives:p}),...g},1);return s((e,a,s,n)=>{const o=f||H.isAutoLoading();p++,l?.(e,a,s,n),0==s?u(G(v,a),([t,a])=>c(t)||t==e?a(n,e):0):2==s&&o?D(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(y):3==s&&o?w?.(void 0,n):u(1==s&&(f||H.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{M(e,a,0,t)})}),H};export{I as Message,J as createCustomSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=Math,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,o=a.floor,r=a.random,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=s(i),y=s(c),g=t=>Array.isArray(t),w=t=>t.length,d=t=>{throw Error(t)},f=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},h=(t,e)=>t.forEach(e),p=(t,...e)=>t.push(...e),v=t=>t.shift(),b=t=>c(t)||0==(t=>t?.size??0)(t),C=(t,e)=>t?.forEach(e),M=(t,e)=>t?.delete(e),A=Object,S=t=>A.getPrototypeOf(t),D=A.entries,H=A.keys,m=A.freeze,L=(t,e)=>h(D(t),([t,a])=>e(a,t)),_=t=>(t=>!i(t)&&u(S(t),t=>t==A.prototype||i(S(t)),()=>!0))(t)&&0==(t=>w(H(t)))(t),P=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=Map,G=t=>new T(t),R=(t,e)=>t?.get(e),E=(t,e,a)=>c(a)?(M(t,e),t):t?.set(e,a),V=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(R(t,e)):E(t,e,a()),R(t,e)},z=(t,e,a,s,n=0)=>y((a?V:R)(t,e[n],n>w(e)-2?a:G),o=>{if(n>w(e)-2)return s?.(o)&&E(t,e[n]),o;const r=z(o,e,a,s,n+1);return b(o)&&E(t,e[n]),r}),O=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),$=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r())))(t),j=(t=16)=>{return e=(t,e)=>t+O[63&e],$(new Uint8Array(t)).reduce(e,"");var e},k=(t,e)=>e?[t,e]:[t],x=(t,e)=>((t??"")>(e??"")?t:e)??"",F=(t="")=>k(((t=[])=>A.fromEntries(t))(),t),N=/^\d+$/,U=t=>new Set(g(t)||c(t)?t:[t]),q=G(),B=G(),I=(t,e,a,s,n,o,r,i={},u=0,A=[])=>{let S,D,H,L=0,P=0,T=0;V(q,A,()=>0),V(B,A,()=>[]);const O=G(),[$,j,k,x,F]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!_(t)||!_(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!_(t)||!_(e),e.setContent]:d("Store type not supported by this Persister"))(r,t,u),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?v(t):null)??""+e++,e=>{N.test(e)&&w(t)<1e3&&p(t,e)}]})(),s=G();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return E(s,c,[a,n,o,r,i]),l=z(n,o??[""],U),u=c,l?.add(u),c},(e,a,...n)=>h(((t,e=[""])=>{const a=[],s=(t,n)=>n==w(e)?p(a,t):l(e[n])?C(t,t=>s(t,n+1)):h([e[n],null],e=>s(R(t,e),n+1));return s(t,0),a})(e,a),e=>C(e,e=>R(s,e)[0](t,...a??[],...n))),t=>y(R(s,t),([,e,n])=>(z(e,n??[""],void 0,e=>(M(e,t),b(e)?1:0)),E(s,t),a(t),n)),e=>y(R(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=w(r);i==w(a)?e(t,...r,...n(r)):l(a[i])?h(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=L&&(L=t,J(O,void 0,L))},W=e=>{($&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=L&&(Q(1),P++,await rt(async()=>{await f(async()=>{const a=await e();g(a)?W(a):t?F(t):d("Content is not an array: "+a)},()=>{t&&F(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await f(async()=>D=await s(async(t,e)=>{e||t?2!=L&&(Q(1),P++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(D&&(await f(()=>n(D),o),D=void 0),it),et=async t=>(1!=L&&(Q(2),T++,await rt(async()=>{await f(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),H=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(H&&(t.delListener(H),H=void 0),it),nt=()=>!c(H),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(p(R(B,A),...t),await(async()=>{if(!R(q,A)){for(E(q,A,1);!c(S=v(R(B,A)));)await f(S,o);E(q,A,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!c(D),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>L,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(R(B,A).splice(0,void 0),ot()),getStats:()=>({loads:P,saves:T}),...i};return m(it)},J={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},K=(t,a,s,n,o,r,i,u,g={})=>{let w,d=0,h=0,p=0;const v=G(),b=()=>j(11),C=(t,e,s,n)=>{h++,r?.(t,e,s,n),a(t,e,s,n)},A=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+j(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{M(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);E(v,i,[t,(t,a)=>{clearTimeout(c),M(v,i),e([t,a,n])}]),C(t,i,a,s)}),S=(t,[e,a])=>{L(e,([e,a],s)=>{const n=P(t[0],s,F);L(e,([t,e],a)=>{const s=P(n[0],a,F);L(t,([t,e],a)=>s[0][a]=k(t,e)),s[1]=x(s[1],e)}),n[1]=x(n[1],a)}),t[1]=x(t[1],a)},D=(e=null,a,s=b())=>f(async()=>{c(a)&&([a,e,s]=await A(null,1,"",s));const[n,o]=a,[r,i]=t.getMergeableContentHashes();let l=F();if(r!=n){const[a,n]=(await A(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!_(n)){const[a,o]=(await A(e,5,t.getMergeableRowHashes(n),s))[0];if(S(l,a),!_(o)){const a=(await A(e,6,t.getMergeableCellHashes(o),s))[0];S(l,a)}}}return[l,i==o?F():(await A(e,7,t.getMergeableValueHashes(),s))[0],1]},u),H=I(t,async()=>{const t=await D();return!t||_(t[0][0])&&_(t[1][0])?void 0:t},async(e,a)=>a?C(null,b(),3,a):C(null,b(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,u,2,{startSync:async t=>(d=1,await H.startAutoPersisting(t)),stopSync:async()=>(d=0,await H.stopAutoPersisting(),H),destroy:async()=>(await H.stopSync(),n(),H),getSynchronizerStats:()=>({sends:h,receives:p}),...g},1);return s((e,a,s,n)=>{const o=d||H.isAutoLoading();p++,i?.(e,a,s,n),0==s?y(R(v,a),([t,a])=>l(t)||t==e?a(n,e):0):2==s&&o?D(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(u):3==s&&o?w?.(void 0,n):y(1==s&&(d||H.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{C(e,a,0,t)})}),H};export{J as Message,K as createCustomSynchronizer};
Binary file
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,s)=>t(e)?s?.():a(e),s=globalThis,n=Math,o=n.floor,r=t=>null==t,i=t=>void 0===t,c=t=>null===t,l=a(r),u=a(i),g=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},w=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},h=(t,e)=>t.forEach(e),p=(t,...e)=>t.push(...e),f=t=>t.shift(),v=t=>i(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),M=(t,e)=>t?.delete(e),A=Object,S=t=>A.getPrototypeOf(t),C=A.entries,m=A.keys,L=A.freeze,_=(t,e)=>h(C(t),([t,a])=>e(a,t)),H=t=>(t=>!r(t)&&l(S(t),t=>t==A.prototype||r(S(t)),()=>!0))(t)&&0==(t=>y(m(t)))(t),P=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),D=Map,T=t=>new D(t),E=(t,e)=>t?.get(e),z=(t,e,a)=>i(a)?(M(t,e),t):t?.set(e,a),R=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):z(t,e,a()),E(t,e)},V=(t,e,a,s,n=0)=>u((a?R:E)(t,e[n],n>y(e)-2?a:T),o=>{if(n>y(e)-2)return s?.(o)&&z(t,e[n]),o;const r=V(o,e,a,s,n+1);return v(o)&&z(t,e[n]),r}),N=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),O=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*n.random())))(t),$=(t=16)=>{return e=(t,e)=>t+N[63&e],O(new Uint8Array(t)).reduce(e,"");var e},j=(t,e)=>e?[t,e]:[t],k=(t,e)=>((t??"")>(e??"")?t:e)??"",x=(t="")=>j(((t=[])=>A.fromEntries(t))(),t),B=/^\d+$/,F=t=>new Set(g(t)||i(t)?t:[t]),U=T(),q=T(),G=(t,e,a,s,n,o,r,l={},A=0,S=[])=>{let C,m,_,P=0,D=0,N=0;R(U,S,()=>0),R(q,S,()=>[]);const O=T(),[$,j,k,x,G]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!H(t)||!H(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!H(t)||!H(e),e.setContent]:d("Store type not supported by this Persister"))(r,t,A),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?f(t):null)??""+e++,e=>{B.test(e)&&y(t)<1e3&&p(t,e)}]})(),s=T();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return z(s,c,[a,n,o,r,i]),l=V(n,o??[""],F),u=c,l?.add(u),c},(e,a,...n)=>h(((t,e=[""])=>{const a=[],s=(t,n)=>n==y(e)?p(a,t):c(e[n])?b(t,t=>s(t,n+1)):h([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>b(e,e=>E(s,e)[0](t,...a??[],...n))),t=>u(E(s,t),([,e,n])=>(V(e,n??[""],void 0,e=>(M(e,t),v(e)?1:0)),z(s,t),a(t),n)),e=>u(E(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=y(r);i==y(a)?e(t,...r,...n(r)):c(a[i])?h(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=P&&(P=t,J(O,void 0,P))},W=e=>{($&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=P&&(Q(1),D++,await rt(async()=>{await w(async()=>{const a=await e();g(a)?W(a):t?G(t):d("Content is not an array: "+a)},()=>{t&&G(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await w(async()=>m=await s(async(t,e)=>{e||t?2!=P&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(m&&(await w(()=>n(m),o),m=void 0),it),et=async t=>(1!=P&&(Q(2),N++,await rt(async()=>{await w(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),_=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(_&&(t.delListener(_),_=void 0),it),nt=()=>!i(_),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(p(E(q,S),...t),await(async()=>{if(!E(U,S)){for(z(U,S,1);!i(C=f(E(q,S)));)await w(C,o);z(U,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!i(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>P,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(q,S).splice(0,void 0),ot()),getStats:()=>({loads:D,saves:N}),...l};return L(it)},I=(t,a,s,n,o)=>{const r=$(),l=new BroadcastChannel(a);return((t,a,s,n,o,r,l,g,y={})=>{let d,h=0,p=0,f=0;const v=T(),b=()=>$(11),A=(t,e,s,n)=>{p++,r?.(t,e,s,n),a(t,e,s,n)},S=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+$(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{M(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);z(v,i,[t,(t,a)=>{clearTimeout(c),M(v,i),e([t,a,n])}]),A(t,i,a,s)}),C=(t,[e,a])=>{_(e,([e,a],s)=>{const n=P(t[0],s,x);_(e,([t,e],a)=>{const s=P(n[0],a,x);_(t,([t,e],a)=>s[0][a]=j(t,e)),s[1]=k(s[1],e)}),n[1]=k(n[1],a)}),t[1]=k(t[1],a)},m=(e=null,a,s=b())=>w(async()=>{i(a)&&([a,e,s]=await S(null,1,"",s));const[n,o]=a,[r,c]=t.getMergeableContentHashes();let l=x();if(r!=n){const[a,n]=(await S(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!H(n)){const[a,o]=(await S(e,5,t.getMergeableRowHashes(n),s))[0];if(C(l,a),!H(o)){const a=(await S(e,6,t.getMergeableCellHashes(o),s))[0];C(l,a)}}}return[l,c==o?x():(await S(e,7,t.getMergeableValueHashes(),s))[0],1]},g),L=G(t,async()=>{const t=await m();return!t||H(t[0][0])&&H(t[1][0])?void 0:t},async(e,a)=>a?A(null,b(),3,a):A(null,b(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,g,2,{startSync:async t=>(h=1,await L.startAutoPersisting(t)),stopSync:async()=>(h=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:p,receives:f}),...y},1);return s((e,a,s,n)=>{const o=h||L.isAutoLoading();f++,l?.(e,a,s,n),0==s?u(E(v,a),([t,a])=>c(t)||t==e?a(n,e):0):2==s&&o?m(e,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(g):3==s&&o?d?.(void 0,n):u(1==s&&(h||L.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{A(e,a,0,t)})}),L})(t,(t,e,a,s)=>l.postMessage([r,t,e,a,s]),t=>{l.onmessage=({data:[e,a,s,n,o]})=>c(a)||a==r?t(e,s,n,o):0},()=>{l.close()},.01,s,n,o,{getChannelName:()=>a})};export{I as createBroadcastChannelSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=Math,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,o=a.floor,r=a.random,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=s(i),g=s(c),y=t=>Array.isArray(t),d=t=>t.length,w=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,...e)=>t.push(...e),v=t=>t.shift(),b=t=>c(t)||0==(t=>t?.size??0)(t),M=(t,e)=>t?.forEach(e),A=(t,e)=>t?.delete(e),S=Object,C=t=>S.getPrototypeOf(t),m=S.entries,L=S.keys,_=S.freeze,H=(t,e)=>p(m(t),([t,a])=>e(a,t)),P=t=>(t=>!i(t)&&u(C(t),t=>t==S.prototype||i(C(t)),()=>!0))(t)&&0==(t=>d(L(t)))(t),D=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=Map,E=t=>new T(t),z=(t,e)=>t?.get(e),R=(t,e,a)=>c(a)?(A(t,e),t):t?.set(e,a),V=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(z(t,e)):R(t,e,a()),z(t,e)},N=(t,e,a,s,n=0)=>g((a?V:z)(t,e[n],n>d(e)-2?a:E),o=>{if(n>d(e)-2)return s?.(o)&&R(t,e[n]),o;const r=N(o,e,a,s,n+1);return b(o)&&R(t,e[n]),r}),O=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),$=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r())))(t),j=(t=16)=>{return e=(t,e)=>t+O[63&e],$(new Uint8Array(t)).reduce(e,"");var e},k=(t,e)=>e?[t,e]:[t],x=(t,e)=>((t??"")>(e??"")?t:e)??"",B=(t="")=>k(((t=[])=>S.fromEntries(t))(),t),F=/^\d+$/,U=t=>new Set(y(t)||c(t)?t:[t]),q=E(),G=E(),I=(t,e,a,s,n,o,r,i={},u=0,S=[])=>{let C,m,L,H=0,D=0,T=0;V(q,S,()=>0),V(G,S,()=>[]);const O=E(),[$,j,k,x,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!P(t)||!P(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!P(t)||!P(e),e.setContent]:w("Store type not supported by this Persister"))(r,t,u),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?v(t):null)??""+e++,e=>{F.test(e)&&d(t)<1e3&&f(t,e)}]})(),s=E();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return R(s,c,[a,n,o,r,i]),l=N(n,o??[""],U),u=c,l?.add(u),c},(e,a,...n)=>p(((t,e=[""])=>{const a=[],s=(t,n)=>n==d(e)?f(a,t):l(e[n])?M(t,t=>s(t,n+1)):p([e[n],null],e=>s(z(t,e),n+1));return s(t,0),a})(e,a),e=>M(e,e=>z(s,e)[0](t,...a??[],...n))),t=>g(z(s,t),([,e,n])=>(N(e,n??[""],void 0,e=>(A(e,t),b(e)?1:0)),R(s,t),a(t),n)),e=>g(z(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=d(r);i==d(a)?e(t,...r,...n(r)):l(a[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=H&&(H=t,J(O,void 0,H))},W=e=>{($&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=H&&(Q(1),D++,await rt(async()=>{await h(async()=>{const a=await e();y(a)?W(a):t?B(t):w("Content is not an array: "+a)},()=>{t&&B(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await h(async()=>m=await s(async(t,e)=>{e||t?2!=H&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(m&&(await h(()=>n(m),o),m=void 0),it),et=async t=>(1!=H&&(Q(2),T++,await rt(async()=>{await h(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!c(L),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(f(z(G,S),...t),await(async()=>{if(!z(q,S)){for(R(q,S,1);!c(C=v(z(G,S)));)await h(C,o);R(q,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!c(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>H,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(z(G,S).splice(0,void 0),ot()),getStats:()=>({loads:D,saves:T}),...i};return _(it)},J=(t,a,s,n,o)=>{const r=j(),i=new BroadcastChannel(a);return((t,a,s,n,o,r,i,u,y={})=>{let d,w=0,p=0,f=0;const v=E(),b=()=>j(11),M=(t,e,s,n)=>{p++,r?.(t,e,s,n),a(t,e,s,n)},S=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+j(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{A(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);R(v,i,[t,(t,a)=>{clearTimeout(c),A(v,i),e([t,a,n])}]),M(t,i,a,s)}),C=(t,[e,a])=>{H(e,([e,a],s)=>{const n=D(t[0],s,B);H(e,([t,e],a)=>{const s=D(n[0],a,B);H(t,([t,e],a)=>s[0][a]=k(t,e)),s[1]=x(s[1],e)}),n[1]=x(n[1],a)}),t[1]=x(t[1],a)},m=(e=null,a,s=b())=>h(async()=>{c(a)&&([a,e,s]=await S(null,1,"",s));const[n,o]=a,[r,i]=t.getMergeableContentHashes();let l=B();if(r!=n){const[a,n]=(await S(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!P(n)){const[a,o]=(await S(e,5,t.getMergeableRowHashes(n),s))[0];if(C(l,a),!P(o)){const a=(await S(e,6,t.getMergeableCellHashes(o),s))[0];C(l,a)}}}return[l,i==o?B():(await S(e,7,t.getMergeableValueHashes(),s))[0],1]},u),L=I(t,async()=>{const t=await m();return!t||P(t[0][0])&&P(t[1][0])?void 0:t},async(e,a)=>a?M(null,b(),3,a):M(null,b(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:p,receives:f}),...y},1);return s((e,a,s,n)=>{const o=w||L.isAutoLoading();f++,i?.(e,a,s,n),0==s?g(z(v,a),([t,a])=>l(t)||t==e?a(n,e):0):2==s&&o?m(e,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==s&&o?d?.(void 0,n):g(1==s&&(w||L.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{M(e,a,0,t)})}),L})(t,(t,e,a,s)=>i.postMessage([r,t,e,a,s]),t=>{i.onmessage=({data:[e,a,s,n,o]})=>l(a)||a==r?t(e,s,n,o):0},()=>{i.close()},.01,s,n,o,{getChannelName:()=>a})};export{J as createBroadcastChannelSynchronizer};
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,s)=>t(e)?s?.():a(e),s=globalThis,n=Math,o=n.floor,r=t=>null==t,i=t=>void 0===t,c=t=>null===t,l=a(r),u=a(i),g=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},w=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},h=(t,e)=>t.forEach(e),p=(t,...e)=>t.push(...e),f=t=>t.shift(),v=t=>i(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),M=(t,e)=>t?.delete(e),A=Object,S=t=>A.getPrototypeOf(t),C=A.entries,m=A.keys,L=A.freeze,_=(t,e)=>h(C(t),([t,a])=>e(a,t)),H=t=>(t=>!r(t)&&l(S(t),t=>t==A.prototype||r(S(t)),()=>!0))(t)&&0==(t=>y(m(t)))(t),P=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),D=Map,T=t=>new D(t),E=(t,e)=>t?.get(e),z=(t,e,a)=>i(a)?(M(t,e),t):t?.set(e,a),R=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):z(t,e,a()),E(t,e)},V=(t,e,a,s,n=0)=>u((a?R:E)(t,e[n],n>y(e)-2?a:T),o=>{if(n>y(e)-2)return s?.(o)&&z(t,e[n]),o;const r=V(o,e,a,s,n+1);return v(o)&&z(t,e[n]),r}),N=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),O=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*n.random())))(t),$=(t=16)=>{return e=(t,e)=>t+N[63&e],O(new Uint8Array(t)).reduce(e,"");var e},j=(t,e)=>e?[t,e]:[t],k=(t,e)=>((t??"")>(e??"")?t:e)??"",x=(t="")=>j(((t=[])=>A.fromEntries(t))(),t),B=/^\d+$/,F=t=>new Set(g(t)||i(t)?t:[t]),U=T(),q=T(),G=(t,e,a,s,n,o,r,l={},A=0,S=[])=>{let C,m,_,P=0,D=0,N=0;R(U,S,()=>0),R(q,S,()=>[]);const O=T(),[$,j,k,x,G]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!H(t)||!H(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!H(t)||!H(e),e.setContent]:d("Store type not supported by this Persister"))(r,t,A),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?f(t):null)??""+e++,e=>{B.test(e)&&y(t)<1e3&&p(t,e)}]})(),s=T();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return z(s,c,[a,n,o,r,i]),l=V(n,o??[""],F),u=c,l?.add(u),c},(e,a,...n)=>h(((t,e=[""])=>{const a=[],s=(t,n)=>n==y(e)?p(a,t):c(e[n])?b(t,t=>s(t,n+1)):h([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>b(e,e=>E(s,e)[0](t,...a??[],...n))),t=>u(E(s,t),([,e,n])=>(V(e,n??[""],void 0,e=>(M(e,t),v(e)?1:0)),z(s,t),a(t),n)),e=>u(E(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=y(r);i==y(a)?e(t,...r,...n(r)):c(a[i])?h(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=P&&(P=t,J(O,void 0,P))},W=e=>{($&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=P&&(Q(1),D++,await rt(async()=>{await w(async()=>{const a=await e();g(a)?W(a):t?G(t):d("Content is not an array: "+a)},()=>{t&&G(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await w(async()=>m=await s(async(t,e)=>{e||t?2!=P&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(m&&(await w(()=>n(m),o),m=void 0),it),et=async t=>(1!=P&&(Q(2),N++,await rt(async()=>{await w(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),_=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(_&&(t.delListener(_),_=void 0),it),nt=()=>!i(_),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(p(E(q,S),...t),await(async()=>{if(!E(U,S)){for(z(U,S,1);!i(C=f(E(q,S)));)await w(C,o);z(U,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!i(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>P,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(q,S).splice(0,void 0),ot()),getStats:()=>({loads:D,saves:N}),...l};return L(it)},I=(t,a,s,n,o)=>{const r=$(),l=new BroadcastChannel(a);return((t,a,s,n,o,r,l,g,y={})=>{let d,h=0,p=0,f=0;const v=T(),b=()=>$(11),A=(t,e,s,n)=>{p++,r?.(t,e,s,n),a(t,e,s,n)},S=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+$(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{M(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);z(v,i,[t,(t,a)=>{clearTimeout(c),M(v,i),e([t,a,n])}]),A(t,i,a,s)}),C=(t,[e,a])=>{_(e,([e,a],s)=>{const n=P(t[0],s,x);_(e,([t,e],a)=>{const s=P(n[0],a,x);_(t,([t,e],a)=>s[0][a]=j(t,e)),s[1]=k(s[1],e)}),n[1]=k(n[1],a)}),t[1]=k(t[1],a)},m=(e=null,a,s=b())=>w(async()=>{i(a)&&([a,e,s]=await S(null,1,"",s));const[n,o]=a,[r,c]=t.getMergeableContentHashes();let l=x();if(r!=n){const[a,n]=(await S(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!H(n)){const[a,o]=(await S(e,5,t.getMergeableRowHashes(n),s))[0];if(C(l,a),!H(o)){const a=(await S(e,6,t.getMergeableCellHashes(o),s))[0];C(l,a)}}}return[l,c==o?x():(await S(e,7,t.getMergeableValueHashes(),s))[0],1]},g),L=G(t,async()=>{const t=await m();return!t||H(t[0][0])&&H(t[1][0])?void 0:t},async(e,a)=>a?A(null,b(),3,a):A(null,b(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,g,2,{startSync:async t=>(h=1,await L.startAutoPersisting(t)),stopSync:async()=>(h=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:p,receives:f}),...y},1);return s((e,a,s,n)=>{const o=h||L.isAutoLoading();f++,l?.(e,a,s,n),0==s?u(E(v,a),([t,a])=>c(t)||t==e?a(n,e):0):2==s&&o?m(e,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(g):3==s&&o?d?.(void 0,n):u(1==s&&(h||L.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{A(e,a,0,t)})}),L})(t,(t,e,a,s)=>l.postMessage([r,t,e,a,s]),t=>{l.onmessage=({data:[e,a,s,n,o]})=>c(a)||a==r?t(e,s,n,o):0},()=>{l.close()},.01,s,n,o,{getChannelName:()=>a})};export{I as createBroadcastChannelSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=Math,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,o=a.floor,r=a.random,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=s(i),g=s(c),y=t=>Array.isArray(t),d=t=>t.length,w=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,...e)=>t.push(...e),v=t=>t.shift(),b=t=>c(t)||0==(t=>t?.size??0)(t),M=(t,e)=>t?.forEach(e),A=(t,e)=>t?.delete(e),S=Object,C=t=>S.getPrototypeOf(t),m=S.entries,L=S.keys,_=S.freeze,H=(t,e)=>p(m(t),([t,a])=>e(a,t)),P=t=>(t=>!i(t)&&u(C(t),t=>t==S.prototype||i(C(t)),()=>!0))(t)&&0==(t=>d(L(t)))(t),D=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=Map,E=t=>new T(t),z=(t,e)=>t?.get(e),R=(t,e,a)=>c(a)?(A(t,e),t):t?.set(e,a),V=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(z(t,e)):R(t,e,a()),z(t,e)},N=(t,e,a,s,n=0)=>g((a?V:z)(t,e[n],n>d(e)-2?a:E),o=>{if(n>d(e)-2)return s?.(o)&&R(t,e[n]),o;const r=N(o,e,a,s,n+1);return b(o)&&R(t,e[n]),r}),O=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),$=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r())))(t),j=(t=16)=>{return e=(t,e)=>t+O[63&e],$(new Uint8Array(t)).reduce(e,"");var e},k=(t,e)=>e?[t,e]:[t],x=(t,e)=>((t??"")>(e??"")?t:e)??"",B=(t="")=>k(((t=[])=>S.fromEntries(t))(),t),F=/^\d+$/,U=t=>new Set(y(t)||c(t)?t:[t]),q=E(),G=E(),I=(t,e,a,s,n,o,r,i={},u=0,S=[])=>{let C,m,L,H=0,D=0,T=0;V(q,S,()=>0),V(G,S,()=>[]);const O=E(),[$,j,k,x,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!P(t)||!P(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!P(t)||!P(e),e.setContent]:w("Store type not supported by this Persister"))(r,t,u),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?v(t):null)??""+e++,e=>{F.test(e)&&d(t)<1e3&&f(t,e)}]})(),s=E();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return R(s,c,[a,n,o,r,i]),l=N(n,o??[""],U),u=c,l?.add(u),c},(e,a,...n)=>p(((t,e=[""])=>{const a=[],s=(t,n)=>n==d(e)?f(a,t):l(e[n])?M(t,t=>s(t,n+1)):p([e[n],null],e=>s(z(t,e),n+1));return s(t,0),a})(e,a),e=>M(e,e=>z(s,e)[0](t,...a??[],...n))),t=>g(z(s,t),([,e,n])=>(N(e,n??[""],void 0,e=>(A(e,t),b(e)?1:0)),R(s,t),a(t),n)),e=>g(z(s,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=d(r);i==d(a)?e(t,...r,...n(r)):l(a[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),Q=t=>{t!=H&&(H=t,J(O,void 0,H))},W=e=>{($&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=H&&(Q(1),D++,await rt(async()=>{await h(async()=>{const a=await e();y(a)?W(a):t?B(t):w("Content is not an array: "+a)},()=>{t&&B(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await h(async()=>m=await s(async(t,e)=>{e||t?2!=H&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),o),it),tt=async()=>(m&&(await h(()=>n(m),o),m=void 0),it),et=async t=>(1!=H&&(Q(2),T++,await rt(async()=>{await h(()=>a(j,t),o),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=k();x(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!c(L),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(f(z(G,S),...t),await(async()=>{if(!z(q,S)){for(R(q,S,1);!c(C=v(z(G,S)));)await h(C,o);R(q,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!c(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>H,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:rt,getStore:()=>t,destroy:()=>(z(G,S).splice(0,void 0),ot()),getStats:()=>({loads:D,saves:T}),...i};return _(it)},J=(t,a,s,n,o)=>{const r=j(),i=new BroadcastChannel(a);return((t,a,s,n,o,r,i,u,y={})=>{let d,w=0,p=0,f=0;const v=E(),b=()=>j(11),M=(t,e,s,n)=>{p++,r?.(t,e,s,n),a(t,e,s,n)},S=async(t,a,s,n)=>new e((e,r)=>{const i=n+"."+j(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{A(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);R(v,i,[t,(t,a)=>{clearTimeout(c),A(v,i),e([t,a,n])}]),M(t,i,a,s)}),C=(t,[e,a])=>{H(e,([e,a],s)=>{const n=D(t[0],s,B);H(e,([t,e],a)=>{const s=D(n[0],a,B);H(t,([t,e],a)=>s[0][a]=k(t,e)),s[1]=x(s[1],e)}),n[1]=x(n[1],a)}),t[1]=x(t[1],a)},m=(e=null,a,s=b())=>h(async()=>{c(a)&&([a,e,s]=await S(null,1,"",s));const[n,o]=a,[r,i]=t.getMergeableContentHashes();let l=B();if(r!=n){const[a,n]=(await S(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!P(n)){const[a,o]=(await S(e,5,t.getMergeableRowHashes(n),s))[0];if(C(l,a),!P(o)){const a=(await S(e,6,t.getMergeableCellHashes(o),s))[0];C(l,a)}}}return[l,i==o?B():(await S(e,7,t.getMergeableValueHashes(),s))[0],1]},u),L=I(t,async()=>{const t=await m();return!t||P(t[0][0])&&P(t[1][0])?void 0:t},async(e,a)=>a?M(null,b(),3,a):M(null,b(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:p,receives:f}),...y},1);return s((e,a,s,n)=>{const o=w||L.isAutoLoading();f++,i?.(e,a,s,n),0==s?g(z(v,a),([t,a])=>l(t)||t==e?a(n,e):0):2==s&&o?m(e,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==s&&o?d?.(void 0,n):g(1==s&&(w||L.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{M(e,a,0,t)})}),L})(t,(t,e,a,s)=>i.postMessage([r,t,e,a,s]),t=>{i.onmessage=({data:[e,a,s,n,o]})=>l(a)||a==r?t(e,s,n,o):0},()=>{i.close()},.01,s,n,o,{getChannelName:()=>a})};export{J as createBroadcastChannelSynchronizer};
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,s)=>t(e)?s?.():a(e),s=globalThis,n=(t,e=0)=>setTimeout(t,1e3*e),r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=a(i),y=a(c),g=t=>Array.isArray(t),d=t=>t.length,w=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,...e)=>t.push(...e),v=t=>t.shift(),b=t=>c(t)||0==(t=>t?.size??0)(t),M=(t,e)=>t?.forEach(e),A=(t,e)=>t?.delete(e),S=Object,C=t=>S.getPrototypeOf(t),m=S.entries,L=S.keys,_=S.freeze,H=(t,e)=>p(m(t),([t,a])=>e(a,t)),P=t=>(t=>!i(t)&&u(C(t),t=>t==S.prototype||i(C(t)),()=>!0))(t)&&0==(t=>d(L(t)))(t),D=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=Map,E=t=>new T(t),z=(t,e)=>t?.get(e),R=(t,e,a)=>c(a)?(A(t,e),t):t?.set(e,a),V=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(z(t,e)):R(t,e,a()),z(t,e)},O=(t,e,a,s,n=0)=>y((a?V:z)(t,e[n],n>d(e)-2?a:E),r=>{if(n>d(e)-2)return s?.(r)&&R(t,e[n]),r;const o=O(r,e,a,s,n+1);return b(r)&&R(t,e[n]),o}),$=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),j=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r.random())))(t),k=(t=16)=>{return e=(t,e)=>t+$[63&e],j(new Uint8Array(t)).reduce(e,"");var e},x=(t,e)=>e?[t,e]:[t],F=(t,e)=>((t??"")>(e??"")?t:e)??"",N=(t="")=>x(((t=[])=>S.fromEntries(t))(),t),U=/^\d+$/,q=t=>new Set(g(t)||c(t)?t:[t]),B=E(),G=E(),I=(t,e,a,s,n,r,o,i={},u=0,S=[])=>{let C,m,L,H=0,D=0,T=0;V(B,S,()=>0),V(G,S,()=>[]);const $=E(),[j,k,x,F,N]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!P(t)||!P(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!P(t)||!P(e),e.setContent]:w("Store type not supported by this Persister"))(o,t,u),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?v(t):null)??""+e++,e=>{U.test(e)&&d(t)<1e3&&f(t,e)}]})(),s=E();return[(a,n,r,o=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return R(s,c,[a,n,r,o,i]),l=O(n,r??[""],q),u=c,l?.add(u),c},(e,a,...n)=>p(((t,e=[""])=>{const a=[],s=(t,n)=>n==d(e)?f(a,t):l(e[n])?M(t,t=>s(t,n+1)):p([e[n],null],e=>s(z(t,e),n+1));return s(t,0),a})(e,a),e=>M(e,e=>z(s,e)[0](t,...a??[],...n))),t=>y(z(s,t),([,e,n])=>(O(e,n??[""],void 0,e=>(A(e,t),b(e)?1:0)),R(s,t),a(t),n)),e=>y(z(s,e),([e,,a=[],s,n])=>{const r=(...o)=>{const i=d(o);i==d(a)?e(t,...o,...n(o)):l(a[i])?p(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),Q=t=>{t!=H&&(H=t,J($,void 0,H))},W=e=>{(j&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=H&&(Q(1),D++,await ot(async()=>{await h(async()=>{const a=await e();g(a)?W(a):t?N(t):w("Content is not an array: "+a)},()=>{t&&N(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await h(async()=>m=await s(async(t,e)=>{e||t?2!=H&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),r),it),tt=async()=>(m&&(await h(()=>n(m),r),m=void 0),it),et=async t=>(1!=H&&(Q(2),T++,await ot(async()=>{await h(()=>a(k,t),r),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=x();F(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!c(L),rt=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},ot=async(...t)=>(f(z(G,S),...t),await(async()=>{if(!z(B,S)){for(R(B,S,1);!c(C=v(z(G,S)));)await h(C,r);R(B,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!c(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:rt,getStatus:()=>H,addStatusListener:t=>I(t,$),delListener:e=>(K(e),t),schedule:ot,getStore:()=>t,destroy:()=>(z(G,S).splice(0,void 0),rt()),getStats:()=>({loads:D,saves:T}),...i};return _(it)},J=E(),K=(t,a,s,r)=>{const o=k();return((t,a,s,r,o,i,u,g,d={})=>{let w,p=0,f=0,v=0;const b=E(),M=()=>k(11),S=(t,e,s,n)=>{f++,i?.(t,e,s,n),a(t,e,s,n)},C=async(t,a,s,r)=>new e((e,i)=>{const c=r+"."+k(4),l=n(()=>{A(b,c),i(`No response from ${t??"anyone"} to ${c}, `+a)},o);R(b,c,[t,(t,a)=>{clearTimeout(l),A(b,c),e([t,a,r])}]),S(t,c,a,s)}),m=(t,[e,a])=>{H(e,([e,a],s)=>{const n=D(t[0],s,N);H(e,([t,e],a)=>{const s=D(n[0],a,N);H(t,([t,e],a)=>s[0][a]=x(t,e)),s[1]=F(s[1],e)}),n[1]=F(n[1],a)}),t[1]=F(t[1],a)},L=(e=null,a,s=M())=>h(async()=>{c(a)&&([a,e,s]=await C(null,1,"",s));const[n,r]=a,[o,i]=t.getMergeableContentHashes();let l=N();if(o!=n){const[a,n]=(await C(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!P(n)){const[a,r]=(await C(e,5,t.getMergeableRowHashes(n),s))[0];if(m(l,a),!P(r)){const a=(await C(e,6,t.getMergeableCellHashes(r),s))[0];m(l,a)}}}return[l,i==r?N():(await C(e,7,t.getMergeableValueHashes(),s))[0],1]},g),_=I(t,async()=>{const t=await L();return!t||P(t[0][0])&&P(t[1][0])?void 0:t},async(e,a)=>a?S(null,M(),3,a):S(null,M(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,g,2,{startSync:async t=>(p=1,await _.startAutoPersisting(t)),stopSync:async()=>(p=0,await _.stopAutoPersisting(),_),destroy:async()=>(await _.stopSync(),r(),_),getSynchronizerStats:()=>({sends:f,receives:v}),...d},1);return s((e,a,s,n)=>{const r=p||_.isAutoLoading();v++,u?.(e,a,s,n),0==s?y(z(b,a),([t,a])=>l(t)||t==e?a(n,e):0):2==s&&r?L(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(g):3==s&&r?w?.(void 0,n):y(1==s&&(p||_.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{S(e,a,0,t)})}),_})(t,(t,e,a,s)=>n(()=>{return l(t)?(n=(t,n)=>t!=o?n(o,e,a,s):0,M(J,(t,e)=>n(e,t))):z(J,t)?.(o,e,a,s);var n}),t=>{R(J,o,t)},()=>{A(J,o)},.01,a,s,r)};export{K as createLocalSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=Math,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,r=(t,e=0)=>setTimeout(t,1e3*e),o=a.floor,i=a.random,c=t=>null==t,l=t=>void 0===t,u=t=>null===t,y=s(c),g=s(l),d=t=>Array.isArray(t),w=t=>t.length,h=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),v=(t,...e)=>t.push(...e),b=t=>t.shift(),M=t=>l(t)||0==(t=>t?.size??0)(t),A=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),C=Object,m=t=>C.getPrototypeOf(t),L=C.entries,_=C.keys,H=C.freeze,P=(t,e)=>f(L(t),([t,a])=>e(a,t)),D=t=>(t=>!c(t)&&y(m(t),t=>t==C.prototype||c(m(t)),()=>!0))(t)&&0==(t=>w(_(t)))(t),T=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),E=Map,z=t=>new E(t),R=(t,e)=>t?.get(e),V=(t,e,a)=>l(a)?(S(t,e),t):t?.set(e,a),O=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(R(t,e)):V(t,e,a()),R(t,e)},$=(t,e,a,s,n=0)=>g((a?O:R)(t,e[n],n>w(e)-2?a:z),r=>{if(n>w(e)-2)return s?.(r)&&V(t,e[n]),r;const o=$(r,e,a,s,n+1);return M(r)&&V(t,e[n]),o}),j=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),k=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*i())))(t),x=(t=16)=>{return e=(t,e)=>t+j[63&e],k(new Uint8Array(t)).reduce(e,"");var e},F=(t,e)=>e?[t,e]:[t],N=(t,e)=>((t??"")>(e??"")?t:e)??"",U=(t="")=>F(((t=[])=>C.fromEntries(t))(),t),q=/^\d+$/,B=t=>new Set(d(t)||l(t)?t:[t]),G=z(),I=z(),J=(t,e,a,s,n,r,o,i={},c=0,y=[])=>{let C,m,L,_=0,P=0,T=0;O(G,y,()=>0),O(I,y,()=>[]);const E=z(),[j,k,x,F,N]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!D(t)||!D(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!D(t)||!D(e),e.setContent]:h("Store type not supported by this Persister"))(o,t,c),[U,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?b(t):null)??""+e++,e=>{q.test(e)&&w(t)<1e3&&v(t,e)}]})(),s=z();return[(a,n,r,o=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return V(s,c,[a,n,r,o,i]),l=$(n,r??[""],B),u=c,l?.add(u),c},(e,a,...n)=>f(((t,e=[""])=>{const a=[],s=(t,n)=>n==w(e)?v(a,t):u(e[n])?A(t,t=>s(t,n+1)):f([e[n],null],e=>s(R(t,e),n+1));return s(t,0),a})(e,a),e=>A(e,e=>R(s,e)[0](t,...a??[],...n))),t=>g(R(s,t),([,e,n])=>($(e,n??[""],void 0,e=>(S(e,t),M(e)?1:0)),V(s,t),a(t),n)),e=>g(R(s,e),([e,,a=[],s,n])=>{const r=(...o)=>{const i=w(o);i==w(a)?e(t,...o,...n(o)):u(a[i])?f(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),Q=t=>{t!=_&&(_=t,J(E,void 0,_))},W=e=>{(j&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=_&&(Q(1),P++,await ot(async()=>{await p(async()=>{const a=await e();d(a)?W(a):t?N(t):h("Content is not an array: "+a)},()=>{t&&N(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await p(async()=>m=await s(async(t,e)=>{e||t?2!=_&&(Q(1),P++,W(e??t),Q(0),await X()):await Y()}),r),it),tt=async()=>(m&&(await p(()=>n(m),r),m=void 0),it),et=async t=>(1!=_&&(Q(2),T++,await ot(async()=>{await p(()=>a(k,t),r),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=x();F(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!l(L),rt=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},ot=async(...t)=>(v(R(I,y),...t),await(async()=>{if(!R(G,y)){for(V(G,y,1);!l(C=b(R(I,y)));)await p(C,r);V(G,y,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!l(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:rt,getStatus:()=>_,addStatusListener:t=>U(t,E),delListener:e=>(K(e),t),schedule:ot,getStore:()=>t,destroy:()=>(R(I,y).splice(0,void 0),rt()),getStats:()=>({loads:P,saves:T}),...i};return H(it)},K=z(),Q=(t,a,s,n)=>{const o=x();return((t,a,s,n,o,i,c,y,d={})=>{let w,h=0,f=0,v=0;const b=z(),M=()=>x(11),A=(t,e,s,n)=>{f++,i?.(t,e,s,n),a(t,e,s,n)},C=async(t,a,s,n)=>new e((e,i)=>{const c=n+"."+x(4),l=r(()=>{S(b,c),i(`No response from ${t??"anyone"} to ${c}, `+a)},o);V(b,c,[t,(t,a)=>{clearTimeout(l),S(b,c),e([t,a,n])}]),A(t,c,a,s)}),m=(t,[e,a])=>{P(e,([e,a],s)=>{const n=T(t[0],s,U);P(e,([t,e],a)=>{const s=T(n[0],a,U);P(t,([t,e],a)=>s[0][a]=F(t,e)),s[1]=N(s[1],e)}),n[1]=N(n[1],a)}),t[1]=N(t[1],a)},L=(e=null,a,s=M())=>p(async()=>{l(a)&&([a,e,s]=await C(null,1,"",s));const[n,r]=a,[o,i]=t.getMergeableContentHashes();let c=U();if(o!=n){const[a,n]=(await C(e,4,t.getMergeableTableHashes(),s))[0];if(c=a,!D(n)){const[a,r]=(await C(e,5,t.getMergeableRowHashes(n),s))[0];if(m(c,a),!D(r)){const a=(await C(e,6,t.getMergeableCellHashes(r),s))[0];m(c,a)}}}return[c,i==r?U():(await C(e,7,t.getMergeableValueHashes(),s))[0],1]},y),_=J(t,async()=>{const t=await L();return!t||D(t[0][0])&&D(t[1][0])?void 0:t},async(e,a)=>a?A(null,M(),3,a):A(null,M(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,y,2,{startSync:async t=>(h=1,await _.startAutoPersisting(t)),stopSync:async()=>(h=0,await _.stopAutoPersisting(),_),destroy:async()=>(await _.stopSync(),n(),_),getSynchronizerStats:()=>({sends:f,receives:v}),...d},1);return s((e,a,s,n)=>{const r=h||_.isAutoLoading();v++,c?.(e,a,s,n),0==s?g(R(b,a),([t,a])=>u(t)||t==e?a(n,e):0):2==s&&r?L(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(y):3==s&&r?w?.(void 0,n):g(1==s&&(h||_.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{A(e,a,0,t)})}),_})(t,(t,e,a,s)=>r(()=>{return u(t)?(n=(t,n)=>t!=o?n(o,e,a,s):0,A(K,(t,e)=>n(e,t))):R(K,t)?.(o,e,a,s);var n}),t=>{V(K,o,t)},()=>{S(K,o)},.01,a,s,n)};export{Q as createLocalSynchronizer};
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,s)=>t(e)?s?.():a(e),s=globalThis,n=(t,e=0)=>setTimeout(t,1e3*e),r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=a(i),y=a(c),g=t=>Array.isArray(t),d=t=>t.length,w=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,...e)=>t.push(...e),v=t=>t.shift(),b=t=>c(t)||0==(t=>t?.size??0)(t),M=(t,e)=>t?.forEach(e),A=(t,e)=>t?.delete(e),S=Object,C=t=>S.getPrototypeOf(t),m=S.entries,L=S.keys,_=S.freeze,H=(t,e)=>p(m(t),([t,a])=>e(a,t)),P=t=>(t=>!i(t)&&u(C(t),t=>t==S.prototype||i(C(t)),()=>!0))(t)&&0==(t=>d(L(t)))(t),D=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=Map,E=t=>new T(t),z=(t,e)=>t?.get(e),R=(t,e,a)=>c(a)?(A(t,e),t):t?.set(e,a),V=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(z(t,e)):R(t,e,a()),z(t,e)},O=(t,e,a,s,n=0)=>y((a?V:z)(t,e[n],n>d(e)-2?a:E),r=>{if(n>d(e)-2)return s?.(r)&&R(t,e[n]),r;const o=O(r,e,a,s,n+1);return b(r)&&R(t,e[n]),o}),$=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),j=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r.random())))(t),k=(t=16)=>{return e=(t,e)=>t+$[63&e],j(new Uint8Array(t)).reduce(e,"");var e},x=(t,e)=>e?[t,e]:[t],F=(t,e)=>((t??"")>(e??"")?t:e)??"",N=(t="")=>x(((t=[])=>S.fromEntries(t))(),t),U=/^\d+$/,q=t=>new Set(g(t)||c(t)?t:[t]),B=E(),G=E(),I=(t,e,a,s,n,r,o,i={},u=0,S=[])=>{let C,m,L,H=0,D=0,T=0;V(B,S,()=>0),V(G,S,()=>[]);const $=E(),[j,k,x,F,N]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!P(t)||!P(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!P(t)||!P(e),e.setContent]:w("Store type not supported by this Persister"))(o,t,u),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?v(t):null)??""+e++,e=>{U.test(e)&&d(t)<1e3&&f(t,e)}]})(),s=E();return[(a,n,r,o=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return R(s,c,[a,n,r,o,i]),l=O(n,r??[""],q),u=c,l?.add(u),c},(e,a,...n)=>p(((t,e=[""])=>{const a=[],s=(t,n)=>n==d(e)?f(a,t):l(e[n])?M(t,t=>s(t,n+1)):p([e[n],null],e=>s(z(t,e),n+1));return s(t,0),a})(e,a),e=>M(e,e=>z(s,e)[0](t,...a??[],...n))),t=>y(z(s,t),([,e,n])=>(O(e,n??[""],void 0,e=>(A(e,t),b(e)?1:0)),R(s,t),a(t),n)),e=>y(z(s,e),([e,,a=[],s,n])=>{const r=(...o)=>{const i=d(o);i==d(a)?e(t,...o,...n(o)):l(a[i])?p(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),Q=t=>{t!=H&&(H=t,J($,void 0,H))},W=e=>{(j&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=H&&(Q(1),D++,await ot(async()=>{await h(async()=>{const a=await e();g(a)?W(a):t?N(t):w("Content is not an array: "+a)},()=>{t&&N(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await h(async()=>m=await s(async(t,e)=>{e||t?2!=H&&(Q(1),D++,W(e??t),Q(0),await X()):await Y()}),r),it),tt=async()=>(m&&(await h(()=>n(m),r),m=void 0),it),et=async t=>(1!=H&&(Q(2),T++,await ot(async()=>{await h(()=>a(k,t),r),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=x();F(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!c(L),rt=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},ot=async(...t)=>(f(z(G,S),...t),await(async()=>{if(!z(B,S)){for(R(B,S,1);!c(C=v(z(G,S)));)await h(C,r);R(B,S,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!c(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:rt,getStatus:()=>H,addStatusListener:t=>I(t,$),delListener:e=>(K(e),t),schedule:ot,getStore:()=>t,destroy:()=>(z(G,S).splice(0,void 0),rt()),getStats:()=>({loads:D,saves:T}),...i};return _(it)},J=E(),K=(t,a,s,r)=>{const o=k();return((t,a,s,r,o,i,u,g,d={})=>{let w,p=0,f=0,v=0;const b=E(),M=()=>k(11),S=(t,e,s,n)=>{f++,i?.(t,e,s,n),a(t,e,s,n)},C=async(t,a,s,r)=>new e((e,i)=>{const c=r+"."+k(4),l=n(()=>{A(b,c),i(`No response from ${t??"anyone"} to ${c}, `+a)},o);R(b,c,[t,(t,a)=>{clearTimeout(l),A(b,c),e([t,a,r])}]),S(t,c,a,s)}),m=(t,[e,a])=>{H(e,([e,a],s)=>{const n=D(t[0],s,N);H(e,([t,e],a)=>{const s=D(n[0],a,N);H(t,([t,e],a)=>s[0][a]=x(t,e)),s[1]=F(s[1],e)}),n[1]=F(n[1],a)}),t[1]=F(t[1],a)},L=(e=null,a,s=M())=>h(async()=>{c(a)&&([a,e,s]=await C(null,1,"",s));const[n,r]=a,[o,i]=t.getMergeableContentHashes();let l=N();if(o!=n){const[a,n]=(await C(e,4,t.getMergeableTableHashes(),s))[0];if(l=a,!P(n)){const[a,r]=(await C(e,5,t.getMergeableRowHashes(n),s))[0];if(m(l,a),!P(r)){const a=(await C(e,6,t.getMergeableCellHashes(r),s))[0];m(l,a)}}}return[l,i==r?N():(await C(e,7,t.getMergeableValueHashes(),s))[0],1]},g),_=I(t,async()=>{const t=await L();return!t||P(t[0][0])&&P(t[1][0])?void 0:t},async(e,a)=>a?S(null,M(),3,a):S(null,M(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,g,2,{startSync:async t=>(p=1,await _.startAutoPersisting(t)),stopSync:async()=>(p=0,await _.stopAutoPersisting(),_),destroy:async()=>(await _.stopSync(),r(),_),getSynchronizerStats:()=>({sends:f,receives:v}),...d},1);return s((e,a,s,n)=>{const r=p||_.isAutoLoading();v++,u?.(e,a,s,n),0==s?y(z(b,a),([t,a])=>l(t)||t==e?a(n,e):0):2==s&&r?L(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(g):3==s&&r?w?.(void 0,n):y(1==s&&(p||_.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{S(e,a,0,t)})}),_})(t,(t,e,a,s)=>n(()=>{return l(t)?(n=(t,n)=>t!=o?n(o,e,a,s):0,M(J,(t,e)=>n(e,t))):z(J,t)?.(o,e,a,s);var n}),t=>{R(J,o,t)},()=>{A(J,o)},.01,a,s,r)};export{K as createLocalSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=Math,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,r=(t,e=0)=>setTimeout(t,1e3*e),o=a.floor,i=a.random,c=t=>null==t,l=t=>void 0===t,u=t=>null===t,y=s(c),g=s(l),d=t=>Array.isArray(t),w=t=>t.length,h=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),v=(t,...e)=>t.push(...e),b=t=>t.shift(),M=t=>l(t)||0==(t=>t?.size??0)(t),A=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),C=Object,m=t=>C.getPrototypeOf(t),L=C.entries,_=C.keys,H=C.freeze,P=(t,e)=>f(L(t),([t,a])=>e(a,t)),D=t=>(t=>!c(t)&&y(m(t),t=>t==C.prototype||c(m(t)),()=>!0))(t)&&0==(t=>w(_(t)))(t),T=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),E=Map,z=t=>new E(t),R=(t,e)=>t?.get(e),V=(t,e,a)=>l(a)?(S(t,e),t):t?.set(e,a),O=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(R(t,e)):V(t,e,a()),R(t,e)},$=(t,e,a,s,n=0)=>g((a?O:R)(t,e[n],n>w(e)-2?a:z),r=>{if(n>w(e)-2)return s?.(r)&&V(t,e[n]),r;const o=$(r,e,a,s,n+1);return M(r)&&V(t,e[n]),o}),j=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),k=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*i())))(t),x=(t=16)=>{return e=(t,e)=>t+j[63&e],k(new Uint8Array(t)).reduce(e,"");var e},F=(t,e)=>e?[t,e]:[t],N=(t,e)=>((t??"")>(e??"")?t:e)??"",U=(t="")=>F(((t=[])=>C.fromEntries(t))(),t),q=/^\d+$/,B=t=>new Set(d(t)||l(t)?t:[t]),G=z(),I=z(),J=(t,e,a,s,n,r,o,i={},c=0,y=[])=>{let C,m,L,_=0,P=0,T=0;O(G,y,()=>0),O(I,y,()=>[]);const E=z(),[j,k,x,F,N]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!D(t)||!D(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!D(t)||!D(e),e.setContent]:h("Store type not supported by this Persister"))(o,t,c),[U,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?b(t):null)??""+e++,e=>{q.test(e)&&w(t)<1e3&&v(t,e)}]})(),s=z();return[(a,n,r,o=[],i=()=>[])=>{t??=it;const c=e(1);var l,u;return V(s,c,[a,n,r,o,i]),l=$(n,r??[""],B),u=c,l?.add(u),c},(e,a,...n)=>f(((t,e=[""])=>{const a=[],s=(t,n)=>n==w(e)?v(a,t):u(e[n])?A(t,t=>s(t,n+1)):f([e[n],null],e=>s(R(t,e),n+1));return s(t,0),a})(e,a),e=>A(e,e=>R(s,e)[0](t,...a??[],...n))),t=>g(R(s,t),([,e,n])=>($(e,n??[""],void 0,e=>(S(e,t),M(e)?1:0)),V(s,t),a(t),n)),e=>g(R(s,e),([e,,a=[],s,n])=>{const r=(...o)=>{const i=w(o);i==w(a)?e(t,...o,...n(o)):u(a[i])?f(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),Q=t=>{t!=_&&(_=t,J(E,void 0,_))},W=e=>{(j&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async()=>{nt()&&t.__?.[0]?.()&&await et()},Y=async t=>(2!=_&&(Q(1),P++,await ot(async()=>{await p(async()=>{const a=await e();d(a)?W(a):t?N(t):h("Content is not an array: "+a)},()=>{t&&N(t)}),Q(0),await X()})),it),Z=async t=>(tt(),await Y(t),await p(async()=>m=await s(async(t,e)=>{e||t?2!=_&&(Q(1),P++,W(e??t),Q(0),await X()):await Y()}),r),it),tt=async()=>(m&&(await p(()=>n(m),r),m=void 0),it),et=async t=>(1!=_&&(Q(2),T++,await ot(async()=>{await p(()=>a(k,t),r),Q(0)})),it),at=async()=>(st(),await et(),L=t.addDidFinishTransactionListener(()=>{const t=x();F(t)&&et(t)}),it),st=async()=>(L&&(t.delListener(L),L=void 0),it),nt=()=>!l(L),rt=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},ot=async(...t)=>(v(R(I,y),...t),await(async()=>{if(!R(G,y)){for(V(G,y,1);!l(C=b(R(I,y)));)await p(C,r);V(G,y,0)}})(),it),it={load:Y,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!l(m),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:rt,getStatus:()=>_,addStatusListener:t=>U(t,E),delListener:e=>(K(e),t),schedule:ot,getStore:()=>t,destroy:()=>(R(I,y).splice(0,void 0),rt()),getStats:()=>({loads:P,saves:T}),...i};return H(it)},K=z(),Q=(t,a,s,n)=>{const o=x();return((t,a,s,n,o,i,c,y,d={})=>{let w,h=0,f=0,v=0;const b=z(),M=()=>x(11),A=(t,e,s,n)=>{f++,i?.(t,e,s,n),a(t,e,s,n)},C=async(t,a,s,n)=>new e((e,i)=>{const c=n+"."+x(4),l=r(()=>{S(b,c),i(`No response from ${t??"anyone"} to ${c}, `+a)},o);V(b,c,[t,(t,a)=>{clearTimeout(l),S(b,c),e([t,a,n])}]),A(t,c,a,s)}),m=(t,[e,a])=>{P(e,([e,a],s)=>{const n=T(t[0],s,U);P(e,([t,e],a)=>{const s=T(n[0],a,U);P(t,([t,e],a)=>s[0][a]=F(t,e)),s[1]=N(s[1],e)}),n[1]=N(n[1],a)}),t[1]=N(t[1],a)},L=(e=null,a,s=M())=>p(async()=>{l(a)&&([a,e,s]=await C(null,1,"",s));const[n,r]=a,[o,i]=t.getMergeableContentHashes();let c=U();if(o!=n){const[a,n]=(await C(e,4,t.getMergeableTableHashes(),s))[0];if(c=a,!D(n)){const[a,r]=(await C(e,5,t.getMergeableRowHashes(n),s))[0];if(m(c,a),!D(r)){const a=(await C(e,6,t.getMergeableCellHashes(r),s))[0];m(c,a)}}}return[c,i==r?U():(await C(e,7,t.getMergeableValueHashes(),s))[0],1]},y),_=J(t,async()=>{const t=await L();return!t||D(t[0][0])&&D(t[1][0])?void 0:t},async(e,a)=>a?A(null,M(),3,a):A(null,M(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,y,2,{startSync:async t=>(h=1,await _.startAutoPersisting(t)),stopSync:async()=>(h=0,await _.stopAutoPersisting(),_),destroy:async()=>(await _.stopSync(),n(),_),getSynchronizerStats:()=>({sends:f,receives:v}),...d},1);return s((e,a,s,n)=>{const r=h||_.isAutoLoading();v++,c?.(e,a,s,n),0==s?g(R(b,a),([t,a])=>u(t)||t==e?a(n,e):0):2==s&&r?L(e,n,a??void 0).then(t=>{w?.(void 0,t)}).catch(y):3==s&&r?w?.(void 0,n):g(1==s&&(h||_.isAutoSaving())?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,t=>{A(e,a,0,t)})}),_})(t,(t,e,a,s)=>r(()=>{return u(t)?(n=(t,n)=>t!=o?n(o,e,a,s):0,A(K,(t,e)=>n(e,t))):R(K,t)?.(o,e,a,s);var n}),t=>{V(K,o,t)},()=>{S(K,o)},.01,a,s,n)};export{Q as createLocalSynchronizer};
@@ -1 +1 @@
1
- const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=s(i),g=s(c),y=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),w=t=>t.length,v=t=>new a(t),f=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},h=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),S=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,C=t=>A.getPrototypeOf(t),m=A.entries,L=t=>!i(t)&&u(C(t),t=>t==A.prototype||i(C(t)),()=>!0),P=A.keys,_=A.freeze,E=(t=[])=>A.fromEntries(t),H=(t,e)=>h(m(t),([t,a])=>e(a,t)),D=t=>L(t)&&0==(t=>w(P(t)))(t),O=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=JSON.stringify,N=JSON.parse,z=t=>""===t?void 0:y(t)?b(t,z):L(t)?((t,e)=>E(((t,e)=>b(m(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,z):t,R=t=>c(t)||0==(t=>t?.size??0)(t),V=(t,e)=>t?.forEach(e),k=(t,e)=>t?.delete(e),x=Map,J=t=>new x(t),$=(t,e)=>t?.get(e),j=(t,e,a)=>c(a)?(k(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>g((a?F:$)(t,e[n],n>w(e)-2?a:J),r=>{if(n>w(e)-2)return s?.(r)&&j(t,e[n]),r;const o=U(r,e,a,s,n+1);return R(r)&&j(t,e[n]),o}),W=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=n.crypto?t=>n.crypto.getRandomValues(t):t=>b(t,()=>o(256*r.random())),B=(t=16)=>{return e=(t,e)=>t+W[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],I=(t,e)=>((t??"")>(e??"")?t:e)??"",K=(t="")=>G(E(),t),Q=/^\d+$/,X=t=>new Set(y(t)||c(t)?t:[t]),Y=J(),Z=J(),tt=(e,a,s,n,r,o,i,u={},d=0,v=[])=>{let b,A,C,m=0,L=0,P=0;F(Y,v,()=>0),F(Z,v,()=>[]);const E=J(),[H,O,T,N,z]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!D(t)||!D(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!D(t)||!D(e),e.setContent]:f("Store type not supported by this Persister"))(i,e,d),[x,W,q]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{Q.test(t)&&w(e)<1e3&&S(e,t)}]})(),n=J();return[(s,r,o,i=[],c=()=>[])=>{e??=ct;const l=a(1);var u,g;return j(n,l,[s,r,o,i,c]),u=U(r,o??[t],X),g=l,u?.add(g),l},(a,s,...r)=>h(((e,a=[t])=>{const s=[],n=(t,e)=>e==w(a)?S(s,t):l(a[e])?V(t,t=>n(t,e+1)):h([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(a,s),t=>V(t,t=>$(n,t)[0](e,...s??[],...r))),e=>g($(n,e),([,a,r])=>(U(a,r??[t],void 0,t=>(k(t,e),R(t)?1:0)),j(n,e),s(e),r)),t=>g($(n,t),([t,,a=[],s,n])=>{const r=(...o)=>{const i=w(o);i==w(a)?t(e,...o,...n(o)):l(a[i])?h(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),B=t=>{t!=m&&(m=t,W(E,void 0,m))},G=t=>{(H&&y(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},I=async()=>{rt()&&e.__?.[0]?.()&&await at()},K=async t=>(2!=m&&(B(1),L++,await it(async()=>{await p(async()=>{const e=await a();y(e)?G(e):t?z(t):f("Content is not an array: "+e)},()=>{t&&z(t)}),B(0),await I()})),ct),tt=async t=>(et(),await K(t),await p(async()=>A=await n(async(t,e)=>{e||t?2!=m&&(B(1),L++,G(e??t),B(0),await I()):await K()}),o),ct),et=async()=>(A&&(await p(()=>r(A),o),A=void 0),ct),at=async t=>(1!=m&&(B(2),P++,await it(async()=>{await p(()=>s(O,t),o),B(0)})),ct),st=async()=>(nt(),await at(),C=e.addDidFinishTransactionListener(()=>{const t=T();N(t)&&at(t)}),ct),nt=async()=>(C&&(e.delListener(C),C=void 0),ct),rt=()=>!c(C),ot=async(t=!1)=>{const[e,a]=t?[nt,et]:[et,nt];return await e(),await a(),ct},it=async(...t)=>(S($(Z,v),...t),await(async()=>{if(!$(Y,v)){for(j(Y,v,1);!c(b=M($(Z,v)));)await p(b,o);j(Y,v,0)}})(),ct),ct={load:K,startAutoLoad:tt,stopAutoLoad:et,isAutoLoading:()=>!c(A),save:at,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[st,tt]:[tt,st];return await a(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>m,addStatusListener:t=>x(t,E),delListener:t=>(q(t),e),schedule:it,getStore:()=>e,destroy:()=>($(Z,v).splice(0,void 0),ot()),getStats:()=>({loads:L,saves:P}),...u};return _(ct)},et=async(e,a,s=1,n,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),u=((e,a,s,n,r,o,i,u,y={})=>{let d,w=0,f=0,h=0;const b=J(),S=()=>B(11),M=(t,e,s,n)=>{f++,o?.(t,e,s,n),a(t,e,s,n)},A=async(t,e,a,s)=>v((n,o)=>{const i=s+"."+B(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{k(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(b,i,[t,(t,e)=>{clearTimeout(c),k(b,i),n([t,e,s])}]),M(t,i,e,a)}),C=(t,[e,a])=>{H(e,([e,a],s)=>{const n=O(t[0],s,K);H(e,([t,e],a)=>{const s=O(n[0],a,K);H(t,([t,e],a)=>s[0][a]=G(t,e)),s[1]=I(s[1],e)}),n[1]=I(n[1],a)}),t[1]=I(t[1],a)},m=(a=null,s,n=S())=>p(async()=>{c(s)&&([s,a,n]=await A(null,1,t,n));const[r,o]=s,[i,l]=e.getMergeableContentHashes();let u=K();if(i!=r){const[t,s]=(await A(a,4,e.getMergeableTableHashes(),n))[0];if(u=t,!D(s)){const[t,r]=(await A(a,5,e.getMergeableRowHashes(s),n))[0];if(C(u,t),!D(r)){const t=(await A(a,6,e.getMergeableCellHashes(r),n))[0];C(u,t)}}}return[u,l==o?K():(await A(a,7,e.getMergeableValueHashes(),n))[0],1]},u),L=tt(e,async()=>{const t=await m();return!t||D(t[0][0])&&D(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:f,receives:h}),...y},1);return s((t,a,s,n)=>{const r=w||L.isAutoLoading();h++,i?.(t,a,s,n),0==s?g($(b,a),([e,a])=>l(e)||e==t?a(n,t):0):2==s&&r?m(t,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==s&&r?d?.(void 0,n):g(1==s&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...s)=>a.send(((e,...a)=>{return s=e??t,n=T(a,(t,e)=>c(e)?"":e),s+"\n"+n;var s,n})(e,...s)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var s,n,r;-1!==a&&(s=d(t,0,a),n=d(t,a+1),e(s,...(r=n,z(N(r)))))})(t))(e.toString("utf8"),t)),()=>{a.close()},s,n,r,o,{getWebSocket:()=>a});return v(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),s(),t(u)},a=i("open",()=>e()),s=i("error",e)}else t(u)})};export{et as createWsSynchronizer};
1
+ const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,s=Math,n=t=>(e,a,s)=>t(e)?s?.():a(e),r=globalThis,o=s.floor,i=s.random,c=t=>null==t,l=t=>void 0===t,u=t=>null===t,g=n(c),y=n(l),d=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,f=t=>new a(t),p=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},b=(t,e)=>t.forEach(e),S=(t,e)=>t.map(e),M=(t,...e)=>t.push(...e),A=t=>t.shift(),C=Object,m=t=>C.getPrototypeOf(t),L=C.entries,P=t=>!c(t)&&g(m(t),t=>t==C.prototype||c(m(t)),()=>!0),_=C.keys,E=C.freeze,H=(t=[])=>C.fromEntries(t),D=(t,e)=>b(L(t),([t,a])=>e(a,t)),O=t=>P(t)&&0==(t=>v(_(t)))(t),T=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),N=JSON.stringify,z=JSON.parse,R=t=>""===t?void 0:d(t)?S(t,R):P(t)?((t,e)=>H(((t,e)=>S(L(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,R):t,V=t=>l(t)||0==(t=>t?.size??0)(t),k=(t,e)=>t?.forEach(e),x=(t,e)=>t?.delete(e),J=Map,$=t=>new J(t),j=(t,e)=>t?.get(e),F=(t,e,a)=>l(a)?(x(t,e),t):t?.set(e,a),U=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(j(t,e)):F(t,e,a()),j(t,e)},W=(t,e,a,s,n=0)=>y((a?U:j)(t,e[n],n>v(e)-2?a:$),r=>{if(n>v(e)-2)return s?.(r)&&F(t,e[n]),r;const o=W(r,e,a,s,n+1);return V(r)&&F(t,e[n]),o}),q=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),B=r.crypto?t=>r.crypto.getRandomValues(t):t=>S(t,()=>o(256*i())),G=(t=16)=>{return e=(t,e)=>t+q[63&e],B(new Uint8Array(t)).reduce(e,"");var e},I=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>I(H(),t),X=/^\d+$/,Y=t=>new Set(d(t)||l(t)?t:[t]),Z=$(),tt=$(),et=(e,a,s,n,r,o,i,c={},g=0,w=[])=>{let f,S,C,m=0,L=0,P=0;U(Z,w,()=>0),U(tt,w,()=>[]);const _=$(),[H,D,T,N,z]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!O(t)||!O(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!O(t)||!O(e),e.setContent]:p("Store type not supported by this Persister"))(i,e,g),[R,J,q]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?A(e):null)??t+a++,t=>{X.test(t)&&v(e)<1e3&&M(e,t)}]})(),n=$();return[(s,r,o,i=[],c=()=>[])=>{e??=ct;const l=a(1);var u,g;return F(n,l,[s,r,o,i,c]),u=W(r,o??[t],Y),g=l,u?.add(g),l},(a,s,...r)=>b(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?M(s,t):u(a[e])?k(t,t=>n(t,e+1)):b([a[e],null],a=>n(j(t,a),e+1));return n(e,0),s})(a,s),t=>k(t,t=>j(n,t)[0](e,...s??[],...r))),e=>y(j(n,e),([,a,r])=>(W(a,r??[t],void 0,t=>(x(t,e),V(t)?1:0)),F(n,e),s(e),r)),t=>y(j(n,t),([t,,a=[],s,n])=>{const r=(...o)=>{const i=v(o);i==v(a)?t(e,...o,...n(o)):u(a[i])?b(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),B=t=>{t!=m&&(m=t,J(_,void 0,m))},G=t=>{(H&&d(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},I=async()=>{rt()&&e.__?.[0]?.()&&await at()},K=async t=>(2!=m&&(B(1),L++,await it(async()=>{await h(async()=>{const e=await a();d(e)?G(e):t?z(t):p("Content is not an array: "+e)},()=>{t&&z(t)}),B(0),await I()})),ct),Q=async t=>(et(),await K(t),await h(async()=>S=await n(async(t,e)=>{e||t?2!=m&&(B(1),L++,G(e??t),B(0),await I()):await K()}),o),ct),et=async()=>(S&&(await h(()=>r(S),o),S=void 0),ct),at=async t=>(1!=m&&(B(2),P++,await it(async()=>{await h(()=>s(D,t),o),B(0)})),ct),st=async()=>(nt(),await at(),C=e.addDidFinishTransactionListener(()=>{const t=T();N(t)&&at(t)}),ct),nt=async()=>(C&&(e.delListener(C),C=void 0),ct),rt=()=>!l(C),ot=async(t=!1)=>{const[e,a]=t?[nt,et]:[et,nt];return await e(),await a(),ct},it=async(...t)=>(M(j(tt,w),...t),await(async()=>{if(!j(Z,w)){for(F(Z,w,1);!l(f=A(j(tt,w)));)await h(f,o);F(Z,w,0)}})(),ct),ct={load:K,startAutoLoad:Q,stopAutoLoad:et,isAutoLoading:()=>!l(S),save:at,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[st,Q]:[Q,st];return await a(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>m,addStatusListener:t=>R(t,_),delListener:t=>(q(t),e),schedule:it,getStore:()=>e,destroy:()=>(j(tt,w).splice(0,void 0),ot()),getStats:()=>({loads:L,saves:P}),...c};return E(ct)},at=async(e,a,s=1,n,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),c=((e,a,s,n,r,o,i,c,g={})=>{let d,w=0,v=0,p=0;const b=$(),S=()=>G(11),M=(t,e,s,n)=>{v++,o?.(t,e,s,n),a(t,e,s,n)},A=async(t,e,a,s)=>f((n,o)=>{const i=s+"."+G(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{x(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);F(b,i,[t,(t,e)=>{clearTimeout(c),x(b,i),n([t,e,s])}]),M(t,i,e,a)}),C=(t,[e,a])=>{D(e,([e,a],s)=>{const n=T(t[0],s,Q);D(e,([t,e],a)=>{const s=T(n[0],a,Q);D(t,([t,e],a)=>s[0][a]=I(t,e)),s[1]=K(s[1],e)}),n[1]=K(n[1],a)}),t[1]=K(t[1],a)},m=(a=null,s,n=S())=>h(async()=>{l(s)&&([s,a,n]=await A(null,1,t,n));const[r,o]=s,[i,c]=e.getMergeableContentHashes();let u=Q();if(i!=r){const[t,s]=(await A(a,4,e.getMergeableTableHashes(),n))[0];if(u=t,!O(s)){const[t,r]=(await A(a,5,e.getMergeableRowHashes(s),n))[0];if(C(u,t),!O(r)){const t=(await A(a,6,e.getMergeableCellHashes(r),n))[0];C(u,t)}}}return[u,c==o?Q():(await A(a,7,e.getMergeableValueHashes(),n))[0],1]},c),L=et(e,async()=>{const t=await m();return!t||O(t[0][0])&&O(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:v,receives:p}),...g},1);return s((t,a,s,n)=>{const r=w||L.isAutoLoading();p++,i?.(t,a,s,n),0==s?y(j(b,a),([e,a])=>u(e)||e==t?a(n,t):0):2==s&&r?m(t,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==s&&r?d?.(void 0,n):y(1==s&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...s)=>a.send(((e,...a)=>{return s=e??t,n=N(a,(t,e)=>l(e)?"":e),s+"\n"+n;var s,n})(e,...s)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var s,n,r;-1!==a&&(s=w(t,0,a),n=w(t,a+1),e(s,...(r=n,R(z(r)))))})(t))(e.toString("utf8"),t)),()=>{a.close()},s,n,r,o,{getWebSocket:()=>a});return f(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),s(),t(c)},a=i("open",()=>e()),s=i("error",e)}else t(c)})};export{at as createWsSynchronizer};
@@ -1 +1 @@
1
- const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,s=t=>(e,a,s)=>t(e)?s?.():a(e),n=globalThis,r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,u=s(i),g=s(c),y=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),w=t=>t.length,v=t=>new a(t),f=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},h=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),S=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,C=t=>A.getPrototypeOf(t),m=A.entries,L=t=>!i(t)&&u(C(t),t=>t==A.prototype||i(C(t)),()=>!0),P=A.keys,_=A.freeze,E=(t=[])=>A.fromEntries(t),H=(t,e)=>h(m(t),([t,a])=>e(a,t)),D=t=>L(t)&&0==(t=>w(P(t)))(t),O=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),T=JSON.stringify,N=JSON.parse,z=t=>""===t?void 0:y(t)?b(t,z):L(t)?((t,e)=>E(((t,e)=>b(m(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,z):t,R=t=>c(t)||0==(t=>t?.size??0)(t),V=(t,e)=>t?.forEach(e),k=(t,e)=>t?.delete(e),x=Map,J=t=>new x(t),$=(t,e)=>t?.get(e),j=(t,e,a)=>c(a)?(k(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>g((a?F:$)(t,e[n],n>w(e)-2?a:J),r=>{if(n>w(e)-2)return s?.(r)&&j(t,e[n]),r;const o=U(r,e,a,s,n+1);return R(r)&&j(t,e[n]),o}),W=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=n.crypto?t=>n.crypto.getRandomValues(t):t=>b(t,()=>o(256*r.random())),B=(t=16)=>{return e=(t,e)=>t+W[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],I=(t,e)=>((t??"")>(e??"")?t:e)??"",K=(t="")=>G(E(),t),Q=/^\d+$/,X=t=>new Set(y(t)||c(t)?t:[t]),Y=J(),Z=J(),tt=(e,a,s,n,r,o,i,u={},d=0,v=[])=>{let b,A,C,m=0,L=0,P=0;F(Y,v,()=>0),F(Z,v,()=>[]);const E=J(),[H,O,T,N,z]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!D(t)||!D(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!D(t)||!D(e),e.setContent]:f("Store type not supported by this Persister"))(i,e,d),[x,W,q]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{Q.test(t)&&w(e)<1e3&&S(e,t)}]})(),n=J();return[(s,r,o,i=[],c=()=>[])=>{e??=ct;const l=a(1);var u,g;return j(n,l,[s,r,o,i,c]),u=U(r,o??[t],X),g=l,u?.add(g),l},(a,s,...r)=>h(((e,a=[t])=>{const s=[],n=(t,e)=>e==w(a)?S(s,t):l(a[e])?V(t,t=>n(t,e+1)):h([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(a,s),t=>V(t,t=>$(n,t)[0](e,...s??[],...r))),e=>g($(n,e),([,a,r])=>(U(a,r??[t],void 0,t=>(k(t,e),R(t)?1:0)),j(n,e),s(e),r)),t=>g($(n,t),([t,,a=[],s,n])=>{const r=(...o)=>{const i=w(o);i==w(a)?t(e,...o,...n(o)):l(a[i])?h(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),B=t=>{t!=m&&(m=t,W(E,void 0,m))},G=t=>{(H&&y(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},I=async()=>{rt()&&e.__?.[0]?.()&&await at()},K=async t=>(2!=m&&(B(1),L++,await it(async()=>{await p(async()=>{const e=await a();y(e)?G(e):t?z(t):f("Content is not an array: "+e)},()=>{t&&z(t)}),B(0),await I()})),ct),tt=async t=>(et(),await K(t),await p(async()=>A=await n(async(t,e)=>{e||t?2!=m&&(B(1),L++,G(e??t),B(0),await I()):await K()}),o),ct),et=async()=>(A&&(await p(()=>r(A),o),A=void 0),ct),at=async t=>(1!=m&&(B(2),P++,await it(async()=>{await p(()=>s(O,t),o),B(0)})),ct),st=async()=>(nt(),await at(),C=e.addDidFinishTransactionListener(()=>{const t=T();N(t)&&at(t)}),ct),nt=async()=>(C&&(e.delListener(C),C=void 0),ct),rt=()=>!c(C),ot=async(t=!1)=>{const[e,a]=t?[nt,et]:[et,nt];return await e(),await a(),ct},it=async(...t)=>(S($(Z,v),...t),await(async()=>{if(!$(Y,v)){for(j(Y,v,1);!c(b=M($(Z,v)));)await p(b,o);j(Y,v,0)}})(),ct),ct={load:K,startAutoLoad:tt,stopAutoLoad:et,isAutoLoading:()=>!c(A),save:at,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[st,tt]:[tt,st];return await a(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>m,addStatusListener:t=>x(t,E),delListener:t=>(q(t),e),schedule:it,getStore:()=>e,destroy:()=>($(Z,v).splice(0,void 0),ot()),getStats:()=>({loads:L,saves:P}),...u};return _(ct)},et=async(e,a,s=1,n,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),u=((e,a,s,n,r,o,i,u,y={})=>{let d,w=0,f=0,h=0;const b=J(),S=()=>B(11),M=(t,e,s,n)=>{f++,o?.(t,e,s,n),a(t,e,s,n)},A=async(t,e,a,s)=>v((n,o)=>{const i=s+"."+B(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{k(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(b,i,[t,(t,e)=>{clearTimeout(c),k(b,i),n([t,e,s])}]),M(t,i,e,a)}),C=(t,[e,a])=>{H(e,([e,a],s)=>{const n=O(t[0],s,K);H(e,([t,e],a)=>{const s=O(n[0],a,K);H(t,([t,e],a)=>s[0][a]=G(t,e)),s[1]=I(s[1],e)}),n[1]=I(n[1],a)}),t[1]=I(t[1],a)},m=(a=null,s,n=S())=>p(async()=>{c(s)&&([s,a,n]=await A(null,1,t,n));const[r,o]=s,[i,l]=e.getMergeableContentHashes();let u=K();if(i!=r){const[t,s]=(await A(a,4,e.getMergeableTableHashes(),n))[0];if(u=t,!D(s)){const[t,r]=(await A(a,5,e.getMergeableRowHashes(s),n))[0];if(C(u,t),!D(r)){const t=(await A(a,6,e.getMergeableCellHashes(r),n))[0];C(u,t)}}}return[u,l==o?K():(await A(a,7,e.getMergeableValueHashes(),n))[0],1]},u),L=tt(e,async()=>{const t=await m();return!t||D(t[0][0])&&D(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:f,receives:h}),...y},1);return s((t,a,s,n)=>{const r=w||L.isAutoLoading();h++,i?.(t,a,s,n),0==s?g($(b,a),([e,a])=>l(e)||e==t?a(n,t):0):2==s&&r?m(t,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==s&&r?d?.(void 0,n):g(1==s&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...s)=>a.send(((e,...a)=>{return s=e??t,n=T(a,(t,e)=>c(e)?"":e),s+"\n"+n;var s,n})(e,...s)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var s,n,r;-1!==a&&(s=d(t,0,a),n=d(t,a+1),e(s,...(r=n,z(N(r)))))})(t))(e.toString("utf8"),t)),()=>{a.close()},s,n,r,o,{getWebSocket:()=>a});return v(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),s(),t(u)},a=i("open",()=>e()),s=i("error",e)}else t(u)})};export{et as createWsSynchronizer};
1
+ const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,s=Math,n=t=>(e,a,s)=>t(e)?s?.():a(e),r=globalThis,o=s.floor,i=s.random,c=t=>null==t,l=t=>void 0===t,u=t=>null===t,g=n(c),y=n(l),d=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,f=t=>new a(t),p=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},b=(t,e)=>t.forEach(e),S=(t,e)=>t.map(e),M=(t,...e)=>t.push(...e),A=t=>t.shift(),C=Object,m=t=>C.getPrototypeOf(t),L=C.entries,P=t=>!c(t)&&g(m(t),t=>t==C.prototype||c(m(t)),()=>!0),_=C.keys,E=C.freeze,H=(t=[])=>C.fromEntries(t),D=(t,e)=>b(L(t),([t,a])=>e(a,t)),O=t=>P(t)&&0==(t=>v(_(t)))(t),T=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),N=JSON.stringify,z=JSON.parse,R=t=>""===t?void 0:d(t)?S(t,R):P(t)?((t,e)=>H(((t,e)=>S(L(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,R):t,V=t=>l(t)||0==(t=>t?.size??0)(t),k=(t,e)=>t?.forEach(e),x=(t,e)=>t?.delete(e),J=Map,$=t=>new J(t),j=(t,e)=>t?.get(e),F=(t,e,a)=>l(a)?(x(t,e),t):t?.set(e,a),U=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)?s?.(j(t,e)):F(t,e,a()),j(t,e)},W=(t,e,a,s,n=0)=>y((a?U:j)(t,e[n],n>v(e)-2?a:$),r=>{if(n>v(e)-2)return s?.(r)&&F(t,e[n]),r;const o=W(r,e,a,s,n+1);return V(r)&&F(t,e[n]),o}),q=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),B=r.crypto?t=>r.crypto.getRandomValues(t):t=>S(t,()=>o(256*i())),G=(t=16)=>{return e=(t,e)=>t+q[63&e],B(new Uint8Array(t)).reduce(e,"");var e},I=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>I(H(),t),X=/^\d+$/,Y=t=>new Set(d(t)||l(t)?t:[t]),Z=$(),tt=$(),et=(e,a,s,n,r,o,i,c={},g=0,w=[])=>{let f,S,C,m=0,L=0,P=0;U(Z,w,()=>0),U(tt,w,()=>[]);const _=$(),[H,D,T,N,z]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!O(t)||!O(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!O(t)||!O(e),e.setContent]:p("Store type not supported by this Persister"))(i,e,g),[R,J,q]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?A(e):null)??t+a++,t=>{X.test(t)&&v(e)<1e3&&M(e,t)}]})(),n=$();return[(s,r,o,i=[],c=()=>[])=>{e??=ct;const l=a(1);var u,g;return F(n,l,[s,r,o,i,c]),u=W(r,o??[t],Y),g=l,u?.add(g),l},(a,s,...r)=>b(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?M(s,t):u(a[e])?k(t,t=>n(t,e+1)):b([a[e],null],a=>n(j(t,a),e+1));return n(e,0),s})(a,s),t=>k(t,t=>j(n,t)[0](e,...s??[],...r))),e=>y(j(n,e),([,a,r])=>(W(a,r??[t],void 0,t=>(x(t,e),V(t)?1:0)),F(n,e),s(e),r)),t=>y(j(n,t),([t,,a=[],s,n])=>{const r=(...o)=>{const i=v(o);i==v(a)?t(e,...o,...n(o)):u(a[i])?b(s[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),B=t=>{t!=m&&(m=t,J(_,void 0,m))},G=t=>{(H&&d(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},I=async()=>{rt()&&e.__?.[0]?.()&&await at()},K=async t=>(2!=m&&(B(1),L++,await it(async()=>{await h(async()=>{const e=await a();d(e)?G(e):t?z(t):p("Content is not an array: "+e)},()=>{t&&z(t)}),B(0),await I()})),ct),Q=async t=>(et(),await K(t),await h(async()=>S=await n(async(t,e)=>{e||t?2!=m&&(B(1),L++,G(e??t),B(0),await I()):await K()}),o),ct),et=async()=>(S&&(await h(()=>r(S),o),S=void 0),ct),at=async t=>(1!=m&&(B(2),P++,await it(async()=>{await h(()=>s(D,t),o),B(0)})),ct),st=async()=>(nt(),await at(),C=e.addDidFinishTransactionListener(()=>{const t=T();N(t)&&at(t)}),ct),nt=async()=>(C&&(e.delListener(C),C=void 0),ct),rt=()=>!l(C),ot=async(t=!1)=>{const[e,a]=t?[nt,et]:[et,nt];return await e(),await a(),ct},it=async(...t)=>(M(j(tt,w),...t),await(async()=>{if(!j(Z,w)){for(F(Z,w,1);!l(f=A(j(tt,w)));)await h(f,o);F(Z,w,0)}})(),ct),ct={load:K,startAutoLoad:Q,stopAutoLoad:et,isAutoLoading:()=>!l(S),save:at,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[st,Q]:[Q,st];return await a(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>m,addStatusListener:t=>R(t,_),delListener:t=>(q(t),e),schedule:it,getStore:()=>e,destroy:()=>(j(tt,w).splice(0,void 0),ot()),getStats:()=>({loads:L,saves:P}),...c};return E(ct)},at=async(e,a,s=1,n,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),c=((e,a,s,n,r,o,i,c,g={})=>{let d,w=0,v=0,p=0;const b=$(),S=()=>G(11),M=(t,e,s,n)=>{v++,o?.(t,e,s,n),a(t,e,s,n)},A=async(t,e,a,s)=>f((n,o)=>{const i=s+"."+G(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{x(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);F(b,i,[t,(t,e)=>{clearTimeout(c),x(b,i),n([t,e,s])}]),M(t,i,e,a)}),C=(t,[e,a])=>{D(e,([e,a],s)=>{const n=T(t[0],s,Q);D(e,([t,e],a)=>{const s=T(n[0],a,Q);D(t,([t,e],a)=>s[0][a]=I(t,e)),s[1]=K(s[1],e)}),n[1]=K(n[1],a)}),t[1]=K(t[1],a)},m=(a=null,s,n=S())=>h(async()=>{l(s)&&([s,a,n]=await A(null,1,t,n));const[r,o]=s,[i,c]=e.getMergeableContentHashes();let u=Q();if(i!=r){const[t,s]=(await A(a,4,e.getMergeableTableHashes(),n))[0];if(u=t,!O(s)){const[t,r]=(await A(a,5,e.getMergeableRowHashes(s),n))[0];if(C(u,t),!O(r)){const t=(await A(a,6,e.getMergeableCellHashes(r),n))[0];C(u,t)}}}return[u,c==o?Q():(await A(a,7,e.getMergeableValueHashes(),n))[0],1]},c),L=et(e,async()=>{const t=await m();return!t||O(t[0][0])&&O(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,c,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),n(),L),getSynchronizerStats:()=>({sends:v,receives:p}),...g},1);return s((t,a,s,n)=>{const r=w||L.isAutoLoading();p++,i?.(t,a,s,n),0==s?y(j(b,a),([e,a])=>u(e)||e==t?a(n,t):0):2==s&&r?m(t,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(c):3==s&&r?d?.(void 0,n):y(1==s&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...s)=>a.send(((e,...a)=>{return s=e??t,n=N(a,(t,e)=>l(e)?"":e),s+"\n"+n;var s,n})(e,...s)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var s,n,r;-1!==a&&(s=w(t,0,a),n=w(t,a+1),e(s,...(r=n,R(z(r)))))})(t))(e.toString("utf8"),t)),()=>{a.close()},s,n,r,o,{getWebSocket:()=>a});return f(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),s(),t(c)},a=i("open",()=>e()),s=i("error",e)}else t(c)})};export{at as createWsSynchronizer};
@@ -1 +1 @@
1
- const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,y=t=>null===t,d=n(c),u=n(l),g=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,h=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),A=(t,...e)=>t.push(...e),M=t=>t.shift(),C=t=>t?.size??0,L=(m=C,t=>b(_(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==C(t),_=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),T=Object,k=t=>T.getPrototypeOf(t),O=T.entries,E=t=>!c(t)&&d(k(t),t=>t==T.prototype||c(k(t)),()=>!0),I=T.keys,z=T.freeze,N=(t=[])=>T.fromEntries(t),R=(t,e)=>p(O(t),([t,a])=>e(a,t)),V=t=>E(t)&&0==(t=>v(I(t)))(t),x=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),J=Map,$=t=>new J(t),j=t=>[...t?.keys()??[]],F=(t,e)=>t?.get(e),U=(t,e,a)=>l(a)?(D(t,e),t):t?.set(e,a),W=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(F(t,e)):U(t,e,a()),F(t,e)},q=(t,e,a,s,n=0)=>u((a?W:F)(t,e[n],n>v(e)-2?a:$),o=>{if(n>v(e)-2)return s?.(o)&&U(t,e[n]),o;const r=q(o,e,a,s,n+1);return P(o)&&U(t,e[n]),r}),B=/^\d+$/,G=t=>new Set(g(t)||l(t)?t:[t]),K=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{B.test(t)&&v(e)<1e3&&A(e,t)}]})(),o=$();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const y=s(1);var d,u;return U(o,y,[n,r,i,c,l]),d=q(r,i??[t],G),u=y,d?.add(u),y},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?A(s,t):y(a[e])?H(t,t=>n(t,e+1)):p([a[e],null],a=>n(F(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>F(o,t)[0](a,...s??[],...n))),e=>u(F(o,e),([,a,s])=>(q(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),U(o,e),n(e),s)),t=>u(F(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=v(r);i==v(e)?t(a,...r,...n(r)):y(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},Q=JSON.stringify,X=JSON.parse,Y=t=>""===t?void 0:g(t)?f(t,Y):E(t)?((t,e)=>N(((t,e)=>f(O(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,Y):t,Z=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},tt=(t,e)=>t+"\n"+e,et=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),at=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),st=(e=16)=>b(at(new Uint8Array(e)),(t,e)=>t+et[63&e],t),nt=(t,e)=>e?[t,e]:[t],ot=(t,e)=>((t??"")>(e??"")?t:e)??"",rt=(t="")=>nt(N(),t),it=$(),ct=$(),lt=/\/([^?]*)/,yt=(a,n,o)=>{const r=$(),i=$(),c=$(),d=$(),[w,v,b]=K(()=>T),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},_=(e,a,s)=>n=>Z(n,(n,o)=>{const r=tt(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):F(a,n)?.send(r)});a.on("connection",(a,w)=>{return u((f=w.url,b=lt,f?.match(b)),([,f])=>u(w.headers["sec-websocket-key"],async w=>{const b=W(c,f,$),C=W(d,f,()=>[0]),L=_(w,b,C);P(b)&&(v(r,void 0,f,1),await(async(e,a,r)=>u(await(n?.(a)),a=>{e[0]=1,e[1]=g(a)?a[0]:a;const n=_("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let v,p=0,f=0,b=0;const C=$(),L=()=>st(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+st(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(C,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);U(C,i,[t,(t,e)=>{clearTimeout(c),D(C,i),s([t,e,n])}]),m(t,i,e,a)}),_=(t,[e,a])=>{R(e,([e,a],s)=>{const n=x(t[0],s,rt);R(e,([t,e],a)=>{const s=x(n[0],a,rt);R(t,([t,e],a)=>s[0][a]=nt(t,e)),s[1]=ot(s[1],e)}),n[1]=ot(n[1],a)}),t[1]=ot(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let y=rt();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(y=t,!V(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(_(y,t),!V(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];_(y,t)}}}return[y,c==r?rt():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),T=((t,e,a,s,n,o,r,i={},c=0,y=[])=>{let d,u,w,v=0,p=0,f=0;W(it,y,()=>0),W(ct,y,()=>[]);const b=$(),[C,L,m,P,_]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!V(t)||!V(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!V(t)||!V(e),e.setContent]:h("Store type not supported by this Persister"))(r,t,c),[H,D,T]=K(()=>Q),k=t=>{t!=v&&(v=t,D(b,void 0,v))},O=e=>{(C&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},E=async()=>{q()&&t.__?.[0]?.()&&await x()},I=async t=>(2!=v&&(k(1),p++,await G(async()=>{await S(async()=>{const a=await e();g(a)?O(a):t?_(t):h("Content is not an array: "+a)},()=>{t&&_(t)}),k(0),await E()})),Q),N=async t=>(R(),await I(t),await S(async()=>u=await s(async(t,e)=>{e||t?2!=v&&(k(1),p++,O(e??t),k(0),await E()):await I()}),o),Q),R=async()=>(u&&(await S(()=>n(u),o),u=void 0),Q),x=async t=>(1!=v&&(k(2),f++,await G(async()=>{await S(()=>a(L,t),o),k(0)})),Q),J=async()=>(j(),await x(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&x(t)}),Q),j=async()=>(w&&(t.delListener(w),w=void 0),Q),q=()=>!l(w),B=async(t=!1)=>{const[e,a]=t?[j,R]:[R,j];return await e(),await a(),Q},G=async(...t)=>(A(F(ct,y),...t),await(async()=>{if(!F(it,y)){for(U(it,y,1);!l(d=M(F(ct,y)));)await S(d,o);U(it,y,0)}})(),Q),Q={load:I,startAutoLoad:N,stopAutoLoad:R,isAutoLoading:()=>!l(u),save:x,startAutoSave:J,stopAutoSave:j,isAutoSaving:q,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[J,N]:[N,J];return await a(t),await s(t),Q},stopAutoPersisting:B,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(T(e),t),schedule:G,getStore:()=>t,destroy:()=>(F(ct,y).splice(0,void 0),B()),getStats:()=>({loads:p,saves:f}),...i};return z(Q)})(e,async()=>{const t=await H();return!t||V(t[0][0])&&V(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,d,2,{startSync:async t=>(p=1,await T.startAutoPersisting(t)),stopSync:async()=>(p=0,await T.stopAutoPersisting(),T),destroy:async()=>(await T.stopSync(),T),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||T.isAutoLoading();b++,0==s?u(F(C,a),([e,a])=>y(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(d):3==s&&o?v?.(void 0,n):u(1==s&&(p||T.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),T})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>tt(e??t,Q(a,(t,e)=>l(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Z(t,(t,a)=>{return e(t,...(s=a,Y(X(s))));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=g(a)?a[1]:t=>0}))(C,f,b)),U(b,w,a),v(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==C[0]?L(e):A(C[4],e)}),1==C[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(C),p(C[4],L),C[4]=[]),a.on("close",async()=>{D(b,w),v(i,[f],w,-1),P(b)&&(await m(C),D(d,f),D(c,f),v(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const T={getWebSocketServer:()=>a,getPathIds:()=>j(c),getClientIds:t=>j(F(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),T),getStats:()=>({paths:C(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(T)};export{yt as createWsServer};
1
+ const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=Math,o=t=>(e,a,s)=>t(e)?s?.():a(e),r=globalThis,i=n.floor,c=n.random,l=t=>null==t,y=t=>void 0===t,d=t=>null===t,u=o(l),g=o(y),w=t=>Array.isArray(t),v=(t,e,a)=>t.slice(e,a),h=t=>t.length,S=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),A=(t,e,a)=>t.reduce(e,a),M=(t,...e)=>t.push(...e),C=t=>t.shift(),L=t=>t?.size??0,m=(P=L,t=>A(H(t),(t,e)=>t+P(e),0));var P;const _=t=>y(t)||0==L(t),H=t=>[...t?.values()??[]],D=(t,e)=>t?.forEach(e),T=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=t=>!l(t)&&u(O(t),t=>t==k.prototype||l(O(t)),()=>!0),z=k.keys,N=k.freeze,R=(t=[])=>k.fromEntries(t),V=(t,e)=>f(E(t),([t,a])=>e(a,t)),x=t=>I(t)&&0==(t=>h(z(t)))(t),J=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),$=Map,j=t=>new $(t),F=t=>[...t?.keys()??[]],U=(t,e)=>t?.get(e),W=(t,e,a)=>y(a)?(T(t,e),t):t?.set(e,a),q=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(U(t,e)):W(t,e,a()),U(t,e)},B=(t,e,a,s,n=0)=>g((a?q:U)(t,e[n],n>h(e)-2?a:j),o=>{if(n>h(e)-2)return s?.(o)&&W(t,e[n]),o;const r=B(o,e,a,s,n+1);return _(o)&&W(t,e[n]),r}),G=/^\d+$/,K=t=>new Set(w(t)||y(t)?t:[t]),Q=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?C(e):null)??t+a++,t=>{G.test(t)&&h(e)<1e3&&M(e,t)}]})(),o=j();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const y=s(1);var d,u;return W(o,y,[n,r,i,c,l]),d=B(r,i??[t],K),u=y,d?.add(u),y},(e,s,...n)=>f(((e,a=[t])=>{const s=[],n=(t,e)=>e==h(a)?M(s,t):d(a[e])?D(t,t=>n(t,e+1)):f([a[e],null],a=>n(U(t,a),e+1));return n(e,0),s})(e,s),t=>D(t,t=>U(o,t)[0](a,...s??[],...n))),e=>g(U(o,e),([,a,s])=>(B(a,s??[t],void 0,t=>(T(t,e),_(t)?1:0)),W(o,e),n(e),s)),t=>g(U(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=h(r);i==h(e)?t(a,...r,...n(r)):d(e[i])?f(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},X=JSON.stringify,Y=JSON.parse,Z=t=>""===t?void 0:w(t)?b(t,Z):I(t)?((t,e)=>R(((t,e)=>b(E(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,Z):t,tt=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(v(t,0,a),v(t,a+1))},et=(t,e)=>t+"\n"+e,at=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),st=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>i(256*c())),nt=(e=16)=>A(st(new Uint8Array(e)),(t,e)=>t+at[63&e],t),ot=(t,e)=>e?[t,e]:[t],rt=(t,e)=>((t??"")>(e??"")?t:e)??"",it=(t="")=>ot(R(),t),ct=j(),lt=j(),yt=/\/([^?]*)/,dt=(a,n,o)=>{const r=j(),i=j(),c=j(),l=j(),[u,v,h]=Q(()=>H),A=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},P=(e,a,s)=>n=>tt(n,(n,o)=>{const r=et(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,D(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):U(a,n)?.send(r)});a.on("connection",(a,u)=>{return g((h=u.url,b=yt,h?.match(b)),([,h])=>g(u.headers["sec-websocket-key"],async u=>{const b=q(c,h,j),L=q(l,h,()=>[0]),m=P(u,b,L);_(b)&&(v(r,void 0,h,1),await(async(e,a,r)=>g(await(n?.(a)),a=>{e[0]=1,e[1]=w(a)?a[0]:a;const n=P("S",r,e);e[2]=((e,a,n,o,r,i,c,l,u={})=>{let v,h=0,f=0,b=0;const A=j(),L=()=>nt(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+nt(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{T(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);W(A,i,[t,(t,e)=>{clearTimeout(c),T(A,i),s([t,e,n])}]),m(t,i,e,a)}),_=(t,[e,a])=>{V(e,([e,a],s)=>{const n=J(t[0],s,it);V(e,([t,e],a)=>{const s=J(n[0],a,it);V(t,([t,e],a)=>s[0][a]=ot(t,e)),s[1]=rt(s[1],e)}),n[1]=rt(n[1],a)}),t[1]=rt(t[1],a)},H=(a=null,s,n=L())=>p(async()=>{y(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let l=it();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(l=t,!x(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(_(l,t),!x(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];_(l,t)}}}return[l,c==r?it():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},l),D=((t,e,a,s,n,o,r,i={},c=0,l=[])=>{let d,u,g,v=0,h=0,f=0;q(ct,l,()=>0),q(lt,l,()=>[]);const b=j(),[A,L,m,P,_]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!x(t)||!x(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!x(t)||!x(e),e.setContent]:S("Store type not supported by this Persister"))(r,t,c),[H,D,T]=Q(()=>K),k=t=>{t!=v&&(v=t,D(b,void 0,v))},O=e=>{(A&&w(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},E=async()=>{F()&&t.__?.[0]?.()&&await V()},I=async t=>(2!=v&&(k(1),h++,await G(async()=>{await p(async()=>{const a=await e();w(a)?O(a):t?_(t):S("Content is not an array: "+a)},()=>{t&&_(t)}),k(0),await E()})),K),z=async t=>(R(),await I(t),await p(async()=>u=await s(async(t,e)=>{e||t?2!=v&&(k(1),h++,O(e??t),k(0),await E()):await I()}),o),K),R=async()=>(u&&(await p(()=>n(u),o),u=void 0),K),V=async t=>(1!=v&&(k(2),f++,await G(async()=>{await p(()=>a(L,t),o),k(0)})),K),J=async()=>($(),await V(),g=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&V(t)}),K),$=async()=>(g&&(t.delListener(g),g=void 0),K),F=()=>!y(g),B=async(t=!1)=>{const[e,a]=t?[$,R]:[R,$];return await e(),await a(),K},G=async(...t)=>(M(U(lt,l),...t),await(async()=>{if(!U(ct,l)){for(W(ct,l,1);!y(d=C(U(lt,l)));)await p(d,o);W(ct,l,0)}})(),K),K={load:I,startAutoLoad:z,stopAutoLoad:R,isAutoLoading:()=>!y(u),save:V,startAutoSave:J,stopAutoSave:$,isAutoSaving:F,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[J,z]:[z,J];return await a(t),await s(t),K},stopAutoPersisting:B,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(T(e),t),schedule:G,getStore:()=>t,destroy:()=>(U(lt,l).splice(0,void 0),B()),getStats:()=>({loads:h,saves:f}),...i};return N(K)})(e,async()=>{const t=await H();return!t||x(t[0][0])&&x(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,l,2,{startSync:async t=>(h=1,await D.startAutoPersisting(t)),stopSync:async()=>(h=0,await D.stopAutoPersisting(),D),destroy:async()=>(await D.stopSync(),D),getSynchronizerStats:()=>({sends:f,receives:b}),...u},1);return n((t,a,s,n)=>{const o=h||D.isAutoLoading();b++,0==s?g(U(A,a),([e,a])=>d(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(l):3==s&&o?v?.(void 0,n):g(1==s&&(h||D.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),D})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>et(e??t,X(a,(t,e)=>y(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>tt(t,(t,a)=>{return e(t,...(s=a,Z(Y(s))));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=w(a)?a[1]:t=>0}))(L,h,b)),W(b,u,a),v(i,[h],u,1),a.on("message",t=>{const e=t.toString("utf8");0==L[0]?m(e):M(L[4],e)}),1==L[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(L),f(L[4],m),L[4]=[]),a.on("close",async()=>{T(b,u),v(i,[h],u,-1),_(b)&&(await A(L),T(l,h),T(c,h),v(r,void 0,h,-1))}),o&&a.on(e,o)}));var h,b}),o&&a.on(e,o);const H={getWebSocketServer:()=>a,getPathIds:()=>F(c),getClientIds:t=>F(U(c,t)),addPathIdsListener:t=>u(t,r),addClientIdsListener:(t,e)=>u(e,i,[t]),delListener:t=>(h(t),H),getStats:()=>({paths:L(c),clients:m(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=l,e=A,b([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return N(H)};export{dt as createWsServer};
@@ -1 +1 @@
1
- const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,y=t=>null===t,d=n(c),u=n(l),g=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,h=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),A=(t,...e)=>t.push(...e),M=t=>t.shift(),C=t=>t?.size??0,L=(m=C,t=>b(_(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==C(t),_=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),T=Object,k=t=>T.getPrototypeOf(t),O=T.entries,E=t=>!c(t)&&d(k(t),t=>t==T.prototype||c(k(t)),()=>!0),I=T.keys,z=T.freeze,N=(t=[])=>T.fromEntries(t),R=(t,e)=>p(O(t),([t,a])=>e(a,t)),V=t=>E(t)&&0==(t=>v(I(t)))(t),x=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),J=Map,$=t=>new J(t),j=t=>[...t?.keys()??[]],F=(t,e)=>t?.get(e),U=(t,e,a)=>l(a)?(D(t,e),t):t?.set(e,a),W=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(F(t,e)):U(t,e,a()),F(t,e)},q=(t,e,a,s,n=0)=>u((a?W:F)(t,e[n],n>v(e)-2?a:$),o=>{if(n>v(e)-2)return s?.(o)&&U(t,e[n]),o;const r=q(o,e,a,s,n+1);return P(o)&&U(t,e[n]),r}),B=/^\d+$/,G=t=>new Set(g(t)||l(t)?t:[t]),K=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{B.test(t)&&v(e)<1e3&&A(e,t)}]})(),o=$();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const y=s(1);var d,u;return U(o,y,[n,r,i,c,l]),d=q(r,i??[t],G),u=y,d?.add(u),y},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?A(s,t):y(a[e])?H(t,t=>n(t,e+1)):p([a[e],null],a=>n(F(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>F(o,t)[0](a,...s??[],...n))),e=>u(F(o,e),([,a,s])=>(q(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),U(o,e),n(e),s)),t=>u(F(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=v(r);i==v(e)?t(a,...r,...n(r)):y(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},Q=JSON.stringify,X=JSON.parse,Y=t=>""===t?void 0:g(t)?f(t,Y):E(t)?((t,e)=>N(((t,e)=>f(O(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,Y):t,Z=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},tt=(t,e)=>t+"\n"+e,et=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),at=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),st=(e=16)=>b(at(new Uint8Array(e)),(t,e)=>t+et[63&e],t),nt=(t,e)=>e?[t,e]:[t],ot=(t,e)=>((t??"")>(e??"")?t:e)??"",rt=(t="")=>nt(N(),t),it=$(),ct=$(),lt=/\/([^?]*)/,yt=(a,n,o)=>{const r=$(),i=$(),c=$(),d=$(),[w,v,b]=K(()=>T),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},_=(e,a,s)=>n=>Z(n,(n,o)=>{const r=tt(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):F(a,n)?.send(r)});a.on("connection",(a,w)=>{return u((f=w.url,b=lt,f?.match(b)),([,f])=>u(w.headers["sec-websocket-key"],async w=>{const b=W(c,f,$),C=W(d,f,()=>[0]),L=_(w,b,C);P(b)&&(v(r,void 0,f,1),await(async(e,a,r)=>u(await(n?.(a)),a=>{e[0]=1,e[1]=g(a)?a[0]:a;const n=_("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let v,p=0,f=0,b=0;const C=$(),L=()=>st(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+st(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(C,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);U(C,i,[t,(t,e)=>{clearTimeout(c),D(C,i),s([t,e,n])}]),m(t,i,e,a)}),_=(t,[e,a])=>{R(e,([e,a],s)=>{const n=x(t[0],s,rt);R(e,([t,e],a)=>{const s=x(n[0],a,rt);R(t,([t,e],a)=>s[0][a]=nt(t,e)),s[1]=ot(s[1],e)}),n[1]=ot(n[1],a)}),t[1]=ot(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let y=rt();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(y=t,!V(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(_(y,t),!V(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];_(y,t)}}}return[y,c==r?rt():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),T=((t,e,a,s,n,o,r,i={},c=0,y=[])=>{let d,u,w,v=0,p=0,f=0;W(it,y,()=>0),W(ct,y,()=>[]);const b=$(),[C,L,m,P,_]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!V(t)||!V(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!V(t)||!V(e),e.setContent]:h("Store type not supported by this Persister"))(r,t,c),[H,D,T]=K(()=>Q),k=t=>{t!=v&&(v=t,D(b,void 0,v))},O=e=>{(C&&g(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},E=async()=>{q()&&t.__?.[0]?.()&&await x()},I=async t=>(2!=v&&(k(1),p++,await G(async()=>{await S(async()=>{const a=await e();g(a)?O(a):t?_(t):h("Content is not an array: "+a)},()=>{t&&_(t)}),k(0),await E()})),Q),N=async t=>(R(),await I(t),await S(async()=>u=await s(async(t,e)=>{e||t?2!=v&&(k(1),p++,O(e??t),k(0),await E()):await I()}),o),Q),R=async()=>(u&&(await S(()=>n(u),o),u=void 0),Q),x=async t=>(1!=v&&(k(2),f++,await G(async()=>{await S(()=>a(L,t),o),k(0)})),Q),J=async()=>(j(),await x(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&x(t)}),Q),j=async()=>(w&&(t.delListener(w),w=void 0),Q),q=()=>!l(w),B=async(t=!1)=>{const[e,a]=t?[j,R]:[R,j];return await e(),await a(),Q},G=async(...t)=>(A(F(ct,y),...t),await(async()=>{if(!F(it,y)){for(U(it,y,1);!l(d=M(F(ct,y)));)await S(d,o);U(it,y,0)}})(),Q),Q={load:I,startAutoLoad:N,stopAutoLoad:R,isAutoLoading:()=>!l(u),save:x,startAutoSave:J,stopAutoSave:j,isAutoSaving:q,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[J,N]:[N,J];return await a(t),await s(t),Q},stopAutoPersisting:B,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(T(e),t),schedule:G,getStore:()=>t,destroy:()=>(F(ct,y).splice(0,void 0),B()),getStats:()=>({loads:p,saves:f}),...i};return z(Q)})(e,async()=>{const t=await H();return!t||V(t[0][0])&&V(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,d,2,{startSync:async t=>(p=1,await T.startAutoPersisting(t)),stopSync:async()=>(p=0,await T.stopAutoPersisting(),T),destroy:async()=>(await T.stopSync(),T),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||T.isAutoLoading();b++,0==s?u(F(C,a),([e,a])=>y(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(d):3==s&&o?v?.(void 0,n):u(1==s&&(p||T.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),T})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>tt(e??t,Q(a,(t,e)=>l(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Z(t,(t,a)=>{return e(t,...(s=a,Y(X(s))));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=g(a)?a[1]:t=>0}))(C,f,b)),U(b,w,a),v(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==C[0]?L(e):A(C[4],e)}),1==C[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(C),p(C[4],L),C[4]=[]),a.on("close",async()=>{D(b,w),v(i,[f],w,-1),P(b)&&(await m(C),D(d,f),D(c,f),v(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const T={getWebSocketServer:()=>a,getPathIds:()=>j(c),getClientIds:t=>j(F(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),T),getStats:()=>({paths:C(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(T)};export{yt as createWsServer};
1
+ const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=Math,o=t=>(e,a,s)=>t(e)?s?.():a(e),r=globalThis,i=n.floor,c=n.random,l=t=>null==t,y=t=>void 0===t,d=t=>null===t,u=o(l),g=o(y),w=t=>Array.isArray(t),v=(t,e,a)=>t.slice(e,a),h=t=>t.length,S=t=>{throw Error(t)},p=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),A=(t,e,a)=>t.reduce(e,a),M=(t,...e)=>t.push(...e),C=t=>t.shift(),L=t=>t?.size??0,m=(P=L,t=>A(H(t),(t,e)=>t+P(e),0));var P;const _=t=>y(t)||0==L(t),H=t=>[...t?.values()??[]],D=(t,e)=>t?.forEach(e),T=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=t=>!l(t)&&u(O(t),t=>t==k.prototype||l(O(t)),()=>!0),z=k.keys,N=k.freeze,R=(t=[])=>k.fromEntries(t),V=(t,e)=>f(E(t),([t,a])=>e(a,t)),x=t=>I(t)&&0==(t=>h(z(t)))(t),J=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),$=Map,j=t=>new $(t),F=t=>[...t?.keys()??[]],U=(t,e)=>t?.get(e),W=(t,e,a)=>y(a)?(T(t,e),t):t?.set(e,a),q=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(U(t,e)):W(t,e,a()),U(t,e)},B=(t,e,a,s,n=0)=>g((a?q:U)(t,e[n],n>h(e)-2?a:j),o=>{if(n>h(e)-2)return s?.(o)&&W(t,e[n]),o;const r=B(o,e,a,s,n+1);return _(o)&&W(t,e[n]),r}),G=/^\d+$/,K=t=>new Set(w(t)||y(t)?t:[t]),Q=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?C(e):null)??t+a++,t=>{G.test(t)&&h(e)<1e3&&M(e,t)}]})(),o=j();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const y=s(1);var d,u;return W(o,y,[n,r,i,c,l]),d=B(r,i??[t],K),u=y,d?.add(u),y},(e,s,...n)=>f(((e,a=[t])=>{const s=[],n=(t,e)=>e==h(a)?M(s,t):d(a[e])?D(t,t=>n(t,e+1)):f([a[e],null],a=>n(U(t,a),e+1));return n(e,0),s})(e,s),t=>D(t,t=>U(o,t)[0](a,...s??[],...n))),e=>g(U(o,e),([,a,s])=>(B(a,s??[t],void 0,t=>(T(t,e),_(t)?1:0)),W(o,e),n(e),s)),t=>g(U(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=h(r);i==h(e)?t(a,...r,...n(r)):d(e[i])?f(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},X=JSON.stringify,Y=JSON.parse,Z=t=>""===t?void 0:w(t)?b(t,Z):I(t)?((t,e)=>R(((t,e)=>b(E(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])))(t,Z):t,tt=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(v(t,0,a),v(t,a+1))},et=(t,e)=>t+"\n"+e,at=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),st=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>i(256*c())),nt=(e=16)=>A(st(new Uint8Array(e)),(t,e)=>t+at[63&e],t),ot=(t,e)=>e?[t,e]:[t],rt=(t,e)=>((t??"")>(e??"")?t:e)??"",it=(t="")=>ot(R(),t),ct=j(),lt=j(),yt=/\/([^?]*)/,dt=(a,n,o)=>{const r=j(),i=j(),c=j(),l=j(),[u,v,h]=Q(()=>H),A=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},P=(e,a,s)=>n=>tt(n,(n,o)=>{const r=et(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,D(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):U(a,n)?.send(r)});a.on("connection",(a,u)=>{return g((h=u.url,b=yt,h?.match(b)),([,h])=>g(u.headers["sec-websocket-key"],async u=>{const b=q(c,h,j),L=q(l,h,()=>[0]),m=P(u,b,L);_(b)&&(v(r,void 0,h,1),await(async(e,a,r)=>g(await(n?.(a)),a=>{e[0]=1,e[1]=w(a)?a[0]:a;const n=P("S",r,e);e[2]=((e,a,n,o,r,i,c,l,u={})=>{let v,h=0,f=0,b=0;const A=j(),L=()=>nt(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+nt(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{T(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);W(A,i,[t,(t,e)=>{clearTimeout(c),T(A,i),s([t,e,n])}]),m(t,i,e,a)}),_=(t,[e,a])=>{V(e,([e,a],s)=>{const n=J(t[0],s,it);V(e,([t,e],a)=>{const s=J(n[0],a,it);V(t,([t,e],a)=>s[0][a]=ot(t,e)),s[1]=rt(s[1],e)}),n[1]=rt(n[1],a)}),t[1]=rt(t[1],a)},H=(a=null,s,n=L())=>p(async()=>{y(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let l=it();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(l=t,!x(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(_(l,t),!x(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];_(l,t)}}}return[l,c==r?it():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},l),D=((t,e,a,s,n,o,r,i={},c=0,l=[])=>{let d,u,g,v=0,h=0,f=0;q(ct,l,()=>0),q(lt,l,()=>[]);const b=j(),[A,L,m,P,_]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!x(t)||!x(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!x(t)||!x(e),e.setContent]:S("Store type not supported by this Persister"))(r,t,c),[H,D,T]=Q(()=>K),k=t=>{t!=v&&(v=t,D(b,void 0,v))},O=e=>{(A&&w(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},E=async()=>{F()&&t.__?.[0]?.()&&await V()},I=async t=>(2!=v&&(k(1),h++,await G(async()=>{await p(async()=>{const a=await e();w(a)?O(a):t?_(t):S("Content is not an array: "+a)},()=>{t&&_(t)}),k(0),await E()})),K),z=async t=>(R(),await I(t),await p(async()=>u=await s(async(t,e)=>{e||t?2!=v&&(k(1),h++,O(e??t),k(0),await E()):await I()}),o),K),R=async()=>(u&&(await p(()=>n(u),o),u=void 0),K),V=async t=>(1!=v&&(k(2),f++,await G(async()=>{await p(()=>a(L,t),o),k(0)})),K),J=async()=>($(),await V(),g=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&V(t)}),K),$=async()=>(g&&(t.delListener(g),g=void 0),K),F=()=>!y(g),B=async(t=!1)=>{const[e,a]=t?[$,R]:[R,$];return await e(),await a(),K},G=async(...t)=>(M(U(lt,l),...t),await(async()=>{if(!U(ct,l)){for(W(ct,l,1);!y(d=C(U(lt,l)));)await p(d,o);W(ct,l,0)}})(),K),K={load:I,startAutoLoad:z,stopAutoLoad:R,isAutoLoading:()=>!y(u),save:V,startAutoSave:J,stopAutoSave:$,isAutoSaving:F,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[J,z]:[z,J];return await a(t),await s(t),K},stopAutoPersisting:B,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(T(e),t),schedule:G,getStore:()=>t,destroy:()=>(U(lt,l).splice(0,void 0),B()),getStats:()=>({loads:h,saves:f}),...i};return N(K)})(e,async()=>{const t=await H();return!t||x(t[0][0])&&x(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,l,2,{startSync:async t=>(h=1,await D.startAutoPersisting(t)),stopSync:async()=>(h=0,await D.stopAutoPersisting(),D),destroy:async()=>(await D.stopSync(),D),getSynchronizerStats:()=>({sends:f,receives:b}),...u},1);return n((t,a,s,n)=>{const o=h||D.isAutoLoading();b++,0==s?g(U(A,a),([e,a])=>d(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(l):3==s&&o?v?.(void 0,n):g(1==s&&(h||D.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),D})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>et(e??t,X(a,(t,e)=>y(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>tt(t,(t,a)=>{return e(t,...(s=a,Z(Y(s))));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=w(a)?a[1]:t=>0}))(L,h,b)),W(b,u,a),v(i,[h],u,1),a.on("message",t=>{const e=t.toString("utf8");0==L[0]?m(e):M(L[4],e)}),1==L[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(L),f(L[4],m),L[4]=[]),a.on("close",async()=>{T(b,u),v(i,[h],u,-1),_(b)&&(await A(L),T(l,h),T(c,h),v(r,void 0,h,-1))}),o&&a.on(e,o)}));var h,b}),o&&a.on(e,o);const H={getWebSocketServer:()=>a,getPathIds:()=>F(c),getClientIds:t=>F(U(c,t)),addPathIdsListener:t=>u(t,r),addClientIdsListener:(t,e)=>u(e,i,[t]),delListener:t=>(h(t),H),getStats:()=>({paths:L(c),clients:m(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=l,e=A,b([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return N(H)};export{dt as createWsServer};
@@ -1 +1 @@
1
- import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=t=>(e,s,a)=>t(e)?a?.():s(e),r=globalThis,i=(t,e=0)=>setTimeout(t,1e3*e),o=Math,c=o.floor,l=t=>null==t,g=t=>void 0===t,u=t=>null===t,d=n(l),h=n(g),w=t=>Array.isArray(t),y=(t,e,s)=>t.slice(e,s),p=t=>t.length,S=t=>{throw Error(t)},v=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},C=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,m=t=>A.getPrototypeOf(t),P=A.entries,k=t=>!l(t)&&d(m(t),t=>t==A.prototype||l(m(t)),()=>!0),x=A.keys,L=A.freeze,T=(t=[])=>A.fromEntries(t),I=(t,e)=>C(P(t),([t,s])=>e(s,t)),_=t=>k(t)&&0==(t=>p(x(t)))(t),H=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),D=JSON.stringify,O=JSON.parse,R=t=>""===t?void 0:w(t)?f(t,R):k(t)?((t,e)=>T(((t,e)=>f(P(t),([t,s])=>e(s,t)))(t,(t,s)=>[s,e(t,s)])))(t,R):t,E=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(y(t,0,s),y(t,s+1))},N=(t,...s)=>W(t??e,D(s,(t,e)=>g(e)?"":e)),W=(t,e)=>t+"\n"+e,z=t=>g(t)||0==(t=>t?.size??0)(t),U=(t,e)=>t?.forEach(e),V=(t,e)=>t?.delete(e),F=Map,J=t=>new F(t),$=(t,e)=>t?.get(e),j=(t,e,s)=>g(s)?(V(t,e),t):t?.set(e,s),q=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.($(t,e)):j(t,e,s()),$(t,e)},B=(t,e,s,a,n=0)=>h((s?q:$)(t,e[n],n>p(e)-2?s:J),r=>{if(n>p(e)-2)return a?.(r)&&j(t,e[n]),r;const i=B(r,e,s,a,n+1);return z(r)&&j(t,e[n]),i}),G=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),K=r.crypto?t=>r.crypto.getRandomValues(t):t=>f(t,()=>c(256*o.random())),Q=(t=16)=>{return e=(t,e)=>t+G[63&e],K(new Uint8Array(t)).reduce(e,"");var e},X=(t,e)=>e?[t,e]:[t],Y=(t,e)=>((t??"")>(e??"")?t:e)??"",Z=(t="")=>X(T(),t),tt=/^\d+$/,et=t=>new Set(w(t)||g(t)?t:[t]),st=J(),at=J(),nt=(t,s,a,n,r,i,o,c={},l=0,d=[])=>{let y,f,A,m=0,P=0,k=0;q(st,d,()=>0),q(at,d,()=>[]);const x=J(),[T,I,H,D,O]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!s),([[t],[e]])=>!_(t)||!_(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!_(t)||!_(e),e.setContent]:S("Store type not supported by this Persister"))(o,t,l),[R,E,N]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?M(t):null)??e+s++,e=>{tt.test(e)&&p(t)<1e3&&b(t,e)}]})(),n=J();return[(a,r,i,o=[],c=()=>[])=>{t??=ct;const l=s(1);var g,u;return j(n,l,[a,r,i,o,c]),g=B(r,i??[e],et),u=l,g?.add(u),l},(s,a,...r)=>C(((t,s=[e])=>{const a=[],n=(t,e)=>e==p(s)?b(a,t):u(s[e])?U(t,t=>n(t,e+1)):C([s[e],null],s=>n($(t,s),e+1));return n(t,0),a})(s,a),e=>U(e,e=>$(n,e)[0](t,...a??[],...r))),t=>h($(n,t),([,s,r])=>(B(s,r??[e],void 0,e=>(V(e,t),z(e)?1:0)),j(n,t),a(t),r)),e=>h($(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=p(i);o==p(s)?e(t,...i,...n(i)):u(s[o])?C(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),W=t=>{t!=m&&(m=t,E(x,void 0,m))},F=e=>{(T&&w(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},G=async()=>{rt()&&t.__?.[0]?.()&&await Y()},K=async t=>(2!=m&&(W(1),P++,await ot(async()=>{await v(async()=>{const e=await s();w(e)?F(e):t?O(t):S("Content is not an array: "+e)},()=>{t&&O(t)}),W(0),await G()})),ct),Q=async t=>(X(),await K(t),await v(async()=>f=await n(async(t,e)=>{e||t?2!=m&&(W(1),P++,F(e??t),W(0),await G()):await K()}),i),ct),X=async()=>(f&&(await v(()=>r(f),i),f=void 0),ct),Y=async t=>(1!=m&&(W(2),k++,await ot(async()=>{await v(()=>a(I,t),i),W(0)})),ct),Z=async()=>(nt(),await Y(),A=t.addDidFinishTransactionListener(()=>{const t=H();D(t)&&Y(t)}),ct),nt=async()=>(A&&(t.delListener(A),A=void 0),ct),rt=()=>!g(A),it=async(t=!1)=>{const[e,s]=t?[nt,X]:[X,nt];return await e(),await s(),ct},ot=async(...t)=>(b($(at,d),...t),await(async()=>{if(!$(st,d)){for(j(st,d,1);!g(y=M($(at,d)));)await v(y,i);j(st,d,0)}})(),ct),ct={load:K,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!g(f),save:Y,startAutoSave:Z,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[Z,Q]:[Q,Z];return await s(t),await a(t),ct},stopAutoPersisting:it,getStatus:()=>m,addStatusListener:t=>R(t,x),delListener:e=>(N(e),t),schedule:ot,getStore:()=>t,destroy:()=>($(at,d).splice(0,void 0),it()),getStats:()=>({loads:P,saves:k}),...c};return L(ct)},rt=/\/([^?]*)/,it="S",ot=t=>{return(s=new URL(t.url).pathname,a=rt,s?.match(a))?.[1]??e;var s,a},ct=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,lt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),gt=()=>lt(426,null,"Upgrade required");class ut extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await h(await this.createPersister(),async t=>{const s=((t,s,n,r,o,c,l,d,w={})=>{let y,p=0,S=0,C=0;const f=J(),b=()=>Q(11),M=(t,e,a,n)=>{S++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+Q(4),l=i(()=>{V(f,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},o);j(f,c,[t,(t,e)=>{clearTimeout(l),V(f,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{I(e,([e,s],a)=>{const n=H(t[0],a,Z);I(e,([t,e],s)=>{const a=H(n[0],s,Z);I(t,([t,e],s)=>a[0][s]=X(t,e)),a[1]=Y(a[1],e)}),n[1]=Y(n[1],s)}),t[1]=Y(t[1],s)},P=(s=null,a,n=b())=>v(async()=>{g(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=Z();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!_(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!_(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?Z():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},d),k=nt(t,async()=>{const t=await P();return!t||_(t[0][0])&&_(t[1][0])?void 0:t},async(e,s)=>s?M(null,b(),3,s):M(null,b(),2,t.getMergeableContentHashes()),t=>y=t,()=>y=void 0,d,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:S,receives:C}),...w},1);return n((e,s,a,n)=>{const r=p||k.isAutoLoading();C++,0==a?h($(f,s),([t,s])=>u(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{y?.(void 0,t)}).catch(d):3==a&&r?y?.(void 0,n):h(1==a&&(p||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(it,N(t,e,s,a)),t=>this.#t=e=>((t,e)=>E(t,(t,s)=>{return e(t,...(a=s,R(O(a))));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),i(s.startSync)}))}fetch(t){const s=ot(t);return h(ct(t),t=>{const[a,n]=(r=new WebSocketPair,A.values(r));var r,i;return i=this.#s(),0==p(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(N(it,null,1,e)),lt(101,a)},gt)}webSocketMessage(t,e){h(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==p(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){E(s.toString(),(s,n)=>{const r=W(t,n);this.onMessage(t,s,n),s==e?(t!=it&&this.#t?.(r),C(this.#s(),t=>{t!=a&&t.send(r)})):s==it?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return f(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const dt=t=>(e,s)=>ct(e)?s[t].get(s[t].idFromName(ot(e))).fetch(e):gt();export{ut as WsServerDurableObject,dt as getWsServerDurableObjectFetch};
1
+ import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=Math,r=t=>(e,s,a)=>t(e)?a?.():s(e),i=globalThis,o=(t,e=0)=>setTimeout(t,1e3*e),c=n.floor,l=n.random,g=t=>null==t,u=t=>void 0===t,d=t=>null===t,h=r(g),w=r(u),y=t=>Array.isArray(t),p=(t,e,s)=>t.slice(e,s),S=t=>t.length,v=t=>{throw Error(t)},C=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),M=(t,...e)=>t.push(...e),A=t=>t.shift(),m=Object,P=t=>m.getPrototypeOf(t),k=m.entries,x=t=>!g(t)&&h(P(t),t=>t==m.prototype||g(P(t)),()=>!0),L=m.keys,T=m.freeze,I=(t=[])=>m.fromEntries(t),_=(t,e)=>f(k(t),([t,s])=>e(s,t)),H=t=>x(t)&&0==(t=>S(L(t)))(t),D=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),O=JSON.stringify,R=JSON.parse,E=t=>""===t?void 0:y(t)?b(t,E):x(t)?((t,e)=>I(((t,e)=>b(k(t),([t,s])=>e(s,t)))(t,(t,s)=>[s,e(t,s)])))(t,E):t,N=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(p(t,0,s),p(t,s+1))},W=(t,...s)=>z(t??e,O(s,(t,e)=>u(e)?"":e)),z=(t,e)=>t+"\n"+e,U=t=>u(t)||0==(t=>t?.size??0)(t),V=(t,e)=>t?.forEach(e),F=(t,e)=>t?.delete(e),J=Map,$=t=>new J(t),j=(t,e)=>t?.get(e),q=(t,e,s)=>u(s)?(F(t,e),t):t?.set(e,s),B=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.(j(t,e)):q(t,e,s()),j(t,e)},G=(t,e,s,a,n=0)=>w((s?B:j)(t,e[n],n>S(e)-2?s:$),r=>{if(n>S(e)-2)return a?.(r)&&q(t,e[n]),r;const i=G(r,e,s,a,n+1);return U(r)&&q(t,e[n]),i}),K=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Q=i.crypto?t=>i.crypto.getRandomValues(t):t=>b(t,()=>c(256*l())),X=(t=16)=>{return e=(t,e)=>t+K[63&e],Q(new Uint8Array(t)).reduce(e,"");var e},Y=(t,e)=>e?[t,e]:[t],Z=(t,e)=>((t??"")>(e??"")?t:e)??"",tt=(t="")=>Y(I(),t),et=/^\d+$/,st=t=>new Set(y(t)||u(t)?t:[t]),at=$(),nt=$(),rt=(t,s,a,n,r,i,o,c={},l=0,g=[])=>{let h,p,b,m=0,P=0,k=0;B(at,g,()=>0),B(nt,g,()=>[]);const x=$(),[L,I,_,D,O]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!s),([[t],[e]])=>!H(t)||!H(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!H(t)||!H(e),e.setContent]:v("Store type not supported by this Persister"))(o,t,l),[R,E,N]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?A(t):null)??e+s++,e=>{et.test(e)&&S(t)<1e3&&M(t,e)}]})(),n=$();return[(a,r,i,o=[],c=()=>[])=>{t??=ct;const l=s(1);var g,u;return q(n,l,[a,r,i,o,c]),g=G(r,i??[e],st),u=l,g?.add(u),l},(s,a,...r)=>f(((t,s=[e])=>{const a=[],n=(t,e)=>e==S(s)?M(a,t):d(s[e])?V(t,t=>n(t,e+1)):f([s[e],null],s=>n(j(t,s),e+1));return n(t,0),a})(s,a),e=>V(e,e=>j(n,e)[0](t,...a??[],...r))),t=>w(j(n,t),([,s,r])=>(G(s,r??[e],void 0,e=>(F(e,t),U(e)?1:0)),q(n,t),a(t),r)),e=>w(j(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=S(i);o==S(s)?e(t,...i,...n(i)):d(s[o])?f(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),W=t=>{t!=m&&(m=t,E(x,void 0,m))},z=e=>{(L&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},J=async()=>{rt()&&t.__?.[0]?.()&&await Y()},K=async t=>(2!=m&&(W(1),P++,await ot(async()=>{await C(async()=>{const e=await s();y(e)?z(e):t?O(t):v("Content is not an array: "+e)},()=>{t&&O(t)}),W(0),await J()})),ct),Q=async t=>(X(),await K(t),await C(async()=>p=await n(async(t,e)=>{e||t?2!=m&&(W(1),P++,z(e??t),W(0),await J()):await K()}),i),ct),X=async()=>(p&&(await C(()=>r(p),i),p=void 0),ct),Y=async t=>(1!=m&&(W(2),k++,await ot(async()=>{await C(()=>a(I,t),i),W(0)})),ct),Z=async()=>(tt(),await Y(),b=t.addDidFinishTransactionListener(()=>{const t=_();D(t)&&Y(t)}),ct),tt=async()=>(b&&(t.delListener(b),b=void 0),ct),rt=()=>!u(b),it=async(t=!1)=>{const[e,s]=t?[tt,X]:[X,tt];return await e(),await s(),ct},ot=async(...t)=>(M(j(nt,g),...t),await(async()=>{if(!j(at,g)){for(q(at,g,1);!u(h=A(j(nt,g)));)await C(h,i);q(at,g,0)}})(),ct),ct={load:K,startAutoLoad:Q,stopAutoLoad:X,isAutoLoading:()=>!u(p),save:Y,startAutoSave:Z,stopAutoSave:tt,isAutoSaving:rt,startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[Z,Q]:[Q,Z];return await s(t),await a(t),ct},stopAutoPersisting:it,getStatus:()=>m,addStatusListener:t=>R(t,x),delListener:e=>(N(e),t),schedule:ot,getStore:()=>t,destroy:()=>(j(nt,g).splice(0,void 0),it()),getStats:()=>({loads:P,saves:k}),...c};return T(ct)},it=/\/([^?]*)/,ot="S",ct=t=>{return(s=new URL(t.url).pathname,a=it,s?.match(a))?.[1]??e;var s,a},lt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,gt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),ut=()=>gt(426,null,"Upgrade required");class dt extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await w(await this.createPersister(),async t=>{const s=((t,s,n,r,i,c,l,g,h={})=>{let y,p=0,S=0,v=0;const f=$(),b=()=>X(11),M=(t,e,a,n)=>{S++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+X(4),l=o(()=>{F(f,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},i);q(f,c,[t,(t,e)=>{clearTimeout(l),F(f,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{_(e,([e,s],a)=>{const n=D(t[0],a,tt);_(e,([t,e],s)=>{const a=D(n[0],s,tt);_(t,([t,e],s)=>a[0][s]=Y(t,e)),a[1]=Z(a[1],e)}),n[1]=Z(n[1],s)}),t[1]=Z(t[1],s)},P=(s=null,a,n=b())=>C(async()=>{u(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=tt();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!H(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!H(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?tt():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},g),k=rt(t,async()=>{const t=await P();return!t||H(t[0][0])&&H(t[1][0])?void 0:t},async(e,s)=>s?M(null,b(),3,s):M(null,b(),2,t.getMergeableContentHashes()),t=>y=t,()=>y=void 0,g,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:S,receives:v}),...h},1);return n((e,s,a,n)=>{const r=p||k.isAutoLoading();v++,0==a?w(j(f,s),([t,s])=>d(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{y?.(void 0,t)}).catch(g):3==a&&r?y?.(void 0,n):w(1==a&&(p||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(ot,W(t,e,s,a)),t=>this.#t=e=>((t,e)=>N(t,(t,s)=>{return e(t,...(a=s,E(R(a))));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),o(s.startSync)}))}fetch(t){const s=ct(t);return w(lt(t),t=>{const[a,n]=(r=new WebSocketPair,m.values(r));var r,i;return i=this.#s(),0==S(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(W(ot,null,1,e)),gt(101,a)},ut)}webSocketMessage(t,e){w(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==S(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){N(s.toString(),(s,n)=>{const r=z(t,n);this.onMessage(t,s,n),s==e?(t!=ot&&this.#t?.(r),f(this.#s(),t=>{t!=a&&t.send(r)})):s==ot?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return b(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const ht=t=>(e,s)=>lt(e)?s[t].get(s[t].idFromName(ct(e))).fetch(e):ut();export{dt as WsServerDurableObject,ht as getWsServerDurableObjectFetch};