tinybase 8.5.0-beta.2 → 8.5.0-beta.4

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 (151) hide show
  1. package/@types/ui-react-dom-charts/index.d.ts +369 -49
  2. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +396 -70
  3. package/common/index.js +1 -1
  4. package/common/with-schemas/index.js +1 -1
  5. package/index.js +3 -2
  6. package/mergeable-store/index.js +3 -2
  7. package/mergeable-store/with-schemas/index.js +3 -2
  8. package/min/index.js +1 -1
  9. package/min/index.js.gz +0 -0
  10. package/min/mergeable-store/index.js +1 -1
  11. package/min/mergeable-store/index.js.gz +0 -0
  12. package/min/mergeable-store/with-schemas/index.js +1 -1
  13. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  14. package/min/omni/index.js +1 -1
  15. package/min/omni/index.js.gz +0 -0
  16. package/min/omni/with-schemas/index.js +1 -1
  17. package/min/omni/with-schemas/index.js.gz +0 -0
  18. package/min/persisters/index.js +1 -1
  19. package/min/persisters/index.js.gz +0 -0
  20. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  21. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  22. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  23. package/min/persisters/persister-cr-sqlite-wasm/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-electric-sql/index.js +1 -1
  29. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  30. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  31. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  32. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  33. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  34. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  35. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  36. package/min/persisters/persister-libsql/index.js +1 -1
  37. package/min/persisters/persister-libsql/index.js.gz +0 -0
  38. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-pglite/index.js +1 -1
  41. package/min/persisters/persister-pglite/index.js.gz +0 -0
  42. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-postgres/index.js +1 -1
  45. package/min/persisters/persister-postgres/index.js.gz +0 -0
  46. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-powersync/index.js +1 -1
  49. package/min/persisters/persister-powersync/index.js.gz +0 -0
  50. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  53. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  54. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-remote/index.js +1 -1
  57. package/min/persisters/persister-remote/index.js.gz +0 -0
  58. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  61. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  62. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  65. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  66. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-sqlite3/index.js +1 -1
  69. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  70. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/with-schemas/index.js +1 -1
  73. package/min/persisters/with-schemas/index.js.gz +0 -0
  74. package/min/synchronizers/index.js +1 -1
  75. package/min/synchronizers/index.js.gz +0 -0
  76. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  77. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  78. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  79. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  80. package/min/synchronizers/synchronizer-local/index.js +1 -1
  81. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  82. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  83. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  84. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  85. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  86. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  87. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  88. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  89. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  90. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  91. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  92. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  93. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  94. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  95. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  96. package/min/synchronizers/with-schemas/index.js +1 -1
  97. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  98. package/min/ui-react-dom-charts/index.js +1 -1
  99. package/min/ui-react-dom-charts/index.js.gz +0 -0
  100. package/min/ui-react-dom-charts/with-schemas/index.js +1 -1
  101. package/min/ui-react-dom-charts/with-schemas/index.js.gz +0 -0
  102. package/min/with-schemas/index.js +1 -1
  103. package/min/with-schemas/index.js.gz +0 -0
  104. package/omni/index.js +7 -6
  105. package/omni/with-schemas/index.js +7 -6
  106. package/package.json +10 -10
  107. package/persisters/index.js +1 -1
  108. package/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  109. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  110. package/persisters/persister-durable-object-sql-storage/index.js +1 -1
  111. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  112. package/persisters/persister-electric-sql/index.js +1 -1
  113. package/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  114. package/persisters/persister-expo-sqlite/index.js +1 -1
  115. package/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  116. package/persisters/persister-libsql/index.js +1 -1
  117. package/persisters/persister-libsql/with-schemas/index.js +1 -1
  118. package/persisters/persister-pglite/index.js +1 -1
  119. package/persisters/persister-pglite/with-schemas/index.js +1 -1
  120. package/persisters/persister-postgres/index.js +1 -1
  121. package/persisters/persister-postgres/with-schemas/index.js +1 -1
  122. package/persisters/persister-powersync/index.js +1 -1
  123. package/persisters/persister-powersync/with-schemas/index.js +1 -1
  124. package/persisters/persister-react-native-sqlite/index.js +1 -1
  125. package/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  126. package/persisters/persister-remote/index.js +3 -3
  127. package/persisters/persister-remote/with-schemas/index.js +3 -3
  128. package/persisters/persister-sqlite-bun/index.js +1 -1
  129. package/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  130. package/persisters/persister-sqlite-wasm/index.js +1 -1
  131. package/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  132. package/persisters/persister-sqlite3/index.js +1 -1
  133. package/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  134. package/persisters/with-schemas/index.js +1 -1
  135. package/readme.md +13 -13
  136. package/releases.md +57 -57
  137. package/synchronizers/index.js +2 -1
  138. package/synchronizers/synchronizer-broadcast-channel/index.js +2 -1
  139. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -1
  140. package/synchronizers/synchronizer-local/index.js +2 -1
  141. package/synchronizers/synchronizer-local/with-schemas/index.js +2 -1
  142. package/synchronizers/synchronizer-ws-client/index.js +2 -1
  143. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +2 -1
  144. package/synchronizers/synchronizer-ws-server/index.js +2 -1
  145. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +2 -1
  146. package/synchronizers/synchronizer-ws-server-durable-object/index.js +2 -1
  147. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +2 -1
  148. package/synchronizers/with-schemas/index.js +2 -1
  149. package/ui-react-dom-charts/index.js +753 -306
  150. package/ui-react-dom-charts/with-schemas/index.js +753 -306
  151. package/with-schemas/index.js +3 -2
