@synnaxlabs/freighter 0.38.0 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";var ft=Object.defineProperty;var dt=(r,e,t)=>e in r?ft(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var y=(r,e,t)=>dt(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("zod"),gt=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)},Ve=r=>{const e=(t,n=pe)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(c=>e(c,n));if(!he(t))return t;n=mt(n);const s={},a=t;return Object.keys(a).forEach(c=>{let f=a[c];const d=r(c);n.recursive&&(he(f)?Ae(f,n.keepTypesOnRecursion)||(f=e(f,n)):n.recursiveInArray&&Ee(f)&&(f=[...f].map(p=>{let m=p;return he(p)?Ae(m,n.keepTypesOnRecursion)||(m=e(p,n)):Ee(p)&&(m=e({key:p},n).key),m}))),s[d]=f}),s};return e},Ze=Ve(gt),pt=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),yt=Ve(pt),pe={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},mt=(r=pe)=>(r.recursive==null?r=pe:r.recursiveInArray??(r.recursiveInArray=!1),r),Ee=r=>r!=null&&Array.isArray(r),he=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),Ae=(r,e)=>(e||[]).some(t=>r instanceof t),Je=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var wt=Object.defineProperty,bt=(r,e,t)=>e in r?wt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Q=(r,e,t)=>bt(r,typeof e!="symbol"?e+"":e,t);let Tt=class{constructor(){Q(this,"contentType","application/json"),Q(this,"decoder"),Q(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),s=Ze(n);return t!=null?t.parse(s):s}encodeString(e){const t=yt(e);return JSON.stringify(t,(n,s)=>ArrayBuffer.isView(s)?Array.from(s):Je(s)&&"encode_value"in s?typeof s.value=="bigint"?s.value.toString():s.value:typeof s=="bigint"?s.toString():s)}static registerCustomType(){}},Ot=class{constructor(){Q(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||!Je(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(s=>{const a=t.map(c=>JSON.stringify(s[c]??""));n.push(a.join(","))}),n.join(`
2
2
  `)}decodeString(e,t){const[n,...s]=e.trim().split(`
