@synnaxlabs/client 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/dist/access/payload.d.ts +7 -1
  3. package/dist/access/payload.d.ts.map +1 -1
  4. package/dist/access/policy/payload.d.ts +182 -142
  5. package/dist/access/policy/payload.d.ts.map +1 -1
  6. package/dist/access/policy/retriever.d.ts +25 -22
  7. package/dist/access/policy/retriever.d.ts.map +1 -1
  8. package/dist/auth/auth.d.ts +1 -7
  9. package/dist/auth/auth.d.ts.map +1 -1
  10. package/dist/channel/client.d.ts +2 -7
  11. package/dist/channel/client.d.ts.map +1 -1
  12. package/dist/channel/payload.d.ts +13 -74
  13. package/dist/channel/payload.d.ts.map +1 -1
  14. package/dist/channel/retriever.d.ts +5 -31
  15. package/dist/channel/retriever.d.ts.map +1 -1
  16. package/dist/channel/writer.d.ts +6 -18
  17. package/dist/channel/writer.d.ts.map +1 -1
  18. package/dist/client.cjs +36 -31
  19. package/dist/client.d.ts +8 -56
  20. package/dist/client.d.ts.map +1 -1
  21. package/dist/client.js +6486 -3979
  22. package/dist/connection/checker.d.ts +22 -39
  23. package/dist/connection/checker.d.ts.map +1 -1
  24. package/dist/control/client.d.ts.map +1 -1
  25. package/dist/control/state.d.ts +6 -26
  26. package/dist/control/state.d.ts.map +1 -1
  27. package/dist/errors.d.ts +31 -56
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/framer/adapter.d.ts +4 -0
  30. package/dist/framer/adapter.d.ts.map +1 -1
  31. package/dist/framer/client.d.ts +2 -2
  32. package/dist/framer/client.d.ts.map +1 -1
  33. package/dist/framer/codec.d.ts +34 -0
  34. package/dist/framer/codec.d.ts.map +1 -0
  35. package/dist/framer/codec.spec.d.ts +2 -0
  36. package/dist/framer/codec.spec.d.ts.map +1 -0
  37. package/dist/framer/deleter.d.ts +12 -49
  38. package/dist/framer/deleter.d.ts.map +1 -1
  39. package/dist/framer/frame.d.ts +26 -88
  40. package/dist/framer/frame.d.ts.map +1 -1
  41. package/dist/framer/iterator.d.ts.map +1 -1
  42. package/dist/framer/streamer.d.ts +69 -11
  43. package/dist/framer/streamer.d.ts.map +1 -1
  44. package/dist/framer/writer.d.ts +60 -257
  45. package/dist/framer/writer.d.ts.map +1 -1
  46. package/dist/hardware/device/client.d.ts +7 -31
  47. package/dist/hardware/device/client.d.ts.map +1 -1
  48. package/dist/hardware/device/payload.d.ts +11 -93
  49. package/dist/hardware/device/payload.d.ts.map +1 -1
  50. package/dist/hardware/rack/payload.d.ts +15 -103
  51. package/dist/hardware/rack/payload.d.ts.map +1 -1
  52. package/dist/hardware/task/client.d.ts +4 -20
  53. package/dist/hardware/task/client.d.ts.map +1 -1
  54. package/dist/hardware/task/payload.d.ts +41 -116
  55. package/dist/hardware/task/payload.d.ts.map +1 -1
  56. package/dist/index.d.ts +0 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/label/payload.d.ts +1 -9
  59. package/dist/label/payload.d.ts.map +1 -1
  60. package/dist/label/writer.d.ts +27 -36
  61. package/dist/label/writer.d.ts.map +1 -1
  62. package/dist/ontology/client.d.ts +46 -36
  63. package/dist/ontology/client.d.ts.map +1 -1
  64. package/dist/ontology/group/payload.d.ts +1 -7
  65. package/dist/ontology/group/payload.d.ts.map +1 -1
  66. package/dist/ontology/payload.d.ts +239 -146
  67. package/dist/ontology/payload.d.ts.map +1 -1
  68. package/dist/ranger/client.d.ts +13 -58
  69. package/dist/ranger/client.d.ts.map +1 -1
  70. package/dist/ranger/kv.d.ts +7 -49
  71. package/dist/ranger/kv.d.ts.map +1 -1
  72. package/dist/ranger/payload.d.ts +21 -99
  73. package/dist/ranger/payload.d.ts.map +1 -1
  74. package/dist/ranger/writer.d.ts +35 -88
  75. package/dist/ranger/writer.d.ts.map +1 -1
  76. package/dist/testutil/indexedPair.d.ts +5 -0
  77. package/dist/testutil/indexedPair.d.ts.map +1 -0
  78. package/dist/testutil/telem.d.ts +3 -0
  79. package/dist/testutil/telem.d.ts.map +1 -0
  80. package/dist/transport.d.ts +2 -2
  81. package/dist/transport.d.ts.map +1 -1
  82. package/dist/user/payload.d.ts +3 -29
  83. package/dist/user/payload.d.ts.map +1 -1
  84. package/dist/user/retriever.d.ts +3 -9
  85. package/dist/user/retriever.d.ts.map +1 -1
  86. package/dist/util/decodeJSONString.d.ts.map +1 -1
  87. package/dist/util/zod.d.ts +1 -1
  88. package/dist/util/zod.d.ts.map +1 -1
  89. package/dist/workspace/lineplot/payload.d.ts +10 -26
  90. package/dist/workspace/lineplot/payload.d.ts.map +1 -1
  91. package/dist/workspace/log/payload.d.ts +10 -26
  92. package/dist/workspace/log/payload.d.ts.map +1 -1
  93. package/dist/workspace/payload.d.ts +14 -40
  94. package/dist/workspace/payload.d.ts.map +1 -1
  95. package/dist/workspace/schematic/payload.d.ts +13 -45
  96. package/dist/workspace/schematic/payload.d.ts.map +1 -1
  97. package/dist/workspace/table/payload.d.ts +13 -39
  98. package/dist/workspace/table/payload.d.ts.map +1 -1
  99. package/package.json +6 -6
  100. package/src/channel/channel.spec.ts +26 -27
  101. package/src/channel/client.ts +0 -9
  102. package/src/channel/payload.ts +22 -5
  103. package/src/channel/retriever.ts +12 -6
  104. package/src/client.ts +3 -3
  105. package/src/control/client.ts +5 -2
  106. package/src/control/state.ts +8 -3
  107. package/src/errors.spec.ts +5 -4
  108. package/src/errors.ts +21 -82
  109. package/src/framer/adapter.ts +22 -3
  110. package/src/framer/client.ts +38 -21
  111. package/src/framer/codec.spec.ts +303 -0
  112. package/src/framer/codec.ts +396 -0
  113. package/src/framer/deleter.spec.ts +51 -63
  114. package/src/framer/frame.ts +16 -5
  115. package/src/framer/iterator.spec.ts +45 -28
  116. package/src/framer/iterator.ts +6 -5
  117. package/src/framer/streamProxy.ts +1 -1
  118. package/src/framer/streamer.spec.ts +10 -18
  119. package/src/framer/streamer.ts +138 -22
  120. package/src/framer/writer.spec.ts +125 -150
  121. package/src/framer/writer.ts +74 -68
  122. package/src/hardware/device/payload.ts +3 -3
  123. package/src/hardware/task/payload.ts +9 -6
  124. package/src/hardware/task/task.spec.ts +1 -1
  125. package/src/index.ts +0 -2
  126. package/src/ontology/group/group.spec.ts +2 -2
  127. package/src/ontology/payload.ts +3 -3
  128. package/src/ranger/ranger.spec.ts +9 -7
  129. package/src/testutil/indexedPair.ts +40 -0
  130. package/src/testutil/telem.ts +13 -0
  131. package/src/transport.ts +1 -2
  132. package/src/util/decodeJSONString.ts +2 -2
  133. package/src/util/retrieve.spec.ts +1 -1
package/dist/client.cjs CHANGED
@@ -1,51 +1,56 @@
1
- "use strict";var Lo=Object.defineProperty;var _o=(r,e,t)=>e in r?Lo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var c=(r,e,t)=>_o(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("zod"),b=r=>Array.isArray(r)?r:[r],Wn="policy",Fn="allow_all";var qo=Object.defineProperty,Yo=(r,e,t)=>e in r?qo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,A=(r,e,t)=>Yo(r,typeof e!="symbol"?e+"":e,t);const Wo=r=>{const e=r.replace(/_[a-z]/g,t=>t[1].toUpperCase());return e.length>1&&e[0]===e[0].toUpperCase()&&e[1]===e[1].toUpperCase()||e.length===0?e:e[0].toLowerCase()+e.slice(1)},Si=r=>{const e=(t,n=$n)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(o=>e(o,n));if(!nn(t))return t;n=Vo(n);const i={},a=t;return Object.keys(a).forEach(o=>{let l=a[o];const u=r(o);n.recursive&&(nn(l)?Is(l,n.keepTypesOnRecursion)||(l=e(l,n)):n.recursiveInArray&&Ss(l)&&(l=[...l].map(h=>{let f=h;return nn(h)?Is(f,n.keepTypesOnRecursion)||(f=e(h,n)):Ss(h)&&(f=e({key:h},n).key),f}))),i[u]=l}),i};return e},Ii=Si(Wo),Fo=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),Go=Si(Fo),$n={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},Vo=(r=$n)=>(r.recursive==null?r=$n:r.recursiveInArray??(r.recursiveInArray=!1),r),Ss=r=>r!=null&&Array.isArray(r),nn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),Is=(r,e)=>(e||[]).some(t=>r instanceof t),$i=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var Jo=Object.defineProperty,Ko=(r,e,t)=>e in r?Jo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Dt=(r,e,t)=>Ko(r,typeof e!="symbol"?e+"":e,t);let Ho=class{constructor(){Dt(this,"contentType","application/json"),Dt(this,"decoder"),Dt(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e)).buffer}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),i=Ii(n);return t!=null?t.parse(i):i}encodeString(e){const t=Go(e);return JSON.stringify(t,(n,i)=>ArrayBuffer.isView(i)?Array.from(i):$i(i)&&"encode_value"in i?typeof i.value=="bigint"?i.value.toString():i.value:typeof i=="bigint"?i.toString():i)}static registerCustomType(){}},Xo=class{constructor(){Dt(this,"contentType","text/csv")}encode(e){const t=this.encodeString(e);return new TextEncoder().encode(t).buffer}decode(e,t){const n=new TextDecoder().decode(e);return this.decodeString(n,t)}encodeString(e){if(!Array.isArray(e)||e.length===0||!$i(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(i=>{const a=t.map(o=>JSON.stringify(i[o]??""));n.push(a.join(","))}),n.join(`
2
- `)}decodeString(e,t){const[n,...i]=e.trim().split(`
3
- `).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),o={};return a.forEach(l=>{o[l]=[]}),i.forEach(l=>{const u=l.split(",").map(h=>h.trim());a.forEach((h,f)=>{const d=this.parseValue(u[f]);d!=null&&o[h].push(d)})}),t!=null?t.parse(o):o}parseValue(e){if(e==null||e.length===0)return null;const t=Number(e);return isNaN(t)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:t}static registerCustomType(){}},Qo=class{constructor(){Dt(this,"contentType","text/plain")}encode(r){return new TextEncoder().encode(r).buffer}decode(r,e){const t=new TextDecoder().decode(r);return e!=null?e.parse(t):t}};const gr=new Ho;new Xo;new Qo;const ec=r=>r!=null&&typeof r=="object"&&"toString"in r,tc=(r,e=!1)=>{const t=ec(r)?"stringer":typeof r;let n;switch(t){case"string":n=(i,a)=>i.localeCompare(a);break;case"stringer":n=(i,a)=>i.toString().localeCompare(a.toString());break;case"number":n=(i,a)=>Number(i)-Number(a);break;case"bigint":n=(i,a)=>BigInt(i)-BigInt(a)>0n?1:-1;break;case"boolean":n=(i,a)=>Number(i)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?rc(n):n},rc=r=>(e,t)=>r(t,e),jr=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const ki=s.z.object({width:s.z.number(),height:s.z.number()}),nc=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),sc=["width","height"];s.z.enum(sc);const ic=["start","center","end"],ac=["signedWidth","signedHeight"];s.z.enum(ac);const zr=s.z.object({x:s.z.number(),y:s.z.number()}),oc=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),cc=["x","y"],Ai=s.z.enum(cc),xi=["top","right","bottom","left"];s.z.enum(xi);const lc=["left","right"],Ri=s.z.enum(lc),uc=["top","bottom"],Ci=s.z.enum(uc),Pi=["center"],$s=s.z.enum(Pi),hc=[...xi,...Pi],ji=s.z.enum(hc);s.z.enum(ic);const dc=["first","last"];s.z.enum(dc);const fc=s.z.object({lower:s.z.number(),upper:s.z.number()}),yc=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([fc,jr]);s.z.union([yc,jr]);s.z.enum([...Ai.options,...ji.options]);s.z.union([Ai,ji,s.z.instanceof(String)]);const gc=r=>typeof r=="bigint"||r instanceof BigInt,Ye=(r,e)=>gc(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),Be=(r,e)=>{const t={};if(typeof r=="number"||typeof r=="bigint")e!=null?(t.lower=r,t.upper=e):(t.lower=typeof r=="bigint"?0n:0,t.upper=r);else if(Array.isArray(r)){if(r.length!==2)throw new Error("bounds: expected array of length 2");[t.lower,t.upper]=r}else return ks(r);return ks(t)},ks=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,As=(r,e)=>{const t=Be(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e};s.z.object({x:Ri.or($s),y:Ci.or($s)});const pc=s.z.object({x:Ri,y:Ci}),mc=Object.freeze({x:"left",y:"top"}),wc=(r,e)=>r.x===e.x&&r.y===e.y,xs=s.z.union([s.z.number(),zr,jr,ki,nc,oc]),bc=(r,e)=>{if(typeof r=="string"){if(e===void 0)throw new Error("The y coordinate must be given.");return r==="x"?{x:e,y:0}:{x:0,y:e}}return typeof r=="number"?{x:r,y:e??r}:Array.isArray(r)?{x:r[0],y:r[1]}:"signedWidth"in r?{x:r.signedWidth,y:r.signedHeight}:"clientX"in r?{x:r.clientX,y:r.clientY}:"width"in r?{x:r.width,y:r.height}:{x:r.x,y:r.y}},Rs=Object.freeze({x:0,y:0}),lr=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:lr,left:lr,width:lr,height:lr});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:zr,two:zr,root:pc});const Gn=(r,e,t=0,n=0,i)=>{const a={one:{...Rs},two:{...Rs},root:i??mc};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},sn=r=>{const e=Gn(r);return{lower:e.one.x,upper:e.two.x}},an=r=>{const e=Gn(r);return{lower:e.one.y,upper:e.two.y}},Tc=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,vc=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([ki,vc,zr,jr]);var Oc=Object.defineProperty,Nc=(r,e,t)=>e in r?Oc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,be=(r,e,t)=>Nc(r,typeof e!="symbol"?e+"":e,t);const Ec=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:xs,scale:xs});s.z.object({offset:s.z.number(),scale:s.z.number()});const zc=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],Sc=r=>(e,t,n,i)=>[e,i?n/r:n*r],Ic=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:o,upper:l}=r,u=a-i,h=l-o;if(t==="dimension")return[r,n*(h/u)];const f=(n-i)*(h/u)+o;return[r,f]},$c=r=>(e,t,n)=>[r,n],kc=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},Ac=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=Ec(n,i,a),[e,n]},kn=class Ot{constructor(){be(this,"ops",[]),be(this,"currBounds",null),be(this,"currType",null),be(this,"reversed",!1),this.ops=[]}static translate(e){return new Ot().translate(e)}static magnify(e){return new Ot().magnify(e)}static scale(e,t){return new Ot().scale(e,t)}translate(e){const t=this.new(),n=zc(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Sc(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=Be(e,t),i=this.new(),a=Ic(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=Be(e,t),i=this.new(),a=Ac(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=Be(e,t),i=this.new(),a=$c(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=kc();e.type="invert";const t=this.new();return t.ops.push(e),t}pos(e){return this.exec("position",e)}dim(e){return this.exec("dimension",e)}new(){const e=new Ot;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([o,l])=>i>=o&&i<=l))return;const a=e.ops.findIndex((o,l)=>o.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};be(kn,"IDENTITY",new kn);let Cs=kn;const Ps=class me{constructor(e=new Cs,t=new Cs,n=null){be(this,"x"),be(this,"y"),be(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new me().translate(e,t)}static translateX(e){return new me().translateX(e)}static translateY(e){return new me().translateY(e)}static clamp(e){return new me().clamp(e)}static magnify(e){return new me().magnify(e)}static scale(e){return new me().scale(e)}static reBound(e){return new me().reBound(e)}translate(e,t){const n=bc(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(Tc(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!wc(n,e.root)&&(n.x!==e.root.x&&(t.x=t.x.invert()),n.y!==e.root.y&&(t.y=t.y.invert())),t.x=t.x.scale(sn(e)),t.y=t.y.scale(an(e)),t}return t.x=t.x.scale(e.width),t.y=t.y.scale(e.height),t}reBound(e){const t=this.copy();return t.x=this.x.reBound(sn(e)),t.y=this.y.reBound(an(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(sn(e)),t.y=this.y.clamp(an(e)),t}copy(){const e=new me;return e.currRoot=this.currRoot,e.x=this.x,e.y=this.y,e}reverse(){const e=this.copy();return e.x=this.x.reverse(),e.y=this.y.reverse(),e}pos(e){return{x:this.x.pos(e.x),y:this.y.pos(e.y)}}dim(e){return{x:this.x.dim(e.x),y:this.y.dim(e.y)}}box(e){return Gn(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}get transform(){return{scale:this.dim({x:1,y:1}),offset:this.pos({x:0,y:0})}}};be(Ps,"IDENTITY",new Ps);var xc=Object.defineProperty,Rc=(r,e,t)=>e in r?xc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e,t)=>Rc(r,typeof e!="symbol"?e+"":e,t);let Cc=(r,e=21)=>(t=e)=>{let n="",i=t|0;for(;i--;)n+=r[Math.random()*r.length|0];return n};const Pc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",jc=Cc(Pc,11),Dc=()=>jc(),Mc=s.z.enum(["static","dynamic"]),Di=(r,e)=>{const t=new M(e);if(![j.DAY,j.HOUR,j.MINUTE,j.SECOND,j.MILLISECOND,j.MICROSECOND,j.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof M?new M(n):new j(n)},x=class T{constructor(e,t="UTC"){if(m(this,"value"),m(this,"encodeValue",!0),e==null)this.value=T.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*T.MILLISECOND.valueOf();else if(typeof e=="string")this.value=T.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=T.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=T.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=T.MAX:e=T.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new T(BigInt(i.getTime())*T.MILLISECOND.valueOf()).truncate(T.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let o="00",l="00";a!=null&&([o,l]=a.split("."));let u=T.hours(parseInt(n??"00")).add(T.minutes(parseInt(i??"00"))).add(T.seconds(parseInt(o??"00"))).add(T.milliseconds(parseInt(l??"00")));return t==="local"&&(u=u.add(T.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return T.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new T(BigInt(n.getTime())*T.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(T.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new j(BigInt(new Date().getTimezoneOffset())*T.MINUTE.valueOf())}static since(e){return new T().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new T(e).valueOf()}span(e){return this.range(e).span}range(e){return new Vn(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new T(e).valueOf()}afterEq(e){return this.valueOf()>=new T(e).valueOf()}before(e){return this.valueOf()<new T(e).valueOf()}beforeEq(e){return this.valueOf()<=new T(e).valueOf()}add(e){return new T(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new T(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(j.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(j.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(j.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(j.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(T.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(T.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new T(t)}get month(){return this.date().getMonth()}setMonth(e){const t=this.date();return t.setMonth(e),new T(t)}get day(){return this.date().getDate()}setDay(e){const t=this.date();return t.setDate(e),new T(t)}get hour(){return this.date().getHours()}setHour(e){const t=this.date();return t.setHours(e),new T(t)}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setMinutes(e),new T(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setSeconds(e),new T(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new T(t)}toString(){return this.date().toISOString()}remainder(e){return Di(this,e)}get isToday(){return this.truncate(j.DAY).equals(T.now().truncate(j.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new T(new Date)}static max(...e){let t=T.MIN;for(const n of e){const i=new T(n);i.after(t)&&(t=i)}return t}static min(...e){let t=T.MAX;for(const n of e){const i=new T(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new T(e)}static microseconds(e){return T.nanoseconds(e*1e3)}static milliseconds(e){return T.microseconds(e*1e3)}static seconds(e){return T.milliseconds(e*1e3)}static minutes(e){return T.seconds(e*60)}static hours(e){return T.minutes(e*60)}static days(e){return T.hours(e*24)}};m(x,"NANOSECOND",x.nanoseconds(1)),m(x,"MICROSECOND",x.microseconds(1)),m(x,"MILLISECOND",x.milliseconds(1)),m(x,"SECOND",x.seconds(1)),m(x,"MINUTE",x.minutes(1)),m(x,"HOUR",x.hours(1)),m(x,"DAY",x.days(1)),m(x,"MAX",new x((1n<<63n)-1n)),m(x,"MIN",new x(0)),m(x,"ZERO",new x(0)),m(x,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new x(r.value)),s.z.string().transform(r=>new x(BigInt(r))),s.z.instanceof(Number).transform(r=>new x(r)),s.z.number().transform(r=>new x(r)),s.z.instanceof(x)]));let M=x;const R=class E{constructor(e){m(this,"value"),m(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof E?e:e instanceof js?e.period:e instanceof M?new E(e):["number","bigint"].includes(typeof e)?E.seconds(e):new E(e)}static fromMilliseconds(e){return e instanceof E?e:e instanceof js?e.period:e instanceof M?new E(e):["number","bigint"].includes(typeof e)?E.milliseconds(e):new E(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new E(e).valueOf()}greaterThan(e){return this.valueOf()>new E(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new E(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new E(e).valueOf()}remainder(e){return Di(this,e)}truncate(e){return new E(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(E.DAY),t=this.truncate(E.HOUR),n=this.truncate(E.MINUTE),i=this.truncate(E.SECOND),a=this.truncate(E.MILLISECOND),o=this.truncate(E.MICROSECOND),l=this.truncate(E.NANOSECOND),u=e,h=t.sub(e),f=n.sub(t),d=i.sub(n),k=a.sub(i),S=o.sub(a),se=l.sub(o);let L="";return u.isZero||(L+=`${u.days}d `),h.isZero||(L+=`${h.hours}h `),f.isZero||(L+=`${f.minutes}m `),d.isZero||(L+=`${d.seconds}s `),k.isZero||(L+=`${k.milliseconds}ms `),S.isZero||(L+=`${S.microseconds}µs `),se.isZero||(L+=`${se.nanoseconds}ns`),L.trim()}mult(e){return new E(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number(E.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(E.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(E.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(E.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(E.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(E.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new E(e).valueOf()}add(e){return new E(this.valueOf()+new E(e).valueOf())}sub(e){return new E(this.valueOf()-new E(e).valueOf())}static nanoseconds(e=1){return new E(e)}static microseconds(e=1){return E.nanoseconds(Ye(e,1e3))}static milliseconds(e=1){return E.microseconds(Ye(e,1e3))}static seconds(e=1){return E.milliseconds(Ye(e,1e3))}static minutes(e=1){return E.seconds(Ye(e,60))}static hours(e){return E.minutes(Ye(e,60))}static days(e){return E.hours(Ye(e,24))}};m(R,"NANOSECOND",R.nanoseconds(1)),m(R,"MICROSECOND",R.microseconds(1)),m(R,"MILLISECOND",R.milliseconds(1)),m(R,"SECOND",R.seconds(1)),m(R,"MINUTE",R.minutes(1)),m(R,"HOUR",R.hours(1)),m(R,"DAY",R.days(1)),m(R,"MAX",new R((1n<<63n)-1n)),m(R,"MIN",new R(0)),m(R,"ZERO",new R(0)),m(R,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new R(r.value)),s.z.string().transform(r=>new R(BigInt(r))),s.z.instanceof(Number).transform(r=>new R(r)),s.z.number().transform(r=>new R(r)),s.z.instanceof(R)]));let j=R;const Nt=class pr extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new pr(e).valueOf()}get period(){return j.seconds(1/this.valueOf())}sampleCount(e){return new j(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new ee(t).valueOf()}span(e){return j.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new pr(e)}static khz(e){return pr.hz(e*1e3)}};m(Nt,"z",s.z.union([s.z.number().transform(r=>new Nt(r)),s.z.instanceof(Number).transform(r=>new Nt(r)),s.z.instanceof(Nt)]));let js=Nt;const W=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new An(e*this.valueOf())}};m(W,"UNKNOWN",new W(0)),m(W,"BIT128",new W(16)),m(W,"BIT64",new W(8)),m(W,"BIT32",new W(4)),m(W,"BIT16",new W(2)),m(W,"BIT8",new W(1)),m(W,"z",s.z.union([s.z.number().transform(r=>new W(r)),s.z.instanceof(Number).transform(r=>new W(r)),s.z.instanceof(W)]));let ee=W;const ce=class mr{constructor(e,t){m(this,"start"),m(this,"end"),typeof e=="object"&&"start"in e?(this.start=new M(e.start),this.end=new M(e.end)):(this.start=new M(e),this.end=new M(t))}get span(){return new j(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new mr(this.end,this.start)}equals(e){return this.start.equals(e.start)&&this.end.equals(e.end)}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(e,t=j.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=M.max(n.start,e.start),a=M.min(n.end,e.end);return a.before(i)?!1:new j(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof mr?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new mr(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}};m(ce,"MAX",new ce(M.MIN,M.MAX)),m(ce,"MIN",new ce(M.MAX,M.MIN)),m(ce,"ZERO",new ce(M.ZERO,M.ZERO)),m(ce,"z",s.z.union([s.z.object({start:M.z,end:M.z}).transform(r=>new ce(r.start,r.end)),s.z.instanceof(ce)]));let Vn=ce;const g=class B extends String{constructor(e){if(e instanceof B||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}const t=B.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}throw super(B.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=B.ARRAY_CONSTRUCTORS.get(this.toString());if(e==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return e}equals(e){return this.valueOf()===e.valueOf()}matches(...e){return e.some(t=>this.equals(t))}toString(){return this.valueOf()}get isVariable(){return this.equals(B.JSON)||this.equals(B.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(B.UUID)}get isInteger(){const e=this.toString();return e.startsWith("int")||e.startsWith("uint")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=B.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(B.UINT8)||this.equals(B.UINT16)||this.equals(B.UINT32)||this.equals(B.UINT64)}get isSigned(){return this.equals(B.INT8)||this.equals(B.INT16)||this.equals(B.INT32)||this.equals(B.INT64)}canSafelyCastTo(e){return this.equals(e)?!0:!this.isNumeric||!e.isNumeric||this.isVariable||e.isVariable||this.isUnsigned&&e.isSigned?!1:this.isFloat?e.isFloat&&this.density.valueOf()<=e.density.valueOf():this.equals(B.INT32)&&e.equals(B.FLOAT64)||this.equals(B.INT8)&&e.equals(B.FLOAT32)?!0:this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf()&&this.isUnsigned===e.isUnsigned:!1}canCastTo(e){return this.isNumeric&&e.isNumeric?!0:this.equals(e)}checkArray(e){return e.constructor===this.Array}toJSON(){return this.toString()}get usesBigInt(){return B.BIG_INT_TYPES.some(e=>e.equals(this))}};m(g,"UNKNOWN",new g("unknown")),m(g,"FLOAT64",new g("float64")),m(g,"FLOAT32",new g("float32")),m(g,"INT64",new g("int64")),m(g,"INT32",new g("int32")),m(g,"INT16",new g("int16")),m(g,"INT8",new g("int8")),m(g,"UINT64",new g("uint64")),m(g,"UINT32",new g("uint32")),m(g,"UINT16",new g("uint16")),m(g,"UINT8",new g("uint8")),m(g,"BOOLEAN",g.UINT8),m(g,"TIMESTAMP",new g("timestamp")),m(g,"UUID",new g("uuid")),m(g,"STRING",new g("string")),m(g,"JSON",new g("json")),m(g,"ARRAY_CONSTRUCTORS",new Map([[g.UINT8.toString(),Uint8Array],[g.UINT16.toString(),Uint16Array],[g.UINT32.toString(),Uint32Array],[g.UINT64.toString(),BigUint64Array],[g.FLOAT32.toString(),Float32Array],[g.FLOAT64.toString(),Float64Array],[g.INT8.toString(),Int8Array],[g.INT16.toString(),Int16Array],[g.INT32.toString(),Int32Array],[g.INT64.toString(),BigInt64Array],[g.TIMESTAMP.toString(),BigInt64Array],[g.STRING.toString(),Uint8Array],[g.JSON.toString(),Uint8Array],[g.UUID.toString(),Uint8Array]])),m(g,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,g.UINT8],[Uint16Array.name,g.UINT16],[Uint32Array.name,g.UINT32],[BigUint64Array.name,g.UINT64],[Float32Array.name,g.FLOAT32],[Float64Array.name,g.FLOAT64],[Int8Array.name,g.INT8],[Int16Array.name,g.INT16],[Int32Array.name,g.INT32],[BigInt64Array.name,g.INT64]])),m(g,"DENSITIES",new Map([[g.UINT8.toString(),ee.BIT8],[g.UINT16.toString(),ee.BIT16],[g.UINT32.toString(),ee.BIT32],[g.UINT64.toString(),ee.BIT64],[g.FLOAT32.toString(),ee.BIT32],[g.FLOAT64.toString(),ee.BIT64],[g.INT8.toString(),ee.BIT8],[g.INT16.toString(),ee.BIT16],[g.INT32.toString(),ee.BIT32],[g.INT64.toString(),ee.BIT64],[g.TIMESTAMP.toString(),ee.BIT64],[g.STRING.toString(),ee.UNKNOWN],[g.JSON.toString(),ee.UNKNOWN],[g.UUID.toString(),ee.BIT128]])),m(g,"ALL",[g.UNKNOWN,g.FLOAT64,g.FLOAT32,g.INT64,g.INT32,g.INT16,g.INT8,g.UINT64,g.UINT32,g.UINT16,g.UINT8,g.TIMESTAMP,g.UUID,g.STRING,g.JSON]),m(g,"BIG_INT_TYPES",[g.INT64,g.UINT64,g.TIMESTAMP]),m(g,"z",s.z.union([s.z.string().transform(r=>new g(r)),s.z.instanceof(g)]));let D=g;const K=class _ extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return _.bytes(this.valueOf()+e.valueOf())}sub(e){return _.bytes(this.valueOf()-e.valueOf())}truncate(e){return new _(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return _.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/_.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/_.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/_.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/_.TERABYTE.valueOf()}toString(){const e=this.truncate(_.TERABYTE),t=this.truncate(_.GIGABYTE),n=this.truncate(_.MEGABYTE),i=this.truncate(_.KILOBYTE),a=this.truncate(_.BYTE),o=e,l=t.sub(e),u=n.sub(t),h=i.sub(n),f=a.sub(i);let d="";return o.isZero||(d+=`${o.terabytes}TB `),l.isZero||(d+=`${l.gigabytes}GB `),u.isZero||(d+=`${u.megabytes}MB `),h.isZero||(d+=`${h.kilobytes}KB `),(!f.isZero||d==="")&&(d+=`${f.valueOf()}B`),d.trim()}static bytes(e=1){return new _(e)}static kilobytes(e=1){return _.bytes(e.valueOf()*1e3)}static megabytes(e=1){return _.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return _.megabytes(e.valueOf()*1e3)}static terabytes(e){return _.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};m(K,"BYTE",new K(1)),m(K,"KILOBYTE",K.kilobytes(1)),m(K,"MEGABYTE",K.megabytes(1)),m(K,"GIGABYTE",K.gigabytes(1)),m(K,"TERABYTE",K.terabytes(1)),m(K,"ZERO",new K(0)),m(K,"z",s.z.union([s.z.number().transform(r=>new K(r)),s.z.instanceof(K)]));let An=K;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);const Mi=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof M||r instanceof j||r instanceof Date},Bc=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):Et(t,-n).valueOf(),Et=(r,e)=>typeof r=="bigint"&&typeof e=="bigint"||typeof r=="number"&&typeof e=="number"?r+e:e===0?r:r===0?e:Number(r)+Number(e),Zc=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof qc?!0:Mi(r),Se=-1,Uc=s.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Lc=s.z.union([s.z.null(),s.z.undefined()]).transform(()=>new Uint8Array().buffer),xn=10,_c=(r,e)=>{if(r==="string"&&!e.isVariable)throw new Error(`cannot convert series of type ${e.toString()} to string`);if(r==="number"&&!e.isNumeric)throw new Error(`cannot convert series of type ${e.toString()} to number`);if(r==="bigint"&&!e.usesBigInt)throw new Error(`cannot convert series of type ${e.toString()} to bigint`)},zt=class le{constructor(e){m(this,"key",""),m(this,"isSynnaxSeries",!0),m(this,"dataType"),m(this,"sampleOffset"),m(this,"gl"),m(this,"_data"),m(this,"_timeRange"),m(this,"alignment",0n),m(this,"_cachedMin"),m(this,"_cachedMax"),m(this,"writePos",Se),m(this,"_refCount",0),m(this,"_cachedLength"),m(this,"_cachedIndexes"),Zc(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:o=0n,key:l=Dc()}=e,u=e.data??[];if(u instanceof le||typeof u=="object"&&"isSynnaxSeries"in u&&u.isSynnaxSeries===!0){const d=u;this.key=d.key,this.dataType=d.dataType,this.sampleOffset=d.sampleOffset,this.gl=d.gl,this._data=d._data,this._timeRange=d._timeRange,this.alignment=d.alignment,this._cachedMin=d._cachedMin,this._cachedMax=d._cachedMax,this.writePos=d.writePos,this._refCount=d._refCount,this._cachedLength=d._cachedLength;return}const h=Mi(u),f=Array.isArray(u);if(t!=null)this.dataType=new D(t);else{if(u instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(f||h){let d=u;if(!h){if(u.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");d=u[0]}if(typeof d=="string")this.dataType=D.STRING;else if(typeof d=="number")this.dataType=D.FLOAT64;else if(typeof d=="bigint")this.dataType=D.INT64;else if(typeof d=="boolean")this.dataType=D.BOOLEAN;else if(d instanceof M||d instanceof Date||d instanceof M)this.dataType=D.TIMESTAMP;else if(typeof d=="object")this.dataType=D.JSON;else throw new Error(`cannot infer data type of ${typeof d} when constructing a Series from a JS array`)}else this.dataType=new D(u)}if(!f&&!h)this._data=u;else{let d=h?[u]:u;const k=d[0];(k instanceof M||k instanceof Date||k instanceof j)&&(d=d.map(S=>new M(S).valueOf())),this.dataType.equals(D.STRING)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.join(`
1
+ "use strict";var ul=Object.defineProperty;var dl=(r,e,t)=>e in r?ul(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var l=(r,e,t)=>dl(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("zod"),b=r=>Array.isArray(r)?r:[r],Es="policy",zs="allow_all";var fl=Object.defineProperty,yl=(r,e,t)=>e in r?fl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,G=(r,e,t)=>yl(r,typeof e!="symbol"?e+"":e,t);const gl=r=>{const e=r.replace(/_[a-z]/g,t=>t[1].toUpperCase());return e.length>1&&e[0]===e[0].toUpperCase()&&e[1]===e[1].toUpperCase()||e.length===0?e:e[0].toLowerCase()+e.slice(1)},Na=r=>{const e=(t,n=Yn)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(o=>e(o,n));if(!wn(t))return t;n=wl(n);const s={},a=t;return Object.keys(a).forEach(o=>{let c=a[o];const h=r(o);n.recursive&&(wn(c)?wi(c,n.keepTypesOnRecursion)||(c=e(c,n)):n.recursiveInArray&&pi(c)&&(c=[...c].map(d=>{let f=d;return wn(d)?wi(f,n.keepTypesOnRecursion)||(f=e(d,n)):pi(d)&&(f=e({key:d},n).key),f}))),s[h]=c}),s};return e},Ns=Na(gl),pl=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),Ia=Na(pl),Yn={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},wl=(r=Yn)=>(r.recursive==null?r=Yn:r.recursiveInArray??(r.recursiveInArray=!1),r),pi=r=>r!=null&&Array.isArray(r),wn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),wi=(r,e)=>(e||[]).some(t=>r instanceof t),Is=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var ml=Object.defineProperty,bl=(r,e,t)=>e in r?ml(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,yt=(r,e,t)=>bl(r,typeof e!="symbol"?e+"":e,t);function vl(r){const e=r.length;let t=0,n=0;for(;n<e;){let s=r.charCodeAt(n++);if((s&4294967168)===0){t++;continue}else if((s&4294965248)===0)t+=2;else{if(s>=55296&&s<=56319&&n<e){const a=r.charCodeAt(n);(a&64512)===56320&&(++n,s=((s&1023)<<10)+(a&1023)+65536)}(s&4294901760)===0?t+=3:t+=4}}return t}function Tl(r,e,t){const n=r.length;let s=t,a=0;for(;a<n;){let o=r.charCodeAt(a++);if((o&4294967168)===0){e[s++]=o;continue}else if((o&4294965248)===0)e[s++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&a<n){const c=r.charCodeAt(a);(c&64512)===56320&&(++a,o=((o&1023)<<10)+(c&1023)+65536)}(o&4294901760)===0?(e[s++]=o>>12&15|224,e[s++]=o>>6&63|128):(e[s++]=o>>18&7|240,e[s++]=o>>12&63|128,e[s++]=o>>6&63|128)}e[s++]=o&63|128}}const Ol=new TextEncoder,Sl=50;function El(r,e,t){Ol.encodeInto(r,e.subarray(t))}function zl(r,e,t){r.length>Sl?El(r,e,t):Tl(r,e,t)}const Nl=4096;function $a(r,e,t){let n=e;const s=n+t,a=[];let o="";for(;n<s;){const c=r[n++];if((c&128)===0)a.push(c);else if((c&224)===192){const h=r[n++]&63;a.push((c&31)<<6|h)}else if((c&240)===224){const h=r[n++]&63,d=r[n++]&63;a.push((c&31)<<12|h<<6|d)}else if((c&248)===240){const h=r[n++]&63,d=r[n++]&63,f=r[n++]&63;let u=(c&7)<<18|h<<12|d<<6|f;u>65535&&(u-=65536,a.push(u>>>10&1023|55296),u=56320|u&1023),a.push(u)}else a.push(c);a.length>=Nl&&(o+=String.fromCharCode(...a),a.length=0)}return a.length>0&&(o+=String.fromCharCode(...a)),o}const Il=new TextDecoder,$l=200;function xl(r,e,t){const n=r.subarray(e,e+t);return Il.decode(n)}function kl(r,e,t){return t>$l?xl(r,e,t):$a(r,e,t)}let Er=class{constructor(e,t){this.type=e,this.data=t}},we=class Wn extends Error{constructor(e){super(e);const t=Object.create(Wn.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Wn.name})}};const At=4294967295;function Al(r,e,t){const n=t/4294967296,s=t;r.setUint32(e,n),r.setUint32(e+4,s)}function xa(r,e,t){const n=Math.floor(t/4294967296),s=t;r.setUint32(e,n),r.setUint32(e+4,s)}function ka(r,e){const t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}function Ul(r,e){const t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}const Cl=-1,Rl=4294967296-1,Bl=17179869184-1;function Pl({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=Bl)if(e===0&&r<=Rl){const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,r),t}else{const t=r/4294967296,n=r&4294967295,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setUint32(0,e<<2|t&3),a.setUint32(4,n),s}else{const t=new Uint8Array(12),n=new DataView(t.buffer);return n.setUint32(0,e),xa(n,4,r),t}}function Dl(r){const e=r.getTime(),t=Math.floor(e/1e3),n=(e-t*1e3)*1e6,s=Math.floor(n/1e9);return{sec:t+s,nsec:n-s*1e9}}function Ml(r){if(r instanceof Date){const e=Dl(r);return Pl(e)}else return null}function jl(r){const e=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(r.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const t=e.getUint32(0),n=e.getUint32(4),s=(t&3)*4294967296+n,a=t>>>2;return{sec:s,nsec:a}}case 12:{const t=ka(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new we(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}function Ll(r){const e=jl(r);return new Date(e.sec*1e3+e.nsec/1e6)}const _l={type:Cl,encode:Ml,decode:Ll};let tr=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(_l)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{const s=-1-e;this.builtInEncoders[s]=t,this.builtInDecoders[s]=n}}tryToEncode(e,t){for(let n=0;n<this.builtInEncoders.length;n++){const s=this.builtInEncoders[n];if(s!=null){const a=s(e,t);if(a!=null){const o=-1-n;return new Er(o,a)}}}for(let n=0;n<this.encoders.length;n++){const s=this.encoders[n];if(s!=null){const a=s(e,t);if(a!=null){const o=n;return new Er(o,a)}}}return e instanceof Er?e:null}decode(e,t,n){const s=t<0?this.builtInDecoders[-1-t]:this.decoders[t];return s?s(e,t,n):new Er(t,e)}};tr.defaultCodec=new tr;function Zl(r){return r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer}function Vn(r){return r instanceof Uint8Array?r:ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):Zl(r)?new Uint8Array(r):Uint8Array.from(r)}const ql=100,Fl=2048;let Yl=class Aa{constructor(e){this.entered=!1,this.extensionCodec=(e==null?void 0:e.extensionCodec)??tr.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.maxDepth=(e==null?void 0:e.maxDepth)??ql,this.initialBufferSize=(e==null?void 0:e.initialBufferSize)??Fl,this.sortKeys=(e==null?void 0:e.sortKeys)??!1,this.forceFloat32=(e==null?void 0:e.forceFloat32)??!1,this.ignoreUndefined=(e==null?void 0:e.ignoreUndefined)??!1,this.forceIntegerToFloat=(e==null?void 0:e.forceIntegerToFloat)??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new Aa({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,t){if(t>this.maxDepth)throw new Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){const t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){const t=new ArrayBuffer(e),n=new Uint8Array(t),s=new DataView(t);n.set(this.bytes),this.view=s,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const t=vl(e);this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),zl(e,this.bytes,this.pos),this.pos+=t}encodeObject(e,t){const n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,t);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw new Error(`Too large binary: ${t}`);const n=Vn(e);this.writeU8a(n)}encodeArray(e,t){const n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw new Error(`Too large array: ${n}`);for(const s of e)this.doEncode(s,t+1)}countWithoutUndefined(e,t){let n=0;for(const s of t)e[s]!==void 0&&n++;return n}encodeMap(e,t){const n=Object.keys(e);this.sortKeys&&n.sort();const s=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(s<16)this.writeU8(128+s);else if(s<65536)this.writeU8(222),this.writeU16(s);else if(s<4294967296)this.writeU8(223),this.writeU32(s);else throw new Error(`Too large map object: ${s}`);for(const a of n){const o=e[a];this.ignoreUndefined&&o===void 0||(this.encodeString(a),this.doEncode(o,t+1))}}encodeExtension(e){if(typeof e.data=="function"){const n=e.data(this.pos+6),s=n.length;if(s>=4294967296)throw new Error(`Too large extension object: ${s}`);this.writeU8(201),this.writeU32(s),this.writeI8(e.type),this.writeU8a(n);return}const t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw new Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),Al(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),xa(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}};function Bt(r,e){return new Yl(e).encodeSharedRef(r)}function mn(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}const Wl=16,Vl=16;class Gl{constructor(e=Wl,t=Vl){this.hit=0,this.miss=0,this.maxKeyLength=e,this.maxLengthPerKey=t,this.caches=[];for(let n=0;n<this.maxKeyLength;n++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){const s=this.caches[n-1];e:for(const a of s){const o=a.bytes;for(let c=0;c<n;c++)if(o[c]!==e[t+c])continue e;return a.str}return null}store(e,t){const n=this.caches[e.length-1],s={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=s:n.push(s)}decode(e,t,n){const s=this.find(e,t,n);if(s!=null)return this.hit++,s;this.miss++;const a=$a(e,t,n),o=Uint8Array.prototype.slice.call(e,t,t+n);return this.store(o,a),a}}const Gn="array",Ht="map_key",Ua="map_value",Hl=r=>{if(typeof r=="string"||typeof r=="number")return r;throw new we("The type of key must be string or number but "+typeof r)};class Kl{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const t=this.getUninitializedStateFromPool();t.type=Gn,t.position=0,t.size=e,t.array=new Array(e)}pushMapState(e){const t=this.getUninitializedStateFromPool();t.type=Ht,t.readCount=0,t.size=e,t.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===Gn){const t=e;t.size=0,t.array=void 0,t.position=0,t.type=void 0}if(e.type===Ht||e.type===Ua){const t=e;t.size=0,t.map=void 0,t.readCount=0,t.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Ut=-1,$s=new DataView(new ArrayBuffer(0)),Jl=new Uint8Array($s.buffer);try{$s.getInt8(0)}catch(r){if(!(r instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const mi=new RangeError("Insufficient data"),Xl=new Gl;let Ql=class Ca{constructor(e){this.totalPos=0,this.pos=0,this.view=$s,this.bytes=Jl,this.headByte=Ut,this.stack=new Kl,this.entered=!1,this.extensionCodec=(e==null?void 0:e.extensionCodec)??tr.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.rawStrings=(e==null?void 0:e.rawStrings)??!1,this.maxStrLength=(e==null?void 0:e.maxStrLength)??At,this.maxBinLength=(e==null?void 0:e.maxBinLength)??At,this.maxArrayLength=(e==null?void 0:e.maxArrayLength)??At,this.maxMapLength=(e==null?void 0:e.maxMapLength)??At,this.maxExtLength=(e==null?void 0:e.maxExtLength)??At,this.keyDecoder=(e==null?void 0:e.keyDecoder)!==void 0?e.keyDecoder:Xl,this.mapKeyConverter=(e==null?void 0:e.mapKeyConverter)??Hl}clone(){return new Ca({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Ut,this.stack.reset()}setBuffer(e){const t=Vn(e);this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Ut&&!this.hasRemaining(1))this.setBuffer(e);else{const t=this.bytes.subarray(this.pos),n=Vn(e),s=new Uint8Array(t.length+n.length);s.set(t),s.set(n,t.length),this.setBuffer(s)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:t,pos:n}=this;return new RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let t=!1,n;for await(const c of e){if(t)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(c);try{n=this.doDecodeSync(),t=!0}catch(h){if(!(h instanceof RangeError))throw h}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return n}const{headByte:s,pos:a,totalPos:o}=this;throw new RangeError(`Insufficient data in parsing ${mn(s)} at ${o} (${a} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){if(this.entered){yield*this.clone().decodeMultiAsync(e,t);return}try{this.entered=!0;let n=t,s=-1;for await(const a of e){if(t&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a),n&&(s=this.readArraySize(),n=!1,this.complete());try{for(;yield this.doDecodeSync(),--s!==0;);}catch(o){if(!(o instanceof RangeError))throw o}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){const s=e-128;if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e<160){const s=e-144;if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else{const s=e-160;t=this.decodeString(s,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)this.useBigInt64?t=this.readU64AsBigInt():t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)this.useBigInt64?t=this.readI64AsBigInt():t=this.readI64();else if(e===217){const s=this.lookU8();t=this.decodeString(s,1)}else if(e===218){const s=this.lookU16();t=this.decodeString(s,2)}else if(e===219){const s=this.lookU32();t=this.decodeString(s,4)}else if(e===220){const s=this.readU16();if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else if(e===221){const s=this.readU32();if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else if(e===222){const s=this.readU16();if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e===223){const s=this.readU32();if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e===196){const s=this.lookU8();t=this.decodeBinary(s,1)}else if(e===197){const s=this.lookU16();t=this.decodeBinary(s,2)}else if(e===198){const s=this.lookU32();t=this.decodeBinary(s,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){const s=this.lookU8();t=this.decodeExtension(s,1)}else if(e===200){const s=this.lookU16();t=this.decodeExtension(s,2)}else if(e===201){const s=this.lookU32();t=this.decodeExtension(s,4)}else throw new we(`Unrecognized type byte: ${mn(e)}`);this.complete();const n=this.stack;for(;n.length>0;){const s=n.top();if(s.type===Gn)if(s.array[s.position]=t,s.position++,s.position===s.size)t=s.array,n.release(s);else continue e;else if(s.type===Ht){if(t==="__proto__")throw new we("The key __proto__ is not allowed");s.key=this.mapKeyConverter(t),s.type=Ua;continue e}else if(s.map[s.key]=t,s.readCount++,s.readCount===s.size)t=s.map,n.release(s);else{s.key=null,s.type=Ht;continue e}}return t}}readHeadByte(){return this.headByte===Ut&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Ut}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new we(`Unrecognized array type byte: ${mn(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new we(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new we(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,t){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,t):this.decodeBinary(e,t)}decodeUtf8String(e,t){var n;if(e>this.maxStrLength)throw new we(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw mi;const s=this.pos+t;let a;return this.stateIsMapKey()&&(n=this.keyDecoder)!=null&&n.canBeCached(e)?a=this.keyDecoder.decode(this.bytes,s,e):a=kl(this.bytes,s,e),this.pos+=t+e,a}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===Ht:!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new we(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw mi;const n=this.pos+t,s=this.bytes.subarray(n,n+e);return this.pos+=t+e,s}decodeExtension(e,t){if(e>this.maxExtLength)throw new we(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const n=this.view.getInt8(this.pos+t),s=this.decodeBinary(e,t+1);return this.extensionCodec.decode(s,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=Ul(this.view,this.pos);return this.pos+=8,e}readI64(){const e=ka(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}};function Ra(r,e){return new Ql(e).decode(r)}let eh=class{constructor(){yt(this,"contentType","application/json"),yt(this,"decoder"),yt(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(r){return this.encoder.encode(this.encodeString(r))}decode(r,e){return this.decodeString(this.decoder.decode(r),e)}decodeString(r,e){const t=JSON.parse(r),n=Ns(t);return e!=null?e.parse(n):n}encodeString(r){const e=Ia(r);return JSON.stringify(e,(t,n)=>ArrayBuffer.isView(n)?Array.from(n):Is(n)&&"encode_value"in n?typeof n.value=="bigint"?n.value.toString():n.value:typeof n=="bigint"?n.toString():n)}static registerCustomType(){}},th=class{constructor(){yt(this,"contentType","text/csv")}encode(r){const e=this.encodeString(r);return new TextEncoder().encode(e)}decode(r,e){const t=new TextDecoder().decode(r);return this.decodeString(t,e)}encodeString(r){if(!Array.isArray(r)||r.length===0||!Is(r[0]))throw new Error("Payload must be an array of objects");const e=Object.keys(r[0]),t=[e.join(",")];return r.forEach(n=>{const s=e.map(a=>JSON.stringify(n[a]??""));t.push(s.join(","))}),t.join(`
2
+ `)}decodeString(r,e){const[t,...n]=r.trim().split(`
3
+ `).map(o=>o.trim());if(t.length===0)return e!=null?e.parse({}):{};const s=t.split(",").map(o=>o.trim()),a={};return s.forEach(o=>{a[o]=[]}),n.forEach(o=>{const c=o.split(",").map(h=>h.trim());s.forEach((h,d)=>{const f=this.parseValue(c[d]);f!=null&&a[h].push(f)})}),e!=null?e.parse(a):a}parseValue(r){if(r==null||r.length===0)return null;const e=Number(r);return isNaN(e)?r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1):r:e}static registerCustomType(){}},rh=class{constructor(){yt(this,"contentType","text/plain")}encode(r){return new TextEncoder().encode(r)}decode(r,e){const t=new TextDecoder().decode(r);return e!=null?e.parse(t):t}};const De=new tr;De.register({type:0,encode:r=>{if(ArrayBuffer.isView(r)){const e=Array.from(r);return Bt(e,{extensionCodec:De})}return Is(r)&&"encode_value"in r?typeof r.value=="bigint"?Bt(r.value.toString(),{extensionCodec:De}):Bt(r.value,{extensionCodec:De}):typeof r=="bigint"?Bt(r.toString(),{extensionCodec:De}):null},decode:r=>Ra(r,{extensionCodec:De})});let nh=class{constructor(){yt(this,"contentType","application/msgpack")}encode(r){const e=Ia(r);return Bt(e,{extensionCodec:De}).slice()}decode(r,e){const t=Ra(r,{extensionCodec:De}),n=Ns(t);return e!=null?e.parse(n):n}static registerCustomType(){}};const Rr=new eh;new th;new rh;new nh;const sh=r=>r!=null&&typeof r=="object"&&"toString"in r,ih=(r,e=!1)=>{const t=sh(r)?"stringer":typeof r;let n;switch(t){case"string":n=(s,a)=>s.localeCompare(a);break;case"stringer":n=(s,a)=>s.toString().localeCompare(a.toString());break;case"number":n=(s,a)=>Number(s)-Number(a);break;case"bigint":n=(s,a)=>BigInt(s)-BigInt(a)>0n?1:-1;break;case"boolean":n=(s,a)=>Number(s)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?ah(n):n},ah=r=>(e,t)=>r(t,e),Vr=i.z.tuple([i.z.number(),i.z.number()]);i.z.tuple([i.z.bigint(),i.z.bigint()]);const Ba=i.z.object({width:i.z.number(),height:i.z.number()}),oh=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()}),ch=["width","height"];i.z.enum(ch);const lh=["start","center","end"],hh=["signedWidth","signedHeight"];i.z.enum(hh);const jr=i.z.object({x:i.z.number(),y:i.z.number()}),uh=i.z.object({clientX:i.z.number(),clientY:i.z.number()}),dh=["x","y"],Pa=i.z.enum(dh),Da=["top","right","bottom","left"];i.z.enum(Da);const fh=["left","right"],Ma=i.z.enum(fh),yh=["top","bottom"],ja=i.z.enum(yh),La=["center"],bi=i.z.enum(La),gh=[...Da,...La],_a=i.z.enum(gh);i.z.enum(lh);const ph=["first","last"];i.z.enum(ph);const wh=i.z.object({lower:i.z.number(),upper:i.z.number()}),mh=i.z.object({lower:i.z.bigint(),upper:i.z.bigint()});i.z.union([wh,Vr]);i.z.union([mh,Vr]);i.z.enum([...Pa.options,..._a.options]);i.z.union([Pa,_a,i.z.instanceof(String)]);const bh=r=>typeof r=="bigint"||r instanceof BigInt,it=(r,e)=>bh(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),Ge=(r,e)=>{const t={};if(typeof r=="number"||typeof r=="bigint")e!=null?(t.lower=r,t.upper=e):(t.lower=typeof r=="bigint"?0n:0,t.upper=r);else if(Array.isArray(r)){if(r.length!==2)throw new Error("bounds: expected array of length 2");[t.lower,t.upper]=r}else return vi(r);return vi(t)},vi=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Ti=(r,e)=>{const t=Ge(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e};i.z.object({x:Ma.or(bi),y:ja.or(bi)});const vh=i.z.object({x:Ma,y:ja}),Th=Object.freeze({x:"left",y:"top"}),Oh=(r,e)=>r.x===e.x&&r.y===e.y,Oi=i.z.union([i.z.number(),jr,Vr,Ba,oh,uh]),Sh=(r,e)=>{if(typeof r=="string"){if(e===void 0)throw new Error("The y coordinate must be given.");return r==="x"?{x:e,y:0}:{x:0,y:e}}return typeof r=="number"?{x:r,y:e??r}:Array.isArray(r)?{x:r[0],y:r[1]}:"signedWidth"in r?{x:r.signedWidth,y:r.signedHeight}:"clientX"in r?{x:r.clientX,y:r.clientY}:"width"in r?{x:r.width,y:r.height}:{x:r.x,y:r.y}},Si=Object.freeze({x:0,y:0}),zr=i.z.union([i.z.number(),i.z.string()]);i.z.object({top:zr,left:zr,width:zr,height:zr});i.z.object({left:i.z.number(),top:i.z.number(),right:i.z.number(),bottom:i.z.number()});i.z.object({one:jr,two:jr,root:vh});const xs=(r,e,t=0,n=0,s)=>{const a={one:{...Si},two:{...Si},root:s??Th};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:s??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},bn=r=>{const e=xs(r);return{lower:e.one.x,upper:e.two.x}},vn=r=>{const e=xs(r);return{lower:e.one.y,upper:e.two.y}},Eh=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,zh=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()});i.z.union([Ba,zh,jr,Vr]);var Nh=Object.defineProperty,Ih=(r,e,t)=>e in r?Nh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,$e=(r,e,t)=>Ih(r,typeof e!="symbol"?e+"":e,t);const $h=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;i.z.object({offset:Oi,scale:Oi});i.z.object({offset:i.z.number(),scale:i.z.number()});const xh=r=>(e,t,n,s)=>t==="dimension"?[e,n]:[e,s?n-r:n+r],kh=r=>(e,t,n,s)=>[e,s?n/r:n*r],Ah=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:s,upper:a}=e,{lower:o,upper:c}=r,h=a-s,d=c-o;if(t==="dimension")return[r,n*(d/h)];const f=(n-s)*(d/h)+o;return[r,f]},Uh=r=>(e,t,n)=>[r,n],Ch=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:s}=r;return[r,s-(t-n)]},Rh=r=>(e,t,n)=>{const{lower:s,upper:a}=r;return n=$h(n,s,a),[e,n]},Hn=class Pt{constructor(){$e(this,"ops",[]),$e(this,"currBounds",null),$e(this,"currType",null),$e(this,"reversed",!1),this.ops=[]}static translate(e){return new Pt().translate(e)}static magnify(e){return new Pt().magnify(e)}static scale(e,t){return new Pt().scale(e,t)}translate(e){const t=this.new(),n=xh(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=kh(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=Ge(e,t),s=this.new(),a=Ah(n);return a.type="scale",s.ops.push(a),s}clamp(e,t){const n=Ge(e,t),s=this.new(),a=Rh(n);return a.type="clamp",s.ops.push(a),s}reBound(e,t){const n=Ge(e,t),s=this.new(),a=Uh(n);return a.type="re-bound",s.ops.push(a),s}invert(){const e=Ch();e.type="invert";const t=this.new();return t.ops.push(e),t}pos(e){return this.exec("position",e)}dim(e){return this.exec("dimension",e)}new(){const e=new Pt;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,s],a)=>a(n,e,s,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,s)=>{if(n.type==="scale"||t.some(([o,c])=>s>=o&&s<=c))return;const a=e.ops.findIndex((o,c)=>o.type==="scale"&&c>s);a!==-1&&t.push([s,a])}),t.forEach(([n,s])=>{const a=e.ops.slice(n,s);a.unshift(e.ops[s]),e.ops.splice(n,s-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};$e(Hn,"IDENTITY",new Hn);let Ei=Hn;const zi=class Ne{constructor(e=new Ei,t=new Ei,n=null){$e(this,"x"),$e(this,"y"),$e(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new Ne().translate(e,t)}static translateX(e){return new Ne().translateX(e)}static translateY(e){return new Ne().translateY(e)}static clamp(e){return new Ne().clamp(e)}static magnify(e){return new Ne().magnify(e)}static scale(e){return new Ne().scale(e)}static reBound(e){return new Ne().reBound(e)}translate(e,t){const n=Sh(e,t),s=this.copy();return s.x=this.x.translate(n.x),s.y=this.y.translate(n.y),s}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(Eh(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!Oh(n,e.root)&&(n.x!==e.root.x&&(t.x=t.x.invert()),n.y!==e.root.y&&(t.y=t.y.invert())),t.x=t.x.scale(bn(e)),t.y=t.y.scale(vn(e)),t}return t.x=t.x.scale(e.width),t.y=t.y.scale(e.height),t}reBound(e){const t=this.copy();return t.x=this.x.reBound(bn(e)),t.y=this.y.reBound(vn(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(bn(e)),t.y=this.y.clamp(vn(e)),t}copy(){const e=new Ne;return e.currRoot=this.currRoot,e.x=this.x,e.y=this.y,e}reverse(){const e=this.copy();return e.x=this.x.reverse(),e.y=this.y.reverse(),e}pos(e){return{x:this.x.pos(e.x),y:this.y.pos(e.y)}}dim(e){return{x:this.x.dim(e.x),y:this.y.dim(e.y)}}box(e){return xs(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}get transform(){return{scale:this.dim({x:1,y:1}),offset:this.pos({x:0,y:0})}}};$e(zi,"IDENTITY",new zi);var Bh=Object.defineProperty,Ph=(r,e,t)=>e in r?Bh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e,t)=>Ph(r,typeof e!="symbol"?e+"":e,t);let Dh=(r,e=21)=>(t=e)=>{let n="",s=t|0;for(;s--;)n+=r[Math.random()*r.length|0];return n};const Mh="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",jh=Dh(Mh,11),Lh=()=>jh(),_h=i.z.enum(["static","dynamic"]),Za=(r,e)=>{const t=new M(e);if(![k.DAY,k.HOUR,k.MINUTE,k.SECOND,k.MILLISECOND,k.MICROSECOND,k.NANOSECOND].some(s=>s.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof M?new M(n):new k(n)},C=class v{constructor(e,t="UTC"){if(g(this,"value"),g(this,"encodeValue",!0),e==null)this.value=v.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*v.MILLISECOND.valueOf();else if(typeof e=="string")this.value=v.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=v.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=v.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=v.MAX:e=v.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const s=new Date(e,t-1,n,0,0,0,0);return new v(BigInt(s.getTime())*v.MILLISECOND.valueOf()).truncate(v.DAY).valueOf()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,s,a]=e.split(":");let o="00",c="00";a!=null&&([o,c]=a.split("."));let h=v.hours(parseInt(n??"00")).add(v.minutes(parseInt(s??"00"))).add(v.seconds(parseInt(o??"00"))).add(v.milliseconds(parseInt(c??"00")));return t==="local"&&(h=h.add(v.utcOffset)),h.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return v.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new v(BigInt(n.getTime())*v.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(v.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new k(BigInt(new Date().getTimezoneOffset())*v.MINUTE.valueOf())}static since(e){return new v().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new v(e).valueOf()}span(e){return this.range(e).span}range(e){return new Kt(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new v(e).valueOf()}afterEq(e){return this.valueOf()>=new v(e).valueOf()}before(e){return this.valueOf()<new v(e).valueOf()}beforeEq(e){return this.valueOf()<=new v(e).valueOf()}add(e){return new v(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new v(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(k.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(k.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(k.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(k.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(v.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(v.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new v(t)}get month(){return this.date().getUTCMonth()}setMonth(e){const t=this.date();return t.setUTCMonth(e),new v(t)}get day(){return this.date().getUTCDate()}setDay(e){const t=this.date();return t.setUTCDate(e),new v(t)}get hour(){return this.date().getUTCHours()}setHour(e){const t=this.date();return t.setUTCHours(e),new v(t,"UTC")}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setUTCMinutes(e),new v(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setUTCSeconds(e),new v(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new v(t)}toString(){return this.date().toISOString()}remainder(e){return Za(this,e)}get isToday(){return this.truncate(k.DAY).equals(v.now().truncate(k.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new v(new Date)}static max(...e){let t=v.MIN;for(const n of e){const s=new v(n);s.after(t)&&(t=s)}return t}static min(...e){let t=v.MAX;for(const n of e){const s=new v(n);s.before(t)&&(t=s)}return t}static nanoseconds(e,t="UTC"){return new v(e,t)}static microseconds(e,t="UTC"){return v.nanoseconds(e*1e3,t)}static milliseconds(e,t="UTC"){return v.microseconds(e*1e3,t)}static seconds(e,t="UTC"){return v.milliseconds(e*1e3,t)}static minutes(e,t="UTC"){return v.seconds(e*60,t)}static hours(e,t="UTC"){return v.minutes(e*60,t)}static days(e,t="UTC"){return v.hours(e*24,t)}};g(C,"NANOSECOND",C.nanoseconds(1)),g(C,"MICROSECOND",C.microseconds(1)),g(C,"MILLISECOND",C.milliseconds(1)),g(C,"SECOND",C.seconds(1)),g(C,"MINUTE",C.minutes(1)),g(C,"HOUR",C.hours(1)),g(C,"DAY",C.days(1)),g(C,"MAX",new C((1n<<63n)-1n)),g(C,"MIN",new C(0)),g(C,"ZERO",new C(0)),g(C,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new C(r.value)),i.z.string().transform(r=>new C(BigInt(r))),i.z.instanceof(Number).transform(r=>new C(r)),i.z.number().transform(r=>new C(r)),i.z.instanceof(C)]));let M=C;const R=class I{constructor(e){g(this,"value"),g(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof I?e:e instanceof Ni?e.period:e instanceof M?new I(e):["number","bigint"].includes(typeof e)?I.seconds(e):new I(e)}static fromMilliseconds(e){return e instanceof I?e:e instanceof Ni?e.period:e instanceof M?new I(e):["number","bigint"].includes(typeof e)?I.milliseconds(e):new I(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new I(e).valueOf()}greaterThan(e){return this.valueOf()>new I(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new I(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new I(e).valueOf()}remainder(e){return Za(this,e)}truncate(e){return new I(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(I.DAY),t=this.truncate(I.HOUR),n=this.truncate(I.MINUTE),s=this.truncate(I.SECOND),a=this.truncate(I.MILLISECOND),o=this.truncate(I.MICROSECOND),c=this.truncate(I.NANOSECOND),h=e,d=t.sub(e),f=n.sub(t),u=s.sub(n),N=a.sub(s),S=o.sub(a),j=c.sub(o);let U="";return h.isZero||(U+=`${h.days}d `),d.isZero||(U+=`${d.hours}h `),f.isZero||(U+=`${f.minutes}m `),u.isZero||(U+=`${u.seconds}s `),N.isZero||(U+=`${N.milliseconds}ms `),S.isZero||(U+=`${S.microseconds}µs `),j.isZero||(U+=`${j.nanoseconds}ns`),U.trim()}mult(e){return new I(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number(I.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(I.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(I.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(I.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(I.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(I.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new I(e).valueOf()}add(e){return new I(this.valueOf()+new I(e).valueOf())}sub(e){return new I(this.valueOf()-new I(e).valueOf())}static nanoseconds(e=1){return new I(e)}static microseconds(e=1){return I.nanoseconds(it(e,1e3))}static milliseconds(e=1){return I.microseconds(it(e,1e3))}static seconds(e=1){return I.milliseconds(it(e,1e3))}static minutes(e=1){return I.seconds(it(e,60))}static hours(e){return I.minutes(it(e,60))}static days(e){return I.hours(it(e,24))}};g(R,"NANOSECOND",R.nanoseconds(1)),g(R,"MICROSECOND",R.microseconds(1)),g(R,"MILLISECOND",R.milliseconds(1)),g(R,"SECOND",R.seconds(1)),g(R,"MINUTE",R.minutes(1)),g(R,"HOUR",R.hours(1)),g(R,"DAY",R.days(1)),g(R,"MAX",new R((1n<<63n)-1n)),g(R,"MIN",new R(0)),g(R,"ZERO",new R(0)),g(R,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new R(r.value)),i.z.string().transform(r=>new R(BigInt(r))),i.z.instanceof(Number).transform(r=>new R(r)),i.z.number().transform(r=>new R(r)),i.z.instanceof(R)]));let k=R;const Dt=class Br extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new Br(e).valueOf()}get period(){return k.seconds(1/this.valueOf())}sampleCount(e){return new k(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new se(t).valueOf()}span(e){return k.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new Br(e)}static khz(e){return Br.hz(e*1e3)}};g(Dt,"z",i.z.union([i.z.number().transform(r=>new Dt(r)),i.z.instanceof(Number).transform(r=>new Dt(r)),i.z.instanceof(Dt)]));let Ni=Dt;const H=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new Kn(e*this.valueOf())}};g(H,"UNKNOWN",new H(0)),g(H,"BIT128",new H(16)),g(H,"BIT64",new H(8)),g(H,"BIT32",new H(4)),g(H,"BIT16",new H(2)),g(H,"BIT8",new H(1)),g(H,"z",i.z.union([i.z.number().transform(r=>new H(r)),i.z.instanceof(Number).transform(r=>new H(r)),i.z.instanceof(H)]));let se=H;const fe=class Mt{constructor(e,t){g(this,"start"),g(this,"end"),typeof e=="object"&&"start"in e?(this.start=new M(e.start),this.end=new M(e.end)):(this.start=new M(e),this.end=new M(t))}get span(){return new k(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new Mt(this.end,this.start)}get numericBounds(){return{lower:Number(this.start.valueOf()),upper:Number(this.end.valueOf())}}equals(e,t=k.ZERO){if(t.isZero)return this.start.equals(e.start)&&this.end.equals(e.end);let n=this.start.sub(e.start).valueOf(),s=this.end.sub(e.end).valueOf();return n<0&&(n=-n),s<0&&(s=-s),n<=t.valueOf()&&s<=t.valueOf()}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(e,t=k.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const s=M.max(n.start,e.start),a=M.min(n.end,e.end);return a.before(s)?!1:new k(a.sub(s)).greaterThanOrEqual(t)}contains(e){return e instanceof Mt?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new Mt(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}static max(...e){return new Mt(M.min(...e.map(t=>t.start)),M.max(...e.map(t=>t.end)))}};g(fe,"MAX",new fe(M.MIN,M.MAX)),g(fe,"MIN",new fe(M.MAX,M.MIN)),g(fe,"ZERO",new fe(M.ZERO,M.ZERO)),g(fe,"z",i.z.union([i.z.object({start:M.z,end:M.z}).transform(r=>new fe(r.start,r.end)),i.z.instanceof(fe)]));let Kt=fe;const p=class _{constructor(e){if(g(this,"value"),g(this,"encodeValue",!0),e instanceof _||typeof e=="string"||typeof e.valueOf()=="string"){this.value=e.valueOf();return}const t=_.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){this.value=t.valueOf();return}throw this.value=_.UNKNOWN.valueOf(),new Error(`unable to find data type for ${e.toString()}`)}valueOf(){return this.value}get Array(){const e=_.ARRAY_CONSTRUCTORS.get(this.toString());if(e==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return e}equals(e){return this.valueOf()===e.valueOf()}matches(...e){return e.some(t=>this.equals(t))}toString(){return this.valueOf()}get isVariable(){return this.equals(_.JSON)||this.equals(_.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(_.UUID)}get isInteger(){const e=this.toString();return e.startsWith("int")||e.startsWith("uint")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=_.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(_.UINT8)||this.equals(_.UINT16)||this.equals(_.UINT32)||this.equals(_.UINT64)}get isSigned(){return this.equals(_.INT8)||this.equals(_.INT16)||this.equals(_.INT32)||this.equals(_.INT64)}canSafelyCastTo(e){return this.equals(e)?!0:!this.isNumeric||!e.isNumeric||this.isVariable||e.isVariable||this.isUnsigned&&e.isSigned?!1:this.isFloat?e.isFloat&&this.density.valueOf()<=e.density.valueOf():this.equals(_.INT32)&&e.equals(_.FLOAT64)||this.equals(_.INT8)&&e.equals(_.FLOAT32)?!0:this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf()&&this.isUnsigned===e.isUnsigned:!1}canCastTo(e){return this.isNumeric&&e.isNumeric?!0:this.equals(e)}toJSON(){return this.toString()}get usesBigInt(){return _.BIG_INT_TYPES.some(e=>e.equals(this))}};g(p,"UNKNOWN",new p("unknown")),g(p,"FLOAT64",new p("float64")),g(p,"FLOAT32",new p("float32")),g(p,"INT64",new p("int64")),g(p,"INT32",new p("int32")),g(p,"INT16",new p("int16")),g(p,"INT8",new p("int8")),g(p,"UINT64",new p("uint64")),g(p,"UINT32",new p("uint32")),g(p,"UINT16",new p("uint16")),g(p,"UINT8",new p("uint8")),g(p,"BOOLEAN",p.UINT8),g(p,"TIMESTAMP",new p("timestamp")),g(p,"UUID",new p("uuid")),g(p,"STRING",new p("string")),g(p,"JSON",new p("json")),g(p,"ARRAY_CONSTRUCTORS",new Map([[p.UINT8.toString(),Uint8Array],[p.UINT16.toString(),Uint16Array],[p.UINT32.toString(),Uint32Array],[p.UINT64.toString(),BigUint64Array],[p.FLOAT32.toString(),Float32Array],[p.FLOAT64.toString(),Float64Array],[p.INT8.toString(),Int8Array],[p.INT16.toString(),Int16Array],[p.INT32.toString(),Int32Array],[p.INT64.toString(),BigInt64Array],[p.TIMESTAMP.toString(),BigInt64Array],[p.STRING.toString(),Uint8Array],[p.JSON.toString(),Uint8Array],[p.UUID.toString(),Uint8Array]])),g(p,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,p.UINT8],[Uint16Array.name,p.UINT16],[Uint32Array.name,p.UINT32],[BigUint64Array.name,p.UINT64],[Float32Array.name,p.FLOAT32],[Float64Array.name,p.FLOAT64],[Int8Array.name,p.INT8],[Int16Array.name,p.INT16],[Int32Array.name,p.INT32],[BigInt64Array.name,p.INT64]])),g(p,"DENSITIES",new Map([[p.UINT8.toString(),se.BIT8],[p.UINT16.toString(),se.BIT16],[p.UINT32.toString(),se.BIT32],[p.UINT64.toString(),se.BIT64],[p.FLOAT32.toString(),se.BIT32],[p.FLOAT64.toString(),se.BIT64],[p.INT8.toString(),se.BIT8],[p.INT16.toString(),se.BIT16],[p.INT32.toString(),se.BIT32],[p.INT64.toString(),se.BIT64],[p.TIMESTAMP.toString(),se.BIT64],[p.STRING.toString(),se.UNKNOWN],[p.JSON.toString(),se.UNKNOWN],[p.UUID.toString(),se.BIT128]])),g(p,"ALL",[p.UNKNOWN,p.FLOAT64,p.FLOAT32,p.INT64,p.INT32,p.INT16,p.INT8,p.UINT64,p.UINT32,p.UINT16,p.UINT8,p.TIMESTAMP,p.UUID,p.STRING,p.JSON]),g(p,"BIG_INT_TYPES",[p.INT64,p.UINT64,p.TIMESTAMP]),g(p,"z",i.z.union([i.z.string().transform(r=>new p(r)),i.z.instanceof(p)]));let D=p;const te=class Y extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return Y.bytes(this.valueOf()+e.valueOf())}sub(e){return Y.bytes(this.valueOf()-e.valueOf())}truncate(e){return new Y(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return Y.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/Y.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/Y.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/Y.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/Y.TERABYTE.valueOf()}toString(){const e=this.truncate(Y.TERABYTE),t=this.truncate(Y.GIGABYTE),n=this.truncate(Y.MEGABYTE),s=this.truncate(Y.KILOBYTE),a=this.truncate(Y.BYTE),o=e,c=t.sub(e),h=n.sub(t),d=s.sub(n),f=a.sub(s);let u="";return o.isZero||(u+=`${o.terabytes}TB `),c.isZero||(u+=`${c.gigabytes}GB `),h.isZero||(u+=`${h.megabytes}MB `),d.isZero||(u+=`${d.kilobytes}KB `),(!f.isZero||u==="")&&(u+=`${f.valueOf()}B`),u.trim()}static bytes(e=1){return new Y(e)}static kilobytes(e=1){return Y.bytes(e.valueOf()*1e3)}static megabytes(e=1){return Y.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return Y.megabytes(e.valueOf()*1e3)}static terabytes(e){return Y.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};g(te,"BYTE",new te(1)),g(te,"KILOBYTE",te.kilobytes(1)),g(te,"MEGABYTE",te.megabytes(1)),g(te,"GIGABYTE",te.gigabytes(1)),g(te,"TERABYTE",te.terabytes(1)),g(te,"ZERO",new te(0)),g(te,"z",i.z.union([i.z.number().transform(r=>new te(r)),i.z.instanceof(te)]));let Kn=te;i.z.union([i.z.instanceof(Uint8Array),i.z.instanceof(Uint16Array),i.z.instanceof(Uint32Array),i.z.instanceof(BigUint64Array),i.z.instanceof(Float32Array),i.z.instanceof(Float64Array),i.z.instanceof(Int8Array),i.z.instanceof(Int16Array),i.z.instanceof(Int32Array),i.z.instanceof(BigInt64Array)]);const qa=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof M||r instanceof k||r instanceof Date},Zh=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):jt(t,-n).valueOf(),jt=(r,e)=>e==0?r:r==0?e:typeof r=="bigint"&&typeof e=="bigint"||typeof r=="number"&&typeof e=="number"?r+e:Number(r)+Number(e),qh=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof Vh?!0:qa(r),Ce=-1,Fh=i.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Yh=i.z.union([i.z.null(),i.z.undefined()]).transform(()=>new Uint8Array().buffer),Jn=10,Wh=(r,e)=>{if(r==="string"&&!e.isVariable)throw new Error(`cannot convert series of type ${e.toString()} to string`);if(r==="number"&&!e.isNumeric)throw new Error(`cannot convert series of type ${e.toString()} to number`);if(r==="bigint"&&!e.usesBigInt)throw new Error(`cannot convert series of type ${e.toString()} to bigint`)},Lt=class ye{constructor(e){g(this,"key",""),g(this,"isSynnaxSeries",!0),g(this,"dataType"),g(this,"sampleOffset"),g(this,"gl"),g(this,"_data"),g(this,"timeRange",Kt.ZERO),g(this,"alignment",0n),g(this,"_cachedMin"),g(this,"_cachedMax"),g(this,"writePos",Ce),g(this,"_refCount",0),g(this,"_cachedLength"),g(this,"_cachedIndexes"),qh(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:s=0,glBufferUsage:a="static",alignment:o=0n,key:c=Lh()}=e,h=e.data??[];if(h instanceof ye||typeof h=="object"&&"isSynnaxSeries"in h&&h.isSynnaxSeries===!0){const u=h;this.key=u.key,this.dataType=u.dataType,this.sampleOffset=u.sampleOffset,this.gl=u.gl,this._data=u._data,this.timeRange=u.timeRange,this.alignment=u.alignment,this._cachedMin=u._cachedMin,this._cachedMax=u._cachedMax,this.writePos=u.writePos,this._refCount=u._refCount,this._cachedLength=u._cachedLength;return}const d=qa(h),f=Array.isArray(h);if(t!=null)this.dataType=new D(t);else{if(h instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(f||d){let u=h;if(!d){if(h.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");u=h[0]}if(typeof u=="string")this.dataType=D.STRING;else if(typeof u=="number")this.dataType=D.FLOAT64;else if(typeof u=="bigint")this.dataType=D.INT64;else if(typeof u=="boolean")this.dataType=D.BOOLEAN;else if(u instanceof M||u instanceof Date||u instanceof M)this.dataType=D.TIMESTAMP;else if(typeof u=="object")this.dataType=D.JSON;else throw new Error(`cannot infer data type of ${typeof u} when constructing a Series from a JS array`)}else this.dataType=new D(h)}if(!f&&!d)this._data=h;else{let u=d?[h]:h;const N=u[0];(N instanceof M||N instanceof Date||N instanceof k)&&(u=u.map(S=>new M(S).valueOf())),this.dataType.equals(D.STRING)?(this._cachedLength=u.length,this._data=new TextEncoder().encode(`${u.join(`
4
4
  `)}
5
- `).buffer):this.dataType.equals(D.JSON)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.map(S=>gr.encodeString(S)).join(`
5
+ `).buffer):this.dataType.equals(D.JSON)?(this._cachedLength=u.length,this._data=new TextEncoder().encode(`${u.map(S=>Rr.encodeString(S)).join(`
6
6
  `)}
7
- `).buffer):this.dataType.usesBigInt&&typeof k=="number"?this._data=new this.dataType.Array(d.map(S=>BigInt(Math.round(S)))).buffer:!this.dataType.usesBigInt&&typeof k=="bigint"?this._data=new this.dataType.Array(d.map(S=>Number(S))).buffer:this._data=new this.dataType.Array(d).buffer}this.key=l,this.alignment=o,this.sampleOffset=i??0,this._timeRange=n,this.gl={control:null,buffer:null,prevBuffer:0,bufferUsage:a}}static alloc({capacity:e,dataType:t,...n}){if(e===0)throw new Error("[Series] - cannot allocate an array of length 0");const i=new new D(t).Array(e),a=new le({data:i.buffer,dataType:t,...n});return a.writePos=0,a}static createTimestamps(e,t,n){const i=n.spanRange(t.span(e)),a=new BigInt64Array(e);for(let o=0;o<e;o++)a[o]=BigInt(n.add(t.span(o)).valueOf());return new le({data:a,dataType:D.TIMESTAMP,timeRange:i})}get refCount(){return this._refCount}static fromStrings(e,t){const n=new TextEncoder().encode(`${e.join(`
7
+ `).buffer):this.dataType.usesBigInt&&typeof N=="number"?this._data=new this.dataType.Array(u.map(S=>BigInt(Math.round(S)))).buffer:!this.dataType.usesBigInt&&typeof N=="bigint"?this._data=new this.dataType.Array(u.map(S=>Number(S))).buffer:this._data=new this.dataType.Array(u).buffer}this.key=c,this.alignment=o,this.sampleOffset=s??0,this.timeRange=n??Kt.ZERO,this.gl={control:null,buffer:null,prevBuffer:0,bufferUsage:a}}static alloc({capacity:e,dataType:t,...n}){if(e===0)throw new Error("[Series] - cannot allocate an array of length 0");const s=new new D(t).Array(e),a=new ye({data:s.buffer,dataType:t,...n});return a.writePos=0,a}static createTimestamps(e,t,n){const s=n.spanRange(t.span(e)),a=new BigInt64Array(e);for(let o=0;o<e;o++)a[o]=BigInt(n.add(t.span(o)).valueOf());return new ye({data:a,dataType:D.TIMESTAMP,timeRange:s})}get refCount(){return this._refCount}static fromStrings(e,t){const n=new TextEncoder().encode(`${e.join(`
8
8
  `)}
9
- `);return new le({data:n,dataType:D.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(`${e.map(i=>gr.encodeString(i)).join(`
9
+ `);return new ye({data:n,dataType:D.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(`${e.map(s=>Rr.encodeString(s)).join(`
10
10
  `)}
11
- `);return new le({data:n,dataType:D.JSON,timeRange:t})}acquire(e){this._refCount++,e!=null&&this.updateGLBuffer(e)}release(){if(this._refCount--,this._refCount===0&&this.gl.control!=null)this.maybeGarbageCollectGLBuffer(this.gl.control);else if(this._refCount<0)throw new Error("cannot release an array with a negative reference count")}write(e){if(!e.dataType.equals(this.dataType))throw new Error("buffer must be of the same type as this array");return this.dataType.isVariable?this.writeVariable(e):this.writeFixed(e)}writeVariable(e){if(this.writePos===Se)return 0;const t=this.byteCapacity.valueOf()-this.writePos,n=e.subBytes(0,t);return this.writeToUnderlyingData(n),this.writePos+=n.byteLength.valueOf(),this._cachedLength!=null&&(this._cachedLength+=n.length,this.calculateCachedLength()),n.length}writeFixed(e){if(this.writePos===Se)return 0;const t=this.capacity-this.writePos,n=e.sub(0,t);return this.writeToUnderlyingData(n),this._cachedLength=void 0,this.maybeRecomputeMinMax(n),this.writePos+=n.length,n.length}writeToUnderlyingData(e){this.underlyingData.set(e.data,this.writePos)}get buffer(){return typeof this._data=="object"&&"buffer"in this._data?this._data.buffer:this._data}get underlyingData(){return new this.dataType.Array(this._data)}get data(){return this.writePos===Se?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches(D.STRING,D.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
12
- `).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(D.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=D.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const i=this.underlyingData.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(i.buffer),o=>o.toString(16).padStart(2,"0")).join("").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5");t[n]=a}return t}parseJSON(e){if(!this.dataType.equals(D.JSON))throw new Error("cannot parse non-JSON series as JSON");return new TextDecoder().decode(this.underlyingData).split(`
13
- `).slice(0,-1).map(t=>e.parse(gr.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new An(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===Se?this.byteCapacity:this.dataType.isVariable?new An(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===Se?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,i)=>{n===xn&&(e++,t.push(i+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let i=0;i<this.length;i++)n[i]=Bc(this.dataType,e,this.data[i],t);return new le({data:n.buffer,dataType:e,timeRange:this._timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals(D.TIMESTAMP))this._cachedMax=this.data[this.data.length-1];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}else{const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}return this._cachedMax}get max(){if(this.dataType.isVariable)throw new Error("cannot calculate maximum on a variable length data type");return this.writePos===0?-1/0:(this._cachedMax??(this._cachedMax=this.calcRawMax()),Et(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(D.TIMESTAMP))this._cachedMin=this.data[0];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}else{const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}return this._cachedMin}get min(){if(this.dataType.isVariable)throw new Error("cannot calculate minimum on a variable length data type");return this.writePos===0?1/0:(this._cachedMin??(this._cachedMin=this.calcRawMin()),Et(this._cachedMin,this.sampleOffset))}get bounds(){return Be(Number(this.min),Number(this.max))}maybeRecomputeMinMax(e){if(this._cachedMin!=null){const t=e._cachedMin??e.calcRawMin();t<this._cachedMin&&(this._cachedMin=t)}if(this._cachedMax!=null){const t=e._cachedMax??e.calcRawMax();t>this._cachedMax&&(this._cachedMax=t)}}enrich(){this.max,this.min}get range(){return Et(this.max,-this.min)}atAlignment(e,t){const n=Number(e-this.alignment);if(n<0||n>=this.length){if(t===!0)throw new Error(`[series] - no value at index ${n}`);return}return this.at(n,t)}at(e,t){if(this.dataType.isVariable)return this.atVariable(e,t??!1);e<0&&(e=this.length+e);const n=this.data[e];if(n==null){if(t===!0)throw new Error(`[series] - no value at index ${e}`);return}return Et(n,this.sampleOffset)}atVariable(e,t){let n=0,i=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],i=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let o=0;o<this.data.length;o++)if(this.data[o]===xn){if(e===0){i=o;break}n=o+1,e--}if(i===0&&(i=this.data.length),n>=i||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,i);return this.dataType.equals(D.STRING)?new TextDecoder().decode(a):Ii(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=tc(e);for(;t<=n;){const a=Math.floor((t+n)/2),o=i(this.at(a,!0),e);if(o===0)return a;o<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals(D.FLOAT32)&&!this.dataType.equals(D.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:i}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==i)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==Se){i===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(i).valueOf(),o=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,o.buffer),this.gl.prevBuffer=this.writePos}else e.bufferData(e.ARRAY_BUFFER,this.buffer,n==="static"?e.STATIC_DRAW:e.DYNAMIC_DRAW),this.gl.prevBuffer=Se}as(e){return _c(e,this.dataType),this}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:Ls(this.alignmentBounds.lower),upper:Ls(this.alignmentBounds.upper)},timeRange:(e=this._timeRange)==null?void 0:e.toString(),length:this.length,capacity:this.capacity}}get memInfo(){return{key:this.key,length:this.length,byteLength:this.byteLength,glBuffer:this.gl.buffer!=null}}get alignmentBounds(){return Be(this.alignment,this.alignment+BigInt(this.length))}maybeGarbageCollectGLBuffer(e){this.gl.buffer!=null&&(e.deleteBuffer(this.gl.buffer),this.gl.buffer=null,this.gl.prevBuffer=0,this.gl.control=null)}get glBuffer(){if(this.gl.buffer==null)throw new Error("gl buffer not initialized");return this.gl.prevBuffer!==this.writePos&&console.warn("buffer not updated"),this.gl.buffer}[Symbol.iterator](){if(this.dataType.isVariable){const e=new Yc(this);return this.dataType.equals(D.JSON)?new Wc(e):e}return new Fc(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new Ds(this,e,t??this.length)}subAlignmentIterator(e,t){return new Ds(this,Number(e-this.alignment),Number(t-this.alignment))}subBytes(e,t){if(e>=0&&(t==null||t>=this.byteLength.valueOf()))return this;const n=this.data.subarray(e,t);return new le({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let i;return e?i=this.data.subarray(t,n):i=this.data.slice(t,n),new le({data:i,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new le({data:this.buffer,dataType:this.dataType,timeRange:Vn.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};m(zt,"crudeZ",s.z.object({timeRange:Vn.z.optional(),dataType:D.z,alignment:s.z.coerce.bigint().optional(),data:s.z.union([Uc,Lc,s.z.instanceof(ArrayBuffer),s.z.instanceof(Uint8Array)]),glBufferUsage:Mc.optional().default("static").optional()})),m(zt,"z",zt.crudeZ.transform(r=>new zt(r)));let qc=zt;class Ds{constructor(e,t,n){m(this,"series"),m(this,"end"),m(this,"index"),this.series=e;const i=Be(0,e.length);this.end=As(i,n),this.index=As(i,t)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}}class Yc{constructor(e){if(m(this,"series"),m(this,"index"),m(this,"decoder"),!e.dataType.isVariable)throw new Error("cannot create a variable series iterator for a non-variable series");this.series=e,this.index=0,this.decoder=new TextDecoder}next(){const e=this.index,t=this.series.data;for(;this.index<t.length&&t[this.index]!==xn;)this.index++;const n=this.index;return e===n?{done:!0,value:void 0}:(this.index++,{done:!1,value:this.decoder.decode(this.series.buffer.slice(e,n))})}[Symbol.iterator](){return this}}var Ms,Bs;class Wc{constructor(e){m(this,"wrapped"),m(this,Ms,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:gr.decodeString(e.value)}}[(Bs=Symbol.iterator,Ms=Symbol.toStringTag,Bs)](){return this}}var Zs,Us;class Fc{constructor(e){m(this,"series"),m(this,"index"),m(this,Zs,"SeriesIterator"),this.series=e,this.index=0}next(){return this.index>=this.series.length?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[(Us=Symbol.iterator,Zs=Symbol.toStringTag,Us)](){return this}}const Ls=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}};s.z.object({key:s.z.string(),value:s.z.string()});s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown());const Bi=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",Gc=Bi(),Zi=["macOS","Windows","Linux"],Vc=["macos","windows","linux"],Jc={macos:"macOS",windows:"Windows",linux:"Linux"},Kc=s.z.enum(Zi).or(s.z.enum(Vc).transform(r=>Jc[r])),Hc=()=>{if(typeof window>"u")return;const r=window.navigator.userAgent.toLowerCase();if(r.includes("mac"))return"macOS";if(r.includes("win"))return"Windows";if(r.includes("linux"))return"Linux"};let on;const Xc=(r={})=>{const{force:e,default:t}=r;return e??on??(on=Hc(),on??t)},Ui=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:Zi,RUNTIME:Gc,detect:Bi,getOS:Xc,osZ:Kc},Symbol.toStringTag,{value:"Module"}));var Qc=Object.defineProperty,el=(r,e,t)=>e in r?Qc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,St=(r,e,t)=>el(r,typeof e!="symbol"?e+"":e,t);const tl=(...r)=>r.map(Li).join(""),Li=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),rl=r=>r.endsWith("/")?r.slice(0,-1):r,nl=(r,e="")=>r===null?"":`?${Object.entries(r).filter(([,t])=>t==null?!1:Array.isArray(t)?t.length>0:!0).map(([t,n])=>`${e}${t}=${n}`).join("&")}`,Rn=class Cn{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){St(this,"protocol"),St(this,"host"),St(this,"port"),St(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Li(i)}replace(e){return new Cn({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Cn({...this,pathPrefix:tl(this.path,e)})}toString(){return rl(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};St(Rn,"UNKNOWN",new Rn({host:"unknown",port:0}));let sl=Rn;const il=-128,al=127;s.z.number().int().min(il).max(al);const ol=-32768,cl=32767;s.z.number().int().min(ol).max(cl);const ll=-2147483648,ul=2147483647;s.z.number().int().min(ll).max(ul);const hl=-9223372036854775808n,dl=9223372036854775807n;s.z.bigint().min(hl).max(dl);const fl=255;s.z.number().int().min(0).max(fl);const yl=65535;s.z.number().int().min(0).max(yl);const gl=4294967295;s.z.number().int().min(0).max(gl);const pl=18446744073709551615n;s.z.bigint().min(0n).max(pl);var ml=Object.defineProperty,wl=(r,e,t)=>e in r?ml(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,It=(r,e,t)=>wl(r,typeof e!="symbol"?e+"":e,t);const bl=async r=>await new Promise(e=>setTimeout(e,j.fromMilliseconds(r).milliseconds)),Tl=s.z.object({interval:j.z.optional(),maxRetries:s.z.number().optional(),scale:s.z.number().optional()}),vl=(r={})=>{const e=r.sleepFn||bl,t=r.maxRetries??5,n=r.scale??1;let i=0,a=new j(r.interval??j.milliseconds(1));return async()=>i>=t?!1:(await e(a),a=a.mult(n),i++,!0)},Ol=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:Tl,create:vl},Symbol.toStringTag,{value:"Module"})),pe=class extends Number{};It(pe,"ABSOLUTE",255),It(pe,"MINIMUM",0),It(pe,"BOUNDS",{lower:pe.MINIMUM,upper:pe.ABSOLUTE+1}),It(pe,"z",s.z.union([s.z.instanceof(pe),s.z.number().int().min(0).max(255).transform(r=>new pe(r)),s.z.instanceof(Number).transform(r=>new pe(r))]));s.z.object({name:s.z.string(),key:s.z.string()});const _i=class $t extends Error{constructor(){super($t.MESSAGE)}matches(e){return typeof e=="string"?e.includes($t.MESSAGE):e instanceof $t||e.message.includes($t.MESSAGE)}};It(_i,"MESSAGE","canceled");let Nl=_i;new Nl;s.z.string().regex(/^\d+\.\d+\.\d+$/);const El=["standard","scientific","engineering"];s.z.enum(El);const Q=r=>e=>e!=null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"?e.type.includes(r):e instanceof Error?e.message.includes(r):typeof e!="string"?!1:e.includes(r);let oe=class extends Error{constructor(){super(...arguments),A(this,"discriminator","FreighterError"),A(this,"type","")}};const zl=r=>{if(r==null||typeof r!="object")return!1;const e=r;if(e.discriminator!=="FreighterError")return!1;if(!("type"in e))throw new Error(`Freighter error is missing its type property: ${JSON.stringify(e)}`);return!0},_s="unknown",qs="nil",Sl="freighter",Vt=s.z.object({type:s.z.string(),data:s.z.string()});class Il{constructor(){A(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:qs,data:""};if(zl(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:_s,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===qs)return null;if(e.type===_s)return new Ys(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new Ys(e.data)}}const qi=new Il,Yi=({encode:r,decode:e})=>qi.register({encode:r,decode:e}),Sr=r=>qi.decode(r);class Ys extends oe{constructor(){super(...arguments),A(this,"type","unknown")}}const Dr="freighter.",wr=class Wi extends oe{constructor(){super("EOF"),A(this,"type",Wi.TYPE)}};A(wr,"TYPE",`${Dr}eof`),A(wr,"matches",Q(wr.TYPE));let Ce=wr;const br=class Fi extends oe{constructor(){super("StreamClosed"),A(this,"type",Fi.TYPE)}};A(br,"TYPE",`${Dr}stream_closed`),A(br,"matches",Q(br.TYPE));let ht=br;const Tr=class Gi extends oe{constructor(e={}){const{message:t="Unreachable",url:n=sl.UNKNOWN}=e;super(t),A(this,"type",Gi.TYPE),A(this,"url"),this.url=n}};A(Tr,"TYPE",`${Dr}unreachable`),A(Tr,"matches",Q(Tr.TYPE));let Pe=Tr;const $l=r=>{if(!r.type.startsWith(Sl))return null;if(Ce.matches(r))return{type:Ce.TYPE,data:"EOF"};if(ht.matches(r))return{type:ht.TYPE,data:"StreamClosed"};if(Pe.matches(r))return{type:Pe.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},kl=r=>{if(!r.type.startsWith(Dr))return null;switch(r.type){case Ce.TYPE:return new Ce;case ht.TYPE:return new ht;case Pe.TYPE:return new Pe;default:throw new Error(`Unknown error type: ${r.data}`)}};Yi({encode:$l,decode:kl});let Vi=class{constructor(){A(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const i=async a=>{if(n===this.middleware.length)return await t(a);const o=this.middleware[n];return n++,await o(a,i)};return await i(e)}};const Ji="Content-Type",Ws=r=>{if(Ui.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(i,a)=>await e(i,{...a,agent:n})};class Al extends Vi{constructor(e,t,n=!1){return super(),A(this,"endpoint"),A(this,"encoder"),A(this,"fetch"),this.endpoint=e.replace({protocol:n?"https":"http"}),this.encoder=t,this.fetch=Ws(this.endpoint.protocol),new Proxy(this,{get:(i,a,o)=>a==="endpoint"?this.endpoint:Reflect.get(i,a,o)})}get headers(){return{[Ji]:this.encoder.contentType}}async send(e,t,n,i){t=n==null?void 0:n.parse(t);let a=null;const o=this.endpoint.child(e),l={};l.method="POST",l.body=this.encoder.encode(t??{});const[,u]=await this.executeMiddleware({target:o.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async h=>{const f={...h,params:{}};l.headers={...this.headers,...h.params};let d;try{d=await Ws(h.protocol)(h.target,l)}catch(S){let se=S;return se.message==="Load failed"&&(se=new Pe({url:o})),[f,se]}const k=await d.arrayBuffer();if(d!=null&&d.ok)return i!=null&&(a=this.encoder.decode(k,i)),[f,null];try{if(d.status!==400)return[f,new Error(d.statusText)];const S=this.encoder.decode(k,Vt),se=Sr(S);return[f,se]}catch(S){return[f,new Error(`[freighter] - failed to decode error: ${d.statusText}: ${S.message}`)]}});return[a,u]}}const xl=(r,e)=>{class t{constructor(i){A(this,"wrapped"),this.wrapped=i}use(...i){this.wrapped.use(...i)}async send(i,a,o,l){const u=Ol.create(e);do{const[h,f]=await this.wrapped.send(i,a,o,l);if(f==null||!Pe.matches(f))return[h,f];if(!await u())return[h,f]}while(!0)}}return new t(r)},w=async(r,e,t,n,i)=>{const[a,o]=await r.send(e,t,n,i);if(o!=null)throw o;return a},Rl=()=>Ui.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Cl=s.z.object({type:s.z.enum(["data","close","open"]),payload:s.z.unknown().optional(),error:s.z.optional(Vt)});class Pl{constructor(e,t,n,i){A(this,"encoder"),A(this,"reqSchema"),A(this,"resSchema"),A(this,"ws"),A(this,"serverClosed"),A(this,"sendClosed"),A(this,"receiveDataQueue",[]),A(this,"receiveCallbacksQueue",[]),this.encoder=t,this.reqSchema=n,this.resSchema=i,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}async receiveOpenAck(){const e=await this.receiveMsg();if(e.type!=="open"){if(e.error==null)throw new Error("Message error must be defined");return Sr(e.error)}return null}send(e){if(this.serverClosed!=null)return new Ce;if(this.sendClosed)throw new ht;return this.ws.send(this.encoder.encode({type:"data",payload:e})),null}async receive(){if(this.serverClosed!=null)return[null,this.serverClosed];const e=await this.receiveMsg();if(e.type==="close"){if(e.error==null)throw new Error("Message error must be defined");return this.serverClosed=Sr(e.error),[null,this.serverClosed]}return[this.resSchema.parse(e.payload),null]}received(){return this.receiveDataQueue.length!==0}closeSend(){if(this.sendClosed||this.serverClosed!=null)return;const e={type:"close"};try{this.ws.send(this.encoder.encode(e))}finally{this.sendClosed=!0}}async receiveMsg(){return this.receiveDataQueue.shift()??await new Promise((t,n)=>this.receiveCallbacksQueue.push({resolve:t,reject:n}))}addMessage(e){const t=this.receiveCallbacksQueue.shift();t!=null?t.resolve(e):this.receiveDataQueue.push(e)}listenForMessages(){this.ws.onmessage=e=>this.addMessage(this.encoder.decode(e.data,Cl)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:Zl(e)?Ce.TYPE:ht.TYPE,data:""}})}}const jl="freighterctx",Dl=1e3,Ml=1001,Bl=[Dl,Ml],Zl=r=>Bl.includes(r.code),Ki=class Hi extends Vi{constructor(e,t,n=!1){super(),A(this,"baseUrl"),A(this,"encoder"),this.baseUrl=e.replace({protocol:n?"wss":"ws"}),this.encoder=t}async stream(e,t,n){const i=Rl();let a;const[,o]=await this.executeMiddleware({target:e,protocol:"websocket",params:{},role:"client"},async l=>{const u=i(this.buildURL(e,l)),h={...l,params:{}};u.binaryType=Hi.MESSAGE_TYPE;const f=await this.wrapSocket(u,t,n);return f instanceof Error?[h,f]:(a=f,[h,null])});if(o!=null)throw o;return a}buildURL(e,t){const n=nl({[Ji]:this.encoder.contentType,...t.params},jl);return this.baseUrl.child(e).toString()+n}async wrapSocket(e,t,n){return await new Promise(i=>{e.onopen=()=>{const a=new Pl(e,this.encoder,t,n);a.receiveOpenAck().then(o=>{o!=null?i(o):i(a)}).catch(o=>i(o))},e.onerror=a=>{const o=a;i(new Error(o.message))}})}};A(Ki,"MESSAGE_TYPE","arraybuffer");let Ul=Ki;const Xi="all",Qi="create",ea="delete",ta="retrieve",ra="update",Ir=s.z.enum([Xi,Qi,ea,ta,ra]),Ll=r=>{const e=r.replace(/_[a-z]/g,t=>t[1].toUpperCase());return e.length>1&&e[0]===e[0].toUpperCase()&&e[1]===e[1].toUpperCase()||e.length===0?e:e[0].toLowerCase()+e.slice(1)},na=r=>{const e=(t,n=Pn)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(o=>e(o,n));if(!cn(t))return t;n=Yl(n);const i={},a=t;return Object.keys(a).forEach(o=>{let l=a[o];const u=r(o);n.recursive&&(cn(l)?Gs(l,n.keepTypesOnRecursion)||(l=e(l,n)):n.recursiveInArray&&Fs(l)&&(l=[...l].map(h=>{let f=h;return cn(h)?Gs(f,n.keepTypesOnRecursion)||(f=e(h,n)):Fs(h)&&(f=e({key:h},n).key),f}))),i[u]=l}),i};return e},sa=na(Ll),_l=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),ql=na(_l),Pn={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},Yl=(r=Pn)=>(r.recursive==null?r=Pn:r.recursiveInArray??(r.recursiveInArray=!1),r),Fs=r=>r!=null&&Array.isArray(r),cn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),Gs=(r,e)=>(e||[]).some(t=>r instanceof t),Jn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var Wl=Object.defineProperty,Fl=(r,e,t)=>e in r?Wl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mt=(r,e,t)=>Fl(r,typeof e!="symbol"?e+"":e,t);let ia=class{constructor(){Mt(this,"contentType","application/json"),Mt(this,"decoder"),Mt(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e)).buffer}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),i=sa(n);return t!=null?t.parse(i):i}encodeString(e){const t=ql(e);return JSON.stringify(t,(n,i)=>ArrayBuffer.isView(i)?Array.from(i):Jn(i)&&"encode_value"in i?typeof i.value=="bigint"?i.value.toString():i.value:typeof i=="bigint"?i.toString():i)}static registerCustomType(){}},aa=class{constructor(){Mt(this,"contentType","text/csv")}encode(e){const t=this.encodeString(e);return new TextEncoder().encode(t).buffer}decode(e,t){const n=new TextDecoder().decode(e);return this.decodeString(n,t)}encodeString(e){if(!Array.isArray(e)||e.length===0||!Jn(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(i=>{const a=t.map(o=>JSON.stringify(i[o]??""));n.push(a.join(","))}),n.join(`
14
- `)}decodeString(e,t){const[n,...i]=e.trim().split(`
15
- `).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),o={};return a.forEach(l=>{o[l]=[]}),i.forEach(l=>{const u=l.split(",").map(h=>h.trim());a.forEach((h,f)=>{const d=this.parseValue(u[f]);d!=null&&o[h].push(d)})}),t!=null?t.parse(o):o}parseValue(e){if(e==null||e.length===0)return null;const t=Number(e);return isNaN(t)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:t}static registerCustomType(){}},oa=class{constructor(){Mt(this,"contentType","text/plain")}encode(e){return new TextEncoder().encode(e).buffer}decode(e,t){const n=new TextDecoder().decode(e);return t!=null?t.parse(n):n}};const ut=new ia,Gl=new aa,Vl=new oa,Jl=[ut],Jt=Object.freeze(Object.defineProperty({__proto__:null,CSVCodec:aa,CSV_CODEC:Gl,ENCODERS:Jl,JSONCodec:ia,JSON_CODEC:ut,TEXT_CODEC:Vl,TextCodec:oa},Symbol.toStringTag,{value:"Module"})),Kl=r=>[...new Set(r)],Hl=(r,e,t=!0)=>{const n=new Map;return r.forEach(i=>{const a=e(i);if(n.has(a)){if(t)return;n.delete(a)}n.set(a,i)}),Array.from(n.values())},Vs=Object.freeze(Object.defineProperty({__proto__:null,by:Hl,unique:Kl},Symbol.toStringTag,{value:"Module"})),Xl=r=>r!=null&&typeof r=="object"&&"toString"in r,Ql=(r,e=!1)=>{const t=Xl(r)?"stringer":typeof r;let n;switch(t){case"string":n=(i,a)=>i.localeCompare(a);break;case"stringer":n=(i,a)=>i.toString().localeCompare(a.toString());break;case"number":n=(i,a)=>Number(i)-Number(a);break;case"bigint":n=(i,a)=>BigInt(i)-BigInt(a)>0n?1:-1;break;case"boolean":n=(i,a)=>Number(i)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?eu(n):n},eu=r=>(e,t)=>r(t,e),Mr=0,ln=-1,un=1,tu=r=>r<Mr,ru=r=>r>Mr,nu=r=>r===Mr,Br=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const ca=s.z.object({width:s.z.number(),height:s.z.number()}),su=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),iu=["width","height"];s.z.enum(iu);const au=["start","center","end"],ou=["signedWidth","signedHeight"];s.z.enum(ou);const $r=s.z.object({x:s.z.number(),y:s.z.number()}),cu=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),lu=["x","y"],la=s.z.enum(lu),ua=["top","right","bottom","left"];s.z.enum(ua);const uu=["left","right"],ha=s.z.enum(uu),hu=["top","bottom"],da=s.z.enum(hu),fa=["center"],Js=s.z.enum(fa),du=[...ua,...fa],ya=s.z.enum(du);s.z.enum(au);const fu=["first","last"];s.z.enum(fu);const yu=s.z.object({lower:s.z.number(),upper:s.z.number()}),gu=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([yu,Br]);s.z.union([gu,Br]);s.z.enum([...la.options,...ya.options]);s.z.union([la,ya,s.z.instanceof(String)]);const mt=r=>typeof r=="bigint"||r instanceof BigInt,hn=(r,e)=>mt(r)?r.valueOf()-BigInt(e.valueOf().valueOf()):r.valueOf()-Number(e.valueOf()),pu=(r,e)=>mt(r)?r.valueOf()+BigInt(e.valueOf().valueOf()):r+Number(e.valueOf()),Ks=(r,e)=>mt(r)?r===BigInt(e.valueOf().valueOf()):r===Number(e.valueOf()),mu=(r,e)=>mt(r)?r.valueOf()<BigInt(e.valueOf())?r:BigInt(e.valueOf()):r.valueOf()<Number(e.valueOf())?r:Number(e.valueOf()),wu=r=>mt(r)||r instanceof BigInt?r.valueOf()<0n?-r:r:r.valueOf()<0?-r:r,We=(r,e)=>mt(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),te=(r,e)=>{const t={};if(typeof r=="number"||typeof r=="bigint")e!=null?(t.lower=r,t.upper=e):(t.lower=typeof r=="bigint"?0n:0,t.upper=r);else if(Array.isArray(r)){if(r.length!==2)throw new Error("bounds: expected array of length 2");[t.lower,t.upper]=r}else return Hs(r);return Hs(t)},Hs=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Xs=(r,e)=>{const t=te(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e},ur=(r,e)=>{const t=te(r);if(typeof e=="number"||typeof e=="bigint")return e>=t.lower&&e<t.upper;const n=te(e);return n.lower>=t.lower&&n.upper<=t.upper},bu=(r,e,t)=>{const n=r.map(l=>te(l)),i=t>0?1:t<0?-1:0;if(i===0)return e;let a=t,o=e;for(;Ks(a,0)===!1;){const l=n.findIndex(u=>i>0?o>=u.lower&&o<u.upper:o>u.lower&&o<=u.upper);if(l!==-1){const u=n[l];let h;if(i>0?h=hn(u.upper,o):h=hn(o,u.lower),h>0){const f=mu(wu(a),h);if(o=pu(o,i>0?f:-f),a=hn(a,i>0?f:-f),Ks(a,0))return o;continue}}if(i>0){const u=n.filter(h=>h.lower>o);if(u.length>0)o=u[0].lower;else return o}else{const u=n.filter(h=>h.upper<o);if(u.length>0)o=u[u.length-1].upper;else return o}}return o},Tu=(r,e,t)=>{const n=r.map(o=>te(o));if(e===t)return typeof e=="bigint"?0n:0;const i=e<t?te([e,t]):te([t,e]);let a=typeof e=="bigint"?0n:0;for(const o of n){const l=o.lower>i.lower?o.lower:i.lower,u=o.upper<i.upper?o.upper:i.upper;if(l<u){const h=u-l;a=a+h}}return a};s.z.object({x:ha.or(Js),y:da.or(Js)});const vu=s.z.object({x:ha,y:da}),Ou=Object.freeze({x:"left",y:"top"}),Nu=(r,e)=>r.x===e.x&&r.y===e.y,Qs=s.z.union([s.z.number(),$r,Br,ca,su,cu]),Eu=(r,e)=>{if(typeof r=="string"){if(e===void 0)throw new Error("The y coordinate must be given.");return r==="x"?{x:e,y:0}:{x:0,y:e}}return typeof r=="number"?{x:r,y:e??r}:Array.isArray(r)?{x:r[0],y:r[1]}:"signedWidth"in r?{x:r.signedWidth,y:r.signedHeight}:"clientX"in r?{x:r.clientX,y:r.clientY}:"width"in r?{x:r.width,y:r.height}:{x:r.x,y:r.y}},ei=Object.freeze({x:0,y:0}),hr=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:hr,left:hr,width:hr,height:hr});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:$r,two:$r,root:vu});const Kn=(r,e,t=0,n=0,i)=>{const a={one:{...ei},two:{...ei},root:i??Ou};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},dn=r=>{const e=Kn(r);return{lower:e.one.x,upper:e.two.x}},fn=r=>{const e=Kn(r);return{lower:e.one.y,upper:e.two.y}},zu=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,Su=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([ca,Su,$r,Br]);var Iu=Object.defineProperty,$u=(r,e,t)=>e in r?Iu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Te=(r,e,t)=>$u(r,typeof e!="symbol"?e+"":e,t);const ku=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:Qs,scale:Qs});s.z.object({offset:s.z.number(),scale:s.z.number()});const Au=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],xu=r=>(e,t,n,i)=>[e,i?n/r:n*r],Ru=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:o,upper:l}=r,u=a-i,h=l-o;if(t==="dimension")return[r,n*(h/u)];const f=(n-i)*(h/u)+o;return[r,f]},Cu=r=>(e,t,n)=>[r,n],Pu=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},ju=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=ku(n,i,a),[e,n]},jn=class kt{constructor(){Te(this,"ops",[]),Te(this,"currBounds",null),Te(this,"currType",null),Te(this,"reversed",!1),this.ops=[]}static translate(e){return new kt().translate(e)}static magnify(e){return new kt().magnify(e)}static scale(e,t){return new kt().scale(e,t)}translate(e){const t=this.new(),n=Au(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=xu(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=te(e,t),i=this.new(),a=Ru(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=te(e,t),i=this.new(),a=ju(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=te(e,t),i=this.new(),a=Cu(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=Pu();e.type="invert";const t=this.new();return t.ops.push(e),t}pos(e){return this.exec("position",e)}dim(e){return this.exec("dimension",e)}new(){const e=new kt;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([o,l])=>i>=o&&i<=l))return;const a=e.ops.findIndex((o,l)=>o.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};Te(jn,"IDENTITY",new jn);let ti=jn;const ri=class we{constructor(e=new ti,t=new ti,n=null){Te(this,"x"),Te(this,"y"),Te(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new we().translate(e,t)}static translateX(e){return new we().translateX(e)}static translateY(e){return new we().translateY(e)}static clamp(e){return new we().clamp(e)}static magnify(e){return new we().magnify(e)}static scale(e){return new we().scale(e)}static reBound(e){return new we().reBound(e)}translate(e,t){const n=Eu(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(zu(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!Nu(n,e.root)&&(n.x!==e.root.x&&(t.x=t.x.invert()),n.y!==e.root.y&&(t.y=t.y.invert())),t.x=t.x.scale(dn(e)),t.y=t.y.scale(fn(e)),t}return t.x=t.x.scale(e.width),t.y=t.y.scale(e.height),t}reBound(e){const t=this.copy();return t.x=this.x.reBound(dn(e)),t.y=this.y.reBound(fn(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(dn(e)),t.y=this.y.clamp(fn(e)),t}copy(){const e=new we;return e.currRoot=this.currRoot,e.x=this.x,e.y=this.y,e}reverse(){const e=this.copy();return e.x=this.x.reverse(),e.y=this.y.reverse(),e}pos(e){return{x:this.x.pos(e.x),y:this.y.pos(e.y)}}dim(e){return{x:this.x.dim(e.x),y:this.y.dim(e.y)}}box(e){return Kn(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}get transform(){return{scale:this.dim({x:1,y:1}),offset:this.pos({x:0,y:0})}}};Te(ri,"IDENTITY",new ri);var Du=Object.defineProperty,Mu=(r,e,t)=>e in r?Du(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,y=(r,e,t)=>Mu(r,typeof e!="symbol"?e+"":e,t);let Bu=(r,e=21)=>(t=e)=>{let n="",i=t|0;for(;i--;)n+=r[Math.random()*r.length|0];return n};const Zu="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Uu=Bu(Zu,11),ga=()=>Uu(),Lu=Object.freeze(Object.defineProperty({__proto__:null,create:ga},Symbol.toStringTag,{value:"Module"})),_u=s.z.enum(["static","dynamic"]),pa=(r,e)=>{const t=new I(e);if(![N.DAY,N.HOUR,N.MINUTE,N.SECOND,N.MILLISECOND,N.MICROSECOND,N.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof I?new I(n):new N(n)},C=class v{constructor(e,t="UTC"){if(y(this,"value"),y(this,"encodeValue",!0),e==null)this.value=v.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*v.MILLISECOND.valueOf();else if(typeof e=="string")this.value=v.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=v.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=v.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=v.MAX:e=v.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new v(BigInt(i.getTime())*v.MILLISECOND.valueOf()).truncate(v.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let o="00",l="00";a!=null&&([o,l]=a.split("."));let u=v.hours(parseInt(n??"00")).add(v.minutes(parseInt(i??"00"))).add(v.seconds(parseInt(o??"00"))).add(v.milliseconds(parseInt(l??"00")));return t==="local"&&(u=u.add(v.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return v.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new v(BigInt(n.getTime())*v.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(v.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new N(BigInt(new Date().getTimezoneOffset())*v.MINUTE.valueOf())}static since(e){return new v().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new v(e).valueOf()}span(e){return this.range(e).span}range(e){return new G(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new v(e).valueOf()}afterEq(e){return this.valueOf()>=new v(e).valueOf()}before(e){return this.valueOf()<new v(e).valueOf()}beforeEq(e){return this.valueOf()<=new v(e).valueOf()}add(e){return new v(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new v(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(N.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(N.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(N.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(N.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(v.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(v.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new v(t)}get month(){return this.date().getMonth()}setMonth(e){const t=this.date();return t.setMonth(e),new v(t)}get day(){return this.date().getDate()}setDay(e){const t=this.date();return t.setDate(e),new v(t)}get hour(){return this.date().getHours()}setHour(e){const t=this.date();return t.setHours(e),new v(t)}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setMinutes(e),new v(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setSeconds(e),new v(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new v(t)}toString(){return this.date().toISOString()}remainder(e){return pa(this,e)}get isToday(){return this.truncate(N.DAY).equals(v.now().truncate(N.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new v(new Date)}static max(...e){let t=v.MIN;for(const n of e){const i=new v(n);i.after(t)&&(t=i)}return t}static min(...e){let t=v.MAX;for(const n of e){const i=new v(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new v(e)}static microseconds(e){return v.nanoseconds(e*1e3)}static milliseconds(e){return v.microseconds(e*1e3)}static seconds(e){return v.milliseconds(e*1e3)}static minutes(e){return v.seconds(e*60)}static hours(e){return v.minutes(e*60)}static days(e){return v.hours(e*24)}};y(C,"NANOSECOND",C.nanoseconds(1)),y(C,"MICROSECOND",C.microseconds(1)),y(C,"MILLISECOND",C.milliseconds(1)),y(C,"SECOND",C.seconds(1)),y(C,"MINUTE",C.minutes(1)),y(C,"HOUR",C.hours(1)),y(C,"DAY",C.days(1)),y(C,"MAX",new C((1n<<63n)-1n)),y(C,"MIN",new C(0)),y(C,"ZERO",new C(0)),y(C,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new C(r.value)),s.z.string().transform(r=>new C(BigInt(r))),s.z.instanceof(Number).transform(r=>new C(r)),s.z.number().transform(r=>new C(r)),s.z.instanceof(C)]));let I=C;const P=class z{constructor(e){y(this,"value"),y(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof z?e:e instanceof dt?e.period:e instanceof I?new z(e):["number","bigint"].includes(typeof e)?z.seconds(e):new z(e)}static fromMilliseconds(e){return e instanceof z?e:e instanceof dt?e.period:e instanceof I?new z(e):["number","bigint"].includes(typeof e)?z.milliseconds(e):new z(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new z(e).valueOf()}greaterThan(e){return this.valueOf()>new z(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new z(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new z(e).valueOf()}remainder(e){return pa(this,e)}truncate(e){return new z(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(z.DAY),t=this.truncate(z.HOUR),n=this.truncate(z.MINUTE),i=this.truncate(z.SECOND),a=this.truncate(z.MILLISECOND),o=this.truncate(z.MICROSECOND),l=this.truncate(z.NANOSECOND),u=e,h=t.sub(e),f=n.sub(t),d=i.sub(n),k=a.sub(i),S=o.sub(a),se=l.sub(o);let L="";return u.isZero||(L+=`${u.days}d `),h.isZero||(L+=`${h.hours}h `),f.isZero||(L+=`${f.minutes}m `),d.isZero||(L+=`${d.seconds}s `),k.isZero||(L+=`${k.milliseconds}ms `),S.isZero||(L+=`${S.microseconds}µs `),se.isZero||(L+=`${se.nanoseconds}ns`),L.trim()}mult(e){return new z(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number(z.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(z.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(z.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(z.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(z.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(z.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new z(e).valueOf()}add(e){return new z(this.valueOf()+new z(e).valueOf())}sub(e){return new z(this.valueOf()-new z(e).valueOf())}static nanoseconds(e=1){return new z(e)}static microseconds(e=1){return z.nanoseconds(We(e,1e3))}static milliseconds(e=1){return z.microseconds(We(e,1e3))}static seconds(e=1){return z.milliseconds(We(e,1e3))}static minutes(e=1){return z.seconds(We(e,60))}static hours(e){return z.minutes(We(e,60))}static days(e){return z.hours(We(e,24))}};y(P,"NANOSECOND",P.nanoseconds(1)),y(P,"MICROSECOND",P.microseconds(1)),y(P,"MILLISECOND",P.milliseconds(1)),y(P,"SECOND",P.seconds(1)),y(P,"MINUTE",P.minutes(1)),y(P,"HOUR",P.hours(1)),y(P,"DAY",P.days(1)),y(P,"MAX",new P((1n<<63n)-1n)),y(P,"MIN",new P(0)),y(P,"ZERO",new P(0)),y(P,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new P(r.value)),s.z.string().transform(r=>new P(BigInt(r))),s.z.instanceof(Number).transform(r=>new P(r)),s.z.number().transform(r=>new P(r)),s.z.instanceof(P)]));let N=P;const At=class vr extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new vr(e).valueOf()}get period(){return N.seconds(1/this.valueOf())}sampleCount(e){return new N(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new X(t).valueOf()}span(e){return N.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new vr(e)}static khz(e){return vr.hz(e*1e3)}};y(At,"z",s.z.union([s.z.number().transform(r=>new At(r)),s.z.instanceof(Number).transform(r=>new At(r)),s.z.instanceof(At)]));let dt=At;const F=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new ft(e*this.valueOf())}};y(F,"UNKNOWN",new F(0)),y(F,"BIT128",new F(16)),y(F,"BIT64",new F(8)),y(F,"BIT32",new F(4)),y(F,"BIT16",new F(2)),y(F,"BIT8",new F(1)),y(F,"z",s.z.union([s.z.number().transform(r=>new F(r)),s.z.instanceof(Number).transform(r=>new F(r)),s.z.instanceof(F)]));let X=F;const ue=class Or{constructor(e,t){y(this,"start"),y(this,"end"),typeof e=="object"&&"start"in e?(this.start=new I(e.start),this.end=new I(e.end)):(this.start=new I(e),this.end=new I(t))}get span(){return new N(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new Or(this.end,this.start)}equals(e){return this.start.equals(e.start)&&this.end.equals(e.end)}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(e,t=N.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=I.max(n.start,e.start),a=I.min(n.end,e.end);return a.before(i)?!1:new N(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof Or?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new Or(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}};y(ue,"MAX",new ue(I.MIN,I.MAX)),y(ue,"MIN",new ue(I.MAX,I.MIN)),y(ue,"ZERO",new ue(I.ZERO,I.ZERO)),y(ue,"z",s.z.union([s.z.object({start:I.z,end:I.z}).transform(r=>new ue(r.start,r.end)),s.z.instanceof(ue)]));let G=ue;const qu=(r,e)=>r.start.before(e.start)?-1:r.start.after(e.start)?1:r.end.before(e.end)?-1:r.end.after(e.end)?1:0,p=class Z extends String{constructor(e){if(e instanceof Z||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}const t=Z.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}throw super(Z.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=Z.ARRAY_CONSTRUCTORS.get(this.toString());if(e==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return e}equals(e){return this.valueOf()===e.valueOf()}matches(...e){return e.some(t=>this.equals(t))}toString(){return this.valueOf()}get isVariable(){return this.equals(Z.JSON)||this.equals(Z.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(Z.UUID)}get isInteger(){const e=this.toString();return e.startsWith("int")||e.startsWith("uint")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=Z.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(Z.UINT8)||this.equals(Z.UINT16)||this.equals(Z.UINT32)||this.equals(Z.UINT64)}get isSigned(){return this.equals(Z.INT8)||this.equals(Z.INT16)||this.equals(Z.INT32)||this.equals(Z.INT64)}canSafelyCastTo(e){return this.equals(e)?!0:!this.isNumeric||!e.isNumeric||this.isVariable||e.isVariable||this.isUnsigned&&e.isSigned?!1:this.isFloat?e.isFloat&&this.density.valueOf()<=e.density.valueOf():this.equals(Z.INT32)&&e.equals(Z.FLOAT64)||this.equals(Z.INT8)&&e.equals(Z.FLOAT32)?!0:this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf()&&this.isUnsigned===e.isUnsigned:!1}canCastTo(e){return this.isNumeric&&e.isNumeric?!0:this.equals(e)}checkArray(e){return e.constructor===this.Array}toJSON(){return this.toString()}get usesBigInt(){return Z.BIG_INT_TYPES.some(e=>e.equals(this))}};y(p,"UNKNOWN",new p("unknown")),y(p,"FLOAT64",new p("float64")),y(p,"FLOAT32",new p("float32")),y(p,"INT64",new p("int64")),y(p,"INT32",new p("int32")),y(p,"INT16",new p("int16")),y(p,"INT8",new p("int8")),y(p,"UINT64",new p("uint64")),y(p,"UINT32",new p("uint32")),y(p,"UINT16",new p("uint16")),y(p,"UINT8",new p("uint8")),y(p,"BOOLEAN",p.UINT8),y(p,"TIMESTAMP",new p("timestamp")),y(p,"UUID",new p("uuid")),y(p,"STRING",new p("string")),y(p,"JSON",new p("json")),y(p,"ARRAY_CONSTRUCTORS",new Map([[p.UINT8.toString(),Uint8Array],[p.UINT16.toString(),Uint16Array],[p.UINT32.toString(),Uint32Array],[p.UINT64.toString(),BigUint64Array],[p.FLOAT32.toString(),Float32Array],[p.FLOAT64.toString(),Float64Array],[p.INT8.toString(),Int8Array],[p.INT16.toString(),Int16Array],[p.INT32.toString(),Int32Array],[p.INT64.toString(),BigInt64Array],[p.TIMESTAMP.toString(),BigInt64Array],[p.STRING.toString(),Uint8Array],[p.JSON.toString(),Uint8Array],[p.UUID.toString(),Uint8Array]])),y(p,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,p.UINT8],[Uint16Array.name,p.UINT16],[Uint32Array.name,p.UINT32],[BigUint64Array.name,p.UINT64],[Float32Array.name,p.FLOAT32],[Float64Array.name,p.FLOAT64],[Int8Array.name,p.INT8],[Int16Array.name,p.INT16],[Int32Array.name,p.INT32],[BigInt64Array.name,p.INT64]])),y(p,"DENSITIES",new Map([[p.UINT8.toString(),X.BIT8],[p.UINT16.toString(),X.BIT16],[p.UINT32.toString(),X.BIT32],[p.UINT64.toString(),X.BIT64],[p.FLOAT32.toString(),X.BIT32],[p.FLOAT64.toString(),X.BIT64],[p.INT8.toString(),X.BIT8],[p.INT16.toString(),X.BIT16],[p.INT32.toString(),X.BIT32],[p.INT64.toString(),X.BIT64],[p.TIMESTAMP.toString(),X.BIT64],[p.STRING.toString(),X.UNKNOWN],[p.JSON.toString(),X.UNKNOWN],[p.UUID.toString(),X.BIT128]])),y(p,"ALL",[p.UNKNOWN,p.FLOAT64,p.FLOAT32,p.INT64,p.INT32,p.INT16,p.INT8,p.UINT64,p.UINT32,p.UINT16,p.UINT8,p.TIMESTAMP,p.UUID,p.STRING,p.JSON]),y(p,"BIG_INT_TYPES",[p.INT64,p.UINT64,p.TIMESTAMP]),y(p,"z",s.z.union([s.z.string().transform(r=>new p(r)),s.z.instanceof(p)]));let $=p;const H=class q extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return q.bytes(this.valueOf()+e.valueOf())}sub(e){return q.bytes(this.valueOf()-e.valueOf())}truncate(e){return new q(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return q.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/q.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/q.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/q.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/q.TERABYTE.valueOf()}toString(){const e=this.truncate(q.TERABYTE),t=this.truncate(q.GIGABYTE),n=this.truncate(q.MEGABYTE),i=this.truncate(q.KILOBYTE),a=this.truncate(q.BYTE),o=e,l=t.sub(e),u=n.sub(t),h=i.sub(n),f=a.sub(i);let d="";return o.isZero||(d+=`${o.terabytes}TB `),l.isZero||(d+=`${l.gigabytes}GB `),u.isZero||(d+=`${u.megabytes}MB `),h.isZero||(d+=`${h.kilobytes}KB `),(!f.isZero||d==="")&&(d+=`${f.valueOf()}B`),d.trim()}static bytes(e=1){return new q(e)}static kilobytes(e=1){return q.bytes(e.valueOf()*1e3)}static megabytes(e=1){return q.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return q.megabytes(e.valueOf()*1e3)}static terabytes(e){return q.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};y(H,"BYTE",new H(1)),y(H,"KILOBYTE",H.kilobytes(1)),y(H,"MEGABYTE",H.megabytes(1)),y(H,"GIGABYTE",H.gigabytes(1)),y(H,"TERABYTE",H.terabytes(1)),y(H,"ZERO",new H(0)),y(H,"z",s.z.union([s.z.number().transform(r=>new H(r)),s.z.instanceof(H)]));let ft=H;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);const ma=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof I||r instanceof N||r instanceof Date},Yu=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):xt(t,-n).valueOf(),xt=(r,e)=>typeof r=="bigint"&&typeof e=="bigint"||typeof r=="number"&&typeof e=="number"?r+e:e===0?r:r===0?e:Number(r)+Number(e),Wu=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof Ae?!0:ma(r),Ie=-1,Dn={[Symbol.iterator]:()=>Dn,next:()=>({done:!0,value:void 0})},Fu=s.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Gu=s.z.union([s.z.null(),s.z.undefined()]).transform(()=>new Uint8Array().buffer),Mn=10,wa=(r,e)=>{if(r==="string"&&!e.isVariable)throw new Error(`cannot convert series of type ${e.toString()} to string`);if(r==="number"&&!e.isNumeric)throw new Error(`cannot convert series of type ${e.toString()} to number`);if(r==="bigint"&&!e.usesBigInt)throw new Error(`cannot convert series of type ${e.toString()} to bigint`)},Rt=class he{constructor(e){y(this,"key",""),y(this,"isSynnaxSeries",!0),y(this,"dataType"),y(this,"sampleOffset"),y(this,"gl"),y(this,"_data"),y(this,"_timeRange"),y(this,"alignment",0n),y(this,"_cachedMin"),y(this,"_cachedMax"),y(this,"writePos",Ie),y(this,"_refCount",0),y(this,"_cachedLength"),y(this,"_cachedIndexes"),Wu(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:o=0n,key:l=ga()}=e,u=e.data??[];if(u instanceof he||typeof u=="object"&&"isSynnaxSeries"in u&&u.isSynnaxSeries===!0){const d=u;this.key=d.key,this.dataType=d.dataType,this.sampleOffset=d.sampleOffset,this.gl=d.gl,this._data=d._data,this._timeRange=d._timeRange,this.alignment=d.alignment,this._cachedMin=d._cachedMin,this._cachedMax=d._cachedMax,this.writePos=d.writePos,this._refCount=d._refCount,this._cachedLength=d._cachedLength;return}const h=ma(u),f=Array.isArray(u);if(t!=null)this.dataType=new $(t);else{if(u instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(f||h){let d=u;if(!h){if(u.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");d=u[0]}if(typeof d=="string")this.dataType=$.STRING;else if(typeof d=="number")this.dataType=$.FLOAT64;else if(typeof d=="bigint")this.dataType=$.INT64;else if(typeof d=="boolean")this.dataType=$.BOOLEAN;else if(d instanceof I||d instanceof Date||d instanceof I)this.dataType=$.TIMESTAMP;else if(typeof d=="object")this.dataType=$.JSON;else throw new Error(`cannot infer data type of ${typeof d} when constructing a Series from a JS array`)}else this.dataType=new $(u)}if(!f&&!h)this._data=u;else{let d=h?[u]:u;const k=d[0];(k instanceof I||k instanceof Date||k instanceof N)&&(d=d.map(S=>new I(S).valueOf())),this.dataType.equals($.STRING)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.join(`
11
+ `);return new ye({data:n,dataType:D.JSON,timeRange:t})}acquire(e){this._refCount++,e!=null&&this.updateGLBuffer(e)}release(){if(this._refCount<=0){console.warn("attempted to release a series with a negative reference count");return}this._refCount--,this._refCount===0&&this.gl.control!=null&&this.maybeGarbageCollectGLBuffer(this.gl.control)}write(e){if(!e.dataType.equals(this.dataType))throw new Error("buffer must be of the same type as this array");return this.dataType.isVariable?this.writeVariable(e):this.writeFixed(e)}writeVariable(e){if(this.writePos===Ce)return 0;const t=this.byteCapacity.valueOf()-this.writePos,n=e.subBytes(0,t);return this.writeToUnderlyingData(n),this.writePos+=n.byteLength.valueOf(),this._cachedLength!=null&&(this._cachedLength+=n.length,this.calculateCachedLength()),n.length}writeFixed(e){if(this.writePos===Ce)return 0;const t=this.capacity-this.writePos,n=e.sub(0,t);return this.writeToUnderlyingData(n),this._cachedLength=void 0,this.maybeRecomputeMinMax(n),this.writePos+=n.length,n.length}writeToUnderlyingData(e){this.underlyingData.set(e.data,this.writePos)}get buffer(){return typeof this._data=="object"&&"buffer"in this._data?this._data.buffer:this._data}get underlyingData(){return new this.dataType.Array(this._data)}get data(){return this.writePos===Ce?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches(D.STRING,D.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
12
+ `).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(D.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=D.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const s=this.underlyingData.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(s.buffer),o=>o.toString(16).padStart(2,"0")).join("").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5");t[n]=a}return t}parseJSON(e){if(!this.dataType.equals(D.JSON))throw new Error("cannot parse non-JSON series as JSON");return new TextDecoder().decode(this.underlyingData).split(`
13
+ `).slice(0,-1).map(t=>e.parse(Rr.decodeString(t)))}get byteCapacity(){return new Kn(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===Ce?this.byteCapacity:this.dataType.isVariable?new Kn(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===Ce?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,s)=>{n===Jn&&(e++,t.push(s+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let s=0;s<this.length;s++)n[s]=Zh(this.dataType,e,this.data[s],t);return new ye({data:n.buffer,dataType:e,timeRange:this.timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals(D.TIMESTAMP))this._cachedMax=this.data[this.data.length-1];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}else{const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}return this._cachedMax}get max(){if(this.dataType.isVariable)throw new Error("cannot calculate maximum on a variable length data type");return this.writePos===0?-1/0:(this._cachedMax??(this._cachedMax=this.calcRawMax()),jt(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(D.TIMESTAMP))this._cachedMin=this.data[0];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}else{const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}return this._cachedMin}get min(){if(this.dataType.isVariable)throw new Error("cannot calculate minimum on a variable length data type");return this.writePos===0?1/0:(this._cachedMin??(this._cachedMin=this.calcRawMin()),jt(this._cachedMin,this.sampleOffset))}get bounds(){return Ge(Number(this.min),Number(this.max))}maybeRecomputeMinMax(e){if(this._cachedMin!=null){const t=e._cachedMin??e.calcRawMin();t<this._cachedMin&&(this._cachedMin=t)}if(this._cachedMax!=null){const t=e._cachedMax??e.calcRawMax();t>this._cachedMax&&(this._cachedMax=t)}}enrich(){this.max,this.min}get range(){return jt(this.max,-this.min)}atAlignment(e,t){const n=Number(e-this.alignment);if(n<0||n>=this.length){if(t===!0)throw new Error(`[series] - no value at index ${n}`);return}return this.at(n,t)}at(e,t){if(this.dataType.isVariable)return this.atVariable(e,t??!1);e<0&&(e=this.length+e);const n=this.data[e];if(n==null){if(t===!0)throw new Error(`[series] - no value at index ${e}`);return}return jt(n,this.sampleOffset)}atVariable(e,t){let n=0,s=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],s=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let o=0;o<this.data.length;o++)if(this.data[o]===Jn){if(e===0){s=o;break}n=o+1,e--}if(s===0&&(s=this.data.length),n>=s||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,s);return this.dataType.equals(D.STRING)?new TextDecoder().decode(a):Ns(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const s=ih(e);for(;t<=n;){const a=Math.floor((t+n)/2),o=s(this.at(a,!0),e);if(o===0)return a;o<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals(D.FLOAT32)&&!this.dataType.equals(D.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:s}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==s)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==Ce){s===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(s).valueOf(),o=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,o.buffer),this.gl.prevBuffer=this.writePos}else e.bufferData(e.ARRAY_BUFFER,this.buffer,n==="static"?e.STATIC_DRAW:e.DYNAMIC_DRAW),this.gl.prevBuffer=Ce}as(e){return Wh(e,this.dataType),this}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:Ui(this.alignmentBounds.lower),upper:Ui(this.alignmentBounds.upper)},timeRange:(e=this.timeRange)==null?void 0:e.toString(),length:this.length,capacity:this.capacity}}get memInfo(){return{key:this.key,length:this.length,byteLength:this.byteLength,glBuffer:this.gl.buffer!=null}}get alignmentBounds(){return Ge(this.alignment,this.alignment+BigInt(this.length))}maybeGarbageCollectGLBuffer(e){this.gl.buffer!=null&&(e.deleteBuffer(this.gl.buffer),this.gl.buffer=null,this.gl.prevBuffer=0,this.gl.control=null)}get glBuffer(){if(this.gl.buffer==null)throw new Error("gl buffer not initialized");return this.gl.prevBuffer!==this.writePos&&console.warn("buffer not updated"),this.gl.buffer}[Symbol.iterator](){if(this.dataType.isVariable){const e=new Gh(this);return this.dataType.equals(D.JSON)?new Hh(e):e}return new Kh(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new Ii(this,e,t??this.length)}subAlignmentIterator(e,t){return new Ii(this,Number(e-this.alignment),Number(t-this.alignment))}subBytes(e,t){if(e>=0&&(t==null||t>=this.byteLength.valueOf()))return this;const n=this.data.subarray(e,t);return new ye({data:n,dataType:this.dataType,timeRange:this.timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let s;return e?s=this.data.subarray(t,n):s=this.data.slice(t,n),new ye({data:s,dataType:this.dataType,timeRange:this.timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new ye({data:this.buffer,dataType:this.dataType,timeRange:Kt.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}toString(){var e,t;let n=`${this.dataType.toString()} ${this.length} [`;if(this.length<=10)n+=Array.from(this).map(s=>s.toString());else{for(let s=0;s<5;s++)n+=`${(e=this.at(s))==null?void 0:e.toString()}`,s<4&&(n+=",");n+="...";for(let s=-5;s<0;s++)n+=(t=this.at(s))==null?void 0:t.toString(),s<-1&&(n+=",")}return n+="]",n}};g(Lt,"crudeZ",i.z.object({timeRange:Kt.z.optional(),dataType:D.z,alignment:i.z.coerce.bigint().optional(),data:i.z.union([Fh,Yh,i.z.instanceof(ArrayBuffer),i.z.instanceof(Uint8Array)]),glBufferUsage:_h.optional().default("static").optional()})),g(Lt,"z",Lt.crudeZ.transform(r=>new Lt(r)));let Vh=Lt,Ii=class{constructor(r,e,t){g(this,"series"),g(this,"end"),g(this,"index"),this.series=r;const n=Ge(0,r.length);this.end=Ti(n,t),this.index=Ti(n,e)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}};class Gh{constructor(e){if(g(this,"series"),g(this,"index"),g(this,"decoder"),!e.dataType.isVariable)throw new Error("cannot create a variable series iterator for a non-variable series");this.series=e,this.index=0,this.decoder=new TextDecoder}next(){const e=this.index,t=this.series.data;for(;this.index<t.length&&t[this.index]!==Jn;)this.index++;const n=this.index;return e===n?{done:!0,value:void 0}:(this.index++,{done:!1,value:this.decoder.decode(this.series.buffer.slice(e,n))})}[Symbol.iterator](){return this}}var $i,xi;const Fa=class Ya{constructor(e){g(this,"wrapped"),g(this,$i,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:Rr.decodeString(e.value,Ya.SCHEMA)}}[(xi=Symbol.iterator,$i=Symbol.toStringTag,xi)](){return this}};g(Fa,"SCHEMA",i.z.record(i.z.string(),i.z.unknown()));let Hh=Fa;var ki,Ai;class Kh{constructor(e){g(this,"series"),g(this,"index"),g(this,ki,"SeriesIterator"),this.series=e,this.index=0}next(){return this.index>=this.series.length?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[(Ai=Symbol.iterator,ki=Symbol.toStringTag,Ai)](){return this}}const Ui=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}};i.z.object({key:i.z.string(),value:i.z.string()});i.z.record(i.z.union([i.z.number(),i.z.string(),i.z.symbol()]),i.z.unknown());const Wa=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",Jh=Wa(),Va=["macOS","Windows","Linux"],Xh=["macos","windows","linux"],Qh={macos:"macOS",windows:"Windows",linux:"Linux"},eu=i.z.enum(Va).or(i.z.enum(Xh).transform(r=>Qh[r])),tu=()=>{if(typeof window>"u")return;const r=window.navigator.userAgent.toLowerCase();if(r.includes("mac"))return"macOS";if(r.includes("win"))return"Windows";if(r.includes("linux"))return"Linux"};let Tn;const ru=(r={})=>{const{force:e,default:t}=r;return e??Tn??(Tn=tu(),Tn??t)},Ga=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:Va,RUNTIME:Jh,detect:Wa,getOS:ru,osZ:eu},Symbol.toStringTag,{value:"Module"}));var nu=Object.defineProperty,su=(r,e,t)=>e in r?nu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,_t=(r,e,t)=>su(r,typeof e!="symbol"?e+"":e,t);const iu=(...r)=>r.map(Ha).join(""),Ha=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),au=r=>r.endsWith("/")?r.slice(0,-1):r,ou=(r,e="")=>r===null?"":`?${Object.entries(r).filter(([,t])=>t==null?!1:Array.isArray(t)?t.length>0:!0).map(([t,n])=>`${e}${t}=${n}`).join("&")}`,Xn=class Qn{constructor({host:e,port:t,protocol:n="",pathPrefix:s=""}){_t(this,"protocol"),_t(this,"host"),_t(this,"port"),_t(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Ha(s)}replace(e){return new Qn({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Qn({...this,pathPrefix:iu(this.path,e)})}toString(){return au(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};_t(Xn,"UNKNOWN",new Xn({host:"unknown",port:0}));let cu=Xn;const lu=-128,hu=127;i.z.number().int().min(lu).max(hu);const uu=-32768,du=32767;i.z.number().int().min(uu).max(du);const fu=-2147483648,yu=2147483647;i.z.number().int().min(fu).max(yu);const gu=-9223372036854775808n,pu=9223372036854775807n;i.z.bigint().min(gu).max(pu);const wu=255;i.z.number().int().min(0).max(wu);const mu=65535;i.z.number().int().min(0).max(mu);const bu=4294967295;i.z.number().int().min(0).max(bu);const vu=18446744073709551615n;i.z.bigint().min(0n).max(vu);var Tu=Object.defineProperty,Ou=(r,e,t)=>e in r?Tu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ve=(r,e,t)=>Ou(r,typeof e!="symbol"?e+"":e,t);const Su=async r=>await new Promise(e=>setTimeout(e,k.fromMilliseconds(r).milliseconds));class Eu{constructor(e){ve(this,"config"),ve(this,"retries"),ve(this,"interval"),this.config={baseInterval:new k((e==null?void 0:e.baseInterval)??k.seconds(1)),maxRetries:(e==null?void 0:e.maxRetries)??5,scale:(e==null?void 0:e.scale)??1,sleepFn:(e==null?void 0:e.sleepFn)??Su},this.retries=0,this.interval=new k(this.config.baseInterval)}async wait(){const{maxRetries:e,scale:t,sleepFn:n}=this.config;return this.retries>=e?!1:(await n(this.interval),this.interval=this.interval.mult(t),this.retries++,!0)}reset(){this.retries=0,this.interval=this.config.baseInterval}}const zu=i.z.object({baseInterval:k.z.optional(),maxRetries:i.z.number().optional(),scale:i.z.number().optional()}),Nu=Object.freeze(Object.defineProperty({__proto__:null,Breaker:Eu,breakerConfig:zu},Symbol.toStringTag,{value:"Module"})),Iu=/^#?([0-9a-f]{6}|[0-9a-f]{8})$/i,ks=i.z.string().regex(Iu),gt=i.z.number().min(0).max(255),$u=i.z.number().min(0).max(1),Ka=i.z.tuple([gt,gt,gt,$u]),Ja=i.z.tuple([gt,gt,gt]),As=(r,e=1)=>{if(typeof r=="string")return ku(r,e);if(Array.isArray(r)){if(r.length<3||r.length>4)throw new Error(`Invalid color: [${r.join(", ")}]`);return r.length===3?[...r,e]:r}throw new Error(`Invalid color: ${JSON.stringify(r)}`)},xu=i.z.union([ks,Ka,Ja]).transform(r=>As(r)),ku=(r,e=1)=>{if(!ks.safeParse(r).success)throw new Error(`Invalid hex color: ${r}`);return r=Au(r),[Nr(r,0),Nr(r,2),Nr(r,4),r.length===8?Nr(r,6)/255:e]},Nr=(r,e)=>parseInt(r.slice(e,e+2),16),Au=r=>r.startsWith("#")?r.slice(1):r,Uu=i.z.union([ks,Ka,i.z.string(),Ja]);As("#000000");As("#ffffff");const Cu=i.z.object({key:i.z.string(),color:Uu,position:i.z.number(),switched:i.z.boolean().optional()});i.z.array(Cu);const Ru=i.z.object({key:i.z.string(),name:i.z.string(),color:xu});i.z.object({key:i.z.string(),name:i.z.string(),swatches:i.z.array(Ru)});const Bu=i.z.number().int().min(0).max(255),Pu=i.z.object({name:i.z.string(),key:i.z.string()}),Lr=r=>i.z.object({subject:Pu,resource:r,authority:Bu}),Du=i.z.object({from:Lr(i.z.any()),to:i.z.null()}),Mu=i.z.object({from:i.z.null(),to:Lr(i.z.any())});i.z.union([Du,Mu,i.z.object({from:Lr(i.z.any()),to:Lr(i.z.any())})]);const ju=r=>Object.getOwnPropertySymbols(globalThis).includes(r),Lu=(r,e)=>{const t=Symbol.for(r);if(!ju(t)){const n=e();Object.defineProperty(globalThis,t,{value:n})}return()=>globalThis[t]},_u=r=>e=>e!=null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"?e.type.startsWith(r):e instanceof Error?e.message.startsWith(r):typeof e!="string"?!1:e.startsWith(r),Gr=r=>{var e;return e=class extends Error{constructor(t,n){super(t,n),ve(this,"discriminator",e.discriminator),ve(this,"type",e.TYPE),ve(this,"matches",e.matches),this.name=e.TYPE}static sub(t){return Gr(`${r}.${t}`)}},ve(e,"discriminator","FreighterError"),ve(e,"TYPE",r),ve(e,"matches",_u(r)),e},Xa=r=>{if(r==null||typeof r!="object")return!1;const e=r;if(e.discriminator!=="FreighterError")return!1;if(!("type"in e))throw new Error(`Freighter error is missing its type property: ${JSON.stringify(e)}`);return!0},ot="unknown",es="nil";class Zu{constructor(){ve(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:es,data:""};if(Xa(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}if(e instanceof Error)return{type:ot,data:e.message};if(typeof e=="string")return{type:ot,data:e};try{return{type:ot,data:JSON.stringify(e)}}catch{return{type:ot,data:"unable to encode error information"}}}decode(e){if(e==null||e.type===es)return null;if(e.type===ot)return new ts(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new ts(e.data)}}const Us=Lu("synnax-error-registry",()=>new Zu),qu=({encode:r,decode:e})=>Us().register({encode:r,decode:e}),Fu=r=>Us().encode(r),Yu=r=>r==null?null:Us().decode(r);class ts extends Gr("unknown"){}const Wu=i.z.object({type:i.z.string(),data:i.z.string()});class Vu extends Gr("canceled"){}const qe=Object.freeze(Object.defineProperty({__proto__:null,Canceled:Vu,NONE:es,UNKNOWN:ot,Unknown:ts,createTyped:Gr,decode:Yu,encode:Fu,isTyped:Xa,payloadZ:Wu,register:qu},Symbol.toStringTag,{value:"Module"}));i.object({jsonrpc:i.string(),id:i.number().optional(),method:i.string().optional(),params:i.unknown().optional(),result:i.unknown().optional()});i.z.string().regex(/^\d+\.\d+\.\d+$/);const Gu=["standard","scientific","engineering"];i.z.enum(Gu);let hr=class extends qe.createTyped("freighter"){},ue=class extends hr.sub("eof"){constructor(){super("EOF")}},bt=class extends hr.sub("stream_closed"){constructor(){super("StreamClosed")}},Fe=class extends hr.sub("unreachable"){constructor(e={}){const{message:t="Unreachable",url:n=cu.UNKNOWN}=e;super(t),G(this,"url"),this.url=n}};const Hu=r=>{if(!r.type.startsWith(hr.TYPE))return null;if(ue.matches(r))return{type:ue.TYPE,data:"EOF"};if(bt.matches(r))return{type:bt.TYPE,data:"StreamClosed"};if(Fe.matches(r))return{type:Fe.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},Ku=r=>{if(!r.type.startsWith(hr.TYPE))return null;switch(r.type){case ue.TYPE:return new ue;case bt.TYPE:return new bt;case Fe.TYPE:return new Fe;default:throw new qe.Unknown(`Unknown error type: ${r.data}`)}};qe.register({encode:Hu,decode:Ku});class Qa{constructor(){G(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const s=async a=>{if(n===this.middleware.length)return await t(a);const o=this.middleware[n];return n++,await o(a,s)};return await s(e)}}const eo="Content-Type",Ci=r=>{if(Ga.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(s,a)=>await e(s,{...a,agent:n})},Ju=r=>"code"in r&&r.code==="ECONNREFUSED"||r.message.toLowerCase().includes("load failed"),Xu=400;class Qu extends Qa{constructor(e,t,n=!1){return super(),G(this,"endpoint"),G(this,"encoder"),G(this,"fetch"),this.endpoint=e.replace({protocol:n?"https":"http"}),this.encoder=t,this.fetch=Ci(this.endpoint.protocol),new Proxy(this,{get:(s,a,o)=>a==="endpoint"?this.endpoint:Reflect.get(s,a,o)})}get headers(){return{[eo]:this.encoder.contentType}}async send(e,t,n,s){t=n==null?void 0:n.parse(t);let a=null;const o=this.endpoint.child(e),c={};c.method="POST",c.body=this.encoder.encode(t??{});const[,h]=await this.executeMiddleware({target:o.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async d=>{const f={...d,params:{}};c.headers={...this.headers,...d.params};let u;try{u=await Ci(d.protocol)(d.target,c)}catch(S){let j=S;return Ju(j)&&(j=new Fe({url:o})),[f,j]}const N=new Uint8Array(await(await u.blob()).arrayBuffer());if(u!=null&&u.ok)return s!=null&&(a=this.encoder.decode(N,s)),[f,null];try{if(u.status!==Xu)return[f,new Error(u.statusText)];const S=this.encoder.decode(N,qe.payloadZ),j=qe.decode(S);return[f,j]}catch(S){return[f,new Error(`[freighter] - failed to decode error: ${u.statusText}: ${S.message}`)]}});return h!=null?[null,h]:[a,null]}}const ed=(r,e)=>{class t{constructor(s){G(this,"wrapped"),this.wrapped=s}use(...s){this.wrapped.use(...s)}async send(s,a,o,c){const h=new Nu.Breaker(e);do{const[d,f]=await this.wrapped.send(s,a,o,c);if(f==null)return[d,null];if(!Fe.matches(f))return[null,f];if(!await h.wait())return[d,f]}while(!0)}}return new t(r)},m=async(r,e,t,n,s)=>{const[a,o]=await r.send(e,t,n,s);if(o!=null)throw o;return a},td=()=>Ga.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),rd=i.z.object({type:i.z.enum(["data","close","open"]),payload:i.z.unknown(),error:i.z.optional(qe.payloadZ)});class nd{constructor(e,t,n,s){G(this,"codec"),G(this,"reqSchema"),G(this,"resSchema"),G(this,"ws"),G(this,"serverClosed"),G(this,"sendClosed"),G(this,"receiveDataQueue",[]),G(this,"receiveCallbacksQueue",[]),this.codec=t,this.reqSchema=n,this.resSchema=s,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}async receiveOpenAck(){const e=await this.receiveMsg();if(e.type!=="open"){if(e.error==null)throw new Error("Message error must be defined");return qe.decode(e.error)}return null}send(e){if(this.serverClosed!=null)return new ue;if(this.sendClosed)throw new bt;return this.ws.send(this.codec.encode({type:"data",payload:e})),null}async receive(){if(this.serverClosed!=null)return[null,this.serverClosed];const e=await this.receiveMsg();if(e.type==="close"){if(e.error==null)throw new Error("Message error must be defined");return this.serverClosed=qe.decode(e.error),[null,this.serverClosed]}return[this.resSchema.parse(e.payload),null]}received(){return this.receiveDataQueue.length!==0}closeSend(){if(this.sendClosed||this.serverClosed!=null)return;const e={type:"close"};try{this.ws.send(this.codec.encode(e))}finally{this.sendClosed=!0}}async receiveMsg(){return this.receiveDataQueue.shift()??await new Promise((t,n)=>this.receiveCallbacksQueue.push({resolve:t,reject:n}))}addMessage(e){const t=this.receiveCallbacksQueue.shift();t!=null?t.resolve(e):this.receiveDataQueue.push(e)}listenForMessages(){this.ws.onmessage=this.onMessage.bind(this),this.ws.onclose=this.onClose.bind(this)}onMessage(e){this.addMessage(this.codec.decode(e.data,rd))}onClose(e){this.addMessage({type:"close",error:{type:e.code===id?ue.TYPE:bt.TYPE,data:""}})}}const sd="freighterctx",id=1e3,to=class rs extends Qa{constructor(e,t,n=!1){super(),G(this,"baseUrl"),G(this,"encoder"),G(this,"secure"),this.secure=n,this.baseUrl=e.replace({protocol:n?"wss":"ws"}),this.encoder=t}withCodec(e){const t=new rs(this.baseUrl,e,this.secure);return t.use(...this.middleware),t}async stream(e,t,n){const s=td();let a;const[,o]=await this.executeMiddleware({target:e,protocol:"websocket",params:{},role:"client"},async c=>{const h=s(this.buildURL(e,c)),d={...c,params:{}};h.binaryType=rs.MESSAGE_TYPE;const f=await this.wrapSocket(h,t,n);return f instanceof Error?[d,f]:(a=f,[d,null])});if(o!=null)throw o;return a}buildURL(e,t){const n=ou({[eo]:this.encoder.contentType,...t.params},sd);return this.baseUrl.child(e).toString()+n}async wrapSocket(e,t,n){return await new Promise(s=>{e.onopen=()=>{const a=new nd(e,this.encoder,t,n);a.receiveOpenAck().then(o=>{o!=null?s(o):s(a)}).catch(o=>s(o))},e.onerror=a=>{const o=a;s(new Error(o.message))}})}};G(to,"MESSAGE_TYPE","arraybuffer");let ad=to;const ro="all",no="create",so="delete",io="retrieve",ao="update",_r=i.z.enum([ro,no,so,io,ao]),od=r=>{const e=r.replace(/_[a-z]/g,t=>t[1].toUpperCase());return e.length>1&&e[0]===e[0].toUpperCase()&&e[1]===e[1].toUpperCase()||e.length===0?e:e[0].toLowerCase()+e.slice(1)},oo=r=>{const e=(t,n=ns)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(o=>e(o,n));if(!On(t))return t;n=ld(n);const s={},a=t;return Object.keys(a).forEach(o=>{let c=a[o];const h=r(o);n.recursive&&(On(c)?Bi(c,n.keepTypesOnRecursion)||(c=e(c,n)):n.recursiveInArray&&Ri(c)&&(c=[...c].map(d=>{let f=d;return On(d)?Bi(f,n.keepTypesOnRecursion)||(f=e(d,n)):Ri(d)&&(f=e({key:d},n).key),f}))),s[h]=c}),s};return e},Cs=oo(od),cd=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),co=oo(cd),ns={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},ld=(r=ns)=>(r.recursive==null?r=ns:r.recursiveInArray??(r.recursiveInArray=!1),r),Ri=r=>r!=null&&Array.isArray(r),On=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),Bi=(r,e)=>(e||[]).some(t=>r instanceof t),Hr=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var hd=Object.defineProperty,ud=(r,e,t)=>e in r?hd(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,pt=(r,e,t)=>ud(r,typeof e!="symbol"?e+"":e,t);function dd(r){const e=r.length;let t=0,n=0;for(;n<e;){let s=r.charCodeAt(n++);if((s&4294967168)===0){t++;continue}else if((s&4294965248)===0)t+=2;else{if(s>=55296&&s<=56319&&n<e){const a=r.charCodeAt(n);(a&64512)===56320&&(++n,s=((s&1023)<<10)+(a&1023)+65536)}(s&4294901760)===0?t+=3:t+=4}}return t}function fd(r,e,t){const n=r.length;let s=t,a=0;for(;a<n;){let o=r.charCodeAt(a++);if((o&4294967168)===0){e[s++]=o;continue}else if((o&4294965248)===0)e[s++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&a<n){const c=r.charCodeAt(a);(c&64512)===56320&&(++a,o=((o&1023)<<10)+(c&1023)+65536)}(o&4294901760)===0?(e[s++]=o>>12&15|224,e[s++]=o>>6&63|128):(e[s++]=o>>18&7|240,e[s++]=o>>12&63|128,e[s++]=o>>6&63|128)}e[s++]=o&63|128}}const yd=new TextEncoder,gd=50;function pd(r,e,t){yd.encodeInto(r,e.subarray(t))}function wd(r,e,t){r.length>gd?pd(r,e,t):fd(r,e,t)}const md=4096;function lo(r,e,t){let n=e;const s=n+t,a=[];let o="";for(;n<s;){const c=r[n++];if((c&128)===0)a.push(c);else if((c&224)===192){const h=r[n++]&63;a.push((c&31)<<6|h)}else if((c&240)===224){const h=r[n++]&63,d=r[n++]&63;a.push((c&31)<<12|h<<6|d)}else if((c&248)===240){const h=r[n++]&63,d=r[n++]&63,f=r[n++]&63;let u=(c&7)<<18|h<<12|d<<6|f;u>65535&&(u-=65536,a.push(u>>>10&1023|55296),u=56320|u&1023),a.push(u)}else a.push(c);a.length>=md&&(o+=String.fromCharCode(...a),a.length=0)}return a.length>0&&(o+=String.fromCharCode(...a)),o}const bd=new TextDecoder,vd=200;function Td(r,e,t){const n=r.subarray(e,e+t);return bd.decode(n)}function Od(r,e,t){return t>vd?Td(r,e,t):lo(r,e,t)}let Ir=class{constructor(e,t){this.type=e,this.data=t}},me=class ss extends Error{constructor(e){super(e);const t=Object.create(ss.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:ss.name})}};const Ct=4294967295;function Sd(r,e,t){const n=t/4294967296,s=t;r.setUint32(e,n),r.setUint32(e+4,s)}function ho(r,e,t){const n=Math.floor(t/4294967296),s=t;r.setUint32(e,n),r.setUint32(e+4,s)}function uo(r,e){const t=r.getInt32(e),n=r.getUint32(e+4);return t*4294967296+n}function Ed(r,e){const t=r.getUint32(e),n=r.getUint32(e+4);return t*4294967296+n}const zd=-1,Nd=4294967296-1,Id=17179869184-1;function $d({sec:r,nsec:e}){if(r>=0&&e>=0&&r<=Id)if(e===0&&r<=Nd){const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,r),t}else{const t=r/4294967296,n=r&4294967295,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setUint32(0,e<<2|t&3),a.setUint32(4,n),s}else{const t=new Uint8Array(12),n=new DataView(t.buffer);return n.setUint32(0,e),ho(n,4,r),t}}function xd(r){const e=r.getTime(),t=Math.floor(e/1e3),n=(e-t*1e3)*1e6,s=Math.floor(n/1e9);return{sec:t+s,nsec:n-s*1e9}}function kd(r){if(r instanceof Date){const e=xd(r);return $d(e)}else return null}function Ad(r){const e=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(r.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const t=e.getUint32(0),n=e.getUint32(4),s=(t&3)*4294967296+n,a=t>>>2;return{sec:s,nsec:a}}case 12:{const t=uo(e,4),n=e.getUint32(0);return{sec:t,nsec:n}}default:throw new me(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${r.length}`)}}function Ud(r){const e=Ad(r);return new Date(e.sec*1e3+e.nsec/1e6)}const Cd={type:zd,encode:kd,decode:Ud};let rr=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(Cd)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{const s=-1-e;this.builtInEncoders[s]=t,this.builtInDecoders[s]=n}}tryToEncode(e,t){for(let n=0;n<this.builtInEncoders.length;n++){const s=this.builtInEncoders[n];if(s!=null){const a=s(e,t);if(a!=null){const o=-1-n;return new Ir(o,a)}}}for(let n=0;n<this.encoders.length;n++){const s=this.encoders[n];if(s!=null){const a=s(e,t);if(a!=null){const o=n;return new Ir(o,a)}}}return e instanceof Ir?e:null}decode(e,t,n){const s=t<0?this.builtInDecoders[-1-t]:this.decoders[t];return s?s(e,t,n):new Ir(t,e)}};rr.defaultCodec=new rr;function Rd(r){return r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer}function is(r){return r instanceof Uint8Array?r:ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):Rd(r)?new Uint8Array(r):Uint8Array.from(r)}const Bd=100,Pd=2048;let Dd=class fo{constructor(e){this.entered=!1,this.extensionCodec=(e==null?void 0:e.extensionCodec)??rr.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.maxDepth=(e==null?void 0:e.maxDepth)??Bd,this.initialBufferSize=(e==null?void 0:e.initialBufferSize)??Pd,this.sortKeys=(e==null?void 0:e.sortKeys)??!1,this.forceFloat32=(e==null?void 0:e.forceFloat32)??!1,this.ignoreUndefined=(e==null?void 0:e.ignoreUndefined)??!1,this.forceIntegerToFloat=(e==null?void 0:e.forceIntegerToFloat)??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new fo({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,t){if(t>this.maxDepth)throw new Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){const t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){const t=new ArrayBuffer(e),n=new Uint8Array(t),s=new DataView(t);n.set(this.bytes),this.view=s,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const t=dd(e);this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),wd(e,this.bytes,this.pos),this.pos+=t}encodeObject(e,t){const n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,t);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw new Error(`Too large binary: ${t}`);const n=is(e);this.writeU8a(n)}encodeArray(e,t){const n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw new Error(`Too large array: ${n}`);for(const s of e)this.doEncode(s,t+1)}countWithoutUndefined(e,t){let n=0;for(const s of t)e[s]!==void 0&&n++;return n}encodeMap(e,t){const n=Object.keys(e);this.sortKeys&&n.sort();const s=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(s<16)this.writeU8(128+s);else if(s<65536)this.writeU8(222),this.writeU16(s);else if(s<4294967296)this.writeU8(223),this.writeU32(s);else throw new Error(`Too large map object: ${s}`);for(const a of n){const o=e[a];this.ignoreUndefined&&o===void 0||(this.encodeString(a),this.doEncode(o,t+1))}}encodeExtension(e){if(typeof e.data=="function"){const n=e.data(this.pos+6),s=n.length;if(s>=4294967296)throw new Error(`Too large extension object: ${s}`);this.writeU8(201),this.writeU32(s),this.writeI8(e.type),this.writeU8a(n);return}const t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw new Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),Sd(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),ho(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}};function Zt(r,e){return new Dd(e).encodeSharedRef(r)}function Sn(r){return`${r<0?"-":""}0x${Math.abs(r).toString(16).padStart(2,"0")}`}const Md=16,jd=16;class Ld{constructor(e=Md,t=jd){this.hit=0,this.miss=0,this.maxKeyLength=e,this.maxLengthPerKey=t,this.caches=[];for(let n=0;n<this.maxKeyLength;n++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){const s=this.caches[n-1];e:for(const a of s){const o=a.bytes;for(let c=0;c<n;c++)if(o[c]!==e[t+c])continue e;return a.str}return null}store(e,t){const n=this.caches[e.length-1],s={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=s:n.push(s)}decode(e,t,n){const s=this.find(e,t,n);if(s!=null)return this.hit++,s;this.miss++;const a=lo(e,t,n),o=Uint8Array.prototype.slice.call(e,t,t+n);return this.store(o,a),a}}const as="array",Jt="map_key",yo="map_value",_d=r=>{if(typeof r=="string"||typeof r=="number")return r;throw new me("The type of key must be string or number but "+typeof r)};class Zd{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const t=this.getUninitializedStateFromPool();t.type=as,t.position=0,t.size=e,t.array=new Array(e)}pushMapState(e){const t=this.getUninitializedStateFromPool();t.type=Jt,t.readCount=0,t.size=e,t.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===as){const t=e;t.size=0,t.array=void 0,t.position=0,t.type=void 0}if(e.type===Jt||e.type===yo){const t=e;t.size=0,t.map=void 0,t.readCount=0,t.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Rt=-1,Rs=new DataView(new ArrayBuffer(0)),qd=new Uint8Array(Rs.buffer);try{Rs.getInt8(0)}catch(r){if(!(r instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const Pi=new RangeError("Insufficient data"),Fd=new Ld;let Yd=class go{constructor(e){this.totalPos=0,this.pos=0,this.view=Rs,this.bytes=qd,this.headByte=Rt,this.stack=new Zd,this.entered=!1,this.extensionCodec=(e==null?void 0:e.extensionCodec)??rr.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.rawStrings=(e==null?void 0:e.rawStrings)??!1,this.maxStrLength=(e==null?void 0:e.maxStrLength)??Ct,this.maxBinLength=(e==null?void 0:e.maxBinLength)??Ct,this.maxArrayLength=(e==null?void 0:e.maxArrayLength)??Ct,this.maxMapLength=(e==null?void 0:e.maxMapLength)??Ct,this.maxExtLength=(e==null?void 0:e.maxExtLength)??Ct,this.keyDecoder=(e==null?void 0:e.keyDecoder)!==void 0?e.keyDecoder:Fd,this.mapKeyConverter=(e==null?void 0:e.mapKeyConverter)??_d}clone(){return new go({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Rt,this.stack.reset()}setBuffer(e){const t=is(e);this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Rt&&!this.hasRemaining(1))this.setBuffer(e);else{const t=this.bytes.subarray(this.pos),n=is(e),s=new Uint8Array(t.length+n.length);s.set(t),s.set(n,t.length),this.setBuffer(s)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:t,pos:n}=this;return new RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let t=!1,n;for await(const c of e){if(t)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(c);try{n=this.doDecodeSync(),t=!0}catch(h){if(!(h instanceof RangeError))throw h}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return n}const{headByte:s,pos:a,totalPos:o}=this;throw new RangeError(`Insufficient data in parsing ${Sn(s)} at ${o} (${a} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){if(this.entered){yield*this.clone().decodeMultiAsync(e,t);return}try{this.entered=!0;let n=t,s=-1;for await(const a of e){if(t&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a),n&&(s=this.readArraySize(),n=!1,this.complete());try{for(;yield this.doDecodeSync(),--s!==0;);}catch(o){if(!(o instanceof RangeError))throw o}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){const s=e-128;if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e<160){const s=e-144;if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else{const s=e-160;t=this.decodeString(s,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)this.useBigInt64?t=this.readU64AsBigInt():t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)this.useBigInt64?t=this.readI64AsBigInt():t=this.readI64();else if(e===217){const s=this.lookU8();t=this.decodeString(s,1)}else if(e===218){const s=this.lookU16();t=this.decodeString(s,2)}else if(e===219){const s=this.lookU32();t=this.decodeString(s,4)}else if(e===220){const s=this.readU16();if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else if(e===221){const s=this.readU32();if(s!==0){this.pushArrayState(s),this.complete();continue e}else t=[]}else if(e===222){const s=this.readU16();if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e===223){const s=this.readU32();if(s!==0){this.pushMapState(s),this.complete();continue e}else t={}}else if(e===196){const s=this.lookU8();t=this.decodeBinary(s,1)}else if(e===197){const s=this.lookU16();t=this.decodeBinary(s,2)}else if(e===198){const s=this.lookU32();t=this.decodeBinary(s,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){const s=this.lookU8();t=this.decodeExtension(s,1)}else if(e===200){const s=this.lookU16();t=this.decodeExtension(s,2)}else if(e===201){const s=this.lookU32();t=this.decodeExtension(s,4)}else throw new me(`Unrecognized type byte: ${Sn(e)}`);this.complete();const n=this.stack;for(;n.length>0;){const s=n.top();if(s.type===as)if(s.array[s.position]=t,s.position++,s.position===s.size)t=s.array,n.release(s);else continue e;else if(s.type===Jt){if(t==="__proto__")throw new me("The key __proto__ is not allowed");s.key=this.mapKeyConverter(t),s.type=yo;continue e}else if(s.map[s.key]=t,s.readCount++,s.readCount===s.size)t=s.map,n.release(s);else{s.key=null,s.type=Jt;continue e}}return t}}readHeadByte(){return this.headByte===Rt&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Rt}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new me(`Unrecognized array type byte: ${Sn(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new me(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new me(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,t){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,t):this.decodeBinary(e,t)}decodeUtf8String(e,t){var n;if(e>this.maxStrLength)throw new me(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw Pi;const s=this.pos+t;let a;return this.stateIsMapKey()&&(n=this.keyDecoder)!=null&&n.canBeCached(e)?a=this.keyDecoder.decode(this.bytes,s,e):a=Od(this.bytes,s,e),this.pos+=t+e,a}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===Jt:!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new me(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw Pi;const n=this.pos+t,s=this.bytes.subarray(n,n+e);return this.pos+=t+e,s}decodeExtension(e,t){if(e>this.maxExtLength)throw new me(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const n=this.view.getInt8(this.pos+t),s=this.decodeBinary(e,t+1);return this.extensionCodec.decode(s,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=Ed(this.view,this.pos);return this.pos+=8,e}readI64(){const e=uo(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}};function po(r,e){return new Yd(e).decode(r)}let wo=class{constructor(){pt(this,"contentType","application/json"),pt(this,"decoder"),pt(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e))}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),s=Cs(n);return t!=null?t.parse(s):s}encodeString(e){const t=co(e);return JSON.stringify(t,(n,s)=>ArrayBuffer.isView(s)?Array.from(s):Hr(s)&&"encode_value"in s?typeof s.value=="bigint"?s.value.toString():s.value:typeof s=="bigint"?s.toString():s)}static registerCustomType(){}},mo=class{constructor(){pt(this,"contentType","text/csv")}encode(e){const t=this.encodeString(e);return new TextEncoder().encode(t)}decode(e,t){const n=new TextDecoder().decode(e);return this.decodeString(n,t)}encodeString(e){if(!Array.isArray(e)||e.length===0||!Hr(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(s=>{const a=t.map(o=>JSON.stringify(s[o]??""));n.push(a.join(","))}),n.join(`
14
+ `)}decodeString(e,t){const[n,...s]=e.trim().split(`
15
+ `).map(c=>c.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(c=>c.trim()),o={};return a.forEach(c=>{o[c]=[]}),s.forEach(c=>{const h=c.split(",").map(d=>d.trim());a.forEach((d,f)=>{const u=this.parseValue(h[f]);u!=null&&o[d].push(u)})}),t!=null?t.parse(o):o}parseValue(e){if(e==null||e.length===0)return null;const t=Number(e);return isNaN(t)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:t}static registerCustomType(){}},bo=class{constructor(){pt(this,"contentType","text/plain")}encode(e){return new TextEncoder().encode(e)}decode(e,t){const n=new TextDecoder().decode(e);return t!=null?t.parse(n):n}};const Me=new rr;Me.register({type:0,encode:r=>{if(ArrayBuffer.isView(r)){const e=Array.from(r);return Zt(e,{extensionCodec:Me})}return Hr(r)&&"encode_value"in r?typeof r.value=="bigint"?Zt(r.value.toString(),{extensionCodec:Me}):Zt(r.value,{extensionCodec:Me}):typeof r=="bigint"?Zt(r.toString(),{extensionCodec:Me}):null},decode:r=>po(r,{extensionCodec:Me})});let vo=class{constructor(){pt(this,"contentType","application/msgpack")}encode(e){const t=co(e);return Zt(t,{extensionCodec:Me}).slice()}decode(e,t){const n=po(e,{extensionCodec:Me}),s=Cs(n);return t!=null?t.parse(s):s}static registerCustomType(){}};const Xt=new wo,Wd=new mo,Vd=new bo,Gd=new vo,Qe=Object.freeze(Object.defineProperty({__proto__:null,CSVCodec:mo,CSV_CODEC:Wd,JSONCodec:wo,JSON_CODEC:Xt,MSGPACK_CODEC:Gd,MsgPackCodec:vo,TEXT_CODEC:Vd,TextCodec:bo},Symbol.toStringTag,{value:"Module"})),Hd=r=>[...new Set(r)],Kd=(r,e,t=!0)=>{const n=new Map;return r.forEach(s=>{const a=e(s);if(n.has(a)){if(t)return;n.delete(a)}n.set(a,s)}),Array.from(n.values())},Di=Object.freeze(Object.defineProperty({__proto__:null,by:Kd,unique:Hd},Symbol.toStringTag,{value:"Module"})),Jd=r=>r!=null&&typeof r=="object"&&"toString"in r,Xd=(r,e=!1)=>{const t=Jd(r)?"stringer":typeof r;let n;switch(t){case"string":n=(s,a)=>s.localeCompare(a);break;case"stringer":n=(s,a)=>s.toString().localeCompare(a.toString());break;case"number":n=(s,a)=>Number(s)-Number(a);break;case"bigint":n=(s,a)=>BigInt(s)-BigInt(a)>0n?1:-1;break;case"boolean":n=(s,a)=>Number(s)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?Qd(n):n},Qd=r=>(e,t)=>r(t,e),Kr=0,En=-1,zn=1,ef=r=>r<Kr,tf=r=>r>Kr,rf=r=>r===Kr,Jr=i.z.tuple([i.z.number(),i.z.number()]);i.z.tuple([i.z.bigint(),i.z.bigint()]);const To=i.z.object({width:i.z.number(),height:i.z.number()}),nf=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()}),sf=["width","height"];i.z.enum(sf);const af=["start","center","end"],of=["signedWidth","signedHeight"];i.z.enum(of);const Zr=i.z.object({x:i.z.number(),y:i.z.number()}),cf=i.z.object({clientX:i.z.number(),clientY:i.z.number()}),lf=["x","y"],Oo=i.z.enum(lf),So=["top","right","bottom","left"];i.z.enum(So);const hf=["left","right"],Eo=i.z.enum(hf),uf=["top","bottom"],zo=i.z.enum(uf),No=["center"],Mi=i.z.enum(No),df=[...So,...No],Io=i.z.enum(df);i.z.enum(af);const ff=["first","last"];i.z.enum(ff);const yf=i.z.object({lower:i.z.number(),upper:i.z.number()}),gf=i.z.object({lower:i.z.bigint(),upper:i.z.bigint()});i.z.union([yf,Jr]);i.z.union([gf,Jr]);i.z.enum([...Oo.options,...Io.options]);i.z.union([Oo,Io,i.z.instanceof(String)]);const Et=r=>typeof r=="bigint"||r instanceof BigInt,Nn=(r,e)=>Et(r)?r.valueOf()-BigInt(e.valueOf().valueOf()):r.valueOf()-Number(e.valueOf()),pf=(r,e)=>Et(r)?r.valueOf()+BigInt(e.valueOf().valueOf()):r+Number(e.valueOf()),ji=(r,e)=>Et(r)?r===BigInt(e.valueOf().valueOf()):r===Number(e.valueOf()),wf=(r,e)=>Et(r)?r.valueOf()<BigInt(e.valueOf())?r:BigInt(e.valueOf()):r.valueOf()<Number(e.valueOf())?r:Number(e.valueOf()),mf=r=>Et(r)||r instanceof BigInt?r.valueOf()<0n?-r:r:r.valueOf()<0?-r:r,at=(r,e)=>Et(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),J=(r,e)=>{const t={};if(typeof r=="number"||typeof r=="bigint")e!=null?(t.lower=r,t.upper=e):(t.lower=typeof r=="bigint"?0n:0,t.upper=r);else if(Array.isArray(r)){if(r.length!==2)throw new Error("bounds: expected array of length 2");[t.lower,t.upper]=r}else return Li(r);return Li(t)},Li=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,_i=(r,e)=>{const t=J(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e},$r=(r,e)=>{const t=J(r);if(typeof e=="number"||typeof e=="bigint")return e>=t.lower&&e<t.upper;const n=J(e);return n.lower>=t.lower&&n.upper<=t.upper},bf=r=>({lower:Math.min(...r.map(e=>J(e).lower)),upper:Math.max(...r.map(e=>J(e).upper))}),vf=(r,e,t)=>{const n=r.map(c=>J(c)),s=t>0?1:t<0?-1:0;if(s===0)return e;let a=t,o=e;for(;ji(a,0)===!1;){const c=n.findIndex(h=>s>0?o>=h.lower&&o<h.upper:o>h.lower&&o<=h.upper);if(c!==-1){const h=n[c];let d;if(s>0?d=Nn(h.upper,o):d=Nn(o,h.lower),d>0){const f=wf(mf(a),d);if(o=pf(o,s>0?f:-f),a=Nn(a,s>0?f:-f),ji(a,0))return o;continue}}if(s>0){const h=n.filter(d=>d.lower>o);if(h.length>0)o=h[0].lower;else return o}else{const h=n.filter(d=>d.upper<o);if(h.length>0)o=h[h.length-1].upper;else return o}}return o},Tf=(r,e,t)=>{const n=r.map(o=>J(o));if(e===t)return typeof e=="bigint"?0n:0;const s=e<t?J([e,t]):J([t,e]);let a=typeof e=="bigint"?0n:0;for(const o of n){const c=o.lower>s.lower?o.lower:s.lower,h=o.upper<s.upper?o.upper:s.upper;if(c<h){const d=h-c;a=a+d}}return a};i.z.object({x:Eo.or(Mi),y:zo.or(Mi)});const Of=i.z.object({x:Eo,y:zo}),Sf=Object.freeze({x:"left",y:"top"}),Ef=(r,e)=>r.x===e.x&&r.y===e.y,Zi=i.z.union([i.z.number(),Zr,Jr,To,nf,cf]),zf=(r,e)=>{if(typeof r=="string"){if(e===void 0)throw new Error("The y coordinate must be given.");return r==="x"?{x:e,y:0}:{x:0,y:e}}return typeof r=="number"?{x:r,y:e??r}:Array.isArray(r)?{x:r[0],y:r[1]}:"signedWidth"in r?{x:r.signedWidth,y:r.signedHeight}:"clientX"in r?{x:r.clientX,y:r.clientY}:"width"in r?{x:r.width,y:r.height}:{x:r.x,y:r.y}},qi=Object.freeze({x:0,y:0}),xr=i.z.union([i.z.number(),i.z.string()]);i.z.object({top:xr,left:xr,width:xr,height:xr});i.z.object({left:i.z.number(),top:i.z.number(),right:i.z.number(),bottom:i.z.number()});i.z.object({one:Zr,two:Zr,root:Of});const Bs=(r,e,t=0,n=0,s)=>{const a={one:{...qi},two:{...qi},root:s??Sf};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:s??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},In=r=>{const e=Bs(r);return{lower:e.one.x,upper:e.two.x}},$n=r=>{const e=Bs(r);return{lower:e.one.y,upper:e.two.y}},Nf=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,If=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()});i.z.union([To,If,Zr,Jr]);var $f=Object.defineProperty,xf=(r,e,t)=>e in r?$f(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,xe=(r,e,t)=>xf(r,typeof e!="symbol"?e+"":e,t);const kf=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;i.z.object({offset:Zi,scale:Zi});i.z.object({offset:i.z.number(),scale:i.z.number()});const Af=r=>(e,t,n,s)=>t==="dimension"?[e,n]:[e,s?n-r:n+r],Uf=r=>(e,t,n,s)=>[e,s?n/r:n*r],Cf=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:s,upper:a}=e,{lower:o,upper:c}=r,h=a-s,d=c-o;if(t==="dimension")return[r,n*(d/h)];const f=(n-s)*(d/h)+o;return[r,f]},Rf=r=>(e,t,n)=>[r,n],Bf=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:s}=r;return[r,s-(t-n)]},Pf=r=>(e,t,n)=>{const{lower:s,upper:a}=r;return n=kf(n,s,a),[e,n]},os=class qt{constructor(){xe(this,"ops",[]),xe(this,"currBounds",null),xe(this,"currType",null),xe(this,"reversed",!1),this.ops=[]}static translate(e){return new qt().translate(e)}static magnify(e){return new qt().magnify(e)}static scale(e,t){return new qt().scale(e,t)}translate(e){const t=this.new(),n=Af(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Uf(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=J(e,t),s=this.new(),a=Cf(n);return a.type="scale",s.ops.push(a),s}clamp(e,t){const n=J(e,t),s=this.new(),a=Pf(n);return a.type="clamp",s.ops.push(a),s}reBound(e,t){const n=J(e,t),s=this.new(),a=Rf(n);return a.type="re-bound",s.ops.push(a),s}invert(){const e=Bf();e.type="invert";const t=this.new();return t.ops.push(e),t}pos(e){return this.exec("position",e)}dim(e){return this.exec("dimension",e)}new(){const e=new qt;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,s],a)=>a(n,e,s,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,s)=>{if(n.type==="scale"||t.some(([o,c])=>s>=o&&s<=c))return;const a=e.ops.findIndex((o,c)=>o.type==="scale"&&c>s);a!==-1&&t.push([s,a])}),t.forEach(([n,s])=>{const a=e.ops.slice(n,s);a.unshift(e.ops[s]),e.ops.splice(n,s-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};xe(os,"IDENTITY",new os);let Fi=os;const Yi=class Ie{constructor(e=new Fi,t=new Fi,n=null){xe(this,"x"),xe(this,"y"),xe(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new Ie().translate(e,t)}static translateX(e){return new Ie().translateX(e)}static translateY(e){return new Ie().translateY(e)}static clamp(e){return new Ie().clamp(e)}static magnify(e){return new Ie().magnify(e)}static scale(e){return new Ie().scale(e)}static reBound(e){return new Ie().reBound(e)}translate(e,t){const n=zf(e,t),s=this.copy();return s.x=this.x.translate(n.x),s.y=this.y.translate(n.y),s}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(Nf(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!Ef(n,e.root)&&(n.x!==e.root.x&&(t.x=t.x.invert()),n.y!==e.root.y&&(t.y=t.y.invert())),t.x=t.x.scale(In(e)),t.y=t.y.scale($n(e)),t}return t.x=t.x.scale(e.width),t.y=t.y.scale(e.height),t}reBound(e){const t=this.copy();return t.x=this.x.reBound(In(e)),t.y=this.y.reBound($n(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(In(e)),t.y=this.y.clamp($n(e)),t}copy(){const e=new Ie;return e.currRoot=this.currRoot,e.x=this.x,e.y=this.y,e}reverse(){const e=this.copy();return e.x=this.x.reverse(),e.y=this.y.reverse(),e}pos(e){return{x:this.x.pos(e.x),y:this.y.pos(e.y)}}dim(e){return{x:this.x.dim(e.x),y:this.y.dim(e.y)}}box(e){return Bs(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}get transform(){return{scale:this.dim({x:1,y:1}),offset:this.pos({x:0,y:0})}}};xe(Yi,"IDENTITY",new Yi);var Df=Object.defineProperty,Mf=(r,e,t)=>e in r?Df(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,y=(r,e,t)=>Mf(r,typeof e!="symbol"?e+"":e,t);let jf=(r,e=21)=>(t=e)=>{let n="",s=t|0;for(;s--;)n+=r[Math.random()*r.length|0];return n};const Lf="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",_f=jf(Lf,11),$o=()=>_f(),Zf=Object.freeze(Object.defineProperty({__proto__:null,create:$o},Symbol.toStringTag,{value:"Module"})),qf=i.z.enum(["static","dynamic"]),xo=(r,e)=>{const t=new z(e);if(![O.DAY,O.HOUR,O.MINUTE,O.SECOND,O.MILLISECOND,O.MICROSECOND,O.NANOSECOND].some(s=>s.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof z?new z(n):new O(n)},B=class T{constructor(e,t="UTC"){if(y(this,"value"),y(this,"encodeValue",!0),e==null)this.value=T.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*T.MILLISECOND.valueOf();else if(typeof e=="string")this.value=T.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=T.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=T.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=T.MAX:e=T.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const s=new Date(e,t-1,n,0,0,0,0);return new T(BigInt(s.getTime())*T.MILLISECOND.valueOf()).truncate(T.DAY).valueOf()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,s,a]=e.split(":");let o="00",c="00";a!=null&&([o,c]=a.split("."));let h=T.hours(parseInt(n??"00")).add(T.minutes(parseInt(s??"00"))).add(T.seconds(parseInt(o??"00"))).add(T.milliseconds(parseInt(c??"00")));return t==="local"&&(h=h.add(T.utcOffset)),h.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return T.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new T(BigInt(n.getTime())*T.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(T.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new O(BigInt(new Date().getTimezoneOffset())*T.MINUTE.valueOf())}static since(e){return new T().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new T(e).valueOf()}span(e){return this.range(e).span}range(e){return new q(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new T(e).valueOf()}afterEq(e){return this.valueOf()>=new T(e).valueOf()}before(e){return this.valueOf()<new T(e).valueOf()}beforeEq(e){return this.valueOf()<=new T(e).valueOf()}add(e){return new T(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new T(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(O.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(O.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(O.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(O.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(T.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(T.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new T(t)}get month(){return this.date().getUTCMonth()}setMonth(e){const t=this.date();return t.setUTCMonth(e),new T(t)}get day(){return this.date().getUTCDate()}setDay(e){const t=this.date();return t.setUTCDate(e),new T(t)}get hour(){return this.date().getUTCHours()}setHour(e){const t=this.date();return t.setUTCHours(e),new T(t,"UTC")}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setUTCMinutes(e),new T(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setUTCSeconds(e),new T(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new T(t)}toString(){return this.date().toISOString()}remainder(e){return xo(this,e)}get isToday(){return this.truncate(O.DAY).equals(T.now().truncate(O.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new T(new Date)}static max(...e){let t=T.MIN;for(const n of e){const s=new T(n);s.after(t)&&(t=s)}return t}static min(...e){let t=T.MAX;for(const n of e){const s=new T(n);s.before(t)&&(t=s)}return t}static nanoseconds(e,t="UTC"){return new T(e,t)}static microseconds(e,t="UTC"){return T.nanoseconds(e*1e3,t)}static milliseconds(e,t="UTC"){return T.microseconds(e*1e3,t)}static seconds(e,t="UTC"){return T.milliseconds(e*1e3,t)}static minutes(e,t="UTC"){return T.seconds(e*60,t)}static hours(e,t="UTC"){return T.minutes(e*60,t)}static days(e,t="UTC"){return T.hours(e*24,t)}};y(B,"NANOSECOND",B.nanoseconds(1)),y(B,"MICROSECOND",B.microseconds(1)),y(B,"MILLISECOND",B.milliseconds(1)),y(B,"SECOND",B.seconds(1)),y(B,"MINUTE",B.minutes(1)),y(B,"HOUR",B.hours(1)),y(B,"DAY",B.days(1)),y(B,"MAX",new B((1n<<63n)-1n)),y(B,"MIN",new B(0)),y(B,"ZERO",new B(0)),y(B,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new B(r.value)),i.z.string().transform(r=>new B(BigInt(r))),i.z.instanceof(Number).transform(r=>new B(r)),i.z.number().transform(r=>new B(r)),i.z.instanceof(B)]));let z=B;const P=class ${constructor(e){y(this,"value"),y(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof $?e:e instanceof cs?e.period:e instanceof z?new $(e):["number","bigint"].includes(typeof e)?$.seconds(e):new $(e)}static fromMilliseconds(e){return e instanceof $?e:e instanceof cs?e.period:e instanceof z?new $(e):["number","bigint"].includes(typeof e)?$.milliseconds(e):new $(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new $(e).valueOf()}greaterThan(e){return this.valueOf()>new $(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new $(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new $(e).valueOf()}remainder(e){return xo(this,e)}truncate(e){return new $(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate($.DAY),t=this.truncate($.HOUR),n=this.truncate($.MINUTE),s=this.truncate($.SECOND),a=this.truncate($.MILLISECOND),o=this.truncate($.MICROSECOND),c=this.truncate($.NANOSECOND),h=e,d=t.sub(e),f=n.sub(t),u=s.sub(n),N=a.sub(s),S=o.sub(a),j=c.sub(o);let U="";return h.isZero||(U+=`${h.days}d `),d.isZero||(U+=`${d.hours}h `),f.isZero||(U+=`${f.minutes}m `),u.isZero||(U+=`${u.seconds}s `),N.isZero||(U+=`${N.milliseconds}ms `),S.isZero||(U+=`${S.microseconds}µs `),j.isZero||(U+=`${j.nanoseconds}ns`),U.trim()}mult(e){return new $(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number($.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number($.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number($.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number($.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number($.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number($.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new $(e).valueOf()}add(e){return new $(this.valueOf()+new $(e).valueOf())}sub(e){return new $(this.valueOf()-new $(e).valueOf())}static nanoseconds(e=1){return new $(e)}static microseconds(e=1){return $.nanoseconds(at(e,1e3))}static milliseconds(e=1){return $.microseconds(at(e,1e3))}static seconds(e=1){return $.milliseconds(at(e,1e3))}static minutes(e=1){return $.seconds(at(e,60))}static hours(e){return $.minutes(at(e,60))}static days(e){return $.hours(at(e,24))}};y(P,"NANOSECOND",P.nanoseconds(1)),y(P,"MICROSECOND",P.microseconds(1)),y(P,"MILLISECOND",P.milliseconds(1)),y(P,"SECOND",P.seconds(1)),y(P,"MINUTE",P.minutes(1)),y(P,"HOUR",P.hours(1)),y(P,"DAY",P.days(1)),y(P,"MAX",new P((1n<<63n)-1n)),y(P,"MIN",new P(0)),y(P,"ZERO",new P(0)),y(P,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new P(r.value)),i.z.string().transform(r=>new P(BigInt(r))),i.z.instanceof(Number).transform(r=>new P(r)),i.z.number().transform(r=>new P(r)),i.z.instanceof(P)]));let O=P;const Ft=class Pr extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new Pr(e).valueOf()}get period(){return O.seconds(1/this.valueOf())}sampleCount(e){return new O(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new ne(t).valueOf()}span(e){return O.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new Pr(e)}static khz(e){return Pr.hz(e*1e3)}};y(Ft,"z",i.z.union([i.z.number().transform(r=>new Ft(r)),i.z.instanceof(Number).transform(r=>new Ft(r)),i.z.instanceof(Ft)]));let cs=Ft;const K=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new vt(e*this.valueOf())}};y(K,"UNKNOWN",new K(0)),y(K,"BIT128",new K(16)),y(K,"BIT64",new K(8)),y(K,"BIT32",new K(4)),y(K,"BIT16",new K(2)),y(K,"BIT8",new K(1)),y(K,"z",i.z.union([i.z.number().transform(r=>new K(r)),i.z.instanceof(Number).transform(r=>new K(r)),i.z.instanceof(K)]));let ne=K;const ge=class Yt{constructor(e,t){y(this,"start"),y(this,"end"),typeof e=="object"&&"start"in e?(this.start=new z(e.start),this.end=new z(e.end)):(this.start=new z(e),this.end=new z(t))}get span(){return new O(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new Yt(this.end,this.start)}get numericBounds(){return{lower:Number(this.start.valueOf()),upper:Number(this.end.valueOf())}}equals(e,t=O.ZERO){if(t.isZero)return this.start.equals(e.start)&&this.end.equals(e.end);let n=this.start.sub(e.start).valueOf(),s=this.end.sub(e.end).valueOf();return n<0&&(n=-n),s<0&&(s=-s),n<=t.valueOf()&&s<=t.valueOf()}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(e,t=O.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const s=z.max(n.start,e.start),a=z.min(n.end,e.end);return a.before(s)?!1:new O(a.sub(s)).greaterThanOrEqual(t)}contains(e){return e instanceof Yt?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new Yt(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}static max(...e){return new Yt(z.min(...e.map(t=>t.start)),z.max(...e.map(t=>t.end)))}};y(ge,"MAX",new ge(z.MIN,z.MAX)),y(ge,"MIN",new ge(z.MAX,z.MIN)),y(ge,"ZERO",new ge(z.ZERO,z.ZERO)),y(ge,"z",i.z.union([i.z.object({start:z.z,end:z.z}).transform(r=>new ge(r.start,r.end)),i.z.instanceof(ge)]));let q=ge;const Ff=(r,e)=>r.start.before(e.start)?-1:r.start.after(e.start)?1:r.end.before(e.end)?-1:r.end.after(e.end)?1:0,w=class Z{constructor(e){if(y(this,"value"),y(this,"encodeValue",!0),e instanceof Z||typeof e=="string"||typeof e.valueOf()=="string"){this.value=e.valueOf();return}const t=Z.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){this.value=t.valueOf();return}throw this.value=Z.UNKNOWN.valueOf(),new Error(`unable to find data type for ${e.toString()}`)}valueOf(){return this.value}get Array(){const e=Z.ARRAY_CONSTRUCTORS.get(this.toString());if(e==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return e}equals(e){return this.valueOf()===e.valueOf()}matches(...e){return e.some(t=>this.equals(t))}toString(){return this.valueOf()}get isVariable(){return this.equals(Z.JSON)||this.equals(Z.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(Z.UUID)}get isInteger(){const e=this.toString();return e.startsWith("int")||e.startsWith("uint")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=Z.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(Z.UINT8)||this.equals(Z.UINT16)||this.equals(Z.UINT32)||this.equals(Z.UINT64)}get isSigned(){return this.equals(Z.INT8)||this.equals(Z.INT16)||this.equals(Z.INT32)||this.equals(Z.INT64)}canSafelyCastTo(e){return this.equals(e)?!0:!this.isNumeric||!e.isNumeric||this.isVariable||e.isVariable||this.isUnsigned&&e.isSigned?!1:this.isFloat?e.isFloat&&this.density.valueOf()<=e.density.valueOf():this.equals(Z.INT32)&&e.equals(Z.FLOAT64)||this.equals(Z.INT8)&&e.equals(Z.FLOAT32)?!0:this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf()&&this.isUnsigned===e.isUnsigned:!1}canCastTo(e){return this.isNumeric&&e.isNumeric?!0:this.equals(e)}toJSON(){return this.toString()}get usesBigInt(){return Z.BIG_INT_TYPES.some(e=>e.equals(this))}};y(w,"UNKNOWN",new w("unknown")),y(w,"FLOAT64",new w("float64")),y(w,"FLOAT32",new w("float32")),y(w,"INT64",new w("int64")),y(w,"INT32",new w("int32")),y(w,"INT16",new w("int16")),y(w,"INT8",new w("int8")),y(w,"UINT64",new w("uint64")),y(w,"UINT32",new w("uint32")),y(w,"UINT16",new w("uint16")),y(w,"UINT8",new w("uint8")),y(w,"BOOLEAN",w.UINT8),y(w,"TIMESTAMP",new w("timestamp")),y(w,"UUID",new w("uuid")),y(w,"STRING",new w("string")),y(w,"JSON",new w("json")),y(w,"ARRAY_CONSTRUCTORS",new Map([[w.UINT8.toString(),Uint8Array],[w.UINT16.toString(),Uint16Array],[w.UINT32.toString(),Uint32Array],[w.UINT64.toString(),BigUint64Array],[w.FLOAT32.toString(),Float32Array],[w.FLOAT64.toString(),Float64Array],[w.INT8.toString(),Int8Array],[w.INT16.toString(),Int16Array],[w.INT32.toString(),Int32Array],[w.INT64.toString(),BigInt64Array],[w.TIMESTAMP.toString(),BigInt64Array],[w.STRING.toString(),Uint8Array],[w.JSON.toString(),Uint8Array],[w.UUID.toString(),Uint8Array]])),y(w,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,w.UINT8],[Uint16Array.name,w.UINT16],[Uint32Array.name,w.UINT32],[BigUint64Array.name,w.UINT64],[Float32Array.name,w.FLOAT32],[Float64Array.name,w.FLOAT64],[Int8Array.name,w.INT8],[Int16Array.name,w.INT16],[Int32Array.name,w.INT32],[BigInt64Array.name,w.INT64]])),y(w,"DENSITIES",new Map([[w.UINT8.toString(),ne.BIT8],[w.UINT16.toString(),ne.BIT16],[w.UINT32.toString(),ne.BIT32],[w.UINT64.toString(),ne.BIT64],[w.FLOAT32.toString(),ne.BIT32],[w.FLOAT64.toString(),ne.BIT64],[w.INT8.toString(),ne.BIT8],[w.INT16.toString(),ne.BIT16],[w.INT32.toString(),ne.BIT32],[w.INT64.toString(),ne.BIT64],[w.TIMESTAMP.toString(),ne.BIT64],[w.STRING.toString(),ne.UNKNOWN],[w.JSON.toString(),ne.UNKNOWN],[w.UUID.toString(),ne.BIT128]])),y(w,"ALL",[w.UNKNOWN,w.FLOAT64,w.FLOAT32,w.INT64,w.INT32,w.INT16,w.INT8,w.UINT64,w.UINT32,w.UINT16,w.UINT8,w.TIMESTAMP,w.UUID,w.STRING,w.JSON]),y(w,"BIG_INT_TYPES",[w.INT64,w.UINT64,w.TIMESTAMP]),y(w,"z",i.z.union([i.z.string().transform(r=>new w(r)),i.z.instanceof(w)]));let x=w;const re=class W extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return W.bytes(this.valueOf()+e.valueOf())}sub(e){return W.bytes(this.valueOf()-e.valueOf())}truncate(e){return new W(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return W.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/W.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/W.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/W.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/W.TERABYTE.valueOf()}toString(){const e=this.truncate(W.TERABYTE),t=this.truncate(W.GIGABYTE),n=this.truncate(W.MEGABYTE),s=this.truncate(W.KILOBYTE),a=this.truncate(W.BYTE),o=e,c=t.sub(e),h=n.sub(t),d=s.sub(n),f=a.sub(s);let u="";return o.isZero||(u+=`${o.terabytes}TB `),c.isZero||(u+=`${c.gigabytes}GB `),h.isZero||(u+=`${h.megabytes}MB `),d.isZero||(u+=`${d.kilobytes}KB `),(!f.isZero||u==="")&&(u+=`${f.valueOf()}B`),u.trim()}static bytes(e=1){return new W(e)}static kilobytes(e=1){return W.bytes(e.valueOf()*1e3)}static megabytes(e=1){return W.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return W.megabytes(e.valueOf()*1e3)}static terabytes(e){return W.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};y(re,"BYTE",new re(1)),y(re,"KILOBYTE",re.kilobytes(1)),y(re,"MEGABYTE",re.megabytes(1)),y(re,"GIGABYTE",re.gigabytes(1)),y(re,"TERABYTE",re.terabytes(1)),y(re,"ZERO",new re(0)),y(re,"z",i.z.union([i.z.number().transform(r=>new re(r)),i.z.instanceof(re)]));let vt=re;i.z.union([i.z.instanceof(Uint8Array),i.z.instanceof(Uint16Array),i.z.instanceof(Uint32Array),i.z.instanceof(BigUint64Array),i.z.instanceof(Float32Array),i.z.instanceof(Float64Array),i.z.instanceof(Int8Array),i.z.instanceof(Int16Array),i.z.instanceof(Int32Array),i.z.instanceof(BigInt64Array)]);const ko=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof z||r instanceof O||r instanceof Date},Yf=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):Wt(t,-n).valueOf(),Wt=(r,e)=>e==0?r:r==0?e:typeof r=="bigint"&&typeof e=="bigint"||typeof r=="number"&&typeof e=="number"?r+e:Number(r)+Number(e),Wf=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof _e?!0:ko(r),Re=-1,ls={[Symbol.iterator]:()=>ls,next:()=>({done:!0,value:void 0})},Vf=i.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Gf=i.z.union([i.z.null(),i.z.undefined()]).transform(()=>new Uint8Array().buffer),hs=10,Ao=(r,e)=>{if(r==="string"&&!e.isVariable)throw new Error(`cannot convert series of type ${e.toString()} to string`);if(r==="number"&&!e.isNumeric)throw new Error(`cannot convert series of type ${e.toString()} to number`);if(r==="bigint"&&!e.usesBigInt)throw new Error(`cannot convert series of type ${e.toString()} to bigint`)},Vt=class pe{constructor(e){y(this,"key",""),y(this,"isSynnaxSeries",!0),y(this,"dataType"),y(this,"sampleOffset"),y(this,"gl"),y(this,"_data"),y(this,"timeRange",q.ZERO),y(this,"alignment",0n),y(this,"_cachedMin"),y(this,"_cachedMax"),y(this,"writePos",Re),y(this,"_refCount",0),y(this,"_cachedLength"),y(this,"_cachedIndexes"),Wf(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:s=0,glBufferUsage:a="static",alignment:o=0n,key:c=$o()}=e,h=e.data??[];if(h instanceof pe||typeof h=="object"&&"isSynnaxSeries"in h&&h.isSynnaxSeries===!0){const u=h;this.key=u.key,this.dataType=u.dataType,this.sampleOffset=u.sampleOffset,this.gl=u.gl,this._data=u._data,this.timeRange=u.timeRange,this.alignment=u.alignment,this._cachedMin=u._cachedMin,this._cachedMax=u._cachedMax,this.writePos=u.writePos,this._refCount=u._refCount,this._cachedLength=u._cachedLength;return}const d=ko(h),f=Array.isArray(h);if(t!=null)this.dataType=new x(t);else{if(h instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(f||d){let u=h;if(!d){if(h.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");u=h[0]}if(typeof u=="string")this.dataType=x.STRING;else if(typeof u=="number")this.dataType=x.FLOAT64;else if(typeof u=="bigint")this.dataType=x.INT64;else if(typeof u=="boolean")this.dataType=x.BOOLEAN;else if(u instanceof z||u instanceof Date||u instanceof z)this.dataType=x.TIMESTAMP;else if(typeof u=="object")this.dataType=x.JSON;else throw new Error(`cannot infer data type of ${typeof u} when constructing a Series from a JS array`)}else this.dataType=new x(h)}if(!f&&!d)this._data=h;else{let u=d?[h]:h;const N=u[0];(N instanceof z||N instanceof Date||N instanceof O)&&(u=u.map(S=>new z(S).valueOf())),this.dataType.equals(x.STRING)?(this._cachedLength=u.length,this._data=new TextEncoder().encode(`${u.join(`
16
16
  `)}
17
- `).buffer):this.dataType.equals($.JSON)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.map(S=>ut.encodeString(S)).join(`
17
+ `).buffer):this.dataType.equals(x.JSON)?(this._cachedLength=u.length,this._data=new TextEncoder().encode(`${u.map(S=>Xt.encodeString(S)).join(`
18
18
  `)}
19
- `).buffer):this.dataType.usesBigInt&&typeof k=="number"?this._data=new this.dataType.Array(d.map(S=>BigInt(Math.round(S)))).buffer:!this.dataType.usesBigInt&&typeof k=="bigint"?this._data=new this.dataType.Array(d.map(S=>Number(S))).buffer:this._data=new this.dataType.Array(d).buffer}this.key=l,this.alignment=o,this.sampleOffset=i??0,this._timeRange=n,this.gl={control:null,buffer:null,prevBuffer:0,bufferUsage:a}}static alloc({capacity:e,dataType:t,...n}){if(e===0)throw new Error("[Series] - cannot allocate an array of length 0");const i=new new $(t).Array(e),a=new he({data:i.buffer,dataType:t,...n});return a.writePos=0,a}static createTimestamps(e,t,n){const i=n.spanRange(t.span(e)),a=new BigInt64Array(e);for(let o=0;o<e;o++)a[o]=BigInt(n.add(t.span(o)).valueOf());return new he({data:a,dataType:$.TIMESTAMP,timeRange:i})}get refCount(){return this._refCount}static fromStrings(e,t){const n=new TextEncoder().encode(`${e.join(`
19
+ `).buffer):this.dataType.usesBigInt&&typeof N=="number"?this._data=new this.dataType.Array(u.map(S=>BigInt(Math.round(S)))).buffer:!this.dataType.usesBigInt&&typeof N=="bigint"?this._data=new this.dataType.Array(u.map(S=>Number(S))).buffer:this._data=new this.dataType.Array(u).buffer}this.key=c,this.alignment=o,this.sampleOffset=s??0,this.timeRange=n??q.ZERO,this.gl={control:null,buffer:null,prevBuffer:0,bufferUsage:a}}static alloc({capacity:e,dataType:t,...n}){if(e===0)throw new Error("[Series] - cannot allocate an array of length 0");const s=new new x(t).Array(e),a=new pe({data:s.buffer,dataType:t,...n});return a.writePos=0,a}static createTimestamps(e,t,n){const s=n.spanRange(t.span(e)),a=new BigInt64Array(e);for(let o=0;o<e;o++)a[o]=BigInt(n.add(t.span(o)).valueOf());return new pe({data:a,dataType:x.TIMESTAMP,timeRange:s})}get refCount(){return this._refCount}static fromStrings(e,t){const n=new TextEncoder().encode(`${e.join(`
20
20
  `)}
21
- `);return new he({data:n,dataType:$.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(`${e.map(i=>ut.encodeString(i)).join(`
21
+ `);return new pe({data:n,dataType:x.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(`${e.map(s=>Xt.encodeString(s)).join(`
22
22
  `)}
23
- `);return new he({data:n,dataType:$.JSON,timeRange:t})}acquire(e){this._refCount++,e!=null&&this.updateGLBuffer(e)}release(){if(this._refCount--,this._refCount===0&&this.gl.control!=null)this.maybeGarbageCollectGLBuffer(this.gl.control);else if(this._refCount<0)throw new Error("cannot release an array with a negative reference count")}write(e){if(!e.dataType.equals(this.dataType))throw new Error("buffer must be of the same type as this array");return this.dataType.isVariable?this.writeVariable(e):this.writeFixed(e)}writeVariable(e){if(this.writePos===Ie)return 0;const t=this.byteCapacity.valueOf()-this.writePos,n=e.subBytes(0,t);return this.writeToUnderlyingData(n),this.writePos+=n.byteLength.valueOf(),this._cachedLength!=null&&(this._cachedLength+=n.length,this.calculateCachedLength()),n.length}writeFixed(e){if(this.writePos===Ie)return 0;const t=this.capacity-this.writePos,n=e.sub(0,t);return this.writeToUnderlyingData(n),this._cachedLength=void 0,this.maybeRecomputeMinMax(n),this.writePos+=n.length,n.length}writeToUnderlyingData(e){this.underlyingData.set(e.data,this.writePos)}get buffer(){return typeof this._data=="object"&&"buffer"in this._data?this._data.buffer:this._data}get underlyingData(){return new this.dataType.Array(this._data)}get data(){return this.writePos===Ie?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches($.STRING,$.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
24
- `).slice(0,-1)}toUUIDs(){if(!this.dataType.equals($.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=$.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const i=this.underlyingData.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(i.buffer),o=>o.toString(16).padStart(2,"0")).join("").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5");t[n]=a}return t}parseJSON(e){if(!this.dataType.equals($.JSON))throw new Error("cannot parse non-JSON series as JSON");return new TextDecoder().decode(this.underlyingData).split(`
25
- `).slice(0,-1).map(t=>e.parse(ut.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new ft(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===Ie?this.byteCapacity:this.dataType.isVariable?new ft(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===Ie?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,i)=>{n===Mn&&(e++,t.push(i+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let i=0;i<this.length;i++)n[i]=Yu(this.dataType,e,this.data[i],t);return new he({data:n.buffer,dataType:e,timeRange:this._timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals($.TIMESTAMP))this._cachedMax=this.data[this.data.length-1];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}else{const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}return this._cachedMax}get max(){if(this.dataType.isVariable)throw new Error("cannot calculate maximum on a variable length data type");return this.writePos===0?-1/0:(this._cachedMax??(this._cachedMax=this.calcRawMax()),xt(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals($.TIMESTAMP))this._cachedMin=this.data[0];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}else{const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}return this._cachedMin}get min(){if(this.dataType.isVariable)throw new Error("cannot calculate minimum on a variable length data type");return this.writePos===0?1/0:(this._cachedMin??(this._cachedMin=this.calcRawMin()),xt(this._cachedMin,this.sampleOffset))}get bounds(){return te(Number(this.min),Number(this.max))}maybeRecomputeMinMax(e){if(this._cachedMin!=null){const t=e._cachedMin??e.calcRawMin();t<this._cachedMin&&(this._cachedMin=t)}if(this._cachedMax!=null){const t=e._cachedMax??e.calcRawMax();t>this._cachedMax&&(this._cachedMax=t)}}enrich(){this.max,this.min}get range(){return xt(this.max,-this.min)}atAlignment(e,t){const n=Number(e-this.alignment);if(n<0||n>=this.length){if(t===!0)throw new Error(`[series] - no value at index ${n}`);return}return this.at(n,t)}at(e,t){if(this.dataType.isVariable)return this.atVariable(e,t??!1);e<0&&(e=this.length+e);const n=this.data[e];if(n==null){if(t===!0)throw new Error(`[series] - no value at index ${e}`);return}return xt(n,this.sampleOffset)}atVariable(e,t){let n=0,i=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],i=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let o=0;o<this.data.length;o++)if(this.data[o]===Mn){if(e===0){i=o;break}n=o+1,e--}if(i===0&&(i=this.data.length),n>=i||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,i);return this.dataType.equals($.STRING)?new TextDecoder().decode(a):sa(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=Ql(e);for(;t<=n;){const a=Math.floor((t+n)/2),o=i(this.at(a,!0),e);if(o===0)return a;o<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals($.FLOAT32)&&!this.dataType.equals($.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:i}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==i)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==Ie){i===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(i).valueOf(),o=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,o.buffer),this.gl.prevBuffer=this.writePos}else e.bufferData(e.ARRAY_BUFFER,this.buffer,n==="static"?e.STATIC_DRAW:e.DYNAMIC_DRAW),this.gl.prevBuffer=Ie}as(e){return wa(e,this.dataType),this}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:ui(this.alignmentBounds.lower),upper:ui(this.alignmentBounds.upper)},timeRange:(e=this._timeRange)==null?void 0:e.toString(),length:this.length,capacity:this.capacity}}get memInfo(){return{key:this.key,length:this.length,byteLength:this.byteLength,glBuffer:this.gl.buffer!=null}}get alignmentBounds(){return te(this.alignment,this.alignment+BigInt(this.length))}maybeGarbageCollectGLBuffer(e){this.gl.buffer!=null&&(e.deleteBuffer(this.gl.buffer),this.gl.buffer=null,this.gl.prevBuffer=0,this.gl.control=null)}get glBuffer(){if(this.gl.buffer==null)throw new Error("gl buffer not initialized");return this.gl.prevBuffer!==this.writePos&&console.warn("buffer not updated"),this.gl.buffer}[Symbol.iterator](){if(this.dataType.isVariable){const e=new Vu(this);return this.dataType.equals($.JSON)?new Ju(e):e}return new Ku(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new ni(this,e,t??this.length)}subAlignmentIterator(e,t){return new ni(this,Number(e-this.alignment),Number(t-this.alignment))}subBytes(e,t){if(e>=0&&(t==null||t>=this.byteLength.valueOf()))return this;const n=this.data.subarray(e,t);return new he({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let i;return e?i=this.data.subarray(t,n):i=this.data.slice(t,n),new he({data:i,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new he({data:this.buffer,dataType:this.dataType,timeRange:G.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};y(Rt,"crudeZ",s.z.object({timeRange:G.z.optional(),dataType:$.z,alignment:s.z.coerce.bigint().optional(),data:s.z.union([Fu,Gu,s.z.instanceof(ArrayBuffer),s.z.instanceof(Uint8Array)]),glBufferUsage:_u.optional().default("static").optional()})),y(Rt,"z",Rt.crudeZ.transform(r=>new Rt(r)));let Ae=Rt;class ni{constructor(e,t,n){y(this,"series"),y(this,"end"),y(this,"index"),this.series=e;const i=te(0,e.length);this.end=Xs(i,n),this.index=Xs(i,t)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}}class Vu{constructor(e){if(y(this,"series"),y(this,"index"),y(this,"decoder"),!e.dataType.isVariable)throw new Error("cannot create a variable series iterator for a non-variable series");this.series=e,this.index=0,this.decoder=new TextDecoder}next(){const e=this.index,t=this.series.data;for(;this.index<t.length&&t[this.index]!==Mn;)this.index++;const n=this.index;return e===n?{done:!0,value:void 0}:(this.index++,{done:!1,value:this.decoder.decode(this.series.buffer.slice(e,n))})}[Symbol.iterator](){return this}}var si,ii;class Ju{constructor(e){y(this,"wrapped"),y(this,si,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:ut.decodeString(e.value)}}[(ii=Symbol.iterator,si=Symbol.toStringTag,ii)](){return this}}var ai,oi;class Ku{constructor(e){y(this,"series"),y(this,"index"),y(this,ai,"SeriesIterator"),this.series=e,this.index=0}next(){return this.index>=this.series.length?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[(oi=Symbol.iterator,ai=Symbol.toStringTag,oi)](){return this}}class ba{constructor(e){if(y(this,"series"),e.length!==0){const t=e[0].dataType;for(let n=1;n<e.length;n++)if(!e[n].dataType.equals(t))throw new Error("[multi-series] - series must have the same data type")}this.series=e}as(e){return wa(e,this.dataType),this}get dataType(){return this.series.length===0?$.UNKNOWN:this.series[0].dataType}get timeRange(){return this.series.length===0?G.ZERO:new G(this.series[0].timeRange.start,this.series[this.series.length-1].timeRange.end)}get alignment(){return this.series.length===0?0n:this.series[0].alignment}get alignmentBounds(){return this.series.length===0?te(0n,0n):te(this.series[0].alignmentBounds.lower,this.series[this.series.length-1].alignmentBounds.upper)}push(e){this.series.push(e)}get length(){return this.series.reduce((e,t)=>e+t.length,0)}atAlignment(e,t){if(this.series.length===0){if(t)throw new Error(`[series] - no value at alignment ${e}`);return}for(const n of this.series)if(ur(n.alignmentBounds,e))return n.atAlignment(e,t);if(t)throw new Error(`[series] - no value at alignment ${e}`)}at(e,t=!1){e<0&&(e=this.length+e);for(const n of this.series){if(e<n.length)return n.at(e,t);e-=n.length}if(t)throw new Error(`[series] - no value at index ${e}`)}subIterator(e,t){return new yn(this,e,t??this.length)}subAlignmentIterator(e,t){if(e>=this.alignmentBounds.upper||t<=this.alignmentBounds.lower)return Dn;let n=0;for(let a=0;a<this.series.length;a++){const o=this.series[a];if(e<o.alignment)break;if(e>=o.alignmentBounds.upper)n+=o.length;else if(ur(o.alignmentBounds,e)){n+=Number(e-o.alignment);break}}let i=0;for(let a=0;a<this.series.length;a++){const o=this.series[a];if(t<o.alignment)break;if(t>=o.alignmentBounds.upper)i+=o.length;else if(ur(o.alignmentBounds,t)){i+=Number(t-o.alignment);break}}return new yn(this,n,i)}subAlignmentSpanIterator(e,t){if(e>=this.alignmentBounds.upper)return Dn;let n=0;for(let i=0;i<this.series.length;i++){const a=this.series[i];if(e<a.alignment)break;if(e>=a.alignmentBounds.upper)n+=a.length;else if(ur(a.alignmentBounds,e)){n+=Number(e-a.alignment);break}}return new yn(this,n,n+t)}get byteLength(){return new ft(this.series.reduce((e,t)=>e+t.byteLength.valueOf(),0))}get data(){const e=new this.dataType.Array(this.length);let t=0;for(const n of this.series)e.set(n.data,t),t+=n.length;return new this.dataType.Array(e.buffer)}traverseAlignment(e,t){const n=this.series.map(i=>i.alignmentBounds);return bu(n,e,t)}distance(e,t){const n=this.series.map(i=>i.alignmentBounds);return Tu(n,e,t)}parseJSON(e){if(!this.dataType.equals($.JSON))throw new Error("cannot parse non-JSON series as JSON");return this.series.flatMap(t=>t.parseJSON(e))}[Symbol.iterator](){return this.series.length===0?{next(){return{done:!0,value:void 0}}}:new Hu(this.series)}}var ci,li;class Hu{constructor(e){y(this,"series"),y(this,"seriesIndex"),y(this,"internal"),y(this,ci,"MultiSeriesIterator"),this.series=e,this.seriesIndex=0,this.internal=e[0][Symbol.iterator]()}next(){const e=this.internal.next();return e.done===!1?e:this.seriesIndex===this.series.length-1?{done:!0,value:void 0}:(this.internal=this.series[++this.seriesIndex][Symbol.iterator](),this.next())}[(li=Symbol.iterator,ci=Symbol.toStringTag,li)](){return this}}let yn=class{constructor(e,t,n){y(this,"series"),y(this,"index"),y(this,"end"),this.series=e,this.end=n,this.index=t}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}};const ui=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}},Xu=(r,e)=>{let t=null;return e===0?r:(...n)=>{t!==null&&(clearTimeout(t),t=null),t=setTimeout(()=>r(...n),e)}},Qu=(r,e,t=".")=>{const n=r.split(t);return n.map((i,a)=>{const o=e(i,a,n);return o==null?null:typeof o=="string"?o:o.join(t)}).filter(i=>i!=null).join(t)},eh=(r,e,t={optional:!1,separator:"."})=>{t.separator??(t.separator=".");const{optional:n,getter:i=(l,u)=>l[u]}=t,a=e.split(t.separator);if(a.length===1&&a[0]==="")return r;let o=r;for(const l of a){const u=i(o,l);if(u==null){if(n)return null;throw new Error(`Path ${e} does not exist. ${l} is null`)}o=u}return o};s.z.object({key:s.z.string(),value:s.z.string()});var th=Object.defineProperty,rh=(r,e,t)=>e in r?th(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Nr=(r,e,t)=>rh(r,typeof e!="symbol"?e+"":e,t);let nh=class{constructor(e,t){Nr(this,"handlers"),Nr(this,"transform"),Nr(this,"closer"),this.transform=e,this.handlers=t??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){let t=e;if(this.transform!=null){const[n,i]=this.transform(e);if(!i)return;t=n}this.handlers.forEach((n,i)=>i(t))}setCloser(e){this.closer=e}async close(){var e;return await((e=this.closer)==null?void 0:e.call(this))}},sh=class{constructor(e){Nr(this,"handlers"),this.handlers=e??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){this.handlers.forEach((t,n)=>n(e))}};const Ze=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:sh,Observer:nh},Symbol.toStringTag,{value:"Module"})),Kt=s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown()),ih=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser";ih();const ah=["macOS","Windows","Linux"],oh=["macos","windows","linux"],ch={macos:"macOS",windows:"Windows",linux:"Linux"};s.z.enum(ah).or(s.z.enum(oh).transform(r=>ch[r]));var lh=Object.defineProperty,uh=(r,e,t)=>e in r?lh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ct=(r,e,t)=>uh(r,typeof e!="symbol"?e+"":e,t);const hh=(...r)=>r.map(Ta).join(""),Ta=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),dh=r=>r.endsWith("/")?r.slice(0,-1):r,Bn=class Zn{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){Ct(this,"protocol"),Ct(this,"host"),Ct(this,"port"),Ct(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Ta(i)}replace(e){return new Zn({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Zn({...this,pathPrefix:hh(this.path,e)})}toString(){return dh(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};Ct(Bn,"UNKNOWN",new Bn({host:"unknown",port:0}));let fh=Bn;const yh=-128,gh=127,ph=s.z.number().int().min(yh).max(gh),mh=-32768,wh=32767,bh=s.z.number().int().min(mh).max(wh),Th=-2147483648,vh=2147483647,Oh=s.z.number().int().min(Th).max(vh),Nh=-9223372036854775808n,Eh=9223372036854775807n,zh=s.z.bigint().min(Nh).max(Eh),Sh=255,Ih=s.z.number().int().min(0).max(Sh),$h=65535,kh=s.z.number().int().min(0).max($h),Ah=4294967295,xh=s.z.number().int().min(0).max(Ah),Rh=18446744073709551615n,Ch=s.z.bigint().min(0n).max(Rh),va=r=>Qu(r,(e,t,n)=>{const i=t===n.length-1,a=!isNaN(parseInt(e)),o=!isNaN(parseInt(n[t+1]));return a&&(e="element"),i||o?e:[e,"shape"]}),hi=(r,e)=>{if(r==null)return null;const t=r[e];return t==null&&typeof r=="object"&&"sourceType"in r?r.sourceType()[e]:t},Ph=(r,e,t)=>eh(hi(r,"shape"),va(e),{...t,getter:hi}),jh=Object.freeze(Object.defineProperty({__proto__:null,getFieldSchema:Ph,getFieldSchemaPath:va,int16:bh,int32:Oh,int64:zh,int8:ph,uint16:kh,uint32:xh,uint64:Ch,uint8:Ih},Symbol.toStringTag,{value:"Module"}));var Dh=Object.defineProperty,Mh=(r,e,t)=>e in r?Dh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Pt=(r,e,t)=>Mh(r,typeof e!="symbol"?e+"":e,t);const Bh=async r=>await new Promise(e=>setTimeout(e,N.fromMilliseconds(r).milliseconds)),Zh=s.z.object({interval:N.z.optional(),maxRetries:s.z.number().optional(),scale:s.z.number().optional()}),Uh=(r={})=>{const e=r.sleepFn||Bh,t=r.maxRetries??5,n=r.scale??1;let i=0,a=new N(r.interval??N.milliseconds(1));return async()=>i>=t?!1:(await e(a),a=a.mult(n),i++,!0)},Lh=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:Zh,create:Uh},Symbol.toStringTag,{value:"Module"})),de=class extends Number{};Pt(de,"ABSOLUTE",255),Pt(de,"MINIMUM",0),Pt(de,"BOUNDS",{lower:de.MINIMUM,upper:de.ABSOLUTE+1}),Pt(de,"z",s.z.union([s.z.instanceof(de),s.z.number().int().min(0).max(255).transform(r=>new de(r)),s.z.instanceof(Number).transform(r=>new de(r))]));let Oa=de;const Na=s.z.object({name:s.z.string(),key:s.z.string()}),_h=r=>s.z.object({subject:Na,resource:r,authority:Oa.z}),qh=(...r)=>e=>e.filter(t=>{let n=!1;return t.to!=null&&(n=r.includes(t.to.resource)),t.from!=null&&!n&&(n=r.includes(t.from.resource)),n}),yt=Object.freeze(Object.defineProperty({__proto__:null,Authority:Oa,filterTransfersByChannelKey:qh,stateZ:_h,subjectZ:Na},Symbol.toStringTag,{value:"Module"})),Ea=class jt extends Error{constructor(){super(jt.MESSAGE)}matches(e){return typeof e=="string"?e.includes(jt.MESSAGE):e instanceof jt||e.message.includes(jt.MESSAGE)}};Pt(Ea,"MESSAGE","canceled");let Yh=Ea;new Yh;const Un=s.z.string().regex(/^\d+\.\d+\.\d+$/),Ht=(r,e,t={})=>{t.checkMajor??(t.checkMajor=!0),t.checkMinor??(t.checkMinor=!0),t.checkPatch??(t.checkPatch=!0);const n=Un.parse(r),i=Un.parse(e),[a,o,l]=n.split(".").map(Number),[u,h,f]=i.split(".").map(Number);if(t.checkMajor){if(a<u)return ln;if(a>u)return un}if(t.checkMinor){if(o<h)return ln;if(o>h)return un}if(t.checkPatch){if(l<f)return ln;if(l>f)return un}return Mr},Wh=(r,e,t={})=>nu(Ht(r,e,t)),za=(r,e,t={})=>ru(Ht(r,e,t)),Fh=(r,e,t={})=>tu(Ht(r,e,t)),Gh=({name:r,migrate:e})=>t=>{try{const n=e(t);return console.log(`${r} migrated: ${t.version} -> ${n.version}`),n}catch(n){throw console.log(`${r} failed to migrate from ${t.version}`),console.error(n),n}},Vh=({name:r,migrations:e,targetSchema:t,defaultVersion:n,def:i})=>{const a=Object.keys(e).sort(Ht).pop();if(a==null)return h=>{if(h.version??(h.version=n),h.version!==i.version)return console.log(`${r} version ${h.version} is newer than latest version of ${i.version}.
23
+ `);return new pe({data:n,dataType:x.JSON,timeRange:t})}acquire(e){this._refCount++,e!=null&&this.updateGLBuffer(e)}release(){if(this._refCount<=0){console.warn("attempted to release a series with a negative reference count");return}this._refCount--,this._refCount===0&&this.gl.control!=null&&this.maybeGarbageCollectGLBuffer(this.gl.control)}write(e){if(!e.dataType.equals(this.dataType))throw new Error("buffer must be of the same type as this array");return this.dataType.isVariable?this.writeVariable(e):this.writeFixed(e)}writeVariable(e){if(this.writePos===Re)return 0;const t=this.byteCapacity.valueOf()-this.writePos,n=e.subBytes(0,t);return this.writeToUnderlyingData(n),this.writePos+=n.byteLength.valueOf(),this._cachedLength!=null&&(this._cachedLength+=n.length,this.calculateCachedLength()),n.length}writeFixed(e){if(this.writePos===Re)return 0;const t=this.capacity-this.writePos,n=e.sub(0,t);return this.writeToUnderlyingData(n),this._cachedLength=void 0,this.maybeRecomputeMinMax(n),this.writePos+=n.length,n.length}writeToUnderlyingData(e){this.underlyingData.set(e.data,this.writePos)}get buffer(){return typeof this._data=="object"&&"buffer"in this._data?this._data.buffer:this._data}get underlyingData(){return new this.dataType.Array(this._data)}get data(){return this.writePos===Re?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches(x.STRING,x.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
24
+ `).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(x.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=x.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const s=this.underlyingData.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(s.buffer),o=>o.toString(16).padStart(2,"0")).join("").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5");t[n]=a}return t}parseJSON(e){if(!this.dataType.equals(x.JSON))throw new Error("cannot parse non-JSON series as JSON");return new TextDecoder().decode(this.underlyingData).split(`
25
+ `).slice(0,-1).map(t=>e.parse(Xt.decodeString(t)))}get byteCapacity(){return new vt(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===Re?this.byteCapacity:this.dataType.isVariable?new vt(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===Re?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,s)=>{n===hs&&(e++,t.push(s+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let s=0;s<this.length;s++)n[s]=Yf(this.dataType,e,this.data[s],t);return new pe({data:n.buffer,dataType:e,timeRange:this.timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals(x.TIMESTAMP))this._cachedMax=this.data[this.data.length-1];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}else{const e=this.data;this._cachedMax=e.reduce((t,n)=>t>n?t:n)}return this._cachedMax}get max(){if(this.dataType.isVariable)throw new Error("cannot calculate maximum on a variable length data type");return this.writePos===0?-1/0:(this._cachedMax??(this._cachedMax=this.calcRawMax()),Wt(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(x.TIMESTAMP))this._cachedMin=this.data[0];else if(this.dataType.usesBigInt){const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}else{const e=this.data;this._cachedMin=e.reduce((t,n)=>t<n?t:n)}return this._cachedMin}get min(){if(this.dataType.isVariable)throw new Error("cannot calculate minimum on a variable length data type");return this.writePos===0?1/0:(this._cachedMin??(this._cachedMin=this.calcRawMin()),Wt(this._cachedMin,this.sampleOffset))}get bounds(){return J(Number(this.min),Number(this.max))}maybeRecomputeMinMax(e){if(this._cachedMin!=null){const t=e._cachedMin??e.calcRawMin();t<this._cachedMin&&(this._cachedMin=t)}if(this._cachedMax!=null){const t=e._cachedMax??e.calcRawMax();t>this._cachedMax&&(this._cachedMax=t)}}enrich(){this.max,this.min}get range(){return Wt(this.max,-this.min)}atAlignment(e,t){const n=Number(e-this.alignment);if(n<0||n>=this.length){if(t===!0)throw new Error(`[series] - no value at index ${n}`);return}return this.at(n,t)}at(e,t){if(this.dataType.isVariable)return this.atVariable(e,t??!1);e<0&&(e=this.length+e);const n=this.data[e];if(n==null){if(t===!0)throw new Error(`[series] - no value at index ${e}`);return}return Wt(n,this.sampleOffset)}atVariable(e,t){let n=0,s=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],s=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let o=0;o<this.data.length;o++)if(this.data[o]===hs){if(e===0){s=o;break}n=o+1,e--}if(s===0&&(s=this.data.length),n>=s||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,s);return this.dataType.equals(x.STRING)?new TextDecoder().decode(a):Cs(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const s=Xd(e);for(;t<=n;){const a=Math.floor((t+n)/2),o=s(this.at(a,!0),e);if(o===0)return a;o<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals(x.FLOAT32)&&!this.dataType.equals(x.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:s}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==s)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==Re){s===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(s).valueOf(),o=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,o.buffer),this.gl.prevBuffer=this.writePos}else e.bufferData(e.ARRAY_BUFFER,this.buffer,n==="static"?e.STATIC_DRAW:e.DYNAMIC_DRAW),this.gl.prevBuffer=Re}as(e){return Ao(e,this.dataType),this}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:Qi(this.alignmentBounds.lower),upper:Qi(this.alignmentBounds.upper)},timeRange:(e=this.timeRange)==null?void 0:e.toString(),length:this.length,capacity:this.capacity}}get memInfo(){return{key:this.key,length:this.length,byteLength:this.byteLength,glBuffer:this.gl.buffer!=null}}get alignmentBounds(){return J(this.alignment,this.alignment+BigInt(this.length))}maybeGarbageCollectGLBuffer(e){this.gl.buffer!=null&&(e.deleteBuffer(this.gl.buffer),this.gl.buffer=null,this.gl.prevBuffer=0,this.gl.control=null)}get glBuffer(){if(this.gl.buffer==null)throw new Error("gl buffer not initialized");return this.gl.prevBuffer!==this.writePos&&console.warn("buffer not updated"),this.gl.buffer}[Symbol.iterator](){if(this.dataType.isVariable){const e=new Hf(this);return this.dataType.equals(x.JSON)?new Kf(e):e}return new Jf(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new Wi(this,e,t??this.length)}subAlignmentIterator(e,t){return new Wi(this,Number(e-this.alignment),Number(t-this.alignment))}subBytes(e,t){if(e>=0&&(t==null||t>=this.byteLength.valueOf()))return this;const n=this.data.subarray(e,t);return new pe({data:n,dataType:this.dataType,timeRange:this.timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let s;return e?s=this.data.subarray(t,n):s=this.data.slice(t,n),new pe({data:s,dataType:this.dataType,timeRange:this.timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new pe({data:this.buffer,dataType:this.dataType,timeRange:q.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}toString(){var e,t;let n=`${this.dataType.toString()} ${this.length} [`;if(this.length<=10)n+=Array.from(this).map(s=>s.toString());else{for(let s=0;s<5;s++)n+=`${(e=this.at(s))==null?void 0:e.toString()}`,s<4&&(n+=",");n+="...";for(let s=-5;s<0;s++)n+=(t=this.at(s))==null?void 0:t.toString(),s<-1&&(n+=",")}return n+="]",n}};y(Vt,"crudeZ",i.z.object({timeRange:q.z.optional(),dataType:x.z,alignment:i.z.coerce.bigint().optional(),data:i.z.union([Vf,Gf,i.z.instanceof(ArrayBuffer),i.z.instanceof(Uint8Array)]),glBufferUsage:qf.optional().default("static").optional()})),y(Vt,"z",Vt.crudeZ.transform(r=>new Vt(r)));let _e=Vt,Wi=class{constructor(e,t,n){y(this,"series"),y(this,"end"),y(this,"index"),this.series=e;const s=J(0,e.length);this.end=_i(s,n),this.index=_i(s,t)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}},Hf=class{constructor(e){if(y(this,"series"),y(this,"index"),y(this,"decoder"),!e.dataType.isVariable)throw new Error("cannot create a variable series iterator for a non-variable series");this.series=e,this.index=0,this.decoder=new TextDecoder}next(){const e=this.index,t=this.series.data;for(;this.index<t.length&&t[this.index]!==hs;)this.index++;const n=this.index;return e===n?{done:!0,value:void 0}:(this.index++,{done:!1,value:this.decoder.decode(this.series.buffer.slice(e,n))})}[Symbol.iterator](){return this}};var Vi,Gi;const Uo=class Co{constructor(e){y(this,"wrapped"),y(this,Vi,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:Xt.decodeString(e.value,Co.SCHEMA)}}[(Gi=Symbol.iterator,Vi=Symbol.toStringTag,Gi)](){return this}};y(Uo,"SCHEMA",i.z.record(i.z.string(),i.z.unknown()));let Kf=Uo;var Hi,Ki;class Jf{constructor(e){y(this,"series"),y(this,"index"),y(this,Hi,"SeriesIterator"),this.series=e,this.index=0}next(){return this.index>=this.series.length?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[(Ki=Symbol.iterator,Hi=Symbol.toStringTag,Ki)](){return this}}let Ro=class{constructor(e=[]){if(y(this,"series"),e.length!==0){const t=e[0].dataType;for(let n=1;n<e.length;n++)if(!e[n].dataType.equals(t))throw new Error("[multi-series] - series must have the same data type")}this.series=e}as(e){return Ao(e,this.dataType),this}get dataType(){return this.series.length===0?x.UNKNOWN:this.series[0].dataType}get timeRange(){return this.series.length===0?q.ZERO:new q(this.series[0].timeRange.start,this.series[this.series.length-1].timeRange.end)}get alignment(){return this.series.length===0?0n:this.series[0].alignment}get alignmentBounds(){return this.series.length===0?J(0n,0n):J(this.series[0].alignmentBounds.lower,this.series[this.series.length-1].alignmentBounds.upper)}push(e){"isSynnaxSeries"in e&&e.isSynnaxSeries?this.series.push(e):this.series.push(...e.series)}get length(){return this.series.reduce((e,t)=>e+t.length,0)}atAlignment(e,t){if(this.series.length===0){if(t)throw new Error(`[series] - no value at alignment ${e}`);return}for(const n of this.series)if($r(n.alignmentBounds,e))return n.atAlignment(e,t);if(t)throw new Error(`[series] - no value at alignment ${e}`)}at(e,t=!1){e<0&&(e=this.length+e);for(const n of this.series){if(e<n.length)return n.at(e,t);e-=n.length}if(t)throw new Error(`[series] - no value at index ${e}`)}subIterator(e,t){return new xn(this,e,t??this.length)}subAlignmentIterator(e,t){if(e>=this.alignmentBounds.upper||t<=this.alignmentBounds.lower)return ls;let n=0;for(let a=0;a<this.series.length;a++){const o=this.series[a];if(e<o.alignment)break;if(e>=o.alignmentBounds.upper)n+=o.length;else if($r(o.alignmentBounds,e)){n+=Number(e-o.alignment);break}}let s=0;for(let a=0;a<this.series.length;a++){const o=this.series[a];if(t<o.alignment)break;if(t>=o.alignmentBounds.upper)s+=o.length;else if($r(o.alignmentBounds,t)){s+=Number(t-o.alignment);break}}return new xn(this,n,s)}subAlignmentSpanIterator(e,t){if(e>=this.alignmentBounds.upper)return ls;let n=0;for(let s=0;s<this.series.length;s++){const a=this.series[s];if(e<a.alignment)break;if(e>=a.alignmentBounds.upper)n+=a.length;else if($r(a.alignmentBounds,e)){n+=Number(e-a.alignment);break}}return new xn(this,n,n+t)}updateGLBuffer(e){this.series.forEach(t=>t.updateGLBuffer(e))}get bounds(){return bf(this.series.map(e=>e.bounds))}get byteLength(){return new vt(this.series.reduce((e,t)=>e+t.byteLength.valueOf(),0))}get data(){const e=new this.dataType.Array(this.length);let t=0;for(const n of this.series)e.set(n.data,t),t+=n.length;return new this.dataType.Array(e.buffer)}traverseAlignment(e,t){const n=this.series.map(s=>s.alignmentBounds);return vf(n,e,t)}acquire(){this.series.forEach(e=>e.acquire())}release(){this.series.forEach(e=>e.release())}distance(e,t){const n=this.series.map(s=>s.alignmentBounds);return Tf(n,e,t)}parseJSON(e){if(!this.dataType.equals(x.JSON))throw new Error("cannot parse non-JSON series as JSON");return this.series.flatMap(t=>t.parseJSON(e))}[Symbol.iterator](){return this.series.length===0?{next(){return{done:!0,value:void 0}}}:new Xf(this.series)}};var Ji,Xi;class Xf{constructor(e){y(this,"series"),y(this,"seriesIndex"),y(this,"internal"),y(this,Ji,"MultiSeriesIterator"),this.series=e,this.seriesIndex=0,this.internal=e[0][Symbol.iterator]()}next(){const e=this.internal.next();return e.done===!1?e:this.seriesIndex===this.series.length-1?{done:!0,value:void 0}:(this.internal=this.series[++this.seriesIndex][Symbol.iterator](),this.next())}[(Xi=Symbol.iterator,Ji=Symbol.toStringTag,Xi)](){return this}}let xn=class{constructor(e,t,n){y(this,"series"),y(this,"index"),y(this,"end"),this.series=e,this.end=n,this.index=t}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}};const Qi=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}},Qf=(r,e)=>{let t=null;return e===0?r:(...n)=>{t!==null&&(clearTimeout(t),t=null),t=setTimeout(()=>r(...n),e)}},ey=(r,e,t=".")=>{const n=r.split(t);return n.map((s,a)=>{const o=e(s,a,n);return o==null?null:typeof o=="string"?o:o.join(t)}).filter(s=>s!=null).join(t)},ty=(r,e,t={optional:!1,separator:"."})=>{t.separator??(t.separator=".");const{optional:n,getter:s=(c,h)=>c[h]}=t,a=e.split(t.separator);if(a.length===1&&a[0]==="")return r;let o=r;for(const c of a){const h=s(o,c);if(h==null){if(n)return null;throw new Error(`Path ${e} does not exist. ${c} is null`)}o=h}return o};i.z.object({key:i.z.string(),value:i.z.string()});var ry=Object.defineProperty,ny=(r,e,t)=>e in r?ry(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Dr=(r,e,t)=>ny(r,typeof e!="symbol"?e+"":e,t);let sy=class{constructor(e,t){Dr(this,"handlers"),Dr(this,"transform"),Dr(this,"closer"),this.transform=e,this.handlers=t??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){let t=e;if(this.transform!=null){const[n,s]=this.transform(e);if(!s)return;t=n}this.handlers.forEach((n,s)=>s(t))}setCloser(e){this.closer=e}async close(){var e;return await((e=this.closer)==null?void 0:e.call(this))}},iy=class{constructor(e){Dr(this,"handlers"),this.handlers=e??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){this.handlers.forEach((t,n)=>n(e))}};const He=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:iy,Observer:sy},Symbol.toStringTag,{value:"Module"})),ce=i.z.record(i.z.union([i.z.number(),i.z.string(),i.z.symbol()]),i.z.unknown()),ay=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser";ay();const oy=["macOS","Windows","Linux"],cy=["macos","windows","linux"],ly={macos:"macOS",windows:"Windows",linux:"Linux"};i.z.enum(oy).or(i.z.enum(cy).transform(r=>ly[r]));var hy=Object.defineProperty,uy=(r,e,t)=>e in r?hy(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Gt=(r,e,t)=>uy(r,typeof e!="symbol"?e+"":e,t);const dy=(...r)=>r.map(Bo).join(""),Bo=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),fy=r=>r.endsWith("/")?r.slice(0,-1):r,us=class ds{constructor({host:e,port:t,protocol:n="",pathPrefix:s=""}){Gt(this,"protocol"),Gt(this,"host"),Gt(this,"port"),Gt(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Bo(s)}replace(e){return new ds({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new ds({...this,pathPrefix:dy(this.path,e)})}toString(){return fy(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};Gt(us,"UNKNOWN",new us({host:"unknown",port:0}));let yy=us;const gy=-128,py=127,wy=i.z.number().int().min(gy).max(py),my=-32768,by=32767,vy=i.z.number().int().min(my).max(by),Ty=-2147483648,Oy=2147483647,Sy=i.z.number().int().min(Ty).max(Oy),Ey=-9223372036854775808n,zy=9223372036854775807n,Ny=i.z.bigint().min(Ey).max(zy),Iy=255,$y=i.z.number().int().min(0).max(Iy),xy=65535,ky=i.z.number().int().min(0).max(xy),Ay=4294967295,Uy=i.z.number().int().min(0).max(Ay),Cy=18446744073709551615n,Ry=i.z.bigint().min(0n).max(Cy),Po=r=>ey(r,(e,t,n)=>{const s=t===n.length-1,a=!isNaN(parseInt(e)),o=!isNaN(parseInt(n[t+1]));return a&&(e="element"),s||o?e:[e,"shape"]}),ea=(r,e)=>{if(r==null)return null;const t=r[e];return t==null&&typeof r=="object"&&"sourceType"in r?r.sourceType()[e]:t},By=(r,e,t)=>ty(ea(r,"shape"),Po(e),{...t,getter:ea}),Py=Object.freeze(Object.defineProperty({__proto__:null,getFieldSchema:By,getFieldSchemaPath:Po,int16:vy,int32:Sy,int64:Ny,int8:wy,uint16:ky,uint32:Uy,uint64:Ry,uint8:$y},Symbol.toStringTag,{value:"Module"}));var Dy=Object.defineProperty,My=(r,e,t)=>e in r?Dy(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Te=(r,e,t)=>My(r,typeof e!="symbol"?e+"":e,t);const jy=async r=>await new Promise(e=>setTimeout(e,O.fromMilliseconds(r).milliseconds));class Ly{constructor(e){Te(this,"config"),Te(this,"retries"),Te(this,"interval"),this.config={baseInterval:new O((e==null?void 0:e.baseInterval)??O.seconds(1)),maxRetries:(e==null?void 0:e.maxRetries)??5,scale:(e==null?void 0:e.scale)??1,sleepFn:(e==null?void 0:e.sleepFn)??jy},this.retries=0,this.interval=new O(this.config.baseInterval)}async wait(){const{maxRetries:e,scale:t,sleepFn:n}=this.config;return this.retries>=e?!1:(await n(this.interval),this.interval=this.interval.mult(t),this.retries++,!0)}reset(){this.retries=0,this.interval=this.config.baseInterval}}const _y=i.z.object({baseInterval:O.z.optional(),maxRetries:i.z.number().optional(),scale:i.z.number().optional()}),Do=Object.freeze(Object.defineProperty({__proto__:null,Breaker:Ly,breakerConfig:_y},Symbol.toStringTag,{value:"Module"})),Zy=/^#?([0-9a-f]{6}|[0-9a-f]{8})$/i,Ps=i.z.string().regex(Zy),wt=i.z.number().min(0).max(255),qy=i.z.number().min(0).max(1),Mo=i.z.tuple([wt,wt,wt,qy]),jo=i.z.tuple([wt,wt,wt]),Ds=(r,e=1)=>{if(typeof r=="string")return Yy(r,e);if(Array.isArray(r)){if(r.length<3||r.length>4)throw new Error(`Invalid color: [${r.join(", ")}]`);return r.length===3?[...r,e]:r}throw new Error(`Invalid color: ${JSON.stringify(r)}`)},Fy=i.z.union([Ps,Mo,jo]).transform(r=>Ds(r)),Yy=(r,e=1)=>{if(!Ps.safeParse(r).success)throw new Error(`Invalid hex color: ${r}`);return r=Wy(r),[kr(r,0),kr(r,2),kr(r,4),r.length===8?kr(r,6)/255:e]},kr=(r,e)=>parseInt(r.slice(e,e+2),16),Wy=r=>r.startsWith("#")?r.slice(1):r,Vy=i.z.union([Ps,Mo,i.z.string(),jo]);Ds("#000000");Ds("#ffffff");const Gy=i.z.object({key:i.z.string(),color:Vy,position:i.z.number(),switched:i.z.boolean().optional()});i.z.array(Gy);const Hy=i.z.object({key:i.z.string(),name:i.z.string(),color:Fy});i.z.object({key:i.z.string(),name:i.z.string(),swatches:i.z.array(Hy)});const Lo=i.z.number().int().min(0).max(255),_o=255,Zo=0,Ky={lower:Zo,upper:_o+1},qo=i.z.object({name:i.z.string(),key:i.z.string()}),nr=r=>i.z.object({subject:qo,resource:r,authority:Lo}),Jy=(...r)=>e=>e.filter(t=>{let n=!1;return t.to!=null&&(n=r.includes(t.to.resource)),t.from!=null&&!n&&(n=r.includes(t.from.resource)),n}),Fo=i.z.object({from:nr(i.z.any()),to:i.z.null()}),Yo=i.z.object({from:i.z.null(),to:nr(i.z.any())}),Xy=i.z.union([Fo,Yo,i.z.object({from:nr(i.z.any()),to:nr(i.z.any())})]),Ke=Object.freeze(Object.defineProperty({__proto__:null,ABSOLUTE_AUTHORITY:_o,AUTHORITY_BOUNDS:Ky,ZERO_AUTHORITY:Zo,acquireZ:Yo,authorityZ:Lo,filterTransfersByChannelKey:Jy,releaseZ:Fo,stateZ:nr,subjectZ:qo,transferZ:Xy},Symbol.toStringTag,{value:"Module"})),Qy=r=>Object.getOwnPropertySymbols(globalThis).includes(r),eg=(r,e)=>{const t=Symbol.for(r);if(!Qy(t)){const n=e();Object.defineProperty(globalThis,t,{value:n})}return()=>globalThis[t]},tg=r=>e=>e!=null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"?e.type.startsWith(r):e instanceof Error?e.message.startsWith(r):typeof e!="string"?!1:e.startsWith(r),Xr=r=>{var e;return e=class extends Error{constructor(t,n){super(t,n),Te(this,"discriminator",e.discriminator),Te(this,"type",e.TYPE),Te(this,"matches",e.matches),this.name=e.TYPE}static sub(t){return Xr(`${r}.${t}`)}},Te(e,"discriminator","FreighterError"),Te(e,"TYPE",r),Te(e,"matches",tg(r)),e},Wo=r=>{if(r==null||typeof r!="object")return!1;const e=r;if(e.discriminator!=="FreighterError")return!1;if(!("type"in e))throw new Error(`Freighter error is missing its type property: ${JSON.stringify(e)}`);return!0},ct="unknown",fs="nil";class rg{constructor(){Te(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:fs,data:""};if(Wo(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}if(e instanceof Error)return{type:ct,data:e.message};if(typeof e=="string")return{type:ct,data:e};try{return{type:ct,data:JSON.stringify(e)}}catch{return{type:ct,data:"unable to encode error information"}}}decode(e){if(e==null||e.type===fs)return null;if(e.type===ct)return new ys(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new ys(e.data)}}const Ms=eg("synnax-error-registry",()=>new rg),ng=({encode:r,decode:e})=>Ms().register({encode:r,decode:e}),sg=r=>Ms().encode(r),ig=r=>r==null?null:Ms().decode(r);class ys extends Xr("unknown"){}const ag=i.z.object({type:i.z.string(),data:i.z.string()});class og extends Xr("canceled"){}const Tt=Object.freeze(Object.defineProperty({__proto__:null,Canceled:og,NONE:fs,UNKNOWN:ct,Unknown:ys,createTyped:Xr,decode:ig,encode:sg,isTyped:Wo,payloadZ:ag,register:ng},Symbol.toStringTag,{value:"Module"}));i.object({jsonrpc:i.string(),id:i.number().optional(),method:i.string().optional(),params:i.unknown().optional(),result:i.unknown().optional()});const gs=i.z.string().regex(/^\d+\.\d+\.\d+$/),ur=(r,e,t={})=>{t.checkMajor??(t.checkMajor=!0),t.checkMinor??(t.checkMinor=!0),t.checkPatch??(t.checkPatch=!0);const n=gs.parse(r),s=gs.parse(e),[a,o,c]=n.split(".").map(Number),[h,d,f]=s.split(".").map(Number);if(t.checkMajor){if(a<h)return En;if(a>h)return zn}if(t.checkMinor){if(o<d)return En;if(o>d)return zn}if(t.checkPatch){if(c<f)return En;if(c>f)return zn}return Kr},cg=(r,e,t={})=>rf(ur(r,e,t)),Vo=(r,e,t={})=>tf(ur(r,e,t)),lg=(r,e,t={})=>ef(ur(r,e,t)),hg=({name:r,migrate:e})=>t=>{try{const n=e(t);return console.log(`${r} migrated: ${t.version} -> ${n.version}`),n}catch(n){throw console.log(`${r} failed to migrate from ${t.version}`),console.error(n),n}},ug=({name:r,migrations:e,targetSchema:t,defaultVersion:n,def:s})=>{const a=Object.keys(e).sort(ur).pop();if(a==null)return d=>{if(d.version??(d.version=n),d.version!==s.version)return console.log(`${r} version ${d.version} is newer than latest version of ${s.version}.
26
26
  Returning default instead.
27
- `),i;try{return t!=null?t.parse(h):h}catch(f){return console.log(`${r} failed to parse default. Exiting with default`),console.error(f),i}};const o=Object.keys(e).length;let l=!1;const u=h=>{try{if(o===0||za(h.version,a))return console.log(l?`${r} ${h.version} now up to date`:`${r} version ${h.version} is up to date with target version ${i.version}`),h;const f=h.version,d=e[f],k=d(h);return l=!0,u(k)}catch(f){return console.log(`${r} failed to migrate from ${h.version} to ${a}`),console.error(f),i}};return h=>{try{if(h.version==null)if(n!=null)console.log(`${r} version is null. Setting version to default of ${n}`),h.version=n;else return console.log(`${r} version is null and no default version set. Exiting with default`),i;return u(h)}catch(f){return console.log(`${r} failed to parse final result. Exiting with default`),console.error(f),i}}},di=Object.freeze(Object.defineProperty({__proto__:null,compareSemVer:Ht,createMigration:Gh,migrator:Vh,semVerNewer:za,semVerOlder:Fh,semVerZ:Un,versionsEqual:Wh},Symbol.toStringTag,{value:"Module"})),Jh=["standard","scientific","engineering"];s.z.enum(Jh);const Kh=(r,e="")=>{const t=r.length;return t===0?e:t===1?r[0]:t===2?`${r[0]} and ${r[1]}`:`${r.slice(0,-1).join(", ")}, and ${r[t-1]}`},Hh=r=>{const e=r.split(" "),t=new Set,n=e.map(o=>o.charAt(0).toLowerCase()).join("");t.add(n.replace(/-/g,"_")),t.add(n.replace(/(.)(.)/g,"$1_$2").replace(/-/g,"_"));const i=/\d+/g;r.match(i)&&e.forEach((o,l)=>{if(i.test(o)){const u=e.map((h,f)=>f!==l?h.charAt(0).toLowerCase():h).join("");t.add(u.replace(/-/g,"_")),t.add(u.replace(/(.)(.)/g,"$1_$2").replace(/-/g,"_"))}});const a=e.map(o=>(o.length>3?o.substring(0,3):o).toLowerCase());return t.add(a.join("").replace(/-/g,"_")),t.add(a.join("_").replace(/-/g,"_")),Array.from(t).filter(o=>o.length>=2&&o.length<=12&&!/^\d/.test(o))},Xh=Object.freeze(Object.defineProperty({__proto__:null,createShortIdentifiers:Hh,naturalLanguageJoin:Kh},Symbol.toStringTag,{value:"Module"})),je="sy.",Je=class Je extends oe{constructor(){super(...arguments);c(this,"type",Je.TYPE)}};c(Je,"TYPE",`${je}validation`),c(Je,"matches",Q(Je.TYPE));let U=Je;const Ke=class Ke extends U{constructor(t,n){super(`${t}: ${n}`);c(this,"type",Ke.TYPE);c(this,"field");c(this,"message");this.field=t,this.message=n}};c(Ke,"TYPE",`${U.TYPE}.field`),c(Ke,"matches",Q(Ke.TYPE));let kr=Ke;const He=class He extends oe{constructor(){super(...arguments);c(this,"type",He.TYPE)}};c(He,"TYPE",`${je}auth`),c(He,"matches",Q(He.TYPE));let ve=He;const Xe=class Xe extends ve{constructor(){super(...arguments);c(this,"type",Xe.TYPE)}};c(Xe,"TYPE",`${ve.TYPE}.invalid-token`),c(Xe,"matches",Q(Xe.TYPE));let Ut=Xe;const Qe=class Qe extends ve{constructor(){super(...arguments);c(this,"type",Qe.TYPE)}};c(Qe,"TYPE",`${ve.TYPE}.expired-token`),c(Qe,"matches",Q(Qe.TYPE));let Lt=Qe;const et=class et extends oe{constructor(t){super(`
27
+ `),s;try{return t!=null?t.parse(d):d}catch(f){return console.log(`${r} failed to parse default. Exiting with default`),console.error(f),s}};const o=Object.keys(e).length;let c=!1;const h=d=>{try{if(o===0||Vo(d.version,a))return console.log(c?`${r} ${d.version} now up to date`:`${r} version ${d.version} is up to date with target version ${s.version}`),d;const f=d.version,u=e[f],N=u(d);return c=!0,h(N)}catch(f){return console.log(`${r} failed to migrate from ${d.version} to ${a}`),console.error(f),s}};return d=>{try{if(d.version==null)if(n!=null)console.log(`${r} version is null. Setting version to default of ${n}`),d.version=n;else return console.log(`${r} version is null and no default version set. Exiting with default`),s;return h(d)}catch(f){return console.log(`${r} failed to parse final result. Exiting with default`),console.error(f),s}}},ta=Object.freeze(Object.defineProperty({__proto__:null,compareSemVer:ur,createMigration:hg,migrator:ug,semVerNewer:Vo,semVerOlder:lg,semVerZ:gs,versionsEqual:cg},Symbol.toStringTag,{value:"Module"})),dg=["standard","scientific","engineering"];i.z.enum(dg);const fg=(r,e="")=>{const t=r.length;return t===0?e:t===1?r[0]:t===2?`${r[0]} and ${r[1]}`:`${r.slice(0,-1).join(", ")}, and ${r[t-1]}`},yg=r=>{const e=r.split(" "),t=new Set,n=e.map(o=>o.charAt(0).toLowerCase()).join("");t.add(n.replace(/-/g,"_")),t.add(n.replace(/(.)(.)/g,"$1_$2").replace(/-/g,"_"));const s=/\d+/g;r.match(s)&&e.forEach((o,c)=>{if(s.test(o)){const h=e.map((d,f)=>f!==c?d.charAt(0).toLowerCase():d).join("");t.add(h.replace(/-/g,"_")),t.add(h.replace(/(.)(.)/g,"$1_$2").replace(/-/g,"_"))}});const a=e.map(o=>(o.length>3?o.substring(0,3):o).toLowerCase());return t.add(a.join("").replace(/-/g,"_")),t.add(a.join("_").replace(/-/g,"_")),Array.from(t).filter(o=>o.length>=2&&o.length<=12&&!/^\d/.test(o))},gg=Object.freeze(Object.defineProperty({__proto__:null,createShortIdentifiers:yg,naturalLanguageJoin:fg},Symbol.toStringTag,{value:"Module"}));class Ue extends Tt.createTyped("sy"){}class F extends Ue.sub("validation"){}class ra extends F.sub("field"){constructor(t,n){super(`${t}: ${n}`);l(this,"field");l(this,"message");this.field=t,this.message=n}}class sr extends Ue.sub("auth"){}class ps extends sr.sub("invalid-token"){}class ws extends sr.sub("expired-token"){}class mt extends Ue.sub("unexpected"){constructor(e){super(`
28
28
  Unexpected error encountered:
29
29
 
30
- ${t}
30
+ ${e}
31
31
 
32
32
  Please report this to the Synnax team.
33
- `);c(this,"type",et.TYPE)}};c(et,"TYPE",`${je}unexpected`),c(et,"matches",Q(et.TYPE));let Re=et;const tt=class tt extends oe{constructor(){super(...arguments);c(this,"type",tt.TYPE)}};c(tt,"TYPE",`${je}query`),c(tt,"matches",Q(tt.TYPE));let ie=tt;const rt=class rt extends ie{constructor(){super(...arguments);c(this,"type",rt.TYPE)}};c(rt,"TYPE",`${ie.TYPE}.not_found`),c(rt,"matches",Q(rt.TYPE));let Oe=rt;const nt=class nt extends ie{constructor(){super(...arguments);c(this,"type",nt.TYPE)}};c(nt,"TYPE",`${ie.TYPE}.multiple_results`),c(nt,"matches",Q(nt.TYPE));let Ne=nt;const st=class st extends oe{constructor(t,n){super(t);c(this,"type",st.TYPE);c(this,"path");this.path=n}};c(st,"TYPE",`${je}route`),c(st,"matches",Q(st.TYPE));let _t=st;const it=class it extends oe{constructor(){super(...arguments);c(this,"type",it.TYPE)}};c(it,"TYPE",`${je}control`),c(it,"matches",Q(it.TYPE));let gt=it;const at=class at extends gt{constructor(){super(...arguments);c(this,"type",at.TYPE)}};c(at,"TYPE",`${gt.TYPE}.unauthorized`),c(at,"matches",Q(at.TYPE));let Ar=at;const ot=class ot extends oe{constructor(){super(...arguments);c(this,"type",ot.TYPE)}};c(ot,"TYPE",`${je}contiguity`),c(ot,"matches",Q(ot.TYPE));let Ln=ot;const Qh=r=>{if(!r.type.startsWith(je))return null;if(r.type.startsWith(U.TYPE)){if(r.type===kr.TYPE){const e=r.data.split(": ");return e.length<2?new U(r.data):new kr(e[0],e[1])}return new U(r.data)}return r.type.startsWith(ve.TYPE)?r.type.startsWith(Ut.TYPE)?new Ut(r.data):r.type.startsWith(Lt.TYPE)?new Lt(r.data):new ve(r.data):r.type.startsWith(Re.TYPE)?new Re(r.data):r.type.startsWith(ie.TYPE)?r.type.startsWith(Oe.TYPE)?new Oe(r.data):r.type.startsWith(Ne.TYPE)?new Ne(r.data):new ie(r.data):r.type.startsWith(gt.TYPE)?r.type.startsWith(Ar.TYPE)?new Ar(r.data):new gt(r.data):r.type.startsWith(_t.TYPE)?new _t(r.data,r.data):new Re(r.data)},ed=()=>{throw new Error("Not implemented")};Yi({encode:ed,decode:Qh});const td=async(r,e)=>{const[t,n]=await e(r);return n==null?[t,n]:n instanceof Pe?[t,new Pe({message:`Cannot reach cluster at ${n.url.host}:${n.url.port}`,url:n.url})]:[t,n]},wt=s.z.string().uuid(),Zr=s.z.string(),Hn=s.z.object({key:wt,name:Zr}),rd=r=>{const e=b(r);if(e.length===0)throw new Error("No groups specified");const t=wt.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},Xn="group",V=r=>s.z.union([s.z.union([s.z.null(),s.z.undefined()]).transform(()=>[]),r.array()]),J=s.z.number(),Xt=s.z.string(),Qt=s.z.object({name:Xt,key:J,rate:dt.z,dataType:$.z,leaseholder:s.z.number(),index:J,isIndex:s.z.boolean(),internal:s.z.boolean(),virtual:s.z.boolean(),alias:s.z.string().optional(),expression:s.z.string().default(""),requires:V(J)}),Sa=Qt.extend({key:J.optional(),leaseholder:s.z.number().optional(),index:J.optional(),rate:dt.z.optional().default(0),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional().default(!1),virtual:s.z.boolean().optional().default(!1),expression:s.z.string().optional().default(""),requires:V(J).optional().default([])}),Ur="channel",Qn="framer",fi=r=>{const e=b(r);return e.length===0?null:typeof e[0]=="number"||!isNaN(parseInt(e[0]))?"key":"name"},yi=(r,e)=>{const t=b(r);if(t.length===e.length)return;const n=fi(r);throw fi===null?new U("[Frame] - channel keys or names must be provided when constructing a frame."):new U(`[Frame] - ${n}s and series must be the same length.
34
- Got ${t.length} ${n}s and ${e.length} series.`)};class Y{constructor(e=[],t=[]){c(this,"columns",[]);c(this,"series",[]);if(e instanceof Y){this.columns=e.columns,this.series=e.series;return}if(e instanceof Map){e.forEach((i,a)=>this.push(a,...b(i)));return}if(typeof e=="object"&&!Array.isArray(e)){if("keys"in e&&"series"in e){const i=e;i.series??(i.series=[]),i.keys??(i.keys=[]);const a=i.series.map(o=>Ia(o));yi(i.keys,a),i.keys.forEach((o,l)=>this.push(o,a[l]))}else Object.entries(e).forEach(([i,a])=>{const o=parseInt(i);if(!isNaN(o))return this.push(o,...b(a));this.push(i,...b(a))});return}if(Array.isArray(e)||["string","number"].includes(typeof e)){const i=b(t),a=b(e);yi(a,i),i.forEach((o,l)=>this.push(a[l],o));return}throw new U(`[Frame] - invalid frame construction parameters. data parameter ust be a frame
33
+ `)}}class ke extends Ue.sub("query"){}class Je extends ke.sub("not_found"){}class Xe extends ke.sub("multiple_results"){}class ms extends Ue.sub("route"){constructor(t,n){super(t);l(this,"path");this.path=n}}class bs extends Ue.sub("control"){}class na extends bs.sub("unauthorized"){}class pg extends Ue.sub("contiguity"){}const wg=r=>{if(!r.type.startsWith(Ue.TYPE))return null;if(r.type.startsWith(F.TYPE)){if(r.type===ra.TYPE){const e=r.data.split(": ");return e.length<2?new F(r.data):new ra(e[0],e[1])}return new F(r.data)}return r.type.startsWith(sr.TYPE)?r.type.startsWith(ps.TYPE)?new ps(r.data):r.type.startsWith(ws.TYPE)?new ws(r.data):new sr(r.data):r.type.startsWith(mt.TYPE)?new mt(r.data):r.type.startsWith(ke.TYPE)?r.type.startsWith(Je.TYPE)?new Je(r.data):r.type.startsWith(Xe.TYPE)?new Xe(r.data):new ke(r.data):r.type.startsWith(bs.TYPE)?r.type.startsWith(na.TYPE)?new na(r.data):new bs(r.data):r.type.startsWith(ms.TYPE)?new ms(r.data,r.data):new mt(r.data)},mg=()=>{throw new Error("Not implemented")};Tt.register({encode:mg,decode:wg});const bg=async(r,e)=>{const[t,n]=await e(r);return n==null?[t,n]:n instanceof Fe?[t,new Fe({message:`Cannot reach cluster at ${n.url.host}:${n.url.port}`,url:n.url})]:[t,n]},zt=i.z.string().uuid(),Qr=i.z.string(),js=i.z.object({key:zt,name:Qr}),vg=r=>{const e=b(r);if(e.length===0)throw new Error("No groups specified");const t=zt.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},Ls="group",X=r=>i.z.union([i.z.union([i.z.null(),i.z.undefined()]).transform(()=>[]),r.array()]),Q=i.z.number(),dr=i.z.string(),fr=i.z.object({name:dr,key:Q,dataType:x.z,leaseholder:i.z.number(),index:Q,isIndex:i.z.boolean(),internal:i.z.boolean(),virtual:i.z.boolean(),alias:i.z.string().optional(),expression:i.z.string().default(""),requires:X(Q)}),Go=fr.extend({key:Q.optional(),leaseholder:i.z.number().optional(),index:Q.optional(),isIndex:i.z.boolean().optional(),internal:i.z.boolean().optional().default(!1),virtual:i.z.boolean().optional().default(!1),expression:i.z.string().optional().default(""),requires:X(Q).optional().default([])}),en="channel",_s="framer",sa=r=>{const e=b(r);return e.length===0?null:typeof e[0]=="number"||!isNaN(parseInt(e[0]))?"key":"name"},ia=(r,e)=>{const t=b(r);if(t.length===e.length)return;const n=sa(r);throw sa===null?new F("[Frame] - channel keys or names must be provided when constructing a frame."):new F(`[Frame] - ${n}s and series must be the same length.
34
+ Got ${t.length} ${n}s and ${e.length} series.`)};class V{constructor(e=[],t=[]){l(this,"columns",[]);l(this,"series",[]);if(e instanceof V){this.columns=e.columns,this.series=e.series;return}if(e instanceof Map){e.forEach((s,a)=>this.push(a,...b(s)));return}if(typeof e=="object"&&!Array.isArray(e)){if("keys"in e&&"series"in e){const s=e;s.series??(s.series=[]),s.keys??(s.keys=[]);const a=s.series.map(o=>Ho(o));ia(s.keys,a),s.keys.forEach((o,c)=>this.push(o,a[c]))}else Object.entries(e).forEach(([s,a])=>{const o=parseInt(s);if(!isNaN(o))return this.push(o,...b(a));this.push(s,...b(a))});return}if(Array.isArray(e)||["string","number"].includes(typeof e)){const s=b(t),a=b(e);ia(a,s),s.forEach((o,c)=>this.push(a[c],o));return}throw new F(`[Frame] - invalid frame construction parameters. data parameter ust be a frame
35
35
  payload, a list of lazy series, a lazy array, a map, or a record keyed by channel
36
- name. keys parameter must be a set of channel keys or channel names.`)}get colType(){return this.columns.length===0?null:typeof this.columns[0]=="string"?"name":"key"}get keys(){if(this.colType==="name")throw new Re("colType is not key");return this.columns??[]}get uniqueKeys(){return Vs.unique(this.keys)}get names(){if(this.colType==="key")throw new Re("colType is not name");return this.columns??[]}get uniqueNames(){return Vs.unique(this.names)}get uniqueColumns(){return this.colType==="key"?this.uniqueKeys:this.uniqueNames}toPayload(){return{series:this.series.map(e=>$a(e)),keys:this.keys}}get isVertical(){return this.uniqueColumns.length===this.columns.length}get isHorizontal(){return this.uniqueColumns.length===1}get isSquare(){return this.isHorizontal&&this.isVertical}get isWeaklyAligned(){if(this.columns.length<=1)return!0;const e=this.timeRanges;return e.every(t=>t.equals(e[0]))}timeRange(e){if(e==null){if(this.columns.length===0)return G.ZERO;const n=I.min(...this.series.map(a=>a.timeRange.start)),i=I.max(...this.series.map(a=>a.timeRange.end));return new G(n,i)}const t=this.get(e);return t==null?G.ZERO:t.timeRange}latest(){return this.at(-1)}get timeRanges(){return this.uniqueColumns.map(e=>this.timeRange(e))}get(e){return Array.isArray(e)?this.filter(t=>e.includes(t)):new ba(this.series.filter((t,n)=>this.columns[n]===e))}push(e,...t){if(e instanceof Y){if(this.colType!==null&&e.colType!==this.colType)throw new U("keyVariant must match");this.series.push(...e.series),this.columns.push(...e.columns)}else{if(this.series.push(...t),typeof e=="string"&&this.colType==="key")throw new U("keyVariant must match");if(typeof e!="string"&&this.colType==="name")throw new U("keyVariant must match");this.columns.push(...Array.from({length:t.length},()=>e))}}concat(e){return new Y([...this.columns,...e.columns],[...this.series,...e.series])}has(e){return typeof e=="string"&&this.colType==="key"||typeof e=="number"&&this.colType==="name"?!1:this.columns.includes(e)}map(e){const t=new Y;return this.forEach((n,i,a)=>t.push(...e(n,i,a))),t}forEach(e){this.columns.forEach((t,n)=>{const i=this.series[n];e(t,i,n)})}at(e,t=!1){const n={};return this.uniqueColumns.forEach(i=>{n[i]=this.get(i).at(e,t)}),n}filter(e){const t=new Y;return this.columns.forEach((n,i)=>{const a=this.series[i];e(n,a,i)&&t.push(n,a)}),t}get byteLength(){return new ft(this.series.reduce((e,t)=>e.add(t.byteLength),ft.ZERO))}get digest(){const e={};return this.keys.forEach((t,n)=>{const i=this.series[n].digest;t in e?e[t].push(i):e[t]=[i]}),e}get length(){return this.series.reduce((e,t)=>e+t.length,0)}}const Lr=s.z.object({keys:s.z.union([s.z.null().transform(()=>[]),s.z.number().array().optional().default([])]),series:s.z.union([s.z.null().transform(()=>[]),Ae.crudeZ.array().optional().default([])])}),Ia=r=>{const{dataType:e,data:t,timeRange:n,alignment:i}=r;return new Ae({data:t,dataType:e,timeRange:n,glBufferUsage:"static",alignment:i})},$a=r=>({timeRange:r._timeRange,dataType:r.dataType,data:new Uint8Array(r.data.buffer),alignment:r.alignment}),De=jh.uint32,es=s.z.object({key:De,variant:s.z.string(),message:s.z.string(),lastReceived:I.z.optional()}),_r=s.z.object({key:De,name:s.z.string(),state:es.optional()}),ka=_r.partial({key:!0}),qr="rack",ts=r=>r?Jt.JSON_CODEC.decodeString(r):{},er=s.z.string(),rs=s.z.object({key:er,variant:s.z.string(),details:s.z.record(s.z.unknown()).or(s.z.string().transform(ts))}),tr=s.z.object({key:er,rack:De,name:s.z.string(),make:s.z.string(),model:s.z.string(),location:s.z.string(),configured:s.z.boolean().optional(),properties:s.z.record(s.z.unknown()).or(s.z.string().transform(ts)),state:rs.optional()}),Aa=tr.extend({properties:s.z.unknown().transform(r=>Jt.JSON_CODEC.encodeString(r))}),Yr="device",ye=r=>r?JSON.parse(r):{},Me=s.z.union([s.z.string(),s.z.bigint().transform(r=>r.toString()),s.z.number().transform(r=>r.toString())]),xa=s.z.enum(["info","success","error","warning"]),qt=s.z.object({task:Me,variant:xa,key:s.z.string().optional(),details:s.z.record(s.z.unknown()).or(s.z.string().transform(ye)).or(s.z.array(s.z.unknown())).or(s.z.null())}),rr=s.z.object({key:Me,name:s.z.string(),type:s.z.string(),internal:s.z.boolean().optional(),config:s.z.record(s.z.unknown()).or(s.z.string().transform(ts)),state:qt.optional().nullable(),snapshot:s.z.boolean().optional()}),Ra=rr.omit({key:!0}).extend({key:Me.transform(r=>r.toString()).optional(),config:s.z.unknown().transform(r=>Jt.JSON_CODEC.encodeString(r))}),ns=s.z.object({task:Me,type:s.z.string(),key:s.z.string(),args:s.z.record(s.z.unknown()).or(s.z.string().transform(ye)).or(s.z.array(s.z.unknown())).or(s.z.null()).optional()}),Wr="task",nd=r=>Number(BigInt(r)>>32n),Ue=s.z.string().uuid(),nr=s.z.object({key:Ue,name:s.z.string().min(1),color:s.z.string()}),ss="label",ne=s.z.string().uuid(),is=s.z.string().min(1),sr=s.z.object({key:ne,name:is,timeRange:G.z,color:s.z.string().optional()}),Ca=sr.partial({key:!0}),Pa=r=>{const e=b(r),t=e.length===0;let n=!1;return t||(n=ne.safeParse(e[0]).success),{single:!Array.isArray(r),variant:n?"keys":"names",normalized:e,actual:r,empty:t}},as="range",os="range-alias",Le=s.z.string().uuid(),ir=s.z.object({key:Le,username:s.z.string().min(1),firstName:s.z.string().default(""),lastName:s.z.string().default(""),rootUser:s.z.boolean().default(!0)}),ja=ir.partial({key:!0,firstName:!0,lastName:!0}).omit({rootUser:!0}).extend({password:s.z.string().min(1)}),cs="user",bt=s.z.string().uuid(),Fr=s.z.object({key:bt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),Da=Fr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),ls="lineplot",Tt=s.z.string().uuid(),Gr=s.z.object({key:Tt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),Ma=Gr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),us="log",ge=s.z.string().uuid(),Vr=s.z.object({key:ge,name:s.z.string(),layout:Kt.or(s.z.string().transform(ye))}),Jr="workspace",Ba=Vr.partial({key:!0}).transform(r=>({...r,layout:JSON.stringify(r.layout)})),Za=Vr.omit({layout:!0}).extend({layout:s.z.string().transform(ye)}),_e=s.z.string().uuid(),Kr=s.z.object({key:_e,name:s.z.string(),data:Kt.or(s.z.string().transform(ye)),snapshot:s.z.boolean()}),Ua=Kr.partial({key:!0,snapshot:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),hs=Kr.extend({data:s.z.string().transform(ye)}),ds="schematic",vt=s.z.string().uuid(),fs=s.z.object({key:vt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),La=fs.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),ys=fs.extend({data:s.z.string().transform(ye)}),gs="table",ps="builtin",_a="cluster",qa="node",ar=s.z.enum([ss,us,Fn,ps,_a,Ur,qa,Xn,as,Qn,os,cs,Jr,ds,ls,qr,Yr,Wr,Wn,gs]),re=s.z.object({type:ar,key:s.z.string()}),Ya=s.z.string().transform(r=>{const[e,t]=r.split(":");return{type:ar.parse(e),key:t??""}}),Ge=s.z.union([Ya,re]),ct=class ct{constructor(e){c(this,"type");c(this,"key");if(e instanceof ct){this.type=e.type,this.key=e.key;return}if(typeof e=="string"){const[t,n]=e.split(":");this.type=t,this.key=n??"";return}this.type=e.type,this.key=e.key}toString(){return`${this.type}:${this.key}`}isType(){return this.key===""}matchesType(e){return this.type===e&&this.isType()}get payload(){return{type:this.type,key:this.key}}};c(ct,"z",s.z.union([s.z.instanceof(ct),Ge.transform(e=>new ct(e))]));let O=ct;const sd=new O({type:ps,key:"root"}),Wa=s.z.object({type:s.z.number()}),Fa=s.z.object({type:ar,fields:s.z.record(Wa)}),Ga=s.z.object({id:O.z,name:s.z.string(),schema:Fa.optional().nullable(),data:s.z.record(s.z.unknown()).optional().nullable()}).transform(r=>({key:r.id.toString(),...r})),id="to",ad="from",od=s.z.object({from:O.z,type:s.z.string(),to:O.z}),_n=r=>{const[e,t,n]=r.split("->");return{from:new O(e),type:t,to:new O(n)}};class ms{constructor(e,t){c(this,"key");c(this,"name");this.key=t,this.name=e}get ontologyID(){return Va(this.key)}}const Va=r=>new O({type:Xn,key:r}),cd=s.z.object({group:Hn}),ld=s.z.object({parent:re,key:wt.optional(),name:Zr}),ud=s.z.object({key:wt,name:Zr}),hd=s.z.object({keys:s.z.array(wt)});var ae;let dd=(ae=class{constructor(e){c(this,"client");this.client=e}async create(e,t,n){return(await w(this.client,ae.CREATE_ENDPOINT,{parent:e,name:t,key:n},ld,cd)).group}async rename(e,t){await w(this.client,ae.RENAME_ENDPOINT,{key:e,name:t},ud,s.z.object({}))}async delete(e){await w(this.client,ae.DELETE_ENDPOINT,{keys:e},hd,s.z.object({}))}},c(ae,"CREATE_ENDPOINT","/ontology/create-group"),c(ae,"RENAME_ENDPOINT","/ontology/rename-group"),c(ae,"DELETE_ENDPOINT","/ontology/delete-group"),ae),Ja=class{constructor(e){c(this,"creator");this.creator=new dd(e)}async create(e,t,n){return this.sugar(await this.creator.create(e,t,n))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new ms(e.name,e.key)}};const fd=Object.freeze(Object.defineProperty({__proto__:null,Client:Ja,Group:ms,ONTOLOGY_TYPE:Xn,analyzeParams:rd,groupZ:Hn,keyZ:wt,nameZ:Zr,ontologyID:Va},Symbol.toStringTag,{value:"Module"})),yd="/ontology/add-children",gd="/ontology/remove-children",pd="/ontology/move-children",gi=s.z.object({id:re,children:re.array()}),md=s.z.object({from:re,to:re,children:re.array()}),gn=s.z.object({});let wd=class{constructor(e){c(this,"client");this.client=e}async addChildren(e,...t){await w(this.client,yd,{id:new O(e).payload,children:t.map(n=>new O(n).payload)},gi,gn)}async removeChildren(e,...t){await w(this.client,gd,{id:new O(e).payload,children:t.map(n=>new O(n).payload)},gi,gn)}async moveChildren(e,t,...n){const i={from:new O(e).payload,to:new O(t).payload,children:n.map(a=>new O(a).payload)};await w(this.client,pd,i,md,gn)}};const bd="/ontology/retrieve",Td=s.z.object({ids:re.array().optional(),children:s.z.boolean().optional(),parents:s.z.boolean().optional(),includeSchema:s.z.boolean().optional(),excludeFieldData:s.z.boolean().optional(),term:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),types:ar.array().optional()}),vd=s.z.object({resources:Ga.array()}),Er=r=>b(r).map(e=>new O(e).payload);let Ka=class{constructor(e,t){c(this,"type","ontology");c(this,"groups");c(this,"client");c(this,"writer");c(this,"framer");this.client=e,this.writer=new wd(e),this.groups=new Ja(e),this.framer=t}async search(e,t){return await this.execRetrieve({term:e,...t})}async retrieve(e,t){const n=await this.execRetrieve({ids:Er(e),...t});if(Array.isArray(e))return n;if(n.length===0)throw new ie(`No resource found with ID ${Xh.naturalLanguageJoin(b(e).map(i=>new O(i).toString()))}`);return n[0]}async page(e,t,n){return await this.execRetrieve({offset:e,limit:t,...n})}async retrieveChildren(e,t){return await this.execRetrieve({ids:Er(e),children:!0,...t})}async retrieveParents(e,t){return await this.execRetrieve({ids:Er(e),parents:!0,...t})}async addChildren(e,...t){return await this.writer.addChildren(e,...t)}async removeChildren(e,...t){return await this.writer.removeChildren(e,...t)}async moveChildren(e,t,...n){return await this.writer.moveChildren(e,t,...n)}async openChangeTracker(){return await or.open(this.framer,this)}async openDependentTracker(e){return await Hr.open(e,this.framer,this)}newSearcherWithOptions(e){return{type:this.type,search:t=>this.search(t,e),retrieve:t=>this.retrieve(t,e),page:(t,n)=>this.page(t,n,e)}}async execRetrieve(e){const{resources:t}=await w(this.client,bd,e,Td,vd);return t}};const pi="sy_ontology_resource_set",mi="sy_ontology_resource_delete",wi="sy_ontology_relationship_set",bi="sy_ontology_relationship_delete";class or{constructor(e,t){c(this,"relationships");c(this,"resources");c(this,"resourceObs");c(this,"relationshipObs");c(this,"streamer");c(this,"client");c(this,"closePromise");this.relationshipObs=new Ze.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Ze.Observer,this.resources=this.resourceObs,this.client=t,this.streamer=e,this.closePromise=this.start()}async close(){this.streamer.close(),await this.closePromise}async start(){for await(const e of this.streamer)await this.update(e)}async update(e){const t=await this.parseResourceSets(e),n=this.parseResourceDeletes(e);t.concat(n).length>0&&this.resourceObs.notify(t.concat(n));const a=this.parseRelationshipSets(e),o=this.parseRelationshipDeletes(e);a.concat(o).length>0&&this.relationshipObs.notify(a.concat(o))}parseRelationshipSets(e){const t=e.get(wi);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"set",key:_n(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(bi);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:_n(n)}))}async parseResourceSets(e){const t=e.get(pi);if(t.length===0)return[];const n=Array.from(t.as("string")).map(i=>new O(i));try{return(await this.client.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(i){if(i instanceof ie)return[];throw i}}parseResourceDeletes(e){const t=e.get(mi);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:new O(n)}))}static async open(e,t){const n=await e.openStreamer([pi,mi,wi,bi]);return new or(n,t)}}const Ti=r=>r==="from"?"to":"from";class Hr extends Ze.Observer{constructor({target:t,dependents:n,relationshipType:i="parent",relationshipDirection:a="from",resourceType:o},l,u){super();c(this,"internal");c(this,"target");c(this,"relDir");c(this,"resourceType");c(this,"dependents");c(this,"client");c(this,"relType");c(this,"handleResourceChange",t=>{this.dependents=this.dependents.map(n=>{const i=t.find(a=>a.key.toString()==n.id.toString());return i==null||i.variant==="delete"?n:i.value}),this.notify(this.dependents)});c(this,"handleRelationshipChange",t=>{const n=t.filter(a=>a.variant==="delete"&&a.key[this.relDir].toString()===this.target.toString()&&(this.resourceType==null||a.key[Ti(this.relDir)].type===this.resourceType));this.dependents=this.dependents.filter(a=>!n.some(o=>o.key.to.toString()===a.id.toString()&&o.key.type===this.relType));const i=t.filter(a=>a.variant==="set"&&a.key.type===this.relType&&a.key[this.relDir].toString()===this.target.toString()&&(this.resourceType==null||a.key[Ti(this.relDir)].type===this.resourceType));if(i.length===0)return this.notify(this.dependents);this.client.retrieve(i.map(a=>a.key.to)).then(a=>{this.dependents=this.dependents.concat(a),this.notify(this.dependents)}).catch(console.error)});this.resourceType=o,this.internal=l,this.target=t,this.dependents=n,this.resourceType!=null&&(this.dependents=this.dependents.filter(h=>h.id.type===this.resourceType)),this.client=u,this.relType=i,this.relDir=a,this.internal.resources.onChange(this.handleResourceChange),this.internal.relationships.onChange(this.handleRelationshipChange)}static async open(t,n,i){const a=await or.open(n,i);return new Hr(t,a,i)}async close(){await this.internal.close()}}const Od=Object.freeze(Object.defineProperty({__proto__:null,BUILTIN_TYPE:ps,CLUSTER_TYPE:_a,ChangeTracker:or,Client:Ka,DependentTracker:Hr,FROM_RELATIONSHIP_DIRECTION:ad,ID:O,NODE_TYPE:qa,ROOT_ID:sd,TO_RELATIONSHIP_DIRECTION:id,crudeIDZ:Ge,idZ:re,parseIDs:Er,parseRelationship:_n,relationshipSchemaZ:od,resourceTypeZ:ar,resourceZ:Ga,schemaFieldZ:Wa,schemaZ:Fa,stringIDZ:Ya},Symbol.toStringTag,{value:"Module"})),cr=s.z.string().uuid(),Xr=s.z.object({key:cr,subjects:V(re),objects:V(re),actions:V(Ir)}),Ha=s.z.object({key:cr.optional(),subjects:Ge.array().or(Ge),objects:Ge.array().or(Ge),actions:Ir.array().or(Ir)}),Nd=s.z.object({keys:cr.array().optional(),subjects:re.array().optional()}),Ed=s.z.object({policies:V(Xr)}),zd="/access/policy/retrieve";let Sd=class{constructor(e){c(this,"client");this.client=e}async retrieve(e){return(await w(this.client,zd,e,Nd,Ed)).policies}};const Id=s.z.object({policies:Xr.partial({key:!0}).array()}),$d=s.z.object({policies:Xr.array()}),kd=s.z.object({keys:cr.array()}),Ad=s.z.object({}),xd="/access/policy/create",Rd="/access/policy/delete";let Cd=class{constructor(e){c(this,"client");this.client=e}async create(e){const n=Ha.array().parse(b(e)).map(a=>({objects:b(a.objects),actions:b(a.actions),subjects:b(a.subjects)}));return(await w(this.client,xd,{policies:n},Id,$d)).policies}async delete(e){await w(this.client,Rd,{keys:b(e)},kd,Ad)}},Xa=class{constructor(e){c(this,"retriever");c(this,"writer");this.retriever=new Sd(e),this.writer=new Cd(e)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve({keys:b(e)});return t?n:n[0]}async retrieveFor(e){const t=b(e).map(n=>new O(n).payload);return await this.retriever.retrieve({subjects:t})}async delete(e){await this.writer.delete(e)}};const Pd=r=>new O({type:Wn,key:r}),jd=new O({type:Fn,key:""}),Dd=Object.freeze(Object.defineProperty({__proto__:null,ALLOW_ALL_ONTOLOGY_ID:jd,ALLOW_ALL_ONTOLOGY_TYPE:Fn,Client:Xa,ONTOLOGY_TYPE:Wn,keyZ:cr,newZ:Ha,ontologyID:Pd,policyZ:Xr},Symbol.toStringTag,{value:"Module"}));let Qa=class{constructor(e){c(this,"policy");this.policy=new Xa(e)}};const Md=Object.freeze(Object.defineProperty({__proto__:null,ALL_ACTION:Xi,CREATE_ACTION:Qi,Client:Qa,DELETE_ACTION:ea,RETRIEVE_ACTION:ta,UPDATE_ACTION:ra,actionZ:Ir},Symbol.toStringTag,{value:"Module"})),Bd=new Error("request for lock canceled");var Zd=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(o){o(a)})}return new(t||(t=Promise))(function(a,o){function l(f){try{h(n.next(f))}catch(d){o(d)}}function u(f){try{h(n.throw(f))}catch(d){o(d)}}function h(f){f.done?a(f.value):i(f.value).then(l,u)}h((n=n.apply(r,e||[])).next())})};class Ud{constructor(e,t=Bd){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((n,i)=>{const a={resolve:n,reject:i,weight:e,priority:t},o=eo(this._queue,l=>t<=l.priority);o===-1&&e<=this._value?this._dispatchItem(a):this._queue.splice(o+1,0,a)})}runExclusive(e){return Zd(this,arguments,void 0,function*(t,n=1,i=0){const[a,o]=yield this.acquire(n,i);try{return yield t(a)}finally{o()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(n=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),Ld(this._weightedWaiters[e-1],{resolve:n,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){const t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){const t=this._weightedWaiters[e-1];t&&(t.forEach(n=>n.resolve()),this._weightedWaiters[e-1]=[])}else{const e=this._queue[0].priority;for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];if(!n)continue;const i=n.findIndex(a=>a.priority<=e);(i===-1?n:n.splice(0,i)).forEach(a=>a.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}}function Ld(r,e){const t=eo(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function eo(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var _d=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(o){o(a)})}return new(t||(t=Promise))(function(a,o){function l(f){try{h(n.next(f))}catch(d){o(d)}}function u(f){try{h(n.throw(f))}catch(d){o(d)}}function h(f){f.done?a(f.value):i(f.value).then(l,u)}h((n=n.apply(r,e||[])).next())})};class qd{constructor(e){this._semaphore=new Ud(1,e)}acquire(){return _d(this,arguments,void 0,function*(e=0){const[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const Qr=(r,e,{convertNumericStrings:t=!0}={})=>{const n=!Array.isArray(r);let i=b(r);const a=i[0],o=typeof a;let l;return o==="string"&&t&&!isNaN(parseInt(a))&&"number"in e?(l=e.number,i=i.map(u=>parseInt(u))):l=e[o],{single:n,variant:l,normalized:i,actual:r}},en=(r,e,t,n)=>{if(n){if(t.length===0)throw new Oe(`${r} not found matching ${JSON.stringify(e)}`);if(t.length>1)throw new Ne(`Expected one ${r} matching ${JSON.stringify(e)}, but found ${t.length}`)}},Yd=s.z.object({leaseholder:s.z.number().optional(),keys:J.array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),rangeKey:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),dataTypes:$.z.array().optional(),notDataTypes:$.z.array().optional(),virtual:s.z.boolean().optional(),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional()}),Wd=s.z.object({channels:V(Qt)}),Ee=r=>Qr(r,{number:"keys",string:"names"}),Cr=class Cr{constructor(e){c(this,"client");this.client=e}async search(e,t){return await this.execute({search:e,...t})}async retrieve(e,t){const n=Ee(e),{variant:i}=n;let{normalized:a}=n;return i==="keys"&&a.indexOf(0)!==-1&&(a=a.filter(o=>o!==0)),a.length===0?[]:await this.execute({[i]:a,...t})}async page(e,t,n){return await this.execute({offset:e,limit:t,...n})}async execute(e){const[t,n]=await this.client.send(Cr.ENDPOINT,e,Yd,Wd);if(n!=null)throw n;return t.channels}};c(Cr,"ENDPOINT","/channel/retrieve");let Yt=Cr;class ws{constructor(e){c(this,"cache");c(this,"namesToKeys");c(this,"wrapped");this.cache=new Map,this.namesToKeys=new Map,this.wrapped=e}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e,t){const{normalized:n}=Qr(e,{string:"names",number:"keys"}),i=[],a=[];if(n.forEach(l=>{const u=this.get(l);u!=null?i.push(...u):a.push(l)}),a.length===0)return i;const o=await this.wrapped.retrieve(a,t);return this.set(o),i.concat(o)}delete(e){const{variant:t,normalized:n}=Ee(e);t==="names"?n.forEach(i=>{const a=this.namesToKeys.get(i);a!=null&&(a.forEach(o=>this.cache.delete(o)),this.namesToKeys.delete(i))}):n.forEach(i=>{const a=this.cache.get(i);a!=null&&(this.cache.delete(i),this.namesToKeys.delete(a.name))})}rename(e,t){e.forEach((n,i)=>{const a=t[i],o=this.cache.get(n);if(o==null)return;this.cache.delete(n);const l=this.namesToKeys.get(o.name);l!=null&&(l.delete(n),l.size===0&&this.namesToKeys.delete(o.name)),o.name=a,this.cache.set(n,o);const u=this.namesToKeys.get(a);u==null?this.namesToKeys.set(a,new Set([n])):u.add(n)})}set(e){e.forEach(t=>{this.cache.set(t.key,t);const n=this.namesToKeys.get(t.name);n==null?this.namesToKeys.set(t.name,new Set([t.key])):n.add(t.key)})}get(e){if(typeof e=="number"){const i=this.cache.get(e);return i==null?void 0:[i]}const t=this.namesToKeys.get(e);if(t==null)return;const n=[];if(t.forEach(i=>{const a=this.cache.get(i);a!=null&&n.push(a)}),n.length!==0)return n}}class to{constructor(e,t){c(this,"mu",new qd);c(this,"requests",new Map);c(this,"wrapped");c(this,"debouncedRun");this.wrapped=e,this.debouncedRun=Xu(()=>{this.run()},t)}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e){const{normalized:t,variant:n}=Ee(e);return n==="names"?await this.wrapped.retrieve(t):await new Promise((a,o)=>{this.mu.runExclusive(()=>{this.requests.set(t,{resolve:a,reject:o}),this.debouncedRun()})})}async run(){await this.mu.runExclusive(async()=>{const e=new Set;this.requests.forEach((t,n)=>n.forEach(i=>e.add(i)));try{const t=await this.wrapped.retrieve(Array.from(e));this.requests.forEach((n,i)=>n.resolve(t.filter(a=>i.includes(a.key))))}catch(t){this.requests.forEach(n=>n.reject(t))}finally{this.requests.clear()}})}}const ro=async(r,e)=>{const{normalized:t}=Ee(e),n=await r.retrieve(t),i=[];if(t.forEach(a=>{n.find(o=>o.name===a||o.key===a)==null&&i.push(a)}),i.length>0)throw new ie(`Could not find channels: ${JSON.stringify(i)}`);return n};class bs{constructor({dataType:e,rate:t,name:n,leaseholder:i=0,key:a=0,isIndex:o=!1,index:l=0,internal:u=!1,virtual:h=!1,frameClient:f,alias:d,expression:k="",requires:S=[]}){c(this,"_frameClient");c(this,"key");c(this,"name");c(this,"rate");c(this,"dataType");c(this,"leaseholder");c(this,"index");c(this,"isIndex");c(this,"internal");c(this,"alias");c(this,"virtual");c(this,"expression");c(this,"requires");this.key=a,this.name=n,this.rate=new dt(t??0),this.dataType=new $(e),this.leaseholder=i,this.index=l,this.isIndex=o,this.internal=u,this.alias=d,this.virtual=h,this.expression=k,this.requires=S??[],this._frameClient=f??null}get framer(){if(this._frameClient==null)throw new U("cannot read from a channel that has not been created");return this._frameClient}get payload(){return Qt.parse({key:this.key,name:this.name,rate:this.rate.valueOf(),dataType:this.dataType.valueOf(),leaseholder:this.leaseholder,index:this.index,isIndex:this.isIndex,internal:this.internal,virtual:this.virtual,expression:this.expression,requires:this.requires})}get isCalculated(){return Wt(this.payload)}get ontologyID(){return io(this.key)}async read(e){return await this.framer.read(e,this.key)}async write(e,t){return await this.framer.write(e,this.key,t)}}const Fd="/channel/retrieve-group",Gd=s.z.object({}),Vd=s.z.object({group:Hn});let no=class{constructor(e,t,n,i){c(this,"type",Ur);c(this,"frameClient");c(this,"client");c(this,"retriever");c(this,"writer");this.frameClient=e,this.retriever=t,this.client=n,this.writer=i}async create(e,t={}){const{retrieveIfNameExists:n=!1}=t,i=!Array.isArray(e);let a=b(e),o=[];if(n){const l=await this.retriever.retrieve(a.map(h=>h.name)),u=new Set(l.map(h=>h.name));a=a.filter(h=>!u.has(h.name)),o=this.sugar(l)}return o=o.concat(this.sugar(await this.writer.create(a))),i?o[0]:o}async retrieve(e,t){const n=!Array.isArray(e),i=this.sugar(await this.retriever.retrieve(e,t));return en("channel",e,i,n),n?i[0]:i}async search(e,t){return this.sugar(await this.retriever.search(e,t))}async delete(e){const{normalized:t,variant:n}=Ee(e);return n==="keys"?await this.writer.delete({keys:t}):await this.writer.delete({names:t})}async rename(e,t){return await this.writer.rename(b(e),b(t))}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}async page(e,t,n){return this.sugar(await this.retriever.page(e,t,n))}createDebouncedBatchRetriever(e=10){return new ws(new to(new Yt(this.client),e))}sugar(e){const{frameClient:t}=this;return e.map(n=>new bs({...n,frameClient:t}))}async retrieveGroup(){const e=await w(this.client,Fd,{},Gd,Vd);return new ms(e.group.name,e.group.key)}};const Wt=({virtual:r,expression:e})=>r&&e!=="",so=async(r,e)=>{if(!Wt(e))return e.index;for(const t of e.requires){const n=await r(t);if(n==null)return null;if(!n.virtual)return n.index}for(const t of e.requires){const n=await r(t);if(n==null)return null;if(Wt(n)){const i=await so(r,n);if(i!=null)return i}}return null},io=r=>new O({type:Ur,key:r.toString()}),Jd=s.z.object({channels:Sa.array()}),Kd=s.z.object({channels:Qt.array()}),Hd=s.z.object({keys:J.array().optional(),names:Xt.array().optional()}),Xd=s.z.object({}),Qd=s.z.object({keys:J.array(),names:Xt.array()}),ef=s.z.object({}),tf="/channel/create",rf="/channel/delete",nf="/channel/rename";let ao=class{constructor(e,t){c(this,"client");c(this,"cache");this.client=e,this.cache=t}async create(e){const{channels:t}=await w(this.client,tf,{channels:e},Jd,Kd);return this.cache.set(t),t}async delete(e){await w(this.client,rf,e,Hd,Xd),e.keys!=null&&this.cache.delete(e.keys),e.names!=null&&this.cache.delete(e.names)}async rename(e,t){await w(this.client,nf,{keys:e,names:t},Qd,ef),this.cache.rename(e,t)}};const sf=Object.freeze(Object.defineProperty({__proto__:null,CacheRetriever:ws,Channel:bs,Client:no,ClusterRetriever:Yt,DebouncedBatchRetriever:to,ONTOLOGY_TYPE:Ur,Writer:ao,analyzeParams:Ee,channelZ:Qt,isCalculated:Wt,keyZ:J,nameZ:Xt,newZ:Sa,ontologyID:io,resolveCalculatedIndex:so,retrieveRequired:ro},Symbol.toStringTag,{value:"Module"})),af=s.z.object({keys:Le.array().optional(),usernames:s.z.string().array().optional()}),of=s.z.object({users:V(ir)}),cf="/user/retrieve";let lf=class{constructor(e){c(this,"client");this.client=e}async retrieve(e){return(await w(this.client,cf,e,af,of)).users}};const uf=s.z.object({users:ja.array()}),hf=s.z.object({users:ir.array()}),df=s.z.object({key:Le,username:s.z.string().min(1)}),ff=s.z.object({}),yf=s.z.object({key:Le,firstName:s.z.string().optional(),lastName:s.z.string().optional()}),gf=s.z.object({}),pf=s.z.object({keys:Le.array()}),mf=s.z.object({}),wf="/user/create",bf="/user/change-username",Tf="/user/rename",vf="/user/delete";let Of=class{constructor(e){c(this,"client");this.client=e}async create(e){return(await w(this.client,wf,{users:b(e)},uf,hf)).users}async changeUsername(e,t){await w(this.client,bf,{key:e,username:t},df,ff)}async rename(e,t,n){await w(this.client,Tf,{key:e,firstName:t,lastName:n},yf,gf)}async delete(e){await w(this.client,vf,{keys:b(e)},pf,mf)}},oo=class{constructor(e){c(this,"reader");c(this,"writer");this.writer=new Of(e),this.reader=new lf(e)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async changeUsername(e,t){await this.writer.changeUsername(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.reader.retrieve({keys:b(e)});if(t)return n;if(n.length===0)throw new Oe(`No user with key ${e} found`);if(n.length>1)throw new Ne(`Multiple users found with key ${e}`);return n[0]}async retrieveByName(e){const t=Array.isArray(e),n=await this.reader.retrieve({usernames:b(e)});if(t)return n;if(n.length===0)throw new Oe(`No user with username ${e} found`);if(n.length>1)throw new Ne(`Multiple users found with username ${e}`);return n[0]}async rename(e,t,n){await this.writer.rename(e,t,n)}async delete(e){await this.writer.delete(e)}};const Nf=r=>new O({type:cs,key:r}),Ef=Object.freeze(Object.defineProperty({__proto__:null,Client:oo,ONTOLOGY_TYPE:cs,keyZ:Le,newZ:ja,ontologyID:Nf,userZ:ir},Symbol.toStringTag,{value:"Module"})),zf=s.z.object({username:s.z.string(),password:s.z.string()}),Sf=s.z.object({token:s.z.string(),user:ir}),vi="/auth/login",If=3,$f="/auth/change-password",kf=s.z.object({username:s.z.string(),password:s.z.string(),newPassword:s.z.string().min(1)}),Af=s.z.object({}),xf=[Ut,Lt];let Rf=class{constructor(e,t){c(this,"token");c(this,"client");c(this,"credentials");c(this,"authenticating");c(this,"authenticated");c(this,"user");c(this,"retryCount");this.client=e,this.authenticated=!1,this.credentials=t,this.retryCount=0}async changePassword(e){if(!this.authenticated)throw new Error("Not authenticated");await w(this.client,$f,{username:this.credentials.username,password:this.credentials.password,newPassword:e},kf,Af),this.credentials.password=e}middleware(){const e=async(t,n)=>{if(!this.authenticated&&!t.target.endsWith(vi)){this.authenticating??(this.authenticating=new Promise((l,u)=>{this.client.send(vi,this.credentials,zf,Sf).then(([h,f])=>{if(f!=null)return l(f);this.token=h==null?void 0:h.token,this.user=h==null?void 0:h.user,this.authenticated=!0,l(null)}).catch(u)}));const o=await this.authenticating;if(o!=null)return[t,o]}t.params.Authorization=`Bearer ${this.token}`;const[i,a]=await n(t);return xf.some(o=>o.matches(a))&&this.retryCount<If?(this.authenticated=!1,this.authenticating=void 0,this.retryCount+=1,e(t,n)):(this.retryCount=0,[i,a])};return e}};const co=s.z.enum(["disconnected","connecting","connected","failed"]),lo=s.z.object({status:co,error:s.z.instanceof(Error).optional(),message:s.z.string().optional(),clusterKey:s.z.string(),clientVersion:s.z.string(),clientServerCompatible:s.z.boolean(),nodeVersion:s.z.string().optional()}),Cf=s.z.object({clusterKey:s.z.string(),nodeVersion:s.z.string().optional()}),Oi={clusterKey:"",status:"disconnected",error:void 0,message:"Disconnected",clientServerCompatible:!1,clientVersion:"0.41.0"},Ni=(r,e,t)=>{const n=t?"cluster":"client";return`Synnax cluster node version ${r!=null?`${r} `:""}is too ${t?"old":"new"} for client version ${e}.
36
+ name. keys parameter must be a set of channel keys or channel names.`)}get colType(){return this.columns.length===0?null:typeof this.columns[0]=="string"?"name":"key"}get keys(){if(this.colType==="name")throw new mt("colType is not key");return this.columns??[]}get uniqueKeys(){return Di.unique(this.keys)}get names(){if(this.colType==="key")throw new mt("colType is not name");return this.columns??[]}get uniqueNames(){return Di.unique(this.names)}get uniqueColumns(){return this.colType==="key"?this.uniqueKeys:this.uniqueNames}toPayload(){return{series:this.series.map(e=>Ko(e)),keys:[...this.keys]}}get isVertical(){return this.uniqueColumns.length===this.columns.length}get isHorizontal(){return this.uniqueColumns.length===1}get isSquare(){return this.isHorizontal&&this.isVertical}get isWeaklyAligned(){if(this.columns.length<=1)return!0;const e=this.timeRanges;return e.every(t=>t.equals(e[0]))}timeRange(e){if(e==null){if(this.columns.length===0)return q.ZERO;const n=z.min(...this.series.map(a=>a.timeRange.start)),s=z.max(...this.series.map(a=>a.timeRange.end));return new q(n,s)}const t=this.get(e);return t==null?q.ZERO:t.timeRange}latest(){return this.at(-1)}get timeRanges(){return this.uniqueColumns.map(e=>this.timeRange(e))}get(e){return Array.isArray(e)?this.filter(t=>e.includes(t)):new Ro(this.series.filter((t,n)=>this.columns[n]===e))}push(e,...t){if(e instanceof V){if(this.colType!==null&&e.colType!==this.colType)throw new F("keyVariant must match");this.series.push(...e.series),this.columns.push(...e.columns)}else{if(this.series.push(...t),typeof e=="string"&&this.colType==="key")throw new F("keyVariant must match");if(typeof e!="string"&&this.colType==="name")throw new F("keyVariant must match");this.columns.push(...Array.from({length:t.length},()=>e))}}concat(e){return new V([...this.columns,...e.columns],[...this.series,...e.series])}has(e){return typeof e=="string"&&this.colType==="key"||typeof e=="number"&&this.colType==="name"?!1:this.columns.includes(e)}map(e){const t=new V;return this.forEach((n,s,a)=>t.push(...e(n,s,a))),t}forEach(e){this.columns.forEach((t,n)=>{const s=this.series[n];e(t,s,n)})}at(e,t=!1){const n={};return this.uniqueColumns.forEach(s=>{n[s]=this.get(s).at(e,t)}),n}filter(e){const t=new V;return this.columns.forEach((n,s)=>{const a=this.series[s];e(n,a,s)&&t.push(n,a)}),t}get byteLength(){return new vt(this.series.reduce((e,t)=>e.add(t.byteLength),vt.ZERO))}get digest(){const e={};return this.keys.forEach((t,n)=>{const s=this.series[n].digest;t in e?e[t].push(s):e[t]=[s]}),e}get length(){return this.series.reduce((e,t)=>e+t.length,0)}toString(){let e=`Frame{
37
+ `;return this.uniqueColumns.forEach(t=>{e+=` ${t}: ${this.get(t).series.map(n=>n.toString()).join(",")}
38
+ `}),e+="}",e}}const tn=i.z.object({keys:i.z.union([i.z.null().transform(()=>[]),i.z.number().array().optional().default([])]),series:i.z.union([i.z.null().transform(()=>[]),_e.crudeZ.array().optional().default([])])}),Ho=r=>{const{dataType:e,data:t,timeRange:n,alignment:s}=r;return new _e({data:t,dataType:e,timeRange:n,glBufferUsage:"static",alignment:s})},Ko=r=>({timeRange:r.timeRange,dataType:r.dataType,data:new Uint8Array(r.data.buffer),alignment:r.alignment}),Ye=Py.uint32,Zs=i.z.object({key:Ye,variant:i.z.string(),message:i.z.string(),lastReceived:z.z.optional()}),rn=i.z.object({key:Ye,name:i.z.string(),state:Zs.optional()}),Jo=rn.partial({key:!0}),nn="rack",qs=r=>r?Qe.JSON_CODEC.decodeString(r,ce):{},yr=i.z.string(),Fs=i.z.object({key:yr,variant:i.z.string(),details:ce.or(i.z.string().transform(qs))}),gr=i.z.object({key:yr,rack:Ye,name:i.z.string(),make:i.z.string(),model:i.z.string(),location:i.z.string(),configured:i.z.boolean().optional(),properties:ce.or(i.z.string().transform(qs)),state:Fs.optional()}),Xo=gr.extend({properties:i.z.unknown().transform(r=>Qe.JSON_CODEC.encodeString(r))}),sn="device",Se=r=>r?JSON.parse(r):{},We=i.z.union([i.z.string(),i.z.bigint().transform(r=>r.toString()),i.z.number().transform(r=>r.toString())]),Qo=i.z.enum(["info","success","error","warning"]),ir=i.z.object({task:We,variant:Qo,key:i.z.string().optional(),details:ce.or(i.z.string().transform(Se)).or(i.z.array(i.z.unknown())).or(i.z.null())}),pr=i.z.object({key:We,name:i.z.string(),type:i.z.string(),internal:i.z.boolean().optional(),config:ce.or(i.z.string().transform(qs)),state:ir.optional().nullable(),snapshot:i.z.boolean().optional()}),ec=pr.omit({key:!0}).extend({key:We.transform(r=>r.toString()).optional(),config:i.z.unknown().transform(r=>Qe.JSON_CODEC.encodeString(r))}),Ys=i.z.object({task:We,type:i.z.string(),key:i.z.string(),args:ce.or(i.z.string().transform(Se)).or(i.z.array(i.z.unknown())).or(i.z.null()).optional()}),an="task",Tg=r=>Number(BigInt(r)>>32n),et=i.z.string().uuid(),wr=i.z.object({key:et,name:i.z.string().min(1),color:i.z.string()}),Ws="label",ae=i.z.string().uuid(),Vs=i.z.string().min(1),mr=i.z.object({key:ae,name:Vs,timeRange:q.z,color:i.z.string().optional()}),tc=mr.partial({key:!0}),rc=r=>{const e=b(r),t=e.length===0;let n=!1;return t||(n=ae.safeParse(e[0]).success),{single:!Array.isArray(r),variant:n?"keys":"names",normalized:e,actual:r,empty:t}},Gs="range",Hs="range-alias",tt=i.z.string().uuid(),br=i.z.object({key:tt,username:i.z.string().min(1),firstName:i.z.string().default(""),lastName:i.z.string().default(""),rootUser:i.z.boolean().default(!0)}),nc=br.partial({key:!0,firstName:!0,lastName:!0}).omit({rootUser:!0}).extend({password:i.z.string().min(1)}),Ks="user",Nt=i.z.string().uuid(),on=i.z.object({key:Nt,name:i.z.string(),data:ce.or(i.z.string().transform(Se))}),sc=on.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),Js="lineplot",It=i.z.string().uuid(),cn=i.z.object({key:It,name:i.z.string(),data:ce.or(i.z.string().transform(Se))}),ic=cn.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),Xs="log",Ee=i.z.string().uuid(),ln=i.z.object({key:Ee,name:i.z.string(),layout:ce.or(i.z.string().transform(Se))}),hn="workspace",ac=ln.partial({key:!0}).transform(r=>({...r,layout:JSON.stringify(r.layout)})),oc=ln.omit({layout:!0}).extend({layout:i.z.string().transform(Se)}),rt=i.z.string().uuid(),un=i.z.object({key:rt,name:i.z.string(),data:ce.or(i.z.string().transform(Se)),snapshot:i.z.boolean()}),cc=un.partial({key:!0,snapshot:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),Qs=un.extend({data:i.z.string().transform(Se)}),ei="schematic",$t=i.z.string().uuid(),ti=i.z.object({key:$t,name:i.z.string(),data:ce.or(i.z.string().transform(Se))}),lc=ti.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),ri=ti.extend({data:i.z.string().transform(Se)}),ni="table",si="builtin",hc="cluster",uc="node",vr=i.z.enum([Ws,Xs,zs,si,hc,en,uc,Ls,Gs,_s,Hs,Ks,hn,ei,Js,nn,sn,an,Es,ni]),ie=i.z.object({type:vr,key:i.z.string()}),dc=i.z.string().transform(r=>{const[e,t]=r.split(":");return{type:vr.parse(e),key:t??""}}),ht=i.z.union([dc,ie]),dt=class dt{constructor(e){l(this,"type");l(this,"key");if(e instanceof dt){this.type=e.type,this.key=e.key;return}if(typeof e=="string"){const[t,n]=e.split(":");this.type=t,this.key=n??"";return}this.type=e.type,this.key=e.key}toString(){return`${this.type}:${this.key}`}isType(){return this.key===""}matchesType(e){return this.type===e&&this.isType()}get payload(){return{type:this.type,key:this.key}}};l(dt,"z",i.z.union([i.z.instanceof(dt),ht.transform(e=>new dt(e))]));let E=dt;const Og=new E({type:si,key:"root"}),fc=i.z.object({type:i.z.number()}),yc=i.z.object({type:vr,fields:i.z.record(i.z.string(),fc)}),gc=i.z.object({id:E.z,name:i.z.string(),schema:yc.optional().nullable(),data:ce.optional().nullable()}).transform(r=>({key:r.id.toString(),...r})),Sg="to",Eg="from",zg=i.z.object({from:E.z,type:i.z.string(),to:E.z}),vs=r=>{const[e,t,n]=r.split("->");return{from:new E(e),type:t,to:new E(n)}};class ii{constructor(e,t){l(this,"key");l(this,"name");this.key=t,this.name=e}get ontologyID(){return pc(this.key)}}const pc=r=>new E({type:Ls,key:r}),Ng=i.z.object({group:js}),Ig=i.z.object({parent:ie,key:zt.optional(),name:Qr}),$g=i.z.object({key:zt,name:Qr}),xg=i.z.object({keys:i.z.array(zt)});var he;let kg=(he=class{constructor(e){l(this,"client");this.client=e}async create(e,t,n){return(await m(this.client,he.CREATE_ENDPOINT,{parent:e,name:t,key:n},Ig,Ng)).group}async rename(e,t){await m(this.client,he.RENAME_ENDPOINT,{key:e,name:t},$g,i.z.object({}))}async delete(e){await m(this.client,he.DELETE_ENDPOINT,{keys:e},xg,i.z.object({}))}},l(he,"CREATE_ENDPOINT","/ontology/create-group"),l(he,"RENAME_ENDPOINT","/ontology/rename-group"),l(he,"DELETE_ENDPOINT","/ontology/delete-group"),he),wc=class{constructor(e){l(this,"creator");this.creator=new kg(e)}async create(e,t,n){return this.sugar(await this.creator.create(e,t,n))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new ii(e.name,e.key)}};const Ag=Object.freeze(Object.defineProperty({__proto__:null,Client:wc,Group:ii,ONTOLOGY_TYPE:Ls,analyzeParams:vg,groupZ:js,keyZ:zt,nameZ:Qr,ontologyID:pc},Symbol.toStringTag,{value:"Module"})),Ug="/ontology/add-children",Cg="/ontology/remove-children",Rg="/ontology/move-children",aa=i.z.object({id:ie,children:ie.array()}),Bg=i.z.object({from:ie,to:ie,children:ie.array()}),kn=i.z.object({});let Pg=class{constructor(e){l(this,"client");this.client=e}async addChildren(e,...t){await m(this.client,Ug,{id:new E(e).payload,children:t.map(n=>new E(n).payload)},aa,kn)}async removeChildren(e,...t){await m(this.client,Cg,{id:new E(e).payload,children:t.map(n=>new E(n).payload)},aa,kn)}async moveChildren(e,t,...n){const s={from:new E(e).payload,to:new E(t).payload,children:n.map(a=>new E(a).payload)};await m(this.client,Rg,s,Bg,kn)}};const Dg="/ontology/retrieve",Mg=i.z.object({ids:ie.array().optional(),children:i.z.boolean().optional(),parents:i.z.boolean().optional(),includeSchema:i.z.boolean().optional(),excludeFieldData:i.z.boolean().optional(),term:i.z.string().optional(),limit:i.z.number().optional(),offset:i.z.number().optional(),types:vr.array().optional()}),jg=i.z.object({resources:gc.array()}),Mr=r=>b(r).map(e=>new E(e).payload);let mc=class{constructor(e,t){l(this,"type","ontology");l(this,"groups");l(this,"client");l(this,"writer");l(this,"framer");this.client=e,this.writer=new Pg(e),this.groups=new wc(e),this.framer=t}async search(e,t){return await this.execRetrieve({term:e,...t})}async retrieve(e,t){const n=await this.execRetrieve({ids:Mr(e),...t});if(Array.isArray(e))return n;if(n.length===0)throw new ke(`No resource found with ID ${gg.naturalLanguageJoin(b(e).map(s=>new E(s).toString()))}`);return n[0]}async page(e,t,n){return await this.execRetrieve({offset:e,limit:t,...n})}async retrieveChildren(e,t){return await this.execRetrieve({ids:Mr(e),children:!0,...t})}async retrieveParents(e,t){return await this.execRetrieve({ids:Mr(e),parents:!0,...t})}async addChildren(e,...t){return await this.writer.addChildren(e,...t)}async removeChildren(e,...t){return await this.writer.removeChildren(e,...t)}async moveChildren(e,t,...n){return await this.writer.moveChildren(e,t,...n)}async openChangeTracker(){return await Tr.open(this.framer,this)}async openDependentTracker(e){return await dn.open(e,this.framer,this)}newSearcherWithOptions(e){return{type:this.type,search:t=>this.search(t,e),retrieve:t=>this.retrieve(t,e),page:(t,n)=>this.page(t,n,e)}}async execRetrieve(e){const{resources:t}=await m(this.client,Dg,e,Mg,jg);return t}};const oa="sy_ontology_resource_set",ca="sy_ontology_resource_delete",la="sy_ontology_relationship_set",ha="sy_ontology_relationship_delete";class Tr{constructor(e,t){l(this,"relationships");l(this,"resources");l(this,"resourceObs");l(this,"relationshipObs");l(this,"streamer");l(this,"client");l(this,"closePromise");this.relationshipObs=new He.Observer,this.relationships=this.relationshipObs,this.resourceObs=new He.Observer,this.resources=this.resourceObs,this.client=t,this.streamer=e,this.closePromise=this.start()}async close(){this.streamer.close(),await this.closePromise}async start(){for await(const e of this.streamer)await this.update(e)}async update(e){const t=await this.parseResourceSets(e),n=this.parseResourceDeletes(e);t.concat(n).length>0&&this.resourceObs.notify(t.concat(n));const a=this.parseRelationshipSets(e),o=this.parseRelationshipDeletes(e);a.concat(o).length>0&&this.relationshipObs.notify(a.concat(o))}parseRelationshipSets(e){const t=e.get(la);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"set",key:vs(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(ha);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:vs(n)}))}async parseResourceSets(e){const t=e.get(oa);if(t.length===0)return[];const n=Array.from(t.as("string")).map(s=>new E(s));try{return(await this.client.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(s){if(s instanceof ke)return[];throw s}}parseResourceDeletes(e){const t=e.get(ca);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:new E(n)}))}static async open(e,t){const n=await e.openStreamer([oa,ca,la,ha]);return new Tr(n,t)}}const ua=r=>r==="from"?"to":"from";class dn extends He.Observer{constructor({target:t,dependents:n,relationshipType:s="parent",relationshipDirection:a="from",resourceType:o},c,h){super();l(this,"internal");l(this,"target");l(this,"relDir");l(this,"resourceType");l(this,"dependents");l(this,"client");l(this,"relType");l(this,"handleResourceChange",t=>{this.dependents=this.dependents.map(n=>{const s=t.find(a=>a.key.toString()==n.id.toString());return s==null||s.variant==="delete"?n:s.value}),this.notify(this.dependents)});l(this,"handleRelationshipChange",t=>{const n=t.filter(a=>a.variant==="delete"&&a.key[this.relDir].toString()===this.target.toString()&&(this.resourceType==null||a.key[ua(this.relDir)].type===this.resourceType));this.dependents=this.dependents.filter(a=>!n.some(o=>o.key.to.toString()===a.id.toString()&&o.key.type===this.relType));const s=t.filter(a=>a.variant==="set"&&a.key.type===this.relType&&a.key[this.relDir].toString()===this.target.toString()&&(this.resourceType==null||a.key[ua(this.relDir)].type===this.resourceType));if(s.length===0)return this.notify(this.dependents);this.client.retrieve(s.map(a=>a.key.to)).then(a=>{this.dependents=this.dependents.concat(a),this.notify(this.dependents)}).catch(console.error)});this.resourceType=o,this.internal=c,this.target=t,this.dependents=n,this.resourceType!=null&&(this.dependents=this.dependents.filter(d=>d.id.type===this.resourceType)),this.client=h,this.relType=s,this.relDir=a,this.internal.resources.onChange(this.handleResourceChange),this.internal.relationships.onChange(this.handleRelationshipChange)}static async open(t,n,s){const a=await Tr.open(n,s);return new dn(t,a,s)}async close(){await this.internal.close()}}const Lg=Object.freeze(Object.defineProperty({__proto__:null,BUILTIN_TYPE:si,CLUSTER_TYPE:hc,ChangeTracker:Tr,Client:mc,DependentTracker:dn,FROM_RELATIONSHIP_DIRECTION:Eg,ID:E,NODE_TYPE:uc,ROOT_ID:Og,TO_RELATIONSHIP_DIRECTION:Sg,crudeIDZ:ht,idZ:ie,parseIDs:Mr,parseRelationship:vs,relationshipSchemaZ:zg,resourceTypeZ:vr,resourceZ:gc,schemaFieldZ:fc,schemaZ:yc,stringIDZ:dc},Symbol.toStringTag,{value:"Module"})),Or=i.z.string().uuid(),fn=i.z.object({key:Or,subjects:X(ie),objects:X(ie),actions:X(_r)}),bc=i.z.object({key:Or.optional(),subjects:ht.array().or(ht),objects:ht.array().or(ht),actions:_r.array().or(_r)}),_g=i.z.object({keys:Or.array().optional(),subjects:ie.array().optional()}),Zg=i.z.object({policies:X(fn)}),qg="/access/policy/retrieve";let Fg=class{constructor(e){l(this,"client");this.client=e}async retrieve(e){return(await m(this.client,qg,e,_g,Zg)).policies}};const Yg=i.z.object({policies:fn.partial({key:!0}).array()}),Wg=i.z.object({policies:fn.array()}),Vg=i.z.object({keys:Or.array()}),Gg=i.z.object({}),Hg="/access/policy/create",Kg="/access/policy/delete";let Jg=class{constructor(e){l(this,"client");this.client=e}async create(e){const n=bc.array().parse(b(e)).map(a=>({objects:b(a.objects),actions:b(a.actions),subjects:b(a.subjects)}));return(await m(this.client,Hg,{policies:n},Yg,Wg)).policies}async delete(e){await m(this.client,Kg,{keys:b(e)},Vg,Gg)}},vc=class{constructor(e){l(this,"retriever");l(this,"writer");this.retriever=new Fg(e),this.writer=new Jg(e)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve({keys:b(e)});return t?n:n[0]}async retrieveFor(e){const t=b(e).map(n=>new E(n).payload);return await this.retriever.retrieve({subjects:t})}async delete(e){await this.writer.delete(e)}};const Xg=r=>new E({type:Es,key:r}),Qg=new E({type:zs,key:""}),ep=Object.freeze(Object.defineProperty({__proto__:null,ALLOW_ALL_ONTOLOGY_ID:Qg,ALLOW_ALL_ONTOLOGY_TYPE:zs,Client:vc,ONTOLOGY_TYPE:Es,keyZ:Or,newZ:bc,ontologyID:Xg,policyZ:fn},Symbol.toStringTag,{value:"Module"}));let Tc=class{constructor(e){l(this,"policy");this.policy=new vc(e)}};const tp=Object.freeze(Object.defineProperty({__proto__:null,ALL_ACTION:ro,CREATE_ACTION:no,Client:Tc,DELETE_ACTION:so,RETRIEVE_ACTION:io,UPDATE_ACTION:ao,actionZ:_r},Symbol.toStringTag,{value:"Module"})),rp=new Error("request for lock canceled");var np=function(r,e,t,n){function s(a){return a instanceof t?a:new t(function(o){o(a)})}return new(t||(t=Promise))(function(a,o){function c(f){try{d(n.next(f))}catch(u){o(u)}}function h(f){try{d(n.throw(f))}catch(u){o(u)}}function d(f){f.done?a(f.value):s(f.value).then(c,h)}d((n=n.apply(r,e||[])).next())})};class sp{constructor(e,t=rp){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((n,s)=>{const a={resolve:n,reject:s,weight:e,priority:t},o=Oc(this._queue,c=>t<=c.priority);o===-1&&e<=this._value?this._dispatchItem(a):this._queue.splice(o+1,0,a)})}runExclusive(e){return np(this,arguments,void 0,function*(t,n=1,s=0){const[a,o]=yield this.acquire(n,s);try{return yield t(a)}finally{o()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(n=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),ip(this._weightedWaiters[e-1],{resolve:n,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){const t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){const t=this._weightedWaiters[e-1];t&&(t.forEach(n=>n.resolve()),this._weightedWaiters[e-1]=[])}else{const e=this._queue[0].priority;for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];if(!n)continue;const s=n.findIndex(a=>a.priority<=e);(s===-1?n:n.splice(0,s)).forEach(a=>a.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}}function ip(r,e){const t=Oc(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function Oc(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var ap=function(r,e,t,n){function s(a){return a instanceof t?a:new t(function(o){o(a)})}return new(t||(t=Promise))(function(a,o){function c(f){try{d(n.next(f))}catch(u){o(u)}}function h(f){try{d(n.throw(f))}catch(u){o(u)}}function d(f){f.done?a(f.value):s(f.value).then(c,h)}d((n=n.apply(r,e||[])).next())})};class op{constructor(e){this._semaphore=new sp(1,e)}acquire(){return ap(this,arguments,void 0,function*(e=0){const[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const ai=(r,e,{convertNumericStrings:t=!0}={})=>{const n=!Array.isArray(r);let s=b(r);const a=s[0],o=typeof a;let c;return o==="string"&&t&&!isNaN(parseInt(a))&&"number"in e?(c=e.number,s=s.map(h=>parseInt(h))):c=e[o],{single:n,variant:c,normalized:s,actual:r}},yn=(r,e,t,n)=>{if(n){if(t.length===0)throw new Je(`${r} not found matching ${JSON.stringify(e)}`);if(t.length>1)throw new Xe(`Expected one ${r} matching ${JSON.stringify(e)}, but found ${t.length}`)}},cp=i.z.object({leaseholder:i.z.number().optional(),keys:Q.array().optional(),names:i.z.string().array().optional(),search:i.z.string().optional(),rangeKey:i.z.string().optional(),limit:i.z.number().optional(),offset:i.z.number().optional(),dataTypes:x.z.array().optional(),notDataTypes:x.z.array().optional(),virtual:i.z.boolean().optional(),isIndex:i.z.boolean().optional(),internal:i.z.boolean().optional()}),lp=i.z.object({channels:X(fr)}),Oe=r=>(Array.isArray(r)&&r.length>0&&typeof r[0]=="object"?r=r.map(e=>e.key):typeof r=="object"&&"key"in r&&(r=[r.key]),ai(r,{number:"keys",string:"names"})),Yr=class Yr{constructor(e){l(this,"client");this.client=e}async search(e,t){return await this.execute({search:e,...t})}async retrieve(e,t){const n=Oe(e),{variant:s}=n;let{normalized:a}=n;return s==="keys"&&a.indexOf(0)!==-1&&(a=a.filter(o=>o!==0)),a.length===0?[]:await this.execute({[s]:a,...t})}async page(e,t,n){return await this.execute({offset:e,limit:t,...n})}async execute(e){const[t,n]=await this.client.send(Yr.ENDPOINT,e,cp,lp);if(n!=null)throw n;return t.channels}};l(Yr,"ENDPOINT","/channel/retrieve");let ar=Yr;class oi{constructor(e){l(this,"cache");l(this,"namesToKeys");l(this,"wrapped");this.cache=new Map,this.namesToKeys=new Map,this.wrapped=e}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e,t){const{normalized:n}=Oe(e),s=[],a=[];if(n.forEach(c=>{const h=this.get(c);h!=null?s.push(...h):a.push(c)}),a.length===0)return s;const o=await this.wrapped.retrieve(a,t);return this.set(o),s.concat(o)}delete(e){const{variant:t,normalized:n}=Oe(e);t==="names"?n.forEach(s=>{const a=this.namesToKeys.get(s);a!=null&&(a.forEach(o=>this.cache.delete(o)),this.namesToKeys.delete(s))}):n.forEach(s=>{const a=this.cache.get(s);a!=null&&(this.cache.delete(s),this.namesToKeys.delete(a.name))})}rename(e,t){e.forEach((n,s)=>{const a=t[s],o=this.cache.get(n);if(o==null)return;this.cache.delete(n);const c=this.namesToKeys.get(o.name);c!=null&&(c.delete(n),c.size===0&&this.namesToKeys.delete(o.name)),o.name=a,this.cache.set(n,o);const h=this.namesToKeys.get(a);h==null?this.namesToKeys.set(a,new Set([n])):h.add(n)})}set(e){e.forEach(t=>{this.cache.set(t.key,t);const n=this.namesToKeys.get(t.name);n==null?this.namesToKeys.set(t.name,new Set([t.key])):n.add(t.key)})}get(e){if(typeof e=="number"){const s=this.cache.get(e);return s==null?void 0:[s]}const t=this.namesToKeys.get(e);if(t==null)return;const n=[];if(t.forEach(s=>{const a=this.cache.get(s);a!=null&&n.push(a)}),n.length!==0)return n}}class Sc{constructor(e,t){l(this,"mu",new op);l(this,"requests",new Map);l(this,"wrapped");l(this,"debouncedRun");this.wrapped=e,this.debouncedRun=Qf(()=>{this.run()},t)}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e){const{normalized:t,variant:n}=Oe(e);return n==="names"?await this.wrapped.retrieve(t):await new Promise((a,o)=>{this.mu.runExclusive(()=>{this.requests.set(t,{resolve:a,reject:o}),this.debouncedRun()})})}async run(){await this.mu.runExclusive(async()=>{const e=new Set;this.requests.forEach((t,n)=>n.forEach(s=>e.add(s)));try{const t=await this.wrapped.retrieve(Array.from(e));this.requests.forEach((n,s)=>n.resolve(t.filter(a=>s.includes(a.key))))}catch(t){this.requests.forEach(n=>n.reject(t))}finally{this.requests.clear()}})}}const Ec=async(r,e)=>{const{normalized:t}=Oe(e),n=await r.retrieve(t),s=[];if(t.forEach(a=>{n.find(o=>o.name===a||o.key===a)==null&&s.push(a)}),s.length>0)throw new ke(`Could not find channels: ${JSON.stringify(s)}`);return n};class ci{constructor({dataType:e,name:t,leaseholder:n=0,key:s=0,isIndex:a=!1,index:o=0,internal:c=!1,virtual:h=!1,frameClient:d,alias:f,expression:u="",requires:N=[]}){l(this,"_frameClient");l(this,"key");l(this,"name");l(this,"dataType");l(this,"leaseholder");l(this,"index");l(this,"isIndex");l(this,"internal");l(this,"alias");l(this,"virtual");l(this,"expression");l(this,"requires");this.key=s,this.name=t,this.dataType=new x(e),this.leaseholder=n,this.index=o,this.isIndex=a,this.internal=c,this.alias=f,this.virtual=h,this.expression=u,this.requires=N??[],this._frameClient=d??null}get framer(){if(this._frameClient==null)throw new F("cannot read from a channel that has not been created");return this._frameClient}get payload(){return fr.parse({key:this.key,name:this.name,dataType:this.dataType.valueOf(),leaseholder:this.leaseholder,index:this.index,isIndex:this.isIndex,internal:this.internal,virtual:this.virtual,expression:this.expression,requires:this.requires})}get isCalculated(){return or(this.payload)}get ontologyID(){return Ic(this.key)}async read(e){return await this.framer.read(e,this.key)}async write(e,t){return await this.framer.write(e,this.key,t)}}const hp="/channel/retrieve-group",up=i.z.object({}),dp=i.z.object({group:js});let zc=class{constructor(e,t,n,s){l(this,"type",en);l(this,"frameClient");l(this,"client");l(this,"retriever");l(this,"writer");this.frameClient=e,this.retriever=t,this.client=n,this.writer=s}async create(e,t={}){const{retrieveIfNameExists:n=!1}=t,s=!Array.isArray(e);let a=b(e),o=[];if(n){const c=await this.retriever.retrieve(a.map(d=>d.name)),h=new Set(c.map(d=>d.name));a=a.filter(d=>!h.has(d.name)),o=this.sugar(c)}return o=o.concat(this.sugar(await this.writer.create(a))),s?o[0]:o}async retrieve(e,t){const n=!Array.isArray(e),s=this.sugar(await this.retriever.retrieve(e,t));return yn("channel",e,s,n),n?s[0]:s}async search(e,t){return this.sugar(await this.retriever.search(e,t))}async delete(e){const{normalized:t,variant:n}=Oe(e);return n==="keys"?await this.writer.delete({keys:t}):await this.writer.delete({names:t})}async rename(e,t){return await this.writer.rename(b(e),b(t))}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}async page(e,t,n){return this.sugar(await this.retriever.page(e,t,n))}createDebouncedBatchRetriever(e=10){return new oi(new Sc(new ar(this.client),e))}sugar(e){const{frameClient:t}=this;return e.map(n=>new ci({...n,frameClient:t}))}async retrieveGroup(){const e=await m(this.client,hp,{},up,dp);return new ii(e.group.name,e.group.key)}};const or=({virtual:r,expression:e})=>r&&e!=="",Nc=async(r,e)=>{if(!or(e))return e.index;for(const t of e.requires){const n=await r(t);if(n==null)return null;if(!n.virtual)return n.index}for(const t of e.requires){const n=await r(t);if(n==null)return null;if(or(n)){const s=await Nc(r,n);if(s!=null)return s}}return null},Ic=r=>new E({type:en,key:r.toString()}),fp=i.z.object({channels:Go.array()}),yp=i.z.object({channels:fr.array()}),gp=i.z.object({keys:Q.array().optional(),names:dr.array().optional()}),pp=i.z.object({}),wp=i.z.object({keys:Q.array(),names:dr.array()}),mp=i.z.object({}),bp="/channel/create",vp="/channel/delete",Tp="/channel/rename";let $c=class{constructor(e,t){l(this,"client");l(this,"cache");this.client=e,this.cache=t}async create(e){const{channels:t}=await m(this.client,bp,{channels:e},fp,yp);return this.cache.set(t),t}async delete(e){await m(this.client,vp,e,gp,pp),e.keys!=null&&this.cache.delete(e.keys),e.names!=null&&this.cache.delete(e.names)}async rename(e,t){await m(this.client,Tp,{keys:e,names:t},wp,mp),this.cache.rename(e,t)}};const Op=Object.freeze(Object.defineProperty({__proto__:null,CacheRetriever:oi,Channel:ci,Client:zc,ClusterRetriever:ar,DebouncedBatchRetriever:Sc,ONTOLOGY_TYPE:en,Writer:$c,analyzeParams:Oe,channelZ:fr,isCalculated:or,keyZ:Q,nameZ:dr,newZ:Go,ontologyID:Ic,resolveCalculatedIndex:Nc,retrieveRequired:Ec},Symbol.toStringTag,{value:"Module"})),Sp=i.z.object({keys:tt.array().optional(),usernames:i.z.string().array().optional()}),Ep=i.z.object({users:X(br)}),zp="/user/retrieve";let Np=class{constructor(e){l(this,"client");this.client=e}async retrieve(e){return(await m(this.client,zp,e,Sp,Ep)).users}};const Ip=i.z.object({users:nc.array()}),$p=i.z.object({users:br.array()}),xp=i.z.object({key:tt,username:i.z.string().min(1)}),kp=i.z.object({}),Ap=i.z.object({key:tt,firstName:i.z.string().optional(),lastName:i.z.string().optional()}),Up=i.z.object({}),Cp=i.z.object({keys:tt.array()}),Rp=i.z.object({}),Bp="/user/create",Pp="/user/change-username",Dp="/user/rename",Mp="/user/delete";let jp=class{constructor(e){l(this,"client");this.client=e}async create(e){return(await m(this.client,Bp,{users:b(e)},Ip,$p)).users}async changeUsername(e,t){await m(this.client,Pp,{key:e,username:t},xp,kp)}async rename(e,t,n){await m(this.client,Dp,{key:e,firstName:t,lastName:n},Ap,Up)}async delete(e){await m(this.client,Mp,{keys:b(e)},Cp,Rp)}},xc=class{constructor(e){l(this,"reader");l(this,"writer");this.writer=new jp(e),this.reader=new Np(e)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async changeUsername(e,t){await this.writer.changeUsername(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.reader.retrieve({keys:b(e)});if(t)return n;if(n.length===0)throw new Je(`No user with key ${e} found`);if(n.length>1)throw new Xe(`Multiple users found with key ${e}`);return n[0]}async retrieveByName(e){const t=Array.isArray(e),n=await this.reader.retrieve({usernames:b(e)});if(t)return n;if(n.length===0)throw new Je(`No user with username ${e} found`);if(n.length>1)throw new Xe(`Multiple users found with username ${e}`);return n[0]}async rename(e,t,n){await this.writer.rename(e,t,n)}async delete(e){await this.writer.delete(e)}};const Lp=r=>new E({type:Ks,key:r}),_p=Object.freeze(Object.defineProperty({__proto__:null,Client:xc,ONTOLOGY_TYPE:Ks,keyZ:tt,newZ:nc,ontologyID:Lp,userZ:br},Symbol.toStringTag,{value:"Module"})),Zp=i.z.object({username:i.z.string(),password:i.z.string()}),qp=i.z.object({token:i.z.string(),user:br}),da="/auth/login",Fp=3,Yp="/auth/change-password",Wp=i.z.object({username:i.z.string(),password:i.z.string(),newPassword:i.z.string().min(1)}),Vp=i.z.object({}),Gp=[ps,ws];let Hp=class{constructor(e,t){l(this,"token");l(this,"client");l(this,"credentials");l(this,"authenticating");l(this,"authenticated");l(this,"user");l(this,"retryCount");this.client=e,this.authenticated=!1,this.credentials=t,this.retryCount=0}async changePassword(e){if(!this.authenticated)throw new Error("Not authenticated");await m(this.client,Yp,{username:this.credentials.username,password:this.credentials.password,newPassword:e},Wp,Vp),this.credentials.password=e}middleware(){const e=async(t,n)=>{if(!this.authenticated&&!t.target.endsWith(da)){this.authenticating??(this.authenticating=new Promise((c,h)=>{this.client.send(da,this.credentials,Zp,qp).then(([d,f])=>{if(f!=null)return c(f);this.token=d==null?void 0:d.token,this.user=d==null?void 0:d.user,this.authenticated=!0,c(null)}).catch(h)}));const o=await this.authenticating;if(o!=null)return[t,o]}t.params.Authorization=`Bearer ${this.token}`;const[s,a]=await n(t);return Gp.some(o=>o.matches(a))&&this.retryCount<Fp?(this.authenticated=!1,this.authenticating=void 0,this.retryCount+=1,e(t,n)):(this.retryCount=0,[s,a])};return e}};const kc=i.z.enum(["disconnected","connecting","connected","failed"]),Ac=i.z.object({status:kc,error:i.z.instanceof(Error).optional(),message:i.z.string().optional(),clusterKey:i.z.string(),clientVersion:i.z.string(),clientServerCompatible:i.z.boolean(),nodeVersion:i.z.string().optional()}),Kp=i.z.object({clusterKey:i.z.string(),nodeVersion:i.z.string().optional()}),fa={clusterKey:"",status:"disconnected",error:void 0,message:"Disconnected",clientServerCompatible:!1,clientVersion:"0.42.0"},ya=(r,e,t)=>{const n=t?"cluster":"client";return`Synnax cluster node version ${r!=null?`${r} `:""}is too ${t?"old":"new"} for client version ${e}.
37
39
  This may cause compatibility issues. We recommend updating the ${n}. For more information, see
38
- https://docs.synnaxlabs.com/reference/typescript-client/troubleshooting#old-${n}-version`},lt=class lt{constructor(e,t=N.seconds(30),n,i){c(this,"_state");c(this,"pollFrequency",N.seconds(30));c(this,"client");c(this,"name");c(this,"interval");c(this,"clientVersion");c(this,"onChangeHandlers",[]);c(this,"versionWarned",!1);this._state={...Oi},this.client=e,this.pollFrequency=t,this.clientVersion=n,this.name=i,this.check(),this.startChecking()}stopChecking(){this.interval!=null&&clearInterval(this.interval)}async check(){var t;const e=this._state.status;try{const[n,i]=await this.client.send(lt.ENDPOINT,{},s.z.object({}),Cf);if(i!=null)throw i;const a=n.nodeVersion,o=this.clientVersion,l=this.versionWarned;a==null?(this._state.clientServerCompatible=!1,l||(console.warn(Ni(null,o,!0)),this.versionWarned=!0)):di.versionsEqual(o,a,{checkMajor:!0,checkMinor:!0,checkPatch:!1})?this._state.clientServerCompatible=!0:(this._state.clientServerCompatible=!1,l||(console.warn(Ni(a,o,di.semVerNewer(o,a))),this.versionWarned=!0)),this._state.status="connected",this._state.message=`Connected to ${this.name??"cluster"}`,this._state.clusterKey=n.clusterKey,this._state.nodeVersion=n.nodeVersion,this._state.clientVersion=this.clientVersion}catch(n){this._state.status="failed",this._state.error=n,this._state.message=(t=this.state.error)==null?void 0:t.message}return this.onChangeHandlers.length>0&&e!==this._state.status&&this.onChangeHandlers.forEach(n=>n(this.state)),this.state}get state(){return{...this._state}}onChange(e){this.onChangeHandlers.push(e)}startChecking(){this.interval=setInterval(()=>{this.check()},this.pollFrequency.milliseconds)}};c(lt,"ENDPOINT","/connectivity/check"),c(lt,"DEFAULT",Oi),c(lt,"connectionStateZ",lo);let Ft=lt;const Pf=Object.freeze(Object.defineProperty({__proto__:null,Checker:Ft,stateZ:lo,statusZ:co},Symbol.toStringTag,{value:"Module"})),jf=s.z.object({keys:J.array().optional(),bounds:G.z,names:Xt.array().optional()}),Df=s.z.object({}),Mf="/frame/delete";class Bf{constructor(e){c(this,"client");this.client=e}async delete(e){await w(this.client,Mf,e,jf,Df)}}class tn{constructor(e){c(this,"adapter");c(this,"retriever");c(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new tn(e);return await n.update(t),n}async update(e){const{variant:t,normalized:n}=Ee(e);if(t==="keys"){this.adapter=null,this.keys=n;return}const i=await this.retriever.retrieve(n),a=new Map;this.adapter=a,n.forEach(o=>{const l=i.find(u=>u.name===o);if(l==null)throw new Error(`Channel ${o} not found`);a.set(l.key,l.name)}),this.keys=Array.from(this.adapter.keys())}adapt(e){if(this.adapter==null)return e;const t=this.adapter;return e.map((n,i)=>{if(typeof n=="number"){const a=t.get(n);if(a==null)throw new Error(`Channel ${n} not found`);return[a,i]}return[n,i]})}}class Ts{constructor(e){c(this,"adapter");c(this,"retriever");c(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new Ts(e);return await n.update(t),n}async adaptObjectKeys(e){const t={};for(const[n,i]of Object.entries(e))t[await this.adaptToKey(n)]=i;return t}async update(e){const t=await ro(this.retriever,e);this.adapter=new Map(t.map(n=>[n.name,n.key])),this.keys=t.map(n=>n.key)}async fetchChannel(e){const t=await this.retriever.retrieve(e);if(t.length===0)throw new Error(`Channel ${e} not found`);return t[0]}async adaptToKey(e){return typeof e=="number"?e:(await this.fetchChannel(e)).key}async adapt(e,t){if(typeof e=="string"||typeof e=="number"){if(t==null)throw new U(`
40
+ https://docs.synnaxlabs.com/reference/typescript-client/troubleshooting#old-${n}-version`},ft=class ft{constructor(e,t=O.seconds(30),n,s){l(this,"_state");l(this,"pollFrequency",O.seconds(30));l(this,"client");l(this,"name");l(this,"interval");l(this,"clientVersion");l(this,"onChangeHandlers",[]);l(this,"versionWarned",!1);this._state={...fa},this.client=e,this.pollFrequency=t,this.clientVersion=n,this.name=s,this.check(),this.startChecking()}stopChecking(){this.interval!=null&&clearInterval(this.interval)}async check(){var t;const e=this._state.status;try{const[n,s]=await this.client.send(ft.ENDPOINT,{},i.z.object({}),Kp);if(s!=null)throw s;const a=n.nodeVersion,o=this.clientVersion,c=this.versionWarned;a==null?(this._state.clientServerCompatible=!1,c||(console.warn(ya(null,o,!0)),this.versionWarned=!0)):ta.versionsEqual(o,a,{checkMajor:!0,checkMinor:!0,checkPatch:!1})?this._state.clientServerCompatible=!0:(this._state.clientServerCompatible=!1,c||(console.warn(ya(a,o,ta.semVerNewer(o,a))),this.versionWarned=!0)),this._state.status="connected",this._state.message=`Connected to ${this.name??"cluster"}`,this._state.clusterKey=n.clusterKey,this._state.nodeVersion=n.nodeVersion,this._state.clientVersion=this.clientVersion}catch(n){this._state.status="failed",this._state.error=n,this._state.message=(t=this.state.error)==null?void 0:t.message}return this.onChangeHandlers.length>0&&e!==this._state.status&&this.onChangeHandlers.forEach(n=>n(this.state)),this.state}get state(){return{...this._state}}onChange(e){this.onChangeHandlers.push(e)}startChecking(){this.interval=setInterval(()=>{this.check()},this.pollFrequency.milliseconds)}};l(ft,"ENDPOINT","/connectivity/check"),l(ft,"DEFAULT",fa),l(ft,"connectionStateZ",Ac);let cr=ft;const Jp=Object.freeze(Object.defineProperty({__proto__:null,Checker:cr,stateZ:Ac,statusZ:kc},Symbol.toStringTag,{value:"Module"})),Xp=i.z.object({keys:Q.array().optional(),bounds:q.z,names:dr.array().optional()}),Qp=i.z.object({}),ew="/frame/delete";class tw{constructor(e){l(this,"client");this.client=e}async delete(e){await m(this.client,ew,e,Xp,Qp)}}var Ot=(r=>(r[r.Open=0]="Open",r[r.Write=1]="Write",r[r.Commit=2]="Commit",r[r.SetAuthority=3]="SetAuthority",r))(Ot||{}),St=(r=>(r[r.PersistStream=1]="PersistStream",r[r.Persist=2]="Persist",r[r.Stream=3]="Stream",r))(St||{});const rw=r=>{switch(r){case"persist":return 2;case"stream":return 3;case"persistStream":return 1;default:if(typeof r=="number"&&r in St)return r;throw new Error(`invalid writer mode: ${r}`)}},nw=new O(-1);class Ts extends Ue.sub("writer_closed"){constructor(){super("WriterClosed")}}const sw=i.z.object({start:z.z.optional(),controlSubject:Ke.subjectZ.optional(),keys:Q.array().optional(),authorities:Ke.authorityZ.array().optional(),mode:i.z.enum(St).optional(),errOnUnauthorized:i.z.boolean().optional(),enableAutoCommit:i.z.boolean().optional(),autoIndexPersistInterval:O.z.optional()}),iw=i.z.object({command:i.z.enum(Ot),config:sw.optional(),frame:tn.optional(),buffer:i.z.instanceof(Uint8Array).optional()}),aw=i.z.object({command:i.z.enum(Ot),end:z.z,err:Tt.payloadZ.optional()});var Ze;let Uc=(Ze=class{constructor(e,t){l(this,"stream");l(this,"adapter");l(this,"closeErr",null);this.stream=e,this.adapter=t}static async _open(e,t,{channels:n,start:s=z.now(),authorities:a=Ke.ABSOLUTE_AUTHORITY,controlSubject:o,mode:c=1,errOnUnauthorized:h=!1,enableAutoCommit:d=!1,autoIndexPersistInterval:f=O.SECOND,useExperimentalCodec:u=!0}){const N=await hi.open(e,n);u&&(t=t.withCodec(new dw(N.codec)));const S=await t.stream(Ze.ENDPOINT,iw,aw),j=new Ze(S,N);return await j.execute({command:0,config:{start:new z(s),keys:N.keys,controlSubject:o,authorities:b(a),mode:rw(c),errOnUnauthorized:h,enableAutoCommit:d,autoIndexPersistInterval:f}}),j}async write(e,t){if(this.closeErr!=null)throw this.closeErr;if(this.stream.received())return await this.close();const n=await this.adapter.adapt(e,t);this.stream.send({command:1,frame:n.toPayload()})}async setAuthority(e,t){if(this.closeErr!=null)throw this.closeErr;let n;if(typeof e=="number"&&t==null)n={keys:[],authorities:[e]};else{let s;typeof e=="string"||typeof e=="number"?s={[e]:t}:s=e,s=await this.adapter.adaptObjectKeys(s),n={keys:Object.keys(s).map(a=>Number(a)),authorities:Object.values(s)}}await this.execute({command:3,config:n})}async commit(){if(this.closeErr!=null)throw this.closeErr;return this.stream.received()?(await this.closeInternal(null),z.ZERO):(await this.execute({command:2})).end}async close(){await this.closeInternal(null)}async closeInternal(e){if(this.closeErr!=null)throw this.closeErr;for(this.closeErr=e,this.stream.closeSend();;){if(this.closeErr!=null){if(Ts.matches(this.closeErr))return null;throw this.closeErr}const[t,n]=await this.stream.receive();n!=null?this.closeErr=ue.matches(n)?new Ts:n:this.closeErr=Tt.decode(t==null?void 0:t.err)}}async execute(e){const t=this.stream.send(e);for(t!=null&&await this.closeInternal(t);;){const[n,s]=await this.stream.receive();s!=null&&await this.closeInternal(s);const a=Tt.decode(n==null?void 0:n.err);if(a!=null&&await this.closeInternal(a),(n==null?void 0:n.command)==e.command)return n}}},l(Ze,"ENDPOINT","/frame/write"),Ze);const ga=r=>r.data.byteLength/r.dataType.density.valueOf(),ow=r=>{const{keys:e,series:t}=r;e.forEach((n,s)=>{t[s].key=n}),t.sort((n,s)=>n.key-s.key),e.sort((n,s)=>n-s),t.forEach(n=>delete n.key)},pa=5,wa=4,ma=3,ba=2,va=1,Ta=0,de=x.TIMESTAMP.density.valueOf(),Be=8,Pe=4,An=4,Un=4,cw=1;class Cc{constructor(e=[],t=[]){l(this,"contentType","application/sy-framer");l(this,"states",new Map);l(this,"currState");l(this,"seqNum",0);(e.length>0||t.length>0)&&this.update(e,t)}update(e,t){this.seqNum++;const n={keys:e,keyDataTypes:new Map,hasVariableDataTypes:!1};e.forEach((s,a)=>{const o=t[a];n.keyDataTypes.set(s,o),o.isVariable&&(n.hasVariableDataTypes=!0)}),n.keys.sort(),this.states.set(this.seqNum,n),this.currState=n}throwIfNotUpdated(e){if(this.seqNum<1)throw new F(`
41
+ The codec has not been updated with a list of channels and data types.
42
+ Please call the update method before calling ${e}.
43
+ `)}encode(e,t=0){var st,Ve;this.throwIfNotUpdated("encode");let n=e;e!=null&&typeof e=="object"&&"toPayload"in e&&(n=e.toPayload()),ow(n);let s=-1,a,o,c,h=t+cw+Un,d=!((st=this.currState)!=null&&st.hasVariableDataTypes),f=!0,u=!0,N=!0,S=!0,j=!0;n.keys.length!==((Ve=this.currState)==null?void 0:Ve.keys.length)&&(N=!1,h+=n.keys.length*An),n.series.forEach((L,xt)=>{var kt,Sr,fi,yi,gi;const ze=ga(L),le=n.keys[xt],oe=(kt=this.currState)==null?void 0:kt.keyDataTypes.get(le);if(oe==null)throw new F(`Channel ${le} was not provided in the list of channels when opening the writer`);if(!oe.equals(L.dataType))throw new F(`Series data type of ${L.dataType.toString()} does not match the data type of ${oe.toString()} for channel ${le}`);if(h+=L.data.byteLength,s===-1){s=ze,a=(Sr=L.timeRange)==null?void 0:Sr.start,o=(fi=L.timeRange)==null?void 0:fi.end,c=BigInt(L.alignment??0n);return}s!==ze&&(d=!1),((a==null?void 0:a.valueOf())!==((yi=L.timeRange)==null?void 0:yi.start.valueOf())||(o==null?void 0:o.valueOf())!==((gi=L.timeRange)==null?void 0:gi.end.valueOf()))&&(f=!1),c!==BigInt(L.alignment??0)&&(S=!1)}),u=f&&a==null&&o==null,j=S&&(c===void 0||c===0n),d?h+=Pe:h+=n.keys.length*Pe,u||(f?h+=de*2:h+=n.keys.length*de*2),j||(S?h+=Be:h+=n.keys.length*Be);const U=new Uint8Array(h),ee=new DataView(U.buffer);let A=t;return U[A]=Number(j)<<pa|Number(S)<<wa|Number(d)<<ma|Number(f)<<ba|Number(u)<<va|Number(N)<<Ta,A++,ee.setUint32(A,this.seqNum,!0),A+=Un,d&&(ee.setUint32(A,s,!0),A+=Pe),f&&!u&&(ee.setBigUint64(A,(a==null?void 0:a.valueOf())??0n,!0),ee.setBigUint64(A,(o==null?void 0:o.valueOf())??0n,!0),A+=de*2),S&&!j&&(ee.setBigUint64(A,c??0n,!0),A+=Be),n.series.forEach((L,xt)=>{var ze,le;if(N||(ee.setUint32(A,n.keys[xt],!0),A+=An),!d){let oe=L.data.byteLength;L.dataType.isVariable||(oe=ga(L)),ee.setUint32(A,oe,!0),A+=Pe}U.set(new Uint8Array(L.data),A),A+=L.data.byteLength,!f&&!u&&(ee.setBigUint64(A,((ze=L.timeRange)==null?void 0:ze.start.valueOf())??0n,!0),ee.setBigUint64(A,((le=L.timeRange)==null?void 0:le.end.valueOf())??0n,!0),A+=de*2),!S&&!j&&(ee.setBigUint64(A,L.alignment??0n,!0),A+=Be)}),U}decode(e,t=0){this.throwIfNotUpdated("decode");const n=e instanceof Uint8Array?e:new Uint8Array(e),s={keys:[],series:[]};let a=t,o=0,c=0,h,d,f;const u=new DataView(n.buffer,n.byteOffset,n.byteLength),N=!!(n[a]>>pa&1),S=!!(n[a]>>wa&1),j=!!(n[a]>>ma&1),U=!!(n[a]>>ba&1),ee=!!(n[a]>>va&1),A=!!(n[a]>>Ta&1);a++;const st=u.getUint32(a,!0);a+=Un;const Ve=this.states.get(st);if(Ve==null)return s;if(j){if(a+Pe>u.byteLength)return s;o=u.getUint32(a,!0),a+=Pe}if(U&&!ee){if(a+de>u.byteLength)return s;h=new z(u.getBigUint64(a,!0)),a+=de,d=new z(u.getBigUint64(a,!0)),a+=de}if(S&&!N){if(a+Be>u.byteLength)return s;f=u.getBigUint64(a,!0),a+=Be}return A&&(s.keys=[...Ve.keys]),Ve.keys.forEach((L,xt)=>{if(!A){if(a>=u.byteLength||u.getUint32(a,!0)!==L)return;a+=An,s.keys.push(L)}const ze=Ve.keyDataTypes.get(L);if(c=0,j)c=o;else{if(a+Pe>u.byteLength)return;c=u.getUint32(a,!0),a+=Pe}let le=c;if(ze.isVariable||(le*=ze.density.valueOf()),a+le>u.byteLength){s.keys.splice(xt,1);return}const oe={dataType:ze,data:n.slice(a,a+le).buffer};if(a+=le,!U&&!ee){if(a+de*2>u.byteLength)return;const kt=u.getBigUint64(a,!0);a+=de;const Sr=u.getBigUint64(a,!0);a+=de,oe.timeRange=new q({start:kt,end:Sr})}else ee?oe.timeRange=new q({start:0n,end:0n}):oe.timeRange=new q({start:(h==null?void 0:h.valueOf())??0n,end:(d==null?void 0:d.valueOf())??0n});if(!S&&!N){if(a+Be>u.byteLength)return;f=u.getBigUint64(a,!0),a+=Be,oe.alignment=f}else N?oe.alignment=0n:oe.alignment=f;s.series.push(oe)}),s}}const li=254,lw=new Uint8Array([li]),hw=255,uw=new Uint8Array([hw]),Rc="application/sy-framer";class dw{constructor(e){l(this,"contentType",Rc);l(this,"base");l(this,"lowPerfCodec");this.base=e,this.lowPerfCodec=Qe.JSON_CODEC}encode(e){var s,a;const t=e;if(t.type=="close"||((s=t.payload)==null?void 0:s.command)!=Ot.Write){const o=this.lowPerfCodec.encode(t),c=new Uint8Array({length:o.byteLength+1});return c.set(lw,0),c.set(new Uint8Array(o),1),c}const n=this.base.encode((a=t.payload)==null?void 0:a.frame,1);return n.set(uw,0),n}decode(e,t){if(new DataView(e instanceof Uint8Array?e.buffer:e).getUint8(0)===li)return this.lowPerfCodec.decode(e.slice(1),t);const a={type:"data"},o=this.base.decode(e,1);return a.payload={command:Ot.Write,frame:o},a}}class fw{constructor(e){l(this,"contentType",Rc);l(this,"base");l(this,"lowPerfCodec");this.base=e,this.lowPerfCodec=Qe.JSON_CODEC}encode(e){return this.lowPerfCodec.encode(e)}decode(e,t){return new DataView(e instanceof Uint8Array?e.buffer:e).getUint8(0)===li?this.lowPerfCodec.decode(e.slice(1),t):{type:"data",payload:{frame:this.base.decode(e,1)}}}}class gn{constructor(e){l(this,"adapter");l(this,"retriever");l(this,"keys");l(this,"codec");this.retriever=e,this.adapter=null,this.keys=[],this.codec=new Cc}static async open(e,t){const n=new gn(e);return await n.update(t),n}async update(e){const{variant:t,normalized:n}=Oe(e),s=await this.retriever.retrieve(n);if(this.codec.update(s.map(o=>o.key),s.map(o=>o.dataType)),t==="keys"){this.adapter=null,this.keys=n;return}const a=new Map;this.adapter=a,n.forEach(o=>{const c=s.find(h=>h.name===o);if(c==null)throw new Error(`Channel ${o} not found`);a.set(c.key,c.name)}),this.keys=Array.from(this.adapter.keys())}adapt(e){if(this.adapter==null)return e;const t=this.adapter;return e.map((n,s)=>{if(typeof n=="number"){const a=t.get(n);if(a==null)throw new Error(`Channel ${n} not found`);return[a,s]}return[n,s]})}}class hi{constructor(e){l(this,"adapter");l(this,"retriever");l(this,"keys");l(this,"codec");this.retriever=e,this.adapter=null,this.keys=[],this.codec=new Cc}static async open(e,t){const n=new hi(e);return await n.update(t),n}async adaptObjectKeys(e){const t={};for(const[n,s]of Object.entries(e))t[await this.adaptToKey(n)]=s;return t}async update(e){const t=await Ec(this.retriever,e);this.adapter=new Map(t.map(n=>[n.name,n.key])),this.keys=t.map(n=>n.key),this.codec.update(this.keys,t.map(n=>n.dataType))}async fetchChannel(e){const t=await this.retriever.retrieve(e);if(t.length===0)throw new Error(`Channel ${JSON.stringify(e)} not found`);return t[0]}async adaptToKey(e){return typeof e=="number"?e:(await this.fetchChannel(e)).key}encode(e){return this.codec.encode(e.toPayload())}async adapt(e,t){if(typeof e=="string"||typeof e=="number"){if(t==null)throw new F(`
39
44
  Received a single channel name or key but no series.
40
- `);if(Array.isArray(t)){if(t.some(u=>u instanceof Ae||Array.isArray(u)))throw new U(`
45
+ `);if(Array.isArray(t)){if(t.some(h=>h instanceof _e||Array.isArray(h)))throw new F(`
41
46
  Received a single channel name or key but multiple series.
42
- `);t=t}const o=await this.fetchChannel(e),l=new Ae({data:t,dataType:o.dataType});return new Y(o.key,l)}if(Array.isArray(e)){if(t==null)throw new U(`
47
+ `);t=t}const o=await this.fetchChannel(e),c=new _e({data:t,dataType:o.dataType});return new V(o.key,c)}if(Array.isArray(e)){if(t==null)throw new F(`
43
48
  Received an array of channel names or keys but no series.
44
- `);if(!Array.isArray(t))throw new U(`
49
+ `);if(!Array.isArray(t))throw new F(`
45
50
  Received an array of channel names or keys but no array of series.
46
- `);const o=[],l=[];for(let u=0;u<e.length;u++){const h=await this.fetchChannel(e[u]);if(u>=t.length)throw new U(`
51
+ `);const o=[],c=[];for(let h=0;h<e.length;h++){const d=await this.fetchChannel(e[h]);if(h>=t.length)throw new F(`
47
52
  Received an array of channel names or keys but not enough series.
48
- `);const f=new Ae({data:t[u],dataType:h.dataType});o.push(h.key),l.push(f)}return new Y(o,l)}if(e instanceof Y||e instanceof Map){const o=new Y(e);if(this.adapter==null)return o;const l=o.columns.map(u=>{var f;const h=typeof u=="string"?(f=this.adapter)==null?void 0:f.get(u):u;if(h==null)throw new U(`
49
- Channel ${u} was not provided in the list of channels when opening the writer
50
- `);return h});return new Y(l,o.series)}const n=[],i=[],a=Object.entries(e);for(let o=0;o<a.length;o++){const[l,u]=a[o],h=await this.fetchChannel(l),f=new Ae({data:u,dataType:h.dataType});n.push(h.key),i.push(f)}return new Y(n,i)}}class vs{constructor(e,t){c(this,"name");c(this,"stream");this.stream=t,this.name=e}async receive(){const[e,t]=await this.stream.receive();if(t!=null)throw t;return e}received(){return this.stream.received()}async closeAndAck(){for(this.stream.closeSend();;){const[e,t]=await this.stream.receive();if(e!=null&&console.warn(`${this.name} received unexpected response on closure.
51
- Please report this error to the Synnax team. ${JSON.stringify(e)}`),t!=null){if(Ce.matches(t))return;throw t}}}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const qn=new N(-1);var Os=(r=>(r[r.Open=0]="Open",r[r.Next=1]="Next",r[r.Prev=2]="Prev",r[r.SeekFirst=3]="SeekFirst",r[r.SeekLast=4]="SeekLast",r[r.SeekLE=5]="SeekLE",r[r.SeekGE=6]="SeekGE",r[r.Valid=7]="Valid",r[r.Error=8]="Error",r))(Os||{}),uo=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(uo||{});const Zf=s.z.object({command:s.z.nativeEnum(Os),span:N.z.optional(),bounds:G.z.optional(),stamp:I.z.optional(),keys:J.array().optional(),chunkSize:s.z.number().optional()}),Uf=s.z.object({variant:s.z.nativeEnum(uo),ack:s.z.boolean(),command:s.z.nativeEnum(Os),error:Vt.optional().nullable(),frame:Lr.optional()}),Zt=class Zt{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"value");this.stream=new vs("Iterator",e),this.value=new Y,this.adapter=t}static async _open(e,t,n,i,a={}){const o=await tn.open(n,t),l=await i.stream(Zt.ENDPOINT,Zf,Uf),u=new Zt(l,o);return await u.execute({command:0,keys:o.keys,bounds:new G(e),chunkSize:a.chunkSize??1e5}),u}async next(e=qn){return await this.execute({command:1,span:new N(e)})}async prev(e=qn){return await this.execute({command:2,span:new N(e)})}async seekFirst(){return await this.execute({command:3})}async seekLast(){return await this.execute({command:4})}async seekLE(e){return await this.execute({command:5,stamp:new I(e)})}async seekGE(e){return await this.execute({command:6,stamp:new I(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new Lf(this)}async execute(e){for(this.stream.send(e),this.value=new Y;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new Y(t.frame)))}}};c(Zt,"ENDPOINT","/frame/iterate");let xr=Zt;class Lf{constructor(e){c(this,"iter");c(this,"open",!1);this.iter=e}async next(){try{let e=!0;return this.open||(await this.iter.seekFirst()||(e=!1),this.open=!0),await this.iter.next()||(e=!1),e||await this.iter.close(),{done:!e,value:this.iter.value}}catch(e){throw await this.iter.close(),e}}}const _f=s.z.object({keys:s.z.number().array(),downsampleFactor:s.z.number()}),qf=s.z.object({frame:Lr,error:Vt.optional().nullable()}),Yf="/frame/stream";class rn{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"downsampleFactor");this.stream=new vs("Streamer",e),this.adapter=t,this.downsampleFactor=1}get keys(){return this.adapter.keys}static async _open(e,t,{channels:n,downsampleFactor:i}){const a=await tn.open(e,n),o=await t.stream(Yf,_f,qf),l=new rn(o,a);o.send({keys:a.keys,downsampleFactor:i??1});const[,u]=await o.receive();if(u!=null)throw u;return l}async next(){try{return{done:!1,value:await this.read()}}catch(e){if(Ce.matches(e))return{done:!0,value:void 0};throw e}}async read(){return this.adapter.adapt(new Y((await this.stream.receive()).frame))}async update(e){await this.adapter.update(e),this.stream.send({keys:this.adapter.keys,downsampleFactor:this.downsampleFactor})}close(){this.stream.closeSend()}[Symbol.asyncIterator](){return this}}class ze extends Ze.Observer{constructor(t,n){super(n);c(this,"streamer");c(this,"closePromise");this.streamer=t,this.closePromise=this.stream()}async close(){this.streamer.close(),await this.closePromise}async stream(){for await(const t of this.streamer)this.notify(t)}}var Ns=(r=>(r[r.Open=0]="Open",r[r.Write=1]="Write",r[r.Commit=2]="Commit",r[r.Error=3]="Error",r[r.SetAuthority=4]="SetAuthority",r))(Ns||{}),pt=(r=>(r[r.PersistStream=1]="PersistStream",r[r.Persist=2]="Persist",r[r.Stream=3]="Stream",r))(pt||{});const Wf=r=>{switch(r){case"persist":return 2;case"stream":return 3;case"persistStream":return 1;default:if(typeof r=="number"&&r in pt)return r;throw new Error(`invalid writer mode: ${r}`)}},Ff=new N(-1),Gf=s.z.object({start:I.z.optional(),controlSubject:yt.subjectZ.optional(),keys:J.array().optional(),authorities:yt.Authority.z.array().optional(),mode:s.z.nativeEnum(pt).optional(),errOnUnauthorized:s.z.boolean().optional(),enableAutoCommit:s.z.boolean().optional(),autoIndexPersistInterval:N.z.optional()}),Vf=s.z.object({command:s.z.nativeEnum(Ns),config:Gf.optional(),frame:Lr.optional()}),Jf=s.z.object({ack:s.z.boolean(),command:s.z.nativeEnum(Ns),error:Vt.optional().nullable()});var xe;let ho=(xe=class{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"errAccumulated",!1);this.stream=new vs("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,start:i=I.now(),authorities:a=yt.Authority.ABSOLUTE,controlSubject:o,mode:l=1,errOnUnauthorized:u=!1,enableAutoCommit:h=!1,autoIndexPersistInterval:f=N.SECOND}){const d=await Ts.open(e,n),k=await t.stream(xe.ENDPOINT,Vf,Jf),S=new xe(k,d);return await S.execute({command:0,config:{start:new I(i),keys:d.keys,controlSubject:o,authorities:b(a),mode:Wf(l),errOnUnauthorized:u,enableAutoCommit:h,autoIndexPersistInterval:f}}),S}async checkForAccumulatedError(){if(!this.errAccumulated&&this.stream.received())for(this.errAccumulated=!0;this.stream.received();)await this.stream.receive();return this.errAccumulated}async write(e,t){if(await this.checkForAccumulatedError())return!1;const n=await this.adapter.adapt(e,t);return this.stream.send({command:1,frame:n.toPayload()}),!0}async setAuthority(e,t){if(await this.checkForAccumulatedError())return!1;let n;if(typeof e=="number"&&t==null)n={keys:[],authorities:[e]};else{let a;typeof e=="string"||typeof e=="number"?a={[e]:t}:a=e,a=await this.adapter.adaptObjectKeys(a),n={keys:Object.keys(a).map(o=>Number(o)),authorities:Object.values(a)}}return(await this.execute({command:4,config:n})).ack}async commit(){return await this.checkForAccumulatedError()?!1:(await this.execute({command:2})).ack}async error(){const e=await this.execute({command:3});return e.error!=null?Sr(e.error):null}async close(){await this.stream.closeAndAck()}async execute(e){for(this.stream.send(e);;){const t=await this.stream.receive();if(t.command===e.command)return t;console.warn("writer received unexpected response",t)}}get errorAccumulated(){return this.stream.received()}},c(xe,"ENDPOINT","/frame/write"),xe);const Kf=r=>new O({type:Qn,key:r.toString()});let fo=class{constructor(e,t,n){c(this,"streamClient");c(this,"retriever");c(this,"deleter");this.streamClient=e,this.retriever=n,this.deleter=new Bf(t)}async openIterator(e,t,n){return await xr._open(e,t,this.retriever,this.streamClient,n)}async openWriter(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await ho._open(this.retriever,this.streamClient,e)}async openStreamer(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e,downsampleFactor:1}),await rn._open(this.retriever,this.streamClient,e)}async write(e,t,n){if(n==null){const a=t,o=await this.openWriter({start:e,channels:Object.keys(a),mode:pt.Persist});try{await o.write(a),await o.commit()}finally{await o.close()}return}const i=await this.openWriter({start:e,channels:t,mode:pt.Persist,errOnUnauthorized:!0,enableAutoCommit:!0,autoIndexPersistInterval:N.MAX});try{await i.write(t,n)}finally{await i.close()}}async read(e,t){const{single:n}=Ee(t),i=await this.readFrame(e,t);return n?i.get(t):i}async readFrame(e,t){const n=await this.openIterator(e,t),i=new Y;try{for await(const a of n)i.push(a)}finally{await n.close()}return i}async delete(e,t){const{normalized:n,variant:i}=Ee(e);return i==="keys"?await this.deleter.delete({keys:n,bounds:t}):await this.deleter.delete({names:n,bounds:t})}};const Hf=Object.freeze(Object.defineProperty({__proto__:null,ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT:Ff,AUTO_SPAN:qn,Client:fo,Frame:Y,Iterator:xr,ONTOLOGY_TYPE:Qn,ObservableStreamer:ze,Streamer:rn,Writer:ho,WriterMode:pt,frameZ:Lr,ontologyID:Kf,seriesFromPayload:Ia,seriesToPayload:$a},Symbol.toStringTag,{value:"Module"})),Xf=yt.Authority,Qf=yt.stateZ(s.z.number()),ey=r=>{var e,t;return r.to==null?`${(e=r.from)==null?void 0:e.resource} - ${(t=r.from)==null?void 0:t.subject.name} -> released`:r.from==null?`${r.to.resource} - released -> ${r.to.subject.name} (${r.to.authority.toString()})`:`${r.to.resource} - ${r.from.subject.name} -> ${r.to.subject.name} (${r.to.authority.toString()})`};class yo extends ze{constructor(t){super(t,n=>{const i=this.codec.decode(n.series[0].buffer);return this.merge(i),[i.transfers,!0]});c(this,"states");c(this,"codec");this.states=new Map,this.codec=new Jt.JSONCodec}subjects(){const t=new Map;return this.states.forEach(n=>t.set(n.subject.key,n.subject)),Array.from(t.values())}merge(t){t.transfers.forEach(n=>{n.from==null&&n.to==null&&console.warn("Invalid transfer: ",n),n.to==null?this.states.delete(n.from.resource):this.states.set(n.to.resource,n.to)})}}const ty="sy_node_1_control";let go=class{constructor(e){c(this,"framer");this.framer=e}async openStateTracker(){const e=await this.framer.openStreamer(ty);return new yo(e)}};const ry=Object.freeze(Object.defineProperty({__proto__:null,Authority:Xf,Client:go,StateTracker:yo,stateZ:Qf,transferString:ey},Symbol.toStringTag,{value:"Module"}));let po=class{constructor(e,t,n){c(this,"tasks");c(this,"racks");c(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const ny=Object.freeze(Object.defineProperty({__proto__:null,Client:po},Symbol.toStringTag,{value:"Module"})),qe=async(r,e,t,n)=>{const i=await r.openStreamer([e,t]),a=o=>{const l=[];return t!=null&&l.push(...o.get(t).series.flatMap(u=>n("delete",u))),e!=null&&l.push(...o.get(e).series.flatMap(u=>n("set",u))),[l,l.length>0]};return new ze(i,a)},sy=Object.freeze(Object.defineProperty({__proto__:null,openObservable:qe},Symbol.toStringTag,{value:"Module"})),iy="sy_device_set",ay="sy_device_delete",Ei="sy_device_state",pn="/hardware/device/retrieve",oy="/hardware/device/create",cy="/hardware/device/delete",ly=s.z.object({devices:Aa.array()}),uy=s.z.object({devices:tr.array()}),hy=s.z.object({keys:er.array()}),dy=s.z.object({}),mn=s.z.object({keys:er.array().optional(),names:s.z.string().array().optional(),makes:s.z.string().array().optional(),models:s.z.string().array().optional(),locations:s.z.string().array().optional(),racks:De.array().optional(),search:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),ignoreNotFound:s.z.boolean().optional(),includeState:s.z.boolean().optional()}),wn=s.z.object({devices:V(tr)});let mo=class{constructor(e,t){c(this,"type",Yr);c(this,"client");c(this,"frameClient");this.client=e,this.frameClient=t}async retrieve(e,t){const n=!Array.isArray(e),i=await w(this.client,pn,{keys:b(e),...t},mn,wn);return en("Device",e,i.devices,n),n?i.devices[0]:i.devices}async search(e,t){return(await w(this.client,pn,{search:e,...t},mn,wn)).devices}async page(e,t,n){return(await w(this.client,pn,{offset:e,limit:t,...n},mn,wn)).devices}async create(e){const t=!Array.isArray(e),n=await w(this.client,oy,{devices:b(e)},ly,uy);return t?n.devices[0]:n.devices}async delete(e){await w(this.client,cy,{keys:b(e)},hy,dy)}async openDeviceTracker(){return await qe(this.frameClient,iy,ay,fy)}async openStateObserver(){return new ze(await this.frameClient.openStreamer(Ei),e=>{const t=e.get(Ei);return t.length===0?[null,!1]:[t.parseJSON(rs),!0]})}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}};const fy=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(tr).map(t=>({variant:r,key:t.key,value:t})),yy=r=>new O({type:Yr,key:r}),gy=Object.freeze(Object.defineProperty({__proto__:null,Client:mo,ONTOLOGY_TYPE:Yr,deviceZ:tr,keyZ:er,newZ:Aa,ontologyID:yy,stateZ:rs},Symbol.toStringTag,{value:"Module"})),bn="/hardware/rack/retrieve",py="/hardware/rack/create",my="/hardware/rack/delete",zi="sy_rack_state",Tn=s.z.object({keys:De.array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),embedded:s.z.boolean().optional(),hostIsNode:s.z.boolean().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),includeState:s.z.boolean().optional()}),vn=s.z.object({racks:V(_r)}),wy=s.z.object({racks:ka.array()}),by=s.z.object({racks:_r.array()}),Ty=s.z.object({keys:De.array()}),vy=s.z.object({});let wo=class{constructor(e,t,n){c(this,"type",qr);c(this,"client");c(this,"tasks");c(this,"frameClient");this.client=e,this.tasks=t,this.frameClient=n}async delete(e){await w(this.client,my,{keys:b(e)},Ty,vy)}async create(e){const t=!Array.isArray(e),n=await w(this.client,py,{racks:b(e)},wy,by),i=this.sugar(n.racks);return t?i[0]:i}async search(e){const t=await w(this.client,bn,{search:e},Tn,vn);return this.sugar(t.racks)}async page(e,t){const n=await w(this.client,bn,{offset:e,limit:t},Tn,vn);return this.sugar(n.racks)}async retrieve(e,t){const{variant:n,normalized:i,single:a}=Qr(e,{string:"names",number:"keys"}),o=await w(this.client,bn,{[n]:i,includeState:t==null?void 0:t.includeState},Tn,vn),l=this.sugar(o.racks);return en("Rack",e,l,a),a?l[0]:l}async openStateObserver(){return new ze(await this.frameClient.openStreamer(zi),e=>{const t=e.get(zi);return t.length===0?[[],!1]:[t.parseJSON(es),!0]})}sugar(e){return e.map(({key:t,name:n,state:i})=>new bo(t,n,this.tasks,i))}};class bo{constructor(e,t,n,i){c(this,"key");c(this,"name");c(this,"state");c(this,"tasks");this.key=e,this.name=t,this.tasks=n,this.state=i}async listTasks(){return await this.tasks.retrieve(this.key)}async retrieveTaskByName(e){return await this.tasks.retrieveByName(e,this.key)}async retrieveTaskByType(e){return await this.tasks.retrieveByType(e,this.key)}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),await this.tasks.create(e)}async deleteTask(e){await this.tasks.delete([e])}}const Oy=r=>new O({type:qr,key:r.toString()}),Ny=Object.freeze(Object.defineProperty({__proto__:null,Client:wo,ONTOLOGY_TYPE:qr,Rack:bo,keyZ:De,newZ:ka,ontologyID:Oy,rackZ:_r,stateZ:es},Symbol.toStringTag,{value:"Module"})),Bt="sy_task_state",Ve="sy_task_cmd",Ey="sy_task_set",zy="sy_task_delete",Fe=new Error("Task not created"),To=async(r,e)=>{const t=await e.retrieveParents(r);return t.length===0?null:t[0]};class vo{constructor(e,t,n,i,a=!1,o=!1,l,u=null,h=null,f=null){c(this,"key");c(this,"name");c(this,"internal");c(this,"type");c(this,"config");c(this,"snapshot");c(this,"state");c(this,"frameClient");c(this,"ontologyClient");c(this,"rangeClient");this.key=e,this.name=t,this.type=n,this.config=i,this.internal=a,this.snapshot=o,l!==null&&(this.state=l),this.frameClient=u,this.ontologyClient=h,this.rangeClient=f}get payload(){return{key:this.key,name:this.name,type:this.type,config:this.config,state:this.state,internal:this.internal}}get ontologyID(){return No(this.key)}async executeCommand(e,t){if(this.frameClient==null)throw Fe;const n=await this.frameClient.openWriter(Ve),i=Lu.create();return await n.write(Ve,[{task:this.key,type:e,key:i,args:t}]),await n.close(),i}async executeCommandSync(e,t,n){if(this.frameClient==null)throw Fe;const i=await this.frameClient.openStreamer(Bt),a=await this.executeCommand(e,t);let o;const l=new Promise(u=>setTimeout(()=>u(!1),new N(n).milliseconds));for(;;){const u=await Promise.any([i.read(),l]);if(u===!1)throw new Error("Command timed out");const h=qt.safeParse(u.at(-1).sy_task_state);if(h.success){if(o=h.data,o.key===a)break}else throw h.error}return i.close(),o}async openStateObserver(){if(this.frameClient==null)throw Fe;return new ze(await this.frameClient.openStreamer(Bt),e=>{const t=e.get(Bt);if(t.length===0)return[null,!1];const n=qt.safeParse(t.at(-1));if(!n.success)return console.error(n.error),[null,!1];const i=n.data;return i.task!==this.key?[null,!1]:[i,!0]})}async openCommandObserver(){if(this.frameClient==null)throw Fe;return new ze(await this.frameClient.openStreamer(Ve),e=>{const t=e.get(Ve);if(t.length===0)return[null,!1];const n=ns.safeParse(t.at(-1));if(!n.success)return console.error(n.error),[null,!1];const i=n.data;return i.task!==this.key?[null,!1]:[i,!0]})}async snapshottedTo(){if(this.ontologyClient==null||this.rangeClient==null)throw Fe;return this.snapshot?await To(this.key,this.ontologyClient):null}}const Sy=s.z.object({rack:De.optional(),keys:Me.array().optional(),names:s.z.string().array().optional(),types:s.z.string().array().optional(),includeState:s.z.boolean().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Iy=s.z.object({tasks:V(rr)}),$y="/hardware/task/retrieve",ky="/hardware/task/create",Ay="/hardware/task/delete",xy="/hardware/task/copy",Ry=s.z.object({tasks:Ra.array()}),Cy=s.z.object({tasks:rr.array()}),Py=s.z.object({keys:Me.array()}),jy=s.z.object({}),Dy=s.z.object({key:Me,name:s.z.string(),snapshot:s.z.boolean()}),My=s.z.object({task:rr});let Oo=class{constructor(e,t,n,i){c(this,"type",Wr);c(this,"client");c(this,"frameClient");c(this,"ontologyClient");c(this,"rangeClient");this.client=e,this.frameClient=t,this.ontologyClient=n,this.rangeClient=i}async create(e){const t=!Array.isArray(e),n=await w(this.client,ky,{tasks:b(e)},Ry,Cy),i=this.sugar(n.tasks);return t?i[0]:i}async delete(e){await w(this.client,Ay,{keys:b(e)},Py,jy)}async search(e){return await this.execRetrieve({keys:[e]})}async page(e,t){return await this.execRetrieve({offset:e,limit:t})}async list(e={}){return this.sugar(await this.execRetrieve(e))}async retrieve(e,t){const{single:n,normalized:i,variant:a}=Qr(e,{number:"rack",string:"keys"},{convertNumericStrings:!1}),o={...t};a==="rack"?o.rack=e:o.keys=i;const l=await this.execRetrieve(o),u=this.sugar(l);return n&&a!=="rack"?u[0]:u}async copy(e,t,n){const i=await w(this.client,xy,{key:e,name:t,snapshot:n},Dy,My);return this.sugar([i.task])[0]}async retrieveByName(e,t){const n=await this.execRetrieve({names:[e],rack:t});return en("Task",e,n,!0),this.sugar(n)[0]}async retrieveByType(e,t){const n=await this.execRetrieve({types:[e],rack:t});return this.sugar(n)}async retrieveSnapshottedTo(e){if(this.ontologyClient==null)throw Fe;return await To(e,this.ontologyClient)}async execRetrieve(e){return(await w(this.client,$y,e,Sy,Iy)).tasks}sugar(e){const t=!Array.isArray(e),n=b(e).map(({key:i,name:a,type:o,config:l,state:u,internal:h,snapshot:f})=>new vo(i,a,o,l,h,f,u,this.frameClient,this.ontologyClient,this.rangeClient));return t?n[0]:n}async openTracker(){return await qe(this.frameClient,Ey,zy,(e,t)=>Array.from(t).map(n=>({variant:e,key:n.toString(),value:n.toString()})))}async openStateObserver(){return new ze(await this.frameClient.openStreamer(Bt),e=>{const t=e.get(Bt);if(t.length===0)return[null,!1];const n=qt.safeParse(t.at(-1));return n.success?[n.data,!0]:(console.error(n.error),[null,!1])})}async openCommandObserver(){return new ze(await this.frameClient.openStreamer(Ve),e=>{const t=e.get(Ve);if(t.length===0)return[null,!1];const n=ns.safeParse(t.at(-1));return n.success?[n.data,!0]:(console.error(n.error),[null,!1])})}};const No=r=>new O({type:Wr,key:r}),By=Object.freeze(Object.defineProperty({__proto__:null,Client:Oo,ONTOLOGY_TYPE:Wr,Task:vo,commandZ:ns,getRackKey:nd,keyZ:Me,newZ:Ra,ontologyID:No,stateZ:qt,statusZ:xa,taskZ:rr},Symbol.toStringTag,{value:"Module"})),Zy=s.z.object({keys:Ue.array().optional(),for:re.optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Uy=s.z.object({labels:V(nr)}),Pr=class Pr{constructor(e){c(this,"client");this.client=e}async retrieve(e){return await this.execute({keys:b(e)})}async retrieveFor(e){return await this.execute({for:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){const[t,n]=await this.client.send(Pr.ENDPOINT,e,Zy,Uy);if(n!=null)throw n;return t.labels}};c(Pr,"ENDPOINT","/label/retrieve");let Rr=Pr;const Eo=nr.extend({key:Ue.optional()}),Ly=s.z.object({labels:Eo.array()}),_y=s.z.object({labels:nr.array()}),qy=s.z.object({keys:Ue.array()}),zo=s.z.object({id:re,labels:Ue.array(),replace:s.z.boolean().optional()}),Yy=zo.omit({replace:!0}),On=s.z.object({}),Wy="/label/create",Fy="/label/delete",Gy="/label/set",Vy="/label/remove";let So=class{constructor(e){c(this,"client");this.client=e}async create(e){return(await w(this.client,Wy,{labels:b(e)},Ly,_y)).labels}async delete(e){await w(this.client,Fy,{keys:b(e)},qy,On)}async set(e,t,{replace:n}={}){await w(this.client,Gy,{id:e,labels:t,replace:n},zo,On)}async remove(e,t){await w(this.client,Vy,{id:e,labels:t},Yy,On)}};const Jy="sy_label_set",Ky="sy_label_delete";let Io=class{constructor(e,t,n){c(this,"type","label");c(this,"retriever");c(this,"writer");c(this,"frameClient");c(this,"ontology");this.writer=new So(e),this.retriever=new Rr(e),this.frameClient=t,this.ontology=n}async search(e){return await this.retriever.search(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async retrieveFor(e){return await this.retriever.retrieveFor(new O(e))}async label(e,t,n={}){await this.writer.set(new O(e),t,n)}async removeLabels(e,t){await this.writer.remove(new O(e),t)}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async openChangeTracker(){return await qe(this.frameClient,Jy,Ky,Hy)}async trackLabelsOf(e){const t=new Ze.Observer,n=(await this.retrieveFor(e)).map(a=>({id:$o(a.key),key:a.key,name:a.name,data:a}));return(await this.ontology.openDependentTracker({target:new O(e),dependents:n,relationshipType:"labeled_by"})).onChange(a=>t.notify(a.map(o=>{var l,u;return{key:o.id.key,color:(l=o.data)==null?void 0:l.color,name:(u=o.data)==null?void 0:u.name}}))),t}};const Hy=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(nr).map(t=>({variant:r,key:t.key,value:t})),$o=r=>new O({type:ss,key:r}),Xy=Object.freeze(Object.defineProperty({__proto__:null,Client:Io,ONTOLOGY_TYPE:ss,Retriever:Rr,Writer:So,keyZ:Ue,labelZ:nr,newZ:Eo,ontologyID:$o},Symbol.toStringTag,{value:"Module"})),Qy="sy_range_alias_set",eg="sy_range_alias_delete",tg=s.z.object({range:ne,aliases:s.z.string().array()}),rg=s.z.object({aliases:s.z.record(s.z.string(),J)}),ng=s.z.object({range:ne,aliases:s.z.record(J.or(s.z.string()),s.z.string())}),sg=s.z.unknown(),ig=s.z.object({range:ne,channels:J.array()}),ag=s.z.unknown(),og=s.z.object({range:ne}),cg=s.z.object({aliases:s.z.record(s.z.string(),s.z.string())}),fe=class fe{constructor(e,t,n){c(this,"frameClient");c(this,"cache",new Map);c(this,"client");c(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",i={};if(n){const o=this.cache.get(e);if(o!=null)return o;t.push(e)}else e.forEach(o=>{const l=this.cache.get(o);l!=null?i[o]=l:t.push(o)});if(t.length===0)return i;const a=await w(this.client,fe.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},tg,rg);return Object.entries(a.aliases).forEach(([o,l])=>this.cache.set(o,l)),n?a.aliases[t[0]]:{...i,...a.aliases}}async set(e){await w(this.client,fe.SET_ENDPOINT,{range:this.rangeKey,aliases:e},ng,sg)}async list(){return(await w(this.client,fe.LIST_ENDPOINT,{range:this.rangeKey},og,cg)).aliases}async delete(e){await w(this.client,fe.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},ig,ag)}async openChangeTracker(){return await qe(this.frameClient,Qy,eg,hg(this.rangeKey))}};c(fe,"SET_ENDPOINT","/range/alias/set"),c(fe,"RESOLVE_ENDPOINT","/range/alias/resolve"),c(fe,"LIST_ENDPOINT","/range/alias/list"),c(fe,"DELETE_ENDPOINT","/range/alias/delete");let Yn=fe;const lg=s.z.object({range:ne,channel:J,alias:s.z.string()}),ug="---",hg=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(ug)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(lg).map(n=>({variant:e,key:n.alias,value:n})),Es=s.z.object({range:ne,key:s.z.string(),value:s.z.string()}),dg=s.z.object({range:ne,keys:s.z.string().array()}),fg=s.z.object({pairs:V(Es)}),yg=s.z.object({range:ne,pairs:Es.array()}),gg=s.z.object({range:ne,keys:s.z.string().array()}),ke=class ke{constructor(e,t,n){c(this,"rangeKey");c(this,"client");c(this,"frameClient");this.rangeKey=e,this.client=t,this.frameClient=n}async get(e){const t=await w(this.client,ke.GET_ENDPOINT,{range:this.rangeKey,keys:b(e)},dg,fg);return typeof e=="string"?t.pairs[0].value:Object.fromEntries(t.pairs.map(n=>[n.key,n.value]))}async list(){return this.get([])}async set(e,t=""){let n;Jn(e)?n=Object.entries(e).map(([i,a])=>({range:this.rangeKey,key:i,value:a})):n=[{range:this.rangeKey,key:e,value:t}],await w(this.client,ke.SET_ENDPOINT,{range:this.rangeKey,pairs:n},yg,s.z.unknown())}async delete(e){await w(this.client,ke.DELETE_ENDPOINT,{range:this.rangeKey,keys:b(e)},gg,s.z.unknown())}async openTracker(){return await qe(this.frameClient,"sy_range_kv_set","sy_range_kv_delete",(e,t)=>e==="delete"?t.toStrings().map(n=>{const[i,a]=n.split("<--->",2);return{variant:e,key:n,value:{range:i,key:a,value:""}}}):t.parseJSON(Es).map(n=>({variant:e,key:`${n.range}${n.key}`,value:n})))}};c(ke,"GET_ENDPOINT","/range/kv/get"),c(ke,"SET_ENDPOINT","/range/kv/set"),c(ke,"DELETE_ENDPOINT","/range/kv/delete");let Gt=ke;class ko{constructor(e,t=G.ZERO,n,i,a,o,l,u,h,f,d){c(this,"key");c(this,"name");c(this,"kv");c(this,"timeRange");c(this,"color");c(this,"channels");c(this,"aliaser");c(this,"frameClient");c(this,"labelClient");c(this,"ontologyClient");c(this,"rangeClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=a,this.color=i,this.kv=o,this.aliaser=l,this.channels=u,this.labelClient=h,this.ontologyClient=f,this.rangeClient=d}get ontologyID(){return $e(this.key)}get payload(){return{key:this.key,name:this.name,timeRange:this.timeRange,color:this.color}}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new ie(`Channel ${e} does not exist`);await this.aliaser.set({[n[0].key]:t})}async deleteAlias(...e){await this.aliaser.delete(e)}async listAliases(){return await this.aliaser.list()}async resolveAlias(e){return await this.aliaser.resolve(e)}async openAliasTracker(){return await this.aliaser.openChangeTracker()}async retrieveParent(){return this.rangeClient.retrieveParent(this.key)}async retrieveChildren(){const e=(await this.ontologyClient.retrieveChildren(this.ontologyID,{excludeFieldData:!0,types:["range"]})).map(t=>t.id.key);return await this.rangeClient.retrieve(e)}async read(e){return await this.frameClient.read(this.timeRange,e)}async labels(){return await this.labelClient.retrieveFor($e(this.key))}async addLabel(...e){await this.labelClient.label($e(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels($e(this.key),e)}async openChildRangeTracker(){const e=new Ze.Observer,t=(await this.retrieveChildren()).map(i=>{const a=$e(i.key);return{id:a,key:a.toString(),name:i.name,data:i.payload}}),n=await this.ontologyClient.openDependentTracker({target:this.ontologyID,dependents:t,resourceType:"range"});return n.onChange(i=>e.notify(this.rangeClient.resourcesToRanges(i))),e.setCloser(async()=>await n.close()),e}async openParentRangeTracker(){const e=new Ze.Observer,t=await this.retrieveParent();if(t==null)return null;const n=$e(t.key),i={id:n,key:n.toString(),name:t.name,data:t.payload},a=await this.ontologyClient.openDependentTracker({target:this.ontologyID,dependents:[i],relationshipDirection:"to"});return a.onChange(o=>{const l=this.rangeClient.resourcesToRanges(o);if(l.length===0)return;const u=l[0];e.notify(u)}),e.setCloser(async()=>await a.close()),e}}const pg=(r,e)=>qu(r.timeRange,e.timeRange),mg=s.z.object({keys:ne.array().optional(),names:s.z.array(s.z.string()).optional(),term:s.z.string().optional(),overlapsWith:G.z.optional(),limit:s.z.number().int().optional(),offset:s.z.number().int().optional(),hasLabels:Ue.array().optional()}),wg="/range/retrieve",bg=s.z.object({ranges:V(sr)});let Ao=class{constructor(e,t,n,i,a,o){c(this,"type","range");c(this,"frameClient");c(this,"writer");c(this,"unaryClient");c(this,"channels");c(this,"labelClient");c(this,"ontologyClient");this.frameClient=e,this.writer=t,this.unaryClient=n,this.channels=i,this.labelClient=a,this.ontologyClient=o}async create(e,t){const n=!Array.isArray(e),i=this.sugarMany(await this.writer.create(b(e),t));return n?i[0]:i}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(b(e))}async search(e){return this.sugarMany(await this.execRetrieve({term:e}))}async page(e,t){return this.sugarMany(await this.execRetrieve({offset:e,limit:t}))}async retrieve(e){if(typeof e=="object"&&"start"in e)return await this.execRetrieve({overlapsWith:new G(e)});const{single:t,actual:n,variant:i,normalized:a,empty:o}=Pa(e);if(o)return[];const l=await this.execRetrieve({[i]:a});if(!t)return l;if(l.length===0)throw new Oe(`range matching ${n} not found`);if(l.length>1)throw new Ne(`multiple ranges matching ${n} found`);return l[0]}getKV(e){return new Gt(e,this.unaryClient,this.frameClient)}async execRetrieve(e){const{ranges:t}=await w(this.unaryClient,wg,e,mg,bg);return this.sugarMany(t)}async retrieveParent(e){const t=await this.ontologyClient.retrieveParents($e(e));if(t.length===0)return null;const n=t[0];return n.id.type!=="range"?null:await this.retrieve(n.id.key)}sugarOne(e){return new ko(e.name,e.timeRange,e.key,e.color,this.frameClient,new Gt(e.key,this.unaryClient,this.frameClient),new Yn(e.key,this.frameClient,this.unaryClient),this.channels,this.labelClient,this.ontologyClient,this)}sugarMany(e){return e.map(t=>this.sugarOne(t))}async openTracker(){return await qe(this.frameClient,"sy_range_set","sy_range_delete",(e,t)=>e==="delete"?t.toUUIDs().map(i=>({variant:e,key:i,value:void 0})):this.sugarMany(t.parseJSON(sr)).map(i=>({variant:e,key:i.key,value:i})))}resourcesToRanges(e){return e.map(t=>this.resourceToRange(t))}resourceToRange(e){var t,n,i;return this.sugarOne({key:e.id.key,name:(t=e.data)==null?void 0:t.name,timeRange:new G((n=e.data)==null?void 0:n.timeRange),color:(i=e.data)==null?void 0:i.color})}};const $e=r=>new O({type:as,key:r}),Tg=r=>new O({type:os,key:r}),vg=s.z.object({ranges:sr.array()}),Og=s.z.object({parent:re.optional(),ranges:Ca.array()}),Ng=s.z.object({keys:ne.array()}),Eg=s.z.object({}),zg=s.z.object({key:ne,name:is}),Sg=s.z.object({}),Ig="/range/create",$g="/range/delete",kg="/range/rename";class xo{constructor(e){c(this,"client");this.client=e}async rename(e,t){await w(this.client,kg,{key:e,name:t},zg,Sg)}async create(e,t){return(await w(this.client,Ig,{ranges:e,...t},Og,vg)).ranges}async delete(e){await w(this.client,$g,{keys:e},Ng,Eg)}}const Ag=Object.freeze(Object.defineProperty({__proto__:null,ALIAS_ONTOLOGY_TYPE:os,Client:Ao,KV:Gt,ONTOLOGY_TYPE:as,Range:ko,Writer:xo,aliasOntologyID:Tg,analyzeParams:Pa,keyZ:ne,nameZ:is,newZ:Ca,ontologyID:$e,payloadZ:sr,sort:pg},Symbol.toStringTag,{value:"Module"})),xg="/api/v1/";class Rg{constructor(e,t={},n=!1){c(this,"url");c(this,"unary");c(this,"stream");c(this,"secure");this.secure=n,this.url=e.child(xg);const i=new Jt.JSONCodec;this.unary=xl(new Al(this.url,i,this.secure),t),this.stream=new Ul(this.url,i,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const Cg="/workspace/lineplot/retrieve",Pg="/workspace/lineplot/create",jg="/workspace/lineplot/rename",Dg="/workspace/lineplot/set-data",Mg="/workspace/lineplot/delete",Bg=s.z.object({keys:bt.array()}),Zg=s.z.object({workspace:ge,linePlots:Da.array()}),Ug=s.z.object({key:bt,name:s.z.string()}),Lg=s.z.object({key:bt,data:s.z.string()}),_g=s.z.object({keys:bt.array()}),qg=s.z.object({linePlots:V(Fr)}),Yg=s.z.object({linePlots:Fr.array()}),Nn=s.z.object({});let Ro=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,Pg,{workspace:e,linePlots:b(t)},Zg,Yg);return n?i.linePlots:i.linePlots[0]}async rename(e,t){await w(this.client,jg,{key:e,name:t},Ug,Nn)}async setData(e,t){await w(this.client,Dg,{key:e,data:JSON.stringify(t)},Lg,Nn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,Cg,{keys:b(e)},Bg,qg);return t?n.linePlots:n.linePlots[0]}async delete(e){await w(this.client,Mg,{keys:b(e)},_g,Nn)}};const Wg=r=>new O({type:ls,key:r}),Fg=Object.freeze(Object.defineProperty({__proto__:null,Client:Ro,ONTOLOGY_TYPE:ls,keyZ:bt,linePlotZ:Fr,newZ:Da,ontologyID:Wg},Symbol.toStringTag,{value:"Module"})),Gg="/workspace/log/retrieve",Vg="/workspace/log/create",Jg="/workspace/log/rename",Kg="/workspace/log/set-data",Hg="/workspace/log/delete",Xg=s.z.object({keys:Tt.array()}),Qg=s.z.object({workspace:ge,logs:Ma.array()}),ep=s.z.object({key:Tt,name:s.z.string()}),tp=s.z.object({key:Tt,data:s.z.string()}),rp=s.z.object({keys:Tt.array()}),np=s.z.object({logs:Gr.array()}),sp=s.z.object({logs:Gr.array()}),En=s.z.object({});let Co=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,Vg,{workspace:e,logs:b(t)},Qg,sp);return n?i.logs:i.logs[0]}async rename(e,t){await w(this.client,Jg,{key:e,name:t},ep,En)}async setData(e,t){await w(this.client,Kg,{key:e,data:JSON.stringify(t)},tp,En)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,Gg,{keys:b(e)},Xg,np);return t?n.logs:n.logs[0]}async delete(e){await w(this.client,Hg,{keys:b(e)},rp,En)}};const ip=r=>new O({type:us,key:r}),ap=Object.freeze(Object.defineProperty({__proto__:null,Client:Co,ONTOLOGY_TYPE:us,keyZ:Tt,logZ:Gr,newZ:Ma,ontologyID:ip},Symbol.toStringTag,{value:"Module"})),op="/workspace/schematic/retrieve",cp="/workspace/schematic/create",lp="/workspace/schematic/rename",up="/workspace/schematic/set-data",hp="/workspace/schematic/delete",dp="/workspace/schematic/copy",fp=s.z.object({keys:_e.array()}),yp=s.z.object({workspace:ge,schematics:Ua.array()}),gp=s.z.object({key:_e,name:s.z.string()}),pp=s.z.object({key:_e,data:s.z.string()}),mp=s.z.object({keys:_e.array()}),wp=s.z.object({key:_e,name:s.z.string(),snapshot:s.z.boolean()}),bp=s.z.object({schematics:V(hs)}),Tp=s.z.object({schematics:hs.array()}),vp=s.z.object({schematic:Kr}),zn=s.z.object({});let Po=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,cp,{workspace:e,schematics:b(t)},yp,Tp);return n?i.schematics:i.schematics[0]}async rename(e,t){await w(this.client,lp,{key:e,name:t},gp,zn)}async setData(e,t){await w(this.client,up,{key:e,data:JSON.stringify(t)},pp,zn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,op,{keys:b(e)},fp,bp);return t?n.schematics:n.schematics[0]}async delete(e){await w(this.client,hp,{keys:b(e)},mp,zn)}async copy(e,t,n){return(await w(this.client,dp,{key:e,name:t,snapshot:n},wp,vp)).schematic}};const Op=r=>new O({type:ds,key:r}),Np=Object.freeze(Object.defineProperty({__proto__:null,Client:Po,ONTOLOGY_TYPE:ds,keyZ:_e,newZ:Ua,ontologyID:Op,remoteZ:hs,schematicZ:Kr},Symbol.toStringTag,{value:"Module"})),Ep="/workspace/table/retrieve",zp="/workspace/table/create",Sp="/workspace/table/rename",Ip="/workspace/table/set-data",$p="/workspace/table/delete",kp=s.z.object({keys:vt.array()}),Ap=s.z.object({workspace:ge,tables:La.array()}),xp=s.z.object({key:vt,name:s.z.string()}),Rp=s.z.object({key:vt,data:s.z.string()}),Cp=s.z.object({keys:vt.array()}),Pp=s.z.object({tables:ys.array()}),jp=s.z.object({tables:ys.array()}),Sn=s.z.object({});let jo=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,zp,{workspace:e,tables:b(t)},Ap,jp);return n?i.tables:i.tables[0]}async rename(e,t){await w(this.client,Sp,{key:e,name:t},xp,Sn)}async setData(e,t){await w(this.client,Ip,{key:e,data:JSON.stringify(t)},Rp,Sn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,Ep,{keys:b(e)},kp,Pp);return t?n.tables:n.tables[0]}async delete(e){await w(this.client,$p,{keys:b(e)},Cp,Sn)}};const Dp=r=>new O({type:gs,key:r}),Mp=Object.freeze(Object.defineProperty({__proto__:null,Client:jo,ONTOLOGY_TYPE:gs,keyZ:vt,newZ:La,ontologyID:Dp,remoteZ:ys,tableZ:fs},Symbol.toStringTag,{value:"Module"})),dr="/workspace/retrieve",Bp="/workspace/create",Zp="/workspace/rename",Up="/workspace/set-layout",Lp="/workspace/delete",fr=s.z.object({keys:ge.array().optional(),search:s.z.string().optional(),author:Le.optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),_p=s.z.object({workspaces:Ba.array()}),qp=s.z.object({key:ge,name:s.z.string()}),Yp=s.z.object({key:ge,layout:s.z.string()}),Wp=s.z.object({keys:ge.array()}),yr=s.z.object({workspaces:V(Vr)}),Fp=s.z.object({workspaces:Za.array()}),In=s.z.object({});class Do{constructor(e){c(this,"type",Jr);c(this,"schematic");c(this,"linePlot");c(this,"log");c(this,"table");c(this,"client");this.client=e,this.schematic=new Po(e),this.linePlot=new Ro(e),this.log=new Co(e),this.table=new jo(e)}async create(e){const t=Array.isArray(e),n=await w(this.client,Bp,{workspaces:b(e)},_p,Fp);return t?n.workspaces:n.workspaces[0]}async rename(e,t){await w(this.client,Zp,{key:e,name:t},qp,In)}async setLayout(e,t){await w(this.client,Up,{key:e,layout:JSON.stringify(t)},Yp,In)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,dr,{keys:b(e)},fr,yr);return t?n.workspaces:n.workspaces[0]}async retrieveByAuthor(e){return(await w(this.client,dr,{author:e},fr,yr)).workspaces}async search(e){return(await w(this.client,dr,{search:e},fr,yr)).workspaces}async page(e,t){return(await w(this.client,dr,{offset:e,limit:t},fr,yr)).workspaces}async delete(e){await w(this.client,Lp,{keys:b(e)},Wp,In)}}const Gp=r=>new O({type:Jr,key:r}),Vp=Object.freeze(Object.defineProperty({__proto__:null,Client:Do,ONTOLOGY_TYPE:Jr,keyZ:ge,newZ:Ba,ontologyID:Gp,remoteZ:Za,workspaceZ:Vr},Symbol.toStringTag,{value:"Module"})),Mo=s.z.object({host:s.z.string({required_error:"Host is required"}).min(1,"Host is required"),port:s.z.number({required_error:"Port is required"}).or(s.z.string({required_error:"Port is required"})),username:s.z.string().min(1,"Username is required"),password:s.z.string().min(1,"Password is required"),connectivityPollFrequency:N.z.default(N.seconds(30)),secure:s.z.boolean().optional().default(!1),name:s.z.string().optional(),retry:Lh.breakerConfig.optional()});class Bo extends fo{constructor(t){const n=Mo.parse(t),{host:i,port:a,username:o,password:l,connectivityPollFrequency:u,secure:h,retry:f}=n,d=new Rg(new fh({host:i,port:Number(a)}),f,h);d.use(td);let k;o!=null&&l!=null&&(k=new Rf(d.unary,{username:o,password:l}),d.use(k.middleware()));const S=new ws(new Yt(d.unary)),se=new ao(d.unary,S);super(d.stream,d.unary,S);c(this,"createdAt");c(this,"props");c(this,"ranges");c(this,"channels");c(this,"auth");c(this,"user");c(this,"access");c(this,"connectivity");c(this,"ontology");c(this,"workspaces");c(this,"labels");c(this,"hardware");c(this,"control");c(this,"transport");c(this,"clientVersion","0.41.0");this.createdAt=I.now(),this.props=n,this.auth=k,this.transport=d,this.channels=new no(this,S,d.unary,se),this.connectivity=new Ft(d.unary,u,this.clientVersion,n.name),this.control=new go(this),this.ontology=new Ka(d.unary,this);const L=new xo(this.transport.unary);this.labels=new Io(this.transport.unary,this,this.ontology),this.ranges=new Ao(this,L,this.transport.unary,S,this.labels,this.ontology),this.access=new Qa(this.transport.unary),this.user=new oo(this.transport.unary),this.workspaces=new Do(this.transport.unary);const Zo=new mo(this.transport.unary,this),zs=new Oo(this.transport.unary,this,this.ontology,this.ranges),Uo=new wo(this.transport.unary,zs,this);this.hardware=new po(zs,Uo,Zo)}get key(){return this.createdAt.valueOf().toString()}close(){this.connectivity.stopChecking()}}c(Bo,"connectivity",Ft);const Jp=yt.Authority;exports.AuthError=ve;exports.Authority=Jp;exports.Channel=bs;exports.ContiguityError=Ln;exports.DataType=$;exports.Density=X;exports.Frame=Y;exports.MultiSeries=ba;exports.MultipleFoundError=Ne;exports.NotFoundError=Oe;exports.QueryError=ie;exports.Rate=dt;exports.RouteError=_t;exports.Series=Ae;exports.Synnax=Bo;exports.TimeRange=G;exports.TimeSpan=N;exports.TimeStamp=I;exports.UnexpectedError=Re;exports.ValidationError=U;exports.access=Md;exports.channel=sf;exports.connection=Pf;exports.control=ry;exports.device=gy;exports.framer=Hf;exports.group=fd;exports.hardware=ny;exports.isCalculated=Wt;exports.label=Xy;exports.linePlot=Fg;exports.log=ap;exports.ontology=Od;exports.policy=Dd;exports.rack=Ny;exports.ranger=Ag;exports.schematic=Np;exports.signals=sy;exports.synnaxPropsZ=Mo;exports.table=Mp;exports.task=By;exports.user=Ef;exports.workspace=Vp;
53
+ `);const f=new _e({data:t[h],dataType:d.dataType});o.push(d.key),c.push(f)}return new V(o,c)}if(e instanceof V||e instanceof Map){const o=new V(e);if(this.adapter==null)return o;const c=o.columns.map(h=>{var f;const d=typeof h=="string"?(f=this.adapter)==null?void 0:f.get(h):h;if(d==null)throw new F(`
54
+ Channel ${h} was not provided in the list of channels when opening the writer
55
+ `);return d});return new V(c,o.series)}const n=[],s=[],a=Object.entries(e);for(let o=0;o<a.length;o++){const[c,h]=a[o],d=await this.fetchChannel(c),f=new _e({data:h,dataType:d.dataType});n.push(d.key),s.push(f)}return new V(n,s)}}class Bc{constructor(e,t){l(this,"name");l(this,"stream");this.stream=t,this.name=e}async receive(){const[e,t]=await this.stream.receive();if(t!=null)throw t;return e}received(){return this.stream.received()}async closeAndAck(){for(this.stream.closeSend();;){const[e,t]=await this.stream.receive();if(e!=null&&console.warn(`${this.name} received unexpected response on closure.
56
+ Please report this error to the Synnax team.`),t!=null){if(ue.matches(t))return;throw t}}}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const Os=new O(-1);var ui=(r=>(r[r.Open=0]="Open",r[r.Next=1]="Next",r[r.Prev=2]="Prev",r[r.SeekFirst=3]="SeekFirst",r[r.SeekLast=4]="SeekLast",r[r.SeekLE=5]="SeekLE",r[r.SeekGE=6]="SeekGE",r[r.Valid=7]="Valid",r[r.Error=8]="Error",r))(ui||{}),Pc=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(Pc||{});const yw=i.z.object({command:i.z.enum(ui),span:O.z.optional(),bounds:q.z.optional(),stamp:z.z.optional(),keys:Q.array().optional(),chunkSize:i.z.number().optional()}),gw=i.z.object({variant:i.z.enum(Pc),ack:i.z.boolean(),command:i.z.enum(ui),error:Tt.payloadZ.optional().nullable(),frame:tn.optional()}),er=class er{constructor(e,t){l(this,"stream");l(this,"adapter");l(this,"value");this.stream=new Bc("Iterator",e),this.value=new V,this.adapter=t}static async _open(e,t,n,s,a={}){const o=await gn.open(n,t),c=await s.stream(er.ENDPOINT,yw,gw),h=new er(c,o);return await h.execute({command:0,keys:o.keys,bounds:new q(e),chunkSize:a.chunkSize??1e5}),h}async next(e=Os){return await this.execute({command:1,span:new O(e)})}async prev(e=Os){return await this.execute({command:2,span:new O(e)})}async seekFirst(){return await this.execute({command:3})}async seekLast(){return await this.execute({command:4})}async seekLE(e){return await this.execute({command:5,stamp:new z(e)})}async seekGE(e){return await this.execute({command:6,stamp:new z(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new pw(this)}async execute(e){for(this.stream.send(e),this.value=new V;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new V(t.frame)))}}};l(er,"ENDPOINT","/frame/iterate");let qr=er;class pw{constructor(e){l(this,"iter");l(this,"open",!1);this.iter=e}async next(){try{let e=!0;return this.open||(await this.iter.seekFirst()||(e=!1),this.open=!0),await this.iter.next()||(e=!1),e||await this.iter.close(),{done:!e,value:this.iter.value}}catch(e){throw await this.iter.close(),e}}}const ww=i.z.object({keys:i.z.number().array(),downSampleFactor:i.z.number()}),mw=i.z.object({frame:tn}),bw="/frame/stream",Dc=(r,e)=>async t=>{let n;Array.isArray(t)||typeof t!="object"?n={channels:t,downSampleFactor:1}:n=t;const s=await gn.open(r,n.channels);n.useExperimentalCodec&&(e=e.withCodec(new fw(s.codec)));const a=await e.stream(bw,ww,mw),o=new vw(a,s);a.send({keys:s.keys,downSampleFactor:n.downSampleFactor??1});const[,c]=await a.receive();if(c!=null)throw c;return o},Mc=async(r,e,t)=>await Dc(r,e)(t);class vw{constructor(e,t){l(this,"stream");l(this,"adapter");l(this,"downsampleFactor");this.stream=new Bc("Streamer",e),this.adapter=t,this.downsampleFactor=1}get keys(){return this.adapter.keys}async next(){try{return{done:!1,value:await this.read()}}catch(e){if(ue.matches(e))return{done:!0,value:void 0};throw e}}async read(){return this.adapter.adapt(new V((await this.stream.receive()).frame))}async update(e){await this.adapter.update(e),this.stream.send({keys:this.adapter.keys,downSampleFactor:this.downsampleFactor})}close(){this.stream.closeSend()}[Symbol.asyncIterator](){return this}}class pn{constructor(e,t){l(this,"wrapped_",null);l(this,"breaker");l(this,"opener");l(this,"config");this.opener=e,Array.isArray(t)||typeof t!="object"?this.config={channels:t,downSampleFactor:1}:this.config=t,this.breaker=new Do.Breaker({maxRetries:5e3,baseInterval:O.seconds(1),scale:1})}static async open(e,t){const n=new pn(e,t);return await n.runStreamer(),n}async runStreamer(){for(;;)try{this.wrapped_!=null&&this.wrapped_.close(),this.wrapped_=await this.opener(this.config),this.breaker.reset();return}catch(e){if(this.wrapped_=null,!await this.breaker.wait())throw e;continue}}get wrapped(){if(this.wrapped_==null)throw new Error("stream closed");return this.wrapped_}async update(e){this.config.channels=e;try{await this.wrapped.update(e)}catch{return await this.runStreamer(),await this.update(e)}}async next(){try{return{done:!1,value:await this.read()}}catch(e){if(ue.matches(e))return{done:!0,value:void 0};throw e}}async read(){try{const e=await this.wrapped.read();return this.breaker.reset(),e}catch(e){if(ue.matches(e))throw e;return await this.runStreamer(),await this.read()}}close(){this.wrapped.close()}get keys(){return this.wrapped.keys}[Symbol.asyncIterator](){return this}}class Ae extends He.Observer{constructor(t,n){super(n);l(this,"streamer");l(this,"closePromise");this.streamer=t,this.closePromise=this.stream()}async close(){this.streamer.close(),await this.closePromise}async stream(){for await(const t of this.streamer)this.notify(t)}}const Tw=r=>new E({type:_s,key:r.toString()}),Oa=r=>Array.isArray(r)||typeof r!="object"||typeof r=="object"&&"key"in r?{channels:r}:r;let jc=class{constructor(e,t,n){l(this,"streamClient");l(this,"retriever");l(this,"deleter");this.streamClient=e,this.retriever=n,this.deleter=new tw(t)}async openIterator(e,t,n){return await qr._open(e,t,this.retriever,this.streamClient,n)}async openWriter(e){return await Uc._open(this.retriever,this.streamClient,Oa(e))}async openStreamer(e){return await Mc(this.retriever,this.streamClient,Oa(e))}async write(e,t,n){if(n==null){const a=t,o=await this.openWriter({start:e,channels:Object.keys(a),mode:St.Persist,errOnUnauthorized:!0,enableAutoCommit:!0,autoIndexPersistInterval:O.MAX});await o.write(a),await o.commit(),await o.close();return}const s=await this.openWriter({start:e,channels:t,mode:St.Persist,errOnUnauthorized:!0,enableAutoCommit:!0,autoIndexPersistInterval:O.MAX});await s.write(t,n),await s.close()}async read(e,t){const{single:n}=Oe(t),s=await this.readFrame(e,t);return n?s.get(t):s}async readFrame(e,t){const n=await this.openIterator(e,t),s=new V;try{for await(const a of n)s.push(a)}finally{await n.close()}return s}async delete(e,t){const{normalized:n,variant:s}=Oe(e);return s==="keys"?await this.deleter.delete({keys:n,bounds:t}):await this.deleter.delete({names:n,bounds:t})}};const Ow=Object.freeze(Object.defineProperty({__proto__:null,ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT:nw,AUTO_SPAN:Os,Client:jc,Frame:V,HardenedStreamer:pn,Iterator:qr,ONTOLOGY_TYPE:_s,ObservableStreamer:Ae,Writer:Uc,WriterClosedError:Ts,WriterCommand:Ot,WriterMode:St,createStreamOpener:Dc,frameZ:tn,ontologyID:Tw,openStreamer:Mc,seriesFromPayload:Ho,seriesToPayload:Ko},Symbol.toStringTag,{value:"Module"})),Sw=Ke.ABSOLUTE_AUTHORITY,Ew=Ke.ZERO_AUTHORITY,zw=Ke.stateZ(i.z.number()),Nw=r=>{var e,t;return r.to==null?`${(e=r.from)==null?void 0:e.resource} - ${(t=r.from)==null?void 0:t.subject.name} -> released`:r.from==null?`${r.to.resource} - released -> ${r.to.subject.name} (${r.to.authority.toString()})`:`${r.to.resource} - ${r.from.subject.name} -> ${r.to.subject.name} (${r.to.authority.toString()})`},Iw=i.z.object({transfers:i.z.array(Ke.transferZ)});class Lc extends Ae{constructor(t){super(t,n=>{const s=this.codec.decode(n.series[0].buffer,Iw);return this.merge(s),[s.transfers,!0]});l(this,"states");l(this,"codec");this.states=new Map,this.codec=new Qe.JSONCodec}subjects(){const t=new Map;return this.states.forEach(n=>t.set(n.subject.key,n.subject)),Array.from(t.values())}merge(t){t.transfers.forEach(n=>{n.from==null&&n.to==null&&console.warn("Invalid transfer: ",n),n.to==null?this.states.delete(n.from.resource):this.states.set(n.to.resource,n.to)})}}const Sa="sy_node_1_control";let _c=class{constructor(e){l(this,"framer");this.framer=e}async openStateTracker(){const e=await pn.open(async()=>await this.framer.openStreamer(Sa),Sa);return new Lc(e)}};const $w=Object.freeze(Object.defineProperty({__proto__:null,ABSOLUTE_AUTHORITY:Sw,Client:_c,StateTracker:Lc,ZERO_AUTHORITY:Ew,stateZ:zw,transferString:Nw},Symbol.toStringTag,{value:"Module"}));let Zc=class{constructor(e,t,n){l(this,"tasks");l(this,"racks");l(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const xw=Object.freeze(Object.defineProperty({__proto__:null,Client:Zc},Symbol.toStringTag,{value:"Module"})),nt=async(r,e,t,n)=>{const s=await r.openStreamer([e,t]),a=o=>{const c=[];return t!=null&&c.push(...o.get(t).series.flatMap(h=>n("delete",h))),e!=null&&c.push(...o.get(e).series.flatMap(h=>n("set",h))),[c,c.length>0]};return new Ae(s,a)},kw=Object.freeze(Object.defineProperty({__proto__:null,openObservable:nt},Symbol.toStringTag,{value:"Module"})),Aw="sy_device_set",Uw="sy_device_delete",Ea="sy_device_state",Cn="/hardware/device/retrieve",Cw="/hardware/device/create",Rw="/hardware/device/delete",Bw=i.z.object({devices:Xo.array()}),Pw=i.z.object({devices:gr.array()}),Dw=i.z.object({keys:yr.array()}),Mw=i.z.object({}),Rn=i.z.object({keys:yr.array().optional(),names:i.z.string().array().optional(),makes:i.z.string().array().optional(),models:i.z.string().array().optional(),locations:i.z.string().array().optional(),racks:Ye.array().optional(),search:i.z.string().optional(),limit:i.z.number().optional(),offset:i.z.number().optional(),ignoreNotFound:i.z.boolean().optional(),includeState:i.z.boolean().optional()}),Bn=i.z.object({devices:X(gr)});let qc=class{constructor(e,t){l(this,"type",sn);l(this,"client");l(this,"frameClient");this.client=e,this.frameClient=t}async retrieve(e,t){const n=!Array.isArray(e),s=await m(this.client,Cn,{keys:b(e),...t},Rn,Bn);return yn("Device",e,s.devices,n),n?s.devices[0]:s.devices}async search(e,t){return(await m(this.client,Cn,{search:e,...t},Rn,Bn)).devices}async page(e,t,n){return(await m(this.client,Cn,{offset:e,limit:t,...n},Rn,Bn)).devices}async create(e){const t=!Array.isArray(e),n=await m(this.client,Cw,{devices:b(e)},Bw,Pw);return t?n.devices[0]:n.devices}async delete(e){await m(this.client,Rw,{keys:b(e)},Dw,Mw)}async openDeviceTracker(){return await nt(this.frameClient,Aw,Uw,jw)}async openStateObserver(){return new Ae(await this.frameClient.openStreamer(Ea),e=>{const t=e.get(Ea);return t.length===0?[null,!1]:[t.parseJSON(Fs),!0]})}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}};const jw=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(gr).map(t=>({variant:r,key:t.key,value:t})),Lw=r=>new E({type:sn,key:r}),_w=Object.freeze(Object.defineProperty({__proto__:null,Client:qc,ONTOLOGY_TYPE:sn,deviceZ:gr,keyZ:yr,newZ:Xo,ontologyID:Lw,stateZ:Fs},Symbol.toStringTag,{value:"Module"})),Pn="/hardware/rack/retrieve",Zw="/hardware/rack/create",qw="/hardware/rack/delete",za="sy_rack_state",Dn=i.z.object({keys:Ye.array().optional(),names:i.z.string().array().optional(),search:i.z.string().optional(),embedded:i.z.boolean().optional(),hostIsNode:i.z.boolean().optional(),limit:i.z.number().optional(),offset:i.z.number().optional(),includeState:i.z.boolean().optional()}),Mn=i.z.object({racks:X(rn)}),Fw=i.z.object({racks:Jo.array()}),Yw=i.z.object({racks:rn.array()}),Ww=i.z.object({keys:Ye.array()}),Vw=i.z.object({});let Fc=class{constructor(e,t,n){l(this,"type",nn);l(this,"client");l(this,"tasks");l(this,"frameClient");this.client=e,this.tasks=t,this.frameClient=n}async delete(e){await m(this.client,qw,{keys:b(e)},Ww,Vw)}async create(e){const t=!Array.isArray(e),n=await m(this.client,Zw,{racks:b(e)},Fw,Yw),s=this.sugar(n.racks);return t?s[0]:s}async search(e){const t=await m(this.client,Pn,{search:e},Dn,Mn);return this.sugar(t.racks)}async page(e,t){const n=await m(this.client,Pn,{offset:e,limit:t},Dn,Mn);return this.sugar(n.racks)}async retrieve(e,t){const{variant:n,normalized:s,single:a}=ai(e,{string:"names",number:"keys"}),o=await m(this.client,Pn,{[n]:s,includeState:t==null?void 0:t.includeState},Dn,Mn),c=this.sugar(o.racks);return yn("Rack",e,c,a),a?c[0]:c}async openStateObserver(){return new Ae(await this.frameClient.openStreamer(za),e=>{const t=e.get(za);return t.length===0?[[],!1]:[t.parseJSON(Zs),!0]})}sugar(e){return e.map(({key:t,name:n,state:s})=>new Yc(t,n,this.tasks,s))}};class Yc{constructor(e,t,n,s){l(this,"key");l(this,"name");l(this,"state");l(this,"tasks");this.key=e,this.name=t,this.tasks=n,this.state=s}async listTasks(){return await this.tasks.retrieve(this.key)}async retrieveTaskByName(e){return await this.tasks.retrieveByName(e,this.key)}async retrieveTaskByType(e){return await this.tasks.retrieveByType(e,this.key)}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),await this.tasks.create(e)}async deleteTask(e){await this.tasks.delete([e])}}const Gw=r=>new E({type:nn,key:r.toString()}),Hw=Object.freeze(Object.defineProperty({__proto__:null,Client:Fc,ONTOLOGY_TYPE:nn,Rack:Yc,keyZ:Ye,newZ:Jo,ontologyID:Gw,rackZ:rn,stateZ:Zs},Symbol.toStringTag,{value:"Module"})),Qt="sy_task_state",ut="sy_task_cmd",Kw="sy_task_set",Jw="sy_task_delete",lt=new Error("Task not created"),Wc=async(r,e)=>{const t=await e.retrieveParents(r);return t.length===0?null:t[0]};class Vc{constructor(e,t,n,s,a=!1,o=!1,c,h=null,d=null,f=null){l(this,"key");l(this,"name");l(this,"internal");l(this,"type");l(this,"config");l(this,"snapshot");l(this,"state");l(this,"frameClient");l(this,"ontologyClient");l(this,"rangeClient");this.key=e,this.name=t,this.type=n,this.config=s,this.internal=a,this.snapshot=o,c!==null&&(this.state=c),this.frameClient=h,this.ontologyClient=d,this.rangeClient=f}get payload(){return{key:this.key,name:this.name,type:this.type,config:this.config,state:this.state,internal:this.internal}}get ontologyID(){return Hc(this.key)}async executeCommand(e,t){if(this.frameClient==null)throw lt;const n=await this.frameClient.openWriter(ut),s=Zf.create();return await n.write(ut,[{task:this.key,type:e,key:s,args:t}]),await n.close(),s}async executeCommandSync(e,t,n){if(this.frameClient==null)throw lt;const s=await this.frameClient.openStreamer(Qt),a=await this.executeCommand(e,t);let o;const c=new Promise(h=>setTimeout(()=>h(!1),new O(n).milliseconds));for(;;){const h=await Promise.any([s.read(),c]);if(h===!1)throw new Error("Command timed out");const d=ir.safeParse(h.at(-1).sy_task_state);if(d.success){if(o=d.data,o.key===a)break}else throw d.error}return s.close(),o}async openStateObserver(){if(this.frameClient==null)throw lt;return new Ae(await this.frameClient.openStreamer(Qt),e=>{const t=e.get(Qt);if(t.length===0)return[null,!1];const n=ir.safeParse(t.at(-1));if(!n.success)return console.error(n.error),[null,!1];const s=n.data;return s.task!==this.key?[null,!1]:[s,!0]})}async openCommandObserver(){if(this.frameClient==null)throw lt;return new Ae(await this.frameClient.openStreamer(ut),e=>{const t=e.get(ut);if(t.length===0)return[null,!1];const n=Ys.safeParse(t.at(-1));if(!n.success)return console.error(n.error),[null,!1];const s=n.data;return s.task!==this.key?[null,!1]:[s,!0]})}async snapshottedTo(){if(this.ontologyClient==null||this.rangeClient==null)throw lt;return this.snapshot?await Wc(this.key,this.ontologyClient):null}}const Xw=i.z.object({rack:Ye.optional(),keys:We.array().optional(),names:i.z.string().array().optional(),types:i.z.string().array().optional(),includeState:i.z.boolean().optional(),offset:i.z.number().optional(),limit:i.z.number().optional()}),Qw=i.z.object({tasks:X(pr)}),em="/hardware/task/retrieve",tm="/hardware/task/create",rm="/hardware/task/delete",nm="/hardware/task/copy",sm=i.z.object({tasks:ec.array()}),im=i.z.object({tasks:pr.array()}),am=i.z.object({keys:We.array()}),om=i.z.object({}),cm=i.z.object({key:We,name:i.z.string(),snapshot:i.z.boolean()}),lm=i.z.object({task:pr});let Gc=class{constructor(e,t,n,s){l(this,"type",an);l(this,"client");l(this,"frameClient");l(this,"ontologyClient");l(this,"rangeClient");this.client=e,this.frameClient=t,this.ontologyClient=n,this.rangeClient=s}async create(e){const t=!Array.isArray(e),n=await m(this.client,tm,{tasks:b(e)},sm,im),s=this.sugar(n.tasks);return t?s[0]:s}async delete(e){await m(this.client,rm,{keys:b(e)},am,om)}async search(e){return await this.execRetrieve({keys:[e]})}async page(e,t){return await this.execRetrieve({offset:e,limit:t})}async list(e={}){return this.sugar(await this.execRetrieve(e))}async retrieve(e,t){const{single:n,normalized:s,variant:a}=ai(e,{number:"rack",string:"keys"},{convertNumericStrings:!1}),o={...t};a==="rack"?o.rack=e:o.keys=s;const c=await this.execRetrieve(o),h=this.sugar(c);return n&&a!=="rack"?h[0]:h}async copy(e,t,n){const s=await m(this.client,nm,{key:e,name:t,snapshot:n},cm,lm);return this.sugar([s.task])[0]}async retrieveByName(e,t){const n=await this.execRetrieve({names:[e],rack:t});return yn("Task",e,n,!0),this.sugar(n)[0]}async retrieveByType(e,t){const n=await this.execRetrieve({types:[e],rack:t});return this.sugar(n)}async retrieveSnapshottedTo(e){if(this.ontologyClient==null)throw lt;return await Wc(e,this.ontologyClient)}async execRetrieve(e){return(await m(this.client,em,e,Xw,Qw)).tasks}sugar(e){const t=!Array.isArray(e),n=b(e).map(({key:s,name:a,type:o,config:c,state:h,internal:d,snapshot:f})=>new Vc(s,a,o,c,d,f,h,this.frameClient,this.ontologyClient,this.rangeClient));return t?n[0]:n}async openTracker(){return await nt(this.frameClient,Kw,Jw,(e,t)=>Array.from(t).map(n=>({variant:e,key:n.toString(),value:n.toString()})))}async openStateObserver(){return new Ae(await this.frameClient.openStreamer(Qt),e=>{const t=e.get(Qt);if(t.length===0)return[null,!1];const n=ir.safeParse(t.at(-1));return n.success?[n.data,!0]:(console.error(n.error),[null,!1])})}async openCommandObserver(){return new Ae(await this.frameClient.openStreamer(ut),e=>{const t=e.get(ut);if(t.length===0)return[null,!1];const n=Ys.safeParse(t.at(-1));return n.success?[n.data,!0]:(console.error(n.error),[null,!1])})}};const Hc=r=>new E({type:an,key:r}),hm=Object.freeze(Object.defineProperty({__proto__:null,Client:Gc,ONTOLOGY_TYPE:an,Task:Vc,commandZ:Ys,getRackKey:Tg,keyZ:We,newZ:ec,ontologyID:Hc,stateZ:ir,statusZ:Qo,taskZ:pr},Symbol.toStringTag,{value:"Module"})),um=i.z.object({keys:et.array().optional(),for:ie.optional(),search:i.z.string().optional(),offset:i.z.number().optional(),limit:i.z.number().optional()}),dm=i.z.object({labels:X(wr)}),Wr=class Wr{constructor(e){l(this,"client");this.client=e}async retrieve(e){return await this.execute({keys:b(e)})}async retrieveFor(e){return await this.execute({for:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){const[t,n]=await this.client.send(Wr.ENDPOINT,e,um,dm);if(n!=null)throw n;return t.labels}};l(Wr,"ENDPOINT","/label/retrieve");let Fr=Wr;const Kc=wr.extend({key:et.optional()}),fm=i.z.object({labels:Kc.array()}),ym=i.z.object({labels:wr.array()}),gm=i.z.object({keys:et.array()}),Jc=i.z.object({id:ie,labels:et.array(),replace:i.z.boolean().optional()}),pm=Jc.omit({replace:!0}),jn=i.z.object({}),wm="/label/create",mm="/label/delete",bm="/label/set",vm="/label/remove";let Xc=class{constructor(e){l(this,"client");this.client=e}async create(e){return(await m(this.client,wm,{labels:b(e)},fm,ym)).labels}async delete(e){await m(this.client,mm,{keys:b(e)},gm,jn)}async set(e,t,{replace:n}={}){await m(this.client,bm,{id:e,labels:t,replace:n},Jc,jn)}async remove(e,t){await m(this.client,vm,{id:e,labels:t},pm,jn)}};const Tm="sy_label_set",Om="sy_label_delete";let Qc=class{constructor(e,t,n){l(this,"type","label");l(this,"retriever");l(this,"writer");l(this,"frameClient");l(this,"ontology");this.writer=new Xc(e),this.retriever=new Fr(e),this.frameClient=t,this.ontology=n}async search(e){return await this.retriever.search(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async retrieveFor(e){return await this.retriever.retrieveFor(new E(e))}async label(e,t,n={}){await this.writer.set(new E(e),t,n)}async removeLabels(e,t){await this.writer.remove(new E(e),t)}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async openChangeTracker(){return await nt(this.frameClient,Tm,Om,Sm)}async trackLabelsOf(e){const t=new He.Observer,n=(await this.retrieveFor(e)).map(a=>({id:el(a.key),key:a.key,name:a.name,data:a}));return(await this.ontology.openDependentTracker({target:new E(e),dependents:n,relationshipType:"labeled_by"})).onChange(a=>t.notify(a.map(o=>{var c,h;return{key:o.id.key,color:(c=o.data)==null?void 0:c.color,name:(h=o.data)==null?void 0:h.name}}))),t}};const Sm=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(wr).map(t=>({variant:r,key:t.key,value:t})),el=r=>new E({type:Ws,key:r}),Em=Object.freeze(Object.defineProperty({__proto__:null,Client:Qc,ONTOLOGY_TYPE:Ws,Retriever:Fr,Writer:Xc,keyZ:et,labelZ:wr,newZ:Kc,ontologyID:el},Symbol.toStringTag,{value:"Module"})),zm="sy_range_alias_set",Nm="sy_range_alias_delete",Im=i.z.object({range:ae,aliases:i.z.string().array()}),$m=i.z.object({aliases:i.z.record(i.z.string(),Q)}),xm=i.z.object({range:ae,aliases:i.z.record(Q.or(i.z.string()),i.z.string())}),km=i.z.unknown(),Am=i.z.object({range:ae,channels:Q.array()}),Um=i.z.unknown(),Cm=i.z.object({range:ae}),Rm=i.z.object({aliases:i.z.record(i.z.string(),i.z.string())}),be=class be{constructor(e,t,n){l(this,"frameClient");l(this,"cache",new Map);l(this,"client");l(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",s={};if(n){const o=this.cache.get(e);if(o!=null)return o;t.push(e)}else e.forEach(o=>{const c=this.cache.get(o);c!=null?s[o]=c:t.push(o)});if(t.length===0)return s;const a=await m(this.client,be.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},Im,$m);return Object.entries(a.aliases).forEach(([o,c])=>this.cache.set(o,c)),n?a.aliases[t[0]]:{...s,...a.aliases}}async set(e){await m(this.client,be.SET_ENDPOINT,{range:this.rangeKey,aliases:e},xm,km)}async list(){return(await m(this.client,be.LIST_ENDPOINT,{range:this.rangeKey},Cm,Rm)).aliases}async delete(e){await m(this.client,be.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},Am,Um)}async openChangeTracker(){return await nt(this.frameClient,zm,Nm,Dm(this.rangeKey))}};l(be,"SET_ENDPOINT","/range/alias/set"),l(be,"RESOLVE_ENDPOINT","/range/alias/resolve"),l(be,"LIST_ENDPOINT","/range/alias/list"),l(be,"DELETE_ENDPOINT","/range/alias/delete");let Ss=be;const Bm=i.z.object({range:ae,channel:Q,alias:i.z.string()}),Pm="---",Dm=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(Pm)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(Bm).map(n=>({variant:e,key:n.alias,value:n})),di=i.z.object({range:ae,key:i.z.string(),value:i.z.string()}),Mm=i.z.object({range:ae,keys:i.z.string().array()}),jm=i.z.object({pairs:X(di)}),Lm=i.z.object({range:ae,pairs:di.array()}),_m=i.z.object({range:ae,keys:i.z.string().array()}),Le=class Le{constructor(e,t,n){l(this,"rangeKey");l(this,"client");l(this,"frameClient");this.rangeKey=e,this.client=t,this.frameClient=n}async get(e){const t=await m(this.client,Le.GET_ENDPOINT,{range:this.rangeKey,keys:b(e)},Mm,jm);return typeof e=="string"?t.pairs[0].value:Object.fromEntries(t.pairs.map(n=>[n.key,n.value]))}async list(){return this.get([])}async set(e,t=""){let n;Hr(e)?n=Object.entries(e).map(([s,a])=>({range:this.rangeKey,key:s,value:a})):n=[{range:this.rangeKey,key:e,value:t}],await m(this.client,Le.SET_ENDPOINT,{range:this.rangeKey,pairs:n},Lm,i.z.unknown())}async delete(e){await m(this.client,Le.DELETE_ENDPOINT,{range:this.rangeKey,keys:b(e)},_m,i.z.unknown())}async openTracker(){return await nt(this.frameClient,"sy_range_kv_set","sy_range_kv_delete",(e,t)=>e==="delete"?t.toStrings().map(n=>{const[s,a]=n.split("<--->",2);return{variant:e,key:n,value:{range:s,key:a,value:""}}}):t.parseJSON(di).map(n=>({variant:e,key:`${n.range}${n.key}`,value:n})))}};l(Le,"GET_ENDPOINT","/range/kv/get"),l(Le,"SET_ENDPOINT","/range/kv/set"),l(Le,"DELETE_ENDPOINT","/range/kv/delete");let lr=Le;class tl{constructor(e,t=q.ZERO,n,s,a,o,c,h,d,f,u){l(this,"key");l(this,"name");l(this,"kv");l(this,"timeRange");l(this,"color");l(this,"channels");l(this,"aliaser");l(this,"frameClient");l(this,"labelClient");l(this,"ontologyClient");l(this,"rangeClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=a,this.color=s,this.kv=o,this.aliaser=c,this.channels=h,this.labelClient=d,this.ontologyClient=f,this.rangeClient=u}get ontologyID(){return je(this.key)}get payload(){return{key:this.key,name:this.name,timeRange:this.timeRange,color:this.color}}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new ke(`Channel ${e} does not exist`);await this.aliaser.set({[n[0].key]:t})}async deleteAlias(...e){await this.aliaser.delete(e)}async listAliases(){return await this.aliaser.list()}async resolveAlias(e){return await this.aliaser.resolve(e)}async openAliasTracker(){return await this.aliaser.openChangeTracker()}async retrieveParent(){return this.rangeClient.retrieveParent(this.key)}async retrieveChildren(){const e=(await this.ontologyClient.retrieveChildren(this.ontologyID,{excludeFieldData:!0,types:["range"]})).map(t=>t.id.key);return await this.rangeClient.retrieve(e)}async read(e){return await this.frameClient.read(this.timeRange,e)}async labels(){return await this.labelClient.retrieveFor(je(this.key))}async addLabel(...e){await this.labelClient.label(je(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(je(this.key),e)}async openChildRangeTracker(){const e=new He.Observer,t=(await this.retrieveChildren()).map(s=>{const a=je(s.key);return{id:a,key:a.toString(),name:s.name,data:s.payload}}),n=await this.ontologyClient.openDependentTracker({target:this.ontologyID,dependents:t,resourceType:"range"});return n.onChange(s=>e.notify(this.rangeClient.resourcesToRanges(s))),e.setCloser(async()=>await n.close()),e}async openParentRangeTracker(){const e=new He.Observer,t=await this.retrieveParent();if(t==null)return null;const n=je(t.key),s={id:n,key:n.toString(),name:t.name,data:t.payload},a=await this.ontologyClient.openDependentTracker({target:this.ontologyID,dependents:[s],relationshipDirection:"to"});return a.onChange(o=>{const c=this.rangeClient.resourcesToRanges(o);if(c.length===0)return;const h=c[0];e.notify(h)}),e.setCloser(async()=>await a.close()),e}}const Zm=(r,e)=>Ff(r.timeRange,e.timeRange),qm=i.z.object({keys:ae.array().optional(),names:i.z.array(i.z.string()).optional(),term:i.z.string().optional(),overlapsWith:q.z.optional(),limit:i.z.number().int().optional(),offset:i.z.number().int().optional(),hasLabels:et.array().optional()}),Fm="/range/retrieve",Ym=i.z.object({ranges:X(mr)});let rl=class{constructor(e,t,n,s,a,o){l(this,"type","range");l(this,"frameClient");l(this,"writer");l(this,"unaryClient");l(this,"channels");l(this,"labelClient");l(this,"ontologyClient");this.frameClient=e,this.writer=t,this.unaryClient=n,this.channels=s,this.labelClient=a,this.ontologyClient=o}async create(e,t){const n=!Array.isArray(e),s=this.sugarMany(await this.writer.create(b(e),t));return n?s[0]:s}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(b(e))}async search(e){return this.sugarMany(await this.execRetrieve({term:e}))}async page(e,t){return this.sugarMany(await this.execRetrieve({offset:e,limit:t}))}async retrieve(e){if(typeof e=="object"&&"start"in e)return await this.execRetrieve({overlapsWith:new q(e)});const{single:t,actual:n,variant:s,normalized:a,empty:o}=rc(e);if(o)return[];const c=await this.execRetrieve({[s]:a});if(!t)return c;if(c.length===0)throw new Je(`range matching ${n} not found`);if(c.length>1)throw new Xe(`multiple ranges matching ${n} found`);return c[0]}getKV(e){return new lr(e,this.unaryClient,this.frameClient)}async execRetrieve(e){const{ranges:t}=await m(this.unaryClient,Fm,e,qm,Ym);return this.sugarMany(t)}async retrieveParent(e){const t=await this.ontologyClient.retrieveParents(je(e));if(t.length===0)return null;const n=t[0];return n.id.type!=="range"?null:await this.retrieve(n.id.key)}sugarOne(e){return new tl(e.name,e.timeRange,e.key,e.color,this.frameClient,new lr(e.key,this.unaryClient,this.frameClient),new Ss(e.key,this.frameClient,this.unaryClient),this.channels,this.labelClient,this.ontologyClient,this)}sugarMany(e){return e.map(t=>this.sugarOne(t))}async openTracker(){return await nt(this.frameClient,"sy_range_set","sy_range_delete",(e,t)=>e==="delete"?t.toUUIDs().map(s=>({variant:e,key:s,value:void 0})):this.sugarMany(t.parseJSON(mr)).map(s=>({variant:e,key:s.key,value:s})))}resourcesToRanges(e){return e.map(t=>this.resourceToRange(t))}resourceToRange(e){var t,n,s;return this.sugarOne({key:e.id.key,name:(t=e.data)==null?void 0:t.name,timeRange:new q((n=e.data)==null?void 0:n.timeRange),color:(s=e.data)==null?void 0:s.color})}};const je=r=>new E({type:Gs,key:r}),Wm=r=>new E({type:Hs,key:r}),Vm=i.z.object({ranges:mr.array()}),Gm=i.z.object({parent:ie.optional(),ranges:tc.array()}),Hm=i.z.object({keys:ae.array()}),Km=i.z.object({}),Jm=i.z.object({key:ae,name:Vs}),Xm=i.z.object({}),Qm="/range/create",eb="/range/delete",tb="/range/rename";class nl{constructor(e){l(this,"client");this.client=e}async rename(e,t){await m(this.client,tb,{key:e,name:t},Jm,Xm)}async create(e,t){return(await m(this.client,Qm,{ranges:e,...t},Gm,Vm)).ranges}async delete(e){await m(this.client,eb,{keys:e},Hm,Km)}}const rb=Object.freeze(Object.defineProperty({__proto__:null,ALIAS_ONTOLOGY_TYPE:Hs,Client:rl,KV:lr,ONTOLOGY_TYPE:Gs,Range:tl,Writer:nl,aliasOntologyID:Wm,analyzeParams:rc,keyZ:ae,nameZ:Vs,newZ:tc,ontologyID:je,payloadZ:mr,sort:Zm},Symbol.toStringTag,{value:"Module"})),nb="/api/v1/";class sb{constructor(e,t={},n=!1){l(this,"url");l(this,"unary");l(this,"stream");l(this,"secure");this.secure=n,this.url=e.child(nb);const s=new Qe.JSONCodec;this.unary=ed(new Qu(this.url,s,this.secure),t),this.stream=new ad(this.url,s,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const ib="/workspace/lineplot/retrieve",ab="/workspace/lineplot/create",ob="/workspace/lineplot/rename",cb="/workspace/lineplot/set-data",lb="/workspace/lineplot/delete",hb=i.z.object({keys:Nt.array()}),ub=i.z.object({workspace:Ee,linePlots:sc.array()}),db=i.z.object({key:Nt,name:i.z.string()}),fb=i.z.object({key:Nt,data:i.z.string()}),yb=i.z.object({keys:Nt.array()}),gb=i.z.object({linePlots:X(on)}),pb=i.z.object({linePlots:on.array()}),Ln=i.z.object({});let sl=class{constructor(e){l(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),s=await m(this.client,ab,{workspace:e,linePlots:b(t)},ub,pb);return n?s.linePlots:s.linePlots[0]}async rename(e,t){await m(this.client,ob,{key:e,name:t},db,Ln)}async setData(e,t){await m(this.client,cb,{key:e,data:JSON.stringify(t)},fb,Ln)}async retrieve(e){const t=Array.isArray(e),n=await m(this.client,ib,{keys:b(e)},hb,gb);return t?n.linePlots:n.linePlots[0]}async delete(e){await m(this.client,lb,{keys:b(e)},yb,Ln)}};const wb=r=>new E({type:Js,key:r}),mb=Object.freeze(Object.defineProperty({__proto__:null,Client:sl,ONTOLOGY_TYPE:Js,keyZ:Nt,linePlotZ:on,newZ:sc,ontologyID:wb},Symbol.toStringTag,{value:"Module"})),bb="/workspace/log/retrieve",vb="/workspace/log/create",Tb="/workspace/log/rename",Ob="/workspace/log/set-data",Sb="/workspace/log/delete",Eb=i.z.object({keys:It.array()}),zb=i.z.object({workspace:Ee,logs:ic.array()}),Nb=i.z.object({key:It,name:i.z.string()}),Ib=i.z.object({key:It,data:i.z.string()}),$b=i.z.object({keys:It.array()}),xb=i.z.object({logs:cn.array()}),kb=i.z.object({logs:cn.array()}),_n=i.z.object({});let il=class{constructor(e){l(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),s=await m(this.client,vb,{workspace:e,logs:b(t)},zb,kb);return n?s.logs:s.logs[0]}async rename(e,t){await m(this.client,Tb,{key:e,name:t},Nb,_n)}async setData(e,t){await m(this.client,Ob,{key:e,data:JSON.stringify(t)},Ib,_n)}async retrieve(e){const t=Array.isArray(e),n=await m(this.client,bb,{keys:b(e)},Eb,xb);return t?n.logs:n.logs[0]}async delete(e){await m(this.client,Sb,{keys:b(e)},$b,_n)}};const Ab=r=>new E({type:Xs,key:r}),Ub=Object.freeze(Object.defineProperty({__proto__:null,Client:il,ONTOLOGY_TYPE:Xs,keyZ:It,logZ:cn,newZ:ic,ontologyID:Ab},Symbol.toStringTag,{value:"Module"})),Cb="/workspace/schematic/retrieve",Rb="/workspace/schematic/create",Bb="/workspace/schematic/rename",Pb="/workspace/schematic/set-data",Db="/workspace/schematic/delete",Mb="/workspace/schematic/copy",jb=i.z.object({keys:rt.array()}),Lb=i.z.object({workspace:Ee,schematics:cc.array()}),_b=i.z.object({key:rt,name:i.z.string()}),Zb=i.z.object({key:rt,data:i.z.string()}),qb=i.z.object({keys:rt.array()}),Fb=i.z.object({key:rt,name:i.z.string(),snapshot:i.z.boolean()}),Yb=i.z.object({schematics:X(Qs)}),Wb=i.z.object({schematics:Qs.array()}),Vb=i.z.object({schematic:un}),Zn=i.z.object({});let al=class{constructor(e){l(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),s=await m(this.client,Rb,{workspace:e,schematics:b(t)},Lb,Wb);return n?s.schematics:s.schematics[0]}async rename(e,t){await m(this.client,Bb,{key:e,name:t},_b,Zn)}async setData(e,t){await m(this.client,Pb,{key:e,data:JSON.stringify(t)},Zb,Zn)}async retrieve(e){const t=Array.isArray(e),n=await m(this.client,Cb,{keys:b(e)},jb,Yb);return t?n.schematics:n.schematics[0]}async delete(e){await m(this.client,Db,{keys:b(e)},qb,Zn)}async copy(e,t,n){return(await m(this.client,Mb,{key:e,name:t,snapshot:n},Fb,Vb)).schematic}};const Gb=r=>new E({type:ei,key:r}),Hb=Object.freeze(Object.defineProperty({__proto__:null,Client:al,ONTOLOGY_TYPE:ei,keyZ:rt,newZ:cc,ontologyID:Gb,remoteZ:Qs,schematicZ:un},Symbol.toStringTag,{value:"Module"})),Kb="/workspace/table/retrieve",Jb="/workspace/table/create",Xb="/workspace/table/rename",Qb="/workspace/table/set-data",ev="/workspace/table/delete",tv=i.z.object({keys:$t.array()}),rv=i.z.object({workspace:Ee,tables:lc.array()}),nv=i.z.object({key:$t,name:i.z.string()}),sv=i.z.object({key:$t,data:i.z.string()}),iv=i.z.object({keys:$t.array()}),av=i.z.object({tables:ri.array()}),ov=i.z.object({tables:ri.array()}),qn=i.z.object({});let ol=class{constructor(e){l(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),s=await m(this.client,Jb,{workspace:e,tables:b(t)},rv,ov);return n?s.tables:s.tables[0]}async rename(e,t){await m(this.client,Xb,{key:e,name:t},nv,qn)}async setData(e,t){await m(this.client,Qb,{key:e,data:JSON.stringify(t)},sv,qn)}async retrieve(e){const t=Array.isArray(e),n=await m(this.client,Kb,{keys:b(e)},tv,av);return t?n.tables:n.tables[0]}async delete(e){await m(this.client,ev,{keys:b(e)},iv,qn)}};const cv=r=>new E({type:ni,key:r}),lv=Object.freeze(Object.defineProperty({__proto__:null,Client:ol,ONTOLOGY_TYPE:ni,keyZ:$t,newZ:lc,ontologyID:cv,remoteZ:ri,tableZ:ti},Symbol.toStringTag,{value:"Module"})),Ar="/workspace/retrieve",hv="/workspace/create",uv="/workspace/rename",dv="/workspace/set-layout",fv="/workspace/delete",Ur=i.z.object({keys:Ee.array().optional(),search:i.z.string().optional(),author:tt.optional(),offset:i.z.number().optional(),limit:i.z.number().optional()}),yv=i.z.object({workspaces:ac.array()}),gv=i.z.object({key:Ee,name:i.z.string()}),pv=i.z.object({key:Ee,layout:i.z.string()}),wv=i.z.object({keys:Ee.array()}),Cr=i.z.object({workspaces:X(ln)}),mv=i.z.object({workspaces:oc.array()}),Fn=i.z.object({});class cl{constructor(e){l(this,"type",hn);l(this,"schematic");l(this,"linePlot");l(this,"log");l(this,"table");l(this,"client");this.client=e,this.schematic=new al(e),this.linePlot=new sl(e),this.log=new il(e),this.table=new ol(e)}async create(e){const t=Array.isArray(e),n=await m(this.client,hv,{workspaces:b(e)},yv,mv);return t?n.workspaces:n.workspaces[0]}async rename(e,t){await m(this.client,uv,{key:e,name:t},gv,Fn)}async setLayout(e,t){await m(this.client,dv,{key:e,layout:JSON.stringify(t)},pv,Fn)}async retrieve(e){const t=Array.isArray(e),n=await m(this.client,Ar,{keys:b(e)},Ur,Cr);return t?n.workspaces:n.workspaces[0]}async retrieveByAuthor(e){return(await m(this.client,Ar,{author:e},Ur,Cr)).workspaces}async search(e){return(await m(this.client,Ar,{search:e},Ur,Cr)).workspaces}async page(e,t){return(await m(this.client,Ar,{offset:e,limit:t},Ur,Cr)).workspaces}async delete(e){await m(this.client,fv,{keys:b(e)},wv,Fn)}}const bv=r=>new E({type:hn,key:r}),vv=Object.freeze(Object.defineProperty({__proto__:null,Client:cl,ONTOLOGY_TYPE:hn,keyZ:Ee,newZ:ac,ontologyID:bv,remoteZ:oc,workspaceZ:ln},Symbol.toStringTag,{value:"Module"})),ll=i.z.object({host:i.z.string({error:"Host is required"}).min(1,"Host is required"),port:i.z.number({error:"Port is required"}).or(i.z.string({error:"Port is required"})),username:i.z.string().min(1,"Username is required"),password:i.z.string().min(1,"Password is required"),connectivityPollFrequency:O.z.default(O.seconds(30)),secure:i.z.boolean().optional().default(!1),name:i.z.string().optional(),retry:Do.breakerConfig.optional()});class hl extends jc{constructor(t){const n=ll.parse(t),{host:s,port:a,username:o,password:c,connectivityPollFrequency:h,secure:d,retry:f}=n,u=new sb(new yy({host:s,port:Number(a)}),f,d);u.use(bg);let N;o!=null&&c!=null&&(N=new Hp(u.unary,{username:o,password:c}),u.use(N.middleware()));const S=new oi(new ar(u.unary)),j=new $c(u.unary,S);super(u.stream,u.unary,S);l(this,"createdAt");l(this,"props");l(this,"ranges");l(this,"channels");l(this,"auth");l(this,"user");l(this,"access");l(this,"connectivity");l(this,"ontology");l(this,"workspaces");l(this,"labels");l(this,"hardware");l(this,"control");l(this,"transport");l(this,"clientVersion","0.42.0");this.createdAt=z.now(),this.props=n,this.auth=N,this.transport=u,this.channels=new zc(this,S,u.unary,j),this.connectivity=new cr(u.unary,h,this.clientVersion,n.name),this.control=new _c(this),this.ontology=new mc(u.unary,this);const U=new nl(this.transport.unary);this.labels=new Qc(this.transport.unary,this,this.ontology),this.ranges=new rl(this,U,this.transport.unary,S,this.labels,this.ontology),this.access=new Tc(this.transport.unary),this.user=new xc(this.transport.unary),this.workspaces=new cl(this.transport.unary);const ee=new qc(this.transport.unary,this),A=new Gc(this.transport.unary,this,this.ontology,this.ranges),st=new Fc(this.transport.unary,A,this);this.hardware=new Zc(A,st,ee)}get key(){return this.createdAt.valueOf().toString()}close(){this.connectivity.stopChecking()}}l(hl,"connectivity",cr);exports.AuthError=sr;exports.Channel=ci;exports.ContiguityError=pg;exports.DataType=x;exports.Density=ne;exports.Frame=V;exports.MultiSeries=Ro;exports.MultipleFoundError=Xe;exports.NotFoundError=Je;exports.QueryError=ke;exports.Rate=cs;exports.RouteError=ms;exports.Series=_e;exports.Synnax=hl;exports.TimeRange=q;exports.TimeSpan=O;exports.TimeStamp=z;exports.UnexpectedError=mt;exports.ValidationError=F;exports.access=tp;exports.channel=Op;exports.connection=Jp;exports.control=$w;exports.device=_w;exports.framer=Ow;exports.group=Ag;exports.hardware=xw;exports.isCalculated=or;exports.label=Em;exports.linePlot=mb;exports.log=Ub;exports.ontology=Lg;exports.policy=ep;exports.rack=Hw;exports.ranger=rb;exports.schematic=Hb;exports.signals=kw;exports.synnaxPropsZ=ll;exports.table=lv;exports.task=hm;exports.user=_p;exports.workspace=vv;