@@ -1 +1 @@
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
+ 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=(e,a)=>((e??t)>(a??t)?e:a)??t,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=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
+ 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=(e,a)=>((e??t)>(a??t)?e:a)??t,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=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};
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,s)=>((t??e)>(s??e)?t:s)??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};
@@ -1 +1 @@
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};
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,s)=>((t??e)>(s??e)?t:s)??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};
@@ -1 +1 @@
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};
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),o=globalThis,r=s.floor,i=s.random,c=t=>null==t,l=t=>void 0===t,u=t=>null===t,y=n(c),g=n(l),w=t=>Array.isArray(t),d=t=>t.length,f=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),v=(t,...e)=>t.push(...e),b=t=>t.shift(),C=t=>l(t)||0==(t=>t?.size??0)(t),M=(t,e)=>t?.forEach(e),A=(t,e)=>t?.delete(e),S=Object,D=t=>S.getPrototypeOf(t),H=S.entries,m=S.keys,L=S.freeze,_=(t,e)=>p(H(t),([t,a])=>e(a,t)),P=t=>(t=>!c(t)&&y(D(t),t=>t==S.prototype||c(D(t)),()=>!0))(t)&&0==(t=>d(m(t)))(t),T=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),G=Map,R=t=>new G(t),E=(t,e)=>t?.get(e),V=(t,e,a)=>l(a)?(A(t,e),t):t?.set(e,a),z=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):V(t,e,a()),E(t,e)},O=(t,e,a,s,n=0)=>g((a?z:E)(t,e[n],n>d(e)-2?a:R),o=>{if(n>d(e)-2)return s?.(o)&&V(t,e[n]),o;const r=O(o,e,a,s,n+1);return C(o)&&V(t,e[n]),r}),$=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),j=o.crypto?t=>o.crypto.getRandomValues(t):t=>(t=>t.map(()=>r(256*i())))(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=(e,a)=>((e??t)>(a??t)?e:a)??t,N=(t="")=>x(((t=[])=>S.fromEntries(t))(),t),U=/^\d+$/,q=t=>new Set(w(t)||l(t)?t:[t]),B=R(),I=R(),J=(e,a,s,n,o,r,i,c={},y=0,S=[])=>{let D,H,m,_=0,T=0,G=0;z(B,S,()=>0),z(I,S,()=>[]);const $=R(),[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]:f("Store type not supported by this Persister"))(i,e,y),[J,K,Q]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?b(e):null)??t+a++,t=>{U.test(t)&&d(e)<1e3&&v(e,t)}]})(),n=R();return[(s,o,r,i=[],c=()=>[])=>{e??=ct;const l=a(1);var u,y;return V(n,l,[s,o,r,i,c]),u=O(o,r??[t],q),y=l,u?.add(y),l},(a,s,...o)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==d(a)?v(s,t):u(a[e])?M(t,t=>n(t,e+1)):p([a[e],null],a=>n(E(t,a),e+1));return n(e,0),s})(a,s),t=>M(t,t=>E(n,t)[0](e,...s??[],...o))),e=>g(E(n,e),([,a,o])=>(O(a,o??[t],void 0,t=>(A(t,e),C(t)?1:0)),V(n,e),s(e),o)),t=>g(E(n,t),([t,,a=[],s,n])=>{const o=(...r)=>{const i=d(r);i==d(a)?t(e,...r,...n(r)):u(a[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),W=t=>{t!=_&&(_=t,K($,void 0,_))},X=t=>{(j&&w(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Y=async()=>{ot()&&e.__?.[0]?.()&&await at()},Z=async t=>(2!=_&&(W(1),T++,await it(async()=>{await h(async()=>{const e=await a();w(e)?X(e):t?N(t):f("Content is not an array: "+e)},()=>{t&&N(t)}),W(0),await Y()})),ct),tt=async t=>(et(),await Z(t),await h(async()=>H=await n(async(t,e)=>{e||t?2!=_&&(W(1),T++,X(e??t),W(0),await Y()):await Z()}),r),ct),et=async()=>(H&&(await h(()=>o(H),r),H=void 0),ct),at=async t=>(1!=_&&(W(2),G++,await it(async()=>{await h(()=>s(k,t),r),W(0)})),ct),st=async()=>(nt(),await at(),m=e.addDidFinishTransactionListener(()=>{const t=x();F(t)&&at(t)}),ct),nt=async()=>(m&&(e.delListener(m),m=void 0),ct),ot=()=>!l(m),rt=async(t=!1)=>{const[e,a]=t?[nt,et]:[et,nt];return await e(),await a(),ct},it=async(...t)=>(v(E(I,S),...t),await(async()=>{if(!E(B,S)){for(V(B,S,1);!l(D=b(E(I,S)));)await h(D,r);V(B,S,0)}})(),ct),ct={load:Z,startAutoLoad:tt,stopAutoLoad:et,isAutoLoading:()=>!l(H),save:at,startAutoSave:st,stopAutoSave:nt,isAutoSaving:ot,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[st,tt]:[tt,st];return await a(t),await s(t),ct},stopAutoPersisting:rt,getStatus:()=>_,addStatusListener:t=>J(t,$),delListener:t=>(Q(t),e),schedule:it,getStore:()=>e,destroy:()=>(E(I,S).splice(0,void 0),rt()),getStats:()=>({loads:T,saves:G}),...c};return L(ct)},K={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},Q=(e,s,n,o,r,i,c,y,w={})=>{let d,f=0,p=0,v=0;const b=R(),C=()=>k(11),M=(t,e,a,n)=>{p++,i?.(t,e,a,n),s(t,e,a,n)},S=async(t,e,s,n)=>new a((a,o)=>{const i=n+"."+k(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{A(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);V(b,i,[t,(t,e)=>{clearTimeout(c),A(b,i),a([t,e,n])}]),M(t,i,e,s)}),D=(t,[e,a])=>{_(e,([e,a],s)=>{const n=T(t[0],s,N);_(e,([t,e],a)=>{const s=T(n[0],a,N);_(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)},H=(a=null,s,n=C())=>h(async()=>{l(s)&&([s,a,n]=await S(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let u=N();if(i!=o){const[t,s]=(await S(a,4,e.getMergeableTableHashes(),n))[0];if(u=t,!P(s)){const[t,o]=(await S(a,5,e.getMergeableRowHashes(s),n))[0];if(D(u,t),!P(o)){const t=(await S(a,6,e.getMergeableCellHashes(o),n))[0];D(u,t)}}}return[u,c==r?N():(await S(a,7,e.getMergeableValueHashes(),n))[0],1]},y),m=J(e,async()=>{const t=await H();return!t||P(t[0][0])&&P(t[1][0])?void 0:t},async(t,a)=>a?M(null,C(),3,a):M(null,C(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,y,2,{startSync:async t=>(f=1,await m.startAutoPersisting(t)),stopSync:async()=>(f=0,await m.stopAutoPersisting(),m),destroy:async()=>(await m.stopSync(),o(),m),getSynchronizerStats:()=>({sends:p,receives:v}),...w},1);return n((t,a,s,n)=>{const o=f||m.isAutoLoading();v++,c?.(t,a,s,n),0==s?g(E(b,a),([e,a])=>u(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{d?.(void 0,t)}).catch(y):3==s&&o?d?.(void 0,n):g(1==s&&(f||m.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)})}),m};export{K as Message,Q as createCustomSynchronizer};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"react";const l=e=>typeof e,s=l(""),i=l(0),o="Result",a="SortedRowIds",u="Cell",c=Math,d=e=>(t,r,n)=>e(t)?n?.():r(t),x=globalThis,y=String,m=c.max,p=c.min,h=c.ceil,f=c.floor,b=c.pow,I=c.round,g=c.abs,S=c.log10,C=1/0,M=Number.EPSILON,k=isFinite,N=Number.isInteger,$=e=>null==e,T=e=>void 0===e,v=d($),F=d(T),q=e=>l(e)==s,O=e=>l(e)==i,V=e=>Array.isArray(e),w=e=>e.length,{Children:z,Fragment:P,PureComponent:E,createContext:R,isValidElement:X,useCallback:A,useContext:L,useEffect:B,useLayoutEffect:W,useMemo:Q,useRef:G,useState:j,useSyncExternalStore:H}=n;var _=(e=>(e[e.None=0]="None",e[e.Query=1]="Query",e[e.Table=2]="Table",e))(_||{});const D="_tinybaseChartSeries",J=R(null),Z=()=>{const e=L(J);if(null==e)throw Error("Series components must be used inside a CartesianChart");return e},K=(e,t)=>se(Array(e).fill(0),(e,r)=>t(r)),U=(e,t)=>e.includes(t),Y=(e,t)=>e.indexOf(t),ee=(e,t)=>e.every(t),te=(e,t)=>w(e)===w(t)&&ee(e,(e,r)=>t[r]===e),re=(e,t)=>V(e)&&V(t)?te(e,t):e===t,ne=(e,t)=>e.forEach(t),le=(e,t="")=>e.join(t),se=(e,t)=>e.map(t),ie=e=>0==w(e),oe=(e,t)=>e.filter(t),ae=(e,...t)=>e.push(...t),ue=e=>e?.size??0,ce=[1,5,2,2.5,4,3],de=(e,t,r,n,l,s)=>{let i=[e,t],o=-2;const a=t-e;for(let u=1;u<C;u++)for(const c of ce){const d=1-Y(ce,c)/m(w(ce)-1,1)-u+1;if(.25*d+.2+.5+.05<o)return i;for(let x=2;x<C;x++){const y=x>=r?2-(x-1)/(r-1):1;if(.25*d+.2+.5*y+.05<o)break;for(let k=h(S(a/(x+1)/u/c));k<C;k++){const a=u*c*b(10,k);if(.25*d+.2*(a*(x-1)<=t-e?1:1-b((a*(x-1)-(t-e))/2,2)/b(.1*(t-e),2))+.5*y+.05<o)break;const S=f(t/a)*u-(x-1)*u,C=h(e/a)*u;S<=C&&ne(K(C-S+1,e=>S+e),d=>{const y=d*(a/u),h=y+a*(x-1),S=(x-1)/(h-y),C=(r-1)/(m(h,t)-p(e,y)),k=l/(x-1),N=.25*(1-Y(ce,c)/m(w(ce)-1,1)-u+(g(y/a-I(y/a))<100*M&&y<=0&&h>=0?1:0))+.2*(1-(b(t-h,2)+b(e-y,2))/(2*b(.1*(t-e),2)))+.5*(2-m(S/C,C/S))+.05*(k<1.2*n?-1/0:p(k,1))+(s&&(g(a-I(a))>100*M||g(y-I(y))>100*M)?-1:0);N>o&&(i=K(f((h-y)/a+.5)+1,e=>I(1e6*(y+e*a))/1e6),o=N)})}}}return i},xe=(e,t)=>oe(se(e,t),e=>!T(e)),ye=(e,t,r)=>{const n=Me(t),l=ke(r);return T(n)||T(l)?void 0:[e,n,l]},me=(e,t,[r,n,l,s],[i,o],a,u,c)=>{const d="line"==e&&ie(oe(t,([,e])=>!O(e))),x=d?[r,n]:[0,0],y=[l??0,s??0],m=new Map;return ne(null==a||ie(a)?se(t,([,e])=>e):a,e=>{m.has(e)||m.set(e,ue(m))}),se(t,([t,r,n])=>[t,r,n,pe(r,d,x,m,i,e),he(n,y,o),u,c])},pe=(e,t,[r,n],l,s,i)=>t?fe(e,r,n,s):"bar"==i?s*((l.get(e)??0)+.5)/ue(l):fe(l.get(e)??0,0,ue(l)-1,s),he=(e,[t,r],n)=>n-fe(e,t,r,n),fe=(e,t,r,n)=>t==r?n/2:Ce(n*(e-t)/(r-t)),be=(e,t,r,n,l)=>{const[s,i,o,a]=((e,t)=>{if(ie(t))return[];const[r,n]=ge(t,e);if(ie(oe(t,([,e])=>!O(e)))){const[e,l]=Se(se(t,([,e])=>e));return[e,l,r,n]}return[t[0]?.[1],t[w(t)-1]?.[1],r,n]})(e,t),u=[],c="line"==e&&ie(oe(t,([,e])=>!O(e)));return ne(t,([,e])=>{U(u,e)||ae(u,e)}),{continuousX:c,xCellId:r,xMin:s,xMax:i,yMin:o,yMax:a,yCellId:n,yLabel:l,xValues:u}},Ie=e=>{const t=[],r=[],n=[],l=[],s=[];let i,o,a=!0;return ne(e,e=>{a&&=e.continuousX,ne(e.xValues,e=>{U(t,e)||ae(t,e)}),O(e.xMin)&&O(e.xMax)?(r.push(e.xMin),n.push(e.xMax)):(i??=e.xMin,o=e.xMax??o),T(e.yMin)||l.push(e.yMin),T(e.yMax)||s.push(e.yMax)}),{bounds:[ie(r)?i:p(...r),ie(n)?o:m(...n),ie(l)?void 0:p(...l),ie(s)?void 0:m(...s)],continuousX:!ie(e)&&a,xValues:t}},ge=(e,t="bar")=>Se([..."bar"==t?[0]:[],...se(e,([,,e])=>e)]),Se=e=>{const t=p(...e);return t==C?[0,0]:[t,m(...e)]},Ce=e=>I(1e6*e)/1e6,Me=e=>O(e)?k(e)?e:void 0:q(e)||!0===e||!1===e?e:void 0,ke=e=>O(e)&&k(e)?e:void 0,Ne="currentColor",$e=({points:t,plotFrame:r,barGap:n,barSeriesCount:l,barSeriesIndex:s,setTooltipPoint:i,yMin:o=0,yMax:a=0})=>{const[u,c,d,x]=r,y=x-fe(0,o,a,x),h=w(t),f=ie(t)?0:d/h,b=m(l,1),I=m(s,0),S=m(f-n,0),C=m((S-n*(b-1))/b,0);return se(t,t=>{const[r,,,l,s]=t,o=p(s,y);return e("rect",{className:"bar",height:g(y-s),onPointerEnter:()=>i(t),onPointerLeave:()=>i(void 0),width:C,x:u+l-S/2+(C+n)*I,y:c+o},r)})},Te=Object,ve=e=>Te.getPrototypeOf(e),Fe=Te.entries,qe=e=>!$(e)&&v(ve(e),e=>e==Te.prototype||$(ve(e)),()=>!0),Oe=Te.keys,Ve=e=>Te.values(e),we=(e,t,r=(e,t)=>e===t)=>{const n=Fe(e);return w(n)===w(Oe(t))&&ee(n,([e,n])=>qe(n)?!!qe(t[e])&&we(t[e],n,r):r(n,t[e]))},ze=JSON.stringify,Pe="tinybase_uirc",Ee=x[Pe]?x[Pe]:x[Pe]=R([]),Re=(e,t)=>{const r=((e,t)=>{const r=L(Ee);return T(e)?r[2*t]:q(e)?((e,t)=>F(e,e=>e[t]))(r[2*t+1],e):e})(e,t);return T(e)||q(e)?r:e},Xe=[],Ae=[{},[],[Xe,void 0,Xe],{},void 0,void 0,!1,0],Le=(e,t)=>e===t||(qe(e)||V(e))&&ze(e)===ze(t),Be=[(e,t)=>we(e,t,Le),te,([e,t,r],[n,l,s])=>t===l&&te(e,n)&&te(r,s),(e,t)=>we(e,t,re),re,Le],We=(e,t)=>e===t,Qe=(e,t,...r)=>{const n=e?.["add"+t+"Listener"]?.(...r);return()=>e?.delListener?.(n)},Ge=(e,t,r,n=Xe)=>{const l=G(Ae[r]),s=A(()=>{const s=t?.["get"+e]?.(...n)??Ae[r];return(Be[r]??We)(s,l.current)?l.current:l.current=s},[t,r,e,...n]),i=A(r=>Qe(t,""+e,...n,r),[t,r,e,...n]);return H(i,s,s)},je=(e,t,r,n=Xe,l=Xe,...s)=>W(()=>Qe(t,e,...l,r,...s),[t,e,...l,...n,...s]),He=e=>Re(e,0),_e=(e,t,r,n,l,s,i)=>je(u,He(i),n,l,[e,t,r],s),De=e=>Re(e,4),Je=(e,t,r,n,l,s)=>je(o+u,De(s),n,l,[e,t,r]),Ze=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>{const[,i]=j(),u=Z(),{getSeriesId:c,queries:d,queriesOrQueriesId:x,queryId:y,releaseSeriesId:m,sourceType:p,store:h,storeOrStoreId:f,tableId:b}=u,[I]=j(c),g=A(()=>i([]),[i]),S=((e,t,r,n,l,s)=>((e,t,r,n,l,s)=>Ge(a,He(s),1,[e,t,r,n,l]))(...qe(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,r,n,l,s]))(b??"",n??l,e,r,t,f),C=((e,t,r,n=0,l,s)=>Ge(o+a,De(s),1,[e,t,r,n,l]))(y??"",n??l,e,r,t,x),M=p==_.Table?S:C,k=null==s?[]:xe(M,e=>ye(e,Ue(p,h,d,b,y,e,l),Ue(p,h,d,b,y,e,s)));return _e(p==_.Table?b??null:null,null,l,g,[g],!1,f),_e(p==_.Table?b??null:null,null,s??null,g,[g],!1,f),Je(p==_.Query?y??null:null,null,l,g,[g],x),Je(p==_.Query?y??null:null,null,s??null,g,[g],x),W(()=>()=>m(I),[m,I]),[I,k]},Ke=(e,t)=>null==t?e:`${e} ${t}`,Ue=(e,t,r,n,l,s,i)=>e==_.Table?t?.getCell(n,s,i):r?.getResultCell(l,s,i),Ye=t=>{const{barSeriesCount:r,bounds:n,getBarSeriesIndex:l,layout:[,,[,,s]],plotFrame:i,plotSize:o,registerBarSeries:a,releaseBarSeries:u,setSeriesSummary:c,setTooltipPoint:d,xValues:x}=Z(),{className:y,label:m,xCellId:p,yCellId:h}=t,[f,b]=Ze(t),I=l(f),[,,g,S]=n,C=me("bar",b,n,o,x,p,m??h);return W(()=>{c(f,be("bar",b,p,h,m))}),W(()=>(a(f),()=>u(f)),[a,u,f]),e("g",{className:Ke("bar-series",y),fill:Ne,children:e($e,{barGap:s,barSeriesCount:r,barSeriesIndex:I,plotFrame:i,points:C,setTooltipPoint:d,yMax:S,yMin:g})})};Ye[D]=!0;const et=/^\d+$/,tt=[1e3,1e3],rt=[.5,.5,.25,3.5,4,1,1],nt=([e,t],[,,,r,n,l,s])=>{const i=l+m(p(n,e/2-2*l),0),o=l+s/2,a=l+s/2,u=m(t-o-m(p(r,t/2-o-l),0)-l,0);return[i,o,m(e-i-a,0),u]},lt=e=>se(rt,t=>t*e),st=e=>{const t=parseFloat(e?.fontSize??"");return lt(k(t)?t:12)},it=({width:e,height:t})=>[I(e)||tt[0],I(t)||tt[1]],ot=({points:r,xTicks:n,xMin:l,xMax:s,xTitle:i,plotFrame:o,tickSize:a,tickGap:u,axisHeight:c,fontSize:d})=>{const[x,p,h,f]=o,b=m(c-a-u-2*d,0);return t("g",{className:"x",dominantBaseline:"hanging",textAnchor:"middle",children:[e("path",{className:"line",d:`M${x},${p+f}h${h}`,fill:"none",stroke:Ne,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",children:!ie(n)&&O(l)&&O(s)?se(n,t=>{const r=fe(t,l,s,h);return e("text",{x:x+r,y:p+f+a+u,children:t},t)}):se(r,([t,r,,n])=>e("text",{x:x+n,y:p+f+a+u,children:y(r)},t))}),e("text",{className:"title",x:x+h/2,y:p+f+a+u+d+b,children:i})]})},at=({yTicks:r,yMin:n,yMax:l,yTitle:s,plotFrame:i,tickSize:o,tickGap:a,axisWidth:u})=>{const[c,d,,x]=i;return $(n)||$(l)?null:t("g",{className:"y",children:[e("path",{className:"line",d:`M${c},${d}v${x}`,fill:"none",stroke:Ne,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",dominantBaseline:"middle",textAnchor:"end",children:se(r,t=>{const r=x-fe(t,n,l,x);return e("text",{x:c-o-a,y:d+r,children:t},t)})}),e("text",{className:"title",dominantBaseline:"text-before-edge",textAnchor:"middle",transform:`translate(${c-u} ${i[1]+i[3]/2}) rotate(-90)`,children:s})]})},ut=({points:r,xTicks:n,yTicks:l,bounds:[s,i,o,a],titles:[u,c],xAxisHeight:d,yAxisWidth:x,fontSize:y,...m})=>t("g",{className:"axes",fill:Ne,fillOpacity:.75,children:[e(at,{...m,yTicks:l,yMin:o,yMax:a,yTitle:c,axisWidth:x}),e(ot,{...m,points:r,xTicks:n,xMin:s,xMax:i,xTitle:u,axisHeight:d,fontSize:y})]}),ct=({points:r,xTicks:n,yTicks:l,bounds:[s,i,o,a],plotFrame:u,tickSize:c})=>{const[d,x,y,m]=u;return t("g",{className:"grid",stroke:Ne,strokeOpacity:.75,strokeWidth:.5,children:[$(o)||$(a)?null:e("path",{className:"y",d:le(se(oe(l,e=>0!=fe(e,o,a,m)),e=>`M${d-c},${x+m-fe(e,o,a,m)}h${y+c}`)," ")}),!ie(n)&&O(s)&&O(i)?e("path",{className:"x",d:le(se(oe(n,e=>0!=fe(e,s,i,y)),e=>`M${d+fe(e,s,i,y)},${x}v${m+c}`)," ")}):e("path",{className:"x",d:le(se(oe(r,([,,,e])=>0!=e),([,,,e])=>`M${d+e},${x}v${m+c}`)," ")})]})},dt="#fff",xt=({point:n,width:l,height:s,plotFrame:i,titles:[o,a]})=>{if($(n))return null;const[,u,c,d,x,h,f]=n,[b,I]=i,g=d+12+160>l?d-12-160:d+12,S=m(p(x-12-60,s-60),0);return t(r,{children:[e("path",{className:"tooltip-lines",pointerEvents:"none",stroke:Ne,strokeOpacity:.25,strokeWidth:1,d:`M${b+d},${I}v${s}M${b},${I+x}h${l}`}),t("g",{className:"tooltip",transform:`translate(${b+g} ${I+S})`,fontFamily:"sans-serif",fontWeight:600,pointerEvents:"none",children:[e("rect",{fill:"#111827",fillOpacity:.9,width:160,height:60,rx:6}),t("text",{fill:dt,x:12,y:22,children:[h??o,": ",y(u)]}),t("text",{fill:dt,x:12,y:46,children:[f??a,": ",c]})]})]})},yt={bounds:[],continuousX:!1,xValues:[]},mt=({children:r,className:n,initialSummary:l,queries:s,queryId:i,store:o,tableId:a})=>{const u=(()=>{const e=G(null),t=G([tt,lt(12)]),[r,n]=j([tt,lt(12)]);return W(()=>{const r=e.current;if(null===r)return;const l=new ResizeObserver(([e])=>(({contentRect:e})=>{const l=r.ownerDocument.defaultView?.getComputedStyle(r),s=[it(e),st(l)];(([e,t],[r,n])=>te(e,r)&&te(t,n))(t.current,s)||(t.current=s,n(s))})(e));return l.observe(r),()=>l.disconnect()},[]),[e,...r]})(),[c,d,x]=u,[y,h,,f,b,,I]=x,g=nt(d,x),S=(([,e,t])=>{const[,,r,n]=nt(e,t);return[r,n]})(u),M=(([,,e])=>e[6])(u),k=He(o),$=De(s),v=null==a?null==i?_.None:_.Query:_.Table,F=null==l?{}:{0:l},q=null==l?yt:Ie(Ve(F)),V=Ct(F,"xCellId"),z=Ct(F,"yCellId"),P=G(F),E=G(q.bounds),R=G(q),X=G(V),L=G(z),B=G((()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??""+t++,t=>{et.test(t)&&w(e)<1e3&&ae(e,t)}]})()),[H,D]=j(q),[Z,K]=j(V),[ee,re]=j(z),ne=G([]),[le,se]=j([]),[ue,ce]=j(),xe=H.xValues,ye=H.bounds,pe=H.continuousX||ie(le)?"line":"bar",he=((e,[t,r],[n],l)=>"line"==e&&O(t)&&O(r)&&t!=r?de(t,r,10,l,n,N(t)&&N(r)):[])(pe,ye,S,M),fe=(([,,e,t],[,r],n)=>T(e)||T(t)?[]:e==t?[e]:de(e,t,10,n,r,N(e)&&N(t)))(ye,S,M),be=(([e,t,r,n],l,s)=>[ie(l)?e:p(e,l[0]),ie(l)?t:m(t,l[w(l)-1]),ie(s)?r:p(r??C,s[0]),ie(s)?n:m(n??-1/0,s[w(s)-1])])(ye,he,fe),ge=me(pe,xe.map((e,t)=>[""+t,e,0]),be,S,xe),Se=A(e=>{const t=Ie(Ve(e)),r=t.bounds;pt(E.current,r)&&te(R.current.xValues,t.xValues)||(E.current=r,R.current=t,D(t))},[]),Ce=A(e=>{const t=Ct(e,"xCellId"),r=Ct(e,"yCellId");X.current!=t&&(X.current=t,K(t)),L.current!=r&&(L.current=r,re(r))},[]),Me=A(e=>{const t=E.current,r=[bt(t[0],e.xMin),It(t[1],e.xMax),gt(t[2],e.yMin),St(t[3],e.yMax)];pt(t,r)||(E.current=r,R.current={bounds:r,continuousX:R.current.continuousX,xValues:R.current.xValues},D(R.current))},[]),ke=A((e,t)=>{const r=P.current,n=r[e];if(null==t){if(null==n)return;return delete r[e],Ce(r),void Se(r)}r[e]=t,Ce(r),(null==n?ft(t.xValues,R.current.xValues)||t.continuousX!=R.current.continuousX:ht(n,E.current)||n.continuousX!=t.continuousX||!te(n.xValues,t.xValues))?Se(r):Me(t)},[Me,Se,Ce]),[Ne,$e]=B.current,Te=A(()=>Ne(1),[Ne]),ve=A(e=>{ke(e,void 0),$e(e)},[$e,ke]),Fe=A(e=>{if(!U(ne.current,e)){const t=[...ne.current];ae(t,e),ne.current=t,se(t)}},[]),qe=A(e=>{if(U(ne.current,e)){const t=oe(ne.current,t=>t!=e);ne.current=t,se(t)}},[]),Oe=A(e=>Y(ne.current,e),[]),we=Q(()=>({bounds:be,barSeriesCount:w(le),domainState:H,getBarSeriesIndex:Oe,getSeriesId:Te,layout:u,plotFrame:g,plotSize:S,queries:$,queriesOrQueriesId:s,queryId:i,registerBarSeries:Fe,releaseBarSeries:qe,releaseSeriesId:ve,setSeriesSummary:ke,setTooltipPoint:ce,sourceType:v,store:k,storeOrStoreId:o,tableId:a,xTicks:he,xValues:xe,yTicks:fe}),[le,H,Oe,Te,u,g,S,s,$,i,Fe,qe,ve,ke,v,o,k,a,be,he,xe,fe]);return e(J.Provider,{value:we,children:t("svg",{className:n,preserveAspectRatio:"none",ref:c,viewBox:`0 0 ${d[0]} ${d[1]}`,children:[e(ct,{bounds:be,points:ge,plotFrame:g,tickSize:y,xTicks:he,yTicks:fe}),e(ut,{bounds:be,fontSize:I,points:ge,plotFrame:g,tickGap:h,tickSize:y,titles:[Z,ee],xAxisHeight:f,xTicks:he,yAxisWidth:b,yTicks:fe}),e("g",{className:"plot",children:Mt(r)}),e(xt,{height:S[1],point:ue,plotFrame:g,titles:[Z,ee],width:S[0]})]})})},pt=(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3],ht=({xMin:e,xMax:t,yMin:r,yMax:n},[l,s,i,o])=>e===l||t===s||r===i||n===o,ft=(e,t)=>{let r=!1;return ne(e,e=>{U(t,e)||(r=!0)}),r},bt=(e,t)=>O(e)&&O(t)?p(e,t):e??t,It=(e,t)=>O(e)&&O(t)?m(e,t):e??t,gt=(e,t)=>null==e||null==t?e??t:p(e,t),St=(e,t)=>null==e||null==t?e??t:m(e,t),Ct=(e,t)=>{const r=[];return ne(Ve(e),e=>{const n="yCellId"==t?e.yLabel??e.yCellId:e.xCellId;null==n||U(r,n)||ae(r,n)}),ie(r)?"":r.join(" & ")},Mt=e=>{const t=[];return z.forEach(e,e=>{var r;X(e)&&(e.type===P?ne(Mt(e.props.children),e=>ae(t,e)):"function"==typeof(r=e.type)&&!0===r[D]&&ae(t,e))}),t},kt=(e,{descending:t,limit:r,offset:n,queries:l,queryId:s,sortCellId:i,store:o,tableId:a,xCellId:u,yCellId:c})=>{const d=He(o),x=De(l);return Q(()=>{const l=null==a?xe(x?.getResultSortedRowIds(s??"",i??u,t,n,r)??[],e=>ye(e,x?.getResultCell(s??"",e,u),x?.getResultCell(s??"",e,c))):xe(d?.getSortedRowIds(a,i??u,t,n,r)??[],e=>ye(e,d?.getCell(a,e,u),d?.getCell(a,e,c)));return be(e,l,u,c)},[t,e,r,n,x,s,i,d,a,u,c])},Nt=t=>{const r=kt("bar",t);return e(mt,{...$t(t),initialSummary:r,children:e(Ye,{...Tt(t)})})},$t=e=>null==e.tableId?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},Tt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s}),vt=({plotFrame:n,points:l,setTooltipPoint:s})=>{const[i,o,,a]=n;return t(r,{children:[e("path",{className:"area",d:qt(l,i,o,a),fill:Ne,fillOpacity:.25,stroke:"none"}),e("path",{className:"line",d:Ft(l,i,o),fill:"none",stroke:Ne,strokeOpacity:.75,strokeWidth:2}),e("g",{className:"points",fill:Ne,children:se(l,t=>{const[r,,,n,l]=t;return e("circle",{cx:i+n,cy:o+l,onPointerEnter:()=>s(t),onPointerLeave:()=>s(void 0),r:5},r)})})]})},Ft=(e,t,r)=>le(se(e,([,,,e,n],l)=>`${0==l?"M":"L"}${t+e},${r+n}`)," "),qt=(e,t,r,n)=>ie(e)?"":`${Ft(e,t,r)} L${t+e[w(e)-1][3]},${r+n} L${t+e[0][3]},${r+n} Z`,Ot=t=>{const{barSeriesCount:r,bounds:n,domainState:l,plotFrame:s,plotSize:i,setSeriesSummary:o,setTooltipPoint:a,xValues:u}=Z(),{className:c,label:d,xCellId:x,yCellId:y}=t,[m,p]=Ze(t),h=me(l.continuousX||0==r?"line":"bar",p,n,i,u,x,d??y);return W(()=>{o(m,be("line",p,x,y,d))}),e("g",{className:Ke("line-series",c),children:e(vt,{plotFrame:s,points:h,setTooltipPoint:a})})};Ot[D]=!0;const Vt=t=>{const r=kt("line",t);return e(mt,{...wt(t),initialSummary:r,children:e(Ot,{...zt(t)})})},wt=e=>null==e.tableId?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},zt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s});export{Nt as BarChart,Ye as BarSeries,mt as CartesianChart,Vt as LineChart,Ot as LineSeries};
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"react";const s=e=>typeof e,i="",l=s(i),o=s(0),a=s(s),c="Result",u="SortedRowIds",d="Cell",x=Math,m=Date,y=e=>(t,r,n)=>e(t)?n?.():r(t),p=globalThis,h=Number,f=String,g=x.max,S=x.min,b=x.ceil,C=x.floor,k=x.pow,I=x.round,$=x.abs,v=x.log10,M=m.UTC,T=1/0,N=Number.EPSILON,F=isFinite,V=h.isInteger,w=e=>null==e,O=e=>void 0===e,A=e=>O(e)?new m:new m(e),U=e=>e.getUTCFullYear(),q=e=>e.getUTCMonth(),z=e=>e.getUTCDate(),P=e=>e.getUTCHours(),B=e=>e.getUTCMinutes(),E=e=>e.getUTCSeconds(),R=y(w),W=y(O),X=e=>s(e)==l,L=e=>s(e)==o,Q=e=>s(e)==a,D=e=>Array.isArray(e),G=e=>e.length,H=(e,t)=>re(Array(e).fill(0),(e,r)=>t(r)),_=(e,t)=>e.includes(t),j=(e,t)=>e.indexOf(t),Y=(e,t)=>e.every(t),J=(e,t)=>G(e)===G(t)&&Y(e,(e,r)=>t[r]===e),Z=(e,t)=>D(e)&&D(t)?J(e,t):e===t,K=(e,t)=>e.sort(t),ee=(e,t)=>e.forEach(t),te=(e,t="")=>e.join(t),re=(e,t)=>e.map(t),ne=e=>0==G(e),se=(e,t)=>e.filter(t),ie=(e,...t)=>e.push(...t),{Children:le,Fragment:oe,PureComponent:ae,createContext:ce,isValidElement:ue,useCallback:de,useContext:xe,useEffect:me,useLayoutEffect:ye,useMemo:pe,useRef:he,useState:fe,useSyncExternalStore:ge}=n,Se="category",be="linear",Ce="time",ke="millisecond",Ie="second",$e="bar",ve="line",Me="currentColor",Te="_tinybaseChartSeries",Ne="_tinybaseChartXAxis",Fe="_tinybaseChartYAxis";var Ve=(e=>(e[e.None=0]="None",e[e.Query=1]="Query",e[e.Table=2]="Table",e))(Ve||{});const we=ce(null),Oe=()=>{const e=xe(we);return w(e)&&(()=>{throw Error("Series components must be used inside a CartesianChart")})(),e},Ae=e=>e?.size??0,Ue=Object,qe=e=>Ue.getPrototypeOf(e),ze=Ue.entries,Pe=e=>!w(e)&&R(qe(e),e=>e==Ue.prototype||w(qe(e)),()=>!0),Be=Ue.keys,Ee=e=>Ue.values(e),Re=(e,t,r=(e,t)=>e===t)=>{const n=ze(e);return G(n)===G(Be(t))&&Y(n,([e,n])=>Pe(n)?!!Pe(t[e])&&Re(t[e],n,r):r(n,t[e]))},We=Map,Xe=(e,t)=>e?.get(t),Le=[1,5,2,2.5,4,3],Qe=36e5,De=24*Qe,Ge=30*De,He=365*De,_e="minute",je="hour",Ye="day",Je="week",Ze="month",Ke="quarter",et="year",tt=[[Ie,1],[Ie,5],[Ie,10],[Ie,15],[Ie,30],[_e,1],[_e,5],[_e,10],[_e,15],[_e,30],[je,1],[je,3],[je,6],[je,12],[Ye,1],[Ye,2],[Je,1],[Ze,1],[Ze,2],[Ke,1],[Ze,6],[et,1],[et,2],[et,5],[et,10],[et,25],[et,50],[et,100]],rt=(e=10)=>F(e)?g(I(e),1):10,nt=(e,t,r,n,s,i)=>{let l=[e,t],o=-2;const a=t-e;for(let c=1;c<T;c++)for(const u of Le){const d=1-j(Le,u)/g(G(Le)-1,1)-c+1;if(.25*d+.2+.5+.05<o)return l;for(let x=2;x<T;x++){const m=x>=r?2-(x-1)/(r-1):1;if(.25*d+.2+.5*m+.05<o)break;for(let y=b(v(a/(x+1)/c/u));y<T;y++){const a=c*u*k(10,y);if(.25*d+.2*(a*(x-1)<=t-e?1:1-k((a*(x-1)-(t-e))/2,2)/k(.1*(t-e),2))+.5*m+.05<o)break;const p=C(t/a)*c-(x-1)*c,h=b(e/a)*c;p<=h&&ee(H(h-p+1,e=>p+e),d=>{const m=d*(a/c),y=m+a*(x-1),p=(x-1)/(y-m),h=(r-1)/(g(y,t)-S(e,m)),f=s/(x-1),b=.25*(1-j(Le,u)/g(G(Le)-1,1)-c+($(m/a-I(m/a))<100*N&&m<=0&&y>=0?1:0))+.2*(1-(k(t-y,2)+k(e-m,2))/(2*k(.1*(t-e),2)))+.5*(2-g(p/h,h/p))+.05*(f<1.2*n?-1/0:S(f,1))+(i&&($(a-I(a))>100*N||$(m-I(m))>100*N)?-1:0);b>o&&(l=H(C((y-m)/a+.5)+1,e=>I(1e6*(m+e*a))/1e6),o=b)})}}}return l},st=(e,[t,r])=>{const n=A(e),s=U(n),i=q(n),l=t==Ke?3*r:r,o=C((12*s+i)/l)*l,a=lt(t,r);return t==et?M(C(s/r)*r,0,1):t==Ke||t==Ze?M(C(o/12),o%12,1):t==Je?M(s,i,z(n))-(n.getUTCDay()+6)%7*De:C(e/a)*a},it=(e,[t,r])=>{const n=A(e);return t==et?M(U(n)+r,0,1):t==Ke?M(U(n),q(n)+3*r,1):t==Ze?M(U(n),q(n)+r,1):e+lt(t,r)},lt=(e,t)=>e==Je?7*t*De:e==Ye?t*De:e==je?t*Qe:e==_e?6e4*t:1e3*t,ot=e=>e<10?"0"+e:e+i,at=/^\d{4}-\d{2}-\d{2}(?:$|T)/,ct=(e,t)=>se(re(e,t),e=>!O(e)),ut=(e,t,r)=>{const n=Ct(t),s=kt(r);return O(n)||O(s)?void 0:[e,n,s]},dt=(e,t,[r,n,s,i],[l,o],a,c=Se,u=ke,d,x)=>{const m=c!=Se?[r,n]:[0,0],y=[s??0,i??0],p=new We(void 0);return ee(w(a)||ne(a)?re(t,([,e])=>e):a,e=>{return t=p,r=e,t?.has(r)?0:((e,t,r)=>{return O(r)?(n=e,s=t,n?.delete(s),e):e?.set(t,r);var n,s})(p,e,Ae(p));var t,r}),se(re(t,([t,r,n])=>{const s=xt(r,c,u,m,p,l,e);return O(s)?void 0:[t,r,n,s,o-mt(n,y[0],y[1],o),d,x]}),e=>!O(e))},xt=(e,t,r,[n,s],i,l,o)=>{const a=St(e,t,r);return t!=Se?O(a)?void 0:mt(a,n,s,l):o==$e?l*((Xe(i,e)??0)+.5)/Ae(i):mt(Xe(i,e)??0,0,Ae(i)-1,l)},mt=(e,t,r,n)=>t==r?n/2:I(n*(e-t)/(r-t)*1e6)/1e6,yt=(e,t)=>{const r=L(e)?t==Ie?1e3*e:e:X(e)&&at.test(e)||e instanceof Date?bt(e):void 0;return F(r)?r:void 0},pt=(e,t,r,n,s)=>{const[i,l,o,a]=((e,t)=>{if(ne(t))return[];const[r,n]=ft(t,e);if(ne(se(t,([,e])=>!L(e)))){const[e,s]=gt(re(t,([,e])=>e));return[e,s,r,n]}return[t[0]?.[1],t[G(t)-1]?.[1],r,n]})(e,t),c=[],u=e==ve&&ne(se(t,([,e])=>!L(e)));return ee(t,([,e])=>{_(c,e)||ie(c,e)}),{continuousX:u,xCellId:r,xMin:i,xMax:l,yMin:o,yMax:a,yCellId:n,yLabel:s,xValues:c}},ht=e=>{const t=[],r=[],n=[],s=[],i=[];let l,o,a=!0;return ee(e,e=>{a&&=e.continuousX,ee(e.xValues,e=>{_(t,e)||ie(t,e)}),L(e.xMin)&&L(e.xMax)?(ie(r,e.xMin),ie(n,e.xMax)):(l??=e.xMin,o=e.xMax??o),O(e.yMin)||ie(s,e.yMin),O(e.yMax)||ie(i,e.yMax)}),{bounds:[ne(r)?l:S(...r),ne(n)?o:g(...n),ne(s)?void 0:S(...s),ne(i)?void 0:g(...i)],continuousX:!ne(e)&&a,xValues:t}},ft=(e,t=$e)=>gt([...t==$e?[0]:[],...re(e,([,,e])=>e)]),gt=e=>{const t=S(...e);return t==T?[0,0]:[t,g(...e)]},St=(e,t,r)=>t==be?L(e)?e:void 0:t==Ce?yt(e,r):void 0,bt=e=>{const t=+A(e);return F(t)?C(t):void 0},Ct=e=>L(e)?F(e)?e:void 0:X(e)||!0===e||!1===e?e:void 0,kt=e=>L(e)&&F(e)?e:void 0,It=({points:t,plotFrame:r,barGap:n,barSeriesCount:s,barSeriesIndex:i,fullBarWidth:l,setTooltipPoint:o,yMin:a=0,yMax:c=0})=>{const[u,d,x,m]=r,y=m-mt(0,a,c,m),p=G(t),h=l??(ne(t)?0:x/p),f=g(s,1),b=g(i,0),C=g(h-n,0),k=g((C-n*(f-1))/f,0);return re(t,t=>{const[r,,,s,i]=t,l=S(i,y);return e("rect",{className:"bar",height:$(y-i),onPointerEnter:()=>o(t),onPointerLeave:()=>o(void 0),width:k,x:u+s-C/2+(k+n)*b,y:d+l},r)})},$t=(e,t)=>{const r=K(re(e,([,,,e])=>e),(e,t)=>e-t);let n=T;return ee(r,(e,t)=>{t>0&&e>r[t-1]&&(n=S(n,e-r[t-1]))}),n==T?t:n},vt=JSON.stringify,Mt="tinybase_uirc",Tt=p[Mt]?p[Mt]:p[Mt]=ce([]),Nt=(e,t)=>{const r=((e,t)=>{const r=xe(Tt);return O(e)?r[2*t]:X(e)?((e,t)=>W(e,e=>e[t]))(r[2*t+1],e):e})(e,t);return O(e)||X(e)?r:e},Ft=[],Vt=[{},[],[Ft,void 0,Ft],{},void 0,void 0,!1,0],wt=(e,t)=>e===t||(Pe(e)||D(e))&&vt(e)===vt(t),Ot=[(e,t)=>Re(e,t,wt),J,([e,t,r],[n,s,i])=>t===s&&J(e,n)&&J(r,i),(e,t)=>Re(e,t,Z),Z,wt],At=(e,t)=>e===t,Ut=(e,t,...r)=>{const n=e?.["add"+t+"Listener"]?.(...r);return()=>e?.delListener?.(n)},qt=(e,t,r,n=Ft)=>{const s=he(Vt[r]),l=de(()=>{const i=t?.["get"+e]?.(...n)??Vt[r];return(Ot[r]??At)(i,s.current)?s.current:s.current=i},[t,r,e,...n]),o=de(r=>Ut(t,i+e,...n,r),[t,r,e,...n]);return ge(o,l,l)},zt=(e,t,r,n=Ft,s=Ft,...i)=>ye(()=>Ut(t,e,...s,r,...i),[t,e,...s,...n,...i]),Pt=e=>Nt(e,0),Bt=(e,t,r,n,s,i,l)=>zt(d,Pt(l),n,s,[e,t,r],i),Et=e=>Nt(e,4),Rt=(e,t,r,n,s,i)=>zt(c+d,Et(i),n,s,[e,t,r]),Wt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:s,yCellId:l})=>{const[,o]=fe(),a=Oe(),{getSeriesId:d,queries:x,queriesOrQueriesId:m,queryId:y,releaseSeriesId:p,sourceType:h,store:f,storeOrStoreId:g,tableId:S}=a,[b]=fe(d),C=de(()=>o([]),[o]),k=((e,t,r,n,s,i)=>((e,t,r,n,s,i)=>qt(u,Pt(i),1,[e,t,r,n,s]))(...Pe(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,r,n,s,i]))(S??i,n??s,e,r,t,g),I=((e,t,r,n=0,s,i)=>qt(c+u,Et(i),1,[e,t,r,n,s]))(y??i,n??s,e,r,t,m),$=h==Ve.Table?k:I,v=w(l)?[]:ct($,e=>ut(e,Lt(h,f,x,S,y,e,s),Lt(h,f,x,S,y,e,l)));return Bt(h==Ve.Table?S??null:null,null,s,C,[C],!1,g),Bt(h==Ve.Table?S??null:null,null,l??null,C,[C],!1,g),Rt(h==Ve.Query?y??null:null,null,s,C,[C],m),Rt(h==Ve.Query?y??null:null,null,l??null,C,[C],m),ye(()=>()=>p(b),[p,b]),[b,v]},Xt=(e,t)=>w(t)?e:`${e} ${t}`,Lt=(e,t,r,n,s,i,l)=>e==Ve.Table?t?.getCell(n,i,l):r?.getResultCell(s,i,l),Qt=t=>{const{barSeriesCount:r,bounds:n,getBarSeriesIndex:s,layout:[,,[,,i]],plotFrame:l,plotSize:o,registerBarSeries:a,releaseBarSeries:c,setSeriesSummary:u,setTooltipPoint:d,timestampUnit:x,xScale:m,xValues:y}=Oe(),{className:p,label:h,xCellId:f,yCellId:g}=t,[S,b]=Wt(t),C=s(S),[,,k,I]=n,$=m==Se?void 0:dt(ve,re(y,(e,t)=>[""+t,e,0]),n,o,y,m,x),v=dt($e,b,n,o,y,m,x,f,h??g);return ye(()=>{u(S,pt($e,b,f,g,h))}),ye(()=>(a(S),()=>c(S)),[a,c,S]),e("g",{className:Xt("bar-series",p),fill:Me,children:e(It,{barGap:i,barSeriesCount:r,barSeriesIndex:C,fullBarWidth:w($)?void 0:$t($,o[0]),plotFrame:l,points:v,setTooltipPoint:d,yMax:I,yMin:k})})};Qt[Te]=!0;const Dt=e=>[w(e.tableId)?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},{descending:e.descending,limit:e.limit,offset:e.offset,sortCellId:e.sortCellId,xCellId:e.xCellId,yCellId:e.yCellId}],Gt=/^\d+$/,Ht=[1e3,1e3],_t=[.5,.5,.25,3.5,4,1,1],jt=([e,t],[,,,r,n,s,i])=>{const l=s+g(S(n,e/2-2*s),0),o=s+i/2,a=s+i/2,c=g(t-o-g(S(r,t/2-o-s),0)-s,0);return[l,o,g(e-l-a,0),c]},Yt=e=>re(_t,t=>t*e),Jt=e=>{const t=parseFloat(e?.fontSize??i);return Yt(F(t)?t:12)},Zt=({width:e,height:t})=>[I(e)||Ht[0],I(t)||Ht[1]],Kt=({className:r,points:n,tickFormatter:s,xTicks:i,xMin:l,xMax:o,xTitle:a,plotFrame:c,tickSize:u,tickGap:d,axisHeight:x,fontSize:m,timestampUnit:y,xScale:p})=>{const[h,f,S,b]=c,C=g(x-u-d-2*m,0);return t("g",{className:w(r)?"x":"x "+r,dominantBaseline:"hanging",textAnchor:"middle",children:[e("path",{className:"line",d:`M${h},${f+b}h${S}`,fill:"none",stroke:Me,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",children:!ne(i)&&L(l)&&L(o)?re(i,t=>{const r=mt(t,l,o,S);return e("text",{x:h+r,y:f+b+u+d,children:er(t,s,p,ke,i)},t)}):re(n,([t,r,,n])=>e("text",{x:h+n,y:f+b+u+d,children:er(r,s,p,y)},t))}),e("text",{className:"title",x:h+S/2,y:f+b+u+d+m+C,children:a})]})},er=(e,t,r,n,s=[])=>{const l=r==Ce?yt(e,n):void 0;return L(l)?t?.(A(l),l)??((e,t)=>{const r=A(e),n=U(r)+i,s=ot(q(r)+1),l=ot(z(r)),o=ot(P(r)),a=ot(B(r)),c=ot(E(r)),u=`${n}-${s}-${l}`;let d=T;return ee(t,(e,r)=>{r>0&&(d=S(d,e-t[r-1]))}),d=d==T?0==P(r)&&0==B(r)&&0==E(r)?De:0==E(r)?Qe:1e3:d,d<6e4?`${u} ${o}:${a}:${c}`:d<De?`${u} ${o}:${a}`:d<Ge?u:d<He?`${n}-${s}`:n})(l,s):t?.(e,void 0)??f(e)},tr=({className:r,tickFormatter:n,yTicks:s,yMin:i,yMax:l,yTitle:o,plotFrame:a,tickSize:c,tickGap:u,axisWidth:d})=>{const[x,m,,y]=a;return w(i)||w(l)?null:t("g",{className:w(r)?"y":"y "+r,children:[e("path",{className:"line",d:`M${x},${m}v${y}`,fill:"none",stroke:Me,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",dominantBaseline:"middle",textAnchor:"end",children:re(s,t=>{const r=y-mt(t,i,l,y);return e("text",{x:x-c-u,y:m+r,children:n?.(t)??f(t)},t)})}),e("text",{className:"title",dominantBaseline:"text-before-edge",textAnchor:"middle",transform:`translate(${x-d} ${a[1]+a[3]/2}) rotate(-90)`,children:o})]})},rr=({xAxis:r,yAxis:n,points:s,xTicks:i,yTicks:l,bounds:[o,a,c,u],titles:[d,x],xAxisHeight:m,yAxisWidth:y,fontSize:p,timestampUnit:h,xScale:f,...g})=>t("g",{className:"axes",fill:Me,fillOpacity:.75,children:[e(tr,{...g,className:n?.className,tickFormatter:n?.tickFormatter,yTicks:l,yMin:c,yMax:u,yTitle:x,axisWidth:y}),e(Kt,{...g,className:r?.className,points:s,tickFormatter:r?.tickFormatter,xTicks:i,xMin:o,xMax:a,xTitle:d,axisHeight:m,fontSize:p,timestampUnit:h,xScale:f})]}),nr=({points:r,xTicks:n,yTicks:s,bounds:[i,l,o,a],plotFrame:c,tickSize:u})=>{const[d,x,m,y]=c;return t("g",{className:"grid",stroke:Me,strokeOpacity:.75,strokeWidth:.5,children:[w(o)||w(a)?null:e("path",{className:"y",d:te(re(se(s,e=>0!=mt(e,o,a,y)),e=>`M${d-u},${x+y-mt(e,o,a,y)}h${m+u}`)," ")}),!ne(n)&&L(i)&&L(l)?e("path",{className:"x",d:te(re(se(n,e=>0!=mt(e,i,l,m)),e=>`M${d+mt(e,i,l,m)},${x}v${y+u}`)," ")}):e("path",{className:"x",d:te(re(se(r,([,,,e])=>0!=e),([,,,e])=>`M${d+e},${x}v${y+u}`)," ")})]})},sr="#fff",ir=({point:n,width:s,height:i,plotFrame:l,titles:[o,a]})=>{if(w(n))return null;const[,c,u,d,x,m,y]=n,[p,h]=l,b=d+12+160>s?d-12-160:d+12,C=g(S(x-12-60,i-60),0);return t(r,{children:[e("path",{className:"tooltip-lines",pointerEvents:"none",stroke:Me,strokeOpacity:.25,strokeWidth:1,d:`M${p+d},${h}v${i}M${p},${h+x}h${s}`}),t("g",{className:"tooltip",transform:`translate(${p+b} ${h+C})`,fontFamily:"sans-serif",fontWeight:600,pointerEvents:"none",children:[e("rect",{fill:"#111827",fillOpacity:.9,width:160,height:60,rx:6}),t("text",{fill:sr,x:12,y:22,children:[m??o,": ",f(c)]}),t("text",{fill:sr,x:12,y:46,children:[y??a,": ",u]})]})]})},lr={bounds:[],continuousX:!1,xValues:[]},or=({children:r,className:n,initialSummary:s,queries:l,queryId:o,store:a,tableId:c})=>{const u=(()=>{const e=he(null),t=he([Ht,Yt(12)]),[r,n]=fe([Ht,Yt(12)]);return ye(()=>{const r=e.current;if(null===r)return;const s=new ResizeObserver(([e])=>(({contentRect:e})=>{const s=r.ownerDocument.defaultView?.getComputedStyle(r),i=[Zt(e),Jt(s)];(([e,t],[r,n])=>J(e,r)&&J(t,n))(t.current,i)||(t.current=i,n(i))})(e));return s.observe(r),()=>s.disconnect()},[]),[e,...r]})(),[d,x,m]=u,[y,p,,h,f,,b]=m,C=jt(x,m),k=(([,e,t])=>{const[,,r,n]=jt(e,t);return[r,n]})(u),I=(([,,e])=>e[6])(u),v=Pt(a),M=Et(l),N=w(c)?w(o)?Ve.None:Ve.Query:Ve.Table,A=w(s)?{}:{0:s},U=w(s)?lr:ht(Ee(A)),q=ur(A,"xCellId"),z=ur(A,"yCellId"),P=he(A),B=he(U.bounds),E=he(U),R=he(q),W=he(z),Q=he((()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??i+t++,t=>{Gt.test(t)&&G(e)<1e3&&ie(e,t)}]})()),[D,H]=fe(U),[Z,K]=fe(q),[te,le]=fe(z),oe=he([]),[ae,ce]=fe([]),[ue,xe]=fe(),[me,ge,Me]=pr(r),Te=D.xValues,Ne=ge?.scale==Ce&&ge.timestampUnit==Ie?Ie:ke,Fe=((e,{continuousX:t,xValues:r},n)=>e==Se||e==be||e==Ce?e:t||ne(r)&&n?be:!ne(r)&&Y(r,e=>X(e)&&F(yt(e,ke)))?Ce:Se)(ge?.scale,D,F(ge?.min)||F(ge?.max)||!w(ge?.ticks)),Oe=Fe!=Se,Ae=dr(D.bounds,Te,Fe,Ne,ge,Me),[Ue,qe]=Ae,ze=Oe||ne(ae)?ve:$e,Pe=Oe&&!w(ge?.ticks)?yr(ge.ticks,Fe,Ne):Fe==Ce&&L(Ue)&&L(qe)&&Ue!=qe?((e,t,r,n,s)=>{const i=S(e,t),l=g(e,t);let o=[i,l],a=-1/0;return ee(tt,(e,t)=>{const c=[];for(let t=st(i,e),r=0;t<=l&&r<1e3;t=it(t,e),r++)ie(c,t);const u=c[G(c)-1];(!F(u)||u<l)&&ie(c,it(u??st(i,e),e));const d=G(c),x=c[0],m=c[d-1],y=l-i,p=g(r,2),h=s/(d-1),f=d<2?-1/0:.25*(1-t/g(G(tt)-1,1))+.2*(1-($(i-x)+$(m-l))/y)+.5*(2-g(d/p,p/d))+.05*(h<1.2*n?-1/0:S(h/n,1));f>a&&(o=c,a=f)}),o})(Ue,qe,rt(ge?.tickCount),I,k[0]):((e,[t,r],[n],s,i)=>e==ve&&L(t)&&L(r)&&t!=r?nt(t,r,rt(i),s,n,V(t)&&V(r)):[])(ze,Ae,k,I,ge?.tickCount),Be=w(Me?.ticks)?(([,,e,t],[,r],n,s)=>O(e)||O(t)?[]:e==t?[e]:nt(e,t,rt(s),n,r,V(e)&&V(t)))(Ae,k,I,Me?.tickCount):yr(Me.ticks),Re=(([e,t,r,n],s,i)=>[ne(s)?e:L(e)?S(e,s[0]):s[0],ne(s)?t:L(t)?g(t,s[G(s)-1]):s[G(s)-1],ne(i)?r:S(r??T,i[0]),ne(i)?n:g(n??-1/0,i[G(i)-1])])(Ae,Pe,Be),We=dt(ze,re(Te,(e,t)=>[""+t,e,0]),Re,k,Te,Fe,Ne),Xe=de(e=>{const t=ht(Ee(e)),r=t.bounds;ar(B.current,r)&&J(E.current.xValues,t.xValues)||(B.current=r,E.current=t,H(t))},[]),Le=de(e=>{const t=ur(e,"xCellId"),r=ur(e,"yCellId");R.current!=t&&(R.current=t,K(t)),W.current!=r&&(W.current=r,le(r))},[]),Qe=de(e=>{const t=B.current,[r,n,s,i]=t,{xMin:l,xMax:o,yMin:a,yMax:c}=e,u=[L(r)&&L(l)?S(r,l):r??l,L(n)&&L(o)?g(n,o):n??o,w(s)||w(a)?s??a:S(s,a),w(i)||w(c)?i??c:g(i,c)];ar(t,u)||(B.current=u,E.current={bounds:u,continuousX:E.current.continuousX,xValues:E.current.xValues},H(E.current))},[]),De=de((e,t)=>{const r=P.current,n=r[e];if(w(t)){if(w(n))return;return delete r[e],Le(r),void Xe(r)}r[e]=t,Le(r),(w(n)?Y(t.xValues,e=>_(E.current.xValues,e))&&t.continuousX==E.current.continuousX:!cr(n,B.current)&&n.continuousX==t.continuousX&&J(n.xValues,t.xValues))?Qe(t):Xe(r)},[Qe,Xe,Le]),[Ge,He]=Q.current,_e=de(()=>Ge(1),[Ge]),je=de(e=>{De(e,void 0),He(e)},[He,De]),Ye=de(e=>{if(!_(oe.current,e)){const t=[...oe.current];ie(t,e),oe.current=t,ce(t)}},[]),Je=de(e=>{if(_(oe.current,e)){const t=se(oe.current,t=>t!=e);oe.current=t,ce(t)}},[]),Ze=de(e=>j(oe.current,e),[]),Ke=pe(()=>({bounds:Re,barSeriesCount:G(ae),domainState:D,getBarSeriesIndex:Ze,getSeriesId:_e,layout:u,plotFrame:C,plotSize:k,queries:M,queriesOrQueriesId:l,queryId:o,registerBarSeries:Ye,releaseBarSeries:Je,releaseSeriesId:je,setSeriesSummary:De,setTooltipPoint:xe,sourceType:N,store:v,storeOrStoreId:a,tableId:c,timestampUnit:Ne,xTicks:Pe,xScale:Fe,xValues:Te,yTicks:Be}),[ae,D,Ze,_e,u,C,k,l,M,o,Ye,Je,je,De,N,a,v,c,Ne,Re,Pe,Fe,Te,Be]);return e(we.Provider,{value:Ke,children:t("svg",{className:n,preserveAspectRatio:"none",ref:d,viewBox:`0 0 ${x[0]} ${x[1]}`,children:[e(nr,{bounds:Re,points:We,plotFrame:C,tickSize:y,xTicks:Pe,yTicks:Be}),e(rr,{bounds:Re,fontSize:b,points:We,plotFrame:C,tickGap:p,tickSize:y,titles:[ge?.title??Z,Me?.title??te],timestampUnit:Ne,xAxis:ge,xAxisHeight:h,xScale:Fe,xTicks:Pe,yAxis:Me,yAxisWidth:f,yTicks:Be}),e("g",{className:"plot",children:me}),e(ir,{height:k[1],point:ue,plotFrame:C,titles:[ge?.title??Z,Me?.title??te],width:k[0]})]})})},ar=(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3],cr=({xMin:e,xMax:t,yMin:r,yMax:n},[s,i,l,o])=>e===s||t===i||r===l||n===o,ur=(e,t)=>{const r=[];return ee(Ee(e),e=>{const n="yCellId"==t?e.yLabel??e.yCellId:e.xCellId;w(n)||_(r,n)||ie(r,n)}),ne(r)?"":te(r," & ")},dr=([e,t,r,n],s,i,l,o,a)=>{const[c,u]=(([e,t],r,n,s)=>{const i=[];return n==be?[L(e)?e:void 0,L(t)?t:void 0]:n==Ce?(ee(r,e=>{const t=yt(e,s);F(t)&&ie(i,t)}),ne(i)?[]:gt(i)):[e,t]})([e,t],s,i,l);return[i==Se?c:xr(o?.min,c,i,l),i==Se?u:xr(o?.max,u,i,l),mr(a?.min,r),mr(a?.max,n)]},xr=(e,t,r,n)=>{const s=r==Ce?yt(e,n):e;return F(s)?s:t},mr=(e,t)=>F(e)?e:t,yr=(e,t=be,r=ke)=>K(se(re([...e],e=>t==Ce?yt(e,r):e),e=>F(e)),(e,t)=>e-t),pr=e=>{const t=[];let r,n;return le.forEach(e,e=>{if(ue(e))if(e.type===oe){const[s,i,l]=pr(e.props.children);ee(s,e=>ie(t,e)),r??=i,n??=l}else s=e.type,Q(s)&&!0===s[Te]?ie(t,e):w(r)&&(e=>Q(e)&&!0===e[Ne])(e.type)?r=e.props:w(n)&&(e=>Q(e)&&!0===e[Fe])(e.type)&&(n=e.props);var s}),[t,r,n]},hr=(e,{descending:t,limit:r,offset:n,queries:s,queryId:l,sortCellId:o,store:a,tableId:c,xCellId:u,yCellId:d})=>{const x=Pt(a),m=Et(s);return pe(()=>{const s=w(c)?ct(m?.getResultSortedRowIds(l??i,o??u,t,n,r)??[],e=>ut(e,m?.getResultCell(l??i,e,u),m?.getResultCell(l??i,e,d))):ct(x?.getSortedRowIds(c,o??u,t,n,r)??[],e=>ut(e,x?.getCell(c,e,u),x?.getCell(c,e,d)));return pt(e,s,u,d)},[t,e,r,n,m,l,o,x,c,u,d])},fr=({children:r,...n})=>{const s=hr($e,n),[i,l]=Dt(n);return t(or,{...i,initialSummary:s,children:[e(Qt,{...l}),r]})},gr=({plotFrame:n,points:s,setTooltipPoint:i})=>{const[l,o,,a]=n;return t(r,{children:[e("path",{className:"area",d:br(s,l,o,a),fill:Me,fillOpacity:.25,stroke:"none"}),e("path",{className:"line",d:Sr(s,l,o),fill:"none",stroke:Me,strokeOpacity:.75,strokeWidth:2}),e("g",{className:"points",fill:Me,children:re(s,t=>{const[r,,,n,s]=t;return e("circle",{cx:l+n,cy:o+s,onPointerEnter:()=>i(t),onPointerLeave:()=>i(void 0),r:5},r)})})]})},Sr=(e,t,r)=>te(re(e,([,,,e,n],s)=>`${0==s?"M":"L"}${t+e},${r+n}`)," "),br=(e,t,r,n)=>ne(e)?"":`${Sr(e,t,r)} L${t+e[G(e)-1][3]},${r+n} L${t+e[0][3]},${r+n} Z`,Cr=t=>{const{barSeriesCount:r,bounds:n,plotFrame:s,plotSize:i,setSeriesSummary:l,setTooltipPoint:o,timestampUnit:a,xScale:c,xValues:u}=Oe(),{className:d,label:x,xCellId:m,yCellId:y}=t,[p,h]=Wt(t),f=dt(c==Se&&r?$e:ve,h,n,i,u,c,a,m,x??y);return ye(()=>{l(p,pt(ve,h,m,y,x))}),e("g",{className:Xt("line-series",d),children:e(gr,{plotFrame:s,points:f,setTooltipPoint:o})})};Cr[Te]=!0;const kr=({children:r,...n})=>{const s=hr(ve,n),[i,l]=Dt(n);return t(or,{...i,initialSummary:s,children:[e(Cr,{...l}),r]})},Ir=()=>null;Ir[Ne]=!0;const $r=()=>null;$r[Fe]=!0;export{fr as BarChart,Qt as BarSeries,or as CartesianChart,kr as LineChart,Cr as LineSeries,Ir as XAxis,$r as YAxis};
Binary file
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"react";const l=e=>typeof e,s=l(""),i=l(0),o="Result",a="SortedRowIds",u="Cell",c=Math,d=e=>(t,r,n)=>e(t)?n?.():r(t),x=globalThis,y=String,m=c.max,p=c.min,h=c.ceil,f=c.floor,b=c.pow,I=c.round,g=c.abs,S=c.log10,C=1/0,M=Number.EPSILON,k=isFinite,N=Number.isInteger,$=e=>null==e,T=e=>void 0===e,v=d($),F=d(T),q=e=>l(e)==s,O=e=>l(e)==i,V=e=>Array.isArray(e),w=e=>e.length,{Children:z,Fragment:P,PureComponent:E,createContext:R,isValidElement:X,useCallback:A,useContext:L,useEffect:B,useLayoutEffect:W,useMemo:Q,useRef:G,useState:j,useSyncExternalStore:H}=n;var _=(e=>(e[e.None=0]="None",e[e.Query=1]="Query",e[e.Table=2]="Table",e))(_||{});const D="_tinybaseChartSeries",J=R(null),Z=()=>{const e=L(J);if(null==e)throw Error("Series components must be used inside a CartesianChart");return e},K=(e,t)=>se(Array(e).fill(0),(e,r)=>t(r)),U=(e,t)=>e.includes(t),Y=(e,t)=>e.indexOf(t),ee=(e,t)=>e.every(t),te=(e,t)=>w(e)===w(t)&&ee(e,(e,r)=>t[r]===e),re=(e,t)=>V(e)&&V(t)?te(e,t):e===t,ne=(e,t)=>e.forEach(t),le=(e,t="")=>e.join(t),se=(e,t)=>e.map(t),ie=e=>0==w(e),oe=(e,t)=>e.filter(t),ae=(e,...t)=>e.push(...t),ue=e=>e?.size??0,ce=[1,5,2,2.5,4,3],de=(e,t,r,n,l,s)=>{let i=[e,t],o=-2;const a=t-e;for(let u=1;u<C;u++)for(const c of ce){const d=1-Y(ce,c)/m(w(ce)-1,1)-u+1;if(.25*d+.2+.5+.05<o)return i;for(let x=2;x<C;x++){const y=x>=r?2-(x-1)/(r-1):1;if(.25*d+.2+.5*y+.05<o)break;for(let k=h(S(a/(x+1)/u/c));k<C;k++){const a=u*c*b(10,k);if(.25*d+.2*(a*(x-1)<=t-e?1:1-b((a*(x-1)-(t-e))/2,2)/b(.1*(t-e),2))+.5*y+.05<o)break;const S=f(t/a)*u-(x-1)*u,C=h(e/a)*u;S<=C&&ne(K(C-S+1,e=>S+e),d=>{const y=d*(a/u),h=y+a*(x-1),S=(x-1)/(h-y),C=(r-1)/(m(h,t)-p(e,y)),k=l/(x-1),N=.25*(1-Y(ce,c)/m(w(ce)-1,1)-u+(g(y/a-I(y/a))<100*M&&y<=0&&h>=0?1:0))+.2*(1-(b(t-h,2)+b(e-y,2))/(2*b(.1*(t-e),2)))+.5*(2-m(S/C,C/S))+.05*(k<1.2*n?-1/0:p(k,1))+(s&&(g(a-I(a))>100*M||g(y-I(y))>100*M)?-1:0);N>o&&(i=K(f((h-y)/a+.5)+1,e=>I(1e6*(y+e*a))/1e6),o=N)})}}}return i},xe=(e,t)=>oe(se(e,t),e=>!T(e)),ye=(e,t,r)=>{const n=Me(t),l=ke(r);return T(n)||T(l)?void 0:[e,n,l]},me=(e,t,[r,n,l,s],[i,o],a,u,c)=>{const d="line"==e&&ie(oe(t,([,e])=>!O(e))),x=d?[r,n]:[0,0],y=[l??0,s??0],m=new Map;return ne(null==a||ie(a)?se(t,([,e])=>e):a,e=>{m.has(e)||m.set(e,ue(m))}),se(t,([t,r,n])=>[t,r,n,pe(r,d,x,m,i,e),he(n,y,o),u,c])},pe=(e,t,[r,n],l,s,i)=>t?fe(e,r,n,s):"bar"==i?s*((l.get(e)??0)+.5)/ue(l):fe(l.get(e)??0,0,ue(l)-1,s),he=(e,[t,r],n)=>n-fe(e,t,r,n),fe=(e,t,r,n)=>t==r?n/2:Ce(n*(e-t)/(r-t)),be=(e,t,r,n,l)=>{const[s,i,o,a]=((e,t)=>{if(ie(t))return[];const[r,n]=ge(t,e);if(ie(oe(t,([,e])=>!O(e)))){const[e,l]=Se(se(t,([,e])=>e));return[e,l,r,n]}return[t[0]?.[1],t[w(t)-1]?.[1],r,n]})(e,t),u=[],c="line"==e&&ie(oe(t,([,e])=>!O(e)));return ne(t,([,e])=>{U(u,e)||ae(u,e)}),{continuousX:c,xCellId:r,xMin:s,xMax:i,yMin:o,yMax:a,yCellId:n,yLabel:l,xValues:u}},Ie=e=>{const t=[],r=[],n=[],l=[],s=[];let i,o,a=!0;return ne(e,e=>{a&&=e.continuousX,ne(e.xValues,e=>{U(t,e)||ae(t,e)}),O(e.xMin)&&O(e.xMax)?(r.push(e.xMin),n.push(e.xMax)):(i??=e.xMin,o=e.xMax??o),T(e.yMin)||l.push(e.yMin),T(e.yMax)||s.push(e.yMax)}),{bounds:[ie(r)?i:p(...r),ie(n)?o:m(...n),ie(l)?void 0:p(...l),ie(s)?void 0:m(...s)],continuousX:!ie(e)&&a,xValues:t}},ge=(e,t="bar")=>Se([..."bar"==t?[0]:[],...se(e,([,,e])=>e)]),Se=e=>{const t=p(...e);return t==C?[0,0]:[t,m(...e)]},Ce=e=>I(1e6*e)/1e6,Me=e=>O(e)?k(e)?e:void 0:q(e)||!0===e||!1===e?e:void 0,ke=e=>O(e)&&k(e)?e:void 0,Ne="currentColor",$e=({points:t,plotFrame:r,barGap:n,barSeriesCount:l,barSeriesIndex:s,setTooltipPoint:i,yMin:o=0,yMax:a=0})=>{const[u,c,d,x]=r,y=x-fe(0,o,a,x),h=w(t),f=ie(t)?0:d/h,b=m(l,1),I=m(s,0),S=m(f-n,0),C=m((S-n*(b-1))/b,0);return se(t,t=>{const[r,,,l,s]=t,o=p(s,y);return e("rect",{className:"bar",height:g(y-s),onPointerEnter:()=>i(t),onPointerLeave:()=>i(void 0),width:C,x:u+l-S/2+(C+n)*I,y:c+o},r)})},Te=Object,ve=e=>Te.getPrototypeOf(e),Fe=Te.entries,qe=e=>!$(e)&&v(ve(e),e=>e==Te.prototype||$(ve(e)),()=>!0),Oe=Te.keys,Ve=e=>Te.values(e),we=(e,t,r=(e,t)=>e===t)=>{const n=Fe(e);return w(n)===w(Oe(t))&&ee(n,([e,n])=>qe(n)?!!qe(t[e])&&we(t[e],n,r):r(n,t[e]))},ze=JSON.stringify,Pe="tinybase_uirc",Ee=x[Pe]?x[Pe]:x[Pe]=R([]),Re=(e,t)=>{const r=((e,t)=>{const r=L(Ee);return T(e)?r[2*t]:q(e)?((e,t)=>F(e,e=>e[t]))(r[2*t+1],e):e})(e,t);return T(e)||q(e)?r:e},Xe=[],Ae=[{},[],[Xe,void 0,Xe],{},void 0,void 0,!1,0],Le=(e,t)=>e===t||(qe(e)||V(e))&&ze(e)===ze(t),Be=[(e,t)=>we(e,t,Le),te,([e,t,r],[n,l,s])=>t===l&&te(e,n)&&te(r,s),(e,t)=>we(e,t,re),re,Le],We=(e,t)=>e===t,Qe=(e,t,...r)=>{const n=e?.["add"+t+"Listener"]?.(...r);return()=>e?.delListener?.(n)},Ge=(e,t,r,n=Xe)=>{const l=G(Ae[r]),s=A(()=>{const s=t?.["get"+e]?.(...n)??Ae[r];return(Be[r]??We)(s,l.current)?l.current:l.current=s},[t,r,e,...n]),i=A(r=>Qe(t,""+e,...n,r),[t,r,e,...n]);return H(i,s,s)},je=(e,t,r,n=Xe,l=Xe,...s)=>W(()=>Qe(t,e,...l,r,...s),[t,e,...l,...n,...s]),He=e=>Re(e,0),_e=(e,t,r,n,l,s,i)=>je(u,He(i),n,l,[e,t,r],s),De=e=>Re(e,4),Je=(e,t,r,n,l,s)=>je(o+u,De(s),n,l,[e,t,r]),Ze=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>{const[,i]=j(),u=Z(),{getSeriesId:c,queries:d,queriesOrQueriesId:x,queryId:y,releaseSeriesId:m,sourceType:p,store:h,storeOrStoreId:f,tableId:b}=u,[I]=j(c),g=A(()=>i([]),[i]),S=((e,t,r,n,l,s)=>((e,t,r,n,l,s)=>Ge(a,He(s),1,[e,t,r,n,l]))(...qe(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,r,n,l,s]))(b??"",n??l,e,r,t,f),C=((e,t,r,n=0,l,s)=>Ge(o+a,De(s),1,[e,t,r,n,l]))(y??"",n??l,e,r,t,x),M=p==_.Table?S:C,k=null==s?[]:xe(M,e=>ye(e,Ue(p,h,d,b,y,e,l),Ue(p,h,d,b,y,e,s)));return _e(p==_.Table?b??null:null,null,l,g,[g],!1,f),_e(p==_.Table?b??null:null,null,s??null,g,[g],!1,f),Je(p==_.Query?y??null:null,null,l,g,[g],x),Je(p==_.Query?y??null:null,null,s??null,g,[g],x),W(()=>()=>m(I),[m,I]),[I,k]},Ke=(e,t)=>null==t?e:`${e} ${t}`,Ue=(e,t,r,n,l,s,i)=>e==_.Table?t?.getCell(n,s,i):r?.getResultCell(l,s,i),Ye=t=>{const{barSeriesCount:r,bounds:n,getBarSeriesIndex:l,layout:[,,[,,s]],plotFrame:i,plotSize:o,registerBarSeries:a,releaseBarSeries:u,setSeriesSummary:c,setTooltipPoint:d,xValues:x}=Z(),{className:y,label:m,xCellId:p,yCellId:h}=t,[f,b]=Ze(t),I=l(f),[,,g,S]=n,C=me("bar",b,n,o,x,p,m??h);return W(()=>{c(f,be("bar",b,p,h,m))}),W(()=>(a(f),()=>u(f)),[a,u,f]),e("g",{className:Ke("bar-series",y),fill:Ne,children:e($e,{barGap:s,barSeriesCount:r,barSeriesIndex:I,plotFrame:i,points:C,setTooltipPoint:d,yMax:S,yMin:g})})};Ye[D]=!0;const et=/^\d+$/,tt=[1e3,1e3],rt=[.5,.5,.25,3.5,4,1,1],nt=([e,t],[,,,r,n,l,s])=>{const i=l+m(p(n,e/2-2*l),0),o=l+s/2,a=l+s/2,u=m(t-o-m(p(r,t/2-o-l),0)-l,0);return[i,o,m(e-i-a,0),u]},lt=e=>se(rt,t=>t*e),st=e=>{const t=parseFloat(e?.fontSize??"");return lt(k(t)?t:12)},it=({width:e,height:t})=>[I(e)||tt[0],I(t)||tt[1]],ot=({points:r,xTicks:n,xMin:l,xMax:s,xTitle:i,plotFrame:o,tickSize:a,tickGap:u,axisHeight:c,fontSize:d})=>{const[x,p,h,f]=o,b=m(c-a-u-2*d,0);return t("g",{className:"x",dominantBaseline:"hanging",textAnchor:"middle",children:[e("path",{className:"line",d:`M${x},${p+f}h${h}`,fill:"none",stroke:Ne,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",children:!ie(n)&&O(l)&&O(s)?se(n,t=>{const r=fe(t,l,s,h);return e("text",{x:x+r,y:p+f+a+u,children:t},t)}):se(r,([t,r,,n])=>e("text",{x:x+n,y:p+f+a+u,children:y(r)},t))}),e("text",{className:"title",x:x+h/2,y:p+f+a+u+d+b,children:i})]})},at=({yTicks:r,yMin:n,yMax:l,yTitle:s,plotFrame:i,tickSize:o,tickGap:a,axisWidth:u})=>{const[c,d,,x]=i;return $(n)||$(l)?null:t("g",{className:"y",children:[e("path",{className:"line",d:`M${c},${d}v${x}`,fill:"none",stroke:Ne,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",dominantBaseline:"middle",textAnchor:"end",children:se(r,t=>{const r=x-fe(t,n,l,x);return e("text",{x:c-o-a,y:d+r,children:t},t)})}),e("text",{className:"title",dominantBaseline:"text-before-edge",textAnchor:"middle",transform:`translate(${c-u} ${i[1]+i[3]/2}) rotate(-90)`,children:s})]})},ut=({points:r,xTicks:n,yTicks:l,bounds:[s,i,o,a],titles:[u,c],xAxisHeight:d,yAxisWidth:x,fontSize:y,...m})=>t("g",{className:"axes",fill:Ne,fillOpacity:.75,children:[e(at,{...m,yTicks:l,yMin:o,yMax:a,yTitle:c,axisWidth:x}),e(ot,{...m,points:r,xTicks:n,xMin:s,xMax:i,xTitle:u,axisHeight:d,fontSize:y})]}),ct=({points:r,xTicks:n,yTicks:l,bounds:[s,i,o,a],plotFrame:u,tickSize:c})=>{const[d,x,y,m]=u;return t("g",{className:"grid",stroke:Ne,strokeOpacity:.75,strokeWidth:.5,children:[$(o)||$(a)?null:e("path",{className:"y",d:le(se(oe(l,e=>0!=fe(e,o,a,m)),e=>`M${d-c},${x+m-fe(e,o,a,m)}h${y+c}`)," ")}),!ie(n)&&O(s)&&O(i)?e("path",{className:"x",d:le(se(oe(n,e=>0!=fe(e,s,i,y)),e=>`M${d+fe(e,s,i,y)},${x}v${m+c}`)," ")}):e("path",{className:"x",d:le(se(oe(r,([,,,e])=>0!=e),([,,,e])=>`M${d+e},${x}v${m+c}`)," ")})]})},dt="#fff",xt=({point:n,width:l,height:s,plotFrame:i,titles:[o,a]})=>{if($(n))return null;const[,u,c,d,x,h,f]=n,[b,I]=i,g=d+12+160>l?d-12-160:d+12,S=m(p(x-12-60,s-60),0);return t(r,{children:[e("path",{className:"tooltip-lines",pointerEvents:"none",stroke:Ne,strokeOpacity:.25,strokeWidth:1,d:`M${b+d},${I}v${s}M${b},${I+x}h${l}`}),t("g",{className:"tooltip",transform:`translate(${b+g} ${I+S})`,fontFamily:"sans-serif",fontWeight:600,pointerEvents:"none",children:[e("rect",{fill:"#111827",fillOpacity:.9,width:160,height:60,rx:6}),t("text",{fill:dt,x:12,y:22,children:[h??o,": ",y(u)]}),t("text",{fill:dt,x:12,y:46,children:[f??a,": ",c]})]})]})},yt={bounds:[],continuousX:!1,xValues:[]},mt=({children:r,className:n,initialSummary:l,queries:s,queryId:i,store:o,tableId:a})=>{const u=(()=>{const e=G(null),t=G([tt,lt(12)]),[r,n]=j([tt,lt(12)]);return W(()=>{const r=e.current;if(null===r)return;const l=new ResizeObserver(([e])=>(({contentRect:e})=>{const l=r.ownerDocument.defaultView?.getComputedStyle(r),s=[it(e),st(l)];(([e,t],[r,n])=>te(e,r)&&te(t,n))(t.current,s)||(t.current=s,n(s))})(e));return l.observe(r),()=>l.disconnect()},[]),[e,...r]})(),[c,d,x]=u,[y,h,,f,b,,I]=x,g=nt(d,x),S=(([,e,t])=>{const[,,r,n]=nt(e,t);return[r,n]})(u),M=(([,,e])=>e[6])(u),k=He(o),$=De(s),v=null==a?null==i?_.None:_.Query:_.Table,F=null==l?{}:{0:l},q=null==l?yt:Ie(Ve(F)),V=Ct(F,"xCellId"),z=Ct(F,"yCellId"),P=G(F),E=G(q.bounds),R=G(q),X=G(V),L=G(z),B=G((()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??""+t++,t=>{et.test(t)&&w(e)<1e3&&ae(e,t)}]})()),[H,D]=j(q),[Z,K]=j(V),[ee,re]=j(z),ne=G([]),[le,se]=j([]),[ue,ce]=j(),xe=H.xValues,ye=H.bounds,pe=H.continuousX||ie(le)?"line":"bar",he=((e,[t,r],[n],l)=>"line"==e&&O(t)&&O(r)&&t!=r?de(t,r,10,l,n,N(t)&&N(r)):[])(pe,ye,S,M),fe=(([,,e,t],[,r],n)=>T(e)||T(t)?[]:e==t?[e]:de(e,t,10,n,r,N(e)&&N(t)))(ye,S,M),be=(([e,t,r,n],l,s)=>[ie(l)?e:p(e,l[0]),ie(l)?t:m(t,l[w(l)-1]),ie(s)?r:p(r??C,s[0]),ie(s)?n:m(n??-1/0,s[w(s)-1])])(ye,he,fe),ge=me(pe,xe.map((e,t)=>[""+t,e,0]),be,S,xe),Se=A(e=>{const t=Ie(Ve(e)),r=t.bounds;pt(E.current,r)&&te(R.current.xValues,t.xValues)||(E.current=r,R.current=t,D(t))},[]),Ce=A(e=>{const t=Ct(e,"xCellId"),r=Ct(e,"yCellId");X.current!=t&&(X.current=t,K(t)),L.current!=r&&(L.current=r,re(r))},[]),Me=A(e=>{const t=E.current,r=[bt(t[0],e.xMin),It(t[1],e.xMax),gt(t[2],e.yMin),St(t[3],e.yMax)];pt(t,r)||(E.current=r,R.current={bounds:r,continuousX:R.current.continuousX,xValues:R.current.xValues},D(R.current))},[]),ke=A((e,t)=>{const r=P.current,n=r[e];if(null==t){if(null==n)return;return delete r[e],Ce(r),void Se(r)}r[e]=t,Ce(r),(null==n?ft(t.xValues,R.current.xValues)||t.continuousX!=R.current.continuousX:ht(n,E.current)||n.continuousX!=t.continuousX||!te(n.xValues,t.xValues))?Se(r):Me(t)},[Me,Se,Ce]),[Ne,$e]=B.current,Te=A(()=>Ne(1),[Ne]),ve=A(e=>{ke(e,void 0),$e(e)},[$e,ke]),Fe=A(e=>{if(!U(ne.current,e)){const t=[...ne.current];ae(t,e),ne.current=t,se(t)}},[]),qe=A(e=>{if(U(ne.current,e)){const t=oe(ne.current,t=>t!=e);ne.current=t,se(t)}},[]),Oe=A(e=>Y(ne.current,e),[]),we=Q(()=>({bounds:be,barSeriesCount:w(le),domainState:H,getBarSeriesIndex:Oe,getSeriesId:Te,layout:u,plotFrame:g,plotSize:S,queries:$,queriesOrQueriesId:s,queryId:i,registerBarSeries:Fe,releaseBarSeries:qe,releaseSeriesId:ve,setSeriesSummary:ke,setTooltipPoint:ce,sourceType:v,store:k,storeOrStoreId:o,tableId:a,xTicks:he,xValues:xe,yTicks:fe}),[le,H,Oe,Te,u,g,S,s,$,i,Fe,qe,ve,ke,v,o,k,a,be,he,xe,fe]);return e(J.Provider,{value:we,children:t("svg",{className:n,preserveAspectRatio:"none",ref:c,viewBox:`0 0 ${d[0]} ${d[1]}`,children:[e(ct,{bounds:be,points:ge,plotFrame:g,tickSize:y,xTicks:he,yTicks:fe}),e(ut,{bounds:be,fontSize:I,points:ge,plotFrame:g,tickGap:h,tickSize:y,titles:[Z,ee],xAxisHeight:f,xTicks:he,yAxisWidth:b,yTicks:fe}),e("g",{className:"plot",children:Mt(r)}),e(xt,{height:S[1],point:ue,plotFrame:g,titles:[Z,ee],width:S[0]})]})})},pt=(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3],ht=({xMin:e,xMax:t,yMin:r,yMax:n},[l,s,i,o])=>e===l||t===s||r===i||n===o,ft=(e,t)=>{let r=!1;return ne(e,e=>{U(t,e)||(r=!0)}),r},bt=(e,t)=>O(e)&&O(t)?p(e,t):e??t,It=(e,t)=>O(e)&&O(t)?m(e,t):e??t,gt=(e,t)=>null==e||null==t?e??t:p(e,t),St=(e,t)=>null==e||null==t?e??t:m(e,t),Ct=(e,t)=>{const r=[];return ne(Ve(e),e=>{const n="yCellId"==t?e.yLabel??e.yCellId:e.xCellId;null==n||U(r,n)||ae(r,n)}),ie(r)?"":r.join(" & ")},Mt=e=>{const t=[];return z.forEach(e,e=>{var r;X(e)&&(e.type===P?ne(Mt(e.props.children),e=>ae(t,e)):"function"==typeof(r=e.type)&&!0===r[D]&&ae(t,e))}),t},kt=(e,{descending:t,limit:r,offset:n,queries:l,queryId:s,sortCellId:i,store:o,tableId:a,xCellId:u,yCellId:c})=>{const d=He(o),x=De(l);return Q(()=>{const l=null==a?xe(x?.getResultSortedRowIds(s??"",i??u,t,n,r)??[],e=>ye(e,x?.getResultCell(s??"",e,u),x?.getResultCell(s??"",e,c))):xe(d?.getSortedRowIds(a,i??u,t,n,r)??[],e=>ye(e,d?.getCell(a,e,u),d?.getCell(a,e,c)));return be(e,l,u,c)},[t,e,r,n,x,s,i,d,a,u,c])},Nt=t=>{const r=kt("bar",t);return e(mt,{...$t(t),initialSummary:r,children:e(Ye,{...Tt(t)})})},$t=e=>null==e.tableId?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},Tt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s}),vt=({plotFrame:n,points:l,setTooltipPoint:s})=>{const[i,o,,a]=n;return t(r,{children:[e("path",{className:"area",d:qt(l,i,o,a),fill:Ne,fillOpacity:.25,stroke:"none"}),e("path",{className:"line",d:Ft(l,i,o),fill:"none",stroke:Ne,strokeOpacity:.75,strokeWidth:2}),e("g",{className:"points",fill:Ne,children:se(l,t=>{const[r,,,n,l]=t;return e("circle",{cx:i+n,cy:o+l,onPointerEnter:()=>s(t),onPointerLeave:()=>s(void 0),r:5},r)})})]})},Ft=(e,t,r)=>le(se(e,([,,,e,n],l)=>`${0==l?"M":"L"}${t+e},${r+n}`)," "),qt=(e,t,r,n)=>ie(e)?"":`${Ft(e,t,r)} L${t+e[w(e)-1][3]},${r+n} L${t+e[0][3]},${r+n} Z`,Ot=t=>{const{barSeriesCount:r,bounds:n,domainState:l,plotFrame:s,plotSize:i,setSeriesSummary:o,setTooltipPoint:a,xValues:u}=Z(),{className:c,label:d,xCellId:x,yCellId:y}=t,[m,p]=Ze(t),h=me(l.continuousX||0==r?"line":"bar",p,n,i,u,x,d??y);return W(()=>{o(m,be("line",p,x,y,d))}),e("g",{className:Ke("line-series",c),children:e(vt,{plotFrame:s,points:h,setTooltipPoint:a})})};Ot[D]=!0;const Vt=t=>{const r=kt("line",t);return e(mt,{...wt(t),initialSummary:r,children:e(Ot,{...zt(t)})})},wt=e=>null==e.tableId?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},zt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s})=>({descending:e,limit:t,offset:r,sortCellId:n,xCellId:l,yCellId:s});export{Nt as BarChart,Ye as BarSeries,mt as CartesianChart,Vt as LineChart,Ot as LineSeries};
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"react";const s=e=>typeof e,i="",l=s(i),o=s(0),a=s(s),c="Result",u="SortedRowIds",d="Cell",x=Math,m=Date,y=e=>(t,r,n)=>e(t)?n?.():r(t),p=globalThis,h=Number,f=String,g=x.max,S=x.min,b=x.ceil,C=x.floor,k=x.pow,I=x.round,$=x.abs,v=x.log10,M=m.UTC,T=1/0,N=Number.EPSILON,F=isFinite,V=h.isInteger,w=e=>null==e,O=e=>void 0===e,A=e=>O(e)?new m:new m(e),U=e=>e.getUTCFullYear(),q=e=>e.getUTCMonth(),z=e=>e.getUTCDate(),P=e=>e.getUTCHours(),B=e=>e.getUTCMinutes(),E=e=>e.getUTCSeconds(),R=y(w),W=y(O),X=e=>s(e)==l,L=e=>s(e)==o,Q=e=>s(e)==a,D=e=>Array.isArray(e),G=e=>e.length,H=(e,t)=>re(Array(e).fill(0),(e,r)=>t(r)),_=(e,t)=>e.includes(t),j=(e,t)=>e.indexOf(t),Y=(e,t)=>e.every(t),J=(e,t)=>G(e)===G(t)&&Y(e,(e,r)=>t[r]===e),Z=(e,t)=>D(e)&&D(t)?J(e,t):e===t,K=(e,t)=>e.sort(t),ee=(e,t)=>e.forEach(t),te=(e,t="")=>e.join(t),re=(e,t)=>e.map(t),ne=e=>0==G(e),se=(e,t)=>e.filter(t),ie=(e,...t)=>e.push(...t),{Children:le,Fragment:oe,PureComponent:ae,createContext:ce,isValidElement:ue,useCallback:de,useContext:xe,useEffect:me,useLayoutEffect:ye,useMemo:pe,useRef:he,useState:fe,useSyncExternalStore:ge}=n,Se="category",be="linear",Ce="time",ke="millisecond",Ie="second",$e="bar",ve="line",Me="currentColor",Te="_tinybaseChartSeries",Ne="_tinybaseChartXAxis",Fe="_tinybaseChartYAxis";var Ve=(e=>(e[e.None=0]="None",e[e.Query=1]="Query",e[e.Table=2]="Table",e))(Ve||{});const we=ce(null),Oe=()=>{const e=xe(we);return w(e)&&(()=>{throw Error("Series components must be used inside a CartesianChart")})(),e},Ae=e=>e?.size??0,Ue=Object,qe=e=>Ue.getPrototypeOf(e),ze=Ue.entries,Pe=e=>!w(e)&&R(qe(e),e=>e==Ue.prototype||w(qe(e)),()=>!0),Be=Ue.keys,Ee=e=>Ue.values(e),Re=(e,t,r=(e,t)=>e===t)=>{const n=ze(e);return G(n)===G(Be(t))&&Y(n,([e,n])=>Pe(n)?!!Pe(t[e])&&Re(t[e],n,r):r(n,t[e]))},We=Map,Xe=(e,t)=>e?.get(t),Le=[1,5,2,2.5,4,3],Qe=36e5,De=24*Qe,Ge=30*De,He=365*De,_e="minute",je="hour",Ye="day",Je="week",Ze="month",Ke="quarter",et="year",tt=[[Ie,1],[Ie,5],[Ie,10],[Ie,15],[Ie,30],[_e,1],[_e,5],[_e,10],[_e,15],[_e,30],[je,1],[je,3],[je,6],[je,12],[Ye,1],[Ye,2],[Je,1],[Ze,1],[Ze,2],[Ke,1],[Ze,6],[et,1],[et,2],[et,5],[et,10],[et,25],[et,50],[et,100]],rt=(e=10)=>F(e)?g(I(e),1):10,nt=(e,t,r,n,s,i)=>{let l=[e,t],o=-2;const a=t-e;for(let c=1;c<T;c++)for(const u of Le){const d=1-j(Le,u)/g(G(Le)-1,1)-c+1;if(.25*d+.2+.5+.05<o)return l;for(let x=2;x<T;x++){const m=x>=r?2-(x-1)/(r-1):1;if(.25*d+.2+.5*m+.05<o)break;for(let y=b(v(a/(x+1)/c/u));y<T;y++){const a=c*u*k(10,y);if(.25*d+.2*(a*(x-1)<=t-e?1:1-k((a*(x-1)-(t-e))/2,2)/k(.1*(t-e),2))+.5*m+.05<o)break;const p=C(t/a)*c-(x-1)*c,h=b(e/a)*c;p<=h&&ee(H(h-p+1,e=>p+e),d=>{const m=d*(a/c),y=m+a*(x-1),p=(x-1)/(y-m),h=(r-1)/(g(y,t)-S(e,m)),f=s/(x-1),b=.25*(1-j(Le,u)/g(G(Le)-1,1)-c+($(m/a-I(m/a))<100*N&&m<=0&&y>=0?1:0))+.2*(1-(k(t-y,2)+k(e-m,2))/(2*k(.1*(t-e),2)))+.5*(2-g(p/h,h/p))+.05*(f<1.2*n?-1/0:S(f,1))+(i&&($(a-I(a))>100*N||$(m-I(m))>100*N)?-1:0);b>o&&(l=H(C((y-m)/a+.5)+1,e=>I(1e6*(m+e*a))/1e6),o=b)})}}}return l},st=(e,[t,r])=>{const n=A(e),s=U(n),i=q(n),l=t==Ke?3*r:r,o=C((12*s+i)/l)*l,a=lt(t,r);return t==et?M(C(s/r)*r,0,1):t==Ke||t==Ze?M(C(o/12),o%12,1):t==Je?M(s,i,z(n))-(n.getUTCDay()+6)%7*De:C(e/a)*a},it=(e,[t,r])=>{const n=A(e);return t==et?M(U(n)+r,0,1):t==Ke?M(U(n),q(n)+3*r,1):t==Ze?M(U(n),q(n)+r,1):e+lt(t,r)},lt=(e,t)=>e==Je?7*t*De:e==Ye?t*De:e==je?t*Qe:e==_e?6e4*t:1e3*t,ot=e=>e<10?"0"+e:e+i,at=/^\d{4}-\d{2}-\d{2}(?:$|T)/,ct=(e,t)=>se(re(e,t),e=>!O(e)),ut=(e,t,r)=>{const n=Ct(t),s=kt(r);return O(n)||O(s)?void 0:[e,n,s]},dt=(e,t,[r,n,s,i],[l,o],a,c=Se,u=ke,d,x)=>{const m=c!=Se?[r,n]:[0,0],y=[s??0,i??0],p=new We(void 0);return ee(w(a)||ne(a)?re(t,([,e])=>e):a,e=>{return t=p,r=e,t?.has(r)?0:((e,t,r)=>{return O(r)?(n=e,s=t,n?.delete(s),e):e?.set(t,r);var n,s})(p,e,Ae(p));var t,r}),se(re(t,([t,r,n])=>{const s=xt(r,c,u,m,p,l,e);return O(s)?void 0:[t,r,n,s,o-mt(n,y[0],y[1],o),d,x]}),e=>!O(e))},xt=(e,t,r,[n,s],i,l,o)=>{const a=St(e,t,r);return t!=Se?O(a)?void 0:mt(a,n,s,l):o==$e?l*((Xe(i,e)??0)+.5)/Ae(i):mt(Xe(i,e)??0,0,Ae(i)-1,l)},mt=(e,t,r,n)=>t==r?n/2:I(n*(e-t)/(r-t)*1e6)/1e6,yt=(e,t)=>{const r=L(e)?t==Ie?1e3*e:e:X(e)&&at.test(e)||e instanceof Date?bt(e):void 0;return F(r)?r:void 0},pt=(e,t,r,n,s)=>{const[i,l,o,a]=((e,t)=>{if(ne(t))return[];const[r,n]=ft(t,e);if(ne(se(t,([,e])=>!L(e)))){const[e,s]=gt(re(t,([,e])=>e));return[e,s,r,n]}return[t[0]?.[1],t[G(t)-1]?.[1],r,n]})(e,t),c=[],u=e==ve&&ne(se(t,([,e])=>!L(e)));return ee(t,([,e])=>{_(c,e)||ie(c,e)}),{continuousX:u,xCellId:r,xMin:i,xMax:l,yMin:o,yMax:a,yCellId:n,yLabel:s,xValues:c}},ht=e=>{const t=[],r=[],n=[],s=[],i=[];let l,o,a=!0;return ee(e,e=>{a&&=e.continuousX,ee(e.xValues,e=>{_(t,e)||ie(t,e)}),L(e.xMin)&&L(e.xMax)?(ie(r,e.xMin),ie(n,e.xMax)):(l??=e.xMin,o=e.xMax??o),O(e.yMin)||ie(s,e.yMin),O(e.yMax)||ie(i,e.yMax)}),{bounds:[ne(r)?l:S(...r),ne(n)?o:g(...n),ne(s)?void 0:S(...s),ne(i)?void 0:g(...i)],continuousX:!ne(e)&&a,xValues:t}},ft=(e,t=$e)=>gt([...t==$e?[0]:[],...re(e,([,,e])=>e)]),gt=e=>{const t=S(...e);return t==T?[0,0]:[t,g(...e)]},St=(e,t,r)=>t==be?L(e)?e:void 0:t==Ce?yt(e,r):void 0,bt=e=>{const t=+A(e);return F(t)?C(t):void 0},Ct=e=>L(e)?F(e)?e:void 0:X(e)||!0===e||!1===e?e:void 0,kt=e=>L(e)&&F(e)?e:void 0,It=({points:t,plotFrame:r,barGap:n,barSeriesCount:s,barSeriesIndex:i,fullBarWidth:l,setTooltipPoint:o,yMin:a=0,yMax:c=0})=>{const[u,d,x,m]=r,y=m-mt(0,a,c,m),p=G(t),h=l??(ne(t)?0:x/p),f=g(s,1),b=g(i,0),C=g(h-n,0),k=g((C-n*(f-1))/f,0);return re(t,t=>{const[r,,,s,i]=t,l=S(i,y);return e("rect",{className:"bar",height:$(y-i),onPointerEnter:()=>o(t),onPointerLeave:()=>o(void 0),width:k,x:u+s-C/2+(k+n)*b,y:d+l},r)})},$t=(e,t)=>{const r=K(re(e,([,,,e])=>e),(e,t)=>e-t);let n=T;return ee(r,(e,t)=>{t>0&&e>r[t-1]&&(n=S(n,e-r[t-1]))}),n==T?t:n},vt=JSON.stringify,Mt="tinybase_uirc",Tt=p[Mt]?p[Mt]:p[Mt]=ce([]),Nt=(e,t)=>{const r=((e,t)=>{const r=xe(Tt);return O(e)?r[2*t]:X(e)?((e,t)=>W(e,e=>e[t]))(r[2*t+1],e):e})(e,t);return O(e)||X(e)?r:e},Ft=[],Vt=[{},[],[Ft,void 0,Ft],{},void 0,void 0,!1,0],wt=(e,t)=>e===t||(Pe(e)||D(e))&&vt(e)===vt(t),Ot=[(e,t)=>Re(e,t,wt),J,([e,t,r],[n,s,i])=>t===s&&J(e,n)&&J(r,i),(e,t)=>Re(e,t,Z),Z,wt],At=(e,t)=>e===t,Ut=(e,t,...r)=>{const n=e?.["add"+t+"Listener"]?.(...r);return()=>e?.delListener?.(n)},qt=(e,t,r,n=Ft)=>{const s=he(Vt[r]),l=de(()=>{const i=t?.["get"+e]?.(...n)??Vt[r];return(Ot[r]??At)(i,s.current)?s.current:s.current=i},[t,r,e,...n]),o=de(r=>Ut(t,i+e,...n,r),[t,r,e,...n]);return ge(o,l,l)},zt=(e,t,r,n=Ft,s=Ft,...i)=>ye(()=>Ut(t,e,...s,r,...i),[t,e,...s,...n,...i]),Pt=e=>Nt(e,0),Bt=(e,t,r,n,s,i,l)=>zt(d,Pt(l),n,s,[e,t,r],i),Et=e=>Nt(e,4),Rt=(e,t,r,n,s,i)=>zt(c+d,Et(i),n,s,[e,t,r]),Wt=({descending:e,limit:t,offset:r,sortCellId:n,xCellId:s,yCellId:l})=>{const[,o]=fe(),a=Oe(),{getSeriesId:d,queries:x,queriesOrQueriesId:m,queryId:y,releaseSeriesId:p,sourceType:h,store:f,storeOrStoreId:g,tableId:S}=a,[b]=fe(d),C=de(()=>o([]),[o]),k=((e,t,r,n,s,i)=>((e,t,r,n,s,i)=>qt(u,Pt(i),1,[e,t,r,n,s]))(...Pe(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,r,n,s,i]))(S??i,n??s,e,r,t,g),I=((e,t,r,n=0,s,i)=>qt(c+u,Et(i),1,[e,t,r,n,s]))(y??i,n??s,e,r,t,m),$=h==Ve.Table?k:I,v=w(l)?[]:ct($,e=>ut(e,Lt(h,f,x,S,y,e,s),Lt(h,f,x,S,y,e,l)));return Bt(h==Ve.Table?S??null:null,null,s,C,[C],!1,g),Bt(h==Ve.Table?S??null:null,null,l??null,C,[C],!1,g),Rt(h==Ve.Query?y??null:null,null,s,C,[C],m),Rt(h==Ve.Query?y??null:null,null,l??null,C,[C],m),ye(()=>()=>p(b),[p,b]),[b,v]},Xt=(e,t)=>w(t)?e:`${e} ${t}`,Lt=(e,t,r,n,s,i,l)=>e==Ve.Table?t?.getCell(n,i,l):r?.getResultCell(s,i,l),Qt=t=>{const{barSeriesCount:r,bounds:n,getBarSeriesIndex:s,layout:[,,[,,i]],plotFrame:l,plotSize:o,registerBarSeries:a,releaseBarSeries:c,setSeriesSummary:u,setTooltipPoint:d,timestampUnit:x,xScale:m,xValues:y}=Oe(),{className:p,label:h,xCellId:f,yCellId:g}=t,[S,b]=Wt(t),C=s(S),[,,k,I]=n,$=m==Se?void 0:dt(ve,re(y,(e,t)=>[""+t,e,0]),n,o,y,m,x),v=dt($e,b,n,o,y,m,x,f,h??g);return ye(()=>{u(S,pt($e,b,f,g,h))}),ye(()=>(a(S),()=>c(S)),[a,c,S]),e("g",{className:Xt("bar-series",p),fill:Me,children:e(It,{barGap:i,barSeriesCount:r,barSeriesIndex:C,fullBarWidth:w($)?void 0:$t($,o[0]),plotFrame:l,points:v,setTooltipPoint:d,yMax:I,yMin:k})})};Qt[Te]=!0;const Dt=e=>[w(e.tableId)?{className:e.className,queries:e.queries,queryId:e.queryId}:{className:e.className,store:e.store,tableId:e.tableId},{descending:e.descending,limit:e.limit,offset:e.offset,sortCellId:e.sortCellId,xCellId:e.xCellId,yCellId:e.yCellId}],Gt=/^\d+$/,Ht=[1e3,1e3],_t=[.5,.5,.25,3.5,4,1,1],jt=([e,t],[,,,r,n,s,i])=>{const l=s+g(S(n,e/2-2*s),0),o=s+i/2,a=s+i/2,c=g(t-o-g(S(r,t/2-o-s),0)-s,0);return[l,o,g(e-l-a,0),c]},Yt=e=>re(_t,t=>t*e),Jt=e=>{const t=parseFloat(e?.fontSize??i);return Yt(F(t)?t:12)},Zt=({width:e,height:t})=>[I(e)||Ht[0],I(t)||Ht[1]],Kt=({className:r,points:n,tickFormatter:s,xTicks:i,xMin:l,xMax:o,xTitle:a,plotFrame:c,tickSize:u,tickGap:d,axisHeight:x,fontSize:m,timestampUnit:y,xScale:p})=>{const[h,f,S,b]=c,C=g(x-u-d-2*m,0);return t("g",{className:w(r)?"x":"x "+r,dominantBaseline:"hanging",textAnchor:"middle",children:[e("path",{className:"line",d:`M${h},${f+b}h${S}`,fill:"none",stroke:Me,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",children:!ne(i)&&L(l)&&L(o)?re(i,t=>{const r=mt(t,l,o,S);return e("text",{x:h+r,y:f+b+u+d,children:er(t,s,p,ke,i)},t)}):re(n,([t,r,,n])=>e("text",{x:h+n,y:f+b+u+d,children:er(r,s,p,y)},t))}),e("text",{className:"title",x:h+S/2,y:f+b+u+d+m+C,children:a})]})},er=(e,t,r,n,s=[])=>{const l=r==Ce?yt(e,n):void 0;return L(l)?t?.(A(l),l)??((e,t)=>{const r=A(e),n=U(r)+i,s=ot(q(r)+1),l=ot(z(r)),o=ot(P(r)),a=ot(B(r)),c=ot(E(r)),u=`${n}-${s}-${l}`;let d=T;return ee(t,(e,r)=>{r>0&&(d=S(d,e-t[r-1]))}),d=d==T?0==P(r)&&0==B(r)&&0==E(r)?De:0==E(r)?Qe:1e3:d,d<6e4?`${u} ${o}:${a}:${c}`:d<De?`${u} ${o}:${a}`:d<Ge?u:d<He?`${n}-${s}`:n})(l,s):t?.(e,void 0)??f(e)},tr=({className:r,tickFormatter:n,yTicks:s,yMin:i,yMax:l,yTitle:o,plotFrame:a,tickSize:c,tickGap:u,axisWidth:d})=>{const[x,m,,y]=a;return w(i)||w(l)?null:t("g",{className:w(r)?"y":"y "+r,children:[e("path",{className:"line",d:`M${x},${m}v${y}`,fill:"none",stroke:Me,strokeOpacity:.5,strokeWidth:1}),e("g",{className:"ticks",dominantBaseline:"middle",textAnchor:"end",children:re(s,t=>{const r=y-mt(t,i,l,y);return e("text",{x:x-c-u,y:m+r,children:n?.(t)??f(t)},t)})}),e("text",{className:"title",dominantBaseline:"text-before-edge",textAnchor:"middle",transform:`translate(${x-d} ${a[1]+a[3]/2}) rotate(-90)`,children:o})]})},rr=({xAxis:r,yAxis:n,points:s,xTicks:i,yTicks:l,bounds:[o,a,c,u],titles:[d,x],xAxisHeight:m,yAxisWidth:y,fontSize:p,timestampUnit:h,xScale:f,...g})=>t("g",{className:"axes",fill:Me,fillOpacity:.75,children:[e(tr,{...g,className:n?.className,tickFormatter:n?.tickFormatter,yTicks:l,yMin:c,yMax:u,yTitle:x,axisWidth:y}),e(Kt,{...g,className:r?.className,points:s,tickFormatter:r?.tickFormatter,xTicks:i,xMin:o,xMax:a,xTitle:d,axisHeight:m,fontSize:p,timestampUnit:h,xScale:f})]}),nr=({points:r,xTicks:n,yTicks:s,bounds:[i,l,o,a],plotFrame:c,tickSize:u})=>{const[d,x,m,y]=c;return t("g",{className:"grid",stroke:Me,strokeOpacity:.75,strokeWidth:.5,children:[w(o)||w(a)?null:e("path",{className:"y",d:te(re(se(s,e=>0!=mt(e,o,a,y)),e=>`M${d-u},${x+y-mt(e,o,a,y)}h${m+u}`)," ")}),!ne(n)&&L(i)&&L(l)?e("path",{className:"x",d:te(re(se(n,e=>0!=mt(e,i,l,m)),e=>`M${d+mt(e,i,l,m)},${x}v${y+u}`)," ")}):e("path",{className:"x",d:te(re(se(r,([,,,e])=>0!=e),([,,,e])=>`M${d+e},${x}v${y+u}`)," ")})]})},sr="#fff",ir=({point:n,width:s,height:i,plotFrame:l,titles:[o,a]})=>{if(w(n))return null;const[,c,u,d,x,m,y]=n,[p,h]=l,b=d+12+160>s?d-12-160:d+12,C=g(S(x-12-60,i-60),0);return t(r,{children:[e("path",{className:"tooltip-lines",pointerEvents:"none",stroke:Me,strokeOpacity:.25,strokeWidth:1,d:`M${p+d},${h}v${i}M${p},${h+x}h${s}`}),t("g",{className:"tooltip",transform:`translate(${p+b} ${h+C})`,fontFamily:"sans-serif",fontWeight:600,pointerEvents:"none",children:[e("rect",{fill:"#111827",fillOpacity:.9,width:160,height:60,rx:6}),t("text",{fill:sr,x:12,y:22,children:[m??o,": ",f(c)]}),t("text",{fill:sr,x:12,y:46,children:[y??a,": ",u]})]})]})},lr={bounds:[],continuousX:!1,xValues:[]},or=({children:r,className:n,initialSummary:s,queries:l,queryId:o,store:a,tableId:c})=>{const u=(()=>{const e=he(null),t=he([Ht,Yt(12)]),[r,n]=fe([Ht,Yt(12)]);return ye(()=>{const r=e.current;if(null===r)return;const s=new ResizeObserver(([e])=>(({contentRect:e})=>{const s=r.ownerDocument.defaultView?.getComputedStyle(r),i=[Zt(e),Jt(s)];(([e,t],[r,n])=>J(e,r)&&J(t,n))(t.current,i)||(t.current=i,n(i))})(e));return s.observe(r),()=>s.disconnect()},[]),[e,...r]})(),[d,x,m]=u,[y,p,,h,f,,b]=m,C=jt(x,m),k=(([,e,t])=>{const[,,r,n]=jt(e,t);return[r,n]})(u),I=(([,,e])=>e[6])(u),v=Pt(a),M=Et(l),N=w(c)?w(o)?Ve.None:Ve.Query:Ve.Table,A=w(s)?{}:{0:s},U=w(s)?lr:ht(Ee(A)),q=ur(A,"xCellId"),z=ur(A,"yCellId"),P=he(A),B=he(U.bounds),E=he(U),R=he(q),W=he(z),Q=he((()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??i+t++,t=>{Gt.test(t)&&G(e)<1e3&&ie(e,t)}]})()),[D,H]=fe(U),[Z,K]=fe(q),[te,le]=fe(z),oe=he([]),[ae,ce]=fe([]),[ue,xe]=fe(),[me,ge,Me]=pr(r),Te=D.xValues,Ne=ge?.scale==Ce&&ge.timestampUnit==Ie?Ie:ke,Fe=((e,{continuousX:t,xValues:r},n)=>e==Se||e==be||e==Ce?e:t||ne(r)&&n?be:!ne(r)&&Y(r,e=>X(e)&&F(yt(e,ke)))?Ce:Se)(ge?.scale,D,F(ge?.min)||F(ge?.max)||!w(ge?.ticks)),Oe=Fe!=Se,Ae=dr(D.bounds,Te,Fe,Ne,ge,Me),[Ue,qe]=Ae,ze=Oe||ne(ae)?ve:$e,Pe=Oe&&!w(ge?.ticks)?yr(ge.ticks,Fe,Ne):Fe==Ce&&L(Ue)&&L(qe)&&Ue!=qe?((e,t,r,n,s)=>{const i=S(e,t),l=g(e,t);let o=[i,l],a=-1/0;return ee(tt,(e,t)=>{const c=[];for(let t=st(i,e),r=0;t<=l&&r<1e3;t=it(t,e),r++)ie(c,t);const u=c[G(c)-1];(!F(u)||u<l)&&ie(c,it(u??st(i,e),e));const d=G(c),x=c[0],m=c[d-1],y=l-i,p=g(r,2),h=s/(d-1),f=d<2?-1/0:.25*(1-t/g(G(tt)-1,1))+.2*(1-($(i-x)+$(m-l))/y)+.5*(2-g(d/p,p/d))+.05*(h<1.2*n?-1/0:S(h/n,1));f>a&&(o=c,a=f)}),o})(Ue,qe,rt(ge?.tickCount),I,k[0]):((e,[t,r],[n],s,i)=>e==ve&&L(t)&&L(r)&&t!=r?nt(t,r,rt(i),s,n,V(t)&&V(r)):[])(ze,Ae,k,I,ge?.tickCount),Be=w(Me?.ticks)?(([,,e,t],[,r],n,s)=>O(e)||O(t)?[]:e==t?[e]:nt(e,t,rt(s),n,r,V(e)&&V(t)))(Ae,k,I,Me?.tickCount):yr(Me.ticks),Re=(([e,t,r,n],s,i)=>[ne(s)?e:L(e)?S(e,s[0]):s[0],ne(s)?t:L(t)?g(t,s[G(s)-1]):s[G(s)-1],ne(i)?r:S(r??T,i[0]),ne(i)?n:g(n??-1/0,i[G(i)-1])])(Ae,Pe,Be),We=dt(ze,re(Te,(e,t)=>[""+t,e,0]),Re,k,Te,Fe,Ne),Xe=de(e=>{const t=ht(Ee(e)),r=t.bounds;ar(B.current,r)&&J(E.current.xValues,t.xValues)||(B.current=r,E.current=t,H(t))},[]),Le=de(e=>{const t=ur(e,"xCellId"),r=ur(e,"yCellId");R.current!=t&&(R.current=t,K(t)),W.current!=r&&(W.current=r,le(r))},[]),Qe=de(e=>{const t=B.current,[r,n,s,i]=t,{xMin:l,xMax:o,yMin:a,yMax:c}=e,u=[L(r)&&L(l)?S(r,l):r??l,L(n)&&L(o)?g(n,o):n??o,w(s)||w(a)?s??a:S(s,a),w(i)||w(c)?i??c:g(i,c)];ar(t,u)||(B.current=u,E.current={bounds:u,continuousX:E.current.continuousX,xValues:E.current.xValues},H(E.current))},[]),De=de((e,t)=>{const r=P.current,n=r[e];if(w(t)){if(w(n))return;return delete r[e],Le(r),void Xe(r)}r[e]=t,Le(r),(w(n)?Y(t.xValues,e=>_(E.current.xValues,e))&&t.continuousX==E.current.continuousX:!cr(n,B.current)&&n.continuousX==t.continuousX&&J(n.xValues,t.xValues))?Qe(t):Xe(r)},[Qe,Xe,Le]),[Ge,He]=Q.current,_e=de(()=>Ge(1),[Ge]),je=de(e=>{De(e,void 0),He(e)},[He,De]),Ye=de(e=>{if(!_(oe.current,e)){const t=[...oe.current];ie(t,e),oe.current=t,ce(t)}},[]),Je=de(e=>{if(_(oe.current,e)){const t=se(oe.current,t=>t!=e);oe.current=t,ce(t)}},[]),Ze=de(e=>j(oe.current,e),[]),Ke=pe(()=>({bounds:Re,barSeriesCount:G(ae),domainState:D,getBarSeriesIndex:Ze,getSeriesId:_e,layout:u,plotFrame:C,plotSize:k,queries:M,queriesOrQueriesId:l,queryId:o,registerBarSeries:Ye,releaseBarSeries:Je,releaseSeriesId:je,setSeriesSummary:De,setTooltipPoint:xe,sourceType:N,store:v,storeOrStoreId:a,tableId:c,timestampUnit:Ne,xTicks:Pe,xScale:Fe,xValues:Te,yTicks:Be}),[ae,D,Ze,_e,u,C,k,l,M,o,Ye,Je,je,De,N,a,v,c,Ne,Re,Pe,Fe,Te,Be]);return e(we.Provider,{value:Ke,children:t("svg",{className:n,preserveAspectRatio:"none",ref:d,viewBox:`0 0 ${x[0]} ${x[1]}`,children:[e(nr,{bounds:Re,points:We,plotFrame:C,tickSize:y,xTicks:Pe,yTicks:Be}),e(rr,{bounds:Re,fontSize:b,points:We,plotFrame:C,tickGap:p,tickSize:y,titles:[ge?.title??Z,Me?.title??te],timestampUnit:Ne,xAxis:ge,xAxisHeight:h,xScale:Fe,xTicks:Pe,yAxis:Me,yAxisWidth:f,yTicks:Be}),e("g",{className:"plot",children:me}),e(ir,{height:k[1],point:ue,plotFrame:C,titles:[ge?.title??Z,Me?.title??te],width:k[0]})]})})},ar=(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3],cr=({xMin:e,xMax:t,yMin:r,yMax:n},[s,i,l,o])=>e===s||t===i||r===l||n===o,ur=(e,t)=>{const r=[];return ee(Ee(e),e=>{const n="yCellId"==t?e.yLabel??e.yCellId:e.xCellId;w(n)||_(r,n)||ie(r,n)}),ne(r)?"":te(r," & ")},dr=([e,t,r,n],s,i,l,o,a)=>{const[c,u]=(([e,t],r,n,s)=>{const i=[];return n==be?[L(e)?e:void 0,L(t)?t:void 0]:n==Ce?(ee(r,e=>{const t=yt(e,s);F(t)&&ie(i,t)}),ne(i)?[]:gt(i)):[e,t]})([e,t],s,i,l);return[i==Se?c:xr(o?.min,c,i,l),i==Se?u:xr(o?.max,u,i,l),mr(a?.min,r),mr(a?.max,n)]},xr=(e,t,r,n)=>{const s=r==Ce?yt(e,n):e;return F(s)?s:t},mr=(e,t)=>F(e)?e:t,yr=(e,t=be,r=ke)=>K(se(re([...e],e=>t==Ce?yt(e,r):e),e=>F(e)),(e,t)=>e-t),pr=e=>{const t=[];let r,n;return le.forEach(e,e=>{if(ue(e))if(e.type===oe){const[s,i,l]=pr(e.props.children);ee(s,e=>ie(t,e)),r??=i,n??=l}else s=e.type,Q(s)&&!0===s[Te]?ie(t,e):w(r)&&(e=>Q(e)&&!0===e[Ne])(e.type)?r=e.props:w(n)&&(e=>Q(e)&&!0===e[Fe])(e.type)&&(n=e.props);var s}),[t,r,n]},hr=(e,{descending:t,limit:r,offset:n,queries:s,queryId:l,sortCellId:o,store:a,tableId:c,xCellId:u,yCellId:d})=>{const x=Pt(a),m=Et(s);return pe(()=>{const s=w(c)?ct(m?.getResultSortedRowIds(l??i,o??u,t,n,r)??[],e=>ut(e,m?.getResultCell(l??i,e,u),m?.getResultCell(l??i,e,d))):ct(x?.getSortedRowIds(c,o??u,t,n,r)??[],e=>ut(e,x?.getCell(c,e,u),x?.getCell(c,e,d)));return pt(e,s,u,d)},[t,e,r,n,m,l,o,x,c,u,d])},fr=({children:r,...n})=>{const s=hr($e,n),[i,l]=Dt(n);return t(or,{...i,initialSummary:s,children:[e(Qt,{...l}),r]})},gr=({plotFrame:n,points:s,setTooltipPoint:i})=>{const[l,o,,a]=n;return t(r,{children:[e("path",{className:"area",d:br(s,l,o,a),fill:Me,fillOpacity:.25,stroke:"none"}),e("path",{className:"line",d:Sr(s,l,o),fill:"none",stroke:Me,strokeOpacity:.75,strokeWidth:2}),e("g",{className:"points",fill:Me,children:re(s,t=>{const[r,,,n,s]=t;return e("circle",{cx:l+n,cy:o+s,onPointerEnter:()=>i(t),onPointerLeave:()=>i(void 0),r:5},r)})})]})},Sr=(e,t,r)=>te(re(e,([,,,e,n],s)=>`${0==s?"M":"L"}${t+e},${r+n}`)," "),br=(e,t,r,n)=>ne(e)?"":`${Sr(e,t,r)} L${t+e[G(e)-1][3]},${r+n} L${t+e[0][3]},${r+n} Z`,Cr=t=>{const{barSeriesCount:r,bounds:n,plotFrame:s,plotSize:i,setSeriesSummary:l,setTooltipPoint:o,timestampUnit:a,xScale:c,xValues:u}=Oe(),{className:d,label:x,xCellId:m,yCellId:y}=t,[p,h]=Wt(t),f=dt(c==Se&&r?$e:ve,h,n,i,u,c,a,m,x??y);return ye(()=>{l(p,pt(ve,h,m,y,x))}),e("g",{className:Xt("line-series",d),children:e(gr,{plotFrame:s,points:f,setTooltipPoint:o})})};Cr[Te]=!0;const kr=({children:r,...n})=>{const s=hr(ve,n),[i,l]=Dt(n);return t(or,{...i,initialSummary:s,children:[e(Cr,{...l}),r]})},Ir=()=>null;Ir[Ne]=!0;const $r=()=>null;$r[Fe]=!0;export{fr as BarChart,Qt as BarSeries,or as CartesianChart,kr as LineChart,Cr as LineSeries,Ir as XAxis,$r as YAxis};