@synnaxlabs/client 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +6 -6
- package/dist/client.cjs +26 -26
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2392 -2358
- package/dist/control/state.d.ts.map +1 -1
- package/dist/framer/deleter.d.ts.map +1 -1
- package/dist/framer/frame.d.ts.map +1 -1
- package/dist/framer/writer.d.ts.map +1 -1
- package/dist/hardware/device/client.d.ts +20 -7
- package/dist/hardware/device/client.d.ts.map +1 -1
- package/dist/hardware/device/payload.d.ts +64 -1
- package/dist/hardware/device/payload.d.ts.map +1 -1
- package/dist/hardware/rack/client.d.ts +12 -5
- package/dist/hardware/rack/client.d.ts.map +1 -1
- package/dist/hardware/rack/payload.d.ts +109 -0
- package/dist/hardware/rack/payload.d.ts.map +1 -1
- package/dist/hardware/task/payload.d.ts +1 -1
- package/dist/ranger/client.d.ts +3 -0
- package/dist/ranger/client.d.ts.map +1 -1
- package/dist/ranger/payload.d.ts.map +1 -1
- package/dist/ranger/writer.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/client.ts +1 -1
- package/src/control/state.spec.ts +1 -2
- package/src/framer/streamer.spec.ts +0 -9
- package/src/hardware/device/client.ts +42 -10
- package/src/hardware/device/device.spec.ts +109 -1
- package/src/hardware/device/payload.ts +15 -1
- package/src/hardware/rack/client.ts +48 -8
- package/src/hardware/rack/payload.ts +16 -1
- package/src/hardware/rack/rack.spec.ts +36 -0
- package/src/hardware/task/task.spec.ts +8 -5
- package/src/ranger/client.ts +3 -2
package/dist/client.cjs
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`)}decodeString(
|
|
3
|
-
`).map(o=>o.trim());if(t.length===0)return e!=null?e.parse({}):{};const i=t.split(",").map(o=>o.trim()),a={};return i.forEach(o=>{a[o]=[]}),n.forEach(o=>{const l=o.split(",").map(u=>u.trim());i.forEach((u,h)=>{const f=this.parseValue(l[h]);f!=null&&a[u].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(){}},Vo=class{constructor(){Dt(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 yr=new Fo;new Go;new Vo;const Jo=r=>r!=null&&typeof r=="object"&&"toString"in r,Ko=(r,e=!1)=>{const t=Jo(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?Ho(n):n},Ho=r=>(e,t)=>r(t,e),Pr=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const Ei=s.z.object({width:s.z.number(),height:s.z.number()}),Xo=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),Qo=["width","height"];s.z.enum(Qo);const ec=["start","center","end"],tc=["signedWidth","signedHeight"];s.z.enum(tc);const Er=s.z.object({x:s.z.number(),y:s.z.number()}),rc=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),nc=["x","y"],zi=s.z.enum(nc),Si=["top","right","bottom","left"];s.z.enum(Si);const sc=["left","right"],Ii=s.z.enum(sc),ic=["top","bottom"],$i=s.z.enum(ic),ki=["center"],zs=s.z.enum(ki),ac=[...Si,...ki],Ai=s.z.enum(ac);s.z.enum(ec);const oc=["first","last"];s.z.enum(oc);const cc=s.z.object({lower:s.z.number(),upper:s.z.number()}),lc=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([cc,Pr]);s.z.union([lc,Pr]);s.z.enum([...zi.options,...Ai.options]);s.z.union([zi,Ai,s.z.instanceof(String)]);const uc=r=>typeof r=="bigint"||r instanceof BigInt,_e=(r,e)=>uc(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),De=(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 Ss(r);return Ss(t)},Ss=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Is=(r,e)=>{const t=De(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e};s.z.object({x:Ii.or(zs),y:$i.or(zs)});const hc=s.z.object({x:Ii,y:$i}),dc=Object.freeze({x:"left",y:"top"}),fc=(r,e)=>r.x===e.x&&r.y===e.y,$s=s.z.union([s.z.number(),Er,Pr,Ei,Xo,rc]),yc=(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}},ks=Object.freeze({x:0,y:0}),cr=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:cr,left:cr,width:cr,height:cr});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Er,two:Er,root:hc});const Gn=(r,e,t=0,n=0,i)=>{const a={one:{...ks},two:{...ks},root:i??dc};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}},pc=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,gc=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([Ei,gc,Er,Pr]);var mc=Object.defineProperty,wc=(r,e,t)=>e in r?mc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,be=(r,e,t)=>wc(r,typeof e!="symbol"?e+"":e,t);const bc=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:$s,scale:$s});s.z.object({offset:s.z.number(),scale:s.z.number()});const Tc=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],vc=r=>(e,t,n,i)=>[e,i?n/r:n*r],Oc=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]},Nc=r=>(e,t,n)=>[r,n],Ec=()=>(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)]},zc=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=bc(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=Tc(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=vc(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=De(e,t),i=this.new(),a=Oc(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=De(e,t),i=this.new(),a=zc(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=De(e,t),i=this.new(),a=Nc(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=Ec();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 As=kn;const xs=class me{constructor(e=new As,t=new As,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=yc(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(pc(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!fc(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(xs,"IDENTITY",new xs);var Sc=Object.defineProperty,Ic=(r,e,t)=>e in r?Sc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e,t)=>Ic(r,typeof e!="symbol"?e+"":e,t);let $c=(r,e=21)=>(t=e)=>{let n="",i=t|0;for(;i--;)n+=r[Math.random()*r.length|0];return n};const kc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Ac=$c(kc,11),xc=()=>Ac(),Rc=s.z.enum(["static","dynamic"]),xi=(r,e)=>{const t=new M(e);if(![D.DAY,D.HOUR,D.MINUTE,D.SECOND,D.MILLISECOND,D.MICROSECOND,D.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 D(n)},R=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 D(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(D.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(D.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(D.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(D.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(T.MILLISECOND.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 xi(this,e)}get isToday(){return this.truncate(D.DAY).equals(T.now().truncate(D.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(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 M=R;const C=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 Rs?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 Rs?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 xi(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(_e(e,1e3))}static milliseconds(e=1){return E.microseconds(_e(e,1e3))}static seconds(e=1){return E.milliseconds(_e(e,1e3))}static minutes(e=1){return E.seconds(_e(e,60))}static hours(e){return E.minutes(_e(e,60))}static days(e){return E.hours(_e(e,24))}};m(C,"NANOSECOND",C.nanoseconds(1)),m(C,"MICROSECOND",C.microseconds(1)),m(C,"MILLISECOND",C.milliseconds(1)),m(C,"SECOND",C.seconds(1)),m(C,"MINUTE",C.minutes(1)),m(C,"HOUR",C.hours(1)),m(C,"DAY",C.days(1)),m(C,"MAX",new C((1n<<63n)-1n)),m(C,"MIN",new C(0)),m(C,"ZERO",new C(0)),m(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 D=C;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 D.seconds(1/this.valueOf())}sampleCount(e){return new D(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new ee(t).valueOf()}span(e){return D.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 Rs=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 gr{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 D(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 gr(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=D.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 D(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 gr?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new gr(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 p=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(p,"UNKNOWN",new p("unknown")),m(p,"FLOAT64",new p("float64")),m(p,"FLOAT32",new p("float32")),m(p,"INT64",new p("int64")),m(p,"INT32",new p("int32")),m(p,"INT16",new p("int16")),m(p,"INT8",new p("int8")),m(p,"UINT64",new p("uint64")),m(p,"UINT32",new p("uint32")),m(p,"UINT16",new p("uint16")),m(p,"UINT8",new p("uint8")),m(p,"BOOLEAN",p.UINT8),m(p,"TIMESTAMP",new p("timestamp")),m(p,"UUID",new p("uuid")),m(p,"STRING",new p("string")),m(p,"JSON",new p("json")),m(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]])),m(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]])),m(p,"DENSITIES",new Map([[p.UINT8.toString(),ee.BIT8],[p.UINT16.toString(),ee.BIT16],[p.UINT32.toString(),ee.BIT32],[p.UINT64.toString(),ee.BIT64],[p.FLOAT32.toString(),ee.BIT32],[p.FLOAT64.toString(),ee.BIT64],[p.INT8.toString(),ee.BIT8],[p.INT16.toString(),ee.BIT16],[p.INT32.toString(),ee.BIT32],[p.INT64.toString(),ee.BIT64],[p.TIMESTAMP.toString(),ee.BIT64],[p.STRING.toString(),ee.UNKNOWN],[p.JSON.toString(),ee.UNKNOWN],[p.UUID.toString(),ee.BIT128]])),m(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]),m(p,"BIG_INT_TYPES",[p.INT64,p.UINT64,p.TIMESTAMP]),m(p,"z",s.z.union([s.z.string().transform(r=>new p(r)),s.z.instanceof(p)]));let x=p;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 Ri=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof M||r instanceof D||r instanceof Date},Cc=(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),Pc=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof Mc?!0:Ri(r),ze=-1,jc=s.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Dc=s.z.union([s.z.null(),s.z.undefined()]).transform(()=>new Uint8Array().buffer),xn=10,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",ze),m(this,"_refCount",0),m(this,"_cachedLength"),m(this,"_cachedIndexes"),Pc(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:o=0n,key:l=xc()}=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=Ri(u),f=Array.isArray(u);if(t!=null)this.dataType=new x(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=x.STRING;else if(typeof d=="number")this.dataType=x.FLOAT64;else if(typeof d=="bigint")this.dataType=x.INT64;else if(typeof d=="boolean")this.dataType=x.BOOLEAN;else if(d instanceof M||d instanceof Date||d instanceof M)this.dataType=x.TIMESTAMP;else if(typeof d=="object")this.dataType=x.JSON;else throw new Error(`cannot infer data type of ${typeof d} when constructing a Series from a JS array`)}else this.dataType=new x(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 D)&&(d=d.map(S=>new M(S).valueOf())),this.dataType.equals(x.STRING)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.join(`
|
|
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(`
|
|
4
4
|
`)}
|
|
5
|
-
`).buffer):this.dataType.equals(
|
|
5
|
+
`).buffer):this.dataType.equals(D.JSON)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.map(S=>gr.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
|
|
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(`
|
|
8
8
|
`)}
|
|
9
|
-
`);return new le({data:n,dataType:
|
|
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(`
|
|
10
10
|
`)}
|
|
11
|
-
`);return new le({data:n,dataType:
|
|
12
|
-
`).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(
|
|
13
|
-
`).slice(0,-1).map(t=>e.parse(yr.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===ze?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===ze?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]=Cc(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(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()),Et(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()),Et(this._cachedMin,this.sampleOffset))}get bounds(){return De(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(x.STRING)?new TextDecoder().decode(a):Oi(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=Ko(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(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: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!==ze){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=ze}as(e){if(e==="string"){if(!this.dataType.equals(x.STRING))throw new Error(`cannot convert series of type ${this.dataType.toString()} to string`);return this}if(e==="number"){if(!this.dataType.isNumeric)throw new Error(`cannot convert series of type ${this.dataType.toString()} to number`);return this}if(e==="bigint"){if(!this.dataType.equals(x.INT64))throw new Error(`cannot convert series of type ${this.dataType.toString()} to bigint`);return this}throw new Error(`cannot convert series to ${e}`)}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:Bs(this.alignmentBounds.lower),upper:Bs(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 De(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 Bc(this);return this.dataType.equals(x.JSON)?new Zc(e):e}return new Uc(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new Cs(this,e,t??this.length)}subAlignmentIterator(e,t){return new Cs(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:x.z,alignment:s.z.coerce.bigint().optional(),data:s.z.union([jc,Dc,s.z.instanceof(ArrayBuffer),s.z.instanceof(Uint8Array)]),glBufferUsage:Rc.optional().default("static").optional()})),m(zt,"z",zt.crudeZ.transform(r=>new zt(r)));let Mc=zt;class Cs{constructor(e,t,n){m(this,"series"),m(this,"end"),m(this,"index"),this.series=e;const i=De(0,e.length);this.end=Is(i,n),this.index=Is(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 Bc{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 Ps,js;class Zc{constructor(e){m(this,"wrapped"),m(this,Ps,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:yr.decodeString(e.value)}}[(js=Symbol.iterator,Ps=Symbol.toStringTag,js)](){return this}}var Ds,Ms;class Uc{constructor(e){m(this,"series"),m(this,"index"),m(this,Ds,"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)}}[(Ms=Symbol.iterator,Ds=Symbol.toStringTag,Ms)](){return this}}const Bs=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 Ci=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",Lc=Ci(),Pi=["macOS","Windows","Linux"],_c=["macos","windows","linux"],qc={macos:"macOS",windows:"Windows",linux:"Linux"},Yc=s.z.enum(Pi).or(s.z.enum(_c).transform(r=>qc[r])),Wc=()=>{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 Fc=(r={})=>{const{force:e,default:t}=r;return e??on??(on=Wc(),on??t)},ji=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:Pi,RUNTIME:Lc,detect:Ci,getOS:Fc,osZ:Yc},Symbol.toStringTag,{value:"Module"}));var Gc=Object.defineProperty,Vc=(r,e,t)=>e in r?Gc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,St=(r,e,t)=>Vc(r,typeof e!="symbol"?e+"":e,t);const Jc=(...r)=>r.map(Di).join(""),Di=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),Kc=r=>r.endsWith("/")?r.slice(0,-1):r,Hc=(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=Di(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:Jc(this.path,e)})}toString(){return Kc(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};St(Rn,"UNKNOWN",new Rn({host:"unknown",port:0}));let Xc=Rn;const Qc=-128,el=127;s.z.number().int().min(Qc).max(el);const tl=-32768,rl=32767;s.z.number().int().min(tl).max(rl);const nl=-2147483648,sl=2147483647;s.z.number().int().min(nl).max(sl);const il=-9223372036854775808n,al=9223372036854775807n;s.z.bigint().min(il).max(al);const ol=255;s.z.number().int().min(0).max(ol);const cl=65535;s.z.number().int().min(0).max(cl);const ll=4294967295;s.z.number().int().min(0).max(ll);const ul=18446744073709551615n;s.z.bigint().min(0n).max(ul);var hl=Object.defineProperty,dl=(r,e,t)=>e in r?hl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,It=(r,e,t)=>dl(r,typeof e!="symbol"?e+"":e,t);const fl=async r=>await new Promise(e=>setTimeout(e,D.fromMilliseconds(r).milliseconds)),yl=s.z.object({interval:D.z.optional(),maxRetries:s.z.number().optional(),scale:s.z.number().optional()}),pl=(r={})=>{const e=r.sleepFn||fl,t=r.maxRetries??5,n=r.scale??1;let i=0,a=new D(r.interval??D.milliseconds(1));return async()=>i>=t?!1:(await e(a),a=a.mult(n),i++,!0)},gl=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:yl,create:pl},Symbol.toStringTag,{value:"Module"})),ge=class extends Number{};It(ge,"ABSOLUTE",255),It(ge,"MINIMUM",0),It(ge,"BOUNDS",{lower:ge.MINIMUM,upper:ge.ABSOLUTE+1}),It(ge,"z",s.z.union([s.z.instanceof(ge),s.z.number().int().min(0).max(255).transform(r=>new ge(r)),s.z.instanceof(Number).transform(r=>new ge(r))]));s.z.object({name:s.z.string(),key:s.z.string()});const Mi=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(Mi,"MESSAGE","canceled");let ml=Mi;new ml;s.z.string().regex(/^\d+\.\d+\.\d+$/);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 wl=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},Zs="unknown",Us="nil",bl="freighter",Vt=s.z.object({type:s.z.string(),data:s.z.string()});class Tl{constructor(){A(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:Us,data:""};if(wl(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:Zs,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===Us)return null;if(e.type===Zs)return new Ls(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new Ls(e.data)}}const Bi=new Tl,Zi=({encode:r,decode:e})=>Bi.register({encode:r,decode:e}),zr=r=>Bi.decode(r);class Ls extends oe{constructor(){super(...arguments),A(this,"type","unknown")}}const jr="freighter.",mr=class Ui extends oe{constructor(){super("EOF"),A(this,"type",Ui.TYPE)}};A(mr,"TYPE",`${jr}eof`),A(mr,"matches",Q(mr.TYPE));let Re=mr;const wr=class Li extends oe{constructor(){super("StreamClosed"),A(this,"type",Li.TYPE)}};A(wr,"TYPE",`${jr}stream_closed`),A(wr,"matches",Q(wr.TYPE));let lt=wr;const br=class _i extends oe{constructor(e={}){const{message:t="Unreachable",url:n=Xc.UNKNOWN}=e;super(t),A(this,"type",_i.TYPE),A(this,"url"),this.url=n}};A(br,"TYPE",`${jr}unreachable`),A(br,"matches",Q(br.TYPE));let Ce=br;const vl=r=>{if(!r.type.startsWith(bl))return null;if(Re.matches(r))return{type:Re.TYPE,data:"EOF"};if(lt.matches(r))return{type:lt.TYPE,data:"StreamClosed"};if(Ce.matches(r))return{type:Ce.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},Ol=r=>{if(!r.type.startsWith(jr))return null;switch(r.type){case Re.TYPE:return new Re;case lt.TYPE:return new lt;case Ce.TYPE:return new Ce;default:throw new Error(`Unknown error type: ${r.data}`)}};Zi({encode:vl,decode:Ol});let qi=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 Yi="Content-Type",_s=r=>{if(ji.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 Nl extends qi{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=_s(this.endpoint.protocol),new Proxy(this,{get:(i,a,o)=>a==="endpoint"?this.endpoint:Reflect.get(i,a,o)})}get headers(){return{[Yi]: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 _s(h.protocol)(h.target,l)}catch(S){let se=S;return se.message==="Load failed"&&(se=new Ce({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=zr(S);return[f,se]}catch(S){return[f,new Error(`[freighter] - failed to decode error: ${d.statusText}: ${S.message}`)]}});return[a,u]}}const El=(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=gl.create(e);do{const[h,f]=await this.wrapped.send(i,a,o,l);if(f==null||!Ce.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},zl=()=>ji.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Sl=s.z.object({type:s.z.enum(["data","close","open"]),payload:s.z.unknown().optional(),error:s.z.optional(Vt)});class Il{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 zr(e.error)}return null}send(e){if(this.serverClosed!=null)return new Re;if(this.sendClosed)throw new lt;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=zr(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,Sl)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:Rl(e)?Re.TYPE:lt.TYPE,data:""}})}}const $l="freighterctx",kl=1e3,Al=1001,xl=[kl,Al],Rl=r=>xl.includes(r.code),Wi=class Fi extends qi{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=zl();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=Fi.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=Hc({[Yi]:this.encoder.contentType,...t.params},$l);return this.baseUrl.child(e).toString()+n}async wrapSocket(e,t,n){return await new Promise(i=>{e.onopen=()=>{const a=new Il(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(Wi,"MESSAGE_TYPE","arraybuffer");let Cl=Wi;const Gi="all",Vi="create",Ji="delete",Ki="retrieve",Hi="update",Sr=s.z.enum([Gi,Vi,Ji,Ki,Hi]),Pl=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)},Xi=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=Ml(n);const i={},a=t;return Object.keys(a).forEach(o=>{let l=a[o];const u=r(o);n.recursive&&(cn(l)?Ys(l,n.keepTypesOnRecursion)||(l=e(l,n)):n.recursiveInArray&&qs(l)&&(l=[...l].map(h=>{let f=h;return cn(h)?Ys(f,n.keepTypesOnRecursion)||(f=e(h,n)):qs(h)&&(f=e({key:h},n).key),f}))),i[u]=l}),i};return e},Qi=Xi(Pl),jl=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),Dl=Xi(jl),Pn={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},Ml=(r=Pn)=>(r.recursive==null?r=Pn:r.recursiveInArray??(r.recursiveInArray=!1),r),qs=r=>r!=null&&Array.isArray(r),cn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),Ys=(r,e)=>(e||[]).some(t=>r instanceof t),Jn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var Bl=Object.defineProperty,Zl=(r,e,t)=>e in r?Bl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mt=(r,e,t)=>Zl(r,typeof e!="symbol"?e+"":e,t);let ea=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=Qi(n);return t!=null?t.parse(i):i}encodeString(e){const t=Dl(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(){}},ta=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(`
|
|
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
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(){}},ra=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 ct=new ea,Ul=new ta,Ll=new ra,_l=[ct],Jt=Object.freeze(Object.defineProperty({__proto__:null,CSVCodec:ta,CSV_CODEC:Ul,ENCODERS:_l,JSONCodec:ea,JSON_CODEC:ct,TEXT_CODEC:Ll,TextCodec:ra},Symbol.toStringTag,{value:"Module"})),ql=r=>[...new Set(r)],Yl=(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())},Ws=Object.freeze(Object.defineProperty({__proto__:null,by:Yl,unique:ql},Symbol.toStringTag,{value:"Module"})),Wl=r=>r!=null&&typeof r=="object"&&"toString"in r,Fl=(r,e=!1)=>{const t=Wl(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?Gl(n):n},Gl=r=>(e,t)=>r(t,e),Dr=0,ln=-1,un=1,Vl=r=>r<Dr,Jl=r=>r>Dr,Kl=r=>r===Dr,Mr=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const na=s.z.object({width:s.z.number(),height:s.z.number()}),Hl=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),Xl=["width","height"];s.z.enum(Xl);const Ql=["start","center","end"],eu=["signedWidth","signedHeight"];s.z.enum(eu);const Ir=s.z.object({x:s.z.number(),y:s.z.number()}),tu=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),ru=["x","y"],sa=s.z.enum(ru),ia=["top","right","bottom","left"];s.z.enum(ia);const nu=["left","right"],aa=s.z.enum(nu),su=["top","bottom"],oa=s.z.enum(su),ca=["center"],Fs=s.z.enum(ca),iu=[...ia,...ca],la=s.z.enum(iu);s.z.enum(Ql);const au=["first","last"];s.z.enum(au);const ou=s.z.object({lower:s.z.number(),upper:s.z.number()}),cu=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([ou,Mr]);s.z.union([cu,Mr]);s.z.enum([...sa.options,...la.options]);s.z.union([sa,la,s.z.instanceof(String)]);const pt=r=>typeof r=="bigint"||r instanceof BigInt,hn=(r,e)=>pt(r)?r.valueOf()-BigInt(e.valueOf().valueOf()):r.valueOf()-Number(e.valueOf()),lu=(r,e)=>pt(r)?r.valueOf()+BigInt(e.valueOf().valueOf()):r+Number(e.valueOf()),Gs=(r,e)=>pt(r)?r===BigInt(e.valueOf().valueOf()):r===Number(e.valueOf()),uu=(r,e)=>pt(r)?r.valueOf()<BigInt(e.valueOf())?r:BigInt(e.valueOf()):r.valueOf()<Number(e.valueOf())?r:Number(e.valueOf()),hu=r=>pt(r)||r instanceof BigInt?r.valueOf()<0n?-r:r:r.valueOf()<0?-r:r,qe=(r,e)=>pt(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 Vs(r);return Vs(t)},Vs=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Js=(r,e)=>{const t=te(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e},lr=(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},du=(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(;Gs(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=uu(hu(a),h);if(o=lu(o,i>0?f:-f),a=hn(a,i>0?f:-f),Gs(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},fu=(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:aa.or(Fs),y:oa.or(Fs)});const yu=s.z.object({x:aa,y:oa}),pu=Object.freeze({x:"left",y:"top"}),gu=(r,e)=>r.x===e.x&&r.y===e.y,Ks=s.z.union([s.z.number(),Ir,Mr,na,Hl,tu]),mu=(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}},Hs=Object.freeze({x:0,y:0}),ur=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:ur,left:ur,width:ur,height:ur});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Ir,two:Ir,root:yu});const Kn=(r,e,t=0,n=0,i)=>{const a={one:{...Hs},two:{...Hs},root:i??pu};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}},wu=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,bu=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([na,bu,Ir,Mr]);var Tu=Object.defineProperty,vu=(r,e,t)=>e in r?Tu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Te=(r,e,t)=>vu(r,typeof e!="symbol"?e+"":e,t);const Ou=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:Ks,scale:Ks});s.z.object({offset:s.z.number(),scale:s.z.number()});const Nu=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],Eu=r=>(e,t,n,i)=>[e,i?n/r:n*r],zu=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]},Su=r=>(e,t,n)=>[r,n],Iu=()=>(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)]},$u=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=Ou(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=Nu(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Eu(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=te(e,t),i=this.new(),a=zu(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=te(e,t),i=this.new(),a=$u(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=te(e,t),i=this.new(),a=Su(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=Iu();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 Xs=jn;const Qs=class we{constructor(e=new Xs,t=new Xs,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=mu(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(wu(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!gu(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(Qs,"IDENTITY",new Qs);var ku=Object.defineProperty,Au=(r,e,t)=>e in r?ku(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,y=(r,e,t)=>Au(r,typeof e!="symbol"?e+"":e,t);let xu=(r,e=21)=>(t=e)=>{let n="",i=t|0;for(;i--;)n+=r[Math.random()*r.length|0];return n};const Ru="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cu=xu(Ru,11),ua=()=>Cu(),Pu=Object.freeze(Object.defineProperty({__proto__:null,create:ua},Symbol.toStringTag,{value:"Module"})),ju=s.z.enum(["static","dynamic"]),ha=(r,e)=>{const t=new $(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 $?new $(n):new N(n)},P=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 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 ha(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(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 $=P;const j=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 ut?e.period:e instanceof $?new z(e):["number","bigint"].includes(typeof e)?z.seconds(e):new z(e)}static fromMilliseconds(e){return e instanceof z?e:e instanceof ut?e.period:e instanceof $?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 ha(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(qe(e,1e3))}static milliseconds(e=1){return z.microseconds(qe(e,1e3))}static seconds(e=1){return z.milliseconds(qe(e,1e3))}static minutes(e=1){return z.seconds(qe(e,60))}static hours(e){return z.minutes(qe(e,60))}static days(e){return z.hours(qe(e,24))}};y(j,"NANOSECOND",j.nanoseconds(1)),y(j,"MICROSECOND",j.microseconds(1)),y(j,"MILLISECOND",j.milliseconds(1)),y(j,"SECOND",j.seconds(1)),y(j,"MINUTE",j.minutes(1)),y(j,"HOUR",j.hours(1)),y(j,"DAY",j.days(1)),y(j,"MAX",new j((1n<<63n)-1n)),y(j,"MIN",new j(0)),y(j,"ZERO",new j(0)),y(j,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new j(r.value)),s.z.string().transform(r=>new j(BigInt(r))),s.z.instanceof(Number).transform(r=>new j(r)),s.z.number().transform(r=>new j(r)),s.z.instanceof(j)]));let N=j;const At=class Tr extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new Tr(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 Tr(e)}static khz(e){return Tr.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 ut=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 ht(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 vr{constructor(e,t){y(this,"start"),y(this,"end"),typeof e=="object"&&"start"in e?(this.start=new $(e.start),this.end=new $(e.end)):(this.start=new $(e),this.end=new $(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 vr(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=$.max(n.start,e.start),a=$.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 vr?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new vr(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($.MIN,$.MAX)),y(ue,"MIN",new ue($.MAX,$.MIN)),y(ue,"ZERO",new ue($.ZERO,$.ZERO)),y(ue,"z",s.z.union([s.z.object({start:$.z,end:$.z}).transform(r=>new ue(r.start,r.end)),s.z.instanceof(ue)]));let G=ue;const Du=(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,g=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(g,"UNKNOWN",new g("unknown")),y(g,"FLOAT64",new g("float64")),y(g,"FLOAT32",new g("float32")),y(g,"INT64",new g("int64")),y(g,"INT32",new g("int32")),y(g,"INT16",new g("int16")),y(g,"INT8",new g("int8")),y(g,"UINT64",new g("uint64")),y(g,"UINT32",new g("uint32")),y(g,"UINT16",new g("uint16")),y(g,"UINT8",new g("uint8")),y(g,"BOOLEAN",g.UINT8),y(g,"TIMESTAMP",new g("timestamp")),y(g,"UUID",new g("uuid")),y(g,"STRING",new g("string")),y(g,"JSON",new g("json")),y(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]])),y(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]])),y(g,"DENSITIES",new Map([[g.UINT8.toString(),X.BIT8],[g.UINT16.toString(),X.BIT16],[g.UINT32.toString(),X.BIT32],[g.UINT64.toString(),X.BIT64],[g.FLOAT32.toString(),X.BIT32],[g.FLOAT64.toString(),X.BIT64],[g.INT8.toString(),X.BIT8],[g.INT16.toString(),X.BIT16],[g.INT32.toString(),X.BIT32],[g.INT64.toString(),X.BIT64],[g.TIMESTAMP.toString(),X.BIT64],[g.STRING.toString(),X.UNKNOWN],[g.JSON.toString(),X.UNKNOWN],[g.UUID.toString(),X.BIT128]])),y(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]),y(g,"BIG_INT_TYPES",[g.INT64,g.UINT64,g.TIMESTAMP]),y(g,"z",s.z.union([s.z.string().transform(r=>new g(r)),s.z.instanceof(g)]));let I=g;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 ht=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 da=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof $||r instanceof N||r instanceof Date},Mu=(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),Bu=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof ke?!0:da(r),Se=-1,Dn={[Symbol.iterator]:()=>Dn,next:()=>({done:!0,value:void 0})},Zu=s.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),Uu=s.z.union([s.z.null(),s.z.undefined()]).transform(()=>new Uint8Array().buffer),Mn=10,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",Se),y(this,"_refCount",0),y(this,"_cachedLength"),y(this,"_cachedIndexes"),Bu(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:o=0n,key:l=ua()}=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=da(u),f=Array.isArray(u);if(t!=null)this.dataType=new I(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=I.STRING;else if(typeof d=="number")this.dataType=I.FLOAT64;else if(typeof d=="bigint")this.dataType=I.INT64;else if(typeof d=="boolean")this.dataType=I.BOOLEAN;else if(d instanceof $||d instanceof Date||d instanceof $)this.dataType=I.TIMESTAMP;else if(typeof d=="object")this.dataType=I.JSON;else throw new Error(`cannot infer data type of ${typeof d} when constructing a Series from a JS array`)}else this.dataType=new I(u)}if(!f&&!h)this._data=u;else{let d=h?[u]:u;const k=d[0];(k instanceof $||k instanceof Date||k instanceof N)&&(d=d.map(S=>new $(S).valueOf())),this.dataType.equals(I.STRING)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.join(`
|
|
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(`
|
|
16
16
|
`)}
|
|
17
|
-
`).buffer):this.dataType.equals(
|
|
17
|
+
`).buffer):this.dataType.equals($.JSON)?(this._cachedLength=d.length,this._data=new TextEncoder().encode(`${d.map(S=>ut.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
|
|
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(`
|
|
20
20
|
`)}
|
|
21
|
-
`);return new he({data:n,dataType
|
|
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(`
|
|
22
22
|
`)}
|
|
23
|
-
`);return new he({data:n,dataType
|
|
24
|
-
`).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(
|
|
25
|
-
`).slice(0,-1).map(t=>e.parse(ct.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new ht(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 ht(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===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]=Mu(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(I.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(I.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(I.STRING)?new TextDecoder().decode(a):Qi(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=Fl(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(I.FLOAT32)&&!this.dataType.equals(I.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){if(e==="string"){if(!this.dataType.equals(I.STRING))throw new Error(`cannot convert series of type ${this.dataType.toString()} to string`);return this}if(e==="number"){if(!this.dataType.isNumeric)throw new Error(`cannot convert series of type ${this.dataType.toString()} to number`);return this}if(e==="bigint"){if(!this.dataType.equals(I.INT64))throw new Error(`cannot convert series of type ${this.dataType.toString()} to bigint`);return this}throw new Error(`cannot convert series to ${e}`)}get digest(){var e;return{key:this.key,dataType:this.dataType.toString(),sampleOffset:this.sampleOffset,alignment:{lower:oi(this.alignmentBounds.lower),upper:oi(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 Lu(this);return this.dataType.equals(I.JSON)?new _u(e):e}return new qu(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new ei(this,e,t??this.length)}subAlignmentIterator(e,t){return new ei(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:I.z,alignment:s.z.coerce.bigint().optional(),data:s.z.union([Zu,Uu,s.z.instanceof(ArrayBuffer),s.z.instanceof(Uint8Array)]),glBufferUsage:ju.optional().default("static").optional()})),y(Rt,"z",Rt.crudeZ.transform(r=>new Rt(r)));let ke=Rt,ei=class{constructor(e,t,n){y(this,"series"),y(this,"end"),y(this,"index"),this.series=e;const i=te(0,e.length);this.end=Js(i,n),this.index=Js(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 Lu{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 ti,ri;class _u{constructor(e){y(this,"wrapped"),y(this,ti,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:ct.decodeString(e.value)}}[(ri=Symbol.iterator,ti=Symbol.toStringTag,ri)](){return this}}var ni,si;class qu{constructor(e){y(this,"series"),y(this,"index"),y(this,ni,"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)}}[(si=Symbol.iterator,ni=Symbol.toStringTag,si)](){return this}}class fa{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){if(!new I(e).equals(this.dataType))throw new Error(`cannot convert series of type ${this.dataType.toString()} to ${e.toString()}`);return this}get dataType(){return this.series.length===0?I.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(lr(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(lr(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(lr(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(lr(a.alignmentBounds,e)){n+=Number(e-a.alignment);break}}return new yn(this,n,n+t)}get byteLength(){return new ht(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 du(n,e,t)}distance(e,t){const n=this.series.map(i=>i.alignmentBounds);return fu(n,e,t)}parseJSON(e){if(!this.dataType.equals(I.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 Yu(this.series)}}var ii,ai;class Yu{constructor(e){y(this,"series"),y(this,"seriesIndex"),y(this,"internal"),y(this,ii,"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())}[(ai=Symbol.iterator,ii=Symbol.toStringTag,ai)](){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 oi=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}},Wu=(r,e)=>{let t=null;return e===0?r:(...n)=>{t!==null&&(clearTimeout(t),t=null),t=setTimeout(()=>r(...n),e)}},Fu=(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)},Gu=(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 Vu=Object.defineProperty,Ju=(r,e,t)=>e in r?Vu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Or=(r,e,t)=>Ju(r,typeof e!="symbol"?e+"":e,t);let Ku=class{constructor(e,t){Or(this,"handlers"),Or(this,"transform"),Or(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))}},Hu=class{constructor(e){Or(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 Me=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:Hu,Observer:Ku},Symbol.toStringTag,{value:"Module"})),Kt=s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown()),Xu=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser";Xu();const Qu=["macOS","Windows","Linux"],eh=["macos","windows","linux"],th={macos:"macOS",windows:"Windows",linux:"Linux"};s.z.enum(Qu).or(s.z.enum(eh).transform(r=>th[r]));var rh=Object.defineProperty,nh=(r,e,t)=>e in r?rh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ct=(r,e,t)=>nh(r,typeof e!="symbol"?e+"":e,t);const sh=(...r)=>r.map(ya).join(""),ya=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),ih=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=ya(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:sh(this.path,e)})}toString(){return ih(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};Ct(Bn,"UNKNOWN",new Bn({host:"unknown",port:0}));let ah=Bn;const oh=-128,ch=127,lh=s.z.number().int().min(oh).max(ch),uh=-32768,hh=32767,dh=s.z.number().int().min(uh).max(hh),fh=-2147483648,yh=2147483647,ph=s.z.number().int().min(fh).max(yh),gh=-9223372036854775808n,mh=9223372036854775807n,wh=s.z.bigint().min(gh).max(mh),bh=255,Th=s.z.number().int().min(0).max(bh),vh=65535,Oh=s.z.number().int().min(0).max(vh),Nh=4294967295,Eh=s.z.number().int().min(0).max(Nh),zh=18446744073709551615n,Sh=s.z.bigint().min(0n).max(zh),pa=r=>Fu(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"]}),ci=(r,e)=>{if(r==null)return null;const t=r[e];return t==null&&typeof r=="object"&&"sourceType"in r?r.sourceType()[e]:t},Ih=(r,e,t)=>Gu(ci(r,"shape"),pa(e),{...t,getter:ci}),$h=Object.freeze(Object.defineProperty({__proto__:null,getFieldSchema:Ih,getFieldSchemaPath:pa,int16:dh,int32:ph,int64:wh,int8:lh,uint16:Oh,uint32:Eh,uint64:Sh,uint8:Th},Symbol.toStringTag,{value:"Module"}));var kh=Object.defineProperty,Ah=(r,e,t)=>e in r?kh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Pt=(r,e,t)=>Ah(r,typeof e!="symbol"?e+"":e,t);const xh=async r=>await new Promise(e=>setTimeout(e,N.fromMilliseconds(r).milliseconds)),Rh=s.z.object({interval:N.z.optional(),maxRetries:s.z.number().optional(),scale:s.z.number().optional()}),Ch=(r={})=>{const e=r.sleepFn||xh,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)},Ph=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:Rh,create:Ch},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 ga=de;const ma=s.z.object({name:s.z.string(),key:s.z.string()}),jh=r=>s.z.object({subject:ma,resource:r,authority:ga.z}),Dh=(...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}),dt=Object.freeze(Object.defineProperty({__proto__:null,Authority:ga,filterTransfersByChannelKey:Dh,stateZ:jh,subjectZ:ma},Symbol.toStringTag,{value:"Module"})),wa=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(wa,"MESSAGE","canceled");let Mh=wa;new Mh;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 Dr},Bh=(r,e,t={})=>Kl(Ht(r,e,t)),ba=(r,e,t={})=>Jl(Ht(r,e,t)),Zh=(r,e,t={})=>Vl(Ht(r,e,t)),Uh=({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}},Lh=({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 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}.
|
|
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||
|
|
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(`
|
|
28
28
|
Unexpected error encountered:
|
|
29
29
|
|
|
30
30
|
${t}
|
|
31
31
|
|
|
32
32
|
Please report this to the Synnax team.
|
|
33
|
-
`);c(this,"type",
|
|
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=>
|
|
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
|
|
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 xe("colType is not key");return this.columns??[]}get uniqueKeys(){return Ws.unique(this.keys)}get names(){if(this.colType==="key")throw new xe("colType is not name");return this.columns??[]}get uniqueNames(){return Ws.unique(this.names)}get uniqueColumns(){return this.colType==="key"?this.uniqueKeys:this.uniqueNames}toPayload(){return{series:this.series.map(e=>Oa(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=$.min(...this.series.map(a=>a.timeRange.start)),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 fa(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 ht(this.series.reduce((e,t)=>e.add(t.byteLength),ht.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 Ur=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(()=>[]),ke.crudeZ.array().optional().default([])])}),va=r=>{const{dataType:e,data:t,timeRange:n,alignment:i}=r;return new ke({data:t,dataType:e,timeRange:n,glBufferUsage:"static",alignment:i})},Oa=r=>({timeRange:r._timeRange,dataType:r.dataType,data:new Uint8Array(r.data.buffer),alignment:r.alignment}),mt=$h.uint32,Lr=s.z.object({key:mt,name:s.z.string()}),Na=Lr.partial({key:!0}),_r="rack",Ea=r=>r?Jt.JSON_CODEC.decodeString(r):{},qr=s.z.string(),er=s.z.object({key:qr,rack:mt,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(Ea))}),za=er.extend({properties:s.z.unknown().transform(r=>Jt.JSON_CODEC.encodeString(r))}),Yr="device",ye=r=>r?JSON.parse(r):{},je=s.z.union([s.z.string(),s.z.bigint().transform(r=>r.toString()),s.z.number().transform(r=>r.toString())]),Sa=s.z.enum(["info","success","error","warning"]),qt=s.z.object({task:je,variant:Sa,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())}),tr=s.z.object({key:je,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(Ea)),state:qt.optional().nullable(),snapshot:s.z.boolean().optional()}),Ia=tr.omit({key:!0}).extend({key:je.transform(r=>r.toString()).optional(),config:s.z.unknown().transform(r=>Jt.JSON_CODEC.encodeString(r))}),es=s.z.object({task:je,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",Jh=r=>Number(BigInt(r)>>32n),wt=s.z.string().uuid(),rr=s.z.object({key:wt,name:s.z.string().min(1),color:s.z.string()}),ts="label",ne=s.z.string().uuid(),rs=s.z.string().min(1),nr=s.z.object({key:ne,name:rs,timeRange:G.z,color:s.z.string().optional()}),$a=nr.partial({key:!0}),ka=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}},ns="range",ss="range-alias",Ze=s.z.string().uuid(),sr=s.z.object({key:Ze,username:s.z.string().min(1),firstName:s.z.string().default(""),lastName:s.z.string().default(""),rootUser:s.z.boolean().default(!0)}),Aa=sr.partial({key:!0,firstName:!0,lastName:!0}).omit({rootUser:!0}).extend({password:s.z.string().min(1)}),is="user",bt=s.z.string().uuid(),Fr=s.z.object({key:bt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),xa=Fr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),as="lineplot",Tt=s.z.string().uuid(),Gr=s.z.object({key:Tt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),Ra=Gr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),os="log",pe=s.z.string().uuid(),Vr=s.z.object({key:pe,name:s.z.string(),layout:Kt.or(s.z.string().transform(ye))}),Jr="workspace",Ca=Vr.partial({key:!0}).transform(r=>({...r,layout:JSON.stringify(r.layout)})),Pa=Vr.omit({layout:!0}).extend({layout:s.z.string().transform(ye)}),Ue=s.z.string().uuid(),Kr=s.z.object({key:Ue,name:s.z.string(),data:Kt.or(s.z.string().transform(ye)),snapshot:s.z.boolean()}),ja=Kr.partial({key:!0,snapshot:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),cs=Kr.extend({data:s.z.string().transform(ye)}),ls="schematic",vt=s.z.string().uuid(),us=s.z.object({key:vt,name:s.z.string(),data:Kt.or(s.z.string().transform(ye))}),Da=us.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),hs=us.extend({data:s.z.string().transform(ye)}),ds="table",fs="builtin",Ma="cluster",Ba="node",ir=s.z.enum([ts,os,Fn,fs,Ma,Zr,Ba,Xn,ns,Qn,ss,is,Jr,ls,as,_r,Yr,Wr,Wn,ds]),re=s.z.object({type:ir,key:s.z.string()}),Za=s.z.string().transform(r=>{const[e,t]=r.split(":");return{type:ir.parse(e),key:t??""}}),We=s.z.union([Za,re]),at=class at{constructor(e){c(this,"type");c(this,"key");if(e instanceof at){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(at,"z",s.z.union([s.z.instanceof(at),We.transform(e=>new at(e))]));let O=at;const Kh=new O({type:fs,key:"root"}),Ua=s.z.object({type:s.z.number()}),La=s.z.object({type:ir,fields:s.z.record(Ua)}),_a=s.z.object({id:O.z,name:s.z.string(),schema:La.optional().nullable(),data:s.z.record(s.z.unknown()).optional().nullable()}).transform(r=>({key:r.id.toString(),...r})),Hh="to",Xh="from",Qh=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 ys{constructor(e,t){c(this,"key");c(this,"name");this.key=t,this.name=e}get ontologyID(){return qa(this.key)}}const qa=r=>new O({type:Xn,key:r}),ed=s.z.object({group:Hn}),td=s.z.object({parent:re,key:gt.optional(),name:Br}),rd=s.z.object({key:gt,name:Br}),nd=s.z.object({keys:s.z.array(gt)});var ae;let sd=(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},td,ed)).group}async rename(e,t){await w(this.client,ae.RENAME_ENDPOINT,{key:e,name:t},rd,s.z.object({}))}async delete(e){await w(this.client,ae.DELETE_ENDPOINT,{keys:e},nd,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),Ya=class{constructor(e){c(this,"creator");this.creator=new sd(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 ys(e.name,e.key)}};const id=Object.freeze(Object.defineProperty({__proto__:null,Client:Ya,Group:ys,ONTOLOGY_TYPE:Xn,analyzeParams:Vh,groupZ:Hn,keyZ:gt,nameZ:Br,ontologyID:qa},Symbol.toStringTag,{value:"Module"})),ad="/ontology/add-children",od="/ontology/remove-children",cd="/ontology/move-children",di=s.z.object({id:re,children:re.array()}),ld=s.z.object({from:re,to:re,children:re.array()}),pn=s.z.object({});let ud=class{constructor(e){c(this,"client");this.client=e}async addChildren(e,...t){await w(this.client,ad,{id:new O(e).payload,children:t.map(n=>new O(n).payload)},di,pn)}async removeChildren(e,...t){await w(this.client,od,{id:new O(e).payload,children:t.map(n=>new O(n).payload)},di,pn)}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,cd,i,ld,pn)}};const hd="/ontology/retrieve",dd=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:ir.array().optional()}),fd=s.z.object({resources:_a.array()}),Nr=r=>b(r).map(e=>new O(e).payload);let Wa=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 ud(e),this.groups=new Ya(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:Nr(e),...t});if(Array.isArray(e))return n;if(n.length===0)throw new ie(`No resource found with ID ${Yh.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:Nr(e),children:!0,...t})}async retrieveParents(e,t){return await this.execRetrieve({ids:Nr(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 ar.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,hd,e,dd,fd);return t}};const fi="sy_ontology_resource_set",yi="sy_ontology_resource_delete",pi="sy_ontology_relationship_set",gi="sy_ontology_relationship_delete";class ar{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 Me.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Me.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(pi);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(gi);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:_n(n)}))}async parseResourceSets(e){const t=e.get(fi);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(yi);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([fi,yi,pi,gi]);return new ar(n,t)}}const mi=r=>r==="from"?"to":"from";class Hr extends Me.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[mi(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[mi(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 ar.open(n,i);return new Hr(t,a,i)}async close(){await this.internal.close()}}const yd=Object.freeze(Object.defineProperty({__proto__:null,BUILTIN_TYPE:fs,CLUSTER_TYPE:Ma,ChangeTracker:ar,Client:Wa,DependentTracker:Hr,FROM_RELATIONSHIP_DIRECTION:Xh,ID:O,NODE_TYPE:Ba,ROOT_ID:Kh,TO_RELATIONSHIP_DIRECTION:Hh,crudeIDZ:We,idZ:re,parseIDs:Nr,parseRelationship:_n,relationshipSchemaZ:Qh,resourceTypeZ:ir,resourceZ:_a,schemaFieldZ:Ua,schemaZ:La,stringIDZ:Za},Symbol.toStringTag,{value:"Module"})),or=s.z.string().uuid(),Xr=s.z.object({key:or,subjects:V(re),objects:V(re),actions:V(Sr)}),Fa=s.z.object({key:or.optional(),subjects:We.array().or(We),objects:We.array().or(We),actions:Sr.array().or(Sr)}),pd=s.z.object({keys:or.array().optional(),subjects:re.array().optional()}),gd=s.z.object({policies:V(Xr)}),md="/access/policy/retrieve";let wd=class{constructor(e){c(this,"client");this.client=e}async retrieve(e){return(await w(this.client,md,e,pd,gd)).policies}};const bd=s.z.object({policies:Xr.partial({key:!0}).array()}),Td=s.z.object({policies:Xr.array()}),vd=s.z.object({keys:or.array()}),Od=s.z.object({}),Nd="/access/policy/create",Ed="/access/policy/delete";let zd=class{constructor(e){c(this,"client");this.client=e}async create(e){const n=Fa.array().parse(b(e)).map(a=>({objects:b(a.objects),actions:b(a.actions),subjects:b(a.subjects)}));return(await w(this.client,Nd,{policies:n},bd,Td)).policies}async delete(e){await w(this.client,Ed,{keys:b(e)},vd,Od)}},Ga=class{constructor(e){c(this,"retriever");c(this,"writer");this.retriever=new wd(e),this.writer=new zd(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 Sd=r=>new O({type:Wn,key:r}),Id=new O({type:Fn,key:""}),$d=Object.freeze(Object.defineProperty({__proto__:null,ALLOW_ALL_ONTOLOGY_ID:Id,ALLOW_ALL_ONTOLOGY_TYPE:Fn,Client:Ga,ONTOLOGY_TYPE:Wn,keyZ:or,newZ:Fa,ontologyID:Sd,policyZ:Xr},Symbol.toStringTag,{value:"Module"}));let Va=class{constructor(e){c(this,"policy");this.policy=new Ga(e)}};const kd=Object.freeze(Object.defineProperty({__proto__:null,ALL_ACTION:Gi,CREATE_ACTION:Vi,Client:Va,DELETE_ACTION:Ji,RETRIEVE_ACTION:Ki,UPDATE_ACTION:Hi,actionZ:Sr},Symbol.toStringTag,{value:"Module"})),Ad=new Error("request for lock canceled");var xd=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 Rd{constructor(e,t=Ad){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=Ja(this._queue,l=>t<=l.priority);o===-1&&e<=this._value?this._dispatchItem(a):this._queue.splice(o+1,0,a)})}runExclusive(e){return xd(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]=[]),Cd(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 Cd(r,e){const t=Ja(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function Ja(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var Pd=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 jd{constructor(e){this._semaphore=new Rd(1,e)}acquire(){return Pd(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}`)}},Dd=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:I.z.array().optional(),notDataTypes:I.z.array().optional(),virtual:s.z.boolean().optional(),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional()}),Md=s.z.object({channels:V(Qt)}),Ee=r=>Qr(r,{number:"keys",string:"names"}),Rr=class Rr{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(Rr.ENDPOINT,e,Dd,Md);if(n!=null)throw n;return t.channels}};c(Rr,"ENDPOINT","/channel/retrieve");let Yt=Rr;class ps{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 Ka{constructor(e,t){c(this,"mu",new jd);c(this,"requests",new Map);c(this,"wrapped");c(this,"debouncedRun");this.wrapped=e,this.debouncedRun=Wu(()=>{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 Ha=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 gs{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 ut(t??0),this.dataType=new I(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 eo(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 Bd="/channel/retrieve-group",Zd=s.z.object({}),Ud=s.z.object({group:Hn});let Xa=class{constructor(e,t,n,i){c(this,"type",Zr);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 ps(new Ka(new Yt(this.client),e))}sugar(e){const{frameClient:t}=this;return e.map(n=>new gs({...n,frameClient:t}))}async retrieveGroup(){const e=await w(this.client,Bd,{},Zd,Ud);return new ys(e.group.name,e.group.key)}};const Wt=({virtual:r,expression:e})=>r&&e!=="",Qa=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 Qa(r,n);if(i!=null)return i}}return null},eo=r=>new O({type:Zr,key:r.toString()}),Ld=s.z.object({channels:Ta.array()}),_d=s.z.object({channels:Qt.array()}),qd=s.z.object({keys:J.array().optional(),names:Xt.array().optional()}),Yd=s.z.object({}),Wd=s.z.object({keys:J.array(),names:Xt.array()}),Fd=s.z.object({}),Gd="/channel/create",Vd="/channel/delete",Jd="/channel/rename";let to=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,Gd,{channels:e},Ld,_d);return this.cache.set(t),t}async delete(e){await w(this.client,Vd,e,qd,Yd),e.keys!=null&&this.cache.delete(e.keys),e.names!=null&&this.cache.delete(e.names)}async rename(e,t){await w(this.client,Jd,{keys:e,names:t},Wd,Fd),this.cache.rename(e,t)}};const Kd=Object.freeze(Object.defineProperty({__proto__:null,CacheRetriever:ps,Channel:gs,Client:Xa,ClusterRetriever:Yt,DebouncedBatchRetriever:Ka,ONTOLOGY_TYPE:Zr,Writer:to,analyzeParams:Ee,channelZ:Qt,isCalculated:Wt,keyZ:J,nameZ:Xt,newZ:Ta,ontologyID:eo,resolveCalculatedIndex:Qa,retrieveRequired:Ha},Symbol.toStringTag,{value:"Module"})),Hd=s.z.object({keys:Ze.array().optional(),usernames:s.z.string().array().optional()}),Xd=s.z.object({users:V(sr)}),Qd="/user/retrieve";let ef=class{constructor(e){c(this,"client");this.client=e}async retrieve(e){return(await w(this.client,Qd,e,Hd,Xd)).users}};const tf=s.z.object({users:Aa.array()}),rf=s.z.object({users:sr.array()}),nf=s.z.object({key:Ze,username:s.z.string().min(1)}),sf=s.z.object({}),af=s.z.object({key:Ze,firstName:s.z.string().optional(),lastName:s.z.string().optional()}),of=s.z.object({}),cf=s.z.object({keys:Ze.array()}),lf=s.z.object({}),uf="/user/create",hf="/user/change-username",df="/user/rename",ff="/user/delete";let yf=class{constructor(e){c(this,"client");this.client=e}async create(e){return(await w(this.client,uf,{users:b(e)},tf,rf)).users}async changeUsername(e,t){await w(this.client,hf,{key:e,username:t},nf,sf)}async rename(e,t,n){await w(this.client,df,{key:e,firstName:t,lastName:n},af,of)}async delete(e){await w(this.client,ff,{keys:b(e)},cf,lf)}},ro=class{constructor(e){c(this,"reader");c(this,"writer");this.writer=new yf(e),this.reader=new ef(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 pf=r=>new O({type:is,key:r}),gf=Object.freeze(Object.defineProperty({__proto__:null,Client:ro,ONTOLOGY_TYPE:is,keyZ:Ze,newZ:Aa,ontologyID:pf,userZ:sr},Symbol.toStringTag,{value:"Module"})),mf=s.z.object({username:s.z.string(),password:s.z.string()}),wf=s.z.object({token:s.z.string(),user:sr}),wi="/auth/login",bf=3,Tf="/auth/change-password",vf=s.z.object({username:s.z.string(),password:s.z.string(),newPassword:s.z.string().min(1)}),Of=s.z.object({}),Nf=[Ut,Lt];let Ef=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,Tf,{username:this.credentials.username,password:this.credentials.password,newPassword:e},vf,Of),this.credentials.password=e}middleware(){const e=async(t,n)=>{if(!this.authenticated&&!t.target.endsWith(wi)){this.authenticating??(this.authenticating=new Promise((l,u)=>{this.client.send(wi,this.credentials,mf,wf).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 Nf.some(o=>o.matches(a))&&this.retryCount<bf?(this.authenticated=!1,this.authenticating=void 0,this.retryCount+=1,e(t,n)):(this.retryCount=0,[i,a])};return e}};const no=s.z.enum(["disconnected","connecting","connected","failed"]),so=s.z.object({status:no,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()}),zf=s.z.object({clusterKey:s.z.string(),nodeVersion:s.z.string().optional()}),bi={clusterKey:"",status:"disconnected",error:void 0,message:"Disconnected",clientServerCompatible:!1,clientVersion:"0.40.0"},Ti=(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 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}.
|
|
37
37
|
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`},
|
|
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(`
|
|
39
39
|
Received a single channel name or key but no series.
|
|
40
|
-
`);if(Array.isArray(t)){if(t.some(u=>u instanceof
|
|
40
|
+
`);if(Array.isArray(t)){if(t.some(u=>u instanceof Ae||Array.isArray(u)))throw new U(`
|
|
41
41
|
Received a single channel name or key but multiple series.
|
|
42
|
-
`);t=t}const o=await this.fetchChannel(e),l=new
|
|
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(`
|
|
43
43
|
Received an array of channel names or keys but no series.
|
|
44
44
|
`);if(!Array.isArray(t))throw new U(`
|
|
45
45
|
Received an array of channel names or keys but no array of series.
|
|
46
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(`
|
|
47
47
|
Received an array of channel names or keys but not enough series.
|
|
48
|
-
`);const f=new
|
|
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
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
|
|
51
|
-
Please report this error to the Synnax team. ${JSON.stringify(e)}`),t!=null){if(Re.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 bs=(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))(bs||{}),io=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(io||{});const xf=s.z.object({command:s.z.nativeEnum(bs),span:N.z.optional(),bounds:G.z.optional(),stamp:$.z.optional(),keys:J.array().optional(),chunkSize:s.z.number().optional()}),Rf=s.z.object({variant:s.z.nativeEnum(io),ack:s.z.boolean(),command:s.z.nativeEnum(bs),error:Vt.optional().nullable(),frame:Ur.optional()}),Zt=class Zt{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"value");this.stream=new ws("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,xf,Rf),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 $(e)})}async seekGE(e){return await this.execute({command:6,stamp:new $(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new Cf(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 Ar=Zt;class Cf{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 Pf=s.z.object({keys:s.z.number().array(),downsampleFactor:s.z.number()}),jf=s.z.object({frame:Ur,error:Vt.optional().nullable()}),Df="/frame/stream";class rn{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"downsampleFactor");this.stream=new ws("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(Df,Pf,jf),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(Re.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 Be extends Me.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 Ts=(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))(Ts||{}),yt=(r=>(r[r.PersistStream=1]="PersistStream",r[r.Persist=2]="Persist",r[r.Stream=3]="Stream",r))(yt||{});const Mf=r=>{switch(r){case"persist":return 2;case"stream":return 3;case"persistStream":return 1;default:if(typeof r=="number"&&r in yt)return r;throw new Error(`invalid writer mode: ${r}`)}},Bf=new N(-1),Zf=s.z.object({start:$.z.optional(),controlSubject:dt.subjectZ.optional(),keys:J.array().optional(),authorities:dt.Authority.z.array().optional(),mode:s.z.nativeEnum(yt).optional(),errOnUnauthorized:s.z.boolean().optional(),enableAutoCommit:s.z.boolean().optional(),autoIndexPersistInterval:N.z.optional()}),Uf=s.z.object({command:s.z.nativeEnum(Ts),config:Zf.optional(),frame:Ur.optional()}),Lf=s.z.object({ack:s.z.boolean(),command:s.z.nativeEnum(Ts),error:Vt.optional().nullable()});var Ae;let ao=(Ae=class{constructor(e,t){c(this,"stream");c(this,"adapter");c(this,"errAccumulated",!1);this.stream=new ws("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,start:i=$.now(),authorities:a=dt.Authority.ABSOLUTE,controlSubject:o,mode:l=1,errOnUnauthorized:u=!1,enableAutoCommit:h=!1,autoIndexPersistInterval:f=N.SECOND}){const d=await ms.open(e,n),k=await t.stream(Ae.ENDPOINT,Uf,Lf),S=new Ae(k,d);return await S.execute({command:0,config:{start:new $(i),keys:d.keys,controlSubject:o,authorities:b(a),mode:Mf(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?zr(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(Ae,"ENDPOINT","/frame/write"),Ae);const _f=r=>new O({type:Qn,key:r.toString()});let oo=class{constructor(e,t,n){c(this,"streamClient");c(this,"retriever");c(this,"deleter");this.streamClient=e,this.retriever=n,this.deleter=new Af(t)}async openIterator(e,t,n){return await Ar._open(e,t,this.retriever,this.streamClient,n)}async openWriter(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await ao._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:yt.Persist});try{await o.write(a),await o.commit()}finally{await o.close()}return}const i=await this.openWriter({start:e,channels:t,mode:yt.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 qf=Object.freeze(Object.defineProperty({__proto__:null,ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT:Bf,AUTO_SPAN:qn,Client:oo,Frame:Y,Iterator:Ar,ONTOLOGY_TYPE:Qn,ObservableStreamer:Be,Streamer:rn,Writer:ao,WriterMode:yt,frameZ:Ur,ontologyID:_f,seriesFromPayload:va,seriesToPayload:Oa},Symbol.toStringTag,{value:"Module"})),Yf=dt.Authority,Wf=dt.stateZ(s.z.number()),Ff=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 co extends Be{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 Gf="sy_node_1_control";let lo=class{constructor(e){c(this,"framer");this.framer=e}async openStateTracker(){const e=await this.framer.openStreamer(Gf);return new co(e)}};const Vf=Object.freeze(Object.defineProperty({__proto__:null,Authority:Yf,Client:lo,StateTracker:co,stateZ:Wf,transferString:Ff},Symbol.toStringTag,{value:"Module"}));let uo=class{constructor(e,t,n){c(this,"tasks");c(this,"racks");c(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const Jf=Object.freeze(Object.defineProperty({__proto__:null,Client:uo},Symbol.toStringTag,{value:"Module"})),Le=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 Be(i,a)},Kf=Object.freeze(Object.defineProperty({__proto__:null,openObservable:Le},Symbol.toStringTag,{value:"Module"})),Hf="sy_device_set",Xf="sy_device_delete",gn="/hardware/device/retrieve",Qf="/hardware/device/create",ey="/hardware/device/delete",ty=s.z.object({devices:za.array()}),ry=s.z.object({devices:er.array()}),ny=s.z.object({keys:qr.array()}),sy=s.z.object({}),mn=s.z.object({search:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),keys:qr.array().optional(),names:s.z.string().array().optional(),makes:s.z.string().array().optional(),ignoreNotFound:s.z.boolean().optional()}),wn=s.z.object({devices:V(er)});let ho=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,gn,{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,gn,{search:e,...t},mn,wn)).devices}async page(e,t,n){return(await w(this.client,gn,{offset:e,limit:t,...n},mn,wn)).devices}async create(e){const t=!Array.isArray(e),n=await w(this.client,Qf,{devices:b(e)},ty,ry);return t?n.devices[0]:n.devices}async delete(e){await w(this.client,ey,{keys:b(e)},ny,sy)}async openDeviceTracker(){return await Le(this.frameClient,Hf,Xf,iy)}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 iy=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(er).map(t=>({variant:r,key:t.key,value:t})),ay=r=>new O({type:Yr,key:r}),oy=Object.freeze(Object.defineProperty({__proto__:null,Client:ho,ONTOLOGY_TYPE:Yr,deviceZ:er,keyZ:qr,newZ:za,ontologyID:ay},Symbol.toStringTag,{value:"Module"})),bn="/hardware/rack/retrieve",cy="/hardware/rack/create",ly="/hardware/rack/delete",Tn=s.z.object({keys:mt.array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),vn=s.z.object({racks:V(Lr)}),uy=s.z.object({racks:Na.array()}),hy=s.z.object({racks:Lr.array()}),dy=s.z.object({keys:mt.array()}),fy=s.z.object({});let fo=class{constructor(e,t){c(this,"type",_r);c(this,"client");c(this,"tasks");this.client=e,this.tasks=t}async delete(e){await w(this.client,ly,{keys:b(e)},dy,fy)}async create(e){const t=!Array.isArray(e),n=await w(this.client,cy,{racks:b(e)},uy,hy),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){const{variant:t,normalized:n,single:i}=Qr(e,{string:"names",number:"keys"}),a=await w(this.client,bn,{[t]:n},Tn,vn),o=this.sugar(a.racks);return en("Rack",e,o,i),i?o[0]:o}sugar(e){return e.map(({key:t,name:n})=>new yo(t,n,this.tasks))}};class yo{constructor(e,t,n){c(this,"key");c(this,"name");c(this,"tasks");this.key=e,this.name=t,this.tasks=n}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 yy=r=>new O({type:_r,key:r.toString()}),py=Object.freeze(Object.defineProperty({__proto__:null,Client:fo,ONTOLOGY_TYPE:_r,Rack:yo,keyZ:mt,newZ:Na,ontologyID:yy,rackZ:Lr},Symbol.toStringTag,{value:"Module"})),Bt="sy_task_state",Fe="sy_task_cmd",gy="sy_task_set",my="sy_task_delete",Ye=new Error("Task not created"),po=async(r,e)=>{const t=await e.retrieveParents(r);return t.length===0?null:t[0]};class go{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 wo(this.key)}async executeCommand(e,t){if(this.frameClient==null)throw Ye;const n=await this.frameClient.openWriter(Fe),i=Pu.create();return await n.write(Fe,[{task:this.key,type:e,key:i,args:t}]),await n.close(),i}async executeCommandSync(e,t,n){if(this.frameClient==null)throw Ye;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 Ye;return new Be(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 Ye;return new Be(await this.frameClient.openStreamer(Fe),e=>{const t=e.get(Fe);if(t.length===0)return[null,!1];const n=es.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 Ye;return this.snapshot?await po(this.key,this.ontologyClient):null}}const wy=s.z.object({rack:mt.optional(),keys:je.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()}),by=s.z.object({tasks:V(tr)}),Ty="/hardware/task/retrieve",vy="/hardware/task/create",Oy="/hardware/task/delete",Ny="/hardware/task/copy",Ey=s.z.object({tasks:Ia.array()}),zy=s.z.object({tasks:tr.array()}),Sy=s.z.object({keys:je.array()}),Iy=s.z.object({}),$y=s.z.object({key:je,name:s.z.string(),snapshot:s.z.boolean()}),ky=s.z.object({task:tr});let mo=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,vy,{tasks:b(e)},Ey,zy),i=this.sugar(n.tasks);return t?i[0]:i}async delete(e){await w(this.client,Oy,{keys:b(e)},Sy,Iy)}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,Ny,{key:e,name:t,snapshot:n},$y,ky);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 Ye;return await po(e,this.ontologyClient)}async execRetrieve(e){return(await w(this.client,Ty,e,wy,by)).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 go(i,a,o,l,h,f,u,this.frameClient,this.ontologyClient,this.rangeClient));return t?n[0]:n}async openTracker(){return await Le(this.frameClient,gy,my,(e,t)=>Array.from(t).map(n=>({variant:e,key:n.toString(),value:n.toString()})))}async openStateObserver(){return new Be(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 Be(await this.frameClient.openStreamer(Fe),e=>{const t=e.get(Fe);if(t.length===0)return[null,!1];const n=es.safeParse(t.at(-1));return n.success?[n.data,!0]:(console.error(n.error),[null,!1])})}};const wo=r=>new O({type:Wr,key:r}),Ay=Object.freeze(Object.defineProperty({__proto__:null,Client:mo,ONTOLOGY_TYPE:Wr,Task:go,commandZ:es,getRackKey:Jh,keyZ:je,newZ:Ia,ontologyID:wo,stateZ:qt,statusZ:Sa,taskZ:tr},Symbol.toStringTag,{value:"Module"})),xy=s.z.object({keys:wt.array().optional(),for:re.optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Ry=s.z.object({labels:V(rr)}),Cr=class Cr{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(Cr.ENDPOINT,e,xy,Ry);if(n!=null)throw n;return t.labels}};c(Cr,"ENDPOINT","/label/retrieve");let xr=Cr;const bo=rr.extend({key:wt.optional()}),Cy=s.z.object({labels:bo.array()}),Py=s.z.object({labels:rr.array()}),jy=s.z.object({keys:wt.array()}),To=s.z.object({id:re,labels:wt.array(),replace:s.z.boolean().optional()}),Dy=To.omit({replace:!0}),On=s.z.object({}),My="/label/create",By="/label/delete",Zy="/label/set",Uy="/label/remove";let vo=class{constructor(e){c(this,"client");this.client=e}async create(e){return(await w(this.client,My,{labels:b(e)},Cy,Py)).labels}async delete(e){await w(this.client,By,{keys:b(e)},jy,On)}async set(e,t,{replace:n}={}){await w(this.client,Zy,{id:e,labels:t,replace:n},To,On)}async remove(e,t){await w(this.client,Uy,{id:e,labels:t},Dy,On)}};const Ly="sy_label_set",_y="sy_label_delete";let Oo=class{constructor(e,t,n){c(this,"type","label");c(this,"retriever");c(this,"writer");c(this,"frameClient");c(this,"ontology");this.writer=new vo(e),this.retriever=new xr(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 Le(this.frameClient,Ly,_y,qy)}async trackLabelsOf(e){const t=new Me.Observer,n=(await this.retrieveFor(e)).map(a=>({id:No(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 qy=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(rr).map(t=>({variant:r,key:t.key,value:t})),No=r=>new O({type:ts,key:r}),Yy=Object.freeze(Object.defineProperty({__proto__:null,Client:Oo,ONTOLOGY_TYPE:ts,Retriever:xr,Writer:vo,keyZ:wt,labelZ:rr,newZ:bo,ontologyID:No},Symbol.toStringTag,{value:"Module"})),Wy="sy_range_alias_set",Fy="sy_range_alias_delete",Gy=s.z.object({range:ne,aliases:s.z.string().array()}),Vy=s.z.object({aliases:s.z.record(s.z.string(),J)}),Jy=s.z.object({range:ne,aliases:s.z.record(J.or(s.z.string()),s.z.string())}),Ky=s.z.unknown(),Hy=s.z.object({range:ne,channels:J.array()}),Xy=s.z.unknown(),Qy=s.z.object({range:ne}),ep=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},Gy,Vy);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},Jy,Ky)}async list(){return(await w(this.client,fe.LIST_ENDPOINT,{range:this.rangeKey},Qy,ep)).aliases}async delete(e){await w(this.client,fe.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},Hy,Xy)}async openChangeTracker(){return await Le(this.frameClient,Wy,Fy,np(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 tp=s.z.object({range:ne,channel:J,alias:s.z.string()}),rp="---",np=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(rp)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(tp).map(n=>({variant:e,key:n.alias,value:n})),vs=s.z.object({range:ne,key:s.z.string(),value:s.z.string()}),sp=s.z.object({range:ne,keys:s.z.string().array()}),ip=s.z.object({pairs:V(vs)}),ap=s.z.object({range:ne,pairs:vs.array()}),op=s.z.object({range:ne,keys:s.z.string().array()}),$e=class $e{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,$e.GET_ENDPOINT,{range:this.rangeKey,keys:b(e)},sp,ip);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,$e.SET_ENDPOINT,{range:this.rangeKey,pairs:n},ap,s.z.unknown())}async delete(e){await w(this.client,$e.DELETE_ENDPOINT,{range:this.rangeKey,keys:b(e)},op,s.z.unknown())}async openTracker(){return await Le(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(vs).map(n=>({variant:e,key:`${n.range}${n.key}`,value:n})))}};c($e,"GET_ENDPOINT","/range/kv/get"),c($e,"SET_ENDPOINT","/range/kv/set"),c($e,"DELETE_ENDPOINT","/range/kv/delete");let Gt=$e;class Eo{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 Ie(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(Ie(this.key))}async addLabel(...e){await this.labelClient.label(Ie(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(Ie(this.key),e)}async openChildRangeTracker(){const e=new Me.Observer,t=(await this.retrieveChildren()).map(i=>{const a=Ie(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 Me.Observer,t=await this.retrieveParent();if(t==null)return null;const n=Ie(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 cp=(r,e)=>Du(r.timeRange,e.timeRange),lp=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()}),up="/range/retrieve",hp=s.z.object({ranges:V(nr)});let zo=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}=ka(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,up,e,lp,hp);return this.sugarMany(t)}async retrieveParent(e){const t=await this.ontologyClient.retrieveParents(Ie(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 Eo(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 Le(this.frameClient,"sy_range_set","sy_range_delete",(e,t)=>e==="delete"?t.toStrings().map(i=>({variant:e,key:i,value:void 0})):this.sugarMany(t.parseJSON(nr)).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 Ie=r=>new O({type:ns,key:r}),dp=r=>new O({type:ss,key:r}),fp=s.z.object({ranges:nr.array()}),yp=s.z.object({parent:re.optional(),ranges:$a.array()}),pp=s.z.object({keys:ne.array()}),gp=s.z.object({}),mp=s.z.object({key:ne,name:rs}),wp=s.z.object({}),bp="/range/create",Tp="/range/delete",vp="/range/rename";class So{constructor(e){c(this,"client");this.client=e}async rename(e,t){await w(this.client,vp,{key:e,name:t},mp,wp)}async create(e,t){return(await w(this.client,bp,{ranges:e,...t},yp,fp)).ranges}async delete(e){await w(this.client,Tp,{keys:e},pp,gp)}}const Op=Object.freeze(Object.defineProperty({__proto__:null,ALIAS_ONTOLOGY_TYPE:ss,Client:zo,KV:Gt,ONTOLOGY_TYPE:ns,Range:Eo,Writer:So,aliasOntologyID:dp,analyzeParams:ka,keyZ:ne,nameZ:rs,newZ:$a,ontologyID:Ie,payloadZ:nr,sort:cp},Symbol.toStringTag,{value:"Module"})),Np="/api/v1/";class Ep{constructor(e,t={},n=!1){c(this,"url");c(this,"unary");c(this,"stream");c(this,"secure");this.secure=n,this.url=e.child(Np);const i=new Jt.JSONCodec;this.unary=El(new Nl(this.url,i,this.secure),t),this.stream=new Cl(this.url,i,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const zp="/workspace/lineplot/retrieve",Sp="/workspace/lineplot/create",Ip="/workspace/lineplot/rename",$p="/workspace/lineplot/set-data",kp="/workspace/lineplot/delete",Ap=s.z.object({keys:bt.array()}),xp=s.z.object({workspace:pe,linePlots:xa.array()}),Rp=s.z.object({key:bt,name:s.z.string()}),Cp=s.z.object({key:bt,data:s.z.string()}),Pp=s.z.object({keys:bt.array()}),jp=s.z.object({linePlots:V(Fr)}),Dp=s.z.object({linePlots:Fr.array()}),Nn=s.z.object({});let Io=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,Sp,{workspace:e,linePlots:b(t)},xp,Dp);return n?i.linePlots:i.linePlots[0]}async rename(e,t){await w(this.client,Ip,{key:e,name:t},Rp,Nn)}async setData(e,t){await w(this.client,$p,{key:e,data:JSON.stringify(t)},Cp,Nn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,zp,{keys:b(e)},Ap,jp);return t?n.linePlots:n.linePlots[0]}async delete(e){await w(this.client,kp,{keys:b(e)},Pp,Nn)}};const Mp=r=>new O({type:as,key:r}),Bp=Object.freeze(Object.defineProperty({__proto__:null,Client:Io,ONTOLOGY_TYPE:as,keyZ:bt,linePlotZ:Fr,newZ:xa,ontologyID:Mp},Symbol.toStringTag,{value:"Module"})),Zp="/workspace/log/retrieve",Up="/workspace/log/create",Lp="/workspace/log/rename",_p="/workspace/log/set-data",qp="/workspace/log/delete",Yp=s.z.object({keys:Tt.array()}),Wp=s.z.object({workspace:pe,logs:Ra.array()}),Fp=s.z.object({key:Tt,name:s.z.string()}),Gp=s.z.object({key:Tt,data:s.z.string()}),Vp=s.z.object({keys:Tt.array()}),Jp=s.z.object({logs:Gr.array()}),Kp=s.z.object({logs:Gr.array()}),En=s.z.object({});let $o=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,Up,{workspace:e,logs:b(t)},Wp,Kp);return n?i.logs:i.logs[0]}async rename(e,t){await w(this.client,Lp,{key:e,name:t},Fp,En)}async setData(e,t){await w(this.client,_p,{key:e,data:JSON.stringify(t)},Gp,En)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,Zp,{keys:b(e)},Yp,Jp);return t?n.logs:n.logs[0]}async delete(e){await w(this.client,qp,{keys:b(e)},Vp,En)}};const Hp=r=>new O({type:os,key:r}),Xp=Object.freeze(Object.defineProperty({__proto__:null,Client:$o,ONTOLOGY_TYPE:os,keyZ:Tt,logZ:Gr,newZ:Ra,ontologyID:Hp},Symbol.toStringTag,{value:"Module"})),Qp="/workspace/schematic/retrieve",eg="/workspace/schematic/create",tg="/workspace/schematic/rename",rg="/workspace/schematic/set-data",ng="/workspace/schematic/delete",sg="/workspace/schematic/copy",ig=s.z.object({keys:Ue.array()}),ag=s.z.object({workspace:pe,schematics:ja.array()}),og=s.z.object({key:Ue,name:s.z.string()}),cg=s.z.object({key:Ue,data:s.z.string()}),lg=s.z.object({keys:Ue.array()}),ug=s.z.object({key:Ue,name:s.z.string(),snapshot:s.z.boolean()}),hg=s.z.object({schematics:V(cs)}),dg=s.z.object({schematics:cs.array()}),fg=s.z.object({schematic:Kr}),zn=s.z.object({});let ko=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,eg,{workspace:e,schematics:b(t)},ag,dg);return n?i.schematics:i.schematics[0]}async rename(e,t){await w(this.client,tg,{key:e,name:t},og,zn)}async setData(e,t){await w(this.client,rg,{key:e,data:JSON.stringify(t)},cg,zn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,Qp,{keys:b(e)},ig,hg);return t?n.schematics:n.schematics[0]}async delete(e){await w(this.client,ng,{keys:b(e)},lg,zn)}async copy(e,t,n){return(await w(this.client,sg,{key:e,name:t,snapshot:n},ug,fg)).schematic}};const yg=r=>new O({type:ls,key:r}),pg=Object.freeze(Object.defineProperty({__proto__:null,Client:ko,ONTOLOGY_TYPE:ls,keyZ:Ue,newZ:ja,ontologyID:yg,remoteZ:cs,schematicZ:Kr},Symbol.toStringTag,{value:"Module"})),gg="/workspace/table/retrieve",mg="/workspace/table/create",wg="/workspace/table/rename",bg="/workspace/table/set-data",Tg="/workspace/table/delete",vg=s.z.object({keys:vt.array()}),Og=s.z.object({workspace:pe,tables:Da.array()}),Ng=s.z.object({key:vt,name:s.z.string()}),Eg=s.z.object({key:vt,data:s.z.string()}),zg=s.z.object({keys:vt.array()}),Sg=s.z.object({tables:hs.array()}),Ig=s.z.object({tables:hs.array()}),Sn=s.z.object({});let Ao=class{constructor(e){c(this,"client");this.client=e}async create(e,t){const n=Array.isArray(t),i=await w(this.client,mg,{workspace:e,tables:b(t)},Og,Ig);return n?i.tables:i.tables[0]}async rename(e,t){await w(this.client,wg,{key:e,name:t},Ng,Sn)}async setData(e,t){await w(this.client,bg,{key:e,data:JSON.stringify(t)},Eg,Sn)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,gg,{keys:b(e)},vg,Sg);return t?n.tables:n.tables[0]}async delete(e){await w(this.client,Tg,{keys:b(e)},zg,Sn)}};const $g=r=>new O({type:ds,key:r}),kg=Object.freeze(Object.defineProperty({__proto__:null,Client:Ao,ONTOLOGY_TYPE:ds,keyZ:vt,newZ:Da,ontologyID:$g,remoteZ:hs,tableZ:us},Symbol.toStringTag,{value:"Module"})),hr="/workspace/retrieve",Ag="/workspace/create",xg="/workspace/rename",Rg="/workspace/set-layout",Cg="/workspace/delete",dr=s.z.object({keys:pe.array().optional(),search:s.z.string().optional(),author:Ze.optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Pg=s.z.object({workspaces:Ca.array()}),jg=s.z.object({key:pe,name:s.z.string()}),Dg=s.z.object({key:pe,layout:s.z.string()}),Mg=s.z.object({keys:pe.array()}),fr=s.z.object({workspaces:V(Vr)}),Bg=s.z.object({workspaces:Pa.array()}),In=s.z.object({});class xo{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 ko(e),this.linePlot=new Io(e),this.log=new $o(e),this.table=new Ao(e)}async create(e){const t=Array.isArray(e),n=await w(this.client,Ag,{workspaces:b(e)},Pg,Bg);return t?n.workspaces:n.workspaces[0]}async rename(e,t){await w(this.client,xg,{key:e,name:t},jg,In)}async setLayout(e,t){await w(this.client,Rg,{key:e,layout:JSON.stringify(t)},Dg,In)}async retrieve(e){const t=Array.isArray(e),n=await w(this.client,hr,{keys:b(e)},dr,fr);return t?n.workspaces:n.workspaces[0]}async retrieveByAuthor(e){return(await w(this.client,hr,{author:e},dr,fr)).workspaces}async search(e){return(await w(this.client,hr,{search:e},dr,fr)).workspaces}async page(e,t){return(await w(this.client,hr,{offset:e,limit:t},dr,fr)).workspaces}async delete(e){await w(this.client,Cg,{keys:b(e)},Mg,In)}}const Zg=r=>new O({type:Jr,key:r}),Ug=Object.freeze(Object.defineProperty({__proto__:null,Client:xo,ONTOLOGY_TYPE:Jr,keyZ:pe,newZ:Ca,ontologyID:Zg,remoteZ:Pa,workspaceZ:Vr},Symbol.toStringTag,{value:"Module"})),Ro=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:Ph.breakerConfig.optional()});class Co extends oo{constructor(t){const n=Ro.parse(t),{host:i,port:a,username:o,password:l,connectivityPollFrequency:u,secure:h,retry:f}=n,d=new Ep(new ah({host:i,port:Number(a)}),f,h);d.use(Gh);let k;o!=null&&l!=null&&(k=new Ef(d.unary,{username:o,password:l}),d.use(k.middleware()));const S=new ps(new Yt(d.unary)),se=new to(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.40.0");this.createdAt=$.now(),this.props=n,this.auth=k,this.transport=d,this.channels=new Xa(this,S,d.unary,se),this.connectivity=new Ft(d.unary,u,this.clientVersion,n.name),this.control=new lo(this),this.ontology=new Wa(d.unary,this);const L=new So(this.transport.unary);this.labels=new Oo(this.transport.unary,this,this.ontology),this.ranges=new zo(this,L,this.transport.unary,S,this.labels,this.ontology),this.access=new Va(this.transport.unary),this.user=new ro(this.transport.unary),this.workspaces=new xo(this.transport.unary);const Po=new ho(this.transport.unary,this),Os=new mo(this.transport.unary,this,this.ontology,this.ranges),jo=new fo(this.transport.unary,Os);this.hardware=new uo(Os,jo,Po)}get key(){return this.createdAt.valueOf().toString()}close(){this.connectivity.stopChecking()}}c(Co,"connectivity",Ft);const Lg=dt.Authority;exports.AuthError=ve;exports.Authority=Lg;exports.Channel=gs;exports.ContiguityError=Ln;exports.DataType=I;exports.Density=X;exports.Frame=Y;exports.MultiSeries=fa;exports.MultipleFoundError=Ne;exports.NotFoundError=Oe;exports.QueryError=ie;exports.Rate=ut;exports.RouteError=_t;exports.Series=ke;exports.Synnax=Co;exports.TimeRange=G;exports.TimeSpan=N;exports.TimeStamp=$;exports.UnexpectedError=xe;exports.ValidationError=U;exports.access=kd;exports.channel=Kd;exports.connection=Sf;exports.control=Vf;exports.device=oy;exports.framer=qf;exports.group=id;exports.hardware=Jf;exports.isCalculated=Wt;exports.label=Yy;exports.linePlot=Bp;exports.log=Xp;exports.ontology=yd;exports.policy=$d;exports.rack=py;exports.ranger=Op;exports.schematic=pg;exports.signals=Kf;exports.synnaxPropsZ=Ro;exports.table=kg;exports.task=Ay;exports.user=gf;exports.workspace=Ug;
|
|
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;
|