@synnaxlabs/client 0.25.0 → 0.26.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.
- package/.turbo/turbo-build.log +6 -6
- package/dist/access/access.spec.d.ts +2 -0
- package/dist/access/access.spec.d.ts.map +1 -0
- package/dist/access/client.d.ts +13 -0
- package/dist/access/client.d.ts.map +1 -0
- package/dist/access/external.d.ts +3 -0
- package/dist/access/external.d.ts.map +1 -0
- package/dist/access/index.d.ts +2 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/payload.d.ts +105 -0
- package/dist/access/payload.d.ts.map +1 -0
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/channel/payload.d.ts +17 -14
- package/dist/channel/payload.d.ts.map +1 -1
- package/dist/channel/retriever.d.ts +7 -7
- package/dist/client.cjs +18 -18
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2223 -2126
- package/dist/control/state.d.ts +1 -1
- package/dist/control/state.d.ts.map +1 -1
- package/dist/framer/adapter.d.ts +2 -0
- package/dist/framer/adapter.d.ts.map +1 -1
- package/dist/framer/client.d.ts.map +1 -1
- package/dist/framer/deleter.d.ts +1 -1
- package/dist/framer/deleter.d.ts.map +1 -1
- package/dist/framer/writer.d.ts +9 -6
- package/dist/framer/writer.d.ts.map +1 -1
- package/dist/hardware/device/client.d.ts +1 -66
- package/dist/hardware/device/client.d.ts.map +1 -1
- package/dist/hardware/device/external.d.ts +1 -0
- package/dist/hardware/device/external.d.ts.map +1 -1
- package/dist/hardware/device/index.d.ts +1 -1
- package/dist/hardware/device/index.d.ts.map +1 -1
- package/dist/hardware/device/payload.d.ts +73 -0
- package/dist/hardware/device/payload.d.ts.map +1 -0
- package/dist/hardware/rack/client.d.ts +2 -25
- package/dist/hardware/rack/client.d.ts.map +1 -1
- package/dist/hardware/rack/external.d.ts +1 -0
- package/dist/hardware/rack/external.d.ts.map +1 -1
- package/dist/hardware/rack/payload.d.ts +30 -0
- package/dist/hardware/rack/payload.d.ts.map +1 -0
- package/dist/hardware/task/client.d.ts +1 -145
- package/dist/hardware/task/client.d.ts.map +1 -1
- package/dist/hardware/task/external.d.ts +3 -0
- package/dist/hardware/task/external.d.ts.map +1 -0
- package/dist/hardware/task/index.d.ts +1 -1
- package/dist/hardware/task/index.d.ts.map +1 -1
- package/dist/hardware/task/payload.d.ts +151 -0
- package/dist/hardware/task/payload.d.ts.map +1 -0
- package/dist/label/payload.d.ts +1 -0
- package/dist/label/payload.d.ts.map +1 -1
- package/dist/ontology/client.d.ts +5 -5
- package/dist/ontology/payload.d.ts +40 -37
- package/dist/ontology/payload.d.ts.map +1 -1
- package/dist/ranger/payload.d.ts +5 -0
- package/dist/ranger/payload.d.ts.map +1 -1
- package/dist/setupspecs.d.ts.map +1 -1
- package/dist/signals/observable.d.ts +1 -1
- package/dist/signals/observable.d.ts.map +1 -1
- package/dist/user/client.d.ts +9 -0
- package/dist/user/client.d.ts.map +1 -0
- package/dist/user/external.d.ts +3 -0
- package/dist/user/external.d.ts.map +1 -0
- package/dist/user/index.d.ts +1 -1
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/payload.d.ts +5 -0
- package/dist/user/payload.d.ts.map +1 -1
- package/dist/workspace/lineplot/payload.d.ts +3 -0
- package/dist/workspace/lineplot/payload.d.ts.map +1 -1
- package/dist/workspace/payload.d.ts +3 -0
- package/dist/workspace/payload.d.ts.map +1 -1
- package/dist/workspace/schematic/payload.d.ts +3 -0
- package/dist/workspace/schematic/payload.d.ts.map +1 -1
- package/examples/node/basicReadWrite.js +28 -18
- package/examples/node/liveStream.js +7 -8
- package/examples/node/package-lock.json +2165 -2365
- package/examples/node/package.json +1 -1
- package/examples/node/seriesAndFrames.js +48 -47
- package/examples/node/streamWrite.js +34 -33
- package/package.json +5 -5
- package/src/access/access.spec.ts +276 -0
- package/src/access/client.ts +86 -0
- package/src/access/external.ts +11 -0
- package/src/access/index.ts +10 -0
- package/src/access/payload.ts +35 -0
- package/src/auth/auth.ts +1 -1
- package/src/channel/payload.ts +7 -0
- package/src/client.ts +7 -1
- package/src/control/state.ts +3 -3
- package/src/framer/adapter.spec.ts +9 -0
- package/src/framer/adapter.ts +12 -0
- package/src/framer/client.ts +3 -2
- package/src/framer/deleter.ts +2 -4
- package/src/framer/writer.spec.ts +99 -14
- package/src/framer/writer.ts +56 -23
- package/src/hardware/device/client.ts +8 -36
- package/src/hardware/device/external.ts +1 -0
- package/src/hardware/device/index.ts +1 -1
- package/src/hardware/device/payload.ts +44 -0
- package/src/hardware/rack/client.ts +10 -15
- package/src/hardware/rack/external.ts +1 -0
- package/src/hardware/rack/payload.ts +23 -0
- package/src/hardware/task/client.ts +1 -84
- package/src/hardware/task/external.ts +11 -0
- package/src/hardware/task/index.ts +1 -1
- package/src/hardware/task/payload.ts +92 -0
- package/src/label/payload.ts +3 -1
- package/src/ontology/payload.ts +6 -1
- package/src/ranger/payload.ts +11 -0
- package/src/setupspecs.ts +4 -2
- package/src/signals/observable.ts +5 -3
- package/src/transport.ts +3 -3
- package/src/user/client.ts +37 -0
- package/src/user/external.ts +11 -0
- package/src/user/index.ts +1 -1
- package/src/user/payload.ts +11 -0
- package/src/workspace/lineplot/payload.ts +7 -0
- package/src/workspace/payload.ts +7 -0
- package/src/workspace/schematic/payload.ts +7 -0
- package/tsconfig.json +4 -2
package/dist/client.cjs
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Di=Object.defineProperty;var Mi=(r,e,t)=>e in r?Di(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var o=(r,e,t)=>Mi(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("zod");var Zi=Object.defineProperty,Ui=(r,e,t)=>e in r?Zi(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,I=(r,e,t)=>Ui(r,typeof e!="symbol"?e+"":e,t);const Bi=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:e[0].toLowerCase()+e.slice(1)},Ln=r=>{const e=(t,n=Or)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(c=>e(c,n));if(!sr(t))return t;n=Wi(n);const i={},a=t;return Object.keys(a).forEach(c=>{let l=a[c];const u=r(c);n.recursive&&(sr(l)?nn(l,n.keepTypesOnRecursion)||(l=e(l,n)):n.recursiveInArray&&rn(l)&&(l=[...l].map(f=>{let p=f;return sr(f)?nn(p,n.keepTypesOnRecursion)||(p=e(f,n)):rn(f)&&(p=e({key:f},n).key),p}))),i[u]=l}),i};return e},Li=Ln(Bi),qi=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),Yi=Ln(qi),Or={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},Wi=(r=Or)=>(r.recursive==null?r=Or:r.recursiveInArray==null&&(r.recursiveInArray=!1),r),rn=r=>r!=null&&Array.isArray(r),sr=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),nn=(r,e)=>(e||[]).some(t=>r instanceof t),qn=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var Fi=Object.defineProperty,_i=(r,e,t)=>e in r?Fi(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,lt=(r,e,t)=>_i(r,typeof e!="symbol"?e+"":e,t);let Gi=class{constructor(){lt(this,"contentType","application/json"),lt(this,"decoder"),lt(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e)).buffer}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),i=Li(n);return t!=null?t.parse(i):i}encodeString(e){const t=Yi(e);return JSON.stringify(t,(n,i)=>ArrayBuffer.isView(i)?Array.from(i):qn(i)&&"encode_value"in i?typeof i.value=="bigint"?i.value.toString():i.value:typeof i=="bigint"?i.toString():i)}static registerCustomType(){}},Ki=class{constructor(){lt(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||!qn(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(i=>{const a=t.map(c=>JSON.stringify(i[c]??""));n.push(a.join(","))}),n.join(`
|
|
2
2
|
`)}decodeString(e,t){const[n,...i]=e.trim().split(`
|
|
3
|
-
`).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),c={};return a.forEach(l=>{c[l]=[]}),i.forEach(l=>{const u=l.split(",").map(f=>f.trim());a.forEach((f,g)=>{const p=this.parseValue(u[g]);p!=null&&c[f].push(p)})}),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(){}},Zi=class{constructor(){ct(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}};new Di;new Mi;new Zi;const Wt=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const Ln=s.z.object({width:s.z.number(),height:s.z.number()}),Ui=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),Bi=["width","height"];s.z.enum(Bi);const Li=["start","center","end"],qi=["signedWidth","signedHeight"];s.z.enum(qi);const Mt=s.z.object({x:s.z.number(),y:s.z.number()}),Yi=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),Wi=["x","y"],qn=s.z.enum(Wi),Yn=["top","right","bottom","left"];s.z.enum(Yn);const Fi=["left","right"],Wn=s.z.enum(Fi),_i=["top","bottom"],Fn=s.z.enum(_i),_n=["center"],rn=s.z.enum(_n),Gi=[...Yn,..._n],Gn=s.z.enum(Gi);s.z.enum(Li);const Ki=["first","last"];s.z.enum(Ki);const Ji=s.z.object({lower:s.z.number(),upper:s.z.number()}),Vi=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([Ji,Wt]);s.z.union([Vi,Wt]);s.z.union([qn,Gn]);s.z.union([qn,Gn,s.z.instanceof(String)]);const ir=(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 nn(r);return nn(t)},nn=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r;s.z.object({x:Wn.or(rn),y:Fn.or(rn)});const Hi=s.z.object({x:Wn,y:Fn}),Xi=Object.freeze({x:"left",y:"top"}),Qi=(r,e)=>r.x===e.x&&r.y===e.y,sn=s.z.union([s.z.number(),Mt,Wt,Ln,Ui,Yi]),ea=(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}},an=Object.freeze({x:0,y:0}),St=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:St,left:St,width:St,height:St});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Mt,two:Mt,root:Hi});const Mr=(r,e,t=0,n=0,i)=>{const a={one:{...an},two:{...an},root:i??Xi};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},ar=r=>{const e=Mr(r);return{lower:e.one.x,upper:e.two.x}},or=r=>{const e=Mr(r);return{lower:e.one.y,upper:e.two.y}},ta=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r;var ra=Object.defineProperty,na=(r,e,t)=>e in r?ra(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ue=(r,e,t)=>na(r,typeof e!="symbol"?e+"":e,t);const sa=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:sn,scale:sn});const ia=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],aa=r=>(e,t,n,i)=>[e,i?n/r:n*r],oa=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:c,upper:l}=r,u=a-i,f=l-c;if(t==="dimension")return[r,n*(f/u)];const g=(n-i)*(f/u)+c;return[r,g]},ca=r=>(e,t,n)=>[r,n],la=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},ua=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=sa(n,i,a),[e,n]},zr=class et{constructor(){ue(this,"ops",[]),ue(this,"currBounds",null),ue(this,"currType",null),ue(this,"reversed",!1),this.ops=[]}static translate(e){return new et().translate(e)}static magnify(e){return new et().magnify(e)}static scale(e,t){return new et().scale(e,t)}translate(e){const t=this.new(),n=ia(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=aa(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=ir(e,t),i=this.new(),a=oa(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=ir(e,t),i=this.new(),a=ua(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=ir(e,t),i=this.new(),a=ca(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=la();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 et;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([c,l])=>i>=c&&i<=l))return;const a=e.ops.findIndex((c,l)=>c.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}};ue(zr,"IDENTITY",new zr);let on=zr;const cn=class oe{constructor(e=new on,t=new on,n=null){ue(this,"x"),ue(this,"y"),ue(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new oe().translate(e,t)}static translateX(e){return new oe().translateX(e)}static translateY(e){return new oe().translateY(e)}static clamp(e){return new oe().clamp(e)}static magnify(e){return new oe().magnify(e)}static scale(e){return new oe().scale(e)}static reBound(e){return new oe().reBound(e)}translate(e,t){const n=ea(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(ta(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!Qi(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(ar(e)),t.y=t.y.scale(or(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(ar(e)),t.y=this.y.reBound(or(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(ar(e)),t.y=this.y.clamp(or(e)),t}copy(){const e=new oe;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)}}box(e){return Mr(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}};ue(cn,"IDENTITY",new cn);const ha=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([Ln,ha,Mt,Wt]);var ya=Object.defineProperty,da=(r,e,t)=>e in r?ya(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e,t)=>da(r,typeof e!="symbol"?e+"":e,t);const Kn=(r,e)=>{const t=new L(e);if(![q.DAY,q.HOUR,q.MINUTE,q.SECOND,q.MILLISECOND,q.MICROSECOND,q.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof L?new L(n):new q(n)},A=class b{constructor(e,t="UTC"){if(m(this,"value"),m(this,"encodeValue",!0),e==null)this.value=b.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*b.MILLISECOND.valueOf();else if(typeof e=="string")this.value=b.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=b.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=b.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=b.MAX:e=b.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new b(BigInt(i.getTime())*b.MILLISECOND.valueOf()).truncate(b.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let c="00",l="00";a!=null&&([c,l]=a.split("."));let u=b.hours(parseInt(n??"00",10)).add(b.minutes(parseInt(i??"00",10))).add(b.seconds(parseInt(c??"00",10))).add(b.milliseconds(parseInt(l??"00",10)));return t==="local"&&(u=u.add(b.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return b.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new b(BigInt(n.getTime())*b.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(b.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 q(BigInt(new Date().getTimezoneOffset())*b.MINUTE.valueOf())}static since(e){return new b().span(e)}date(){return new Date(this.milliseconds())}equals(e){return this.valueOf()===new b(e).valueOf()}span(e){return this.range(e).span}range(e){return new fa(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 b(e).valueOf()}afterEq(e){return this.valueOf()>=new b(e).valueOf()}before(e){return this.valueOf()<new b(e).valueOf()}beforeEq(e){return this.valueOf()<=new b(e).valueOf()}add(e){return new b(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new b(this.valueOf()-BigInt(e.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(b.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(e){return Kn(this,e)}get isToday(){return this.truncate(q.DAY).equals(b.now().truncate(q.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new b(new Date)}static max(...e){let t=b.MIN;for(const n of e){const i=new b(n);i.after(t)&&(t=i)}return t}static min(...e){let t=b.MAX;for(const n of e){const i=new b(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new b(e)}static microseconds(e){return b.nanoseconds(e*1e3)}static milliseconds(e){return b.microseconds(e*1e3)}static seconds(e){return b.milliseconds(e*1e3)}static minutes(e){return b.seconds(e*60)}static hours(e){return b.minutes(e*60)}static days(e){return b.hours(e*24)}};m(A,"NANOSECOND",A.nanoseconds(1)),m(A,"MICROSECOND",A.microseconds(1)),m(A,"MILLISECOND",A.milliseconds(1)),m(A,"SECOND",A.seconds(1)),m(A,"MINUTE",A.minutes(1)),m(A,"HOUR",A.hours(1)),m(A,"DAY",A.days(1)),m(A,"MAX",new A((1n<<63n)-1n)),m(A,"MIN",new A(0)),m(A,"ZERO",new A(0)),m(A,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new A(r.value)),s.z.string().transform(r=>new A(BigInt(r))),s.z.instanceof(Number).transform(r=>new A(r)),s.z.number().transform(r=>new A(r)),s.z.instanceof(A)]));let L=A;const k=class S{constructor(e){m(this,"value"),m(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new S(e).valueOf()}greaterThan(e){return this.valueOf()>new S(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new S(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new S(e).valueOf()}remainder(e){return Kn(this,e)}truncate(e){return new S(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(S.DAY),t=this.truncate(S.HOUR),n=this.truncate(S.MINUTE),i=this.truncate(S.SECOND),a=this.truncate(S.MILLISECOND),c=this.truncate(S.MICROSECOND),l=this.truncate(S.NANOSECOND),u=e,f=t.sub(e),g=n.sub(t),p=i.sub(n),P=a.sub(i),C=c.sub(a),X=l.sub(c);let j="";return u.isZero||(j+=`${u.days}d `),f.isZero||(j+=`${f.hours}h `),g.isZero||(j+=`${g.minutes}m `),p.isZero||(j+=`${p.seconds}s `),P.isZero||(j+=`${P.milliseconds}ms `),C.isZero||(j+=`${C.microseconds}µs `),X.isZero||(j+=`${X.nanoseconds}ns`),j.trim()}get days(){return Number(this.valueOf())/Number(S.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(S.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(S.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(S.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(S.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(S.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new S(e).valueOf()}add(e){return new S(this.valueOf()+new S(e).valueOf())}sub(e){return new S(this.valueOf()-new S(e).valueOf())}static nanoseconds(e=1){return new S(e)}static microseconds(e=1){return S.nanoseconds(e*1e3)}static milliseconds(e=1){return S.microseconds(e*1e3)}static seconds(e=1){return S.milliseconds(e*1e3)}static minutes(e){return S.seconds(e.valueOf()*60)}static hours(e){return S.minutes(e*60)}static days(e){return S.hours(e*24)}};m(k,"NANOSECOND",k.nanoseconds(1)),m(k,"MICROSECOND",k.microseconds(1)),m(k,"MILLISECOND",k.milliseconds(1)),m(k,"SECOND",k.seconds(1)),m(k,"MINUTE",k.minutes(1)),m(k,"HOUR",k.hours(1)),m(k,"DAY",k.days(1)),m(k,"MAX",new k((1n<<63n)-1n)),m(k,"MIN",new k(0)),m(k,"ZERO",new k(0)),m(k,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new k(r.value)),s.z.string().transform(r=>new k(BigInt(r))),s.z.instanceof(Number).transform(r=>new k(r)),s.z.number().transform(r=>new k(r)),s.z.instanceof(k)]));let q=k;const Nt=class At extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new At(e).valueOf()}get period(){return q.seconds(1/this.valueOf())}sampleCount(e){return new q(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new J(t).valueOf()}span(e){return q.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new At(e)}static khz(e){return At.hz(e*1e3)}};m(Nt,"z",s.z.union([s.z.number().transform(r=>new Nt(r)),s.z.instanceof(Number).transform(r=>new Nt(r)),s.z.instanceof(Nt)]));const U=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new pa(e*this.valueOf())}};m(U,"UNKNOWN",new U(0)),m(U,"BIT128",new U(16)),m(U,"BIT64",new U(8)),m(U,"BIT32",new U(4)),m(U,"BIT16",new U(2)),m(U,"BIT8",new U(1)),m(U,"z",s.z.union([s.z.number().transform(r=>new U(r)),s.z.instanceof(Number).transform(r=>new U(r)),s.z.instanceof(U)]));let J=U;const re=class kt{constructor(e,t){m(this,"start"),m(this,"end"),typeof e=="object"&&"start"in e?(this.start=new L(e.start),this.end=new L(e.end)):(this.start=new L(e),this.end=new L(t))}get span(){return new q(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}swap(){return new kt(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=q.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=L.max(n.start,e.start),a=L.min(n.end,e.end);return a.before(i)?!1:new q(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof kt?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new kt(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}};m(re,"MAX",new re(L.MIN,L.MAX)),m(re,"MIN",new re(L.MAX,L.MIN)),m(re,"ZERO",new re(L.ZERO,L.ZERO)),m(re,"z",s.z.union([s.z.object({start:L.z,end:L.z}).transform(r=>new re(r.start,r.end)),s.z.instanceof(re)]));let fa=re;const y=class ne extends String{constructor(e){if(e instanceof ne||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}else{const t=ne.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}}throw super(ne.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=ne.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()}toString(){return this.valueOf()}get isVariable(){return this.equals(ne.JSON)||this.equals(ne.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(ne.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=ne.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}canSafelyCastTo(e){return this.equals(e)?!0:this.isVariable&&!e.isVariable||!this.isVariable&&e.isVariable?!1:this.isFloat&&e.isInteger||this.isInteger&&e.isFloat?this.density.valueOf()<e.density.valueOf():this.isFloat&&e.isFloat||this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf():!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 ne.BIG_INT_TYPES.some(e=>e.equals(this))}};m(y,"UNKNOWN",new y("unknown")),m(y,"FLOAT64",new y("float64")),m(y,"FLOAT32",new y("float32")),m(y,"INT64",new y("int64")),m(y,"INT32",new y("int32")),m(y,"INT16",new y("int16")),m(y,"INT8",new y("int8")),m(y,"UINT64",new y("uint64")),m(y,"UINT32",new y("uint32")),m(y,"UINT16",new y("uint16")),m(y,"UINT8",new y("uint8")),m(y,"BOOLEAN",y.UINT8),m(y,"TIMESTAMP",new y("timestamp")),m(y,"UUID",new y("uuid")),m(y,"STRING",new y("string")),m(y,"JSON",new y("json")),m(y,"ARRAY_CONSTRUCTORS",new Map([[y.UINT8.toString(),Uint8Array],[y.UINT16.toString(),Uint16Array],[y.UINT32.toString(),Uint32Array],[y.UINT64.toString(),BigUint64Array],[y.FLOAT32.toString(),Float32Array],[y.FLOAT64.toString(),Float64Array],[y.INT8.toString(),Int8Array],[y.INT16.toString(),Int16Array],[y.INT32.toString(),Int32Array],[y.INT64.toString(),BigInt64Array],[y.TIMESTAMP.toString(),BigInt64Array],[y.STRING.toString(),Uint8Array],[y.JSON.toString(),Uint8Array],[y.UUID.toString(),Uint8Array]])),m(y,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,y.UINT8],[Uint16Array.name,y.UINT16],[Uint32Array.name,y.UINT32],[BigUint64Array.name,y.UINT64],[Float32Array.name,y.FLOAT32],[Float64Array.name,y.FLOAT64],[Int8Array.name,y.INT8],[Int16Array.name,y.INT16],[Int32Array.name,y.INT32],[BigInt64Array.name,y.INT64]])),m(y,"DENSITIES",new Map([[y.UINT8.toString(),J.BIT8],[y.UINT16.toString(),J.BIT16],[y.UINT32.toString(),J.BIT32],[y.UINT64.toString(),J.BIT64],[y.FLOAT32.toString(),J.BIT32],[y.FLOAT64.toString(),J.BIT64],[y.INT8.toString(),J.BIT8],[y.INT16.toString(),J.BIT16],[y.INT32.toString(),J.BIT32],[y.INT64.toString(),J.BIT64],[y.TIMESTAMP.toString(),J.BIT64],[y.STRING.toString(),J.UNKNOWN],[y.JSON.toString(),J.UNKNOWN],[y.UUID.toString(),J.BIT128]])),m(y,"ALL",[y.UNKNOWN,y.FLOAT64,y.FLOAT32,y.INT64,y.INT32,y.INT16,y.INT8,y.UINT64,y.UINT32,y.UINT16,y.UINT8,y.TIMESTAMP,y.UUID,y.STRING,y.JSON]),m(y,"BIG_INT_TYPES",[y.INT64,y.UINT64,y.TIMESTAMP]),m(y,"z",s.z.union([s.z.string().transform(r=>new y(r)),s.z.instanceof(y)]));const Y=class D extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return D.bytes(this.valueOf()+e.valueOf())}sub(e){return D.bytes(this.valueOf()-e.valueOf())}truncate(e){return new D(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return D.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/D.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/D.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/D.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/D.TERABYTE.valueOf()}toString(){const e=this.truncate(D.TERABYTE),t=this.truncate(D.GIGABYTE),n=this.truncate(D.MEGABYTE),i=this.truncate(D.KILOBYTE),a=this.truncate(D.BYTE),c=e,l=t.sub(e),u=n.sub(t),f=i.sub(n),g=a.sub(i);let p="";return c.isZero||(p+=`${c.terabytes}TB `),l.isZero||(p+=`${l.gigabytes}GB `),u.isZero||(p+=`${u.megabytes}MB `),f.isZero||(p+=`${f.kilobytes}KB `),(!g.isZero||p==="")&&(p+=`${g.valueOf()}B`),p.trim()}static bytes(e=1){return new D(e)}static kilobytes(e=1){return D.bytes(e.valueOf()*1e3)}static megabytes(e=1){return D.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return D.megabytes(e.valueOf()*1e3)}static terabytes(e){return D.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};m(Y,"BYTE",new Y(1)),m(Y,"KILOBYTE",Y.kilobytes(1)),m(Y,"MEGABYTE",Y.megabytes(1)),m(Y,"GIGABYTE",Y.gigabytes(1)),m(Y,"TERABYTE",Y.terabytes(1)),m(Y,"ZERO",new Y(0)),m(Y,"z",s.z.union([s.z.number().transform(r=>new Y(r)),s.z.instanceof(Y)]));let pa=Y;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown());const Jn=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",ga=Jn(),Vn=["MacOS","Windows","Linux","Docker"],ma=s.z.enum(Vn);let cr;const wa=()=>{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"},ba=(r={})=>{const{force:e,default:t}=r;return e??cr??(cr=wa(),cr??t)},Hn=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:Vn,RUNTIME:ga,detect:Jn,getOS:ba,osZ:ma},Symbol.toStringTag,{value:"Module"}));var va=Object.defineProperty,Ta=(r,e,t)=>e in r?va(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,tt=(r,e,t)=>Ta(r,typeof e!="symbol"?e+"":e,t);const Oa=(...r)=>r.map(Xn).join(""),Xn=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),za=r=>r.endsWith("/")?r.slice(0,-1):r,Ea=(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("&"),Er=class Sr{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){tt(this,"protocol"),tt(this,"host"),tt(this,"port"),tt(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Xn(i)}replace(e){return new Sr({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Sr({...this,pathPrefix:Oa(this.path,e)})}toString(){return za(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};tt(Er,"UNKNOWN",new Er({host:"unknown",port:0}));let Sa=Er;var Na=Object.defineProperty,Ia=(r,e,t)=>e in r?Na(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Rt=(r,e,t)=>Ia(r,typeof e!="symbol"?e+"":e,t);const ke=class extends Number{};Rt(ke,"Absolute",255),Rt(ke,"Default",1),Rt(ke,"z",s.z.union([s.z.instanceof(ke),s.z.number().int().min(0).max(255).transform(r=>new ke(r)),s.z.instanceof(Number).transform(r=>new ke(r))]));s.z.object({name:s.z.string(),key:s.z.string()});const Qn=class rt extends Error{constructor(){super(rt.MESSAGE)}matches(e){return typeof e=="string"?e.includes(rt.MESSAGE):e instanceof rt||e.message.includes(rt.MESSAGE)}};Rt(Qn,"MESSAGE","canceled");let Aa=Qn;new Aa;s.z.string().regex(/^\d+\.\d+\.\d+$/);const V=r=>e=>e!=null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"?e.type.includes(r):e instanceof Error?e.message.includes(r):typeof e!="string"?!1:e.includes(r);let te=class extends Error{constructor(e){super(e),I(this,"discriminator","FreighterError"),I(this,"type","")}};const ka=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},ln="unknown",un="nil",Ra="freighter",vt=s.z.object({type:s.z.string(),data:s.z.string()});class $a{constructor(){I(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:un,data:""};if(ka(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:ln,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===un)return null;if(e.type===ln)return new hn(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new hn(e.data)}}const es=new $a,ts=({encode:r,decode:e})=>es.register({encode:r,decode:e}),Zr=r=>es.decode(r);class hn extends te{constructor(e){super(e),I(this,"type","unknown")}}const Ft="freighter.",$t=class rs extends te{constructor(){super("EOF"),I(this,"type",rs.TYPE)}};I($t,"TYPE",Ft+"eof"),I($t,"matches",V($t.TYPE));let ge=$t;const xt=class ns extends te{constructor(){super("StreamClosed"),I(this,"type",ns.TYPE)}};I(xt,"TYPE",Ft+"stream_closed"),I(xt,"matches",V(xt.TYPE));let We=xt;const Ct=class ss extends te{constructor(e={}){const{message:t="Unreachable",url:n=Sa.UNKNOWN}=e;super(t),I(this,"type",ss.TYPE),I(this,"url"),this.url=n}};I(Ct,"TYPE",Ft+"unreachable"),I(Ct,"matches",V(Ct.TYPE));let Se=Ct;const xa=r=>{if(!r.type.startsWith(Ra))return null;if(ge.matches(r))return{type:ge.TYPE,data:"EOF"};if(We.matches(r))return{type:We.TYPE,data:"StreamClosed"};if(Se.matches(r))return{type:Se.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},Ca=r=>{if(!r.type.startsWith(Ft))return null;switch(r.type){case ge.TYPE:return new ge;case We.TYPE:return new We;case Se.TYPE:return new Se;default:throw new Error(`Unknown error type: ${r.data}`)}};ts({encode:xa,decode:Ca});class is{constructor(){I(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const i=async a=>{if(n===this.middleware.length)return await t(a);const c=this.middleware[n];return n++,await c(a,i)};return await i(e)}}const as="Content-Type",yn=r=>{if(Hn.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(i,a)=>await e(i,{...a,agent:n})};class Pa extends is{constructor(e,t,n=!1){return super(),I(this,"endpoint"),I(this,"encoder"),I(this,"fetch"),this.endpoint=e.replace({protocol:n?"https":"http"}),this.encoder=t,this.fetch=yn(this.endpoint.protocol),new Proxy(this,{get:(i,a,c)=>a==="endpoint"?this.endpoint:Reflect.get(i,a,c)})}get headers(){return{[as]:this.encoder.contentType}}async send(e,t,n,i){t=n==null?void 0:n.parse(t);let a=null;const c=this.endpoint.child(e),l={};l.method="POST",l.body=this.encoder.encode(t??{});const[,u]=await this.executeMiddleware({target:c.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async f=>{const g={...f,params:{}};l.headers={...this.headers,...f.params};let p;try{p=await yn(f.protocol)(f.target,l)}catch(C){let X=C;return X.message==="Load failed"&&(X=new Se({url:c})),[g,X]}const P=await p.arrayBuffer();if(p!=null&&p.ok)return i!=null&&(a=this.encoder.decode(P,i)),[g,null];try{if(p.status!==400)return[g,new Error(p.statusText)];const C=this.encoder.decode(P,vt),X=Zr(C);return[g,X]}catch(C){return[g,new Error(`[freighter] - failed to decode error: ${p.statusText}: ${C.message}`)]}});return[a,u]}}const w=async(r,e,t,n,i)=>{const[a,c]=await r.send(e,t,n,i);if(c!=null)throw c;return a},ja=()=>Hn.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Da=s.z.object({type:s.z.union([s.z.literal("data"),s.z.literal("close")]),payload:s.z.unknown().optional(),error:s.z.optional(vt)});class Ma{constructor(e,t,n,i){I(this,"encoder"),I(this,"reqSchema"),I(this,"resSchema"),I(this,"ws"),I(this,"serverClosed"),I(this,"sendClosed"),I(this,"receiveDataQueue",[]),I(this,"receiveCallbacksQueue",[]),this.encoder=t,this.reqSchema=n,this.resSchema=i,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}send(e){if(this.serverClosed!=null)return new ge;if(this.sendClosed)throw new We;return this.ws.send(this.encoder.encode({type:"data",payload:e})),null}async receive(){if(this.serverClosed!=null)return[null,this.serverClosed];const e=await this.receiveMsg();if(e.type==="close"){if(e.error==null)throw new Error("Message error must be defined");return this.serverClosed=Zr(e.error),[null,this.serverClosed]}return[this.resSchema.parse(e.payload),null]}received(){return this.receiveDataQueue.length!==0}closeSend(){if(this.sendClosed||this.serverClosed!=null)return;const e={type:"close"};try{this.ws.send(this.encoder.encode(e))}finally{this.sendClosed=!0}}async receiveMsg(){return this.receiveDataQueue.shift()??await new Promise((t,n)=>this.receiveCallbacksQueue.push({resolve:t,reject:n}))}addMessage(e){const t=this.receiveCallbacksQueue.shift();t!=null?t.resolve(e):this.receiveDataQueue.push(e)}listenForMessages(){this.ws.onmessage=e=>this.addMessage(this.encoder.decode(e.data,Da)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:qa(e)?ge.TYPE:We.TYPE,data:""}})}}const Za="freighterctx",Ua=1e3,Ba=1001,La=[Ua,Ba],qa=r=>La.includes(r.code),os=class cs extends is{constructor(e,t,n=!1){super(),I(this,"baseUrl"),I(this,"encoder"),this.baseUrl=e.replace({protocol:n?"wss":"ws"}),this.encoder=t}async stream(e,t,n){const i=ja();let a;const[,c]=await this.executeMiddleware({target:e,protocol:"websocket",params:{},role:"client"},async l=>{const u=i(this.buildURL(e,l)),f={...l,params:{}};u.binaryType=cs.MESSAGE_TYPE;const g=await this.wrapSocket(u,t,n);return g instanceof Error?[f,g]:(a=g,[f,null])});if(c!=null)throw c;return a}buildURL(e,t){const n=Ea({[as]:this.encoder.contentType,...t.params},Za);return this.baseUrl.child(e).toString()+n}async wrapSocket(e,t,n){return await new Promise(i=>{e.onopen=()=>{i(new Ma(e,this.encoder,t,n))},e.onerror=a=>{const c=a;i(new Error(c.message))}})}};I(os,"MESSAGE_TYPE","arraybuffer");let Ya=os;const Wa=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:e[0].toLowerCase()+e.slice(1)},ls=r=>{const e=(t,n=Nr)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(a=>e(a,n));if(!lr(t))return null;n=Ga(n);const i={};return Object.keys(t).forEach(a=>{let c=t[a];const l=r(a);n.recursive&&(lr(c)?fn(c,n.keepTypesOnRecursion)||(c=e(c,n)):n.recursiveInArray&&dn(c)&&(c=[...c].map(u=>{let f=u;return lr(u)?fn(f,n.keepTypesOnRecursion)||(f=e(u,n)):dn(u)&&(f=e({key:u},n).key),f}))),i[l]=c}),i};return e},Zt=ls(Wa),Fa=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),_a=ls(Fa),Nr={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},Ga=(r=Nr)=>(r.recursive==null?r=Nr:r.recursiveInArray==null&&(r.recursiveInArray=!1),r),dn=r=>r!=null&&Array.isArray(r),lr=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),fn=(r,e)=>(e||[]).some(t=>r instanceof t),Ka=r=>r!=null&&typeof r=="object"&&"toString"in r,Ja=(r,e=!1)=>{const t=Ka(r)?"stringer":typeof r;let n;switch(t){case"string":n=(i,a)=>i.localeCompare(a);break;case"stringer":n=(i,a)=>i.toString().localeCompare(a.toString());break;case"number":n=(i,a)=>Number(i)-Number(a);break;case"bigint":n=(i,a)=>BigInt(i)-BigInt(a)>0n?1:-1;break;case"boolean":n=(i,a)=>Number(i)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?Va(n):n},Va=r=>(e,t)=>r(t,e),_t=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const us=s.z.object({width:s.z.number(),height:s.z.number()}),Ha=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),Xa=["width","height"];s.z.enum(Xa);const Qa=["start","center","end"],eo=["signedWidth","signedHeight"];s.z.enum(eo);const Ut=s.z.object({x:s.z.number(),y:s.z.number()}),to=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),ro=["x","y"],hs=s.z.enum(ro),ys=["top","right","bottom","left"];s.z.enum(ys);const no=["left","right"],ds=s.z.enum(no),so=["top","bottom"],fs=s.z.enum(so),ps=["center"],pn=s.z.enum(ps),io=[...ys,...ps],gs=s.z.enum(io);s.z.enum(Qa);const ao=["first","last"];s.z.enum(ao);const oo=s.z.object({lower:s.z.number(),upper:s.z.number()}),co=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([oo,_t]);s.z.union([co,_t]);s.z.union([hs,gs]);s.z.union([hs,gs,s.z.instanceof(String)]);const lt=(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 gn(r);return gn(t)},gn=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r;s.z.object({x:ds.or(pn),y:fs.or(pn)});const lo=s.z.object({x:ds,y:fs}),uo=Object.freeze({x:"left",y:"top"}),ho=(r,e)=>r.x===e.x&&r.y===e.y,mn=s.z.union([s.z.number(),Ut,_t,us,Ha,to]),yo=(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}},wn=Object.freeze({x:0,y:0}),It=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:It,left:It,width:It,height:It});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Ut,two:Ut,root:lo});const Ur=(r,e,t=0,n=0,i)=>{const a={one:{...wn},two:{...wn},root:i??uo};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},ur=r=>{const e=Ur(r);return{lower:e.one.x,upper:e.two.x}},hr=r=>{const e=Ur(r);return{lower:e.one.y,upper:e.two.y}},fo=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,po=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([us,po,Ut,_t]);var go=Object.defineProperty,mo=(r,e,t)=>e in r?go(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,he=(r,e,t)=>mo(r,typeof e!="symbol"?e+"":e,t);const wo=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:mn,scale:mn});const bo=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],vo=r=>(e,t,n,i)=>[e,i?n/r:n*r],To=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:c,upper:l}=r,u=a-i,f=l-c;if(t==="dimension")return[r,n*(f/u)];const g=(n-i)*(f/u)+c;return[r,g]},Oo=r=>(e,t,n)=>[r,n],zo=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},Eo=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=wo(n,i,a),[e,n]},Ir=class nt{constructor(){he(this,"ops",[]),he(this,"currBounds",null),he(this,"currType",null),he(this,"reversed",!1),this.ops=[]}static translate(e){return new nt().translate(e)}static magnify(e){return new nt().magnify(e)}static scale(e,t){return new nt().scale(e,t)}translate(e){const t=this.new(),n=bo(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=vo(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=lt(e,t),i=this.new(),a=To(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=lt(e,t),i=this.new(),a=Eo(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=lt(e,t),i=this.new(),a=Oo(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=zo();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 nt;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([c,l])=>i>=c&&i<=l))return;const a=e.ops.findIndex((c,l)=>c.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}};he(Ir,"IDENTITY",new Ir);let bn=Ir;const vn=class ce{constructor(e=new bn,t=new bn,n=null){he(this,"x"),he(this,"y"),he(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new ce().translate(e,t)}static translateX(e){return new ce().translateX(e)}static translateY(e){return new ce().translateY(e)}static clamp(e){return new ce().clamp(e)}static magnify(e){return new ce().magnify(e)}static scale(e){return new ce().scale(e)}static reBound(e){return new ce().reBound(e)}translate(e,t){const n=yo(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(fo(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!ho(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(ur(e)),t.y=t.y.scale(hr(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(ur(e)),t.y=this.y.reBound(hr(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(ur(e)),t.y=this.y.clamp(hr(e)),t}copy(){const e=new ce;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)}}box(e){return Ur(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}};he(vn,"IDENTITY",new vn);var So=Object.defineProperty,No=(r,e,t)=>e in r?So(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,d=(r,e,t)=>No(r,typeof e!="symbol"?e+"":e,t);let Io=(r,e=21)=>(t=e)=>{let n="",i=t;for(;i--;)n+=r[Math.random()*r.length|0];return n};const Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ms=Io(Ao,11),ko=Object.freeze(Object.defineProperty({__proto__:null,id:ms},Symbol.toStringTag,{value:"Module"})),ws=(r,e)=>{const t=new O(e);if(![E.DAY,E.HOUR,E.MINUTE,E.SECOND,E.MILLISECOND,E.MICROSECOND,E.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof O?new O(n):new E(n)},R=class v{constructor(e,t="UTC"){if(d(this,"value"),d(this,"encodeValue",!0),e==null)this.value=v.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*v.MILLISECOND.valueOf();else if(typeof e=="string")this.value=v.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=v.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=v.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=v.MAX:e=v.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new v(BigInt(i.getTime())*v.MILLISECOND.valueOf()).truncate(v.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let c="00",l="00";a!=null&&([c,l]=a.split("."));let u=v.hours(parseInt(n??"00",10)).add(v.minutes(parseInt(i??"00",10))).add(v.seconds(parseInt(c??"00",10))).add(v.milliseconds(parseInt(l??"00",10)));return t==="local"&&(u=u.add(v.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return v.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new v(BigInt(n.getTime())*v.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(v.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new E(BigInt(new Date().getTimezoneOffset())*v.MINUTE.valueOf())}static since(e){return new v().span(e)}date(){return new Date(this.milliseconds())}equals(e){return this.valueOf()===new v(e).valueOf()}span(e){return this.range(e).span}range(e){return new _(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new v(e).valueOf()}afterEq(e){return this.valueOf()>=new v(e).valueOf()}before(e){return this.valueOf()<new v(e).valueOf()}beforeEq(e){return this.valueOf()<=new v(e).valueOf()}add(e){return new v(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new v(this.valueOf()-BigInt(e.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(v.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(e){return ws(this,e)}get isToday(){return this.truncate(E.DAY).equals(v.now().truncate(E.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new v(new Date)}static max(...e){let t=v.MIN;for(const n of e){const i=new v(n);i.after(t)&&(t=i)}return t}static min(...e){let t=v.MAX;for(const n of e){const i=new v(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new v(e)}static microseconds(e){return v.nanoseconds(e*1e3)}static milliseconds(e){return v.microseconds(e*1e3)}static seconds(e){return v.milliseconds(e*1e3)}static minutes(e){return v.seconds(e*60)}static hours(e){return v.minutes(e*60)}static days(e){return v.hours(e*24)}};d(R,"NANOSECOND",R.nanoseconds(1)),d(R,"MICROSECOND",R.microseconds(1)),d(R,"MILLISECOND",R.milliseconds(1)),d(R,"SECOND",R.seconds(1)),d(R,"MINUTE",R.minutes(1)),d(R,"HOUR",R.hours(1)),d(R,"DAY",R.days(1)),d(R,"MAX",new R((1n<<63n)-1n)),d(R,"MIN",new R(0)),d(R,"ZERO",new R(0)),d(R,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new R(r.value)),s.z.string().transform(r=>new R(BigInt(r))),s.z.instanceof(Number).transform(r=>new R(r)),s.z.number().transform(r=>new R(r)),s.z.instanceof(R)]));let O=R;const $=class N{constructor(e){d(this,"value"),d(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new N(e).valueOf()}greaterThan(e){return this.valueOf()>new N(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new N(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new N(e).valueOf()}remainder(e){return ws(this,e)}truncate(e){return new N(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(N.DAY),t=this.truncate(N.HOUR),n=this.truncate(N.MINUTE),i=this.truncate(N.SECOND),a=this.truncate(N.MILLISECOND),c=this.truncate(N.MICROSECOND),l=this.truncate(N.NANOSECOND),u=e,f=t.sub(e),g=n.sub(t),p=i.sub(n),P=a.sub(i),C=c.sub(a),X=l.sub(c);let j="";return u.isZero||(j+=`${u.days}d `),f.isZero||(j+=`${f.hours}h `),g.isZero||(j+=`${g.minutes}m `),p.isZero||(j+=`${p.seconds}s `),P.isZero||(j+=`${P.milliseconds}ms `),C.isZero||(j+=`${C.microseconds}µs `),X.isZero||(j+=`${X.nanoseconds}ns`),j.trim()}get days(){return Number(this.valueOf())/Number(N.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(N.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(N.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(N.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(N.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(N.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new N(e).valueOf()}add(e){return new N(this.valueOf()+new N(e).valueOf())}sub(e){return new N(this.valueOf()-new N(e).valueOf())}static nanoseconds(e=1){return new N(e)}static microseconds(e=1){return N.nanoseconds(e*1e3)}static milliseconds(e=1){return N.microseconds(e*1e3)}static seconds(e=1){return N.milliseconds(e*1e3)}static minutes(e){return N.seconds(e.valueOf()*60)}static hours(e){return N.minutes(e*60)}static days(e){return N.hours(e*24)}};d($,"NANOSECOND",$.nanoseconds(1)),d($,"MICROSECOND",$.microseconds(1)),d($,"MILLISECOND",$.milliseconds(1)),d($,"SECOND",$.seconds(1)),d($,"MINUTE",$.minutes(1)),d($,"HOUR",$.hours(1)),d($,"DAY",$.days(1)),d($,"MAX",new $((1n<<63n)-1n)),d($,"MIN",new $(0)),d($,"ZERO",new $(0)),d($,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new $(r.value)),s.z.string().transform(r=>new $(BigInt(r))),s.z.instanceof(Number).transform(r=>new $(r)),s.z.number().transform(r=>new $(r)),s.z.instanceof($)]));let E=$;const st=class Pt extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new Pt(e).valueOf()}get period(){return E.seconds(1/this.valueOf())}sampleCount(e){return new E(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new F(t).valueOf()}span(e){return E.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new Pt(e)}static khz(e){return Pt.hz(e*1e3)}};d(st,"z",s.z.union([s.z.number().transform(r=>new st(r)),s.z.instanceof(Number).transform(r=>new st(r)),s.z.instanceof(st)]));let Gt=st;const B=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new dt(e*this.valueOf())}};d(B,"UNKNOWN",new B(0)),d(B,"BIT128",new B(16)),d(B,"BIT64",new B(8)),d(B,"BIT32",new B(4)),d(B,"BIT16",new B(2)),d(B,"BIT8",new B(1)),d(B,"z",s.z.union([s.z.number().transform(r=>new B(r)),s.z.instanceof(Number).transform(r=>new B(r)),s.z.instanceof(B)]));let F=B;const se=class jt{constructor(e,t){d(this,"start"),d(this,"end"),typeof e=="object"&&"start"in e?(this.start=new O(e.start),this.end=new O(e.end)):(this.start=new O(e),this.end=new O(t))}get span(){return new E(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}swap(){return new jt(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=E.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=O.max(n.start,e.start),a=O.min(n.end,e.end);return a.before(i)?!1:new E(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof jt?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new jt(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}};d(se,"MAX",new se(O.MIN,O.MAX)),d(se,"MIN",new se(O.MAX,O.MIN)),d(se,"ZERO",new se(O.ZERO,O.ZERO)),d(se,"z",s.z.union([s.z.object({start:O.z,end:O.z}).transform(r=>new se(r.start,r.end)),s.z.instanceof(se)]));let _=se;const h=class ie extends String{constructor(e){if(e instanceof ie||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}else{const t=ie.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}}throw super(ie.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=ie.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()}toString(){return this.valueOf()}get isVariable(){return this.equals(ie.JSON)||this.equals(ie.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(ie.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=ie.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}canSafelyCastTo(e){return this.equals(e)?!0:this.isVariable&&!e.isVariable||!this.isVariable&&e.isVariable?!1:this.isFloat&&e.isInteger||this.isInteger&&e.isFloat?this.density.valueOf()<e.density.valueOf():this.isFloat&&e.isFloat||this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf():!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 ie.BIG_INT_TYPES.some(e=>e.equals(this))}};d(h,"UNKNOWN",new h("unknown")),d(h,"FLOAT64",new h("float64")),d(h,"FLOAT32",new h("float32")),d(h,"INT64",new h("int64")),d(h,"INT32",new h("int32")),d(h,"INT16",new h("int16")),d(h,"INT8",new h("int8")),d(h,"UINT64",new h("uint64")),d(h,"UINT32",new h("uint32")),d(h,"UINT16",new h("uint16")),d(h,"UINT8",new h("uint8")),d(h,"BOOLEAN",h.UINT8),d(h,"TIMESTAMP",new h("timestamp")),d(h,"UUID",new h("uuid")),d(h,"STRING",new h("string")),d(h,"JSON",new h("json")),d(h,"ARRAY_CONSTRUCTORS",new Map([[h.UINT8.toString(),Uint8Array],[h.UINT16.toString(),Uint16Array],[h.UINT32.toString(),Uint32Array],[h.UINT64.toString(),BigUint64Array],[h.FLOAT32.toString(),Float32Array],[h.FLOAT64.toString(),Float64Array],[h.INT8.toString(),Int8Array],[h.INT16.toString(),Int16Array],[h.INT32.toString(),Int32Array],[h.INT64.toString(),BigInt64Array],[h.TIMESTAMP.toString(),BigInt64Array],[h.STRING.toString(),Uint8Array],[h.JSON.toString(),Uint8Array],[h.UUID.toString(),Uint8Array]])),d(h,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,h.UINT8],[Uint16Array.name,h.UINT16],[Uint32Array.name,h.UINT32],[BigUint64Array.name,h.UINT64],[Float32Array.name,h.FLOAT32],[Float64Array.name,h.FLOAT64],[Int8Array.name,h.INT8],[Int16Array.name,h.INT16],[Int32Array.name,h.INT32],[BigInt64Array.name,h.INT64]])),d(h,"DENSITIES",new Map([[h.UINT8.toString(),F.BIT8],[h.UINT16.toString(),F.BIT16],[h.UINT32.toString(),F.BIT32],[h.UINT64.toString(),F.BIT64],[h.FLOAT32.toString(),F.BIT32],[h.FLOAT64.toString(),F.BIT64],[h.INT8.toString(),F.BIT8],[h.INT16.toString(),F.BIT16],[h.INT32.toString(),F.BIT32],[h.INT64.toString(),F.BIT64],[h.TIMESTAMP.toString(),F.BIT64],[h.STRING.toString(),F.UNKNOWN],[h.JSON.toString(),F.UNKNOWN],[h.UUID.toString(),F.BIT128]])),d(h,"ALL",[h.UNKNOWN,h.FLOAT64,h.FLOAT32,h.INT64,h.INT32,h.INT16,h.INT8,h.UINT64,h.UINT32,h.UINT16,h.UINT8,h.TIMESTAMP,h.UUID,h.STRING,h.JSON]),d(h,"BIG_INT_TYPES",[h.INT64,h.UINT64,h.TIMESTAMP]),d(h,"z",s.z.union([s.z.string().transform(r=>new h(r)),s.z.instanceof(h)]));let z=h;const W=class M extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return M.bytes(this.valueOf()+e.valueOf())}sub(e){return M.bytes(this.valueOf()-e.valueOf())}truncate(e){return new M(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return M.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/M.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/M.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/M.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/M.TERABYTE.valueOf()}toString(){const e=this.truncate(M.TERABYTE),t=this.truncate(M.GIGABYTE),n=this.truncate(M.MEGABYTE),i=this.truncate(M.KILOBYTE),a=this.truncate(M.BYTE),c=e,l=t.sub(e),u=n.sub(t),f=i.sub(n),g=a.sub(i);let p="";return c.isZero||(p+=`${c.terabytes}TB `),l.isZero||(p+=`${l.gigabytes}GB `),u.isZero||(p+=`${u.megabytes}MB `),f.isZero||(p+=`${f.kilobytes}KB `),(!g.isZero||p==="")&&(p+=`${g.valueOf()}B`),p.trim()}static bytes(e=1){return new M(e)}static kilobytes(e=1){return M.bytes(e.valueOf()*1e3)}static megabytes(e=1){return M.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return M.megabytes(e.valueOf()*1e3)}static terabytes(e){return M.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};d(W,"BYTE",new W(1)),d(W,"KILOBYTE",W.kilobytes(1)),d(W,"MEGABYTE",W.megabytes(1)),d(W,"GIGABYTE",W.gigabytes(1)),d(W,"TERABYTE",W.terabytes(1)),d(W,"ZERO",new W(0)),d(W,"z",s.z.union([s.z.number().transform(r=>new W(r)),s.z.instanceof(W)]));let dt=W;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);const bs=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof O||r instanceof E||r instanceof Date},Ro=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t)-BigInt(n):it(t,-n),$o=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof Oe?!0:bs(r),ve=-1;let Oe=class le{constructor(e){d(this,"key",""),d(this,"isSynnaxSeries",!0),d(this,"dataType"),d(this,"sampleOffset"),d(this,"gl"),d(this,"_data"),d(this,"_timeRange"),d(this,"alignment",0n),d(this,"_cachedMin"),d(this,"_cachedMax"),d(this,"writePos",ve),d(this,"_refCount",0),d(this,"_cachedLength"),$o(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:c=0n,key:l=ms()}=e,{data:u}=e;if(u instanceof le||typeof u=="object"&&"isSynnaxSeries"in u&&u.isSynnaxSeries===!0){const p=u;this.key=p.key,this.dataType=p.dataType,this.sampleOffset=p.sampleOffset,this.gl=p.gl,this._data=p._data,this._timeRange=p._timeRange,this.alignment=p.alignment,this._cachedMin=p._cachedMin,this._cachedMax=p._cachedMax,this.writePos=p.writePos,this._refCount=p._refCount,this._cachedLength=p._cachedLength;return}const f=bs(u),g=Array.isArray(u);if(t!=null)this.dataType=new z(t);else{if(u instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(g||f){let p=u;if(!f){if(u.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");p=u[0]}if(typeof p=="string")this.dataType=z.STRING;else if(typeof p=="number")this.dataType=z.FLOAT64;else if(typeof p=="bigint")this.dataType=z.INT64;else if(typeof p=="boolean")this.dataType=z.BOOLEAN;else if(p instanceof O||p instanceof Date||p instanceof O)this.dataType=z.TIMESTAMP;else if(typeof p=="object")this.dataType=z.JSON;else throw new Error(`cannot infer data type of ${typeof p} when constructing a Series from a JS array`)}else this.dataType=new z(u)}if(!g&&!f)this._data=u;else{let p=f?[u]:u;const P=p[0];(P instanceof O||P instanceof Date||P instanceof E)&&(p=p.map(C=>new O(C).valueOf())),this.dataType.equals(z.STRING)?(this._cachedLength=p.length,this._data=new TextEncoder().encode(p.join(`
|
|
3
|
+
`).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),c={};return a.forEach(l=>{c[l]=[]}),i.forEach(l=>{const u=l.split(",").map(f=>f.trim());a.forEach((f,p)=>{const g=this.parseValue(u[p]);g!=null&&c[f].push(g)})}),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(){}},Vi=class{constructor(){lt(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}};new Gi;new Ki;new Vi;const Wt=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const Yn=s.z.object({width:s.z.number(),height:s.z.number()}),Ji=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),Hi=["width","height"];s.z.enum(Hi);const Xi=["start","center","end"],Qi=["signedWidth","signedHeight"];s.z.enum(Qi);const Zt=s.z.object({x:s.z.number(),y:s.z.number()}),ea=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),ta=["x","y"],Wn=s.z.enum(ta),Fn=["top","right","bottom","left"];s.z.enum(Fn);const ra=["left","right"],_n=s.z.enum(ra),na=["top","bottom"],Gn=s.z.enum(na),Kn=["center"],sn=s.z.enum(Kn),sa=[...Fn,...Kn],Vn=s.z.enum(sa);s.z.enum(Xi);const ia=["first","last"];s.z.enum(ia);const aa=s.z.object({lower:s.z.number(),upper:s.z.number()}),oa=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([aa,Wt]);s.z.union([oa,Wt]);s.z.union([Wn,Vn]);s.z.union([Wn,Vn,s.z.instanceof(String)]);const ir=(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 an(r);return an(t)},an=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r;s.z.object({x:_n.or(sn),y:Gn.or(sn)});const ca=s.z.object({x:_n,y:Gn}),la=Object.freeze({x:"left",y:"top"}),ua=(r,e)=>r.x===e.x&&r.y===e.y,on=s.z.union([s.z.number(),Zt,Wt,Yn,Ji,ea]),ha=(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}},cn=Object.freeze({x:0,y:0}),Nt=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:Nt,left:Nt,width:Nt,height:Nt});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Zt,two:Zt,root:ca});const Mr=(r,e,t=0,n=0,i)=>{const a={one:{...cn},two:{...cn},root:i??la};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},ar=r=>{const e=Mr(r);return{lower:e.one.x,upper:e.two.x}},or=r=>{const e=Mr(r);return{lower:e.one.y,upper:e.two.y}},ya=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r;var da=Object.defineProperty,fa=(r,e,t)=>e in r?da(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ue=(r,e,t)=>fa(r,typeof e!="symbol"?e+"":e,t);const pa=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:on,scale:on});const ga=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],ma=r=>(e,t,n,i)=>[e,i?n/r:n*r],wa=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:c,upper:l}=r,u=a-i,f=l-c;if(t==="dimension")return[r,n*(f/u)];const p=(n-i)*(f/u)+c;return[r,p]},ba=r=>(e,t,n)=>[r,n],va=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},Ta=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=pa(n,i,a),[e,n]},zr=class tt{constructor(){ue(this,"ops",[]),ue(this,"currBounds",null),ue(this,"currType",null),ue(this,"reversed",!1),this.ops=[]}static translate(e){return new tt().translate(e)}static magnify(e){return new tt().magnify(e)}static scale(e,t){return new tt().scale(e,t)}translate(e){const t=this.new(),n=ga(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=ma(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=ir(e,t),i=this.new(),a=wa(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=ir(e,t),i=this.new(),a=Ta(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=ir(e,t),i=this.new(),a=ba(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=va();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 tt;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([c,l])=>i>=c&&i<=l))return;const a=e.ops.findIndex((c,l)=>c.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}};ue(zr,"IDENTITY",new zr);let ln=zr;const un=class oe{constructor(e=new ln,t=new ln,n=null){ue(this,"x"),ue(this,"y"),ue(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new oe().translate(e,t)}static translateX(e){return new oe().translateX(e)}static translateY(e){return new oe().translateY(e)}static clamp(e){return new oe().clamp(e)}static magnify(e){return new oe().magnify(e)}static scale(e){return new oe().scale(e)}static reBound(e){return new oe().reBound(e)}translate(e,t){const n=ha(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if(ya(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!ua(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(ar(e)),t.y=t.y.scale(or(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(ar(e)),t.y=this.y.reBound(or(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(ar(e)),t.y=this.y.clamp(or(e)),t}copy(){const e=new oe;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)}}box(e){return Mr(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}};ue(un,"IDENTITY",new un);const Oa=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([Yn,Oa,Zt,Wt]);var za=Object.defineProperty,Ea=(r,e,t)=>e in r?za(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,m=(r,e,t)=>Ea(r,typeof e!="symbol"?e+"":e,t);const Jn=(r,e)=>{const t=new q(e);if(![Y.DAY,Y.HOUR,Y.MINUTE,Y.SECOND,Y.MILLISECOND,Y.MICROSECOND,Y.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof q?new q(n):new Y(n)},k=class b{constructor(e,t="UTC"){if(m(this,"value"),m(this,"encodeValue",!0),e==null)this.value=b.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*b.MILLISECOND.valueOf();else if(typeof e=="string")this.value=b.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=b.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=b.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=b.MAX:e=b.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new b(BigInt(i.getTime())*b.MILLISECOND.valueOf()).truncate(b.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let c="00",l="00";a!=null&&([c,l]=a.split("."));let u=b.hours(parseInt(n??"00",10)).add(b.minutes(parseInt(i??"00",10))).add(b.seconds(parseInt(c??"00",10))).add(b.milliseconds(parseInt(l??"00",10)));return t==="local"&&(u=u.add(b.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return b.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new b(BigInt(n.getTime())*b.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(b.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 Y(BigInt(new Date().getTimezoneOffset())*b.MINUTE.valueOf())}static since(e){return new b().span(e)}date(){return new Date(this.milliseconds())}equals(e){return this.valueOf()===new b(e).valueOf()}span(e){return this.range(e).span}range(e){return new Sa(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 b(e).valueOf()}afterEq(e){return this.valueOf()>=new b(e).valueOf()}before(e){return this.valueOf()<new b(e).valueOf()}beforeEq(e){return this.valueOf()<=new b(e).valueOf()}add(e){return new b(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new b(this.valueOf()-BigInt(e.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(b.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(e){return Jn(this,e)}get isToday(){return this.truncate(Y.DAY).equals(b.now().truncate(Y.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new b(new Date)}static max(...e){let t=b.MIN;for(const n of e){const i=new b(n);i.after(t)&&(t=i)}return t}static min(...e){let t=b.MAX;for(const n of e){const i=new b(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new b(e)}static microseconds(e){return b.nanoseconds(e*1e3)}static milliseconds(e){return b.microseconds(e*1e3)}static seconds(e){return b.milliseconds(e*1e3)}static minutes(e){return b.seconds(e*60)}static hours(e){return b.minutes(e*60)}static days(e){return b.hours(e*24)}};m(k,"NANOSECOND",k.nanoseconds(1)),m(k,"MICROSECOND",k.microseconds(1)),m(k,"MILLISECOND",k.milliseconds(1)),m(k,"SECOND",k.seconds(1)),m(k,"MINUTE",k.minutes(1)),m(k,"HOUR",k.hours(1)),m(k,"DAY",k.days(1)),m(k,"MAX",new k((1n<<63n)-1n)),m(k,"MIN",new k(0)),m(k,"ZERO",new k(0)),m(k,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new k(r.value)),s.z.string().transform(r=>new k(BigInt(r))),s.z.instanceof(Number).transform(r=>new k(r)),s.z.number().transform(r=>new k(r)),s.z.instanceof(k)]));let q=k;const A=class S{constructor(e){m(this,"value"),m(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new S(e).valueOf()}greaterThan(e){return this.valueOf()>new S(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new S(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new S(e).valueOf()}remainder(e){return Jn(this,e)}truncate(e){return new S(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(S.DAY),t=this.truncate(S.HOUR),n=this.truncate(S.MINUTE),i=this.truncate(S.SECOND),a=this.truncate(S.MILLISECOND),c=this.truncate(S.MICROSECOND),l=this.truncate(S.NANOSECOND),u=e,f=t.sub(e),p=n.sub(t),g=i.sub(n),P=a.sub(i),j=c.sub(a),Q=l.sub(c);let D="";return u.isZero||(D+=`${u.days}d `),f.isZero||(D+=`${f.hours}h `),p.isZero||(D+=`${p.minutes}m `),g.isZero||(D+=`${g.seconds}s `),P.isZero||(D+=`${P.milliseconds}ms `),j.isZero||(D+=`${j.microseconds}µs `),Q.isZero||(D+=`${Q.nanoseconds}ns`),D.trim()}get days(){return Number(this.valueOf())/Number(S.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(S.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(S.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(S.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(S.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(S.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new S(e).valueOf()}add(e){return new S(this.valueOf()+new S(e).valueOf())}sub(e){return new S(this.valueOf()-new S(e).valueOf())}static nanoseconds(e=1){return new S(e)}static microseconds(e=1){return S.nanoseconds(e*1e3)}static milliseconds(e=1){return S.microseconds(e*1e3)}static seconds(e=1){return S.milliseconds(e*1e3)}static minutes(e){return S.seconds(e.valueOf()*60)}static hours(e){return S.minutes(e*60)}static days(e){return S.hours(e*24)}};m(A,"NANOSECOND",A.nanoseconds(1)),m(A,"MICROSECOND",A.microseconds(1)),m(A,"MILLISECOND",A.milliseconds(1)),m(A,"SECOND",A.seconds(1)),m(A,"MINUTE",A.minutes(1)),m(A,"HOUR",A.hours(1)),m(A,"DAY",A.days(1)),m(A,"MAX",new A((1n<<63n)-1n)),m(A,"MIN",new A(0)),m(A,"ZERO",new A(0)),m(A,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new A(r.value)),s.z.string().transform(r=>new A(BigInt(r))),s.z.instanceof(Number).transform(r=>new A(r)),s.z.number().transform(r=>new A(r)),s.z.instanceof(A)]));let Y=A;const It=class At extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new At(e).valueOf()}get period(){return Y.seconds(1/this.valueOf())}sampleCount(e){return new Y(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new V(t).valueOf()}span(e){return Y.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new At(e)}static khz(e){return At.hz(e*1e3)}};m(It,"z",s.z.union([s.z.number().transform(r=>new It(r)),s.z.instanceof(Number).transform(r=>new It(r)),s.z.instanceof(It)]));const B=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new Na(e*this.valueOf())}};m(B,"UNKNOWN",new B(0)),m(B,"BIT128",new B(16)),m(B,"BIT64",new B(8)),m(B,"BIT32",new B(4)),m(B,"BIT16",new B(2)),m(B,"BIT8",new B(1)),m(B,"z",s.z.union([s.z.number().transform(r=>new B(r)),s.z.instanceof(Number).transform(r=>new B(r)),s.z.instanceof(B)]));let V=B;const re=class $t{constructor(e,t){m(this,"start"),m(this,"end"),typeof e=="object"&&"start"in e?(this.start=new q(e.start),this.end=new q(e.end)):(this.start=new q(e),this.end=new q(t))}get span(){return new Y(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}swap(){return new $t(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=Y.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=q.max(n.start,e.start),a=q.min(n.end,e.end);return a.before(i)?!1:new Y(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof $t?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new $t(this.start,this.end);return e.start.after(this.start)&&(t.start=e.start),e.start.after(this.end)&&(t.end=e.start),e.end.before(this.end)&&(t.end=e.end),e.end.before(this.start)&&(t.start=e.end),t}};m(re,"MAX",new re(q.MIN,q.MAX)),m(re,"MIN",new re(q.MAX,q.MIN)),m(re,"ZERO",new re(q.ZERO,q.ZERO)),m(re,"z",s.z.union([s.z.object({start:q.z,end:q.z}).transform(r=>new re(r.start,r.end)),s.z.instanceof(re)]));let Sa=re;const y=class ne extends String{constructor(e){if(e instanceof ne||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}else{const t=ne.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}}throw super(ne.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=ne.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()}toString(){return this.valueOf()}get isVariable(){return this.equals(ne.JSON)||this.equals(ne.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(ne.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=ne.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}canSafelyCastTo(e){return this.equals(e)?!0:this.isVariable&&!e.isVariable||!this.isVariable&&e.isVariable?!1:this.isFloat&&e.isInteger||this.isInteger&&e.isFloat?this.density.valueOf()<e.density.valueOf():this.isFloat&&e.isFloat||this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf():!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 ne.BIG_INT_TYPES.some(e=>e.equals(this))}};m(y,"UNKNOWN",new y("unknown")),m(y,"FLOAT64",new y("float64")),m(y,"FLOAT32",new y("float32")),m(y,"INT64",new y("int64")),m(y,"INT32",new y("int32")),m(y,"INT16",new y("int16")),m(y,"INT8",new y("int8")),m(y,"UINT64",new y("uint64")),m(y,"UINT32",new y("uint32")),m(y,"UINT16",new y("uint16")),m(y,"UINT8",new y("uint8")),m(y,"BOOLEAN",y.UINT8),m(y,"TIMESTAMP",new y("timestamp")),m(y,"UUID",new y("uuid")),m(y,"STRING",new y("string")),m(y,"JSON",new y("json")),m(y,"ARRAY_CONSTRUCTORS",new Map([[y.UINT8.toString(),Uint8Array],[y.UINT16.toString(),Uint16Array],[y.UINT32.toString(),Uint32Array],[y.UINT64.toString(),BigUint64Array],[y.FLOAT32.toString(),Float32Array],[y.FLOAT64.toString(),Float64Array],[y.INT8.toString(),Int8Array],[y.INT16.toString(),Int16Array],[y.INT32.toString(),Int32Array],[y.INT64.toString(),BigInt64Array],[y.TIMESTAMP.toString(),BigInt64Array],[y.STRING.toString(),Uint8Array],[y.JSON.toString(),Uint8Array],[y.UUID.toString(),Uint8Array]])),m(y,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,y.UINT8],[Uint16Array.name,y.UINT16],[Uint32Array.name,y.UINT32],[BigUint64Array.name,y.UINT64],[Float32Array.name,y.FLOAT32],[Float64Array.name,y.FLOAT64],[Int8Array.name,y.INT8],[Int16Array.name,y.INT16],[Int32Array.name,y.INT32],[BigInt64Array.name,y.INT64]])),m(y,"DENSITIES",new Map([[y.UINT8.toString(),V.BIT8],[y.UINT16.toString(),V.BIT16],[y.UINT32.toString(),V.BIT32],[y.UINT64.toString(),V.BIT64],[y.FLOAT32.toString(),V.BIT32],[y.FLOAT64.toString(),V.BIT64],[y.INT8.toString(),V.BIT8],[y.INT16.toString(),V.BIT16],[y.INT32.toString(),V.BIT32],[y.INT64.toString(),V.BIT64],[y.TIMESTAMP.toString(),V.BIT64],[y.STRING.toString(),V.UNKNOWN],[y.JSON.toString(),V.UNKNOWN],[y.UUID.toString(),V.BIT128]])),m(y,"ALL",[y.UNKNOWN,y.FLOAT64,y.FLOAT32,y.INT64,y.INT32,y.INT16,y.INT8,y.UINT64,y.UINT32,y.UINT16,y.UINT8,y.TIMESTAMP,y.UUID,y.STRING,y.JSON]),m(y,"BIG_INT_TYPES",[y.INT64,y.UINT64,y.TIMESTAMP]),m(y,"z",s.z.union([s.z.string().transform(r=>new y(r)),s.z.instanceof(y)]));const W=class M extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return M.bytes(this.valueOf()+e.valueOf())}sub(e){return M.bytes(this.valueOf()-e.valueOf())}truncate(e){return new M(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return M.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/M.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/M.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/M.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/M.TERABYTE.valueOf()}toString(){const e=this.truncate(M.TERABYTE),t=this.truncate(M.GIGABYTE),n=this.truncate(M.MEGABYTE),i=this.truncate(M.KILOBYTE),a=this.truncate(M.BYTE),c=e,l=t.sub(e),u=n.sub(t),f=i.sub(n),p=a.sub(i);let g="";return c.isZero||(g+=`${c.terabytes}TB `),l.isZero||(g+=`${l.gigabytes}GB `),u.isZero||(g+=`${u.megabytes}MB `),f.isZero||(g+=`${f.kilobytes}KB `),(!p.isZero||g==="")&&(g+=`${p.valueOf()}B`),g.trim()}static bytes(e=1){return new M(e)}static kilobytes(e=1){return M.bytes(e.valueOf()*1e3)}static megabytes(e=1){return M.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return M.megabytes(e.valueOf()*1e3)}static terabytes(e){return M.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};m(W,"BYTE",new W(1)),m(W,"KILOBYTE",W.kilobytes(1)),m(W,"MEGABYTE",W.megabytes(1)),m(W,"GIGABYTE",W.gigabytes(1)),m(W,"TERABYTE",W.terabytes(1)),m(W,"ZERO",new W(0)),m(W,"z",s.z.union([s.z.number().transform(r=>new W(r)),s.z.instanceof(W)]));let Na=W;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown());const Hn=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser",Ia=Hn(),Xn=["MacOS","Windows","Linux","Docker"],ka=s.z.enum(Xn);let cr;const Aa=()=>{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"},$a=(r={})=>{const{force:e,default:t}=r;return e??cr??(cr=Aa(),cr??t)},Qn=Object.freeze(Object.defineProperty({__proto__:null,OPERATING_SYSTEMS:Xn,RUNTIME:Ia,detect:Hn,getOS:$a,osZ:ka},Symbol.toStringTag,{value:"Module"}));var Ra=Object.defineProperty,xa=(r,e,t)=>e in r?Ra(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,rt=(r,e,t)=>xa(r,typeof e!="symbol"?e+"":e,t);const Ca=(...r)=>r.map(es).join(""),es=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),ja=r=>r.endsWith("/")?r.slice(0,-1):r,Pa=(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("&"),Er=class Sr{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){rt(this,"protocol"),rt(this,"host"),rt(this,"port"),rt(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=es(i)}replace(e){return new Sr({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Sr({...this,pathPrefix:Ca(this.path,e)})}toString(){return ja(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};rt(Er,"UNKNOWN",new Er({host:"unknown",port:0}));let Da=Er;var Ma=Object.defineProperty,Za=(r,e,t)=>e in r?Ma(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Rt=(r,e,t)=>Za(r,typeof e!="symbol"?e+"":e,t);const Ae=class extends Number{};Rt(Ae,"Absolute",255),Rt(Ae,"Default",1),Rt(Ae,"z",s.z.union([s.z.instanceof(Ae),s.z.number().int().min(0).max(255).transform(r=>new Ae(r)),s.z.instanceof(Number).transform(r=>new Ae(r))]));s.z.object({name:s.z.string(),key:s.z.string()});const ts=class nt extends Error{constructor(){super(nt.MESSAGE)}matches(e){return typeof e=="string"?e.includes(nt.MESSAGE):e instanceof nt||e.message.includes(nt.MESSAGE)}};Rt(ts,"MESSAGE","canceled");let Ua=ts;new Ua;s.z.string().regex(/^\d+\.\d+\.\d+$/);const J=r=>e=>e!=null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"?e.type.includes(r):e instanceof Error?e.message.includes(r):typeof e!="string"?!1:e.includes(r);let te=class extends Error{constructor(e){super(e),I(this,"discriminator","FreighterError"),I(this,"type","")}};const Ba=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},hn="unknown",yn="nil",La="freighter",Tt=s.z.object({type:s.z.string(),data:s.z.string()});class qa{constructor(){I(this,"providers",[])}register(e){this.providers.push(e)}encode(e){if(e==null)return{type:yn,data:""};if(Ba(e))for(const t of this.providers){const n=t.encode(e);if(n!=null)return n}return{type:hn,data:JSON.stringify(e)}}decode(e){if(e==null||e.type===yn)return null;if(e.type===hn)return new dn(e.data);for(const t of this.providers){const n=t.decode(e);if(n!=null)return n}return new dn(e.data)}}const rs=new qa,ns=({encode:r,decode:e})=>rs.register({encode:r,decode:e}),Zr=r=>rs.decode(r);class dn extends te{constructor(e){super(e),I(this,"type","unknown")}}const Ft="freighter.",xt=class ss extends te{constructor(){super("EOF"),I(this,"type",ss.TYPE)}};I(xt,"TYPE",Ft+"eof"),I(xt,"matches",J(xt.TYPE));let ge=xt;const Ct=class is extends te{constructor(){super("StreamClosed"),I(this,"type",is.TYPE)}};I(Ct,"TYPE",Ft+"stream_closed"),I(Ct,"matches",J(Ct.TYPE));let Fe=Ct;const jt=class as extends te{constructor(e={}){const{message:t="Unreachable",url:n=Da.UNKNOWN}=e;super(t),I(this,"type",as.TYPE),I(this,"url"),this.url=n}};I(jt,"TYPE",Ft+"unreachable"),I(jt,"matches",J(jt.TYPE));let Se=jt;const Ya=r=>{if(!r.type.startsWith(La))return null;if(ge.matches(r))return{type:ge.TYPE,data:"EOF"};if(Fe.matches(r))return{type:Fe.TYPE,data:"StreamClosed"};if(Se.matches(r))return{type:Se.TYPE,data:"Unreachable"};throw new Error(`Unknown error type: ${r.type}: ${r.message}`)},Wa=r=>{if(!r.type.startsWith(Ft))return null;switch(r.type){case ge.TYPE:return new ge;case Fe.TYPE:return new Fe;case Se.TYPE:return new Se;default:throw new Error(`Unknown error type: ${r.data}`)}};ns({encode:Ya,decode:Wa});class os{constructor(){I(this,"middleware",[])}use(...e){this.middleware.push(...e)}async executeMiddleware(e,t){let n=0;const i=async a=>{if(n===this.middleware.length)return await t(a);const c=this.middleware[n];return n++,await c(a,i)};return await i(e)}}const cs="Content-Type",fn=r=>{if(Qn.RUNTIME!=="node")return fetch;const e=require("node-fetch");if(r==="http")return e;const t=require("https"),n=new t.Agent({rejectUnauthorized:!1});return async(i,a)=>await e(i,{...a,agent:n})};class Fa extends os{constructor(e,t,n=!1){return super(),I(this,"endpoint"),I(this,"encoder"),I(this,"fetch"),this.endpoint=e.replace({protocol:n?"https":"http"}),this.encoder=t,this.fetch=fn(this.endpoint.protocol),new Proxy(this,{get:(i,a,c)=>a==="endpoint"?this.endpoint:Reflect.get(i,a,c)})}get headers(){return{[cs]:this.encoder.contentType}}async send(e,t,n,i){t=n==null?void 0:n.parse(t);let a=null;const c=this.endpoint.child(e),l={};l.method="POST",l.body=this.encoder.encode(t??{});const[,u]=await this.executeMiddleware({target:c.toString(),protocol:this.endpoint.protocol,params:{},role:"client"},async f=>{const p={...f,params:{}};l.headers={...this.headers,...f.params};let g;try{g=await fn(f.protocol)(f.target,l)}catch(j){let Q=j;return Q.message==="Load failed"&&(Q=new Se({url:c})),[p,Q]}const P=await g.arrayBuffer();if(g!=null&&g.ok)return i!=null&&(a=this.encoder.decode(P,i)),[p,null];try{if(g.status!==400)return[p,new Error(g.statusText)];const j=this.encoder.decode(P,Tt),Q=Zr(j);return[p,Q]}catch(j){return[p,new Error(`[freighter] - failed to decode error: ${g.statusText}: ${j.message}`)]}});return[a,u]}}const w=async(r,e,t,n,i)=>{const[a,c]=await r.send(e,t,n,i);if(c!=null)throw c;return a},_a=()=>Qn.RUNTIME!=="node"?r=>new WebSocket(r):r=>new(require("ws")).WebSocket(r,{rejectUnauthorized:!1}),Ga=s.z.object({type:s.z.union([s.z.literal("data"),s.z.literal("close")]),payload:s.z.unknown().optional(),error:s.z.optional(Tt)});class Ka{constructor(e,t,n,i){I(this,"encoder"),I(this,"reqSchema"),I(this,"resSchema"),I(this,"ws"),I(this,"serverClosed"),I(this,"sendClosed"),I(this,"receiveDataQueue",[]),I(this,"receiveCallbacksQueue",[]),this.encoder=t,this.reqSchema=n,this.resSchema=i,this.ws=e,this.sendClosed=!1,this.serverClosed=null,this.listenForMessages()}send(e){if(this.serverClosed!=null)return new ge;if(this.sendClosed)throw new Fe;return this.ws.send(this.encoder.encode({type:"data",payload:e})),null}async receive(){if(this.serverClosed!=null)return[null,this.serverClosed];const e=await this.receiveMsg();if(e.type==="close"){if(e.error==null)throw new Error("Message error must be defined");return this.serverClosed=Zr(e.error),[null,this.serverClosed]}return[this.resSchema.parse(e.payload),null]}received(){return this.receiveDataQueue.length!==0}closeSend(){if(this.sendClosed||this.serverClosed!=null)return;const e={type:"close"};try{this.ws.send(this.encoder.encode(e))}finally{this.sendClosed=!0}}async receiveMsg(){return this.receiveDataQueue.shift()??await new Promise((t,n)=>this.receiveCallbacksQueue.push({resolve:t,reject:n}))}addMessage(e){const t=this.receiveCallbacksQueue.shift();t!=null?t.resolve(e):this.receiveDataQueue.push(e)}listenForMessages(){this.ws.onmessage=e=>this.addMessage(this.encoder.decode(e.data,Ga)),this.ws.onclose=e=>this.addMessage({type:"close",error:{type:Qa(e)?ge.TYPE:Fe.TYPE,data:""}})}}const Va="freighterctx",Ja=1e3,Ha=1001,Xa=[Ja,Ha],Qa=r=>Xa.includes(r.code),ls=class us extends os{constructor(e,t,n=!1){super(),I(this,"baseUrl"),I(this,"encoder"),this.baseUrl=e.replace({protocol:n?"wss":"ws"}),this.encoder=t}async stream(e,t,n){const i=_a();let a;const[,c]=await this.executeMiddleware({target:e,protocol:"websocket",params:{},role:"client"},async l=>{const u=i(this.buildURL(e,l)),f={...l,params:{}};u.binaryType=us.MESSAGE_TYPE;const p=await this.wrapSocket(u,t,n);return p instanceof Error?[f,p]:(a=p,[f,null])});if(c!=null)throw c;return a}buildURL(e,t){const n=Pa({[cs]:this.encoder.contentType,...t.params},Va);return this.baseUrl.child(e).toString()+n}async wrapSocket(e,t,n){return await new Promise(i=>{e.onopen=()=>{i(new Ka(e,this.encoder,t,n))},e.onerror=a=>{const c=a;i(new Error(c.message))}})}};I(ls,"MESSAGE_TYPE","arraybuffer");let eo=ls;const to=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:e[0].toLowerCase()+e.slice(1)},hs=r=>{const e=(t,n=Nr)=>{if(typeof t=="string")return r(t);if(Array.isArray(t))return t.map(c=>e(c,n));if(!lr(t))return t;n=so(n);const i={},a=t;return Object.keys(a).forEach(c=>{let l=a[c];const u=r(c);n.recursive&&(lr(l)?gn(l,n.keepTypesOnRecursion)||(l=e(l,n)):n.recursiveInArray&&pn(l)&&(l=[...l].map(f=>{let p=f;return lr(f)?gn(p,n.keepTypesOnRecursion)||(p=e(f,n)):pn(f)&&(p=e({key:f},n).key),p}))),i[u]=l}),i};return e},ys=hs(to),ro=r=>r.replace(/([a-z0-9])([A-Z])/g,(e,t,n)=>`${t}_${n.toLowerCase()}`),no=hs(ro),Nr={recursive:!0,recursiveInArray:!0,keepTypesOnRecursion:[Number,String,Uint8Array]},so=(r=Nr)=>(r.recursive==null?r=Nr:r.recursiveInArray==null&&(r.recursiveInArray=!1),r),pn=r=>r!=null&&Array.isArray(r),lr=r=>r!=null&&typeof r=="object"&&!Array.isArray(r),gn=(r,e)=>(e||[]).some(t=>r instanceof t),Ur=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var io=Object.defineProperty,ao=(r,e,t)=>e in r?io(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ut=(r,e,t)=>ao(r,typeof e!="symbol"?e+"":e,t);let ds=class{constructor(){ut(this,"contentType","application/json"),ut(this,"decoder"),ut(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e)).buffer}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),i=ys(n);return t!=null?t.parse(i):i}encodeString(e){const t=no(e);return JSON.stringify(t,(n,i)=>ArrayBuffer.isView(i)?Array.from(i):Ur(i)&&"encode_value"in i?typeof i.value=="bigint"?i.value.toString():i.value:typeof i=="bigint"?i.toString():i)}static registerCustomType(){}},fs=class{constructor(){ut(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||!Ur(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(i=>{const a=t.map(c=>JSON.stringify(i[c]??""));n.push(a.join(","))}),n.join(`
|
|
4
|
+
`)}decodeString(e,t){const[n,...i]=e.trim().split(`
|
|
5
|
+
`).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),c={};return a.forEach(l=>{c[l]=[]}),i.forEach(l=>{const u=l.split(",").map(f=>f.trim());a.forEach((f,p)=>{const g=this.parseValue(u[p]);g!=null&&c[f].push(g)})}),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(){}},ps=class{constructor(){ut(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 We=new ds,oo=new fs,co=new ps,lo=[We],Ke=Object.freeze(Object.defineProperty({__proto__:null,CSVCodec:fs,CSV_CODEC:oo,ENCODERS:lo,JSONCodec:ds,JSON_CODEC:We,TEXT_CODEC:co,TextCodec:ps},Symbol.toStringTag,{value:"Module"})),uo=r=>r!=null&&typeof r=="object"&&"toString"in r,ho=(r,e=!1)=>{const t=uo(r)?"stringer":typeof r;let n;switch(t){case"string":n=(i,a)=>i.localeCompare(a);break;case"stringer":n=(i,a)=>i.toString().localeCompare(a.toString());break;case"number":n=(i,a)=>Number(i)-Number(a);break;case"bigint":n=(i,a)=>BigInt(i)-BigInt(a)>0n?1:-1;break;case"boolean":n=(i,a)=>Number(i)-Number(a);break;case"undefined":n=()=>0;break;default:return console.warn(`sortFunc: unknown type ${t}`),()=>-1}return e?yo(n):n},yo=r=>(e,t)=>r(t,e),_t=s.z.tuple([s.z.number(),s.z.number()]);s.z.tuple([s.z.bigint(),s.z.bigint()]);const gs=s.z.object({width:s.z.number(),height:s.z.number()}),fo=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()}),po=["width","height"];s.z.enum(po);const go=["start","center","end"],mo=["signedWidth","signedHeight"];s.z.enum(mo);const Ut=s.z.object({x:s.z.number(),y:s.z.number()}),wo=s.z.object({clientX:s.z.number(),clientY:s.z.number()}),bo=["x","y"],ms=s.z.enum(bo),ws=["top","right","bottom","left"];s.z.enum(ws);const vo=["left","right"],bs=s.z.enum(vo),To=["top","bottom"],vs=s.z.enum(To),Ts=["center"],mn=s.z.enum(Ts),Oo=[...ws,...Ts],Os=s.z.enum(Oo);s.z.enum(go);const zo=["first","last"];s.z.enum(zo);const Eo=s.z.object({lower:s.z.number(),upper:s.z.number()}),So=s.z.object({lower:s.z.bigint(),upper:s.z.bigint()});s.z.union([Eo,_t]);s.z.union([So,_t]);s.z.union([ms,Os]);s.z.union([ms,Os,s.z.instanceof(String)]);const ht=(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 wn(r);return wn(t)},wn=r=>r.lower>r.upper?{lower:r.upper,upper:r.lower}:r;s.z.object({x:bs.or(mn),y:vs.or(mn)});const No=s.z.object({x:bs,y:vs}),Io=Object.freeze({x:"left",y:"top"}),ko=(r,e)=>r.x===e.x&&r.y===e.y,bn=s.z.union([s.z.number(),Ut,_t,gs,fo,wo]),Ao=(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}},vn=Object.freeze({x:0,y:0}),kt=s.z.union([s.z.number(),s.z.string()]);s.z.object({top:kt,left:kt,width:kt,height:kt});s.z.object({left:s.z.number(),top:s.z.number(),right:s.z.number(),bottom:s.z.number()});s.z.object({one:Ut,two:Ut,root:No});const Br=(r,e,t=0,n=0,i)=>{const a={one:{...vn},two:{...vn},root:i??Io};if(typeof r=="number"){if(typeof e!="number")throw new Error("Box constructor called with invalid arguments");return a.one={x:r,y:e},a.two={x:a.one.x+t,y:a.one.y+n},a}return"one"in r&&"two"in r&&"root"in r?{...r,root:i??r.root}:("getBoundingClientRect"in r&&(r=r.getBoundingClientRect()),"left"in r?(a.one={x:r.left,y:r.top},a.two={x:r.right,y:r.bottom},a):(a.one=r,e==null?a.two={x:a.one.x+t,y:a.one.y+n}:typeof e=="number"?a.two={x:a.one.x+e,y:a.one.y+t}:"width"in e?a.two={x:a.one.x+e.width,y:a.one.y+e.height}:"signedWidth"in e?a.two={x:a.one.x+e.signedWidth,y:a.one.y+e.signedHeight}:a.two=e,a))},ur=r=>{const e=Br(r);return{lower:e.one.x,upper:e.two.x}},hr=r=>{const e=Br(r);return{lower:e.one.y,upper:e.two.y}},$o=r=>typeof r!="object"||r==null?!1:"one"in r&&"two"in r&&"root"in r,Ro=s.z.object({signedWidth:s.z.number(),signedHeight:s.z.number()});s.z.union([gs,Ro,Ut,_t]);var xo=Object.defineProperty,Co=(r,e,t)=>e in r?xo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,he=(r,e,t)=>Co(r,typeof e!="symbol"?e+"":e,t);const jo=(r,e,t)=>e!==void 0&&r<e?e:t!==void 0&&r>t?t:r;s.z.object({offset:bn,scale:bn});const Po=r=>(e,t,n,i)=>t==="dimension"?[e,n]:[e,i?n-r:n+r],Do=r=>(e,t,n,i)=>[e,i?n/r:n*r],Mo=r=>(e,t,n)=>{if(e===null)return[r,n];const{lower:i,upper:a}=e,{lower:c,upper:l}=r,u=a-i,f=l-c;if(t==="dimension")return[r,n*(f/u)];const p=(n-i)*(f/u)+c;return[r,p]},Zo=r=>(e,t,n)=>[r,n],Uo=()=>(r,e,t)=>{if(r===null)throw new Error("cannot invert without bounds");if(e==="dimension")return[r,t];const{lower:n,upper:i}=r;return[r,i-(t-n)]},Bo=r=>(e,t,n)=>{const{lower:i,upper:a}=r;return n=jo(n,i,a),[e,n]},Ir=class st{constructor(){he(this,"ops",[]),he(this,"currBounds",null),he(this,"currType",null),he(this,"reversed",!1),this.ops=[]}static translate(e){return new st().translate(e)}static magnify(e){return new st().magnify(e)}static scale(e,t){return new st().scale(e,t)}translate(e){const t=this.new(),n=Po(e);return n.type="translate",t.ops.push(n),t}magnify(e){const t=this.new(),n=Do(e);return n.type="magnify",t.ops.push(n),t}scale(e,t){const n=ht(e,t),i=this.new(),a=Mo(n);return a.type="scale",i.ops.push(a),i}clamp(e,t){const n=ht(e,t),i=this.new(),a=Bo(n);return a.type="clamp",i.ops.push(a),i}reBound(e,t){const n=ht(e,t),i=this.new(),a=Zo(n);return a.type="re-bound",i.ops.push(a),i}invert(){const e=Uo();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 st;return e.ops=this.ops.slice(),e.reversed=this.reversed,e}exec(e,t){return this.currBounds=null,this.ops.reduce(([n,i],a)=>a(n,e,i,this.reversed),[null,t])[1]}reverse(){const e=this.new();e.ops.reverse();const t=[];return e.ops.forEach((n,i)=>{if(n.type==="scale"||t.some(([c,l])=>i>=c&&i<=l))return;const a=e.ops.findIndex((c,l)=>c.type==="scale"&&l>i);a!==-1&&t.push([i,a])}),t.forEach(([n,i])=>{const a=e.ops.slice(n,i);a.unshift(e.ops[i]),e.ops.splice(n,i-n+1,...a)}),e.reversed=!e.reversed,e}};he(Ir,"IDENTITY",new Ir);let Tn=Ir;const On=class ce{constructor(e=new Tn,t=new Tn,n=null){he(this,"x"),he(this,"y"),he(this,"currRoot"),this.x=e,this.y=t,this.currRoot=n}static translate(e,t){return new ce().translate(e,t)}static translateX(e){return new ce().translateX(e)}static translateY(e){return new ce().translateY(e)}static clamp(e){return new ce().clamp(e)}static magnify(e){return new ce().magnify(e)}static scale(e){return new ce().scale(e)}static reBound(e){return new ce().reBound(e)}translate(e,t){const n=Ao(e,t),i=this.copy();return i.x=this.x.translate(n.x),i.y=this.y.translate(n.y),i}translateX(e){const t=this.copy();return t.x=this.x.translate(e),t}translateY(e){const t=this.copy();return t.y=this.y.translate(e),t}magnify(e){const t=this.copy();return t.x=this.x.magnify(e.x),t.y=this.y.magnify(e.y),t}scale(e){const t=this.copy();if($o(e)){const n=this.currRoot;return t.currRoot=e.root,n!=null&&!ko(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(ur(e)),t.y=t.y.scale(hr(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(ur(e)),t.y=this.y.reBound(hr(e)),t}clamp(e){const t=this.copy();return t.x=this.x.clamp(ur(e)),t.y=this.y.clamp(hr(e)),t}copy(){const e=new ce;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)}}box(e){return Br(this.pos(e.one),this.pos(e.two),0,0,this.currRoot??e.root)}};he(On,"IDENTITY",new On);var Lo=Object.defineProperty,qo=(r,e,t)=>e in r?Lo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,d=(r,e,t)=>qo(r,typeof e!="symbol"?e+"":e,t);let Yo=(r,e=21)=>(t=e)=>{let n="",i=t;for(;i--;)n+=r[Math.random()*r.length|0];return n};const Wo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",zs=Yo(Wo,11),Fo=Object.freeze(Object.defineProperty({__proto__:null,id:zs},Symbol.toStringTag,{value:"Module"})),Es=(r,e)=>{const t=new O(e);if(![E.DAY,E.HOUR,E.MINUTE,E.SECOND,E.MILLISECOND,E.MICROSECOND,E.NANOSECOND].some(i=>i.equals(t)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const n=r.valueOf()%t.valueOf();return r instanceof O?new O(n):new E(n)},$=class v{constructor(e,t="UTC"){if(d(this,"value"),d(this,"encodeValue",!0),e==null)this.value=v.now().valueOf();else if(e instanceof Date)this.value=BigInt(e.getTime())*v.MILLISECOND.valueOf();else if(typeof e=="string")this.value=v.parseDateTimeString(e,t).valueOf();else if(Array.isArray(e))this.value=v.parseDate(e);else{let n=BigInt(0);e instanceof Number&&(e=e.valueOf()),t==="local"&&(n=v.utcOffset.valueOf()),typeof e=="number"&&(isFinite(e)?e=Math.trunc(e):(isNaN(e)&&(e=0),e===1/0?e=v.MAX:e=v.MIN)),this.value=BigInt(e.valueOf())+n}}static parseDate([e=1970,t=1,n=1]){const i=new Date(e,t-1,n,0,0,0,0);return new v(BigInt(i.getTime())*v.MILLISECOND.valueOf()).truncate(v.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(e,t="UTC"){const[n,i,a]=e.split(":");let c="00",l="00";a!=null&&([c,l]=a.split("."));let u=v.hours(parseInt(n??"00",10)).add(v.minutes(parseInt(i??"00",10))).add(v.seconds(parseInt(c??"00",10))).add(v.milliseconds(parseInt(l??"00",10)));return t==="local"&&(u=u.add(v.utcOffset)),u.valueOf()}static parseDateTimeString(e,t="UTC"){if(!e.includes("/")&&!e.includes("-"))return v.parseTimeString(e,t);const n=new Date(e);return e.includes(":")||n.setUTCHours(0,0,0,0),new v(BigInt(n.getTime())*v.MILLISECOND.valueOf(),t).valueOf()}fString(e="ISO",t="UTC"){switch(e){case"ISODate":return this.toISOString(t).slice(0,10);case"ISOTime":return this.toISOString(t).slice(11,23);case"time":return this.timeString(!1,t);case"preciseTime":return this.timeString(!0,t);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,t)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,t)}`;default:return this.toISOString(t)}}toISOString(e="UTC"){return e==="UTC"?this.date().toISOString():this.sub(v.utcOffset).date().toISOString()}timeString(e=!1,t="UTC"){const n=this.toISOString(t);return e?n.slice(11,23):n.slice(11,19)}dateString(){const e=this.date(),t=e.toLocaleString("default",{month:"short"}),n=e.toLocaleString("default",{day:"numeric"});return`${t} ${n}`}static get utcOffset(){return new E(BigInt(new Date().getTimezoneOffset())*v.MINUTE.valueOf())}static since(e){return new v().span(e)}date(){return new Date(this.milliseconds())}equals(e){return this.valueOf()===new v(e).valueOf()}span(e){return this.range(e).span}range(e){return new G(this,e).makeValid()}spanRange(e){return this.range(this.add(e)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(e){return this.valueOf()>new v(e).valueOf()}afterEq(e){return this.valueOf()>=new v(e).valueOf()}before(e){return this.valueOf()<new v(e).valueOf()}beforeEq(e){return this.valueOf()<=new v(e).valueOf()}add(e){return new v(this.valueOf()+BigInt(e.valueOf()))}sub(e){return new v(this.valueOf()-BigInt(e.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(v.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(e){return Es(this,e)}get isToday(){return this.truncate(E.DAY).equals(v.now().truncate(E.DAY))}truncate(e){return this.sub(this.remainder(e))}static now(){return new v(new Date)}static max(...e){let t=v.MIN;for(const n of e){const i=new v(n);i.after(t)&&(t=i)}return t}static min(...e){let t=v.MAX;for(const n of e){const i=new v(n);i.before(t)&&(t=i)}return t}static nanoseconds(e){return new v(e)}static microseconds(e){return v.nanoseconds(e*1e3)}static milliseconds(e){return v.microseconds(e*1e3)}static seconds(e){return v.milliseconds(e*1e3)}static minutes(e){return v.seconds(e*60)}static hours(e){return v.minutes(e*60)}static days(e){return v.hours(e*24)}};d($,"NANOSECOND",$.nanoseconds(1)),d($,"MICROSECOND",$.microseconds(1)),d($,"MILLISECOND",$.milliseconds(1)),d($,"SECOND",$.seconds(1)),d($,"MINUTE",$.minutes(1)),d($,"HOUR",$.hours(1)),d($,"DAY",$.days(1)),d($,"MAX",new $((1n<<63n)-1n)),d($,"MIN",new $(0)),d($,"ZERO",new $(0)),d($,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new $(r.value)),s.z.string().transform(r=>new $(BigInt(r))),s.z.instanceof(Number).transform(r=>new $(r)),s.z.number().transform(r=>new $(r)),s.z.instanceof($)]));let O=$;const R=class N{constructor(e){d(this,"value"),d(this,"encodeValue",!0),typeof e=="number"&&(e=Math.trunc(e.valueOf())),this.value=BigInt(e.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(e){return this.valueOf()<new N(e).valueOf()}greaterThan(e){return this.valueOf()>new N(e).valueOf()}lessThanOrEqual(e){return this.valueOf()<=new N(e).valueOf()}greaterThanOrEqual(e){return this.valueOf()>=new N(e).valueOf()}remainder(e){return Es(this,e)}truncate(e){return new N(BigInt(Math.trunc(Number(this.valueOf()/e.valueOf())))*e.valueOf())}toString(){const e=this.truncate(N.DAY),t=this.truncate(N.HOUR),n=this.truncate(N.MINUTE),i=this.truncate(N.SECOND),a=this.truncate(N.MILLISECOND),c=this.truncate(N.MICROSECOND),l=this.truncate(N.NANOSECOND),u=e,f=t.sub(e),p=n.sub(t),g=i.sub(n),P=a.sub(i),j=c.sub(a),Q=l.sub(c);let D="";return u.isZero||(D+=`${u.days}d `),f.isZero||(D+=`${f.hours}h `),p.isZero||(D+=`${p.minutes}m `),g.isZero||(D+=`${g.seconds}s `),P.isZero||(D+=`${P.milliseconds}ms `),j.isZero||(D+=`${j.microseconds}µs `),Q.isZero||(D+=`${Q.nanoseconds}ns`),D.trim()}get days(){return Number(this.valueOf())/Number(N.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(N.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(N.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(N.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(N.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(N.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(e){return this.valueOf()===new N(e).valueOf()}add(e){return new N(this.valueOf()+new N(e).valueOf())}sub(e){return new N(this.valueOf()-new N(e).valueOf())}static nanoseconds(e=1){return new N(e)}static microseconds(e=1){return N.nanoseconds(e*1e3)}static milliseconds(e=1){return N.microseconds(e*1e3)}static seconds(e=1){return N.milliseconds(e*1e3)}static minutes(e){return N.seconds(e.valueOf()*60)}static hours(e){return N.minutes(e*60)}static days(e){return N.hours(e*24)}};d(R,"NANOSECOND",R.nanoseconds(1)),d(R,"MICROSECOND",R.microseconds(1)),d(R,"MILLISECOND",R.milliseconds(1)),d(R,"SECOND",R.seconds(1)),d(R,"MINUTE",R.minutes(1)),d(R,"HOUR",R.hours(1)),d(R,"DAY",R.days(1)),d(R,"MAX",new R((1n<<63n)-1n)),d(R,"MIN",new R(0)),d(R,"ZERO",new R(0)),d(R,"z",s.z.union([s.z.object({value:s.z.bigint()}).transform(r=>new R(r.value)),s.z.string().transform(r=>new R(BigInt(r))),s.z.instanceof(Number).transform(r=>new R(r)),s.z.number().transform(r=>new R(r)),s.z.instanceof(R)]));let E=R;const it=class Pt extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}toString(){return`${this.valueOf()} Hz`}equals(e){return this.valueOf()===new Pt(e).valueOf()}get period(){return E.seconds(1/this.valueOf())}sampleCount(e){return new E(e).seconds*this.valueOf()}byteCount(e,t){return this.sampleCount(e)*new _(t).valueOf()}span(e){return E.seconds(e/this.valueOf())}byteSpan(e,t){return this.span(e.valueOf()/t.valueOf())}static hz(e){return new Pt(e)}static khz(e){return Pt.hz(e*1e3)}};d(it,"z",s.z.union([s.z.number().transform(r=>new it(r)),s.z.instanceof(Number).transform(r=>new it(r)),s.z.instanceof(it)]));let Gt=it;const L=class extends Number{constructor(e){e instanceof Number?super(e.valueOf()):super(e)}length(e){return e.valueOf()/this.valueOf()}size(e){return new ft(e*this.valueOf())}};d(L,"UNKNOWN",new L(0)),d(L,"BIT128",new L(16)),d(L,"BIT64",new L(8)),d(L,"BIT32",new L(4)),d(L,"BIT16",new L(2)),d(L,"BIT8",new L(1)),d(L,"z",s.z.union([s.z.number().transform(r=>new L(r)),s.z.instanceof(Number).transform(r=>new L(r)),s.z.instanceof(L)]));let _=L;const se=class Dt{constructor(e,t){d(this,"start"),d(this,"end"),typeof e=="object"&&"start"in e?(this.start=new O(e.start),this.end=new O(e.end)):(this.start=new O(e),this.end=new O(t))}get span(){return new E(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}swap(){return new Dt(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=E.ZERO){e=e.makeValid();const n=this.makeValid();if(this.equals(e))return!0;if(e.end.equals(n.start)||n.end.equals(e.start))return!1;const i=O.max(n.start,e.start),a=O.min(n.end,e.end);return a.before(i)?!1:new E(a.sub(i)).greaterThanOrEqual(t)}roughlyEquals(e,t){let n=this.start.sub(e.start).valueOf(),i=this.end.sub(e.end).valueOf();return n<0&&(n=-n),i<0&&(i=-i),n<=t.valueOf()&&i<=t.valueOf()}contains(e){return e instanceof Dt?this.contains(e.start)&&this.contains(e.end):this.start.beforeEq(e)&&this.end.after(e)}boundBy(e){const t=new Dt(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}};d(se,"MAX",new se(O.MIN,O.MAX)),d(se,"MIN",new se(O.MAX,O.MIN)),d(se,"ZERO",new se(O.ZERO,O.ZERO)),d(se,"z",s.z.union([s.z.object({start:O.z,end:O.z}).transform(r=>new se(r.start,r.end)),s.z.instanceof(se)]));let G=se;const h=class ie extends String{constructor(e){if(e instanceof ie||typeof e=="string"||typeof e.valueOf()=="string"){super(e.valueOf());return}else{const t=ie.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);if(t!=null){super(t.valueOf());return}}throw super(ie.UNKNOWN.valueOf()),new Error(`unable to find data type for ${e.toString()}`)}get Array(){const e=ie.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()}toString(){return this.valueOf()}get isVariable(){return this.equals(ie.JSON)||this.equals(ie.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(ie.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const e=ie.DENSITIES.get(this.toString());if(e==null)throw new Error(`unable to find density for ${this.valueOf()}`);return e}canSafelyCastTo(e){return this.equals(e)?!0:this.isVariable&&!e.isVariable||!this.isVariable&&e.isVariable?!1:this.isFloat&&e.isInteger||this.isInteger&&e.isFloat?this.density.valueOf()<e.density.valueOf():this.isFloat&&e.isFloat||this.isInteger&&e.isInteger?this.density.valueOf()<=e.density.valueOf():!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 ie.BIG_INT_TYPES.some(e=>e.equals(this))}};d(h,"UNKNOWN",new h("unknown")),d(h,"FLOAT64",new h("float64")),d(h,"FLOAT32",new h("float32")),d(h,"INT64",new h("int64")),d(h,"INT32",new h("int32")),d(h,"INT16",new h("int16")),d(h,"INT8",new h("int8")),d(h,"UINT64",new h("uint64")),d(h,"UINT32",new h("uint32")),d(h,"UINT16",new h("uint16")),d(h,"UINT8",new h("uint8")),d(h,"BOOLEAN",h.UINT8),d(h,"TIMESTAMP",new h("timestamp")),d(h,"UUID",new h("uuid")),d(h,"STRING",new h("string")),d(h,"JSON",new h("json")),d(h,"ARRAY_CONSTRUCTORS",new Map([[h.UINT8.toString(),Uint8Array],[h.UINT16.toString(),Uint16Array],[h.UINT32.toString(),Uint32Array],[h.UINT64.toString(),BigUint64Array],[h.FLOAT32.toString(),Float32Array],[h.FLOAT64.toString(),Float64Array],[h.INT8.toString(),Int8Array],[h.INT16.toString(),Int16Array],[h.INT32.toString(),Int32Array],[h.INT64.toString(),BigInt64Array],[h.TIMESTAMP.toString(),BigInt64Array],[h.STRING.toString(),Uint8Array],[h.JSON.toString(),Uint8Array],[h.UUID.toString(),Uint8Array]])),d(h,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,h.UINT8],[Uint16Array.name,h.UINT16],[Uint32Array.name,h.UINT32],[BigUint64Array.name,h.UINT64],[Float32Array.name,h.FLOAT32],[Float64Array.name,h.FLOAT64],[Int8Array.name,h.INT8],[Int16Array.name,h.INT16],[Int32Array.name,h.INT32],[BigInt64Array.name,h.INT64]])),d(h,"DENSITIES",new Map([[h.UINT8.toString(),_.BIT8],[h.UINT16.toString(),_.BIT16],[h.UINT32.toString(),_.BIT32],[h.UINT64.toString(),_.BIT64],[h.FLOAT32.toString(),_.BIT32],[h.FLOAT64.toString(),_.BIT64],[h.INT8.toString(),_.BIT8],[h.INT16.toString(),_.BIT16],[h.INT32.toString(),_.BIT32],[h.INT64.toString(),_.BIT64],[h.TIMESTAMP.toString(),_.BIT64],[h.STRING.toString(),_.UNKNOWN],[h.JSON.toString(),_.UNKNOWN],[h.UUID.toString(),_.BIT128]])),d(h,"ALL",[h.UNKNOWN,h.FLOAT64,h.FLOAT32,h.INT64,h.INT32,h.INT16,h.INT8,h.UINT64,h.UINT32,h.UINT16,h.UINT8,h.TIMESTAMP,h.UUID,h.STRING,h.JSON]),d(h,"BIG_INT_TYPES",[h.INT64,h.UINT64,h.TIMESTAMP]),d(h,"z",s.z.union([s.z.string().transform(r=>new h(r)),s.z.instanceof(h)]));let z=h;const F=class Z extends Number{constructor(e){super(e.valueOf())}largerThan(e){return this.valueOf()>e.valueOf()}smallerThan(e){return this.valueOf()<e.valueOf()}add(e){return Z.bytes(this.valueOf()+e.valueOf())}sub(e){return Z.bytes(this.valueOf()-e.valueOf())}truncate(e){return new Z(Math.trunc(this.valueOf()/e.valueOf())*e.valueOf())}remainder(e){return Z.bytes(this.valueOf()%e.valueOf())}get gigabytes(){return this.valueOf()/Z.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/Z.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/Z.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/Z.TERABYTE.valueOf()}toString(){const e=this.truncate(Z.TERABYTE),t=this.truncate(Z.GIGABYTE),n=this.truncate(Z.MEGABYTE),i=this.truncate(Z.KILOBYTE),a=this.truncate(Z.BYTE),c=e,l=t.sub(e),u=n.sub(t),f=i.sub(n),p=a.sub(i);let g="";return c.isZero||(g+=`${c.terabytes}TB `),l.isZero||(g+=`${l.gigabytes}GB `),u.isZero||(g+=`${u.megabytes}MB `),f.isZero||(g+=`${f.kilobytes}KB `),(!p.isZero||g==="")&&(g+=`${p.valueOf()}B`),g.trim()}static bytes(e=1){return new Z(e)}static kilobytes(e=1){return Z.bytes(e.valueOf()*1e3)}static megabytes(e=1){return Z.kilobytes(e.valueOf()*1e3)}static gigabytes(e=1){return Z.megabytes(e.valueOf()*1e3)}static terabytes(e){return Z.gigabytes(e.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};d(F,"BYTE",new F(1)),d(F,"KILOBYTE",F.kilobytes(1)),d(F,"MEGABYTE",F.megabytes(1)),d(F,"GIGABYTE",F.gigabytes(1)),d(F,"TERABYTE",F.terabytes(1)),d(F,"ZERO",new F(0)),d(F,"z",s.z.union([s.z.number().transform(r=>new F(r)),s.z.instanceof(F)]));let ft=F;s.z.union([s.z.instanceof(Uint8Array),s.z.instanceof(Uint16Array),s.z.instanceof(Uint32Array),s.z.instanceof(BigUint64Array),s.z.instanceof(Float32Array),s.z.instanceof(Float64Array),s.z.instanceof(Int8Array),s.z.instanceof(Int16Array),s.z.instanceof(Int32Array),s.z.instanceof(BigInt64Array)]);const Ss=r=>{const e=typeof r;return e==="string"||e==="number"||e==="boolean"||e==="bigint"||r instanceof O||r instanceof E||r instanceof Date},_o=(r,e,t,n=0)=>r.usesBigInt&&!e.usesBigInt?Number(t)-Number(n):!r.usesBigInt&&e.usesBigInt?BigInt(t)-BigInt(n):at(t,-n),Go=r=>r==null?!1:Array.isArray(r)||r instanceof ArrayBuffer||ArrayBuffer.isView(r)&&!(r instanceof DataView)||r instanceof Oe?!0:Ss(r),ve=-1;let Oe=class le{constructor(e){d(this,"key",""),d(this,"isSynnaxSeries",!0),d(this,"dataType"),d(this,"sampleOffset"),d(this,"gl"),d(this,"_data"),d(this,"_timeRange"),d(this,"alignment",0n),d(this,"_cachedMin"),d(this,"_cachedMax"),d(this,"writePos",ve),d(this,"_refCount",0),d(this,"_cachedLength"),Go(e)&&(e={data:e});const{dataType:t,timeRange:n,sampleOffset:i=0,glBufferUsage:a="static",alignment:c=0n,key:l=zs()}=e,{data:u}=e;if(u instanceof le||typeof u=="object"&&"isSynnaxSeries"in u&&u.isSynnaxSeries===!0){const g=u;this.key=g.key,this.dataType=g.dataType,this.sampleOffset=g.sampleOffset,this.gl=g.gl,this._data=g._data,this._timeRange=g._timeRange,this.alignment=g.alignment,this._cachedMin=g._cachedMin,this._cachedMax=g._cachedMax,this.writePos=g.writePos,this._refCount=g._refCount,this._cachedLength=g._cachedLength;return}const f=Ss(u),p=Array.isArray(u);if(t!=null)this.dataType=new z(t);else{if(u instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(p||f){let g=u;if(!f){if(u.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");g=u[0]}if(typeof g=="string")this.dataType=z.STRING;else if(typeof g=="number")this.dataType=z.FLOAT64;else if(typeof g=="bigint")this.dataType=z.INT64;else if(typeof g=="boolean")this.dataType=z.BOOLEAN;else if(g instanceof O||g instanceof Date||g instanceof O)this.dataType=z.TIMESTAMP;else if(typeof g=="object")this.dataType=z.JSON;else throw new Error(`cannot infer data type of ${typeof g} when constructing a Series from a JS array`)}else this.dataType=new z(u)}if(!p&&!f)this._data=u;else{let g=f?[u]:u;const P=g[0];(P instanceof O||P instanceof Date||P instanceof E)&&(g=g.map(j=>new O(j).valueOf())),this.dataType.equals(z.STRING)?(this._cachedLength=g.length,this._data=new TextEncoder().encode(g.join(`
|
|
4
6
|
`)+`
|
|
5
|
-
`)):this.dataType.equals(z.JSON)?(this._cachedLength=
|
|
7
|
+
`)):this.dataType.equals(z.JSON)?(this._cachedLength=g.length,this._data=new TextEncoder().encode(g.map(j=>We.encodeString(j)).join(`
|
|
6
8
|
`)+`
|
|
7
|
-
`)):this._data=new this.dataType.Array(
|
|
9
|
+
`)):this._data=new this.dataType.Array(g).buffer}this.key=l,this.alignment=c,this.sampleOffset=i??0,this._timeRange=n,this.gl={control:null,buffer:null,prevBuffer:0,bufferUsage:a}}static alloc({capacity:e,dataType:t,...n}){if(e===0)throw new Error("[Series] - cannot allocate an array of length 0");const i=new new z(t).Array(e),a=new le({data:i.buffer,dataType:t,...n});return a.writePos=0,a}static generateTimestamps(e,t,n){const i=n.spanRange(t.span(e)),a=new BigInt64Array(e);for(let c=0;c<e;c++)a[c]=BigInt(n.add(t.span(c)).valueOf());return new le({data:a,dataType:z.TIMESTAMP,timeRange:i})}get refCount(){return this._refCount}static fromStrings(e,t){const n=new TextEncoder().encode(e.join(`
|
|
8
10
|
`)+`
|
|
9
|
-
`);return new le({data:n,dataType:z.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(e.map(i=>
|
|
11
|
+
`);return new le({data:n,dataType:z.STRING,timeRange:t})}static fromJSON(e,t){const n=new TextEncoder().encode(e.map(i=>We.encodeString(i)).join(`
|
|
10
12
|
`)+`
|
|
11
13
|
`);return new le({data:n,dataType:z.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");if(this.writePos===ve)return 0;const t=this.capacity-this.writePos,n=t<e.length?e.slice(0,t):e;return this.underlyingData.set(n.data,this.writePos),this.maybeRecomputeMinMax(n),this._cachedLength=void 0,this.writePos+=n.length,n.length}get buffer(){return this._data}get underlyingData(){return new this.dataType.Array(this._data)}get data(){return this.writePos===ve?this.underlyingData:new this.dataType.Array(this._data,0,this.writePos)}toStrings(){if(!this.dataType.equals(z.STRING))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.buffer).split(`
|
|
12
14
|
`).slice(0,-1)}toUUIDs(){if(!this.dataType.equals(z.UUID))throw new Error("cannot convert non-uuid series to uuids");const e=z.UUID.density.valueOf(),t=Array(this.length);for(let n=0;n<this.length;n++){const i=this.buffer.slice(n*e,(n+1)*e),a=Array.from(new Uint8Array(i),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(z.JSON))throw new Error("cannot convert non-string series to strings");return new TextDecoder().decode(this.buffer).split(`
|
|
13
|
-
`).slice(0,-1).map(t=>e.parse(Zt(JSON.parse(t))))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new dt(this.buffer.byteLength)}get capacity(){return this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===ve?this.byteCapacity:this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===ve?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;return this.data.forEach(t=>{t===10&&e++}),this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let i=0;i<this.length;i++)n[i]=Ro(this.dataType,e,this.data[i],t);return new le({data:n.buffer,dataType:e,timeRange:this._timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals(z.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==null&&(this._cachedMax=this.calcRawMax()),it(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(z.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==null&&(this._cachedMin=this.calcRawMin()),it(this._cachedMin,this.sampleOffset))}get bounds(){return lt(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 it(this.max,-this.min)}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 it(n,this.sampleOffset)}atVariable(e,t){e<0&&(e=this.length+e);let n=0,i=0;for(let c=0;c<this.data.length;c++)if(this.data[c]===10){if(e===0){i=c;break}n=c+1,e--}if(i===0&&(i=this.data.length),n>=i||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}const a=this.data.slice(n,i);return this.dataType.equals(z.STRING)?new TextDecoder().decode(a):Zt(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=Ja(e);for(;t<=n;){const a=Math.floor((t+n)/2),c=i(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(z.FLOAT32))throw new Error("Only FLOAT32 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:i}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==i)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==ve){i===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(i).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=ve}as(e){if(e==="string"){if(!this.dataType.equals(z.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(z.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:this.alignmentBounds,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 lt(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 xo(this);return this.dataType.equals(z.JSON)?new Co(e):e}return new Po(this)}slice(e,t){if(e<=0&&(t==null||t>=this.length))return this;const n=this.data.slice(e,t);return new le({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}reAlign(e){return new le({data:this.buffer,dataType:this.dataType,timeRange:_.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};class xo{constructor(e){if(d(this,"series"),d(this,"index"),d(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]!==10;)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 Tn,On;class Co{constructor(e){d(this,"wrapped"),d(this,Tn,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:Zt(JSON.parse(e.value))}}[(On=Symbol.iterator,Tn=Symbol.toStringTag,On)](){return this}}var zn,En;class Po{constructor(e){d(this,"series"),d(this,"index"),d(this,zn,"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)}}[(En=Symbol.iterator,zn=Symbol.toStringTag,En)](){return this}}const it=(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);class vs{constructor(e){if(d(this,"series"),e.length!==0){const t=e[0].dataType;for(let n=1;n<e.length;n++)if(!e[n].dataType.equals(t))throw new Error("[multi-series] - series must have the same data type")}this.series=e}as(e){if(!new z(e).equals(this.dataType))throw new Error(`cannot convert series of type ${this.dataType.toString()} to ${e.toString()}`);return this}get dataType(){return this.series.length===0?z.UNKNOWN:this.series[0].dataType}get timeRange(){return this.series.length===0?_.ZERO:new _(this.series[0].timeRange.start,this.series[this.series.length-1].timeRange.end)}push(e){this.series.push(e)}get length(){return this.series.reduce((e,t)=>e+t.length,0)}at(e,t=!1){e<0&&(e=this.length+e);for(const n of this.series){if(e<n.length)return n.at(e,t);e-=n.length}if(t)throw new Error(`[series] - no value at index ${e}`)}get byteLength(){return new dt(this.series.reduce((e,t)=>e+t.byteLength.valueOf(),0))}get data(){const e=new this.dataType.Array(this.length);let t=0;for(const n of this.series)e.set(n.data,t),t+=n.length;return new this.dataType.Array(e)}[Symbol.iterator](){return this.series.length===0?{next(){return{done:!0,value:void 0}}}:new jo(this.series)}}var Sn,Nn;class jo{constructor(e){d(this,"series"),d(this,"seriesIndex"),d(this,"internal"),d(this,Sn,"MultiSeriesIterator"),this.series=e,this.seriesIndex=0,this.internal=e[0][Symbol.iterator]()}next(){const e=this.internal.next();return e.done===!1?e:this.seriesIndex===this.series.length-1?{done:!0,value:void 0}:(this.internal=this.series[++this.seriesIndex][Symbol.iterator](),this.next())}[(Nn=Symbol.iterator,Sn=Symbol.toStringTag,Nn)](){return this}}const T=r=>Array.isArray(r)?r:[r],me=s.z.number(),Tt=s.z.object({name:s.z.string(),key:s.z.number(),rate:Gt.z,dataType:z.z,leaseholder:s.z.number(),index:s.z.number(),isIndex:s.z.boolean(),internal:s.z.boolean(),alias:s.z.string().optional()}),Ts=Tt.extend({key:s.z.number().optional(),leaseholder:s.z.number().optional(),index:s.z.number().optional(),rate:Gt.z.optional().default(0),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional().default(!1),virtual:s.z.boolean().optional().default(!1)}),Do=(r,e)=>{let t=null;return e===0?r:(...n)=>{t!==null&&(clearTimeout(t),t=null),t=setTimeout(()=>r(...n),e)}},Mo=new Error("request for lock canceled");var Zo=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(c){c(a)})}return new(t||(t=Promise))(function(a,c){function l(g){try{f(n.next(g))}catch(p){c(p)}}function u(g){try{f(n.throw(g))}catch(p){c(p)}}function f(g){g.done?a(g.value):i(g.value).then(l,u)}f((n=n.apply(r,e||[])).next())})};class Uo{constructor(e,t=Mo){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((n,i)=>{const a={resolve:n,reject:i,weight:e,priority:t},c=Os(this._queue,l=>t<=l.priority);c===-1&&e<=this._value?this._dispatchItem(a):this._queue.splice(c+1,0,a)})}runExclusive(e){return Zo(this,arguments,void 0,function*(t,n=1,i=0){const[a,c]=yield this.acquire(n,i);try{return yield t(a)}finally{c()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(n=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),Bo(this._weightedWaiters[e-1],{resolve:n,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){const t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){const t=this._weightedWaiters[e-1];t&&(t.forEach(n=>n.resolve()),this._weightedWaiters[e-1]=[])}else{const e=this._queue[0].priority;for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];if(!n)continue;const i=n.findIndex(a=>a.priority<=e);(i===-1?n:n.splice(0,i)).forEach(a=>a.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}}function Bo(r,e){const t=Os(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function Os(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var Lo=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(c){c(a)})}return new(t||(t=Promise))(function(a,c){function l(g){try{f(n.next(g))}catch(p){c(p)}}function u(g){try{f(n.throw(g))}catch(p){c(p)}}function f(g){g.done?a(g.value):i(g.value).then(l,u)}f((n=n.apply(r,e||[])).next())})};class qo{constructor(e){this._semaphore=new Uo(1,e)}acquire(){return Lo(this,arguments,void 0,function*(e=0){const[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const we="sy.",Re=class Re extends te{constructor(){super(...arguments);o(this,"type",Re.TYPE)}};o(Re,"TYPE",we+"validation"),o(Re,"matches",V(Re.TYPE));let x=Re;const $e=class $e extends x{constructor(t,n){super(t+": "+n);o(this,"type",$e.TYPE);o(this,"field");o(this,"message");this.field=t,this.message=n}};o($e,"TYPE",x.TYPE+".field"),o($e,"matches",V($e.TYPE));let Bt=$e;const xe=class xe extends te{constructor(){super(...arguments);o(this,"type",xe.TYPE)}};o(xe,"TYPE",we+"auth"),o(xe,"matches",V(xe.TYPE));let Ne=xe;const Ce=class Ce extends Ne{constructor(){super(...arguments);o(this,"type",Ce.TYPE)}};o(Ce,"TYPE",Ne.TYPE+".invalid-token"),o(Ce,"matches",V(Ce.TYPE));let ft=Ce;const Pe=class Pe extends te{constructor(t){super(`
|
|
15
|
+
`).slice(0,-1).map(t=>e.parse(We.decodeString(t)))}get timeRange(){if(this._timeRange==null)throw new Error("time range not set on series");return this._timeRange}get byteCapacity(){return new ft(this.buffer.byteLength)}get capacity(){return this.dataType.density.length(this.byteCapacity)}get byteLength(){return this.writePos===ve?this.byteCapacity:this.dataType.density.size(this.writePos)}get length(){return this._cachedLength!=null?this._cachedLength:this.dataType.isVariable?this.calculateCachedLength():this.writePos===ve?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;return this.data.forEach(t=>{t===10&&e++}),this._cachedLength=e,e}convert(e,t=0){if(this.dataType.equals(e))return this;const n=new e.Array(this.length);for(let i=0;i<this.length;i++)n[i]=_o(this.dataType,e,this.data[i],t);return new le({data:n.buffer,dataType:e,timeRange:this._timeRange,sampleOffset:t,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment})}calcRawMax(){if(this.length===0)return-1/0;if(this.dataType.equals(z.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==null&&(this._cachedMax=this.calcRawMax()),at(this._cachedMax,this.sampleOffset))}calcRawMin(){if(this.length===0)return 1/0;if(this.dataType.equals(z.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==null&&(this._cachedMin=this.calcRawMin()),at(this._cachedMin,this.sampleOffset))}get bounds(){return ht(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 at(this.max,-this.min)}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 at(n,this.sampleOffset)}atVariable(e,t){e<0&&(e=this.length+e);let n=0,i=0;for(let c=0;c<this.data.length;c++)if(this.data[c]===10){if(e===0){i=c;break}n=c+1,e--}if(i===0&&(i=this.data.length),n>=i||e>0){if(t)throw new Error(`[series] - no value at index ${e}`);return}const a=this.data.slice(n,i);return this.dataType.equals(z.STRING)?new TextDecoder().decode(a):ys(JSON.parse(new TextDecoder().decode(a)))}binarySearch(e){let t=0,n=this.length-1;const i=ho(e);for(;t<=n;){const a=Math.floor((t+n)/2),c=i(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(z.FLOAT32))throw new Error("Only FLOAT32 arrays can be used in WebGL");const{buffer:t,bufferUsage:n,prevBuffer:i}=this.gl;if(t==null&&(this.gl.buffer=e.createBuffer()),this.writePos!==i)if(e.bindBuffer(e.ARRAY_BUFFER,this.gl.buffer),this.writePos!==ve){i===0&&e.bufferData(e.ARRAY_BUFFER,this.byteCapacity.valueOf(),e.STATIC_DRAW);const a=this.dataType.density.size(i).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=ve}as(e){if(e==="string"){if(!this.dataType.equals(z.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(z.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:this.alignmentBounds,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 ht(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 Ko(this);return this.dataType.equals(z.JSON)?new Vo(e):e}return new Jo(this)}slice(e,t){if(e<=0&&(t==null||t>=this.length))return this;const n=this.data.slice(e,t);return new le({data:n,dataType:this.dataType,timeRange:this._timeRange,sampleOffset:this.sampleOffset,glBufferUsage:this.gl.bufferUsage,alignment:this.alignment+BigInt(e)})}reAlign(e){return new le({data:this.buffer,dataType:this.dataType,timeRange:G.ZERO,sampleOffset:this.sampleOffset,glBufferUsage:"static",alignment:e})}};class Ko{constructor(e){if(d(this,"series"),d(this,"index"),d(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]!==10;)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 zn,En;class Vo{constructor(e){d(this,"wrapped"),d(this,zn,"JSONSeriesIterator"),this.wrapped=e}next(){const e=this.wrapped.next();return e.done===!0?{done:!0,value:void 0}:{done:!1,value:We.decodeString(e.value)}}[(En=Symbol.iterator,zn=Symbol.toStringTag,En)](){return this}}var Sn,Nn;class Jo{constructor(e){d(this,"series"),d(this,"index"),d(this,Sn,"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)}}[(Nn=Symbol.iterator,Sn=Symbol.toStringTag,Nn)](){return this}}const at=(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);class Ns{constructor(e){if(d(this,"series"),e.length!==0){const t=e[0].dataType;for(let n=1;n<e.length;n++)if(!e[n].dataType.equals(t))throw new Error("[multi-series] - series must have the same data type")}this.series=e}as(e){if(!new z(e).equals(this.dataType))throw new Error(`cannot convert series of type ${this.dataType.toString()} to ${e.toString()}`);return this}get dataType(){return this.series.length===0?z.UNKNOWN:this.series[0].dataType}get timeRange(){return this.series.length===0?G.ZERO:new G(this.series[0].timeRange.start,this.series[this.series.length-1].timeRange.end)}push(e){this.series.push(e)}get length(){return this.series.reduce((e,t)=>e+t.length,0)}at(e,t=!1){e<0&&(e=this.length+e);for(const n of this.series){if(e<n.length)return n.at(e,t);e-=n.length}if(t)throw new Error(`[series] - no value at index ${e}`)}get byteLength(){return new ft(this.series.reduce((e,t)=>e+t.byteLength.valueOf(),0))}get data(){const e=new this.dataType.Array(this.length);let t=0;for(const n of this.series)e.set(n.data,t),t+=n.length;return new this.dataType.Array(e)}[Symbol.iterator](){return this.series.length===0?{next(){return{done:!0,value:void 0}}}:new Ho(this.series)}}var In,kn;class Ho{constructor(e){d(this,"series"),d(this,"seriesIndex"),d(this,"internal"),d(this,In,"MultiSeriesIterator"),this.series=e,this.seriesIndex=0,this.internal=e[0][Symbol.iterator]()}next(){const e=this.internal.next();return e.done===!1?e:this.seriesIndex===this.series.length-1?{done:!0,value:void 0}:(this.internal=this.series[++this.seriesIndex][Symbol.iterator](),this.next())}[(kn=Symbol.iterator,In=Symbol.toStringTag,kn)](){return this}}const T=r=>Array.isArray(r)?r:[r],Xo=(r,e)=>{let t=null;return e===0?r:(...n)=>{t!==null&&(clearTimeout(t),t=null),t=setTimeout(()=>r(...n),e)}};var Qo=Object.defineProperty,ec=(r,e,t)=>e in r?Qo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,kr=(r,e,t)=>ec(r,typeof e!="symbol"?e+"":e,t);class tc{constructor(e,t){kr(this,"handlers"),kr(this,"transform"),this.transform=e,this.handlers=t??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){let t=e;if(this.transform!=null){const[n,i]=this.transform(e);if(!i)return;t=n}this.handlers.forEach((n,i)=>i(t))}}let rc=class{constructor(e){kr(this,"handlers"),this.handlers=e??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){this.handlers.forEach((t,n)=>n(e))}};const Ar=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:rc,Observer:tc},Symbol.toStringTag,{value:"Module"})),Lr=s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown()),nc=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser";nc();const sc=["MacOS","Windows","Linux","Docker"];s.z.enum(sc);const An=r=>[...new Set(r)];var ic=Object.defineProperty,ac=(r,e,t)=>e in r?ic(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ot=(r,e,t)=>ac(r,typeof e!="symbol"?e+"":e,t);const oc=(...r)=>r.map(Is).join(""),Is=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),cc=r=>r.endsWith("/")?r.slice(0,-1):r,$r=class Rr{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){ot(this,"protocol"),ot(this,"host"),ot(this,"port"),ot(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Is(i)}replace(e){return new Rr({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new Rr({...this,pathPrefix:oc(this.path,e)})}toString(){return cc(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};ot($r,"UNKNOWN",new $r({host:"unknown",port:0}));let lc=$r;var uc=Object.defineProperty,hc=(r,e,t)=>e in r?uc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mt=(r,e,t)=>hc(r,typeof e!="symbol"?e+"":e,t);const Te=class extends Number{};Mt(Te,"Absolute",255),Mt(Te,"Default",1),Mt(Te,"z",s.z.union([s.z.instanceof(Te),s.z.number().int().min(0).max(255).transform(r=>new Te(r)),s.z.instanceof(Number).transform(r=>new Te(r))]));let ks=Te;const As=s.z.object({name:s.z.string(),key:s.z.string()}),yc=r=>s.z.object({subject:As,resource:r,authority:ks.z}),dc=(...r)=>e=>e.filter(t=>{let n=!1;return t.to!=null&&(n=r.includes(t.to.resource)),t.from!=null&&!n&&(n=r.includes(t.from.resource)),n}),_e=Object.freeze(Object.defineProperty({__proto__:null,Authority:ks,filterTransfersByChannelKey:dc,stateZ:yc,subjectZ:As},Symbol.toStringTag,{value:"Module"})),$s=class ct extends Error{constructor(){super(ct.MESSAGE)}matches(e){return typeof e=="string"?e.includes(ct.MESSAGE):e instanceof ct||e.message.includes(ct.MESSAGE)}};Mt($s,"MESSAGE","canceled");let fc=$s;new fc;s.z.string().regex(/^\d+\.\d+\.\d+$/);const me="sy.",$e=class $e extends te{constructor(){super(...arguments);o(this,"type",$e.TYPE)}};o($e,"TYPE",me+"validation"),o($e,"matches",J($e.TYPE));let C=$e;const Re=class Re extends C{constructor(t,n){super(t+": "+n);o(this,"type",Re.TYPE);o(this,"field");o(this,"message");this.field=t,this.message=n}};o(Re,"TYPE",C.TYPE+".field"),o(Re,"matches",J(Re.TYPE));let Bt=Re;const xe=class xe extends te{constructor(){super(...arguments);o(this,"type",xe.TYPE)}};o(xe,"TYPE",me+"auth"),o(xe,"matches",J(xe.TYPE));let Ne=xe;const Ce=class Ce extends Ne{constructor(){super(...arguments);o(this,"type",Ce.TYPE)}};o(Ce,"TYPE",Ne.TYPE+".invalid-token"),o(Ce,"matches",J(Ce.TYPE));let pt=Ce;const je=class je extends te{constructor(t){super(`
|
|
14
16
|
Unexpected error encountered:
|
|
15
17
|
|
|
16
18
|
${t}
|
|
17
19
|
|
|
18
20
|
Please report this to the Synnax team.
|
|
19
|
-
`);o(this,"type",Pe.TYPE)}};o(Pe,"TYPE",we+"unexpected"),o(Pe,"matches",V(Pe.TYPE));let pe=Pe;const je=class je extends te{constructor(){super(...arguments);o(this,"type",je.TYPE)}};o(je,"TYPE",we+"query"),o(je,"matches",V(je.TYPE));let H=je;const De=class De extends H{constructor(){super(...arguments);o(this,"type",De.TYPE)}};o(De,"TYPE",H.TYPE+".not_found"),o(De,"matches",V(De.TYPE));let Ie=De;const Me=class Me extends H{constructor(){super(...arguments);o(this,"type",Me.TYPE)}};o(Me,"TYPE",H.TYPE+".multiple_results"),o(Me,"matches",V(Me.TYPE));let Ae=Me;const Ze=class Ze extends te{constructor(t,n){super(t);o(this,"type",Ze.TYPE);o(this,"path");this.path=n}};o(Ze,"TYPE",we+"route"),o(Ze,"matches",V(Ze.TYPE));let pt=Ze;const Ue=class Ue extends te{constructor(){super(...arguments);o(this,"type",Ue.TYPE)}};o(Ue,"TYPE",we+"control"),o(Ue,"matches",V(Ue.TYPE));let Fe=Ue;const Be=class Be extends Fe{constructor(){super(...arguments);o(this,"type",Be.TYPE)}};o(Be,"TYPE",Fe.TYPE+".unauthorized"),o(Be,"matches",V(Be.TYPE));let Lt=Be;const Le=class Le extends te{constructor(){super(...arguments);o(this,"type",Le.TYPE)}};o(Le,"TYPE",we+"contiguity"),o(Le,"matches",V(Le.TYPE));let Ar=Le;const Yo=r=>{if(!r.type.startsWith(we))return null;if(r.type.startsWith(x.TYPE)){if(r.type===Bt.TYPE){const e=r.data.split(": ");return e.length<2?new x(r.data):new Bt(e[0],e[1])}return new x(r.data)}return r.type.startsWith(Ne.TYPE)?r.type.startsWith(ft.TYPE)?new ft(r.data):new Ne(r.data):r.type.startsWith(pe.TYPE)?new pe(r.data):r.type.startsWith(H.TYPE)?r.type.startsWith(Ie.TYPE)?new Ie(r.data):r.type.startsWith(Ae.TYPE)?new Ae(r.data):new H(r.data):r.type.startsWith(Fe.TYPE)?r.type.startsWith(Lt.TYPE)?new Lt(r.data):new Fe(r.data):r.type.startsWith(pt.TYPE)?new pt(r.data,r.data):new pe(r.data)},Wo=()=>{throw new Error("Not implemented")};ts({encode:Wo,decode:Yo});const Fo=async(r,e)=>{const[t,n]=await e(r);return n==null?[t,n]:n instanceof Se?[t,new Se({message:`Cannot reach cluster at ${n.url.host}:${n.url.port}`,url:n.url})]:[t,n]},Br=r=>r!=null&&typeof r=="object"&&!Array.isArray(r);var _o=Object.defineProperty,Go=(r,e,t)=>e in r?_o(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ut=(r,e,t)=>Go(r,typeof e!="symbol"?e+"":e,t);class zs{constructor(){ut(this,"contentType","application/json"),ut(this,"decoder"),ut(this,"encoder"),this.decoder=new TextDecoder,this.encoder=new TextEncoder}encode(e){return this.encoder.encode(this.encodeString(e)).buffer}decode(e,t){return this.decodeString(this.decoder.decode(e),t)}decodeString(e,t){const n=JSON.parse(e),i=Zt(n);return t!=null?t.parse(i):i}encodeString(e){const t=_a(e);return JSON.stringify(t,(n,i)=>ArrayBuffer.isView(i)?Array.from(i):Br(i)&&"encode_value"in i?typeof i.value=="bigint"?i.value.toString():i.value:typeof i=="bigint"?i.toString():i)}static registerCustomType(){}}let Es=class{constructor(){ut(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||!Br(e[0]))throw new Error("Payload must be an array of objects");const t=Object.keys(e[0]),n=[t.join(",")];return e.forEach(i=>{const a=t.map(c=>JSON.stringify(i[c]??""));n.push(a.join(","))}),n.join(`
|
|
20
|
-
|
|
21
|
-
`).map(l=>l.trim());if(n.length===0)return t!=null?t.parse({}):{};const a=n.split(",").map(l=>l.trim()),c={};return a.forEach(l=>{c[l]=[]}),i.forEach(l=>{const u=l.split(",").map(f=>f.trim());a.forEach((f,g)=>{const p=this.parseValue(u[g]);p!=null&&c[f].push(p)})}),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(){}},Ss=class{constructor(){ut(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 Ns=new zs,Ko=new Es,Jo=new Ss,Vo=[Ns],Ge=Object.freeze(Object.defineProperty({__proto__:null,CSVEncoderDecoder:Es,CSV_ECD:Ko,ENCODERS:Vo,JSONEncoderDecoder:zs,JSON_ECD:Ns,TEXT_ECD:Jo,TextEncoderDecoder:Ss},Symbol.toStringTag,{value:"Module"}));var Ho=Object.defineProperty,Xo=(r,e,t)=>e in r?Ho(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,kr=(r,e,t)=>Xo(r,typeof e!="symbol"?e+"":e,t);class Qo{constructor(e,t){kr(this,"handlers"),kr(this,"transform"),this.transform=e,this.handlers=t??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){let t=e;if(this.transform!=null){const[n,i]=this.transform(e);if(!i)return;t=n}this.handlers.forEach((n,i)=>i(t))}}let ec=class{constructor(e){kr(this,"handlers"),this.handlers=e??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){this.handlers.forEach((t,n)=>n(e))}};const Rr=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:ec,Observer:Qo},Symbol.toStringTag,{value:"Module"})),Lr=s.z.record(s.z.union([s.z.number(),s.z.string(),s.z.symbol()]),s.z.unknown()),tc=()=>typeof process<"u"&&process.versions!=null&&process.versions.node!=null?"node":typeof window>"u"||window.document===void 0?"webworker":"browser";tc();const rc=["MacOS","Windows","Linux","Docker"];s.z.enum(rc);const In=r=>[...new Set(r)];var nc=Object.defineProperty,sc=(r,e,t)=>e in r?nc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,at=(r,e,t)=>sc(r,typeof e!="symbol"?e+"":e,t);const ic=(...r)=>r.map(Is).join(""),Is=r=>(r.endsWith("/")||(r+="/"),r.startsWith("/")&&(r=r.slice(1)),r),ac=r=>r.endsWith("/")?r.slice(0,-1):r,$r=class xr{constructor({host:e,port:t,protocol:n="",pathPrefix:i=""}){at(this,"protocol"),at(this,"host"),at(this,"port"),at(this,"path"),this.protocol=n,this.host=e,this.port=t,this.path=Is(i)}replace(e){return new xr({host:e.host??this.host,port:e.port??this.port,protocol:e.protocol??this.protocol,pathPrefix:e.pathPrefix??this.path})}child(e){return new xr({...this,pathPrefix:ic(this.path,e)})}toString(){return ac(`${this.protocol}://${this.host}:${this.port}/${this.path}`)}};at($r,"UNKNOWN",new $r({host:"unknown",port:0}));let oc=$r;var cc=Object.defineProperty,lc=(r,e,t)=>e in r?cc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Dt=(r,e,t)=>lc(r,typeof e!="symbol"?e+"":e,t);const Te=class extends Number{};Dt(Te,"Absolute",255),Dt(Te,"Default",1),Dt(Te,"z",s.z.union([s.z.instanceof(Te),s.z.number().int().min(0).max(255).transform(r=>new Te(r)),s.z.instanceof(Number).transform(r=>new Te(r))]));let As=Te;const ks=s.z.object({name:s.z.string(),key:s.z.string()}),uc=r=>s.z.object({subject:ks,resource:r,authority:As.z}),hc=(...r)=>e=>e.filter(t=>{let n=!1;return t.to!=null&&(n=r.includes(t.to.resource)),t.from!=null&&!n&&(n=r.includes(t.from.resource)),n}),_e=Object.freeze(Object.defineProperty({__proto__:null,Authority:As,filterTransfersByChannelKey:hc,stateZ:uc,subjectZ:ks},Symbol.toStringTag,{value:"Module"})),Rs=class ot extends Error{constructor(){super(ot.MESSAGE)}matches(e){return typeof e=="string"?e.includes(ot.MESSAGE):e instanceof ot||e.message.includes(ot.MESSAGE)}};Dt(Rs,"MESSAGE","canceled");let yc=Rs;new yc;s.z.string().regex(/^\d+\.\d+\.\d+$/);const Kt=(r,e,{convertNumericStrings:t=!0}={})=>{const n=!Array.isArray(r);let i=T(r);const a=i[0],c=typeof a;let l;return c==="string"&&t&&!isNaN(parseInt(a))&&"number"in e?(l=e.number,i=i.map(u=>parseInt(u))):l=e[c],{single:n,variant:l,normalized:i,actual:r}},Jt=(r,e,t,n)=>{if(n){if(t.length===0)throw new Ie(`${r} not found matching ${JSON.stringify(e)}`);if(t.length>1)throw new Ae(`Expected one ${r} matching ${JSON.stringify(e)}, but found ${t.length}`)}},Ke=r=>s.z.union([s.z.null().transform(()=>[]),r.array()]),dc=s.z.object({leaseholder:s.z.number().optional(),keys:s.z.number().array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),rangeKey:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),dataTypes:z.z.array().optional(),notDataTypes:z.z.array().optional(),virtual:s.z.boolean().optional(),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional()}),fc=s.z.object({channels:Ke(Tt)}),ye=r=>Kt(r,{number:"keys",string:"names"}),Yt=class Yt{constructor(e){o(this,"client");this.client=e}async search(e,t){return await this.execute({search:e,...t})}async retrieve(e,t){const n=ye(e),{variant:i}=n;let{normalized:a}=n;return i==="keys"&&a.indexOf(0)!==-1&&(a=a.filter(c=>c!==0)),a.length===0?[]:await this.execute({[i]:a,...t})}async page(e,t,n){return await this.execute({offset:e,limit:t,...n})}async execute(e){const[t,n]=await this.client.send(Yt.ENDPOINT,e,dc,fc);if(n!=null)throw n;return t.channels}};o(Yt,"ENDPOINT","/channel/retrieve");let gt=Yt;class qr{constructor(e){o(this,"cache");o(this,"namesToKeys");o(this,"wrapped");this.cache=new Map,this.namesToKeys=new Map,this.wrapped=e}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e,t){const{normalized:n}=Kt(e,{string:"names",number:"keys"}),i=[],a=[];if(n.forEach(l=>{const u=this.get(l);u!=null?i.push(...u):a.push(l)}),a.length===0)return i;const c=await this.wrapped.retrieve(a,t);return this.set(c),i.concat(c)}delete(e){const{variant:t,normalized:n}=ye(e);t==="names"?n.forEach(i=>{const a=this.namesToKeys.get(i);a!=null&&(a.forEach(c=>this.cache.delete(c)),this.namesToKeys.delete(i))}):n.forEach(i=>{const a=this.cache.get(i);a!=null&&(this.cache.delete(i),this.namesToKeys.delete(a.name))})}rename(e,t){e.forEach((n,i)=>{const a=t[i],c=this.cache.get(n);if(c==null)return;this.cache.delete(n);const l=this.namesToKeys.get(c.name);l!=null&&(l.delete(n),l.size===0&&this.namesToKeys.delete(c.name)),c.name=a,this.cache.set(n,c);const u=this.namesToKeys.get(a);u==null?this.namesToKeys.set(a,new Set([n])):u.add(n)})}set(e){e.forEach(t=>{this.cache.set(t.key,t);const n=this.namesToKeys.get(t.name);n==null?this.namesToKeys.set(t.name,new Set([t.key])):n.add(t.key)})}get(e){if(typeof e=="number"){const i=this.cache.get(e);return i==null?void 0:[i]}const t=this.namesToKeys.get(e);if(t==null)return;const n=[];if(t.forEach(i=>{const a=this.cache.get(i);a!=null&&n.push(a)}),n.length!==0)return n}}class $s{constructor(e,t){o(this,"mu",new qo);o(this,"requests",new Map);o(this,"wrapped");o(this,"debouncedRun");this.wrapped=e,this.debouncedRun=Do(()=>{this.run()},t)}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e){const{normalized:t,variant:n}=ye(e);return n==="names"?await this.wrapped.retrieve(t):await new Promise((a,c)=>{this.mu.runExclusive(()=>{this.requests.set(t,{resolve:a,reject:c}),this.debouncedRun()})})}async run(){await this.mu.runExclusive(async()=>{const e=new Set;this.requests.forEach((t,n)=>n.forEach(i=>e.add(i)));try{const t=await this.wrapped.retrieve(Array.from(e));this.requests.forEach((n,i)=>n.resolve(t.filter(a=>i.includes(a.key))))}catch(t){this.requests.forEach(n=>n.reject(t))}finally{this.requests.clear()}})}}const xs=async(r,e)=>{const{normalized:t}=ye(e),n=await r.retrieve(t),i=[];if(t.forEach(a=>{n.find(c=>c.name===a||c.key===a)==null&&i.push(a)}),i.length>0)throw new H(`Could not find channels: ${JSON.stringify(i)}`);return n};class Cs{constructor(e,t){o(this,"key");o(this,"name");this.key=t,this.name=e}get ontologyID(){return new G({type:"group",key:this.key})}}const pc=s.z.string().uuid(),Ps=s.z.object({key:pc,name:s.z.string()}),js=s.z.union([s.z.literal("label"),s.z.literal("builtin"),s.z.literal("cluster"),s.z.literal("channel"),s.z.literal("node"),s.z.literal("group"),s.z.literal("range"),s.z.literal("range-alias"),s.z.literal("user"),s.z.literal("workspace"),s.z.literal("schematic"),s.z.literal("lineplot"),s.z.literal("rack"),s.z.literal("device"),s.z.literal("task")]),ee=s.z.object({type:js,key:s.z.string()}),Ds=s.z.string().transform(r=>{const[e,t]=r.split(":");return{type:e,key:t}}),Ms=s.z.union([Ds,ee]),qe=class qe{constructor(e){o(this,"type");o(this,"key");if(e instanceof qe)this.type=e.type,this.key=e.key;else if(typeof e=="string"){const[t,n]=e.split(":");this.type=t,this.key=n}else this.type=e.type,this.key=e.key}toString(){return`${this.type}:${this.key}`}get payload(){return{type:this.type,key:this.key}}};o(qe,"z",s.z.union([Ms,s.z.instanceof(qe)]).transform(e=>new qe(e)));let G=qe;const gc=new G({type:"builtin",key:"root"}),Zs=s.z.object({type:s.z.number()}),Us=s.z.object({type:js,fields:s.z.record(Zs)}),Bs=s.z.object({id:G.z,name:s.z.string(),schema:Us.optional().nullable(),data:s.z.record(s.z.unknown()).optional().nullable()}).transform(r=>({key:r.id.toString(),...r})),mc=s.z.object({from:G.z,type:s.z.string(),to:G.z}),Cr=r=>{const[e,t,n]=r.split("->");return{from:new G(e),type:t,to:new G(n)}},wc=s.z.object({group:Ps}),bc=s.z.object({parent:ee,key:s.z.string().uuid().optional(),name:s.z.string()}),vc=s.z.object({key:s.z.string(),name:s.z.string()}),Tc=s.z.object({keys:s.z.array(s.z.string())});var Q;let Oc=(Q=class{constructor(e){o(this,"client");this.client=e}async create(e,t,n){const[i,a]=await this.client.send(Q.ENDPOINT,{parent:e,name:t,key:n},bc,wc);if(a!=null)throw a;return i.group}async rename(e,t){const n={key:e,name:t},[,i]=await this.client.send(Q.ENDPOINT_RENAME,n,vc,s.z.object({}));if(i!=null)throw i}async delete(e){const t={keys:e},[,n]=await this.client.send(Q.ENDPOINT_DELETE,t,Tc,s.z.object({}));if(n!=null)throw n}},o(Q,"ENDPOINT","/ontology/create-group"),o(Q,"ENDPOINT_RENAME","/ontology/rename-group"),o(Q,"ENDPOINT_DELETE","/ontology/delete-group"),Q),zc=class{constructor(e){o(this,"creator");this.creator=new Oc(e)}async create(e,t,n){return this.sugar(await this.creator.create(e,t,n))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new Cs(e.name,e.key)}};const yr={ADD_CHILDREN:"/ontology/add-children",REMOVE_CHILDREN:"/ontology/remove-children",MOVE_CHILDREN:"/ontology/move-children"},An=s.z.object({id:ee,children:ee.array()}),Ec=s.z.object({from:ee,to:ee,children:ee.array()});let Sc=class{constructor(e){o(this,"client");this.client=e}async addChildren(e,...t){await w(this.client,yr.ADD_CHILDREN,{id:e,children:t},An,s.z.object({}))}async removeChildren(e,...t){await w(this.client,yr.REMOVE_CHILDREN,{id:e,children:t},An,s.z.object({}))}async moveChildren(e,t,...n){const i={from:e,to:t,children:n};await w(this.client,yr.MOVE_CHILDREN,i,Ec,s.z.object({}))}};const Nc="/ontology/retrieve",Ic=s.z.object({ids:ee.array().optional(),children:s.z.boolean().optional(),parents:s.z.boolean().optional(),includeSchema:s.z.boolean().optional(),excludeFieldData:s.z.boolean().optional(),term:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional()}),Ac=s.z.object({resources:Bs.array()}),dr=r=>T(r).map(e=>new G(e).payload);let Ls=class{constructor(e,t){o(this,"type","ontology");o(this,"groups");o(this,"client");o(this,"writer");o(this,"framer");this.client=e,this.writer=new Sc(e),this.groups=new zc(e),this.framer=t}async search(e,t){return await this.execRetrieve({term:e,...t})}async retrieve(e,t){const n=await this.execRetrieve({ids:dr(e),...t});if(Array.isArray(e))return n;if(n.length===0)throw new H(`No resource found with ID ${e.toString()}`);return n[0]}async page(e,t,n){return await this.execRetrieve({offset:e,limit:t,...n})}async retrieveChildren(e,t){return await this.execRetrieve({ids:dr(e),children:!0,...t})}async retrieveParents(e,t){return await this.execRetrieve({ids:dr(e),parents:!0,...t})}async addChildren(e,...t){return await this.writer.addChildren(e,...t)}async removeChildren(e,...t){return await this.writer.removeChildren(e,...t)}async moveChildren(e,t,...n){return await this.writer.moveChildren(e,t,...n)}async openChangeTracker(){return await Vt.open(this.framer,this)}newSearcherWithOptions(e){return{type:this.type,search:t=>this.search(t,e),retrieve:t=>this.retrieve(t,e),page:(t,n)=>this.page(t,n,e)}}async execRetrieve(e){const{resources:t}=await w(this.client,Nc,e,Ic,Ac);return t}};const kn="sy_ontology_resource_set",Rn="sy_ontology_resource_delete",$n="sy_ontology_relationship_set",xn="sy_ontology_relationship_delete";class Vt{constructor(e,t){o(this,"resourceObs");o(this,"relationshipObs");o(this,"relationships");o(this,"resources");o(this,"streamer");o(this,"client");o(this,"closePromise");this.relationshipObs=new Rr.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Rr.Observer,this.resources=this.resourceObs,this.client=t,this.streamer=e,this.closePromise=this.start()}async close(){this.streamer.close(),await this.closePromise}async start(){for await(const e of this.streamer)await this.update(e)}async update(e){const t=await this.parseResourceSets(e),n=this.parseResourceDeletes(e);t.concat(n).length>0&&this.resourceObs.notify(t.concat(n));const a=this.parseRelationshipSets(e),c=this.parseRelationshipDeletes(e);a.concat(c).length>0&&this.relationshipObs.notify(a.concat(c))}parseRelationshipSets(e){const t=e.get($n);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"set",key:Cr(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(xn);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:Cr(n)}))}async parseResourceSets(e){const t=e.get(kn);if(t.length===0)return[];const n=Array.from(t.as("string")).map(i=>new G(i));try{return(await this.client.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(i){if(i instanceof H)return[];throw i}}parseResourceDeletes(e){const t=e.get(Rn);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:new G(n)}))}static async open(e,t){const n=await e.openStreamer([kn,Rn,$n,xn]);return new Vt(n,t)}}const kc=Object.freeze(Object.defineProperty({__proto__:null,ChangeTracker:Vt,Client:Ls,ID:G,Root:gc,crudeIDZ:Ms,idZ:ee,parseRelationship:Cr,relationshipSchemaZ:mc,resourceSchemaZ:Bs,schemaFieldZ:Zs,schemaZ:Us,stringIDZ:Ds},Symbol.toStringTag,{value:"Module"}));class Yr{constructor({dataType:e,rate:t,name:n,leaseholder:i=0,key:a=0,isIndex:c=!1,index:l=0,internal:u=!1,frameClient:f,alias:g}){o(this,"_frameClient");o(this,"key");o(this,"name");o(this,"rate");o(this,"dataType");o(this,"leaseholder");o(this,"index");o(this,"isIndex");o(this,"internal");o(this,"alias");this.key=a,this.name=n,this.rate=new Gt(t??0),this.dataType=new z(e),this.leaseholder=i,this.index=l,this.isIndex=c,this.internal=u,this.alias=g,this._frameClient=f??null}get framer(){if(this._frameClient==null)throw new x("cannot read from a channel that has not been created");return this._frameClient}get payload(){return Tt.parse({key:this.key,name:this.name,rate:this.rate.valueOf(),dataType:this.dataType.valueOf(),leaseholder:this.leaseholder,index:this.index,isIndex:this.isIndex,internal:this.internal})}get ontologyID(){return new G({type:"channel",key:this.key.toString()})}async read(e){return await this.framer.read(e,this.key)}async write(e,t){return await this.framer.write(e,this.key,t)}}const Rc="/channel/retrieve-group",$c=s.z.object({}),xc=s.z.object({group:Ps});let qs=class{constructor(e,t,n,i){o(this,"type","channel");o(this,"frameClient");o(this,"client");o(this,"retriever");o(this,"writer");this.frameClient=e,this.retriever=t,this.client=n,this.writer=i}async create(e,t={}){const{retrieveIfNameExists:n=!1}=t,i=!Array.isArray(e);let a=T(e),c=[];if(n){const l=await this.retriever.retrieve(a.map(f=>f.name)),u=new Set(l.map(f=>f.name));a=a.filter(f=>!u.has(f.name)),c=this.sugar(l)}return c=c.concat(this.sugar(await this.writer.create(a))),i?c[0]:c}async retrieve(e,t){const n=!Array.isArray(e),i=this.sugar(await this.retriever.retrieve(e,t));return Jt("channel",e,i,n),n?i[0]:i}async search(e,t){return this.sugar(await this.retriever.search(e,t))}async delete(e){const{normalized:t,variant:n}=ye(e);return n==="keys"?await this.writer.delete({keys:t}):await this.writer.delete({names:t})}async rename(e,t){return await this.writer.rename(T(e),T(t))}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}async page(e,t,n){return this.sugar(await this.retriever.page(e,t,n))}createDebouncedBatchRetriever(e=10){return new qr(new $s(new gt(this.client),e))}sugar(e){const{frameClient:t}=this;return e.map(n=>new Yr({...n,frameClient:t}))}async retrieveGroup(){const e=await w(this.client,Rc,{},$c,xc);return new Cs(e.group.name,e.group.key)}};const Cc=s.z.object({channels:Ts.array()}),Pc=s.z.object({channels:Tt.array()}),jc=s.z.object({keys:me.array().optional(),names:s.z.string().array().optional()}),Dc=s.z.object({}),Mc=s.z.object({keys:me.array(),names:s.z.string().array()}),Zc=s.z.object({}),Uc="/channel/create",Bc="/channel/delete",Lc="/channel/rename";let Ys=class{constructor(e,t){o(this,"client");o(this,"cache");this.client=e,this.cache=t}async create(e){const{channels:t}=await w(this.client,Uc,{channels:e},Cc,Pc);return this.cache.set(t),t}async delete(e){await w(this.client,Bc,e,jc,Dc),e.keys!=null&&this.cache.delete(e.keys),e.names!=null&&this.cache.delete(e.names)}async rename(e,t){await w(this.client,Lc,{keys:e,names:t},Mc,Zc),this.cache.rename(e,t)}};const qc=Object.freeze(Object.defineProperty({__proto__:null,CacheRetriever:qr,Channel:Yr,Client:qs,ClusterRetriever:gt,DebouncedBatchRetriever:$s,Writer:Ys,analyzeChannelParams:ye,keyZ:me,newPayload:Ts,payload:Tt,retrieveRequired:xs},Symbol.toStringTag,{value:"Module"})),Yc=s.z.object({key:s.z.string(),username:s.z.string()}),Wc=s.z.object({username:s.z.string(),password:s.z.string()}),Fc=s.z.object({token:s.z.string(),user:Yc}),Cn="/auth/login",_c=3;let Gc=class{constructor(e,t){o(this,"token");o(this,"client");o(this,"credentials");o(this,"authenticating");o(this,"authenticated");o(this,"user");o(this,"retryCount");this.client=e,this.authenticated=!1,this.credentials=t,this.retryCount=0}middleware(){const e=async(t,n)=>{if(!this.authenticated&&!t.target.endsWith(Cn)){this.authenticating==null&&(this.authenticating=new Promise((l,u)=>{this.client.send(Cn,this.credentials,Wc,Fc).then(([f,g])=>{if(g!=null)return l(g);this.token=f==null?void 0:f.token,this.user=f==null?void 0:f.user,this.authenticated=!0,l(null)}).catch(u)}));const c=await this.authenticating;if(c!=null)return[t,c]}t.params.Authorization=`Bearer ${this.token}`;const[i,a]=await n(t);return ft.matches(a)&&this.retryCount<_c?(this.authenticated=!1,this.authenticating=void 0,this.retryCount+=1,e(t,n)):(this.retryCount=0,[i,a])};return e}};const Kc=["disconnected","connecting","connected","failed"],Ws=s.z.enum(Kc),Fs=s.z.object({status:Ws,error:s.z.instanceof(Error).optional(),message:s.z.string().optional(),clusterKey:s.z.string()}),Jc=s.z.object({clusterKey:s.z.string()}),Pn={clusterKey:"",status:"disconnected",error:void 0,message:"Disconnected"},Ye=class Ye{constructor(e,t=E.seconds(30),n){o(this,"_state");o(this,"pollFrequency",E.seconds(30));o(this,"client");o(this,"name");o(this,"interval");o(this,"onChangeHandlers",[]);this._state={...Pn},this.client=e,this.pollFrequency=t,this.name=n,this.check(),this.startChecking()}stopChecking(){this.interval!=null&&clearInterval(this.interval)}async check(){var t;const e=this._state.status;try{const[n,i]=await this.client.send(Ye.ENDPOINT,{},s.z.object({}),Jc);if(i!=null)throw i;this._state.status="connected",this._state.message=`Connected to ${this.name??"cluster"}`,this._state.clusterKey=n.clusterKey}catch(n){this._state.status="failed",this._state.error=n,this._state.message=(t=this.state.error)==null?void 0:t.message}return this.onChangeHandlers.length>0&&e!==this._state.status&&this.onChangeHandlers.forEach(n=>n(this.state)),this.state}get state(){return{...this._state}}onChange(e){this.onChangeHandlers.push(e)}startChecking(){this.interval=setInterval(()=>{this.check()},this.pollFrequency.milliseconds)}};o(Ye,"ENDPOINT","/connectivity/check"),o(Ye,"DEFAULT",Pn),o(Ye,"connectionStateZ",Fs);let mt=Ye;const Vc=Object.freeze(Object.defineProperty({__proto__:null,Checker:mt,state:Fs,status:Ws},Symbol.toStringTag,{value:"Module"})),Hc=s.z.object({keys:me.array().optional(),names:s.z.string().array().optional(),bounds:_.z}),Xc=s.z.object({}),Qc="/frame/delete";class el{constructor(e){o(this,"client");this.client=e}async delete(e){await w(this.client,Qc,e,Hc,Xc)}}const jn=r=>{const e=T(r);return e.length===0?null:typeof e[0]=="number"||!isNaN(parseInt(e[0]))?"key":"name"},Dn=(r,e)=>{const t=T(r);if(t.length===e.length)return;const n=jn(r);throw jn===null?new x("[Frame] - channel keys or names must be provided when constructing a frame."):new x(`[Frame] - ${n}s and arrays must be the same length.
|
|
22
|
-
Got ${t.length} ${n}s and ${e.length} arrays.`)};class Z{constructor(e=[],t=[]){o(this,"columns",[]);o(this,"series",[]);if(e instanceof Z){this.columns=e.columns,this.series=e.series;return}if(e instanceof Map){e.forEach((i,a)=>this.push(a,...T(i)));return}if(typeof e=="object"&&!Array.isArray(e)){if("keys"in e&&"series"in e){const i=e,a=i.series.map(c=>Gs(c));Dn(i.keys,a),i.keys.forEach((c,l)=>this.push(c,a[l]))}else Object.entries(e).forEach(([i,a])=>{const c=parseInt(i);if(isNaN(c))this.push(i,...T(a));else return this.push(c,...T(a))});return}if(Array.isArray(e)||["string","number"].includes(typeof e)){const i=T(t),a=T(e);Dn(a,i),i.forEach((c,l)=>this.push(a[l],c));return}throw new x(`[Frame] - invalid frame construction parameters. data parameter ust be a frame
|
|
21
|
+
`);o(this,"type",je.TYPE)}};o(je,"TYPE",me+"unexpected"),o(je,"matches",J(je.TYPE));let pe=je;const Pe=class Pe extends te{constructor(){super(...arguments);o(this,"type",Pe.TYPE)}};o(Pe,"TYPE",me+"query"),o(Pe,"matches",J(Pe.TYPE));let X=Pe;const De=class De extends X{constructor(){super(...arguments);o(this,"type",De.TYPE)}};o(De,"TYPE",X.TYPE+".not_found"),o(De,"matches",J(De.TYPE));let Ie=De;const Me=class Me extends X{constructor(){super(...arguments);o(this,"type",Me.TYPE)}};o(Me,"TYPE",X.TYPE+".multiple_results"),o(Me,"matches",J(Me.TYPE));let ke=Me;const Ze=class Ze extends te{constructor(t,n){super(t);o(this,"type",Ze.TYPE);o(this,"path");this.path=n}};o(Ze,"TYPE",me+"route"),o(Ze,"matches",J(Ze.TYPE));let gt=Ze;const Ue=class Ue extends te{constructor(){super(...arguments);o(this,"type",Ue.TYPE)}};o(Ue,"TYPE",me+"control"),o(Ue,"matches",J(Ue.TYPE));let Ge=Ue;const Be=class Be extends Ge{constructor(){super(...arguments);o(this,"type",Be.TYPE)}};o(Be,"TYPE",Ge.TYPE+".unauthorized"),o(Be,"matches",J(Be.TYPE));let Lt=Be;const Le=class Le extends te{constructor(){super(...arguments);o(this,"type",Le.TYPE)}};o(Le,"TYPE",me+"contiguity"),o(Le,"matches",J(Le.TYPE));let xr=Le;const pc=r=>{if(!r.type.startsWith(me))return null;if(r.type.startsWith(C.TYPE)){if(r.type===Bt.TYPE){const e=r.data.split(": ");return e.length<2?new C(r.data):new Bt(e[0],e[1])}return new C(r.data)}return r.type.startsWith(Ne.TYPE)?r.type.startsWith(pt.TYPE)?new pt(r.data):new Ne(r.data):r.type.startsWith(pe.TYPE)?new pe(r.data):r.type.startsWith(X.TYPE)?r.type.startsWith(Ie.TYPE)?new Ie(r.data):r.type.startsWith(ke.TYPE)?new ke(r.data):new X(r.data):r.type.startsWith(Ge.TYPE)?r.type.startsWith(Lt.TYPE)?new Lt(r.data):new Ge(r.data):r.type.startsWith(gt.TYPE)?new gt(r.data,r.data):new pe(r.data)},gc=()=>{throw new Error("Not implemented")};ns({encode:gc,decode:pc});const mc=async(r,e)=>{const[t,n]=await e(r);return n==null?[t,n]:n instanceof Se?[t,new Se({message:`Cannot reach cluster at ${n.url.host}:${n.url.port}`,url:n.url})]:[t,n]};class Rs{constructor(e,t){o(this,"key");o(this,"name");this.key=t,this.name=e}get ontologyID(){return new x({type:"group",key:this.key})}}const wc=s.z.string().uuid(),xs=s.z.object({key:wc,name:s.z.string()}),Cs=s.z.union([s.z.literal("label"),s.z.literal("builtin"),s.z.literal("cluster"),s.z.literal("channel"),s.z.literal("node"),s.z.literal("group"),s.z.literal("range"),s.z.literal("range-alias"),s.z.literal("user"),s.z.literal("workspace"),s.z.literal("schematic"),s.z.literal("lineplot"),s.z.literal("rack"),s.z.literal("device"),s.z.literal("task"),s.z.literal("policy")]),bc="builtin",vc="cluster",Tc="node",H=s.z.object({type:Cs,key:s.z.string()}),js=s.z.string().transform(r=>{const[e,t]=r.split(":");return{type:e,key:t}}),Ps=s.z.union([js,H]),qe=class qe{constructor(e){o(this,"type");o(this,"key");if(e instanceof qe)this.type=e.type,this.key=e.key;else if(typeof e=="string"){const[t,n]=e.split(":");this.type=t,this.key=n}else this.type=e.type,this.key=e.key}toString(){return`${this.type}:${this.key}`}get payload(){return{type:this.type,key:this.key}}};o(qe,"z",s.z.union([Ps,s.z.instanceof(qe)]).transform(e=>new qe(e)));let x=qe;const Oc=new x({type:"builtin",key:"root"}),Ds=s.z.object({type:s.z.number()}),Ms=s.z.object({type:Cs,fields:s.z.record(Ds)}),Zs=s.z.object({id:x.z,name:s.z.string(),schema:Ms.optional().nullable(),data:s.z.record(s.z.unknown()).optional().nullable()}).transform(r=>({key:r.id.toString(),...r})),zc=s.z.object({from:x.z,type:s.z.string(),to:x.z}),Cr=r=>{const[e,t,n]=r.split("->");return{from:new x(e),type:t,to:new x(n)}},Ec=s.z.object({group:xs}),Sc=s.z.object({parent:H,key:s.z.string().uuid().optional(),name:s.z.string()}),Nc=s.z.object({key:s.z.string(),name:s.z.string()}),Ic=s.z.object({keys:s.z.array(s.z.string())});var ee;let kc=(ee=class{constructor(e){o(this,"client");this.client=e}async create(e,t,n){const[i,a]=await this.client.send(ee.ENDPOINT,{parent:e,name:t,key:n},Sc,Ec);if(a!=null)throw a;return i.group}async rename(e,t){const n={key:e,name:t},[,i]=await this.client.send(ee.ENDPOINT_RENAME,n,Nc,s.z.object({}));if(i!=null)throw i}async delete(e){const t={keys:e},[,n]=await this.client.send(ee.ENDPOINT_DELETE,t,Ic,s.z.object({}));if(n!=null)throw n}},o(ee,"ENDPOINT","/ontology/create-group"),o(ee,"ENDPOINT_RENAME","/ontology/rename-group"),o(ee,"ENDPOINT_DELETE","/ontology/delete-group"),ee),Ac=class{constructor(e){o(this,"creator");this.creator=new kc(e)}async create(e,t,n){return this.sugar(await this.creator.create(e,t,n))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new Rs(e.name,e.key)}};const yr={ADD_CHILDREN:"/ontology/add-children",REMOVE_CHILDREN:"/ontology/remove-children",MOVE_CHILDREN:"/ontology/move-children"},$n=s.z.object({id:H,children:H.array()}),$c=s.z.object({from:H,to:H,children:H.array()});let Rc=class{constructor(e){o(this,"client");this.client=e}async addChildren(e,...t){await w(this.client,yr.ADD_CHILDREN,{id:e,children:t},$n,s.z.object({}))}async removeChildren(e,...t){await w(this.client,yr.REMOVE_CHILDREN,{id:e,children:t},$n,s.z.object({}))}async moveChildren(e,t,...n){const i={from:e,to:t,children:n};await w(this.client,yr.MOVE_CHILDREN,i,$c,s.z.object({}))}};const xc="/ontology/retrieve",Cc=s.z.object({ids:H.array().optional(),children:s.z.boolean().optional(),parents:s.z.boolean().optional(),includeSchema:s.z.boolean().optional(),excludeFieldData:s.z.boolean().optional(),term:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional()}),jc=s.z.object({resources:Zs.array()}),dr=r=>T(r).map(e=>new x(e).payload);let Us=class{constructor(e,t){o(this,"type","ontology");o(this,"groups");o(this,"client");o(this,"writer");o(this,"framer");this.client=e,this.writer=new Rc(e),this.groups=new Ac(e),this.framer=t}async search(e,t){return await this.execRetrieve({term:e,...t})}async retrieve(e,t){const n=await this.execRetrieve({ids:dr(e),...t});if(Array.isArray(e))return n;if(n.length===0)throw new X(`No resource found with ID ${e.toString()}`);return n[0]}async page(e,t,n){return await this.execRetrieve({offset:e,limit:t,...n})}async retrieveChildren(e,t){return await this.execRetrieve({ids:dr(e),children:!0,...t})}async retrieveParents(e,t){return await this.execRetrieve({ids:dr(e),parents:!0,...t})}async addChildren(e,...t){return await this.writer.addChildren(e,...t)}async removeChildren(e,...t){return await this.writer.removeChildren(e,...t)}async moveChildren(e,t,...n){return await this.writer.moveChildren(e,t,...n)}async openChangeTracker(){return await Kt.open(this.framer,this)}newSearcherWithOptions(e){return{type:this.type,search:t=>this.search(t,e),retrieve:t=>this.retrieve(t,e),page:(t,n)=>this.page(t,n,e)}}async execRetrieve(e){const{resources:t}=await w(this.client,xc,e,Cc,jc);return t}};const Rn="sy_ontology_resource_set",xn="sy_ontology_resource_delete",Cn="sy_ontology_relationship_set",jn="sy_ontology_relationship_delete";class Kt{constructor(e,t){o(this,"resourceObs");o(this,"relationshipObs");o(this,"relationships");o(this,"resources");o(this,"streamer");o(this,"client");o(this,"closePromise");this.relationshipObs=new Ar.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Ar.Observer,this.resources=this.resourceObs,this.client=t,this.streamer=e,this.closePromise=this.start()}async close(){this.streamer.close(),await this.closePromise}async start(){for await(const e of this.streamer)await this.update(e)}async update(e){const t=await this.parseResourceSets(e),n=this.parseResourceDeletes(e);t.concat(n).length>0&&this.resourceObs.notify(t.concat(n));const a=this.parseRelationshipSets(e),c=this.parseRelationshipDeletes(e);a.concat(c).length>0&&this.relationshipObs.notify(a.concat(c))}parseRelationshipSets(e){const t=e.get(Cn);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"set",key:Cr(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(jn);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:Cr(n)}))}async parseResourceSets(e){const t=e.get(Rn);if(t.length===0)return[];const n=Array.from(t.as("string")).map(i=>new x(i));try{return(await this.client.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(i){if(i instanceof X)return[];throw i}}parseResourceDeletes(e){const t=e.get(xn);return t.length===0?[]:Array.from(t.as("string")).map(n=>({variant:"delete",key:new x(n)}))}static async open(e,t){const n=await e.openStreamer([Rn,xn,Cn,jn]);return new Kt(n,t)}}const Pc=Object.freeze(Object.defineProperty({__proto__:null,BuiltinOntologyType:bc,ChangeTracker:Kt,Client:Us,ClusterOntologyType:vc,ID:x,NodeOntologyType:Tc,Root:Oc,crudeIDZ:Ps,idZ:H,parseRelationship:Cr,relationshipSchemaZ:zc,resourceSchemaZ:Zs,schemaFieldZ:Ds,schemaZ:Ms,stringIDZ:js},Symbol.toStringTag,{value:"Module"})),we=s.z.number(),Ot=s.z.object({name:s.z.string(),key:s.z.number(),rate:Gt.z,dataType:z.z,leaseholder:s.z.number(),index:s.z.number(),isIndex:s.z.boolean(),internal:s.z.boolean(),alias:s.z.string().optional()}),Bs=Ot.extend({key:s.z.number().optional(),leaseholder:s.z.number().optional(),index:s.z.number().optional(),rate:Gt.z.optional().default(0),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional().default(!1),virtual:s.z.boolean().optional().default(!1)}),Ls="channel",Dc=r=>new x({type:Ls,key:r.toString()}),Mc=new Error("request for lock canceled");var Zc=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(c){c(a)})}return new(t||(t=Promise))(function(a,c){function l(p){try{f(n.next(p))}catch(g){c(g)}}function u(p){try{f(n.throw(p))}catch(g){c(g)}}function f(p){p.done?a(p.value):i(p.value).then(l,u)}f((n=n.apply(r,e||[])).next())})};class Uc{constructor(e,t=Mc){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((n,i)=>{const a={resolve:n,reject:i,weight:e,priority:t},c=qs(this._queue,l=>t<=l.priority);c===-1&&e<=this._value?this._dispatchItem(a):this._queue.splice(c+1,0,a)})}runExclusive(e){return Zc(this,arguments,void 0,function*(t,n=1,i=0){const[a,c]=yield this.acquire(n,i);try{return yield t(a)}finally{c()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(n=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),Bc(this._weightedWaiters[e-1],{resolve:n,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){const t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){const t=this._weightedWaiters[e-1];t&&(t.forEach(n=>n.resolve()),this._weightedWaiters[e-1]=[])}else{const e=this._queue[0].priority;for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];if(!n)continue;const i=n.findIndex(a=>a.priority<=e);(i===-1?n:n.splice(0,i)).forEach(a=>a.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}}function Bc(r,e){const t=qs(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function qs(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var Lc=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(c){c(a)})}return new(t||(t=Promise))(function(a,c){function l(p){try{f(n.next(p))}catch(g){c(g)}}function u(p){try{f(n.throw(p))}catch(g){c(g)}}function f(p){p.done?a(p.value):i(p.value).then(l,u)}f((n=n.apply(r,e||[])).next())})};class qc{constructor(e){this._semaphore=new Uc(1,e)}acquire(){return Lc(this,arguments,void 0,function*(e=0){const[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const Vt=(r,e,{convertNumericStrings:t=!0}={})=>{const n=!Array.isArray(r);let i=T(r);const a=i[0],c=typeof a;let l;return c==="string"&&t&&!isNaN(parseInt(a))&&"number"in e?(l=e.number,i=i.map(u=>parseInt(u))):l=e[c],{single:n,variant:l,normalized:i,actual:r}},Jt=(r,e,t,n)=>{if(n){if(t.length===0)throw new Ie(`${r} not found matching ${JSON.stringify(e)}`);if(t.length>1)throw new ke(`Expected one ${r} matching ${JSON.stringify(e)}, but found ${t.length}`)}},Ve=r=>s.z.union([s.z.null().transform(()=>[]),r.array()]),Yc=s.z.object({leaseholder:s.z.number().optional(),keys:s.z.number().array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),rangeKey:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),dataTypes:z.z.array().optional(),notDataTypes:z.z.array().optional(),virtual:s.z.boolean().optional(),isIndex:s.z.boolean().optional(),internal:s.z.boolean().optional()}),Wc=s.z.object({channels:Ve(Ot)}),ye=r=>Vt(r,{number:"keys",string:"names"}),Yt=class Yt{constructor(e){o(this,"client");this.client=e}async search(e,t){return await this.execute({search:e,...t})}async retrieve(e,t){const n=ye(e),{variant:i}=n;let{normalized:a}=n;return i==="keys"&&a.indexOf(0)!==-1&&(a=a.filter(c=>c!==0)),a.length===0?[]:await this.execute({[i]:a,...t})}async page(e,t,n){return await this.execute({offset:e,limit:t,...n})}async execute(e){const[t,n]=await this.client.send(Yt.ENDPOINT,e,Yc,Wc);if(n!=null)throw n;return t.channels}};o(Yt,"ENDPOINT","/channel/retrieve");let mt=Yt;class qr{constructor(e){o(this,"cache");o(this,"namesToKeys");o(this,"wrapped");this.cache=new Map,this.namesToKeys=new Map,this.wrapped=e}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e,t){const{normalized:n}=Vt(e,{string:"names",number:"keys"}),i=[],a=[];if(n.forEach(l=>{const u=this.get(l);u!=null?i.push(...u):a.push(l)}),a.length===0)return i;const c=await this.wrapped.retrieve(a,t);return this.set(c),i.concat(c)}delete(e){const{variant:t,normalized:n}=ye(e);t==="names"?n.forEach(i=>{const a=this.namesToKeys.get(i);a!=null&&(a.forEach(c=>this.cache.delete(c)),this.namesToKeys.delete(i))}):n.forEach(i=>{const a=this.cache.get(i);a!=null&&(this.cache.delete(i),this.namesToKeys.delete(a.name))})}rename(e,t){e.forEach((n,i)=>{const a=t[i],c=this.cache.get(n);if(c==null)return;this.cache.delete(n);const l=this.namesToKeys.get(c.name);l!=null&&(l.delete(n),l.size===0&&this.namesToKeys.delete(c.name)),c.name=a,this.cache.set(n,c);const u=this.namesToKeys.get(a);u==null?this.namesToKeys.set(a,new Set([n])):u.add(n)})}set(e){e.forEach(t=>{this.cache.set(t.key,t);const n=this.namesToKeys.get(t.name);n==null?this.namesToKeys.set(t.name,new Set([t.key])):n.add(t.key)})}get(e){if(typeof e=="number"){const i=this.cache.get(e);return i==null?void 0:[i]}const t=this.namesToKeys.get(e);if(t==null)return;const n=[];if(t.forEach(i=>{const a=this.cache.get(i);a!=null&&n.push(a)}),n.length!==0)return n}}class Ys{constructor(e,t){o(this,"mu",new qc);o(this,"requests",new Map);o(this,"wrapped");o(this,"debouncedRun");this.wrapped=e,this.debouncedRun=Xo(()=>{this.run()},t)}async search(e,t){return await this.wrapped.search(e,t)}async page(e,t,n){return await this.wrapped.page(e,t,n)}async retrieve(e){const{normalized:t,variant:n}=ye(e);return n==="names"?await this.wrapped.retrieve(t):await new Promise((a,c)=>{this.mu.runExclusive(()=>{this.requests.set(t,{resolve:a,reject:c}),this.debouncedRun()})})}async run(){await this.mu.runExclusive(async()=>{const e=new Set;this.requests.forEach((t,n)=>n.forEach(i=>e.add(i)));try{const t=await this.wrapped.retrieve(Array.from(e));this.requests.forEach((n,i)=>n.resolve(t.filter(a=>i.includes(a.key))))}catch(t){this.requests.forEach(n=>n.reject(t))}finally{this.requests.clear()}})}}const Ws=async(r,e)=>{const{normalized:t}=ye(e),n=await r.retrieve(t),i=[];if(t.forEach(a=>{n.find(c=>c.name===a||c.key===a)==null&&i.push(a)}),i.length>0)throw new X(`Could not find channels: ${JSON.stringify(i)}`);return n};class Yr{constructor({dataType:e,rate:t,name:n,leaseholder:i=0,key:a=0,isIndex:c=!1,index:l=0,internal:u=!1,frameClient:f,alias:p}){o(this,"_frameClient");o(this,"key");o(this,"name");o(this,"rate");o(this,"dataType");o(this,"leaseholder");o(this,"index");o(this,"isIndex");o(this,"internal");o(this,"alias");this.key=a,this.name=n,this.rate=new Gt(t??0),this.dataType=new z(e),this.leaseholder=i,this.index=l,this.isIndex=c,this.internal=u,this.alias=p,this._frameClient=f??null}get framer(){if(this._frameClient==null)throw new C("cannot read from a channel that has not been created");return this._frameClient}get payload(){return Ot.parse({key:this.key,name:this.name,rate:this.rate.valueOf(),dataType:this.dataType.valueOf(),leaseholder:this.leaseholder,index:this.index,isIndex:this.isIndex,internal:this.internal})}get ontologyID(){return new x({type:"channel",key:this.key.toString()})}async read(e){return await this.framer.read(e,this.key)}async write(e,t){return await this.framer.write(e,this.key,t)}}const Fc="/channel/retrieve-group",_c=s.z.object({}),Gc=s.z.object({group:xs});let Fs=class{constructor(e,t,n,i){o(this,"type","channel");o(this,"frameClient");o(this,"client");o(this,"retriever");o(this,"writer");this.frameClient=e,this.retriever=t,this.client=n,this.writer=i}async create(e,t={}){const{retrieveIfNameExists:n=!1}=t,i=!Array.isArray(e);let a=T(e),c=[];if(n){const l=await this.retriever.retrieve(a.map(f=>f.name)),u=new Set(l.map(f=>f.name));a=a.filter(f=>!u.has(f.name)),c=this.sugar(l)}return c=c.concat(this.sugar(await this.writer.create(a))),i?c[0]:c}async retrieve(e,t){const n=!Array.isArray(e),i=this.sugar(await this.retriever.retrieve(e,t));return Jt("channel",e,i,n),n?i[0]:i}async search(e,t){return this.sugar(await this.retriever.search(e,t))}async delete(e){const{normalized:t,variant:n}=ye(e);return n==="keys"?await this.writer.delete({keys:t}):await this.writer.delete({names:t})}async rename(e,t){return await this.writer.rename(T(e),T(t))}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}async page(e,t,n){return this.sugar(await this.retriever.page(e,t,n))}createDebouncedBatchRetriever(e=10){return new qr(new Ys(new mt(this.client),e))}sugar(e){const{frameClient:t}=this;return e.map(n=>new Yr({...n,frameClient:t}))}async retrieveGroup(){const e=await w(this.client,Fc,{},_c,Gc);return new Rs(e.group.name,e.group.key)}};const Kc=s.z.object({channels:Bs.array()}),Vc=s.z.object({channels:Ot.array()}),Jc=s.z.object({keys:we.array().optional(),names:s.z.string().array().optional()}),Hc=s.z.object({}),Xc=s.z.object({keys:we.array(),names:s.z.string().array()}),Qc=s.z.object({}),el="/channel/create",tl="/channel/delete",rl="/channel/rename";let _s=class{constructor(e,t){o(this,"client");o(this,"cache");this.client=e,this.cache=t}async create(e){const{channels:t}=await w(this.client,el,{channels:e},Kc,Vc);return this.cache.set(t),t}async delete(e){await w(this.client,tl,e,Jc,Hc),e.keys!=null&&this.cache.delete(e.keys),e.names!=null&&this.cache.delete(e.names)}async rename(e,t){await w(this.client,rl,{keys:e,names:t},Xc,Qc),this.cache.rename(e,t)}};const nl=Object.freeze(Object.defineProperty({__proto__:null,CacheRetriever:qr,Channel:Yr,ChannelOntologyType:Ls,Client:Fs,ClusterRetriever:mt,DebouncedBatchRetriever:Ys,Writer:_s,analyzeChannelParams:ye,keyZ:we,newPayload:Bs,ontologyID:Dc,payload:Ot,retrieveRequired:Ws},Symbol.toStringTag,{value:"Module"})),Wr=s.z.string().uuid(),Fr=s.z.object({key:Wr,subjects:H.array(),objects:H.array(),actions:s.z.string().array()}),sl=Fr.extend({key:Wr.optional()}),il="/access/policy/create",al="/access/policy/delete",ol="/access/policy/retrieve",cl=s.z.object({policies:sl.array()}),ll=s.z.object({policies:Fr.array()}),ul=s.z.object({keys:Wr.array()}),hl=s.z.object({}),yl=s.z.object({subject:H}),dl=s.z.object({policies:Fr.array().optional().default([])});let fl=class{constructor(e){o(this,"client");this.client=e}async create(e){const t=!Array.isArray(e),{policies:n}=await w(this.client,il,{policies:T(e)},cl,ll);return t?n[0]:n}async retrieve(e){const{policies:t}=await w(this.client,ol,{subject:e},yl,dl);return t}async delete(e){await w(this.client,al,{keys:T(e)},ul,hl)}};const pl="/user/register";let gl=class{constructor(e){o(this,"client");this.client=e}async register(e,t){const{user:n}=await w(this.client,pl,{username:e,password:t},Gs,Ks);return n}};s.z.string().uuid();const ml=s.z.object({key:s.z.string(),username:s.z.string()}),Gs=s.z.object({username:s.z.string(),password:s.z.string()}),Ks=s.z.object({token:s.z.string(),user:ml}),Pn="/auth/login",wl=3;let bl=class{constructor(e,t){o(this,"token");o(this,"client");o(this,"credentials");o(this,"authenticating");o(this,"authenticated");o(this,"user");o(this,"retryCount");this.client=e,this.authenticated=!1,this.credentials=t,this.retryCount=0}middleware(){const e=async(t,n)=>{if(!this.authenticated&&!t.target.endsWith(Pn)){this.authenticating==null&&(this.authenticating=new Promise((l,u)=>{this.client.send(Pn,this.credentials,Gs,Ks).then(([f,p])=>{if(p!=null)return l(p);this.token=f==null?void 0:f.token,this.user=f==null?void 0:f.user,this.authenticated=!0,l(null)}).catch(u)}));const c=await this.authenticating;if(c!=null)return[t,c]}t.params.Authorization=`Bearer ${this.token}`;const[i,a]=await n(t);return pt.matches(a)&&this.retryCount<wl?(this.authenticated=!1,this.authenticating=void 0,this.retryCount+=1,e(t,n)):(this.retryCount=0,[i,a])};return e}};const vl=["disconnected","connecting","connected","failed"],Vs=s.z.enum(vl),Js=s.z.object({status:Vs,error:s.z.instanceof(Error).optional(),message:s.z.string().optional(),clusterKey:s.z.string()}),Tl=s.z.object({clusterKey:s.z.string()}),Dn={clusterKey:"",status:"disconnected",error:void 0,message:"Disconnected"},Ye=class Ye{constructor(e,t=E.seconds(30),n){o(this,"_state");o(this,"pollFrequency",E.seconds(30));o(this,"client");o(this,"name");o(this,"interval");o(this,"onChangeHandlers",[]);this._state={...Dn},this.client=e,this.pollFrequency=t,this.name=n,this.check(),this.startChecking()}stopChecking(){this.interval!=null&&clearInterval(this.interval)}async check(){var t;const e=this._state.status;try{const[n,i]=await this.client.send(Ye.ENDPOINT,{},s.z.object({}),Tl);if(i!=null)throw i;this._state.status="connected",this._state.message=`Connected to ${this.name??"cluster"}`,this._state.clusterKey=n.clusterKey}catch(n){this._state.status="failed",this._state.error=n,this._state.message=(t=this.state.error)==null?void 0:t.message}return this.onChangeHandlers.length>0&&e!==this._state.status&&this.onChangeHandlers.forEach(n=>n(this.state)),this.state}get state(){return{...this._state}}onChange(e){this.onChangeHandlers.push(e)}startChecking(){this.interval=setInterval(()=>{this.check()},this.pollFrequency.milliseconds)}};o(Ye,"ENDPOINT","/connectivity/check"),o(Ye,"DEFAULT",Dn),o(Ye,"connectionStateZ",Js);let wt=Ye;const Ol=Object.freeze(Object.defineProperty({__proto__:null,Checker:wt,state:Js,status:Vs},Symbol.toStringTag,{value:"Module"})),zl=s.z.object({keys:we.array().optional(),bounds:G.z,names:s.z.string().array().optional()}),El=s.z.object({}),Sl="/frame/delete";class Nl{constructor(e){o(this,"client");this.client=e}async delete(e){await w(this.client,Sl,e,zl,El)}}const Mn=r=>{const e=T(r);return e.length===0?null:typeof e[0]=="number"||!isNaN(parseInt(e[0]))?"key":"name"},Zn=(r,e)=>{const t=T(r);if(t.length===e.length)return;const n=Mn(r);throw Mn===null?new C("[Frame] - channel keys or names must be provided when constructing a frame."):new C(`[Frame] - ${n}s and arrays must be the same length.
|
|
22
|
+
Got ${t.length} ${n}s and ${e.length} arrays.`)};class U{constructor(e=[],t=[]){o(this,"columns",[]);o(this,"series",[]);if(e instanceof U){this.columns=e.columns,this.series=e.series;return}if(e instanceof Map){e.forEach((i,a)=>this.push(a,...T(i)));return}if(typeof e=="object"&&!Array.isArray(e)){if("keys"in e&&"series"in e){const i=e,a=i.series.map(c=>Xs(c));Zn(i.keys,a),i.keys.forEach((c,l)=>this.push(c,a[l]))}else Object.entries(e).forEach(([i,a])=>{const c=parseInt(i);if(isNaN(c))this.push(i,...T(a));else return this.push(c,...T(a))});return}if(Array.isArray(e)||["string","number"].includes(typeof e)){const i=T(t),a=T(e);Zn(a,i),i.forEach((c,l)=>this.push(a[l],c));return}throw new C(`[Frame] - invalid frame construction parameters. data parameter ust be a frame
|
|
23
23
|
payload, a list of lazy arrays, a lazy array, a map, or a record keyed by channel
|
|
24
|
-
name. keys parameter must be a set of channel keys or channel names.`)}get colType(){return this.columns.length===0?null:typeof this.columns[0]=="string"?"name":"key"}get keys(){if(this.colType==="name")throw new pe("colType is not key");return this.columns??[]}get uniqueKeys(){return
|
|
24
|
+
name. keys parameter must be a set of channel keys or channel names.`)}get colType(){return this.columns.length===0?null:typeof this.columns[0]=="string"?"name":"key"}get keys(){if(this.colType==="name")throw new pe("colType is not key");return this.columns??[]}get uniqueKeys(){return An(this.keys)}get names(){if(this.colType==="key")throw new pe("colType is not name");return this.columns??[]}get uniqueNames(){return An(this.names)}get uniqueColumns(){return this.colType==="key"?this.uniqueKeys:this.uniqueNames}toPayload(){return{series:this.series.map(e=>Qs(e)),keys:this.keys}}get isVertical(){return this.uniqueColumns.length===this.columns.length}get isHorizontal(){return this.uniqueColumns.length===1}get isSquare(){return this.isHorizontal&&this.isVertical}get isWeaklyAligned(){if(this.columns.length<=1)return!0;const e=this.timeRanges;return e.every(t=>t.equals(e[0]))}timeRange(e){if(e==null){if(this.columns.length===0)return G.ZERO;const n=O.min(...this.series.map(a=>a.timeRange.start)),i=O.max(...this.series.map(a=>a.timeRange.end));return new G(n,i)}const t=this.get(e);return t==null?G.ZERO:t.timeRange}latest(){return this.at(-1)}get timeRanges(){return this.uniqueColumns.map(e=>this.timeRange(e))}get(e){return Array.isArray(e)?this.filter(t=>e.includes(t)):new Ns(this.series.filter((t,n)=>this.columns[n]===e))}push(e,...t){if(e instanceof U){if(this.colType!==null&&e.colType!==this.colType)throw new C("keyVariant must match");this.series.push(...e.series),this.columns.push(...e.columns)}else{if(this.series.push(...t),typeof e=="string"&&this.colType==="key")throw new C("keyVariant must match");if(typeof e!="string"&&this.colType==="name")throw new C("keyVariant must match");this.columns.push(...Array.from({length:t.length},()=>e))}}concat(e){return new U([...this.columns,...e.columns],[...this.series,...e.series])}has(e){return typeof e=="string"&&this.colType==="key"||typeof e=="number"&&this.colType==="name"?!1:this.columns.includes(e)}map(e){const t=new U;return this.forEach((n,i,a)=>t.push(...e(n,i,a))),t}forEach(e){this.columns.forEach((t,n)=>{const i=this.series[n];e(t,i,n)})}at(e,t=!1){const n={};return this.uniqueColumns.forEach(i=>{n[i]=this.get(i).at(e,t)}),n}filter(e){const t=new U;return this.columns.forEach((n,i)=>{const a=this.series[i];e(n,a,i)&&t.push(n,a)}),t}get byteLength(){return new ft(this.series.reduce((e,t)=>e.add(t.byteLength),ft.ZERO))}get length(){return this.series.reduce((e,t)=>e+t.length,0)}}const Hs=s.z.object({timeRange:G.z.optional(),alignment:s.z.bigint().or(s.z.string().transform(r=>BigInt(r))).optional(),dataType:z.z,data:s.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer)}),Ht=s.z.object({keys:s.z.union([s.z.null().transform(()=>[]),s.z.number().array().optional().default([])]),series:s.z.union([s.z.null().transform(()=>[]),Hs.array().optional().default([])])}),Xs=r=>{const{dataType:e,data:t,timeRange:n,alignment:i}=r;return new Oe({data:t,dataType:e,timeRange:n,glBufferUsage:"static",alignment:i})},Qs=r=>({timeRange:r._timeRange,dataType:r.dataType,data:new Uint8Array(r.data.buffer),alignment:r.alignment});class Xt{constructor(e){o(this,"adapter");o(this,"retriever");o(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new Xt(e);return await n.update(t),n}async update(e){const{variant:t,normalized:n}=ye(e);if(t==="keys"){this.adapter=null,this.keys=n;return}const i=await this.retriever.retrieve(n),a=new Map;this.adapter=a,n.forEach(c=>{const l=i.find(u=>u.name===c);if(l==null)throw new Error(`Channel ${c} not found`);a.set(l.key,l.name)}),this.keys=Array.from(this.adapter.keys())}adapt(e){if(this.adapter==null)return e;const t=this.adapter;return e.map((n,i)=>{if(typeof n=="number"){const a=t.get(n);if(a==null)throw new Error(`Channel ${n} not found`);return[a,i]}return[n,i]})}}class _r{constructor(e){o(this,"adapter");o(this,"retriever");o(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new _r(e);return await n.update(t),n}async adaptObjectKeys(e){const t={};for(const[n,i]of Object.entries(e))t[await this.adaptToKey(n)]=i;return t}async update(e){const t=await Ws(this.retriever,e);this.adapter=new Map(t.map(n=>[n.name,n.key])),this.keys=t.map(n=>n.key)}async fetchChannel(e){const t=await this.retriever.retrieve(e);if(t.length===0)throw new Error(`Channel ${e} not found`);return t[0]}async adaptToKey(e){return typeof e=="number"?e:(await this.fetchChannel(e)).key}async adapt(e,t){if(typeof e=="string"||typeof e=="number"){if(t==null)throw new C(`
|
|
25
25
|
Received a single channel name or key but no series.
|
|
26
|
-
`);if(Array.isArray(t)){if(t.some(u=>u instanceof Oe||Array.isArray(u)))throw new
|
|
26
|
+
`);if(Array.isArray(t)){if(t.some(u=>u instanceof Oe||Array.isArray(u)))throw new C(`
|
|
27
27
|
Received a single channel name or key but multiple series.
|
|
28
|
-
`);t=t}const c=await this.fetchChannel(e),l=new Oe({data:t,dataType:c.dataType});return new
|
|
28
|
+
`);t=t}const c=await this.fetchChannel(e),l=new Oe({data:t,dataType:c.dataType});return new U(c.key,l)}if(Array.isArray(e)){if(t==null)throw new C(`
|
|
29
29
|
Received an array of channel names or keys but no series.
|
|
30
|
-
`);if(!Array.isArray(t))throw new
|
|
30
|
+
`);if(!Array.isArray(t))throw new C(`
|
|
31
31
|
Received an array of channel names or keys but no array of series.
|
|
32
|
-
`);const c=[],l=[];for(let u=0;u<e.length;u++){const f=await this.fetchChannel(e[u]);if(u>=t.length)throw new
|
|
32
|
+
`);const c=[],l=[];for(let u=0;u<e.length;u++){const f=await this.fetchChannel(e[u]);if(u>=t.length)throw new C(`
|
|
33
33
|
Received an array of channel names or keys but not enough series.
|
|
34
|
-
`);const
|
|
34
|
+
`);const p=new Oe({data:t[u],dataType:f.dataType});c.push(f.key),l.push(p)}return new U(c,l)}if(e instanceof U||e instanceof Map){const c=new U(e);if(this.adapter==null)return c;let l=[];return l=c.columns.map(u=>{var p;const f=typeof u=="string"?(p=this.adapter)==null?void 0:p.get(u):u;if(f==null)throw new C(`
|
|
35
35
|
Channel ${u} was not provided in the list of channels when opening the writer
|
|
36
|
-
`);return f}),new
|
|
37
|
-
Please report this error to the Synnax team. ${JSON.stringify(e)}`),t!=null){if(ge.matches(t))return;throw t}}}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const Pr=new E(-1);var _r=(r=>(r[r.Open=0]="Open",r[r.Next=1]="Next",r[r.Prev=2]="Prev",r[r.SeekFirst=3]="SeekFirst",r[r.SeekLast=4]="SeekLast",r[r.SeekLE=5]="SeekLE",r[r.SeekGE=6]="SeekGE",r[r.Valid=7]="Valid",r[r.Error=8]="Error",r))(_r||{}),Js=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(Js||{});const tl=s.z.object({command:s.z.nativeEnum(_r),span:E.z.optional(),bounds:_.z.optional(),stamp:O.z.optional(),keys:s.z.number().array().optional(),chunkSize:s.z.number().optional()}),rl=s.z.object({variant:s.z.nativeEnum(Js),ack:s.z.boolean(),command:s.z.nativeEnum(_r),error:vt.optional().nullable(),frame:Ht.optional()}),yt=class yt{constructor(e,t){o(this,"stream");o(this,"adapter");o(this,"value");this.stream=new Fr("Iterator",e),this.value=new Z,this.adapter=t}static async _open(e,t,n,i,a={}){const c=await Xt.open(n,t),l=await i.stream(yt.ENDPOINT,tl,rl),u=new yt(l,c);return await u.execute({command:0,keys:c.keys,bounds:new _(e),chunkSize:a.chunkSize??1e5}),u}async next(e=Pr){return await this.execute({command:1,span:new E(e)})}async prev(e=Pr){return await this.execute({command:2,span:new E(e)})}async seekFirst(){return await this.execute({command:3})}async seekLast(){return await this.execute({command:4})}async seekLE(e){return await this.execute({command:5,stamp:new O(e)})}async seekGE(e){return await this.execute({command:6,stamp:new O(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new nl(this)}async execute(e){for(this.stream.send(e),this.value=new Z;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new Z(t.frame)))}}};o(yt,"ENDPOINT","/frame/iterate");let qt=yt;class nl{constructor(e){o(this,"iter");o(this,"open",!1);this.iter=e}async next(){try{let e=!0;return this.open||(await this.iter.seekFirst()||(e=!1),this.open=!0),await this.iter.next()||(e=!1),e||await this.iter.close(),{done:!e,value:this.iter.value}}catch(e){throw await this.iter.close(),e}}}const sl=s.z.object({start:O.z.optional(),keys:s.z.number().array()}),il=s.z.object({frame:Ht,error:vt.optional().nullable()}),al="/frame/stream";class Qt{constructor(e,t){o(this,"stream");o(this,"adapter");this.stream=new Fr("Streamer",e),this.adapter=t}get keys(){return this.adapter.keys}static async _open(e,t,{channels:n,from:i}){const a=await Xt.open(e,n),c=await t.stream(al,sl,il),l=new Qt(c,a);return c.send({start:new O(i),keys:a.keys}),l}async next(){try{return{done:!1,value:await this.read()}}catch(e){if(ge.matches(e))return{done:!0,value:void 0};throw e}}async read(){return this.adapter.adapt(new Z((await this.stream.receive()).frame))}async update(e){await this.adapter.update(e),this.stream.send({keys:this.adapter.keys})}close(){this.stream.closeSend()}[Symbol.asyncIterator](){return this}}class Ot extends Rr.Observer{constructor(t,n){super(n);o(this,"streamer");o(this,"closePromise");this.streamer=t,this.closePromise=this.stream()}async close(){this.streamer.close(),await this.closePromise}async stream(){for await(const t of this.streamer)this.notify(t)}}var Gr=(r=>(r[r.Open=0]="Open",r[r.Write=1]="Write",r[r.Commit=2]="Commit",r[r.Error=3]="Error",r[r.SetAuthority=4]="SetAuthority",r))(Gr||{}),wt=(r=>(r[r.PersistStream=1]="PersistStream",r[r.PersistOnly=2]="PersistOnly",r[r.StreamOnly=3]="StreamOnly",r))(wt||{});const ol=new E(-1),cl=s.z.object({start:O.z.optional(),controlSubject:_e.subjectZ.optional(),keys:s.z.number().array().optional(),authorities:_e.Authority.z.array().optional(),mode:s.z.nativeEnum(wt).optional(),errOnUnauthorized:s.z.boolean().optional(),enableAutoCommit:s.z.boolean().optional(),autoIndexPersistInterval:E.z.optional()}),ll=s.z.object({command:s.z.nativeEnum(Gr),config:cl.optional(),frame:Ht.optional()}),ul=s.z.object({ack:s.z.boolean(),command:s.z.nativeEnum(Gr),error:vt.optional().nullable()});var fe;let Vs=(fe=class{constructor(e,t){o(this,"stream");o(this,"adapter");this.stream=new Fr("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,start:i=O.now(),authorities:a=_e.Authority.Absolute,controlSubject:c,mode:l=1,errOnUnauthorized:u=!1,enableAutoCommit:f=!1,autoIndexPersistInterval:g=E.SECOND}){const p=await Wr.open(e,n),P=await t.stream(fe.ENDPOINT,ll,ul),C=new fe(P,p);return await C.execute({command:0,config:{start:new O(i),keys:p.keys,controlSubject:c,authorities:T(a),mode:l,errOnUnauthorized:u,enableAutoCommit:f,autoIndexPersistInterval:g}}),C}async write(e,t){const n=await this.adapter.adapt(e,t);return this.stream.send({command:1,frame:n.toPayload()}),!0}async setAuthority(e){return(await this.execute({command:4,config:{keys:Object.keys(e).map(n=>Number(n)),authorities:Object.values(e)}})).ack}async commit(){return this.errorAccumulated?!1:(await this.execute({command:2})).ack}async error(){this.stream.send({command:3});const e=await this.execute({command:3});return e.error!=null?Zr(e.error):null}async close(){await this.stream.closeAndAck()}async execute(e){for(this.stream.send(e);;){const t=await this.stream.receive();if(t.command===e.command)return t;console.warn("writer received unexpected response",t)}}get errorAccumulated(){return this.stream.received()}},o(fe,"ENDPOINT","/frame/write"),fe),Hs=class{constructor(e,t,n){o(this,"streamClient");o(this,"retriever");o(this,"deleter");this.streamClient=e,this.retriever=n,this.deleter=new el(t)}async openIterator(e,t,n){return await qt._open(e,t,this.retriever,this.streamClient,n)}async openWriter(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await Vs._open(this.retriever,this.streamClient,e)}async openStreamer(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await Qt._open(this.retriever,this.streamClient,e)}async write(e,t,n){if(n==null){const a=t,c=await this.openWriter({start:e,channels:Object.keys(a),mode:wt.PersistOnly});try{await c.write(a),await c.commit()}finally{await c.close()}return}const i=await this.openWriter({start:e,channels:t,mode:wt.PersistOnly,errOnUnauthorized:!0,enableAutoCommit:!0,autoIndexPersistInterval:E.MAX});try{await i.write(t,n)}finally{await i.close()}}async read(e,t){const{single:n}=ye(t),i=await this.readFrame(e,t);return n?i.get(t):i}async readFrame(e,t){const n=await this.openIterator(e,t),i=new Z;try{for await(const a of n)i.push(a)}finally{await n.close()}return i}async delete(e,t){const{normalized:n,variant:i}=ye(e);return i==="keys"?await this.deleter.delete({keys:n,bounds:t}):await this.deleter.delete({names:n,bounds:t})}};const hl=Object.freeze(Object.defineProperty({__proto__:null,ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT:ol,AUTO_SPAN:Pr,Client:Hs,Frame:Z,Iterator:qt,ObservableStreamer:Ot,Streamer:Qt,Writer:Vs,WriterMode:wt,frameZ:Ht,series:_s,seriesFromPayload:Gs,seriesToPayload:Ks},Symbol.toStringTag,{value:"Module"})),yl=_e.Authority,dl=_e.stateZ(s.z.number()),fl=r=>{var e,t;return r.to==null?`${(e=r.from)==null?void 0:e.resource} - ${(t=r.from)==null?void 0:t.subject.name} -> released`:r.from==null?`${r.to.resource} - released -> ${r.to.subject.name} (${r.to.authority.toString()})`:`${r.to.resource} - ${r.from.subject.name} -> ${r.to.subject.name} (${r.to.authority.toString()})`};class Xs extends Ot{constructor(t){super(t,n=>{const i=this.ecd.decode(n.series[0].buffer);return this.merge(i),[i.transfers,!0]});o(this,"states");o(this,"ecd");this.states=new Map,this.ecd=new Ge.JSONEncoderDecoder}subjects(){const t=new Map;return this.states.forEach(n=>t.set(n.subject.key,n.subject)),Array.from(t.values())}merge(t){t.transfers.forEach(n=>{n.from==null&&n.to==null&&console.warn("Invalid transfer: ",n),n.to==null?this.states.delete(n.from.resource):this.states.set(n.to.resource,n.to)})}}const pl="sy_node_1_control";let Qs=class{constructor(e){o(this,"framer");this.framer=e}async openStateTracker(){const e=await this.framer.openStreamer(pl);return new Xs(e)}};const gl=Object.freeze(Object.defineProperty({__proto__:null,Authority:yl,Client:Qs,StateTracker:Xs,stateZ:dl,transferString:fl},Symbol.toStringTag,{value:"Module"}));let ei=class{constructor(e,t,n){o(this,"tasks");o(this,"racks");o(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const ml=Object.freeze(Object.defineProperty({__proto__:null,Client:ei},Symbol.toStringTag,{value:"Module"})),Je=s.z.number(),er=s.z.object({key:Je,name:s.z.string()}),ti=er.partial({key:!0}),fr="/hardware/rack/retrieve",wl="/hardware/rack/create",bl="/hardware/rack/delete",pr=s.z.object({keys:Je.array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),gr=s.z.object({racks:Ke(er)}),vl=s.z.object({racks:ti.array()}),Tl=s.z.object({racks:er.array()}),Ol=s.z.object({keys:Je.array()}),zl=s.z.object({});let ri=class{constructor(e,t,n){o(this,"type","rack");o(this,"client");o(this,"frameClient");o(this,"tasks");this.client=e,this.frameClient=t,this.tasks=n}async delete(e){await w(this.client,bl,{keys:T(e)},Ol,zl)}async create(e){const t=!Array.isArray(e),n=await w(this.client,wl,{racks:T(e)},vl,Tl),i=this.sugar(n.racks);return t?i[0]:i}async search(e){const t=await w(this.client,fr,{search:e},pr,gr);return this.sugar(t.racks)}async page(e,t){const n=await w(this.client,fr,{offset:e,limit:t},pr,gr);return this.sugar(n.racks)}async retrieve(e){const{variant:t,normalized:n,single:i}=Kt(e,{string:"names",number:"keys"}),a=await w(this.client,fr,{[t]:n},pr,gr),c=this.sugar(a.racks);return Jt("Rack",e,c,i),i?c[0]:c}sugar(e){return e.map(({key:t,name:n})=>new ni(t,n,this.tasks))}};class ni{constructor(e,t,n){o(this,"key");o(this,"name");o(this,"tasks");this.key=e,this.name=t,this.tasks=n}async listTasks(){return await this.tasks.retrieve(this.key)}async retrieveTaskByName(e){return await this.tasks.retrieveByName(e,this.key)}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),await this.tasks.create(e)}async deleteTask(e){await this.tasks.delete([e])}}const Ve=async(r,e,t,n)=>{const i=await r.openStreamer([e,t]),a=c=>{const l=[];return t!=null&&l.push(...c.get(t).series.flatMap(u=>n("delete",u))),e!=null&&l.push(...c.get(e).series.flatMap(u=>n("set",u))),[l,l.length>0]};return new Ot(i,a)},El=Object.freeze(Object.defineProperty({__proto__:null,openObservable:Ve},Symbol.toStringTag,{value:"Module"})),Sl="sy_device_set",Nl="sy_device_delete",mr="/hardware/device/retrieve",Il="/hardware/device/create",Al="/hardware/device/delete",tr=s.z.string(),zt=s.z.object({key:tr,rack:Je,name:s.z.string(),make:s.z.string(),model:s.z.string(),location:s.z.string(),configured:s.z.boolean().optional(),properties:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:Ge.JSON_ECD.decodeString(r)))}),si=zt.extend({properties:s.z.unknown().transform(r=>Ge.JSON_ECD.encodeString(r))}),kl=s.z.object({devices:si.array()}),Rl=s.z.object({devices:zt.array()}),$l=s.z.object({keys:tr.array()}),xl=s.z.object({}),wr=s.z.object({search:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),keys:tr.array().optional(),names:s.z.string().array().optional(),makes:s.z.string().array().optional()}),br=s.z.object({devices:Ke(zt)});let ii=class{constructor(e,t){o(this,"type","device");o(this,"client");o(this,"frameClient");this.client=e,this.frameClient=t}async retrieve(e,t){const n=!Array.isArray(e),i=await w(this.client,mr,{keys:T(e),...t},wr,br);return Jt("Device",e,i.devices,n),n?i.devices[0]:i.devices}async search(e,t){return(await w(this.client,mr,{search:e,...t},wr,br)).devices}async page(e,t,n){return(await w(this.client,mr,{offset:e,limit:t,...n},wr,br)).devices}async create(e){const t=!Array.isArray(e),n=await w(this.client,Il,{devices:T(e)},kl,Rl);return t?n.devices[0]:n.devices}async delete(e){await w(this.client,Al,{keys:T(e)},$l,xl)}async openDeviceTracker(){return await Ve(this.frameClient,Sl,Nl,Cl)}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}};const Cl=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(zt).map(t=>({variant:r,key:t.key,value:t})),Pl=Object.freeze(Object.defineProperty({__proto__:null,Client:ii,deviceKeyZ:tr,deviceZ:zt,newDeviceZ:si},Symbol.toStringTag,{value:"Module"})),jl=Object.freeze(Object.defineProperty({__proto__:null,Client:ri,Rack:ni,newRackZ:ti,rackKeyZ:Je,rackZ:er},Symbol.toStringTag,{value:"Module"})),ht="sy_task_state",Mn="sy_task_cmd",He=s.z.union([s.z.string(),s.z.bigint().transform(r=>r.toString()),s.z.number().transform(r=>r.toString())]),bt=s.z.object({task:He,variant:s.z.string(),key:s.z.string().optional(),details:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:JSON.parse(r))).or(s.z.array(s.z.unknown())).or(s.z.null())}),rr=s.z.object({key:He,name:s.z.string(),type:s.z.string(),internal:s.z.boolean().optional(),config:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:Ge.JSON_ECD.decodeString(r))),state:bt.optional().nullable()}),ai=rr.omit({key:!0}).extend({key:He.transform(r=>r.toString()).optional(),config:s.z.unknown().transform(r=>Ge.JSON_ECD.encodeString(r))}),Dl=s.z.object({task:He,type:s.z.string(),key:s.z.string(),args:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:JSON.parse(r)))});class oi{constructor(e,t,n,i,a,c=!1,l){o(this,"key");o(this,"name");o(this,"internal");o(this,"type");o(this,"config");o(this,"state");o(this,"frameClient");this.key=e,this.name=t,this.type=n,this.config=i,this.internal=c,l!==null&&(this.state=l),this.frameClient=a}get payload(){return{key:this.key,name:this.name,type:this.type,config:this.config,state:this.state,internal:this.internal}}async executeCommand(e,t){const n=await this.frameClient.openWriter(Mn),i=ko.id();return await n.write(Mn,[{task:this.key,type:e,key:i,args:t}]),await n.close(),i}async executeCommandSync(e,t,n){const i=await this.frameClient.openStreamer(ht),a=await this.executeCommand(e,t);let c;const l=new Promise(u=>setTimeout(()=>u(!1),new E(n).milliseconds));for(;;){const u=await Promise.any([i.read(),l]);if(u===!1)throw new Error("Command timed out");const f=bt.safeParse(u.at(-1).sy_task_state);if(f.success){if(c=f.data,c.key===a)break}else console.error(f.error)}return i.close(),c}async openStateObserver(){return new Ot(await this.frameClient.openStreamer(ht),e=>{const t=e.get(ht);if(t.length===0)return[null,!1];const n=bt.safeParse(t.at(-1));if(!n.success)return[null,!1];const i=n.data;return i.task!==this.key?[null,!1]:[i,!0]})}}const Ml=s.z.object({rack:Je.optional(),keys:s.z.string().array().optional(),names:s.z.string().array().optional(),offset:s.z.number().optional(),limit:s.z.number().optional(),includeState:s.z.boolean().optional()}),Zl=s.z.object({tasks:Ke(rr)}),Ul="/hardware/task/retrieve",Bl="/hardware/task/create",Ll="/hardware/task/delete",ql=s.z.object({tasks:ai.array()}),Yl=s.z.object({tasks:rr.array()}),Wl=s.z.object({keys:He.array()}),Fl=s.z.object({});let ci=class{constructor(e,t){o(this,"type","task");o(this,"client");o(this,"frameClient");this.client=e,this.frameClient=t}async create(e){const t=!Array.isArray(e),n=await w(this.client,Bl,{tasks:T(e)},ql,Yl),i=this.sugar(n.tasks);return t?i[0]:i}async delete(e){await w(this.client,Ll,{keys:T(e)},Wl,Fl)}async search(e){return await this.execRetrieve({keys:[e]})}async page(e,t){return await this.execRetrieve({offset:e,limit:t})}async list(e={}){return this.sugar(await this.execRetrieve(e))}async retrieve(e,t){const{single:n,normalized:i,variant:a}=Kt(e,{number:"rack",string:"keys"},{convertNumericStrings:!1}),c={...t};a==="rack"?c.rack=e:c.keys=i;const l=await this.execRetrieve(c),u=this.sugar(l);return n&&a!=="rack"?u[0]:u}async retrieveByName(e,t){const n=await this.execRetrieve({names:[e],rack:t});return Jt("Task",e,n,!0),this.sugar(n)[0]}async execRetrieve(e){return(await w(this.client,Ul,e,Ml,Zl)).tasks}sugar(e){return e.map(({key:t,name:n,type:i,config:a,state:c,internal:l})=>new oi(t,n,i,a,this.frameClient,l,c))}async openTracker(){return await Ve(this.frameClient,"sy_task_set","sy_task_delete",(e,t)=>Array.from(t).map(n=>({variant:e,key:n.toString(),value:n.toString()})))}async openStateObserver(){return new Ot(await this.frameClient.openStreamer(ht),e=>{const t=e.get(ht);if(t.length===0)return[null,!1];const n=bt.safeParse(t.at(-1));return n.success?[n.data,!0]:[null,!1]})}};const _l=Object.freeze(Object.defineProperty({__proto__:null,Client:ci,Task:oi,commandZ:Dl,newTaskZ:ai,stateZ:bt,taskKeyZ:He,taskZ:rr},Symbol.toStringTag,{value:"Module"})),Xe=s.z.string().uuid(),Et=s.z.object({key:Xe,name:s.z.string().min(1),color:s.z.string()}),Gl=r=>new G({type:"label",key:r}),Kl=s.z.object({keys:Xe.array().optional(),for:ee.optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Jl=s.z.object({labels:Et.array().optional().default([])});var ze;let li=(ze=class{constructor(e){o(this,"client");this.client=e}async retrieve(e){const t=T(e);return await this.execute({keys:t})}async retrieveFor(e){return await this.execute({for:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){const[t,n]=await this.client.send(ze.ENDPOINT,e,Kl,Jl);if(n!=null)throw n;return t.labels}},o(ze,"ENDPOINT","/label/retrieve"),ze);const ui=Et.extend({key:Xe.optional()}),Vl=s.z.object({labels:ui.array()}),Hl=s.z.object({labels:Et.array()}),Xl=s.z.object({keys:Xe.array()}),hi=s.z.object({id:ee,labels:Xe.array()}),Ql=hi,vr=s.z.object({}),eu="/label/create",tu="/label/delete",ru="/label/set",nu="/label/remove";let yi=class{constructor(e){o(this,"client");this.client=e}async create(e){return(await w(this.client,eu,{labels:T(e)},Vl,Hl)).labels}async delete(e){await w(this.client,tu,{keys:T(e)},Xl,vr)}async set(e,t){await w(this.client,ru,{id:e,labels:t},hi,vr)}async remove(e,t){await w(this.client,nu,{id:e,labels:t},Ql,vr)}};const su="sy_label_set",iu="sy_label_delete";let di=class{constructor(e,t){o(this,"type","label");o(this,"retriever");o(this,"writer");o(this,"frameClient");this.writer=new yi(e),this.retriever=new li(e),this.frameClient=t}async search(e){return await this.retriever.search(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async retrieveFor(e){return await this.retriever.retrieveFor(e)}async label(e,t){await this.writer.set(e,t)}async removeLabels(e,t){await this.writer.remove(e,t)}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async openChangeTracker(){return await Ve(this.frameClient,su,iu,au)}};const au=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(Et).map(t=>({variant:r,key:t.key,value:t})),ou=Object.freeze(Object.defineProperty({__proto__:null,Client:di,Retriever:li,Writer:yi,keyZ:Xe,labelZ:Et,newLabelPayloadZ:ui,ontologyID:Gl},Symbol.toStringTag,{value:"Module"})),K=s.z.string().uuid(),Qe=s.z.object({key:K,name:s.z.string().min(1),timeRange:_.z,color:s.z.string().optional()}),fi=Qe.extend({key:s.z.string().uuid().optional()}),pi=r=>{const e=T(r);if(e.length===0)throw new Error("Range params must not be empty");const t=K.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},cu=s.z.object({}),lu=s.z.object({range:Qe}),uu=s.z.object({range:K}),hu=s.z.object({range:K}),yu=s.z.object({}),du="/range/set-active",fu="/range/retrieve-active",pu="/range/clear-active";class gu{constructor(e){o(this,"client");this.client=e}async setActive(e){await w(this.client,du,{range:e},uu,cu)}async retrieveActive(){const[e,t]=await this.client.send(fu,{},s.z.object({}),lu);if(H.matches(t))return null;if(t!=null)throw t;return e.range}async clearActive(e){await w(this.client,pu,{range:e},hu,yu)}}const mu="sy_range_alias_set",wu="sy_range_alias_delete",bu=s.z.object({range:K,aliases:s.z.string().array()}),vu=s.z.object({aliases:s.z.record(s.z.string(),me)}),Tu=s.z.object({range:K,aliases:s.z.record(me.or(s.z.string()),s.z.string())}),Ou=s.z.unknown(),zu=s.z.object({range:K,channels:me.array()}),Eu=s.z.unknown(),Su=s.z.object({range:K}),Nu=s.z.object({aliases:s.z.record(s.z.string(),s.z.string())}),ae=class ae{constructor(e,t,n){o(this,"frameClient");o(this,"cache",new Map);o(this,"client");o(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",i={};if(n){const c=this.cache.get(e);if(c!=null)return c;t.push(e)}else e.forEach(c=>{const l=this.cache.get(c);l!=null?i[c]=l:t.push(c)});if(t.length===0)return i;const a=await w(this.client,ae.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},bu,vu);return Object.entries(a.aliases).forEach(([c,l])=>this.cache.set(c,l)),n?a.aliases[t[0]]:{...i,...a.aliases}}async set(e){await w(this.client,ae.SET_ENDPOINT,{range:this.rangeKey,aliases:e},Tu,Ou)}async list(){return(await w(this.client,ae.LIST_ENDPOINT,{range:this.rangeKey},Su,Nu)).aliases}async delete(e){await w(this.client,ae.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},zu,Eu)}async openChangeTracker(){return await Ve(this.frameClient,mu,wu,ku(this.rangeKey))}};o(ae,"SET_ENDPOINT","/range/alias/set"),o(ae,"RESOLVE_ENDPOINT","/range/alias/resolve"),o(ae,"LIST_ENDPOINT","/range/alias/list"),o(ae,"DELETE_ENDPOINT","/range/alias/delete");let jr=ae;const Iu=s.z.object({range:K,channel:me,alias:s.z.string()}),Au="---",ku=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(Au)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(Iu).map(n=>({variant:e,key:n.alias,value:n})),Ru=s.z.object({range:K,keys:s.z.string().array()}),$u=s.z.object({pairs:s.z.record(s.z.string(),s.z.string())}),xu=s.z.object({range:K,pairs:s.z.record(s.z.string(),s.z.string())}),Cu=s.z.object({range:K,keys:s.z.string().array()}),de=class de{constructor(e,t){o(this,"rangeKey");o(this,"client");this.rangeKey=e,this.client=t}async get(e){const[t,n]=await this.client.send(de.GET_ENDPOINT,{range:this.rangeKey,keys:T(e)},Ru,$u);if(n!=null)throw n;return Array.isArray(e)?t.pairs:t.pairs[e]}async list(){return this.get([])}async set(e,t=""){await w(this.client,de.SET_ENDPOINT,{range:this.rangeKey,pairs:Br(e)?e:{[e]:t}},xu,s.z.unknown())}async delete(e){await w(this.client,de.DELETE_ENDPOINT,{range:this.rangeKey,keys:T(e)},Cu,s.z.unknown())}};o(de,"GET_ENDPOINT","/range/kv/get"),o(de,"SET_ENDPOINT","/range/kv/set"),o(de,"DELETE_ENDPOINT","/range/kv/delete");let Dr=de;const Tr=r=>new G({type:"range",key:r});class gi{constructor(e,t=_.ZERO,n,i,a,c,l,u,f){o(this,"key");o(this,"name");o(this,"kv");o(this,"timeRange");o(this,"color");o(this,"channels");o(this,"aliaser");o(this,"frameClient");o(this,"labelClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=a,this.color=i,this.kv=c,this.aliaser=l,this.channels=u,this.labelClient=f}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new H(`Channel ${e} does not exist`);await this.aliaser.set({[n[0].key]:t})}async deleteAlias(...e){await this.aliaser.delete(e)}async listAliases(){return await this.aliaser.list()}async openAliasTracker(){return await this.aliaser.openChangeTracker()}async read(e){return await this.frameClient.read(this.timeRange,e)}async labels(){return await this.labelClient.retrieveFor(Tr(this.key))}async addLabel(...e){await this.labelClient.label(Tr(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(Tr(this.key),e)}}const Pu=s.z.object({keys:K.array().optional(),names:s.z.array(s.z.string()).optional(),term:s.z.string().optional(),overlapsWith:_.z.optional()}),ju="/range/retrieve",Du=s.z.object({ranges:Ke(Qe)});let mi=class{constructor(e,t,n,i,a){o(this,"type","range");o(this,"frameClient");o(this,"writer");o(this,"unaryClient");o(this,"channels");o(this,"active");o(this,"labelClient");this.frameClient=e,this.writer=t,this.unaryClient=n,this.channels=i,this.active=new gu(n),this.labelClient=a}async create(e){const t=!Array.isArray(e),n=this.sugar(await this.writer.create(T(e)));return t?n[0]:n}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(T(e))}async search(e){return this.sugar(await this.execRetrieve({term:e}))}async page(){return[]}async retrieve(e){if(typeof e=="object"&&"start"in e)return await this.execRetrieve({overlapsWith:new _(e)});const{single:t,actual:n,variant:i,normalized:a}=pi(e),c=await this.execRetrieve({[i]:a});if(!t)return c;if(c.length===0)throw new Ie(`range matching ${n} not found`);if(c.length>1)throw new Ae(`multiple ranges matching ${n} found`);return c[0]}async execRetrieve(e){const{ranges:t}=await w(this.unaryClient,ju,e,Pu,Du);return this.sugar(t)}async setActive(e){await this.active.setActive(e)}async retrieveActive(){const e=await this.active.retrieveActive();return e==null?null:this.sugar([e])[0]}async clearActive(e){await this.active.clearActive(e)}sugar(e){return e.map(t=>new gi(t.name,t.timeRange,t.key,t.color,this.frameClient,new Dr(t.key,this.unaryClient),new jr(t.key,this.frameClient,this.unaryClient),this.channels,this.labelClient))}async openTracker(){return await Ve(this.frameClient,"sy_range_set","sy_range_delete",(e,t)=>e==="delete"?t.toStrings().map(i=>({variant:e,key:i,value:void 0})):this.sugar(t.parseJSON(Qe)).map(i=>({variant:e,key:i.key,value:i})))}};const Mu=s.z.object({ranges:Qe.array()}),Zu=s.z.object({ranges:fi.array()}),Uu=s.z.object({keys:K.array()}),Bu=s.z.object({}),Lu=s.z.object({key:K,name:s.z.string()}),qu=s.z.object({}),Yu="/range/create",Wu="/range/delete",Fu="/range/rename";let wi=class{constructor(e){o(this,"client");this.client=e}async rename(e,t){await w(this.client,Fu,{key:e,name:t},Lu,qu)}async create(e){return(await w(this.client,Yu,{ranges:e},Zu,Mu)).ranges}async delete(e){await w(this.client,Wu,{keys:e},Uu,Bu)}};const _u=Object.freeze(Object.defineProperty({__proto__:null,Client:mi,Range:gi,Writer:wi,analyzeParams:pi,keyZ:K,newPayloadZ:fi,payloadZ:Qe},Symbol.toStringTag,{value:"Module"})),Gu="/api/v1/";class Ku{constructor(e,t=!1){o(this,"url");o(this,"unary");o(this,"stream");o(this,"secure");this.secure=t,this.url=e.child(Gu);const n=new Ge.JSONEncoderDecoder;this.unary=new Pa(this.url,n,this.secure),this.stream=new Ya(this.url,n,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const Kr=s.z.string().uuid(),Jr=s.z.object({key:s.z.string(),name:s.z.string(),data:Lr.or(s.z.string().transform(r=>JSON.parse(r)))}),Ju=s.z.object({keys:s.z.string().array()}),Vu=s.z.object({linePlots:Jr.array()});let Hu=class{constructor(e){o(this,"ENDPOINT","/workspace/lineplot/retrieve");o(this,"client");this.client=e}async retrieve(e){const t=T(e);return(await w(this.client,this.ENDPOINT,{keys:t},Ju,Vu)).linePlots}};const be=s.z.string().uuid(),bi=r=>JSON.parse(r),Vr=s.z.object({name:s.z.string(),key:be,layout:Lr.or(s.z.string().transform(r=>bi(r)))}),Hr=Vr.omit({layout:!0}).extend({layout:s.z.string().transform(r=>bi(r))}),Xu=Jr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),Qu=s.z.object({workspace:be,linePlots:Xu.array()}),eh=s.z.object({linePlots:Jr.array()}),th=s.z.object({keys:Kr.array()}),rh=s.z.object({}),nh=s.z.object({key:Kr,name:s.z.string()}),sh=s.z.object({}),ih=s.z.object({key:Kr,data:s.z.string()}),ah=s.z.object({}),oh="/workspace/lineplot/create",ch="/workspace/lineplot/delete",lh="/workspace/lineplot/rename",uh="/workspace/lineplot/set-data";let hh=class{constructor(e){o(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await w(this.client,oh,{workspace:e,linePlots:[n]},Qu,eh)).linePlots[0]}async delete(e){const t=T(e);await w(this.client,ch,{keys:t},th,rh)}async rename(e,t){await w(this.client,lh,{key:e,name:t},nh,sh)}async setData(e,t){await w(this.client,uh,{key:e,data:JSON.stringify(t)},ih,ah)}},yh=class{constructor(e){o(this,"writer");o(this,"retriever");this.writer=new hh(e),this.retriever=new Hu(e)}async create(e,t){return await this.writer.create(e,t)}async rename(e,t){await this.writer.rename(e,t)}async setData(e,t){await this.writer.setData(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}};const dh=s.z.object({keys:be.array().optional(),search:s.z.string().optional(),author:s.z.string().uuid().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),fh=s.z.object({workspaces:Ke(Hr)});var Ee;let ph=(Ee=class{constructor(e){o(this,"client");this.client=e}async retrieve(e){const t=T(e);return await this.execute({keys:t})}async retrieveByAuthor(e){return await this.execute({author:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){return(await w(this.client,Ee.ENDPOINT,e,dh,fh)).workspaces}},o(Ee,"ENDPOINT","/workspace/retrieve"),Ee);const nr=s.z.string().uuid(),gh=s.z.object({key:s.z.string(),name:s.z.string(),data:Lr.or(s.z.string().transform(r=>JSON.parse(r))),snapshot:s.z.boolean()}),Xr=s.z.object({key:s.z.string(),name:s.z.string(),snapshot:s.z.boolean(),data:s.z.string().transform(r=>JSON.parse(r))}),mh=s.z.object({keys:s.z.string().array()}),wh=s.z.object({schematics:Xr.array()});class bh{constructor(e){o(this,"ENDPOINT","/workspace/schematic/retrieve");o(this,"client");this.client=e}async retrieve(e){return(await w(this.client,this.ENDPOINT,{keys:T(e)},mh,wh)).schematics}}const vh=gh.partial({key:!0,snapshot:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),Th=s.z.object({workspace:be,schematics:vh.array()}),Oh=s.z.object({schematics:Xr.array()}),zh=s.z.object({keys:nr.array()}),Eh=s.z.object({}),Sh=s.z.object({key:nr,name:s.z.string()}),Zn=s.z.object({}),Nh=s.z.object({key:nr,data:s.z.string()});s.z.object({});const Ih=s.z.object({key:nr,name:s.z.string(),snapshot:s.z.boolean()}),Ah=s.z.object({schematic:Xr}),kh="/workspace/schematic/create",Rh="/workspace/schematic/delete",$h="/workspace/schematic/rename",xh="/workspace/schematic/set-data",Ch="/workspace/schematic/copy";let Ph=class{constructor(e){o(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await w(this.client,kh,{workspace:e,schematics:[n]},Th,Oh)).schematics[0]}async copy(e,t,n){return(await w(this.client,Ch,{key:e,name:t,snapshot:n},Ih,Ah)).schematic}async delete(e){const t=T(e);await w(this.client,Rh,{keys:t},zh,Eh)}async rename(e,t){await w(this.client,$h,{key:e,name:t},Sh,Zn)}async setData(e,t){await w(this.client,xh,{key:e,data:JSON.stringify(t)},Nh,Zn)}},jh=class{constructor(e){o(this,"writer");o(this,"retriever");this.writer=new Ph(e),this.retriever=new bh(e)}async create(e,t){return await this.writer.create(e,t)}async rename(e,t){await this.writer.rename(e,t)}async setData(e,t){await this.writer.setData(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async copy(e,t,n){return await this.writer.copy(e,t,n)}};const Dh=Vr.partial({key:!0}).transform(r=>({...r,layout:JSON.stringify(r.layout)})),Mh=s.z.object({workspaces:Dh.array()}),Zh=s.z.object({workspaces:Hr.array()}),Uh=s.z.object({keys:be.array()}),Bh=s.z.object({}),Lh=s.z.object({key:be,name:s.z.string()}),qh=s.z.object({}),Yh=s.z.object({key:be,layout:s.z.string()}),Wh=s.z.object({}),Fh="/workspace/create",_h="/workspace/delete",Gh="/workspace/rename",Kh="/workspace/set-layout";class Jh{constructor(e){o(this,"client");this.client=e}async create(e){return(await w(this.client,Fh,{workspaces:T(e)},Mh,Zh)).workspaces}async delete(e){await w(this.client,_h,{keys:T(e)},Uh,Bh)}async rename(e,t){await w(this.client,Gh,{key:e,name:t},Lh,qh)}async setLayout(e,t){await w(this.client,Kh,{key:e,layout:JSON.stringify(t)},Yh,Wh)}}class vi{constructor(e){o(this,"type","workspace");o(this,"schematic");o(this,"linePlot");o(this,"retriever");o(this,"writer");this.schematic=new jh(e),this.linePlot=new yh(e),this.retriever=new ph(e),this.writer=new Jh(e)}async search(e){return await this.retriever.search(e)}async retrieveByAuthor(e){return await this.retriever.retrieveByAuthor(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async rename(e,t){await this.writer.rename(e,t)}async setLayout(e,t){await this.writer.setLayout(e,t)}async delete(...e){await this.writer.delete(e)}}const Vh=Object.freeze(Object.defineProperty({__proto__:null,Client:vi,keyZ:be,workspaceRemoteZ:Hr,workspaceZ:Vr},Symbol.toStringTag,{value:"Module"})),Ti=s.z.object({host:s.z.string({required_error:"Host is required"}).min(1,"Host is required"),port:s.z.number({required_error:"Port is required"}).or(s.z.string({required_error:"Port is required"})),username:s.z.string().optional(),password:s.z.string().optional(),connectivityPollFrequency:E.z.default(E.seconds(30)),secure:s.z.boolean().optional().default(!1),name:s.z.string().optional()});class Oi extends Hs{constructor(t){const n=Ti.parse(t),{host:i,port:a,username:c,password:l,connectivityPollFrequency:u,secure:f}=n,g=new Ku(new oc({host:i,port:Number(a)}),f);g.use(Fo);let p;if(c!=null&&l!=null){const Ei=new Gc(g.unary,{username:c,password:l});g.use(Ei.middleware())}const P=new qr(new gt(g.unary)),C=new Ys(g.unary,P);super(g.stream,g.unary,P);o(this,"createdAt");o(this,"props");o(this,"ranges");o(this,"channels");o(this,"auth");o(this,"connectivity");o(this,"ontology");o(this,"workspaces");o(this,"labels");o(this,"hardware");o(this,"control");o(this,"transport");this.createdAt=O.now(),this.props=n,this.auth=p,this.transport=g,this.channels=new qs(this,P,g.unary,C),this.connectivity=new mt(g.unary,u,n.name),this.control=new Qs(this),this.ontology=new Ls(g.unary,this);const X=new wi(this.transport.unary);this.labels=new di(this.transport.unary,this),this.ranges=new mi(this,X,this.transport.unary,P,this.labels),this.workspaces=new vi(this.transport.unary);const j=new ii(this.transport.unary,this),Qr=new ci(this.transport.unary,this),zi=new ri(this.transport.unary,this,Qr);this.hardware=new ei(Qr,zi,j)}get key(){return this.createdAt.valueOf().toString()}close(){this.connectivity.stopChecking()}}o(Oi,"connectivity",mt);const Hh=_e.Authority;exports.AuthError=Ne;exports.Authority=Hh;exports.Channel=Yr;exports.ContiguityError=Ar;exports.DataType=z;exports.Density=F;exports.Frame=Z;exports.MultiSeries=vs;exports.MultipleFoundError=Ae;exports.NotFoundError=Ie;exports.QueryError=H;exports.Rate=Gt;exports.RouteError=pt;exports.Series=Oe;exports.Synnax=Oi;exports.TimeRange=_;exports.TimeSpan=E;exports.TimeStamp=O;exports.UnexpectedError=pe;exports.ValidationError=x;exports.channel=qc;exports.connection=Vc;exports.control=gl;exports.device=Pl;exports.framer=hl;exports.hardware=ml;exports.label=ou;exports.ontology=kc;exports.rack=jl;exports.ranger=_u;exports.signals=El;exports.synnaxPropsZ=Ti;exports.task=_l;exports.workspace=Vh;
|
|
36
|
+
`);return f}),new U(l,c.series)}const n=[],i=[],a=Object.entries(e);for(let c=0;c<a.length;c++){const[l,u]=a[c],f=await this.fetchChannel(l),p=new Oe({data:u,dataType:f.dataType});n.push(f.key),i.push(p)}return new U(n,i)}}class Gr{constructor(e,t){o(this,"name");o(this,"stream");this.stream=t,this.name=e}async receive(){const[e,t]=await this.stream.receive();if(t!=null)throw t;return e}received(){return this.stream.received()}async closeAndAck(){for(this.stream.closeSend();;){const[e,t]=await this.stream.receive();if(e!=null&&console.warn(`${this.name} received unexpected response on closure.
|
|
37
|
+
Please report this error to the Synnax team. ${JSON.stringify(e)}`),t!=null){if(ge.matches(t))return;throw t}}}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const jr=new E(-1);var Kr=(r=>(r[r.Open=0]="Open",r[r.Next=1]="Next",r[r.Prev=2]="Prev",r[r.SeekFirst=3]="SeekFirst",r[r.SeekLast=4]="SeekLast",r[r.SeekLE=5]="SeekLE",r[r.SeekGE=6]="SeekGE",r[r.Valid=7]="Valid",r[r.Error=8]="Error",r))(Kr||{}),ei=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(ei||{});const Il=s.z.object({command:s.z.nativeEnum(Kr),span:E.z.optional(),bounds:G.z.optional(),stamp:O.z.optional(),keys:s.z.number().array().optional(),chunkSize:s.z.number().optional()}),kl=s.z.object({variant:s.z.nativeEnum(ei),ack:s.z.boolean(),command:s.z.nativeEnum(Kr),error:Tt.optional().nullable(),frame:Ht.optional()}),dt=class dt{constructor(e,t){o(this,"stream");o(this,"adapter");o(this,"value");this.stream=new Gr("Iterator",e),this.value=new U,this.adapter=t}static async _open(e,t,n,i,a={}){const c=await Xt.open(n,t),l=await i.stream(dt.ENDPOINT,Il,kl),u=new dt(l,c);return await u.execute({command:0,keys:c.keys,bounds:new G(e),chunkSize:a.chunkSize??1e5}),u}async next(e=jr){return await this.execute({command:1,span:new E(e)})}async prev(e=jr){return await this.execute({command:2,span:new E(e)})}async seekFirst(){return await this.execute({command:3})}async seekLast(){return await this.execute({command:4})}async seekLE(e){return await this.execute({command:5,stamp:new O(e)})}async seekGE(e){return await this.execute({command:6,stamp:new O(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new Al(this)}async execute(e){for(this.stream.send(e),this.value=new U;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new U(t.frame)))}}};o(dt,"ENDPOINT","/frame/iterate");let qt=dt;class Al{constructor(e){o(this,"iter");o(this,"open",!1);this.iter=e}async next(){try{let e=!0;return this.open||(await this.iter.seekFirst()||(e=!1),this.open=!0),await this.iter.next()||(e=!1),e||await this.iter.close(),{done:!e,value:this.iter.value}}catch(e){throw await this.iter.close(),e}}}const $l=s.z.object({start:O.z.optional(),keys:s.z.number().array()}),Rl=s.z.object({frame:Ht,error:Tt.optional().nullable()}),xl="/frame/stream";class Qt{constructor(e,t){o(this,"stream");o(this,"adapter");this.stream=new Gr("Streamer",e),this.adapter=t}get keys(){return this.adapter.keys}static async _open(e,t,{channels:n,from:i}){const a=await Xt.open(e,n),c=await t.stream(xl,$l,Rl),l=new Qt(c,a);return c.send({start:new O(i),keys:a.keys}),l}async next(){try{return{done:!1,value:await this.read()}}catch(e){if(ge.matches(e))return{done:!0,value:void 0};throw e}}async read(){return this.adapter.adapt(new U((await this.stream.receive()).frame))}async update(e){await this.adapter.update(e),this.stream.send({keys:this.adapter.keys})}close(){this.stream.closeSend()}[Symbol.asyncIterator](){return this}}class zt extends Ar.Observer{constructor(t,n){super(n);o(this,"streamer");o(this,"closePromise");this.streamer=t,this.closePromise=this.stream()}async close(){this.streamer.close(),await this.closePromise}async stream(){for await(const t of this.streamer)this.notify(t)}}var Vr=(r=>(r[r.Open=0]="Open",r[r.Write=1]="Write",r[r.Commit=2]="Commit",r[r.Error=3]="Error",r[r.SetAuthority=4]="SetAuthority",r))(Vr||{}),bt=(r=>(r[r.PersistStream=1]="PersistStream",r[r.Persist=2]="Persist",r[r.Stream=3]="Stream",r))(bt||{});const Cl=r=>{switch(r){case"persist":return 2;case"stream":return 3;case"persistStream":return 1;default:return r}},jl=new E(-1),Pl=s.z.object({start:O.z.optional(),controlSubject:_e.subjectZ.optional(),keys:s.z.number().array().optional(),authorities:_e.Authority.z.array().optional(),mode:s.z.nativeEnum(bt).optional(),errOnUnauthorized:s.z.boolean().optional(),enableAutoCommit:s.z.boolean().optional(),autoIndexPersistInterval:E.z.optional()}),Dl=s.z.object({command:s.z.nativeEnum(Vr),config:Pl.optional(),frame:Ht.optional()}),Ml=s.z.object({ack:s.z.boolean(),command:s.z.nativeEnum(Vr),error:Tt.optional().nullable()});var fe;let ti=(fe=class{constructor(e,t){o(this,"stream");o(this,"adapter");this.stream=new Gr("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,start:i=O.now(),authorities:a=_e.Authority.Absolute,controlSubject:c,mode:l=1,errOnUnauthorized:u=!1,enableAutoCommit:f=!1,autoIndexPersistInterval:p=E.SECOND}){const g=await _r.open(e,n),P=await t.stream(fe.ENDPOINT,Dl,Ml),j=new fe(P,g);return await j.execute({command:0,config:{start:new O(i),keys:g.keys,controlSubject:c,authorities:T(a),mode:Cl(l),errOnUnauthorized:u,enableAutoCommit:f,autoIndexPersistInterval:p}}),j}async write(e,t){const n=await this.adapter.adapt(e,t);return this.stream.send({command:1,frame:n.toPayload()}),!0}async setAuthority(e,t){let n={keys:[],authorities:[]};if(typeof e=="number"&&t==null)n={keys:[],authorities:[e]};else{let a;typeof e=="string"||typeof e=="number"?a={[e]:t}:a=e,a=await this.adapter.adaptObjectKeys(a),n={keys:Object.keys(a).map(c=>Number(c)),authorities:Object.values(a)}}return(await this.execute({command:4,config:n})).ack}async commit(){return this.errorAccumulated?!1:(await this.execute({command:2})).ack}async error(){this.stream.send({command:3});const e=await this.execute({command:3});return e.error!=null?Zr(e.error):null}async close(){await this.stream.closeAndAck()}async execute(e){for(this.stream.send(e);;){const t=await this.stream.receive();if(t.command===e.command)return t;console.warn("writer received unexpected response",t)}}get errorAccumulated(){return this.stream.received()}},o(fe,"ENDPOINT","/frame/write"),fe),ri=class{constructor(e,t,n){o(this,"streamClient");o(this,"retriever");o(this,"deleter");this.streamClient=e,this.retriever=n,this.deleter=new Nl(t)}async openIterator(e,t,n){return await qt._open(e,t,this.retriever,this.streamClient,n)}async openWriter(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await ti._open(this.retriever,this.streamClient,e)}async openStreamer(e){return(Array.isArray(e)||typeof e!="object")&&(e={channels:e}),await Qt._open(this.retriever,this.streamClient,e)}async write(e,t,n){if(n==null){const a=t,c=await this.openWriter({start:e,channels:Object.keys(a),mode:bt.Persist});try{await c.write(a),await c.commit()}finally{await c.close()}return}const i=await this.openWriter({start:e,channels:t,mode:bt.Persist,errOnUnauthorized:!0,enableAutoCommit:!0,autoIndexPersistInterval:E.MAX});try{await i.write(t,n)}finally{await i.close()}}async read(e,t){const{single:n}=ye(t),i=await this.readFrame(e,t);return n?i.get(t):i}async readFrame(e,t){const n=await this.openIterator(e,t),i=new U;try{for await(const a of n)i.push(a)}finally{await n.close()}return i}async delete(e,t){const{normalized:n,variant:i}=ye(e);return i==="keys"?await this.deleter.delete({keys:n,bounds:t}):await this.deleter.delete({names:n,bounds:t})}};const Zl=Object.freeze(Object.defineProperty({__proto__:null,ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT:jl,AUTO_SPAN:jr,Client:ri,Frame:U,Iterator:qt,ObservableStreamer:zt,Streamer:Qt,Writer:ti,WriterMode:bt,frameZ:Ht,series:Hs,seriesFromPayload:Xs,seriesToPayload:Qs},Symbol.toStringTag,{value:"Module"})),Ul=_e.Authority,Bl=_e.stateZ(s.z.number()),Ll=r=>{var e,t;return r.to==null?`${(e=r.from)==null?void 0:e.resource} - ${(t=r.from)==null?void 0:t.subject.name} -> released`:r.from==null?`${r.to.resource} - released -> ${r.to.subject.name} (${r.to.authority.toString()})`:`${r.to.resource} - ${r.from.subject.name} -> ${r.to.subject.name} (${r.to.authority.toString()})`};class ni extends zt{constructor(t){super(t,n=>{const i=this.codec.decode(n.series[0].buffer);return this.merge(i),[i.transfers,!0]});o(this,"states");o(this,"codec");this.states=new Map,this.codec=new Ke.JSONCodec}subjects(){const t=new Map;return this.states.forEach(n=>t.set(n.subject.key,n.subject)),Array.from(t.values())}merge(t){t.transfers.forEach(n=>{n.from==null&&n.to==null&&console.warn("Invalid transfer: ",n),n.to==null?this.states.delete(n.from.resource):this.states.set(n.to.resource,n.to)})}}const ql="sy_node_1_control";let si=class{constructor(e){o(this,"framer");this.framer=e}async openStateTracker(){const e=await this.framer.openStreamer(ql);return new ni(e)}};const Yl=Object.freeze(Object.defineProperty({__proto__:null,Authority:Ul,Client:si,StateTracker:ni,stateZ:Bl,transferString:Ll},Symbol.toStringTag,{value:"Module"}));let ii=class{constructor(e,t,n){o(this,"tasks");o(this,"racks");o(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const Wl=Object.freeze(Object.defineProperty({__proto__:null,Client:ii},Symbol.toStringTag,{value:"Module"})),Je=s.z.number(),er=s.z.object({key:Je,name:s.z.string()}),ai=er.partial({key:!0}),oi="rack",Fl=r=>new x({type:oi,key:r.toString()}),tr=s.z.string(),Et=s.z.object({key:tr,rack:Je,name:s.z.string(),make:s.z.string(),model:s.z.string(),location:s.z.string(),configured:s.z.boolean().optional(),properties:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:Ke.JSON_CODEC.decodeString(r)))}),ci=Et.extend({properties:s.z.unknown().transform(r=>Ke.JSON_CODEC.encodeString(r))}),li="device",_l=r=>new x({type:li,key:r.toString()}),He=async(r,e,t,n)=>{const i=await r.openStreamer([e,t]),a=c=>{const l=[];return t!=null&&l.push(...c.get(t).series.flatMap(u=>n("delete",u))),e!=null&&l.push(...c.get(e).series.flatMap(u=>n("set",u))),[l,l.length>0]};return new zt(i,a)},Gl=Object.freeze(Object.defineProperty({__proto__:null,openObservable:He},Symbol.toStringTag,{value:"Module"})),Kl="sy_device_set",Vl="sy_device_delete",fr="/hardware/device/retrieve",Jl="/hardware/device/create",Hl="/hardware/device/delete",Xl=s.z.object({devices:ci.array()}),Ql=s.z.object({devices:Et.array()}),eu=s.z.object({keys:tr.array()}),tu=s.z.object({}),pr=s.z.object({search:s.z.string().optional(),limit:s.z.number().optional(),offset:s.z.number().optional(),keys:tr.array().optional(),names:s.z.string().array().optional(),makes:s.z.string().array().optional()}),gr=s.z.object({devices:Ve(Et)});let ui=class{constructor(e,t){o(this,"type","device");o(this,"client");o(this,"frameClient");this.client=e,this.frameClient=t}async retrieve(e,t){const n=!Array.isArray(e),i=await w(this.client,fr,{keys:T(e),...t},pr,gr);return Jt("Device",e,i.devices,n),n?i.devices[0]:i.devices}async search(e,t){return(await w(this.client,fr,{search:e,...t},pr,gr)).devices}async page(e,t,n){return(await w(this.client,fr,{offset:e,limit:t,...n},pr,gr)).devices}async create(e){const t=!Array.isArray(e),n=await w(this.client,Jl,{devices:T(e)},Xl,Ql);return t?n.devices[0]:n.devices}async delete(e){await w(this.client,Hl,{keys:T(e)},eu,tu)}async openDeviceTracker(){return await He(this.frameClient,Kl,Vl,ru)}newSearcherWithOptions(e){return{type:this.type,search:async t=>await this.search(t,e),retrieve:async t=>await this.retrieve(t,e),page:async(t,n)=>await this.page(t,n,e)}}};const ru=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(Et).map(t=>({variant:r,key:t.key,value:t})),nu=Object.freeze(Object.defineProperty({__proto__:null,Client:ui,DeviceOntologyType:li,deviceKeyZ:tr,deviceZ:Et,newDeviceZ:ci,ontologyID:_l},Symbol.toStringTag,{value:"Module"})),mr="/hardware/rack/retrieve",su="/hardware/rack/create",iu="/hardware/rack/delete",wr=s.z.object({keys:Je.array().optional(),names:s.z.string().array().optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),br=s.z.object({racks:Ve(er)}),au=s.z.object({racks:ai.array()}),ou=s.z.object({racks:er.array()}),cu=s.z.object({keys:Je.array()}),lu=s.z.object({});let hi=class{constructor(e,t,n){o(this,"type","rack");o(this,"client");o(this,"frameClient");o(this,"tasks");this.client=e,this.frameClient=t,this.tasks=n}async delete(e){await w(this.client,iu,{keys:T(e)},cu,lu)}async create(e){const t=!Array.isArray(e),n=await w(this.client,su,{racks:T(e)},au,ou),i=this.sugar(n.racks);return t?i[0]:i}async search(e){const t=await w(this.client,mr,{search:e},wr,br);return this.sugar(t.racks)}async page(e,t){const n=await w(this.client,mr,{offset:e,limit:t},wr,br);return this.sugar(n.racks)}async retrieve(e){const{variant:t,normalized:n,single:i}=Vt(e,{string:"names",number:"keys"}),a=await w(this.client,mr,{[t]:n},wr,br),c=this.sugar(a.racks);return Jt("Rack",e,c,i),i?c[0]:c}sugar(e){return e.map(({key:t,name:n})=>new yi(t,n,this.tasks))}};class yi{constructor(e,t,n){o(this,"key");o(this,"name");o(this,"tasks");this.key=e,this.name=t,this.tasks=n}async listTasks(){return await this.tasks.retrieve(this.key)}async retrieveTaskByName(e){return await this.tasks.retrieveByName(e,this.key)}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),await this.tasks.create(e)}async deleteTask(e){await this.tasks.delete([e])}}const uu=Object.freeze(Object.defineProperty({__proto__:null,Client:hi,Rack:yi,RackOntologyType:oi,newRackZ:ai,ontologyID:Fl,rackKeyZ:Je,rackZ:er},Symbol.toStringTag,{value:"Module"})),Xe=s.z.union([s.z.string(),s.z.bigint().transform(r=>r.toString()),s.z.number().transform(r=>r.toString())]),vt=s.z.object({task:Xe,variant:s.z.string(),key:s.z.string().optional(),details:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:JSON.parse(r))).or(s.z.array(s.z.unknown())).or(s.z.null())}),rr=s.z.object({key:Xe,name:s.z.string(),type:s.z.string(),internal:s.z.boolean().optional(),config:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:Ke.JSON_CODEC.decodeString(r))),state:vt.optional().nullable()}),di=rr.omit({key:!0}).extend({key:Xe.transform(r=>r.toString()).optional(),config:s.z.unknown().transform(r=>Ke.JSON_CODEC.encodeString(r))}),hu=s.z.object({task:Xe,type:s.z.string(),key:s.z.string(),args:s.z.record(s.z.unknown()).or(s.z.string().transform(r=>r===""?{}:JSON.parse(r)))}),fi="task",yu=r=>new x({type:fi,key:r.toString()}),yt="sy_task_state",Un="sy_task_cmd";class pi{constructor(e,t,n,i,a,c=!1,l){o(this,"key");o(this,"name");o(this,"internal");o(this,"type");o(this,"config");o(this,"state");o(this,"frameClient");this.key=e,this.name=t,this.type=n,this.config=i,this.internal=c,l!==null&&(this.state=l),this.frameClient=a}get payload(){return{key:this.key,name:this.name,type:this.type,config:this.config,state:this.state,internal:this.internal}}async executeCommand(e,t){const n=await this.frameClient.openWriter(Un),i=Fo.id();return await n.write(Un,[{task:this.key,type:e,key:i,args:t}]),await n.close(),i}async executeCommandSync(e,t,n){const i=await this.frameClient.openStreamer(yt),a=await this.executeCommand(e,t);let c;const l=new Promise(u=>setTimeout(()=>u(!1),new E(n).milliseconds));for(;;){const u=await Promise.any([i.read(),l]);if(u===!1)throw new Error("Command timed out");const f=vt.safeParse(u.at(-1).sy_task_state);if(f.success){if(c=f.data,c.key===a)break}else console.error(f.error)}return i.close(),c}async openStateObserver(){return new zt(await this.frameClient.openStreamer(yt),e=>{const t=e.get(yt);if(t.length===0)return[null,!1];const n=vt.safeParse(t.at(-1));if(!n.success)return[null,!1];const i=n.data;return i.task!==this.key?[null,!1]:[i,!0]})}}const du=s.z.object({rack:Je.optional(),keys:s.z.string().array().optional(),names:s.z.string().array().optional(),offset:s.z.number().optional(),limit:s.z.number().optional(),includeState:s.z.boolean().optional()}),fu=s.z.object({tasks:Ve(rr)}),pu="/hardware/task/retrieve",gu="/hardware/task/create",mu="/hardware/task/delete",wu=s.z.object({tasks:di.array()}),bu=s.z.object({tasks:rr.array()}),vu=s.z.object({keys:Xe.array()}),Tu=s.z.object({});let gi=class{constructor(e,t){o(this,"type","task");o(this,"client");o(this,"frameClient");this.client=e,this.frameClient=t}async create(e){const t=!Array.isArray(e),n=await w(this.client,gu,{tasks:T(e)},wu,bu),i=this.sugar(n.tasks);return t?i[0]:i}async delete(e){await w(this.client,mu,{keys:T(e)},vu,Tu)}async search(e){return await this.execRetrieve({keys:[e]})}async page(e,t){return await this.execRetrieve({offset:e,limit:t})}async list(e={}){return this.sugar(await this.execRetrieve(e))}async retrieve(e,t){const{single:n,normalized:i,variant:a}=Vt(e,{number:"rack",string:"keys"},{convertNumericStrings:!1}),c={...t};a==="rack"?c.rack=e:c.keys=i;const l=await this.execRetrieve(c),u=this.sugar(l);return n&&a!=="rack"?u[0]:u}async retrieveByName(e,t){const n=await this.execRetrieve({names:[e],rack:t});return Jt("Task",e,n,!0),this.sugar(n)[0]}async execRetrieve(e){return(await w(this.client,pu,e,du,fu)).tasks}sugar(e){return e.map(({key:t,name:n,type:i,config:a,state:c,internal:l})=>new pi(t,n,i,a,this.frameClient,l,c))}async openTracker(){return await He(this.frameClient,"sy_task_set","sy_task_delete",(e,t)=>Array.from(t).map(n=>({variant:e,key:n.toString(),value:n.toString()})))}async openStateObserver(){return new zt(await this.frameClient.openStreamer(yt),e=>{const t=e.get(yt);if(t.length===0)return[null,!1];const n=vt.safeParse(t.at(-1));return n.success?[n.data,!0]:[null,!1]})}};const Ou=Object.freeze(Object.defineProperty({__proto__:null,Client:gi,DeviceOntologyType:fi,Task:pi,commandZ:hu,newTaskZ:di,ontologyID:yu,stateZ:vt,taskKeyZ:Xe,taskZ:rr},Symbol.toStringTag,{value:"Module"})),Qe=s.z.string().uuid(),St=s.z.object({key:Qe,name:s.z.string().min(1),color:s.z.string()}),mi="label",zu=r=>new x({type:mi,key:r}),Eu=s.z.object({keys:Qe.array().optional(),for:H.optional(),search:s.z.string().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Su=s.z.object({labels:St.array().optional().default([])});var ze;let wi=(ze=class{constructor(e){o(this,"client");this.client=e}async retrieve(e){const t=T(e);return await this.execute({keys:t})}async retrieveFor(e){return await this.execute({for:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){const[t,n]=await this.client.send(ze.ENDPOINT,e,Eu,Su);if(n!=null)throw n;return t.labels}},o(ze,"ENDPOINT","/label/retrieve"),ze);const bi=St.extend({key:Qe.optional()}),Nu=s.z.object({labels:bi.array()}),Iu=s.z.object({labels:St.array()}),ku=s.z.object({keys:Qe.array()}),vi=s.z.object({id:H,labels:Qe.array()}),Au=vi,vr=s.z.object({}),$u="/label/create",Ru="/label/delete",xu="/label/set",Cu="/label/remove";let Ti=class{constructor(e){o(this,"client");this.client=e}async create(e){return(await w(this.client,$u,{labels:T(e)},Nu,Iu)).labels}async delete(e){await w(this.client,Ru,{keys:T(e)},ku,vr)}async set(e,t){await w(this.client,xu,{id:e,labels:t},vi,vr)}async remove(e,t){await w(this.client,Cu,{id:e,labels:t},Au,vr)}};const ju="sy_label_set",Pu="sy_label_delete";let Oi=class{constructor(e,t){o(this,"type","label");o(this,"retriever");o(this,"writer");o(this,"frameClient");this.writer=new Ti(e),this.retriever=new wi(e),this.frameClient=t}async search(e){return await this.retriever.search(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async retrieveFor(e){return await this.retriever.retrieveFor(e)}async label(e,t){await this.writer.set(e,t)}async removeLabels(e,t){await this.writer.remove(e,t)}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async openChangeTracker(){return await He(this.frameClient,ju,Pu,Du)}};const Du=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(St).map(t=>({variant:r,key:t.key,value:t})),Mu=Object.freeze(Object.defineProperty({__proto__:null,Client:Oi,LabelOntologyType:mi,Retriever:wi,Writer:Ti,keyZ:Qe,labelZ:St,newLabelPayloadZ:bi,ontologyID:zu},Symbol.toStringTag,{value:"Module"})),K=s.z.string().uuid(),et=s.z.object({key:K,name:s.z.string().min(1),timeRange:G.z,color:s.z.string().optional()}),zi=et.extend({key:s.z.string().uuid().optional()}),Ei=r=>{const e=T(r);if(e.length===0)throw new Error("Range params must not be empty");const t=K.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},Si="range",Ni="range-alias",Zu=r=>new x({type:Si,key:r}),Uu=r=>new x({type:Ni,key:r}),Bu=s.z.object({}),Lu=s.z.object({range:et}),qu=s.z.object({range:K}),Yu=s.z.object({range:K}),Wu=s.z.object({}),Fu="/range/set-active",_u="/range/retrieve-active",Gu="/range/clear-active";class Ku{constructor(e){o(this,"client");this.client=e}async setActive(e){await w(this.client,Fu,{range:e},qu,Bu)}async retrieveActive(){const[e,t]=await this.client.send(_u,{},s.z.object({}),Lu);if(X.matches(t))return null;if(t!=null)throw t;return e.range}async clearActive(e){await w(this.client,Gu,{range:e},Yu,Wu)}}const Vu="sy_range_alias_set",Ju="sy_range_alias_delete",Hu=s.z.object({range:K,aliases:s.z.string().array()}),Xu=s.z.object({aliases:s.z.record(s.z.string(),we)}),Qu=s.z.object({range:K,aliases:s.z.record(we.or(s.z.string()),s.z.string())}),eh=s.z.unknown(),th=s.z.object({range:K,channels:we.array()}),rh=s.z.unknown(),nh=s.z.object({range:K}),sh=s.z.object({aliases:s.z.record(s.z.string(),s.z.string())}),ae=class ae{constructor(e,t,n){o(this,"frameClient");o(this,"cache",new Map);o(this,"client");o(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",i={};if(n){const c=this.cache.get(e);if(c!=null)return c;t.push(e)}else e.forEach(c=>{const l=this.cache.get(c);l!=null?i[c]=l:t.push(c)});if(t.length===0)return i;const a=await w(this.client,ae.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},Hu,Xu);return Object.entries(a.aliases).forEach(([c,l])=>this.cache.set(c,l)),n?a.aliases[t[0]]:{...i,...a.aliases}}async set(e){await w(this.client,ae.SET_ENDPOINT,{range:this.rangeKey,aliases:e},Qu,eh)}async list(){return(await w(this.client,ae.LIST_ENDPOINT,{range:this.rangeKey},nh,sh)).aliases}async delete(e){await w(this.client,ae.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},th,rh)}async openChangeTracker(){return await He(this.frameClient,Vu,Ju,oh(this.rangeKey))}};o(ae,"SET_ENDPOINT","/range/alias/set"),o(ae,"RESOLVE_ENDPOINT","/range/alias/resolve"),o(ae,"LIST_ENDPOINT","/range/alias/list"),o(ae,"DELETE_ENDPOINT","/range/alias/delete");let Pr=ae;const ih=s.z.object({range:K,channel:we,alias:s.z.string()}),ah="---",oh=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(ah)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(ih).map(n=>({variant:e,key:n.alias,value:n})),ch=s.z.object({range:K,keys:s.z.string().array()}),lh=s.z.object({pairs:s.z.record(s.z.string(),s.z.string())}),uh=s.z.object({range:K,pairs:s.z.record(s.z.string(),s.z.string())}),hh=s.z.object({range:K,keys:s.z.string().array()}),de=class de{constructor(e,t){o(this,"rangeKey");o(this,"client");this.rangeKey=e,this.client=t}async get(e){const[t,n]=await this.client.send(de.GET_ENDPOINT,{range:this.rangeKey,keys:T(e)},ch,lh);if(n!=null)throw n;return Array.isArray(e)?t.pairs:t.pairs[e]}async list(){return this.get([])}async set(e,t=""){await w(this.client,de.SET_ENDPOINT,{range:this.rangeKey,pairs:Ur(e)?e:{[e]:t}},uh,s.z.unknown())}async delete(e){await w(this.client,de.DELETE_ENDPOINT,{range:this.rangeKey,keys:T(e)},hh,s.z.unknown())}};o(de,"GET_ENDPOINT","/range/kv/get"),o(de,"SET_ENDPOINT","/range/kv/set"),o(de,"DELETE_ENDPOINT","/range/kv/delete");let Dr=de;const Tr=r=>new x({type:"range",key:r});class Ii{constructor(e,t=G.ZERO,n,i,a,c,l,u,f){o(this,"key");o(this,"name");o(this,"kv");o(this,"timeRange");o(this,"color");o(this,"channels");o(this,"aliaser");o(this,"frameClient");o(this,"labelClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=a,this.color=i,this.kv=c,this.aliaser=l,this.channels=u,this.labelClient=f}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new X(`Channel ${e} does not exist`);await this.aliaser.set({[n[0].key]:t})}async deleteAlias(...e){await this.aliaser.delete(e)}async listAliases(){return await this.aliaser.list()}async openAliasTracker(){return await this.aliaser.openChangeTracker()}async read(e){return await this.frameClient.read(this.timeRange,e)}async labels(){return await this.labelClient.retrieveFor(Tr(this.key))}async addLabel(...e){await this.labelClient.label(Tr(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(Tr(this.key),e)}}const yh=s.z.object({keys:K.array().optional(),names:s.z.array(s.z.string()).optional(),term:s.z.string().optional(),overlapsWith:G.z.optional()}),dh="/range/retrieve",fh=s.z.object({ranges:Ve(et)});let ki=class{constructor(e,t,n,i,a){o(this,"type","range");o(this,"frameClient");o(this,"writer");o(this,"unaryClient");o(this,"channels");o(this,"active");o(this,"labelClient");this.frameClient=e,this.writer=t,this.unaryClient=n,this.channels=i,this.active=new Ku(n),this.labelClient=a}async create(e){const t=!Array.isArray(e),n=this.sugar(await this.writer.create(T(e)));return t?n[0]:n}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(T(e))}async search(e){return this.sugar(await this.execRetrieve({term:e}))}async page(){return[]}async retrieve(e){if(typeof e=="object"&&"start"in e)return await this.execRetrieve({overlapsWith:new G(e)});const{single:t,actual:n,variant:i,normalized:a}=Ei(e),c=await this.execRetrieve({[i]:a});if(!t)return c;if(c.length===0)throw new Ie(`range matching ${n} not found`);if(c.length>1)throw new ke(`multiple ranges matching ${n} found`);return c[0]}async execRetrieve(e){const{ranges:t}=await w(this.unaryClient,dh,e,yh,fh);return this.sugar(t)}async setActive(e){await this.active.setActive(e)}async retrieveActive(){const e=await this.active.retrieveActive();return e==null?null:this.sugar([e])[0]}async clearActive(e){await this.active.clearActive(e)}sugar(e){return e.map(t=>new Ii(t.name,t.timeRange,t.key,t.color,this.frameClient,new Dr(t.key,this.unaryClient),new Pr(t.key,this.frameClient,this.unaryClient),this.channels,this.labelClient))}async openTracker(){return await He(this.frameClient,"sy_range_set","sy_range_delete",(e,t)=>e==="delete"?t.toStrings().map(i=>({variant:e,key:i,value:void 0})):this.sugar(t.parseJSON(et)).map(i=>({variant:e,key:i.key,value:i})))}};const ph=s.z.object({ranges:et.array()}),gh=s.z.object({ranges:zi.array()}),mh=s.z.object({keys:K.array()}),wh=s.z.object({}),bh=s.z.object({key:K,name:s.z.string()}),vh=s.z.object({}),Th="/range/create",Oh="/range/delete",zh="/range/rename";let Ai=class{constructor(e){o(this,"client");this.client=e}async rename(e,t){await w(this.client,zh,{key:e,name:t},bh,vh)}async create(e){return(await w(this.client,Th,{ranges:e},gh,ph)).ranges}async delete(e){await w(this.client,Oh,{keys:e},mh,wh)}};const Eh=Object.freeze(Object.defineProperty({__proto__:null,Client:ki,Range:Ii,RangeAliasOntologyType:Ni,RangeOntologyType:Si,Writer:Ai,analyzeParams:Ei,keyZ:K,newPayloadZ:zi,payloadZ:et,rangeAliasOntologyID:Uu,rangeOntologyID:Zu},Symbol.toStringTag,{value:"Module"})),Sh="/api/v1/";class Nh{constructor(e,t=!1){o(this,"url");o(this,"unary");o(this,"stream");o(this,"secure");this.secure=t,this.url=e.child(Sh);const n=new Ke.JSONCodec;this.unary=new Fa(this.url,n,this.secure),this.stream=new eo(this.url,n,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const Jr=s.z.string().uuid(),Hr=s.z.object({key:s.z.string(),name:s.z.string(),data:Lr.or(s.z.string().transform(r=>JSON.parse(r)))}),Ih=s.z.object({keys:s.z.string().array()}),kh=s.z.object({linePlots:Hr.array()});let Ah=class{constructor(e){o(this,"ENDPOINT","/workspace/lineplot/retrieve");o(this,"client");this.client=e}async retrieve(e){const t=T(e);return(await w(this.client,this.ENDPOINT,{keys:t},Ih,kh)).linePlots}};const be=s.z.string().uuid(),$i=r=>JSON.parse(r),Xr=s.z.object({name:s.z.string(),key:be,layout:Lr.or(s.z.string().transform(r=>$i(r)))}),Qr=Xr.omit({layout:!0}).extend({layout:s.z.string().transform(r=>$i(r))}),Ri="workspace",$h=r=>new x({type:Ri,key:r}),Rh=Hr.partial({key:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),xh=s.z.object({workspace:be,linePlots:Rh.array()}),Ch=s.z.object({linePlots:Hr.array()}),jh=s.z.object({keys:Jr.array()}),Ph=s.z.object({}),Dh=s.z.object({key:Jr,name:s.z.string()}),Mh=s.z.object({}),Zh=s.z.object({key:Jr,data:s.z.string()}),Uh=s.z.object({}),Bh="/workspace/lineplot/create",Lh="/workspace/lineplot/delete",qh="/workspace/lineplot/rename",Yh="/workspace/lineplot/set-data";let Wh=class{constructor(e){o(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await w(this.client,Bh,{workspace:e,linePlots:[n]},xh,Ch)).linePlots[0]}async delete(e){const t=T(e);await w(this.client,Lh,{keys:t},jh,Ph)}async rename(e,t){await w(this.client,qh,{key:e,name:t},Dh,Mh)}async setData(e,t){await w(this.client,Yh,{key:e,data:JSON.stringify(t)},Zh,Uh)}},Fh=class{constructor(e){o(this,"writer");o(this,"retriever");this.writer=new Wh(e),this.retriever=new Ah(e)}async create(e,t){return await this.writer.create(e,t)}async rename(e,t){await this.writer.rename(e,t)}async setData(e,t){await this.writer.setData(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}};const _h=s.z.object({keys:be.array().optional(),search:s.z.string().optional(),author:s.z.string().uuid().optional(),offset:s.z.number().optional(),limit:s.z.number().optional()}),Gh=s.z.object({workspaces:Ve(Qr)});var Ee;let Kh=(Ee=class{constructor(e){o(this,"client");this.client=e}async retrieve(e){const t=T(e);return await this.execute({keys:t})}async retrieveByAuthor(e){return await this.execute({author:e})}async search(e){return await this.execute({search:e})}async page(e,t){return await this.execute({offset:e,limit:t})}async execute(e){return(await w(this.client,Ee.ENDPOINT,e,_h,Gh)).workspaces}},o(Ee,"ENDPOINT","/workspace/retrieve"),Ee);const nr=s.z.string().uuid(),Vh=s.z.object({key:s.z.string(),name:s.z.string(),data:Lr.or(s.z.string().transform(r=>JSON.parse(r))),snapshot:s.z.boolean()}),en=s.z.object({key:s.z.string(),name:s.z.string(),snapshot:s.z.boolean(),data:s.z.string().transform(r=>JSON.parse(r))}),Jh=s.z.object({keys:s.z.string().array()}),Hh=s.z.object({schematics:en.array()});class Xh{constructor(e){o(this,"ENDPOINT","/workspace/schematic/retrieve");o(this,"client");this.client=e}async retrieve(e){return(await w(this.client,this.ENDPOINT,{keys:T(e)},Jh,Hh)).schematics}}const Qh=Vh.partial({key:!0,snapshot:!0}).transform(r=>({...r,data:JSON.stringify(r.data)})),ey=s.z.object({workspace:be,schematics:Qh.array()}),ty=s.z.object({schematics:en.array()}),ry=s.z.object({keys:nr.array()}),ny=s.z.object({}),sy=s.z.object({key:nr,name:s.z.string()}),Bn=s.z.object({}),iy=s.z.object({key:nr,data:s.z.string()});s.z.object({});const ay=s.z.object({key:nr,name:s.z.string(),snapshot:s.z.boolean()}),oy=s.z.object({schematic:en}),cy="/workspace/schematic/create",ly="/workspace/schematic/delete",uy="/workspace/schematic/rename",hy="/workspace/schematic/set-data",yy="/workspace/schematic/copy";let dy=class{constructor(e){o(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await w(this.client,cy,{workspace:e,schematics:[n]},ey,ty)).schematics[0]}async copy(e,t,n){return(await w(this.client,yy,{key:e,name:t,snapshot:n},ay,oy)).schematic}async delete(e){const t=T(e);await w(this.client,ly,{keys:t},ry,ny)}async rename(e,t){await w(this.client,uy,{key:e,name:t},sy,Bn)}async setData(e,t){await w(this.client,hy,{key:e,data:JSON.stringify(t)},iy,Bn)}},fy=class{constructor(e){o(this,"writer");o(this,"retriever");this.writer=new dy(e),this.retriever=new Xh(e)}async create(e,t){return await this.writer.create(e,t)}async rename(e,t){await this.writer.rename(e,t)}async setData(e,t){await this.writer.setData(e,t)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async delete(e){await this.writer.delete(e)}async copy(e,t,n){return await this.writer.copy(e,t,n)}};const py=Xr.partial({key:!0}).transform(r=>({...r,layout:JSON.stringify(r.layout)})),gy=s.z.object({workspaces:py.array()}),my=s.z.object({workspaces:Qr.array()}),wy=s.z.object({keys:be.array()}),by=s.z.object({}),vy=s.z.object({key:be,name:s.z.string()}),Ty=s.z.object({}),Oy=s.z.object({key:be,layout:s.z.string()}),zy=s.z.object({}),Ey="/workspace/create",Sy="/workspace/delete",Ny="/workspace/rename",Iy="/workspace/set-layout";class ky{constructor(e){o(this,"client");this.client=e}async create(e){return(await w(this.client,Ey,{workspaces:T(e)},gy,my)).workspaces}async delete(e){await w(this.client,Sy,{keys:T(e)},wy,by)}async rename(e,t){await w(this.client,Ny,{key:e,name:t},vy,Ty)}async setLayout(e,t){await w(this.client,Iy,{key:e,layout:JSON.stringify(t)},Oy,zy)}}class xi{constructor(e){o(this,"type","workspace");o(this,"schematic");o(this,"linePlot");o(this,"retriever");o(this,"writer");this.schematic=new fy(e),this.linePlot=new Fh(e),this.retriever=new Kh(e),this.writer=new ky(e)}async search(e){return await this.retriever.search(e)}async retrieveByAuthor(e){return await this.retriever.retrieveByAuthor(e)}async retrieve(e){const t=Array.isArray(e),n=await this.retriever.retrieve(e);return t?n:n[0]}async page(e,t){return await this.retriever.page(e,t)}async create(e){const t=Array.isArray(e),n=await this.writer.create(e);return t?n:n[0]}async rename(e,t){await this.writer.rename(e,t)}async setLayout(e,t){await this.writer.setLayout(e,t)}async delete(...e){await this.writer.delete(e)}}const Ay=Object.freeze(Object.defineProperty({__proto__:null,Client:xi,WorkspaceOntologyType:Ri,keyZ:be,ontologyID:$h,workspaceRemoteZ:Qr,workspaceZ:Xr},Symbol.toStringTag,{value:"Module"})),Ci=s.z.object({host:s.z.string({required_error:"Host is required"}).min(1,"Host is required"),port:s.z.number({required_error:"Port is required"}).or(s.z.string({required_error:"Port is required"})),username:s.z.string().optional(),password:s.z.string().optional(),connectivityPollFrequency:E.z.default(E.seconds(30)),secure:s.z.boolean().optional().default(!1),name:s.z.string().optional()});class ji extends ri{constructor(t){const n=Ci.parse(t),{host:i,port:a,username:c,password:l,connectivityPollFrequency:u,secure:f}=n,p=new Nh(new lc({host:i,port:Number(a)}),f);p.use(mc);let g;c!=null&&l!=null&&(g=new bl(p.unary,{username:c,password:l}),p.use(g.middleware()));const P=new qr(new mt(p.unary)),j=new _s(p.unary,P);super(p.stream,p.unary,P);o(this,"createdAt");o(this,"props");o(this,"ranges");o(this,"channels");o(this,"auth");o(this,"user");o(this,"access");o(this,"connectivity");o(this,"ontology");o(this,"workspaces");o(this,"labels");o(this,"hardware");o(this,"control");o(this,"transport");this.createdAt=O.now(),this.props=n,this.auth=g,this.transport=p,this.channels=new Fs(this,P,p.unary,j),this.connectivity=new wt(p.unary,u,n.name),this.control=new si(this),this.ontology=new Us(p.unary,this);const Q=new Ai(this.transport.unary);this.labels=new Oi(this.transport.unary,this),this.ranges=new ki(this,Q,this.transport.unary,P,this.labels),this.access=new fl(this.transport.unary),this.user=new gl(this.transport.unary),this.workspaces=new xi(this.transport.unary);const D=new ui(this.transport.unary,this),tn=new gi(this.transport.unary,this),Pi=new hi(this.transport.unary,this,tn);this.hardware=new ii(tn,Pi,D)}get key(){return this.createdAt.valueOf().toString()}close(){this.connectivity.stopChecking()}}o(ji,"connectivity",wt);const $y=_e.Authority;exports.AuthError=Ne;exports.Authority=$y;exports.Channel=Yr;exports.ContiguityError=xr;exports.DataType=z;exports.Density=_;exports.Frame=U;exports.MultiSeries=Ns;exports.MultipleFoundError=ke;exports.NotFoundError=Ie;exports.QueryError=X;exports.Rate=Gt;exports.RouteError=gt;exports.Series=Oe;exports.Synnax=ji;exports.TimeRange=G;exports.TimeSpan=E;exports.TimeStamp=O;exports.UnexpectedError=pe;exports.ValidationError=C;exports.channel=nl;exports.connection=Ol;exports.control=Yl;exports.device=nu;exports.framer=Zl;exports.hardware=Wl;exports.label=Mu;exports.ontology=Pc;exports.rack=uu;exports.ranger=Eh;exports.signals=Gl;exports.synnaxPropsZ=Ci;exports.task=Ou;exports.workspace=Ay;
|