3
- `).map(f=>f.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(f=>f.trim()),c={};return a.forEach(f=>{c[f]=[]}),s.forEach(f=>{const d=f.split(",").map(p=>p.trim());a.forEach((p,m)=>{const l=this.parseValue(d[m]);l!=null&&c[p].push(l)})}),t!=null?t.parse(c):c}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(){}},vt=class{constructor(){Q(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 te=new Tt;new Ot;new vt;const St=r=>r!=null&&typeof r=="object"&&"toString"in r,Nt=(r,e=!1)=>{const t=St(r)?"stringer":typeof r;let n;switch(t){case"string":n=(s,a)=>s.localeCompare(a);break;case"stringer":n=(s,a)=>s.toString().localeCompare(a.toString());break;case"number":n=(s,a)=>Number(s)-Number(a);break;case"bigint":n=(s,a)=>BigInt(s)-BigInt(a)>0n?1:-1;break;case"boolean":n=(s,a)=>Number(s)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?It(n):n},It=r=>(e,t)=>r(t,e),ue=i.z.tuple([i.z.number(),i.z.number()]);i.z.tuple([i.z.bigint(),i.z.bigint()]);const He=i.z.object({width:i.z.number(),height:i.z.number()}),Et=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()}),At=["width","height"];i.z.enum(At);const xt=["start","center","end"],zt=["signedWidth","signedHeight"];i.z.enum(zt);const ie=i.z.object({x:i.z.number(),y:i.z.number()}),Mt=i.z.object({clientX:i.z.number(),clientY:i.z.number()}),$t=["x","y"],Xe=i.z.enum($t),Ke=["top","right","bottom","left"];i.z.enum(Ke);const Ut=["left","right"],Qe=i.z.enum(Ut),Bt=["top","bottom"],_e=i.z.enum(Bt),et=["center"],xe=i.z.enum(et),Rt=[...Ke,...et],tt=i.z.enum(Rt);i.z.enum(xt);const Ct=["first","last"];i.z.enum(Ct);const Dt=i.z.object({lower:i.z.number(),upper:i.z.number()}),Pt=i.z.object({lower:i.z.bigint(),upper:i.z.bigint()});i.z.union([Dt,ue]);i.z.union([Pt,ue]);i.z.union([Xe,tt]);i.z.union([Xe,tt,i.z.instanceof(String)]);const Lt=r=>typeof r=="bigint"||r instanceof BigInt,j=(r,e)=>Lt(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),Y=(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 ze(r);return ze(t)},ze=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Me=(r,e)=>{const t=Y(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e};i.z.object({x:Qe.or(xe),y:_e.or(xe)});const kt=i.z.object({x:Qe,y:_e}),Yt=Object.freeze({x:"left",y:"top"}),jt=(r,e)=>r.x===e.x&&r.y===e.y,$e=i.z.union([i.z.number(),ie,ue,He,Et,Mt]),qt=(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}},Ue=Object.freeze({x:0,y:0}),ee=i.z.union([i.z.number(),i.z.string()]);i.z.object({top:ee,left:ee,width:ee,height:ee});i.z.object({left:i.z.number(),top:i.z.number(),right:i.z.number(),bottom:i.z.number()});i.z.object({one:ie,two:ie,root:kt});const ve=(r,e,t=0,n=0,s)=>{const a={one:{...Ue},two:{...Ue},root:s??Yt};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:s??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},fe=r=>{const e=ve(r);return{lower:e.one.x,upper:e.two.x}},de=r=>{const e=ve(r);return{lower:e.one.y,upper:e.two.y}},Ft=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,Gt=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()});i.z.union([He,Gt,ie,ue]);var Wt=Object.defineProperty,Vt=(r,e,t)=>e in r?Wt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,C=(r,e,t)=>Vt(r,typeof e!="symbol"?e+"":e,t);const Zt=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;i.z.object({offset:$e,scale:$e});i.z.object({offset:i.z.number(),scale:i.z.number()});const Jt=r=>(e,t,n,s)=>t==="dimension"?[e,n]:[e,s?n-r:n+r],Ht=r=>(e,t,n,s)=>[e,s?n/r:n*r],Xt=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:s,upper:a}=e,{lower:c,upper:f}=r,d=a-s,p=f-c;if(t==="dimension")return[r,n*(p/d)];const m=(n-s)*(p/d)+c;return[r,m]},Kt=r=>(e,t,n)=>[r,n],Qt=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:s}=r;return[r,s-(t-n)]},_t=r=>(e,t,n)=>{const{lower:s,upper:a}=r;return n=Zt(n,s,a),[e,n]},ye=class V{constructor(){C(this,"ops",[]),C(this,"currBounds",null),C(this,"currType",null),C(this,"reversed",!1),this.ops=[]}static translate(e){return new V().translate(e)}static magnify(e){return new V().magnify(e)}static scale(e,t){return new V().scale(e,t)}translate(e){const t=this.new(),n=Jt(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Ht(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=Y(e,t),s=this.new(),a=Xt(n);return a.type="scale",s.ops.push(a),s}clamp(e,t){const n=Y(e,t),s=this.new(),a=_t(n);return a.type="clamp",s.ops.push(a),s}reBound(e,t){const n=Y(e,t),s=this.new(),a=Kt(n);return a.type="re-bound",s.ops.push(a),s}invert(){const e=Qt();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 V;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,s],a)=>a(n,e,s,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,s)=>{if(n.type==="scale"||t.some(([c,f])=>s>=c&&s<=f))return;const a=e.ops.findIndex((c,f)=>c.type==="scale"&&f>s);a!==-1&&t.push([s,a])}),t.forEach(([n,s])=>{const a=e.ops.slice(n,s);a.unshift(e.ops[s]),e.ops.splice(n,s-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};C(ye,"IDENTITY",new ye);let Be=ye;const Re=class R{constructor(e=new Be,t=new Be,n=null){C(this,"x"),C(this,"y"),C(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new R().translate(e,t)}static translateX(e){return new R().translateX(e)}static translateY(e){return new R().translateY(e)}static clamp(e){return new R().clamp(e)}static magnify(e){return new R().magnify(e)}static scale(e){return new R().scale(e)}static reBound(e){return new R().reBound(e)}translate(e,t){const n=qt(e,t),s=this.copy();return s.x=this.x.translate(n.x),s.y=this.y.translate(n.y),s}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(Ft(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!jt(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(fe(e)),t.y=t.y.scale(de(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(fe(e)),t.y=this.y.reBound(de(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(fe(e)),t.y=this.y.clamp(de(e)),t}copy(){const e=new R;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 ve(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})}}};C(Re,"IDENTITY",new Re);const er=i.z.bigint().or(i.z.string().transform(BigInt));var tr=Object.defineProperty,rr=(r,e,t)=>e in r?tr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,u=(r,e,t)=>rr(r,typeof e!="symbol"?e+"":e,t);let nr=(r,e=21)=>(t=e)=>{let n="",s=t|0;for(;s--;)n+=r[Math.random()*r.length|0];return n};const sr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ir=nr(sr,11),ar=i.z.enum(["static","dynamic"]),rt=(r,e)=>{const t=new v(e);if(![O.DAY,O.HOUR,O.MINUTE,O.SECOND,O.MILLISECOND,O.MICROSECOND,O.NANOSECOND].some(s=>s.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof v?new v(n):new O(n)},b=class h{constructor(e,t="UTC"){if(u(this,"value"),u(this,"encodeValue",!0),e==null)this.value=h.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*h.MILLISECOND.valueOf();else if(typeof e=="string")this.value=h.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=h.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=h.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=h.MAX:e=h.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const s=new Date(e,t-1,n,0,0,0,0);return new h(BigInt(s.getTime())*h.MILLISECOND.valueOf()).truncate(h.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,s,a]=e.split(":");let c="00",f="00";a!=null&&([c,f]=a.split("."));let d=h.hours(parseInt(n??"00")).add(h.minutes(parseInt(s??"00"))).add(h.seconds(parseInt(c??"00"))).add(h.milliseconds(parseInt(f??"00")));return t==="local"&&(d=d.add(h.utcOffset)),d.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return h.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new h(BigInt(n.getTime())*h.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(h.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new O(BigInt(new Date().getTimezoneOffset())*h.MINUTE.valueOf())}static since(e){return new h().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new h(e).valueOf()}span(e){return this.range(e).span}range(e){return new Se(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 h(e).valueOf()}afterEq(e){return this.valueOf()>=new h(e).valueOf()}before(e){return this.valueOf()<new h(e).valueOf()}beforeEq(e){return this.valueOf()<=new h(e).valueOf()}add(e){return new h(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new h(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(O.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(O.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(O.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(O.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(h.MILLISECOND.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new h(t)}get month(){return this.date().getMonth()}setMonth(e){const t=this.date();return t.setMonth(e),new h(t)}get day(){return this.date().getDate()}setDay(e){const t=this.date();return t.setDate(e),new h(t)}get hour(){return this.date().getHours()}setHour(e){const t=this.date();return t.setHours(e),new h(t)}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setMinutes(e),new h(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setSeconds(e),new h(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new h(t)}toString(){return this.date().toISOString()}remainder(e){return rt(this,e)}get isToday(){return this.truncate(O.DAY).equals(h.now().truncate(O.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new h(new Date)}static max(...e){let t=h.MIN;for(const n of e){const s=new h(n);s.after(t)&&(t=s)}return t}static min(...e){let t=h.MAX;for(const n of e){const s=new h(n);s.before(t)&&(t=s)}return t}static nanoseconds(e){return new h(e)}static microseconds(e){return h.nanoseconds(e*1e3)}static milliseconds(e){return h.microseconds(e*1e3)}static seconds(e){return h.milliseconds(e*1e3)}static minutes(e){return h.seconds(e*60)}static hours(e){return h.minutes(e*60)}static days(e){return h.hours(e*24)}};u(b,"NANOSECOND",b.nanoseconds(1)),u(b,"MICROSECOND",b.microseconds(1)),u(b,"MILLISECOND",b.milliseconds(1)),u(b,"SECOND",b.seconds(1)),u(b,"MINUTE",b.minutes(1)),u(b,"HOUR",b.hours(1)),u(b,"DAY",b.days(1)),u(b,"MAX",new b((1n<<63n)-1n)),u(b,"MIN",new b(0)),u(b,"ZERO",new b(0)),u(b,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new b(r.value)),i.z.string().transform(r=>new b(BigInt(r))),i.z.instanceof(Number).transform(r=>new b(r)),i.z.number().transform(r=>new b(r)),i.z.instanceof(b)]));let v=b;const T=class g{constructor(e){u(this,"value"),u(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof g?e:e instanceof Ce?e.period:e instanceof v?new g(e):["number","bigint"].includes(typeof e)?g.seconds(e):new g(e)}static fromMilliseconds(e){return e instanceof g?e:e instanceof Ce?e.period:e instanceof v?new g(e):["number","bigint"].includes(typeof e)?g.milliseconds(e):new g(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new g(e).valueOf()}greaterThan(e){return this.valueOf()>new g(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new g(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new g(e).valueOf()}remainder(e){return rt(this,e)}truncate(e){return new g(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(g.DAY),t=this.truncate(g.HOUR),n=this.truncate(g.MINUTE),s=this.truncate(g.SECOND),a=this.truncate(g.MILLISECOND),c=this.truncate(g.MICROSECOND),f=this.truncate(g.NANOSECOND),d=e,p=t.sub(e),m=n.sub(t),l=s.sub(n),A=a.sub(s),U=c.sub(a),B=f.sub(c);let z="";return d.isZero||(z+=`${d.days}d `),p.isZero||(z+=`${p.hours}h `),m.isZero||(z+=`${m.minutes}m `),l.isZero||(z+=`${l.seconds}s `),A.isZero||(z+=`${A.milliseconds}ms `),U.isZero||(z+=`${U.microseconds}µs `),B.isZero||(z+=`${B.nanoseconds}ns`),z.trim()}mult(e){return new g(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number(g.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(g.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(g.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(g.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(g.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(g.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new g(e).valueOf()}add(e){return new g(this.valueOf()+new g(e).valueOf())}sub(e){return new g(this.valueOf()-new g(e).valueOf())}static nanoseconds(e=1){return new g(e)}static microseconds(e=1){return g.nanoseconds(j(e,1e3))}static milliseconds(e=1){return g.microseconds(j(e,1e3))}static seconds(e=1){return g.milliseconds(j(e,1e3))}static minutes(e=1){return g.seconds(j(e,60))}static hours(e){return g.minutes(j(e,60))}static days(e){return g.hours(j(e,24))}};u(T,"NANOSECOND",T.nanoseconds(1)),u(T,"MICROSECOND",T.microseconds(1)),u(T,"MILLISECOND",T.milliseconds(1)),u(T,"SECOND",T.seconds(1)),u(T,"MINUTE",T.minutes(1)),u(T,"HOUR",T.hours(1)),u(T,"DAY",T.days(1)),u(T,"MAX",new T((1n<<63n)-1n)),u(T,"MIN",new T(0)),u(T,"ZERO",new T(0)),u(T,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new T(r.value)),i.z.string().transform(r=>new T(BigInt(r))),i.z.instanceof(Number).transform(r=>new T(r)),i.z.number().transform(r=>new T(r)),i.z.instanceof(T)]));let O=T;const Z=class re extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new re(e).valueOf()}get period(){return O.seconds(1/this.valueOf())}sampleCount(e){return new O(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new x(t).valueOf()}span(e){return O.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new re(e)}static khz(e){return re.hz(e*1e3)}};u(Z,"z",i.z.union([i.z.number().transform(r=>new Z(r)),i.z.instanceof(Number).transform(r=>new Z(r)),i.z.instanceof(Z)]));let Ce=Z;const I=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new me(e*this.valueOf())}};u(I,"UNKNOWN",new I(0)),u(I,"BIT128",new I(16)),u(I,"BIT64",new I(8)),u(I,"BIT32",new I(4)),u(I,"BIT16",new I(2)),u(I,"BIT8",new I(1)),u(I,"z",i.z.union([i.z.number().transform(r=>new I(r)),i.z.instanceof(Number).transform(r=>new I(r)),i.z.instanceof(I)]));let x=I;const M=class ne{constructor(e,t){u(this,"start"),u(this,"end"),typeof e=="object"&&"start"in e?(this.start=new v(e.start),this.end=new v(e.end)):(this.start=new v(e),this.end=new v(t))}get span(){return new O(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new ne(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=O.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const s=v.max(n.start,e.start),a=v.min(n.end,e.end);return a.before(s)?!1:new O(a.sub(s)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),s=this.end.sub(e.end).valueOf();return n<0&&(n=-n),s<0&&(s=-s),n<=t.valueOf()&&s<=t.valueOf()}contains(e){return e instanceof ne?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new ne(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}};u(M,"MAX",new M(v.MIN,v.MAX)),u(M,"MIN",new M(v.MAX,v.MIN)),u(M,"ZERO",new M(v.ZERO,v.ZERO)),u(M,"z",i.z.union([i.z.object({start:v.z,end:v.z}).transform(r=>new M(r.start,r.end)),i.z.instanceof(M)]));let Se=M;const o=class S extends String{constructor(e){if(e instanceof S||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}const t=S.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}throw super(S.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=S.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(S.JSON)||this.equals(S.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(S.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=S.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(S.UINT8)||this.equals(S.UINT16)||this.equals(S.UINT32)||this.equals(S.UINT64)}get isSigned(){return this.equals(S.INT8)||this.equals(S.INT16)||this.equals(S.INT32)||this.equals(S.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(S.INT32)&&e.equals(S.FLOAT64)||this.equals(S.INT8)&&e.equals(S.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 S.BIG_INT_TYPES.some(e=>e.equals(this))}};u(o,"UNKNOWN",new o("unknown")),u(o,"FLOAT64",new o("float64")),u(o,"FLOAT32",new o("float32")),u(o,"INT64",new o("int64")),u(o,"INT32",new o("int32")),u(o,"INT16",new o("int16")),u(o,"INT8",new o("int8")),u(o,"UINT64",new o("uint64")),u(o,"UINT32",new o("uint32")),u(o,"UINT16",new o("uint16")),u(o,"UINT8",new o("uint8")),u(o,"BOOLEAN",o.UINT8),u(o,"TIMESTAMP",new o("timestamp")),u(o,"UUID",new o("uuid")),u(o,"STRING",new o("string")),u(o,"JSON",new o("json")),u(o,"ARRAY_CONSTRUCTORS",new Map([[o.UINT8.toString(),Uint8Array],[o.UINT16.toString(),Uint16Array],[o.UINT32.toString(),Uint32Array],[o.UINT64.toString(),BigUint64Array],[o.FLOAT32.toString(),Float32Array],[o.FLOAT64.toString(),Float64Array],[o.INT8.toString(),Int8Array],[o.INT16.toString(),Int16Array],[o.INT32.toString(),Int32Array],[o.INT64.toString(),BigInt64Array],[o.TIMESTAMP.toString(),BigInt64Array],[o.STRING.toString(),Uint8Array],[o.JSON.toString(),Uint8Array],[o.UUID.toString(),Uint8Array]])),u(o,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,o.UINT8],[Uint16Array.name,o.UINT16],[Uint32Array.name,o.UINT32],[BigUint64Array.name,o.UINT64],[Float32Array.name,o.FLOAT32],[Float64Array.name,o.FLOAT64],[Int8Array.name,o.INT8],[Int16Array.name,o.INT16],[Int32Array.name,o.INT32],[BigInt64Array.name,o.INT64]])),u(o,"DENSITIES",new Map([[o.UINT8.toString(),x.BIT8],[o.UINT16.toString(),x.BIT16],[o.UINT32.toString(),x.BIT32],[o.UINT64.toString(),x.BIT64],[o.FLOAT32.toString(),x.BIT32],[o.FLOAT64.toString(),x.BIT64],[o.INT8.toString(),x.BIT8],[o.INT16.toString(),x.BIT16],[o.INT32.toString(),x.BIT32],[o.INT64.toString(),x.BIT64],[o.TIMESTAMP.toString(),x.BIT64],[o.STRING.toString(),x.UNKNOWN],[o.JSON.toString(),x.UNKNOWN],[o.UUID.toString(),x.BIT128]])),u(o,"ALL",[o.UNKNOWN,o.FLOAT64,o.FLOAT32,o.INT64,o.INT32,o.INT16,o.INT8,o.UINT64,o.UINT32,o.UINT16,o.UINT8,o.TIMESTAMP,o.UUID,o.STRING,o.JSON]),u(o,"BIG_INT_TYPES",[o.INT64,o.UINT64,o.TIMESTAMP]),u(o,"z",i.z.union([i.z.string().transform(r=>new o(r)),i.z.instanceof(o)]));let w=o;const E=class N extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return N.bytes(this.valueOf()+e.valueOf())}sub(e){return N.bytes(this.valueOf()-e.valueOf())}truncate(e){return new N(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return N.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/N.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/N.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/N.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/N.TERABYTE.valueOf()}toString(){const e=this.truncate(N.TERABYTE),t=this.truncate(N.GIGABYTE),n=this.truncate(N.MEGABYTE),s=this.truncate(N.KILOBYTE),a=this.truncate(N.BYTE),c=e,f=t.sub(e),d=n.sub(t),p=s.sub(n),m=a.sub(s);let l="";return c.isZero||(l+=`${c.terabytes}TB `),f.isZero||(l+=`${f.gigabytes}GB `),d.isZero||(l+=`${d.megabytes}MB `),p.isZero||(l+=`${p.kilobytes}KB `),(!m.isZero||l==="")&&(l+=`${m.valueOf()}B`),l.trim()}static bytes(e=1){return new N(e)}static kilobytes(e=1){return N.bytes(e.valueOf()*1e3)}static megabytes(e=1){return N.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return N.megabytes(e.valueOf()*1e3)}static terabytes(e){return N.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};u(E,"BYTE",new E(1)),u(E,"KILOBYTE",E.kilobytes(1)),u(E,"MEGABYTE",E.megabytes(1)),u(E,"GIGABYTE",E.gigabytes(1)),u(E,"TERABYTE",E.terabytes(1)),u(E,"ZERO",new E(0)),u(E,"z",i.z.union([i.z.number().transform(r=>new E(r)),i.z.instanceof(E)]));let me=E;i.z.union([i.z.instanceof(Uint8Array),i.z.instanceof(Uint16Array),i.z.instanceof(Uint32Array),i.z.instanceof(BigUint64Array),i.z.instanceof(Float32Array),i.z.instanceof(Float64Array),i.z.instanceof(Int8Array),i.z.instanceof(Int16Array),i.z.instanceof(Int32Array),i.z.instanceof(BigInt64Array)]);const nt=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof v||r instanceof O||r instanceof Date},or=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):H(t,-n).valueOf(),ur=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof hr?!0:nt(r),k=-1,cr=i.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),lr=i.z.union([i.z.null(),i.z.undefined()]).transform(()=>new Uint8Array().buffer),we=10,J=class ${constructor(e){u(this,"key",""),u(this,"isSynnaxSeries",!0),u(this,"dataType"),u(this,"sampleOffset"),u(this,"gl"),u(this,"_data"),u(this,"_timeRange"),u(this,"alignment",0n),u(this,"_cachedMin"),u(this,"_cachedMax"),u(this,"writePos",k),u(this,"_refCount",0),u(this,"_cachedLength"),u(this,"_cachedIndexes"),ur(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:s=0,glBufferUsage:a="static",alignment:c=0n,key:f=ir()}=e,d=e.data??[];if(d instanceof $||typeof d=="object"&&"isSynnaxSeries"in d&&d.isSynnaxSeries===!0){const l=d;this.key=l.key,this.dataType=l.dataType,this.sampleOffset=l.sampleOffset,this.gl=l.gl,this._data=l._data,this._timeRange=l._timeRange,this.alignment=l.alignment,this._cachedMin=l._cachedMin,this._cachedMax=l._cachedMax,this.writePos=l.writePos,this._refCount=l._refCount,this._cachedLength=l._cachedLength;return}const p=nt(d),m=Array.isArray(d);if(t!=null)this.dataType=new w(t);else{if(d instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(m||p){let l=d;if(!p){if(d.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");l=d[0]}if(typeof l=="string")this.dataType=w.STRING;else if(typeof l=="number")this.dataType=w.FLOAT64;else if(typeof l=="bigint")this.dataType=w.INT64;else if(typeof l=="boolean")this.dataType=w.BOOLEAN;else if(l instanceof v||l instanceof Date||l instanceof v)this.dataType=w.TIMESTAMP;else if(typeof l=="object")this.dataType=w.JSON;else throw new Error(`cannot infer data type of ${typeof l} when constructing a Series from a JS array`)}else this.dataType=new w(d)}if(!m&&!p)this._data=d;else{let l=p?[d]:d;const A=l[0];(A instanceof v||A instanceof Date||A instanceof O)&&(l=l.map(U=>new v(U).valueOf())),this.dataType.equals(w.STRING)?(this._cachedLength=l.length,this._data=new TextEncoder().encode(`${l.join(`
3
+ `).map(f=>f.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(f=>f.trim()),c={};return a.forEach(f=>{c[f]=[]}),s.forEach(f=>{const d=f.split(",").map(p=>p.trim());a.forEach((p,m)=>{const l=this.parseValue(d[m]);l!=null&&c[p].push(l)})}),t!=null?t.parse(c):c}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(){}},vt=class{constructor(){Q(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 te=new Tt;new Ot;new vt;const St=r=>r!=null&&typeof r=="object"&&"toString"in r,Nt=(r,e=!1)=>{const t=St(r)?"stringer":typeof r;let n;switch(t){case"string":n=(s,a)=>s.localeCompare(a);break;case"stringer":n=(s,a)=>s.toString().localeCompare(a.toString());break;case"number":n=(s,a)=>Number(s)-Number(a);break;case"bigint":n=(s,a)=>BigInt(s)-BigInt(a)>0n?1:-1;break;case"boolean":n=(s,a)=>Number(s)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?It(n):n},It=r=>(e,t)=>r(t,e),ue=i.z.tuple([i.z.number(),i.z.number()]);i.z.tuple([i.z.bigint(),i.z.bigint()]);const He=i.z.object({width:i.z.number(),height:i.z.number()}),Et=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()}),At=["width","height"];i.z.enum(At);const xt=["start","center","end"],zt=["signedWidth","signedHeight"];i.z.enum(zt);const ie=i.z.object({x:i.z.number(),y:i.z.number()}),Mt=i.z.object({clientX:i.z.number(),clientY:i.z.number()}),$t=["x","y"],Xe=i.z.enum($t),Ke=["top","right","bottom","left"];i.z.enum(Ke);const Ut=["left","right"],Qe=i.z.enum(Ut),Bt=["top","bottom"],_e=i.z.enum(Bt),et=["center"],xe=i.z.enum(et),Rt=[...Ke,...et],tt=i.z.enum(Rt);i.z.enum(xt);const Ct=["first","last"];i.z.enum(Ct);const Dt=i.z.object({lower:i.z.number(),upper:i.z.number()}),Pt=i.z.object({lower:i.z.bigint(),upper:i.z.bigint()});i.z.union([Dt,ue]);i.z.union([Pt,ue]);i.z.union([Xe,tt]);i.z.union([Xe,tt,i.z.instanceof(String)]);const Lt=r=>typeof r=="bigint"||r instanceof BigInt,j=(r,e)=>Lt(r)?r.valueOf()*BigInt(e.valueOf()):r.valueOf()*Number(e.valueOf()),k=(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 ze(r);return ze(t)},ze=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r,Me=(r,e)=>{const t=k(r);return e<t.lower?t.lower:e>=t.upper?t.upper-(typeof t.upper=="number"?1:1n):e};i.z.object({x:Qe.or(xe),y:_e.or(xe)});const Yt=i.z.object({x:Qe,y:_e}),kt=Object.freeze({x:"left",y:"top"}),jt=(r,e)=>r.x===e.x&&r.y===e.y,$e=i.z.union([i.z.number(),ie,ue,He,Et,Mt]),qt=(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}},Ue=Object.freeze({x:0,y:0}),ee=i.z.union([i.z.number(),i.z.string()]);i.z.object({top:ee,left:ee,width:ee,height:ee});i.z.object({left:i.z.number(),top:i.z.number(),right:i.z.number(),bottom:i.z.number()});i.z.object({one:ie,two:ie,root:Yt});const ve=(r,e,t=0,n=0,s)=>{const a={one:{...Ue},two:{...Ue},root:s??kt};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:s??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},fe=r=>{const e=ve(r);return{lower:e.one.x,upper:e.two.x}},de=r=>{const e=ve(r);return{lower:e.one.y,upper:e.two.y}},Ft=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,Gt=i.z.object({signedWidth:i.z.number(),signedHeight:i.z.number()});i.z.union([He,Gt,ie,ue]);var Wt=Object.defineProperty,Vt=(r,e,t)=>e in r?Wt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,C=(r,e,t)=>Vt(r,typeof e!="symbol"?e+"":e,t);const Zt=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;i.z.object({offset:$e,scale:$e});i.z.object({offset:i.z.number(),scale:i.z.number()});const Jt=r=>(e,t,n,s)=>t==="dimension"?[e,n]:[e,s?n-r:n+r],Ht=r=>(e,t,n,s)=>[e,s?n/r:n*r],Xt=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:s,upper:a}=e,{lower:c,upper:f}=r,d=a-s,p=f-c;if(t==="dimension")return[r,n*(p/d)];const m=(n-s)*(p/d)+c;return[r,m]},Kt=r=>(e,t,n)=>[r,n],Qt=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:s}=r;return[r,s-(t-n)]},_t=r=>(e,t,n)=>{const{lower:s,upper:a}=r;return n=Zt(n,s,a),[e,n]},ye=class V{constructor(){C(this,"ops",[]),C(this,"currBounds",null),C(this,"currType",null),C(this,"reversed",!1),this.ops=[]}static translate(e){return new V().translate(e)}static magnify(e){return new V().magnify(e)}static scale(e,t){return new V().scale(e,t)}translate(e){const t=this.new(),n=Jt(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Ht(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=k(e,t),s=this.new(),a=Xt(n);return a.type="scale",s.ops.push(a),s}clamp(e,t){const n=k(e,t),s=this.new(),a=_t(n);return a.type="clamp",s.ops.push(a),s}reBound(e,t){const n=k(e,t),s=this.new(),a=Kt(n);return a.type="re-bound",s.ops.push(a),s}invert(){const e=Qt();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 V;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,s],a)=>a(n,e,s,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,s)=>{if(n.type==="scale"||t.some(([c,f])=>s>=c&&s<=f))return;const a=e.ops.findIndex((c,f)=>c.type==="scale"&&f>s);a!==-1&&t.push([s,a])}),t.forEach(([n,s])=>{const a=e.ops.slice(n,s);a.unshift(e.ops[s]),e.ops.splice(n,s-n+1,...a)}),e.reversed=!e.reversed,e}get transform(){return{scale:this.dim(1),offset:this.pos(0)}}};C(ye,"IDENTITY",new ye);let Be=ye;const Re=class R{constructor(e=new Be,t=new Be,n=null){C(this,"x"),C(this,"y"),C(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new R().translate(e,t)}static translateX(e){return new R().translateX(e)}static translateY(e){return new R().translateY(e)}static clamp(e){return new R().clamp(e)}static magnify(e){return new R().magnify(e)}static scale(e){return new R().scale(e)}static reBound(e){return new R().reBound(e)}translate(e,t){const n=qt(e,t),s=this.copy();return s.x=this.x.translate(n.x),s.y=this.y.translate(n.y),s}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(Ft(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!jt(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(fe(e)),t.y=t.y.scale(de(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(fe(e)),t.y=this.y.reBound(de(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(fe(e)),t.y=this.y.clamp(de(e)),t}copy(){const e=new R;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 ve(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})}}};C(Re,"IDENTITY",new Re);const er=i.z.bigint().or(i.z.string().transform(BigInt));var tr=Object.defineProperty,rr=(r,e,t)=>e in r?tr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,u=(r,e,t)=>rr(r,typeof e!="symbol"?e+"":e,t);let nr=(r,e=21)=>(t=e)=>{let n="",s=t|0;for(;s--;)n+=r[Math.random()*r.length|0];return n};const sr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ir=nr(sr,11),ar=i.z.enum(["static","dynamic"]),rt=(r,e)=>{const t=new v(e);if(![O.DAY,O.HOUR,O.MINUTE,O.SECOND,O.MILLISECOND,O.MICROSECOND,O.NANOSECOND].some(s=>s.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof v?new v(n):new O(n)},b=class h{constructor(e,t="UTC"){if(u(this,"value"),u(this,"encodeValue",!0),e==null)this.value=h.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*h.MILLISECOND.valueOf();else if(typeof e=="string")this.value=h.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=h.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=h.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=h.MAX:e=h.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const s=new Date(e,t-1,n,0,0,0,0);return new h(BigInt(s.getTime())*h.MILLISECOND.valueOf()).truncate(h.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,s,a]=e.split(":");let c="00",f="00";a!=null&&([c,f]=a.split("."));let d=h.hours(parseInt(n??"00")).add(h.minutes(parseInt(s??"00"))).add(h.seconds(parseInt(c??"00"))).add(h.milliseconds(parseInt(f??"00")));return t==="local"&&(d=d.add(h.utcOffset)),d.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return h.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new h(BigInt(n.getTime())*h.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(h.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new O(BigInt(new Date().getTimezoneOffset())*h.MINUTE.valueOf())}static since(e){return new h().span(e)}date(){return new Date(this.milliseconds)}equals(e){return this.valueOf()===new h(e).valueOf()}span(e){return this.range(e).span}range(e){return new Se(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 h(e).valueOf()}afterEq(e){return this.valueOf()>=new h(e).valueOf()}before(e){return this.valueOf()<new h(e).valueOf()}beforeEq(e){return this.valueOf()<=new h(e).valueOf()}add(e){return new h(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new h(this.valueOf()-BigInt(e.valueOf()))}get hours(){return Number(this.valueOf())/Number(O.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(O.MINUTE.valueOf())}get days(){return Number(this.valueOf())/Number(O.DAY.valueOf())}get seconds(){return Number(this.valueOf())/Number(O.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(h.MILLISECOND.valueOf())}get year(){return this.date().getFullYear()}setYear(e){const t=this.date();return t.setFullYear(e),new h(t)}get month(){return this.date().getMonth()}setMonth(e){const t=this.date();return t.setMonth(e),new h(t)}get day(){return this.date().getDate()}setDay(e){const t=this.date();return t.setDate(e),new h(t)}get hour(){return this.date().getHours()}setHour(e){const t=this.date();return t.setHours(e),new h(t)}get minute(){return this.date().getMinutes()}setMinute(e){const t=this.date();return t.setMinutes(e),new h(t)}get second(){return this.date().getSeconds()}setSecond(e){const t=this.date();return t.setSeconds(e),new h(t)}get millisecond(){return this.date().getMilliseconds()}setMillisecond(e){const t=this.date();return t.setMilliseconds(e),new h(t)}toString(){return this.date().toISOString()}remainder(e){return rt(this,e)}get isToday(){return this.truncate(O.DAY).equals(h.now().truncate(O.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new h(new Date)}static max(...e){let t=h.MIN;for(const n of e){const s=new h(n);s.after(t)&&(t=s)}return t}static min(...e){let t=h.MAX;for(const n of e){const s=new h(n);s.before(t)&&(t=s)}return t}static nanoseconds(e){return new h(e)}static microseconds(e){return h.nanoseconds(e*1e3)}static milliseconds(e){return h.microseconds(e*1e3)}static seconds(e){return h.milliseconds(e*1e3)}static minutes(e){return h.seconds(e*60)}static hours(e){return h.minutes(e*60)}static days(e){return h.hours(e*24)}};u(b,"NANOSECOND",b.nanoseconds(1)),u(b,"MICROSECOND",b.microseconds(1)),u(b,"MILLISECOND",b.milliseconds(1)),u(b,"SECOND",b.seconds(1)),u(b,"MINUTE",b.minutes(1)),u(b,"HOUR",b.hours(1)),u(b,"DAY",b.days(1)),u(b,"MAX",new b((1n<<63n)-1n)),u(b,"MIN",new b(0)),u(b,"ZERO",new b(0)),u(b,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new b(r.value)),i.z.string().transform(r=>new b(BigInt(r))),i.z.instanceof(Number).transform(r=>new b(r)),i.z.number().transform(r=>new b(r)),i.z.instanceof(b)]));let v=b;const T=class g{constructor(e){u(this,"value"),u(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}static fromSeconds(e){return e instanceof g?e:e instanceof Ce?e.period:e instanceof v?new g(e):["number","bigint"].includes(typeof e)?g.seconds(e):new g(e)}static fromMilliseconds(e){return e instanceof g?e:e instanceof Ce?e.period:e instanceof v?new g(e):["number","bigint"].includes(typeof e)?g.milliseconds(e):new g(e)}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new g(e).valueOf()}greaterThan(e){return this.valueOf()>new g(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new g(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new g(e).valueOf()}remainder(e){return rt(this,e)}truncate(e){return new g(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(g.DAY),t=this.truncate(g.HOUR),n=this.truncate(g.MINUTE),s=this.truncate(g.SECOND),a=this.truncate(g.MILLISECOND),c=this.truncate(g.MICROSECOND),f=this.truncate(g.NANOSECOND),d=e,p=t.sub(e),m=n.sub(t),l=s.sub(n),A=a.sub(s),U=c.sub(a),B=f.sub(c);let z="";return d.isZero||(z+=`${d.days}d `),p.isZero||(z+=`${p.hours}h `),m.isZero||(z+=`${m.minutes}m `),l.isZero||(z+=`${l.seconds}s `),A.isZero||(z+=`${A.milliseconds}ms `),U.isZero||(z+=`${U.microseconds}µs `),B.isZero||(z+=`${B.nanoseconds}ns`),z.trim()}mult(e){return new g(this.valueOf()*BigInt(e))}get days(){return Number(this.valueOf())/Number(g.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(g.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(g.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(g.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(g.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(g.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new g(e).valueOf()}add(e){return new g(this.valueOf()+new g(e).valueOf())}sub(e){return new g(this.valueOf()-new g(e).valueOf())}static nanoseconds(e=1){return new g(e)}static microseconds(e=1){return g.nanoseconds(j(e,1e3))}static milliseconds(e=1){return g.microseconds(j(e,1e3))}static seconds(e=1){return g.milliseconds(j(e,1e3))}static minutes(e=1){return g.seconds(j(e,60))}static hours(e){return g.minutes(j(e,60))}static days(e){return g.hours(j(e,24))}};u(T,"NANOSECOND",T.nanoseconds(1)),u(T,"MICROSECOND",T.microseconds(1)),u(T,"MILLISECOND",T.milliseconds(1)),u(T,"SECOND",T.seconds(1)),u(T,"MINUTE",T.minutes(1)),u(T,"HOUR",T.hours(1)),u(T,"DAY",T.days(1)),u(T,"MAX",new T((1n<<63n)-1n)),u(T,"MIN",new T(0)),u(T,"ZERO",new T(0)),u(T,"z",i.z.union([i.z.object({value:i.z.bigint()}).transform(r=>new T(r.value)),i.z.string().transform(r=>new T(BigInt(r))),i.z.instanceof(Number).transform(r=>new T(r)),i.z.number().transform(r=>new T(r)),i.z.instanceof(T)]));let O=T;const Z=class re extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new re(e).valueOf()}get period(){return O.seconds(1/this.valueOf())}sampleCount(e){return new O(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new x(t).valueOf()}span(e){return O.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new re(e)}static khz(e){return re.hz(e*1e3)}};u(Z,"z",i.z.union([i.z.number().transform(r=>new Z(r)),i.z.instanceof(Number).transform(r=>new Z(r)),i.z.instanceof(Z)]));let Ce=Z;const I=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new me(e*this.valueOf())}};u(I,"UNKNOWN",new I(0)),u(I,"BIT128",new I(16)),u(I,"BIT64",new I(8)),u(I,"BIT32",new I(4)),u(I,"BIT16",new I(2)),u(I,"BIT8",new I(1)),u(I,"z",i.z.union([i.z.number().transform(r=>new I(r)),i.z.instanceof(Number).transform(r=>new I(r)),i.z.instanceof(I)]));let x=I;const M=class ne{constructor(e,t){u(this,"start"),u(this,"end"),typeof e=="object"&&"start"in e?(this.start=new v(e.start),this.end=new v(e.end)):(this.start=new v(e),this.end=new v(t))}get span(){return new O(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new ne(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=O.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const s=v.max(n.start,e.start),a=v.min(n.end,e.end);return a.before(s)?!1:new O(a.sub(s)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),s=this.end.sub(e.end).valueOf();return n<0&&(n=-n),s<0&&(s=-s),n<=t.valueOf()&&s<=t.valueOf()}contains(e){return e instanceof ne?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new ne(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}};u(M,"MAX",new M(v.MIN,v.MAX)),u(M,"MIN",new M(v.MAX,v.MIN)),u(M,"ZERO",new M(v.ZERO,v.ZERO)),u(M,"z",i.z.union([i.z.object({start:v.z,end:v.z}).transform(r=>new M(r.start,r.end)),i.z.instanceof(M)]));let Se=M;const o=class S extends String{constructor(e){if(e instanceof S||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}const t=S.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}throw super(S.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=S.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(S.JSON)||this.equals(S.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(S.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=S.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}get isUnsigned(){return this.equals(S.UINT8)||this.equals(S.UINT16)||this.equals(S.UINT32)||this.equals(S.UINT64)}get isSigned(){return this.equals(S.INT8)||this.equals(S.INT16)||this.equals(S.INT32)||this.equals(S.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(S.INT32)&&e.equals(S.FLOAT64)||this.equals(S.INT8)&&e.equals(S.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 S.BIG_INT_TYPES.some(e=>e.equals(this))}};u(o,"UNKNOWN",new o("unknown")),u(o,"FLOAT64",new o("float64")),u(o,"FLOAT32",new o("float32")),u(o,"INT64",new o("int64")),u(o,"INT32",new o("int32")),u(o,"INT16",new o("int16")),u(o,"INT8",new o("int8")),u(o,"UINT64",new o("uint64")),u(o,"UINT32",new o("uint32")),u(o,"UINT16",new o("uint16")),u(o,"UINT8",new o("uint8")),u(o,"BOOLEAN",o.UINT8),u(o,"TIMESTAMP",new o("timestamp")),u(o,"UUID",new o("uuid")),u(o,"STRING",new o("string")),u(o,"JSON",new o("json")),u(o,"ARRAY_CONSTRUCTORS",new Map([[o.UINT8.toString(),Uint8Array],[o.UINT16.toString(),Uint16Array],[o.UINT32.toString(),Uint32Array],[o.UINT64.toString(),BigUint64Array],[o.FLOAT32.toString(),Float32Array],[o.FLOAT64.toString(),Float64Array],[o.INT8.toString(),Int8Array],[o.INT16.toString(),Int16Array],[o.INT32.toString(),Int32Array],[o.INT64.toString(),BigInt64Array],[o.TIMESTAMP.toString(),BigInt64Array],[o.STRING.toString(),Uint8Array],[o.JSON.toString(),Uint8Array],[o.UUID.toString(),Uint8Array]])),u(o,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,o.UINT8],[Uint16Array.name,o.UINT16],[Uint32Array.name,o.UINT32],[BigUint64Array.name,o.UINT64],[Float32Array.name,o.FLOAT32],[Float64Array.name,o.FLOAT64],[Int8Array.name,o.INT8],[Int16Array.name,o.INT16],[Int32Array.name,o.INT32],[BigInt64Array.name,o.INT64]])),u(o,"DENSITIES",new Map([[o.UINT8.toString(),x.BIT8],[o.UINT16.toString(),x.BIT16],[o.UINT32.toString(),x.BIT32],[o.UINT64.toString(),x.BIT64],[o.FLOAT32.toString(),x.BIT32],[o.FLOAT64.toString(),x.BIT64],[o.INT8.toString(),x.BIT8],[o.INT16.toString(),x.BIT16],[o.INT32.toString(),x.BIT32],[o.INT64.toString(),x.BIT64],[o.TIMESTAMP.toString(),x.BIT64],[o.STRING.toString(),x.UNKNOWN],[o.JSON.toString(),x.UNKNOWN],[o.UUID.toString(),x.BIT128]])),u(o,"ALL",[o.UNKNOWN,o.FLOAT64,o.FLOAT32,o.INT64,o.INT32,o.INT16,o.INT8,o.UINT64,o.UINT32,o.UINT16,o.UINT8,o.TIMESTAMP,o.UUID,o.STRING,o.JSON]),u(o,"BIG_INT_TYPES",[o.INT64,o.UINT64,o.TIMESTAMP]),u(o,"z",i.z.union([i.z.string().transform(r=>new o(r)),i.z.instanceof(o)]));let w=o;const E=class N extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return N.bytes(this.valueOf()+e.valueOf())}sub(e){return N.bytes(this.valueOf()-e.valueOf())}truncate(e){return new N(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return N.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/N.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/N.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/N.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/N.TERABYTE.valueOf()}toString(){const e=this.truncate(N.TERABYTE),t=this.truncate(N.GIGABYTE),n=this.truncate(N.MEGABYTE),s=this.truncate(N.KILOBYTE),a=this.truncate(N.BYTE),c=e,f=t.sub(e),d=n.sub(t),p=s.sub(n),m=a.sub(s);let l="";return c.isZero||(l+=`${c.terabytes}TB `),f.isZero||(l+=`${f.gigabytes}GB `),d.isZero||(l+=`${d.megabytes}MB `),p.isZero||(l+=`${p.kilobytes}KB `),(!m.isZero||l==="")&&(l+=`${m.valueOf()}B`),l.trim()}static bytes(e=1){return new N(e)}static kilobytes(e=1){return N.bytes(e.valueOf()*1e3)}static megabytes(e=1){return N.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return N.megabytes(e.valueOf()*1e3)}static terabytes(e){return N.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};u(E,"BYTE",new E(1)),u(E,"KILOBYTE",E.kilobytes(1)),u(E,"MEGABYTE",E.megabytes(1)),u(E,"GIGABYTE",E.gigabytes(1)),u(E,"TERABYTE",E.terabytes(1)),u(E,"ZERO",new E(0)),u(E,"z",i.z.union([i.z.number().transform(r=>new E(r)),i.z.instanceof(E)]));let me=E;i.z.union([i.z.instanceof(Uint8Array),i.z.instanceof(Uint16Array),i.z.instanceof(Uint32Array),i.z.instanceof(BigUint64Array),i.z.instanceof(Float32Array),i.z.instanceof(Float64Array),i.z.instanceof(Int8Array),i.z.instanceof(Int16Array),i.z.instanceof(Int32Array),i.z.instanceof(BigInt64Array)]);const nt=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof v||r instanceof O||r instanceof Date},or=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t.valueOf())-BigInt(n.valueOf()):H(t,-n).valueOf(),ur=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof hr?!0:nt(r),Y=-1,cr=i.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer),lr=i.z.union([i.z.null(),i.z.undefined()]).transform(()=>new Uint8Array().buffer),we=10,J=class ${constructor(e){u(this,"key",""),u(this,"isSynnaxSeries",!0),u(this,"dataType"),u(this,"sampleOffset"),u(this,"gl"),u(this,"_data"),u(this,"_timeRange"),u(this,"alignment",0n),u(this,"_cachedMin"),u(this,"_cachedMax"),u(this,"writePos",Y),u(this,"_refCount",0),u(this,"_cachedLength"),u(this,"_cachedIndexes"),ur(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:s=0,glBufferUsage:a="static",alignment:c=0n,key:f=ir()}=e,d=e.data??[];if(d instanceof $||typeof d=="object"&&"isSynnaxSeries"in d&&d.isSynnaxSeries===!0){const l=d;this.key=l.key,this.dataType=l.dataType,this.sampleOffset=l.sampleOffset,this.gl=l.gl,this._data=l._data,this._timeRange=l._timeRange,this.alignment=l.alignment,this._cachedMin=l._cachedMin,this._cachedMax=l._cachedMax,this.writePos=l.writePos,this._refCount=l._refCount,this._cachedLength=l._cachedLength;return}const p=nt(d),m=Array.isArray(d);if(t!=null)this.dataType=new w(t);else{if(d instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(m||p){let l=d;if(!p){if(d.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");l=d[0]}if(typeof l=="string")this.dataType=w.STRING;else if(typeof l=="number")this.dataType=w.FLOAT64;else if(typeof l=="bigint")this.dataType=w.INT64;else if(typeof l=="boolean")this.dataType=w.BOOLEAN;else if(l instanceof v||l instanceof Date||l instanceof v)this.dataType=w.TIMESTAMP;else if(typeof l=="object")this.dataType=w.JSON;else throw new Error(`cannot infer data type of ${typeof l} when constructing a Series from a JS array`)}else this.dataType=new w(d)}if(!m&&!p)this._data=d;else{let l=p?[d]:d;const A=l[0];(A instanceof v||A instanceof Date||A instanceof O)&&(l=l.map(U=>new v(U).valueOf())),this.dataType.equals(w.STRING)?(this._cachedLength=l.length,this._data=new TextEncoder().encode(`${l.join(`
4
4
  `)}
5
5
  `).buffer):this.dataType.equals(w.JSON)?(this._cachedLength=l.length,this._data=new TextEncoder().encode(`${l.map(U=>te.encodeString(U)).join(`
6
6
  `)}
@@ -8,6 +8,6 @@
8
8
  `)}
9
9
  `);return new $({data:n,dataType:w.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(`${e.map(s=>te.encodeString(s)).join(`
10
10
  `)}
11
- `);return new $({data:n,dataType:w.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===k)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===k)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===k?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches(w.STRING,w.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
11
+ `);return new $({data:n,dataType:w.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===Y)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===Y)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===Y?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.matches(w.STRING,w.UUID))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.underlyingData).split(`
12
12
  `).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(w.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=w.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const s=this.underlyingData.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(s.buffer),c=>c.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(w.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(te.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new me(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===k?this.byteCapacity:this.dataType.isVariable?new me(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===k?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,s)=>{n===we&&(e++,t.push(s+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let s=0;s<this.length;s++)n[s]=or(this.dataType,e,this.data[s],t);return new $({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(w.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()),H(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(w.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()),H(this._cachedMin,this.sampleOffset))}get bounds(){return Y(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 H(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 H(n,this.sampleOffset)}atVariable(e,t){let n=0,s=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],s=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let c=0;c<this.data.length;c++)if(this.data[c]===we){if(e===0){s=c;break}n=c+1,e--}if(s===0&&(s=this.data.length),n>=s||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,s);return this.dataType.equals(w.STRING)?new TextDecoder().decode(a):Ze(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const s=Nt(e);for(;t<=n;){const a=Math.floor((t+n)/2),c=s(this.at(a,!0),e);if(c===0)return a;c<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals(w.FLOAT32)&&!this.dataType.equals(w.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:s}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==s)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==k){s===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(s).valueOf(),c=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,c.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=k}as(e){if(e==="string"){if(!this.dataType.equals(w.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(w.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:je(this.alignmentBounds.lower),upper:je(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 Y(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 fr(this);return this.dataType.equals(w.JSON)?new dr(e):e}return new gr(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new De(this,e,t??this.length)}subAlignmentIterator(e,t){return new De(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 $({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let s;return e?s=this.data.subarray(t,n):s=this.data.slice(t,n),new $({data:s,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new $({data:this.buffer,dataType:this.dataType,timeRange:Se.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};u(J,"crudeZ",i.z.object({timeRange:Se.z.optional(),dataType:w.z,alignment:er.optional(),data:i.z.union([cr,lr,i.z.instanceof(ArrayBuffer),i.z.instanceof(Uint8Array)]),glBufferUsage:ar.optional().default("static").optional()})),u(J,"z",J.crudeZ.transform(r=>new J(r)));let hr=J;class De{constructor(e,t,n){u(this,"series"),u(this,"end"),u(this,"index"),this.series=e;const s=Y(0,e.length);this.end=Me(s,n),this.index=Me(s,t)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}}class fr{constructor(e){if(u(this,"series"),u(this,"index"),u(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]!==we;)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 Pe,Le;class dr{constructor(e){u(this,"wrapped"),u(this,Pe,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:te.decodeString(e.value)}}[(Le=Symbol.iterator,Pe=Symbol.toStringTag,Le)](){return this}}var ke,Ye;class gr{constructor(e){u(this,"series"),u(this,"index"),u(this,ke,"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)}}[(Ye=Symbol.iterator,ke=Symbol.toStringTag,Ye)](){return this}}const H=(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),je=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}};i.z.object({key:i.z.string(),value:i.z.string()});i.z.record(i.z.union([i.z.number(),i.z.string(),i.z.symbol()]),i.z.unknown());const st=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",pr=st(),it=["MacOS","Windows","Linux","Docker"],yr=["macos","windows","linux","docker"],mr={macos:"MacOS",windows:"Windows",linux:"Linux",docker:"Docker"},wr=i.z.enum(it).or(i.z.enum(yr).transform(r=>mr[r]));let ge;const br=()=>{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"},Tr=(r={})=>{const{force:e,default:t}=r;return e??ge??(ge=br(),ge??t)},at=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:it,RUNTIME:pr,detect:st,getOS:Tr,osZ:wr},Symbol.toStringTag,{value:"Module"}));var Or=Object.defineProperty,vr=(r,e,t)=>e in r?Or(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,X=(r,e,t)=>vr(r,typeof e!="symbol"?e+"":e,t);const Sr=(...r)=>r.map(ot).join(""),ot=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),Nr=r=>r.endsWith("/")?r.slice(0,-1):r,Ir=(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("&")}`,be=class Te{constructor({host:e,port:t,protocol:n="",pathPrefix:s=""}){X(this,"protocol"),X(this,"host"),X(this,"port"),X(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=ot(s)}replace(e){return new Te({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Te({...this,pathPrefix:Sr(this.path,e)})}toString(){return Nr(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};X(be,"UNKNOWN",new be({host:"unknown",port:0}));let Er=be;var Ar=Object.defineProperty,xr=(r,e,t)=>e in r?Ar(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,se=(r,e,t)=>xr(r,typeof e!="symbol"?e+"":e,t);const zr=async r=>await new Promise(e=>setTimeout(e,O.fromMilliseconds(r).milliseconds)),Mr=i.z.object({interval:O.z.optional(),maxRetries:i.z.number().optional(),scale:i.z.number().optional()}),$r=(r={})=>{const e=r.sleepFn||zr,t=r.maxRetries??5,n=r.scale??1;let s=0,a=new O(r.interval??O.milliseconds(1));return async()=>s>=t?!1:(await e(a),a=a.mult(n),s++,!0)},Ur=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:Mr,create:$r},Symbol.toStringTag,{value:"Module"})),q=class extends Number{};se(q,"Absolute",255),se(q,"Default",1),se(q,"z",i.z.union([i.z.instanceof(q),i.z.number().int().min(0).max(255).transform(r=>new q(r)),i.z.instanceof(Number).transform(r=>new q(r))]));i.z.object({name:i.z.string(),key:i.z.string()});const ut=class K extends Error{constructor(){super(K.MESSAGE)}matches(e){return typeof e=="string"?e.includes(K.MESSAGE):e instanceof K||e.message.includes(K.MESSAGE)}};se(ut,"MESSAGE","canceled");let Br=ut;new Br;i.z.string().regex(/^\d+\.\d+\.\d+$/);const ce=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);class _ extends Error{constructor(){super(...arguments);y(this,"discriminator","FreighterError");y(this,"type","")}}const Rr=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},qe="unknown",Fe="nil",Cr="freighter",Ne=i.z.object({type:i.z.string(),data:i.z.string()});class Dr{constructor(){y(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:Fe,data:""};if(Rr(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:qe,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===Fe)return null;if(e.type===qe)return new Ge(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new Ge(e.data)}}const Ie=new Dr,ct=({encode:r,decode:e})=>Ie.register({encode:r,decode:e}),Pr=r=>Ie.encode(r),ae=r=>Ie.decode(r);class Ge extends _{constructor(){super(...arguments);y(this,"type","unknown")}}const le="freighter.",F=class F extends _{constructor(){super("EOF");y(this,"type",F.TYPE)}};y(F,"TYPE",`${le}eof`),y(F,"matches",ce(F.TYPE));let D=F;const G=class G extends _{constructor(){super("StreamClosed");y(this,"type",G.TYPE)}};y(G,"TYPE",`${le}stream_closed`),y(G,"matches",ce(G.TYPE));let P=G;const W=class W extends _{constructor(t={}){const{message:n="Unreachable",url:s=Er.UNKNOWN}=t;super(n);y(this,"type",W.TYPE);y(this,"url");this.url=s}};y(W,"TYPE",`${le}unreachable`),y(W,"matches",ce(W.TYPE));let L=W;const Lr=r=>{if(!r.type.startsWith(Cr))return null;if(D.matches(r))return{type:D.TYPE,data:"EOF"};if(P.matches(r))return{type:P.TYPE,data:"StreamClosed"};if(L.matches(r))return{type:L.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},kr=r=>{if(!r.type.startsWith(le))return null;switch(r.type){case D.TYPE:return new D;case P.TYPE:return new P;case L.TYPE:return new L;default:throw new Error(`Unknown error type: ${r.data}`)}};ct({encode:Lr,decode:kr});class lt{constructor(){y(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const s=async a=>{if(n===this.middleware.length)return await t(a);const c=this.middleware[n];return n++,await c(a,s)};return await s(e)}}const ht="Content-Type",We=r=>{if(at.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(s,a)=>await e(s,{...a,agent:n})};class Yr extends lt{constructor(t,n,s=!1){super();y(this,"endpoint");y(this,"encoder");y(this,"fetch");return this.endpoint=t.replace({protocol:s?"https":"http"}),this.encoder=n,this.fetch=We(this.endpoint.protocol),new Proxy(this,{get:(a,c,f)=>c==="endpoint"?this.endpoint:Reflect.get(a,c,f)})}get headers(){return{[ht]:this.encoder.contentType}}async send(t,n,s,a){n=s==null?void 0:s.parse(n);let c=null;const f=this.endpoint.child(t),d={};d.method="POST",d.body=this.encoder.encode(n??{});const[,p]=await this.executeMiddleware({target:f.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async m=>{const l={...m,params:{}};d.headers={...this.headers,...m.params};let A;try{A=await We(m.protocol)(m.target,d)}catch(B){let z=B;return z.message==="Load failed"&&(z=new L({url:f})),[l,z]}const U=await A.arrayBuffer();if(A!=null&&A.ok)return a!=null&&(c=this.encoder.decode(U,a)),[l,null];try{if(A.status!==400)return[l,new Error(A.statusText)];const B=this.encoder.decode(U,Ne),z=ae(B);return[l,z]}catch(B){return[l,new Error(`[freighter] - failed to decode error: ${A.statusText}: ${B.message}`)]}});return[c,p]}}const jr=(r,e)=>{class t{constructor(s){y(this,"wrapped");this.wrapped=s}use(...s){this.wrapped.use(...s)}async send(s,a,c,f){const d=Ur.create(e);do{const[p,m]=await this.wrapped.send(s,a,c,f);if(m==null||!L.matches(m))return[p,m];if(!await d())return[p,m]}while(!0)}}return new t(r)},qr=async(r,e,t,n,s)=>{const[a,c]=await r.send(e,t,n,s);if(c!=null)throw c;return a},Fr=()=>at.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Gr=i.z.object({type:i.z.union([i.z.literal("data"),i.z.literal("close"),i.z.literal("open")]),payload:i.z.unknown().optional(),error:i.z.optional(Ne)});class Wr{constructor(e,t,n,s){y(this,"encoder");y(this,"reqSchema");y(this,"resSchema");y(this,"ws");y(this,"serverClosed");y(this,"sendClosed");y(this,"receiveDataQueue",[]);y(this,"receiveCallbacksQueue",[]);this.encoder=t,this.reqSchema=n,this.resSchema=s,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}async receiveOpenAck(){const e=await this.receiveMsg();if(e.type!=="open"){if(e.error==null)throw new Error("Message error must be defined");return ae(e.error)}return null}send(e){if(this.serverClosed!=null)return new D;if(this.sendClosed)throw new P;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=ae(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(){const e=this.receiveDataQueue.shift();return e??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,Gr)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:Xr(e)?D.TYPE:P.TYPE,data:""}})}}const Vr="freighterctx",Zr=1e3,Jr=1001,Hr=[Zr,Jr],Xr=r=>Hr.includes(r.code),oe=class oe extends lt{constructor(t,n,s=!1){super();y(this,"baseUrl");y(this,"encoder");this.baseUrl=t.replace({protocol:s?"wss":"ws"}),this.encoder=n}async stream(t,n,s){const a=Fr();let c;const[,f]=await this.executeMiddleware({target:t,protocol:"websocket",params:{},role:"client"},async d=>{const p=a(this.buildURL(t,d)),m={...d,params:{}};p.binaryType=oe.MESSAGE_TYPE;const l=await this.wrapSocket(p,n,s);return l instanceof Error?[m,l]:(c=l,[m,null])});if(f!=null)throw f;return c}buildURL(t,n){const s=Ir({[ht]:this.encoder.contentType,...n.params},Vr);return this.baseUrl.child(t).toString()+s}async wrapSocket(t,n,s){return await new Promise(a=>{t.onopen=()=>{const c=new Wr(t,this.encoder,n,s);c.receiveOpenAck().then(f=>{f!=null?a(f):a(c)}).catch(f=>a(f))},t.onerror=c=>{const f=c;a(new Error(f.message))}})}};y(oe,"MESSAGE_TYPE","arraybuffer");let Oe=oe;exports.BaseTypedError=_;exports.EOF=D;exports.HTTPClient=Yr;exports.StreamClosed=P;exports.Unreachable=L;exports.WebSocketClient=Oe;exports.decodeError=ae;exports.encodeError=Pr;exports.errorMatcher=ce;exports.errorZ=Ne;exports.registerError=ct;exports.sendRequired=qr;exports.unaryWithBreaker=jr;
13
+ `).slice(0,-1).map(t=>e.parse(te.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new me(this.underlyingData.byteLength)}get capacity(){return this.dataType.isVariable?this.byteCapacity.valueOf():this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===Y?this.byteCapacity:this.dataType.isVariable?new me(this.writePos):this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===Y?this.data.length:this.writePos}calculateCachedLength(){if(!this.dataType.isVariable)throw new Error("cannot calculate length of a non-variable length data type");let e=0;const t=[0];return this.data.forEach((n,s)=>{n===we&&(e++,t.push(s+1))}),this._cachedIndexes=t,this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let s=0;s<this.length;s++)n[s]=or(this.dataType,e,this.data[s],t);return new $({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(w.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()),H(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(w.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()),H(this._cachedMin,this.sampleOffset))}get bounds(){return k(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 H(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 H(n,this.sampleOffset)}atVariable(e,t){let n=0,s=0;if(this._cachedIndexes!=null)n=this._cachedIndexes[e],s=this._cachedIndexes[e+1]-1;else{e<0&&(e=this.length+e);for(let c=0;c<this.data.length;c++)if(this.data[c]===we){if(e===0){s=c;break}n=c+1,e--}if(s===0&&(s=this.data.length),n>=s||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}}const a=this.data.slice(n,s);return this.dataType.equals(w.STRING)?new TextDecoder().decode(a):Ze(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const s=Nt(e);for(;t<=n;){const a=Math.floor((t+n)/2),c=s(this.at(a,!0),e);if(c===0)return a;c<0?t=a+1:n=a-1}return t}updateGLBuffer(e){if(this.gl.control=e,!this.dataType.equals(w.FLOAT32)&&!this.dataType.equals(w.UINT8))throw new Error("Only FLOAT32 and UINT8 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:s}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==s)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==Y){s===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(s).valueOf(),c=this.underlyingData.slice(this.gl.prevBuffer,this.writePos);e.bufferSubData(e.ARRAY_BUFFER,a,c.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=Y}as(e){if(e==="string"){if(!this.dataType.equals(w.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(w.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:je(this.alignmentBounds.lower),upper:je(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 k(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 fr(this);return this.dataType.equals(w.JSON)?new dr(e):e}return new gr(this)}slice(e,t){return this.sliceSub(!1,e,t)}sub(e,t){return this.sliceSub(!0,e,t)}subIterator(e,t){return new De(this,e,t??this.length)}subAlignmentIterator(e,t){return new De(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 $({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}sliceSub(e,t,n){if(t<=0&&(n==null||n>=this.length))return this;let s;return e?s=this.data.subarray(t,n):s=this.data.slice(t,n),new $({data:s,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(t)})}reAlign(e){return new $({data:this.buffer,dataType:this.dataType,timeRange:Se.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};u(J,"crudeZ",i.z.object({timeRange:Se.z.optional(),dataType:w.z,alignment:er.optional(),data:i.z.union([cr,lr,i.z.instanceof(ArrayBuffer),i.z.instanceof(Uint8Array)]),glBufferUsage:ar.optional().default("static").optional()})),u(J,"z",J.crudeZ.transform(r=>new J(r)));let hr=J;class De{constructor(e,t,n){u(this,"series"),u(this,"end"),u(this,"index"),this.series=e;const s=k(0,e.length);this.end=Me(s,n),this.index=Me(s,t)}next(){return this.index>=this.end?{done:!0,value:void 0}:{done:!1,value:this.series.at(this.index++,!0)}}[Symbol.iterator](){return this}}class fr{constructor(e){if(u(this,"series"),u(this,"index"),u(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]!==we;)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 Pe,Le;class dr{constructor(e){u(this,"wrapped"),u(this,Pe,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:te.decodeString(e.value)}}[(Le=Symbol.iterator,Pe=Symbol.toStringTag,Le)](){return this}}var Ye,ke;class gr{constructor(e){u(this,"series"),u(this,"index"),u(this,Ye,"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)}}[(ke=Symbol.iterator,Ye=Symbol.toStringTag,ke)](){return this}}const H=(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),je=r=>{const e=r>>32n,t=r&0xffffffffn;return{domain:e,sample:t}};i.z.object({key:i.z.string(),value:i.z.string()});i.z.record(i.z.union([i.z.number(),i.z.string(),i.z.symbol()]),i.z.unknown());const st=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",pr=st(),it=["macOS","Windows","Linux"],yr=["macos","windows","linux"],mr={macos:"macOS",windows:"Windows",linux:"Linux"},wr=i.z.enum(it).or(i.z.enum(yr).transform(r=>mr[r])),br=()=>{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 ge;const Tr=(r={})=>{const{force:e,default:t}=r;return e??ge??(ge=br(),ge??t)},at=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:it,RUNTIME:pr,detect:st,getOS:Tr,osZ:wr},Symbol.toStringTag,{value:"Module"}));var Or=Object.defineProperty,vr=(r,e,t)=>e in r?Or(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,X=(r,e,t)=>vr(r,typeof e!="symbol"?e+"":e,t);const Sr=(...r)=>r.map(ot).join(""),ot=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),Nr=r=>r.endsWith("/")?r.slice(0,-1):r,Ir=(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("&")}`,be=class Te{constructor({host:e,port:t,protocol:n="",pathPrefix:s=""}){X(this,"protocol"),X(this,"host"),X(this,"port"),X(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=ot(s)}replace(e){return new Te({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Te({...this,pathPrefix:Sr(this.path,e)})}toString(){return Nr(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};X(be,"UNKNOWN",new be({host:"unknown",port:0}));let Er=be;var Ar=Object.defineProperty,xr=(r,e,t)=>e in r?Ar(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,se=(r,e,t)=>xr(r,typeof e!="symbol"?e+"":e,t);const zr=async r=>await new Promise(e=>setTimeout(e,O.fromMilliseconds(r).milliseconds)),Mr=i.z.object({interval:O.z.optional(),maxRetries:i.z.number().optional(),scale:i.z.number().optional()}),$r=(r={})=>{const e=r.sleepFn||zr,t=r.maxRetries??5,n=r.scale??1;let s=0,a=new O(r.interval??O.milliseconds(1));return async()=>s>=t?!1:(await e(a),a=a.mult(n),s++,!0)},Ur=Object.freeze(Object.defineProperty({__proto__:null,breakerConfig:Mr,create:$r},Symbol.toStringTag,{value:"Module"})),q=class extends Number{};se(q,"Absolute",255),se(q,"Default",1),se(q,"z",i.z.union([i.z.instanceof(q),i.z.number().int().min(0).max(255).transform(r=>new q(r)),i.z.instanceof(Number).transform(r=>new q(r))]));i.z.object({name:i.z.string(),key:i.z.string()});const ut=class K extends Error{constructor(){super(K.MESSAGE)}matches(e){return typeof e=="string"?e.includes(K.MESSAGE):e instanceof K||e.message.includes(K.MESSAGE)}};se(ut,"MESSAGE","canceled");let Br=ut;new Br;i.z.string().regex(/^\d+\.\d+\.\d+$/);const ce=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);class _ extends Error{constructor(){super(...arguments);y(this,"discriminator","FreighterError");y(this,"type","")}}const Rr=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},qe="unknown",Fe="nil",Cr="freighter",Ne=i.z.object({type:i.z.string(),data:i.z.string()});class Dr{constructor(){y(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:Fe,data:""};if(Rr(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:qe,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===Fe)return null;if(e.type===qe)return new Ge(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new Ge(e.data)}}const Ie=new Dr,ct=({encode:r,decode:e})=>Ie.register({encode:r,decode:e}),Pr=r=>Ie.encode(r),ae=r=>Ie.decode(r);class Ge extends _{constructor(){super(...arguments);y(this,"type","unknown")}}const le="freighter.",F=class F extends _{constructor(){super("EOF");y(this,"type",F.TYPE)}};y(F,"TYPE",`${le}eof`),y(F,"matches",ce(F.TYPE));let D=F;const G=class G extends _{constructor(){super("StreamClosed");y(this,"type",G.TYPE)}};y(G,"TYPE",`${le}stream_closed`),y(G,"matches",ce(G.TYPE));let P=G;const W=class W extends _{constructor(t={}){const{message:n="Unreachable",url:s=Er.UNKNOWN}=t;super(n);y(this,"type",W.TYPE);y(this,"url");this.url=s}};y(W,"TYPE",`${le}unreachable`),y(W,"matches",ce(W.TYPE));let L=W;const Lr=r=>{if(!r.type.startsWith(Cr))return null;if(D.matches(r))return{type:D.TYPE,data:"EOF"};if(P.matches(r))return{type:P.TYPE,data:"StreamClosed"};if(L.matches(r))return{type:L.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},Yr=r=>{if(!r.type.startsWith(le))return null;switch(r.type){case D.TYPE:return new D;case P.TYPE:return new P;case L.TYPE:return new L;default:throw new Error(`Unknown error type: ${r.data}`)}};ct({encode:Lr,decode:Yr});class lt{constructor(){y(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const s=async a=>{if(n===this.middleware.length)return await t(a);const c=this.middleware[n];return n++,await c(a,s)};return await s(e)}}const ht="Content-Type",We=r=>{if(at.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(s,a)=>await e(s,{...a,agent:n})};class kr extends lt{constructor(t,n,s=!1){super();y(this,"endpoint");y(this,"encoder");y(this,"fetch");return this.endpoint=t.replace({protocol:s?"https":"http"}),this.encoder=n,this.fetch=We(this.endpoint.protocol),new Proxy(this,{get:(a,c,f)=>c==="endpoint"?this.endpoint:Reflect.get(a,c,f)})}get headers(){return{[ht]:this.encoder.contentType}}async send(t,n,s,a){n=s==null?void 0:s.parse(n);let c=null;const f=this.endpoint.child(t),d={};d.method="POST",d.body=this.encoder.encode(n??{});const[,p]=await this.executeMiddleware({target:f.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async m=>{const l={...m,params:{}};d.headers={...this.headers,...m.params};let A;try{A=await We(m.protocol)(m.target,d)}catch(B){let z=B;return z.message==="Load failed"&&(z=new L({url:f})),[l,z]}const U=await A.arrayBuffer();if(A!=null&&A.ok)return a!=null&&(c=this.encoder.decode(U,a)),[l,null];try{if(A.status!==400)return[l,new Error(A.statusText)];const B=this.encoder.decode(U,Ne),z=ae(B);return[l,z]}catch(B){return[l,new Error(`[freighter] - failed to decode error: ${A.statusText}: ${B.message}`)]}});return[c,p]}}const jr=(r,e)=>{class t{constructor(s){y(this,"wrapped");this.wrapped=s}use(...s){this.wrapped.use(...s)}async send(s,a,c,f){const d=Ur.create(e);do{const[p,m]=await this.wrapped.send(s,a,c,f);if(m==null||!L.matches(m))return[p,m];if(!await d())return[p,m]}while(!0)}}return new t(r)},qr=async(r,e,t,n,s)=>{const[a,c]=await r.send(e,t,n,s);if(c!=null)throw c;return a},Fr=()=>at.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Gr=i.z.object({type:i.z.union([i.z.literal("data"),i.z.literal("close"),i.z.literal("open")]),payload:i.z.unknown().optional(),error:i.z.optional(Ne)});class Wr{constructor(e,t,n,s){y(this,"encoder");y(this,"reqSchema");y(this,"resSchema");y(this,"ws");y(this,"serverClosed");y(this,"sendClosed");y(this,"receiveDataQueue",[]);y(this,"receiveCallbacksQueue",[]);this.encoder=t,this.reqSchema=n,this.resSchema=s,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}async receiveOpenAck(){const e=await this.receiveMsg();if(e.type!=="open"){if(e.error==null)throw new Error("Message error must be defined");return ae(e.error)}return null}send(e){if(this.serverClosed!=null)return new D;if(this.sendClosed)throw new P;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=ae(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(){const e=this.receiveDataQueue.shift();return e??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,Gr)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:Xr(e)?D.TYPE:P.TYPE,data:""}})}}const Vr="freighterctx",Zr=1e3,Jr=1001,Hr=[Zr,Jr],Xr=r=>Hr.includes(r.code),oe=class oe extends lt{constructor(t,n,s=!1){super();y(this,"baseUrl");y(this,"encoder");this.baseUrl=t.replace({protocol:s?"wss":"ws"}),this.encoder=n}async stream(t,n,s){const a=Fr();let c;const[,f]=await this.executeMiddleware({target:t,protocol:"websocket",params:{},role:"client"},async d=>{const p=a(this.buildURL(t,d)),m={...d,params:{}};p.binaryType=oe.MESSAGE_TYPE;const l=await this.wrapSocket(p,n,s);return l instanceof Error?[m,l]:(c=l,[m,null])});if(f!=null)throw f;return c}buildURL(t,n){const s=Ir({[ht]:this.encoder.contentType,...n.params},Vr);return this.baseUrl.child(t).toString()+s}async wrapSocket(t,n,s){return await new Promise(a=>{t.onopen=()=>{const c=new Wr(t,this.encoder,n,s);c.receiveOpenAck().then(f=>{f!=null?a(f):a(c)}).catch(f=>a(f))},t.onerror=c=>{const f=c;a(new Error(f.message))}})}};y(oe,"MESSAGE_TYPE","arraybuffer");let Oe=oe;exports.BaseTypedError=_;exports.EOF=D;exports.HTTPClient=kr;exports.StreamClosed=P;exports.Unreachable=L;exports.WebSocketClient=Oe;exports.decodeError=ae;exports.encodeError=Pr;exports.errorMatcher=ce;exports.errorZ=Ne;exports.registerError=ct;exports.sendRequired=qr;exports.unaryWithBreaker=jr;
package/dist/freighter.js CHANGED
@@ -25,7 +25,10 @@ const dt = (r) => {
25
25
  }, Ve = ze(dt), gt = (r) => (
26
26
  // Don't convert the first character and don't convert a character that is after a
27
27
  // non-alphanumeric character
28
- r.replace(/([a-z0-9])([A-Z])/g, (e, t, n) => `${t}_${n.toLowerCase()}`)
28
+ r.replace(
29
+ /([a-z0-9])([A-Z])/g,
30
+ (e, t, n) => `${t}_${n.toLowerCase()}`
31
+ )
29
32
  ), pt = ze(gt), de = {
30
33
  recursive: !0,
31
34
  recursiveInArray: !0,
@@ -2083,22 +2086,21 @@ i.record(
2083
2086
  i.union([i.number(), i.string(), i.symbol()]),
2084
2087
  i.unknown()
2085
2088
  );
2086
- const nt = () => typeof process < "u" && process.versions != null && process.versions.node != null ? "node" : typeof window > "u" || window.document === void 0 ? "webworker" : "browser", gr = nt(), st = ["MacOS", "Windows", "Linux", "Docker"], pr = ["macos", "windows", "linux", "docker"], yr = {
2087
- macos: "MacOS",
2089
+ const nt = () => typeof process < "u" && process.versions != null && process.versions.node != null ? "node" : typeof window > "u" || window.document === void 0 ? "webworker" : "browser", gr = nt(), st = ["macOS", "Windows", "Linux"], pr = ["macos", "windows", "linux"], yr = {
2090
+ macos: "macOS",
2088
2091
  windows: "Windows",
2089
- linux: "Linux",
2090
- docker: "Docker"
2092
+ linux: "Linux"
2091
2093
  }, mr = i.enum(st).or(
2092
2094
  i.enum(pr).transform((r) => yr[r])
2093
- );
2094
- let fe;
2095
- const wr = () => {
2095
+ ), wr = () => {
2096
2096
  if (typeof window > "u") return;
2097
2097
  const r = window.navigator.userAgent.toLowerCase();
2098
- if (r.includes("mac")) return "MacOS";
2098
+ if (r.includes("mac")) return "macOS";
2099
2099
  if (r.includes("win")) return "Windows";
2100
2100
  if (r.includes("linux")) return "Linux";
2101
- }, br = (r = {}) => {
2101
+ };
2102
+ let fe;
2103
+ const br = (r = {}) => {
2102
2104
  const { force: e, default: t } = r;
2103
2105
  return e ?? fe ?? (fe = wr(), fe ?? t);
2104
2106
  }, it = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
package/eslint.config.js CHANGED
@@ -1,13 +1,11 @@
1
- /*
2
- * Copyright 2023 Synnax Labs, Inc.
3
- *
4
- * Use of this software is governed by the Business Source License included in the file
5
- * licenses/BSL.txt.
6
- *
7
- * As of the Change Date specified in that file, in accordance with the Business Source
8
- * License, use of this software will be governed by the Apache License, Version 2.0,
9
- * included in the file licenses/APL.txt.
10
- */
1
+ // Copyright 2025 Synnax Labs, Inc.
2
+ //
3
+ // Use of this software is governed by the Business Source License included in the file
4
+ // licenses/BSL.txt.
5
+ //
6
+ // As of the Change Date specified in that file, in accordance with the Business Source
7
+ // License, use of this software will be governed by the Apache License, Version 2.0,
8
+ // included in the file licenses/APL.txt.
11
9
 
12
10
  import synnaxConfig from "eslint-config-synnaxlabs";
13
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synnaxlabs/freighter",
3
- "version": "0.38.0",
3
+ "version": "0.38.1",
4
4
  "type": "module",
5
5
  "description": "a modular transport abstraction",
6
6
  "repository": "https://github.com/synnaxlabs/synnax/tree/main/freighter/ts",
@@ -17,8 +17,8 @@
17
17
  "node-fetch": "^2.7.0",
18
18
  "ws": "^8.18.0",
19
19
  "zod": "^3.24.1",
20
- "@synnaxlabs/alamos": "0.38.0",
21
- "@synnaxlabs/x": "0.38.0"
20
+ "@synnaxlabs/alamos": "0.38.1",
21
+ "@synnaxlabs/x": "0.38.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.10.6",
@@ -26,9 +26,9 @@
26
26
  "typescript": "^5.7.3",
27
27
  "vite": "^6.0.7",
28
28
  "vitest": "^2.1.8",
29
- "@synnaxlabs/tsconfig": "0.0.2",
29
+ "eslint-config-synnaxlabs": "0.0.1",
30
30
  "@synnaxlabs/vite-plugin": "0.0.1",
31
- "eslint-config-synnaxlabs": "0.0.1"
31
+ "@synnaxlabs/tsconfig": "0.0.2"
32
32
  },
33
33
  "main": "dist/freighter.cjs",
34
34
  "module": "dist/freighter.js",
package/src/alamos.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/errors.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/http.spec.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/http.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2024 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/middleware.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/stream.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/transport.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/unary.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
package/src/websocket.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.
@@ -207,7 +207,7 @@ export class WebSocketClient extends MiddlewareCollector implements StreamClient
207
207
  if (err != null) resolve(err);
208
208
  else resolve(oWs);
209
209
  })
210
- .catch((err) => resolve(err));
210
+ .catch((err: Error) => resolve(err));
211
211
  };
212
212
  ws.onerror = (ev: Event) => {
213
213
  const ev_ = ev as ErrorEvent;
package/vite.config.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2023 Synnax Labs, Inc.
1
+ // Copyright 2025 Synnax Labs, Inc.
2
2
  //
3
3
  // Use of this software is governed by the Business Source License included in the file
4
4
  // licenses/BSL.txt.