@synnaxlabs/client 0.16.3 → 0.16.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +10 -10
- package/dist/client.cjs +1 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +7 -3
- package/dist/client.js.map +1 -1
- package/examples/node/basicReadWriter.js +37 -0
- package/examples/node/package-lock.json +4961 -0
- package/examples/{package.json → node/package.json} +5 -5
- package/package.json +5 -5
- package/src/connection/checker.ts +5 -1
- package/src/framer/client.ts +6 -2
- package/.pytest_cache/README.md +0 -8
- package/examples/index.js +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
> @synnaxlabs/client@0.
|
|
2
|
+
> @synnaxlabs/client@0.16.4 build /home/runner/work/synnax/synnax/client/ts
|
|
3
3
|
> tsc --noEmit && vite build
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[36mvite v5.1.2 [32mbuilding for production...[36m[39m
|
|
6
6
|
transforming...
|
|
7
|
-
|
|
7
|
+
[32m✓[39m 103 modules transformed.
|
|
8
8
|
rendering chunks...
|
|
9
|
-
|
|
10
|
-
[vite:dts] Start generate declaration files
|
|
9
|
+
[32m
|
|
10
|
+
[36m[vite:dts][32m Start generate declaration files...[39m
|
|
11
11
|
computing gzip size...
|
|
12
|
-
|
|
13
|
-
[vite:dts] Declaration files built in
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
✓ built in
|
|
12
|
+
[2mdist/[22m[36mclient.js [39m[1m[33m525.40 kB[39m[22m[2m │ gzip: 115.77 kB[22m[2m │ map: 1,305.16 kB[22m
|
|
13
|
+
[32m[36m[vite:dts][32m Declaration files built in 3559ms.
|
|
14
|
+
[39m
|
|
15
|
+
[2mdist/[22m[36mclient.cjs [39m[1m[2m349.36 kB[22m[1m[22m[2m │ gzip: 92.12 kB[22m[2m │ map: 1,250.30 kB[22m
|
|
16
|
+
[32m✓ built in 5.09s[39m
|
package/dist/client.cjs
CHANGED
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
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 yn("colType is not key");return this.columns??[]}get uniqueKeys(){return ru(this.keys)}get names(){if(this.colType==="key")throw new yn("colType is not name");return this.columns??[]}get uniqueNames(){return ru(this.names)}get uniqueColumns(){return this.colType==="key"?this.uniqueKeys:this.uniqueNames}toPayload(){return{series:this.series.map(e=>vh(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 Zt.ZERO;const n=Math.min(...this.series.map(a=>a.timeRange.start.valueOf())),s=Math.max(...this.series.map(a=>a.timeRange.end.valueOf()));return new Zt(n,s)}const t=this.get(e);return t==null?Zt.ZERO:new Zt(t[0].timeRange.start,t[t.length-1].timeRange.end)}get timeRanges(){return this.uniqueColumns.map(e=>this.timeRange(e))}get(e){return Array.isArray(e)?this.filter(t=>e.includes(t)):this.series.filter((t,n)=>this.columns[n]===e)}push(e,...t){if(e instanceof pt){if(this.colType!==null&&e.colType!==this.colType)throw new zt("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 zt("keyVariant must match");if(typeof e!="string"&&this.colType==="name")throw new zt("keyVariant must match");this.columns.push(...Array.from({length:t.length},()=>e))}}concat(e){return new pt([...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 pt;return this.forEach((n,s,a)=>t.push(...e(n,s,a))),t}forEach(e){this.columns.forEach((t,n)=>{const s=this.series[n];e(t,s,n)})}filter(e){const t=new pt;return this.columns.forEach((n,s)=>{const a=this.series[s];e(n,a,s)&&t.push(n,a)}),t}get byteLength(){return new Ya(this.series.reduce((e,t)=>e.add(t.byteLength),Ya.ZERO))}get length(){return this.series.reduce((e,t)=>e+t.length,0)}}const yh=u.z.object({timeRange:Zt.z.optional(),alignment:u.z.number().optional(),dataType:et.z,data:u.z.string().transform(r=>new Uint8Array(atob(r).split("").map(e=>e.charCodeAt(0))).buffer)}),$i=u.z.object({keys:u.z.union([u.z.null().transform(()=>[]),u.z.number().array().optional().default([])]),series:u.z.union([u.z.null().transform(()=>[]),yh.array().optional().default([])])}),gh=r=>{const{dataType:e,data:t,timeRange:n,alignment:s}=r;return new Ct({data:t,dataType:e,timeRange:n,glBufferUsage:"static",alignment:s})},vh=r=>({timeRange:r._timeRange,dataType:r.dataType,data:new Uint8Array(r.data.buffer),alignment:r.alignment});class Li{constructor(e){h(this,"adapter");h(this,"retriever");h(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new Li(e);return await n.update(t),n}async update(e){const{variant:t,normalized:n}=qr(e);if(t==="keys"){this.adapter=null,this.keys=n;return}const s=await this.retriever.retrieve(n),a=new Map;this.adapter=a,n.forEach(i=>{const o=s.find(c=>c.name===i);if(o==null)throw new Error(`Channel ${i} not found`);a.set(o.key,o.name)}),this.keys=Array.from(this.adapter.keys())}adapt(e){if(this.adapter==null)return e;const t=this.adapter;return e.map((n,s)=>{if(typeof n=="number"){const a=t.get(n);if(a==null)throw new Error(`Channel ${n} not found`);return[a,s]}return[n,s]})}}class zc{constructor(e){h(this,"adapter");h(this,"retriever");h(this,"keys");this.retriever=e,this.adapter=null,this.keys=[]}static async open(e,t){const n=new zc(e);return await n.update(t),n}async update(e){const{variant:t,normalized:n}=qr(e);if(t==="keys"){this.adapter=null,this.keys=n;return}const s=await this.retriever.retrieve(n),a=new Map;this.adapter=a,n.forEach(i=>{const o=s.find(c=>c.name===i);if(o==null)throw new zt(`Channel ${i} was not provided in the list of channels when opening the writer`);a.set(o.name,o.key)}),this.keys=s.map(i=>i.key)}adapt(e){if(this.adapter==null)return e.columns.forEach(n=>{if(typeof n!="number")throw new zt(`Channel ${n} was not provided in the list of channels when opening the writer`)}),e;const t=this.adapter;return e.map((n,s)=>{if(typeof n=="string"){const a=t.get(n);if(a==null)throw new Error(`Channel ${n} not found`);return[a,s]}return[n,s]})}}class Pc{constructor(e,t){h(this,"name");h(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(){this.stream.closeSend();const[e,t]=await this.stream.receive();if(e!=null)throw new yn(`${this.name} received unexpected response on closure.
|
|
18
18
|
Please report this error to the Synnax team.`);if(t==null)throw new yn(`${this.name} received unexpected null error on closure.
|
|
19
19
|
Please report this error to Synnax team.
|
|
20
|
-
`);if(!(t instanceof Vs))throw t}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const Bo=new Pe(-1);var Uc=(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))(Uc||{}),wh=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(wh||{});const Bw=u.z.object({command:u.z.nativeEnum(Uc),span:Pe.z.optional(),bounds:Zt.z.optional(),stamp:Ue.z.optional(),keys:u.z.number().array().optional()}),Vw=u.z.object({variant:u.z.nativeEnum(wh),ack:u.z.boolean(),command:u.z.nativeEnum(Uc),error:ta.optional().nullable(),frame:$i.optional()}),ts=class ts{constructor(e,t){h(this,"stream");h(this,"adapter");h(this,"value");this.stream=new Pc("Iterator",e),this.value=new pt,this.adapter=t}static async _open(e,t,n,s){const a=await Li.open(n,t),i=await s.stream(ts.ENDPOINT,Bw,Vw),o=new ts(i,a);return await o.execute({command:0,keys:a.keys,bounds:e}),o}async next(e=Bo){return await this.execute({command:1,span:new Pe(e)})}async prev(e=Bo){return await this.execute({command:2,span:new Pe(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 Ue(e)})}async seekGE(e){return await this.execute({command:6,stamp:new Ue(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new Kw(this)}async execute(e){for(this.stream.send(e),this.value=new pt;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new pt(t.frame)))}}};h(ts,"ENDPOINT","/frame/iterate");let _i=ts;class Kw{constructor(e){h(this,"iter");h(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 Fw=u.z.object({start:Ue.z.optional(),keys:u.z.number().array()}),Ww=u.z.object({frame:$i,error:ta.optional().nullable()}),qw="/frame/stream";class Bi{constructor(e,t){h(this,"stream");h(this,"adapter");this.stream=new Pc("Streamer",e),this.adapter=t}get keys(){return this.adapter.keys}static async _open(e,t,n,s){const a=await Li.open(n,t),i=await s.stream(qw,Fw,Ww),o=new Bi(i,a);return i.send({start:new Ue(e),keys:a.keys}),o}async next(){try{return{done:!1,value:await this.read()}}catch{return{done:!0,value:void 0}}}async read(){return this.adapter.adapt(new pt((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}}const Dc=u.z.object({name:u.z.string(),key:u.z.string()}),Yw=u.z.object({subject:Dc,resource:u.z.number(),authority:Wr.z}),Jw=(...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}),Gw=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 Mc{constructor(e){h(this,"states");h(this,"streamer");h(this,"ecd");h(this,"observer");h(this,"closePromise");this.states=new Map,this.ecd=new Vl.JSONEncoderDecoder,this.observer=new Ga.Observer,this.streamer=e,this.closePromise=this.stream()}subjects(){const e=new Map;return this.states.forEach(t=>e.set(t.subject.key,t.subject)),Array.from(e.values())}onChange(e){return this.observer.onChange(e)}async close(){this.streamer.close(),await this.closePromise}static async open(e){const t=await e.newStreamer("sy_node_1_control");return new Mc(t)}async stream(){for await(const e of this.streamer){const t=this.ecd.decode(e.series[0].buffer);this.merge(t),this.observer.notify(t.transfers)}}merge(e){e.transfers.forEach(t=>{t.from==null&&t.to==null&&console.warn("Invalid transfer: ",t),t.to==null?this.states.delete(t.from.resource):this.states.set(t.to.resource,t.to)})}}var $c=(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[r.SetMode=5]="SetMode",r))($c||{}),Ws=(r=>(r[r.PersistStream=1]="PersistStream",r[r.PersistOnly=2]="PersistOnly",r[r.StreamOnly=3]="StreamOnly",r))(Ws||{});const Hw=u.z.object({start:Ue.z.optional(),controlSubject:Dc.optional(),keys:u.z.number().array().optional(),authorities:Wr.z.array().optional(),mode:u.z.nativeEnum(Ws).optional()}),Xw=u.z.object({command:u.z.nativeEnum($c),config:Hw.optional(),frame:$i.optional()}),Qw=u.z.object({ack:u.z.boolean(),command:u.z.nativeEnum($c),error:ta.optional().nullable()});var on;let _h=(on=class{constructor(e,t){h(this,"stream");h(this,"adapter");this.stream=new Pc("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,authorities:s=Wr.Absolute,controlSubject:a,start:i,mode:o}){const c=await zc.open(e,n),l=await t.stream(on.ENDPOINT,Xw,Qw),w=new on(l,c);return await w.execute({command:0,config:{start:new Ue(i),keys:c.keys,controlSubject:a,authorities:Se(s),mode:o}}),w}async write(e,t){return["string","number"].includes(typeof e)&&(e=new pt(e,new Ct({data:t}))),e=this.adapter.adapt(new pt(e)),this.stream.send({command:1,frame:e.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 setMode(e){return(await this.execute({command:5,config:{mode: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?jc(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()}},h(on,"ENDPOINT","/frame/write"),on),bh=class{constructor(e,t){h(this,"stream");h(this,"retriever");this.stream=e,this.retriever=t}async newIterator(e,t){return await _i._open(e,t,this.retriever,this.stream)}async newWriter({start:e,channels:t,controlSubject:n,authorities:s=Wr.Absolute,mode:a=Ws.PersistStream}){return await _h._open(this.retriever,this.stream,{start:e??Ue.now(),controlSubject:n,channels:t,authorities:s,mode:a})}async newStreamer(e,t=Ue.now()){return await Bi._open(t,e,this.retriever,this.stream)}async write(e,t,n){const s=await this.newWriter({start:t,channels:e,mode:Ws.PersistOnly});try{if(await s.write(e,n),!await s.commit())throw await s.error()}catch{await s.close()}}async read(e,t){const{single:n}=qr(t),s=await this.readFrame(e,t);return n?s.series[0]:s}async readFrame(e,t){const n=await this.newIterator(e,t),s=new pt;for await(const a of n)s.push(a);return s}};const e_=Object.freeze(Object.defineProperty({__proto__:null,AUTO_SPAN:Bo,Client:bh,Frame:pt,Iterator:_i,Streamer:Bi,Writer:_h,WriterMode:Ws,frameZ:$i,series:yh,seriesFromPayload:gh,seriesToPayload:vh},Symbol.toStringTag,{value:"Module"}));let kh=class{constructor(e,t,n){h(this,"tasks");h(this,"racks");h(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const t_=Object.freeze(Object.defineProperty({__proto__:null,Client:kh},Symbol.toStringTag,{value:"Module"})),ra=u.z.number(),Lc=u.z.object({key:ra,name:u.z.string()}),r_=Lc.partial({key:!0}),Bc=u.z.string(),Vi=u.z.object({key:Bc,rack:ra,name:u.z.string(),make:u.z.string(),model:u.z.string(),location:u.z.string(),properties:u.z.string()});class na{constructor(e,t,n,s){h(this,"streamer");h(this,"decoder");h(this,"base");h(this,"closePromise");h(this,"deleteChannel");h(this,"setChannel");this.streamer=e,this.decoder=t,this.base=new Ga.Observer,this.closePromise=this.stream(),this.deleteChannel=s,this.setChannel=n}onChange(e){return this.base.onChange(e)}async close(){return this.streamer.close(),await this.closePromise}async stream(){for await(const e of this.streamer){const t=[];if(this.deleteChannel!=null){const n=e.get(this.deleteChannel);t.push(...n.flatMap(s=>this.decoder("delete",s)))}if(this.setChannel!=null){const n=e.get(this.setChannel);t.push(...n.flatMap(s=>this.decoder("set",s)))}this.base.notify(t)}}static async open(e,t,n,s){const a=await e.newStreamer([t,n]);return new na(a,s,t,n)}}const n_="sy_device_set",s_="sy_device_delete";let Oh=class{constructor(e,t,n){h(this,"retriever");h(this,"writer");h(this,"frameClient");this.retriever=e,this.writer=t,this.frameClient=n}async create(e){return(await this.writer.create([e]))[0]}async retrieve(e){const t=await this.retriever.retrieve(Se(e));return Array.isArray(e)?t:t[0]}async search(e){return await this.retriever.search(e)}async page(e,t){return await this.retriever.page(e,t)}async delete(e){await this.writer.delete(e)}async openDeviceTracker(){return await na.open(this.frameClient,n_,s_,a_)}};const a_=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(Vi).map(t=>({variant:r,key:t.key,value:t})),io="/hardware/device/retrieve";u.z.object({search:u.z.string().optional(),limit:u.z.number().optional(),offset:u.z.number().optional(),keys:Bc.array().optional()});const oo=u.z.object({devices:Vi.array()});let Th=class{constructor(e){h(this,"client");this.client=e}async search(e){return(await ue(this.client,io,{keys:[e]},oo)).devices}async page(e,t){return(await ue(this.client,io,{offset:e,limit:t},oo)).devices}async retrieve(e){return(await ue(this.client,io,{keys:e},oo)).devices}};const i_="/hardware/device/create",o_="/hardware/device/delete",c_=u.z.object({devices:Vi.array()}),u_=u.z.object({devices:Vi.array()});u.z.object({keys:Bc.array()});const l_=u.z.object({});let xh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,i_,c_.parse({devices:e}),u_)).devices}async delete(e){await ue(this.client,o_,{keys:e},l_)}};const d_=Object.freeze(Object.defineProperty({__proto__:null,Client:Oh,Retriever:Th,Writer:xh},Symbol.toStringTag,{value:"Module"}));let Sh=class{constructor(e,t,n,s,a){h(this,"retriever");h(this,"writer");h(this,"frameClient");h(this,"taskWriter");h(this,"taskRetriever");this.retriever=e,this.writer=t,this.frameClient=n,this.taskWriter=s,this.taskRetriever=a}async create(e){const t=await this.writer.create([e]);return this.sugar(t)[0]}async search(e){const t=await this.retriever.search(e);return this.sugar(t)}async page(e,t){const n=await this.retriever.page(e,t);return this.sugar(n)}async retrieve(e){const t=await this.retriever.retrieve(Se(e));return Array.isArray(e)?this.sugar(t):this.sugar(t)[0]}sugar(e){return e.map(t=>new Eh(t.key,t.name,this.taskWriter,this.taskRetriever))}};class Eh{constructor(e,t,n,s){h(this,"key");h(this,"name");h(this,"writer");h(this,"retriever");this.key=e,this.name=t,this.writer=n,this.retriever=s}async listTasks(){return await this.retriever.retrieve({rack:this.key})}async retrieveTasks(){return[]}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),(await this.writer.create([e]))[0]}async deleteTask(e){await this.writer.delete([e])}}const h_="/hardware/rack/create",f_="/hardware/rack/delete";u.z.object({racks:r_.array()});const p_=u.z.object({racks:Lc.array()});u.z.object({keys:ra.array()});const m_=u.z.object({});let Nh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,h_,{racks:e},p_)).racks}async delete(e){await ue(this.client,f_,{keys:e},m_)}};const co="/hardware/rack/retrieve";u.z.object({keys:ra.array().optional(),search:u.z.string().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const uo=u.z.object({racks:Lc.array()});let Ah=class{constructor(e){h(this,"client");this.client=e}async page(e,t){return(await ue(this.client,co,{offset:e,limit:t},uo)).racks}async search(e){return(await ue(this.client,co,{search:e},uo)).racks}async retrieve(e){return(await ue(this.client,co,{keys:e},uo)).racks}};const y_=Object.freeze(Object.defineProperty({__proto__:null,Client:Sh,Rack:Eh,Retriever:Ah,Writer:Nh},Symbol.toStringTag,{value:"Module"}));let Ih=class{constructor(e,t){h(this,"retriever");h(this,"writer");this.retriever=e,this.writer=t}async search(e){return await this.retriever.search(e)}async page(e,t){return await this.retriever.page(e,t)}async create(e){return(await this.writer.create([e]))[0]}async retrieve(e){const t={};let n=!0;typeof e=="number"?t.rack=e:typeof e=="string"?(n=!1,t.keys=[e]):t.keys=Se(e);const s=await this.retriever.retrieve(t);return n?s:s[0]}};const Vc=u.z.bigint().or(u.z.number()).transform(r=>r.toString()),Kc=u.z.object({key:Vc,name:u.z.string(),type:u.z.string(),config:u.z.record(u.z.unknown()).or(u.z.string().transform(r=>JSON.parse(r)))}),g_=Kc.omit({key:!0}).extend({key:Vc.transform(r=>r.toString()).optional(),config:u.z.unknown().transform(r=>JSON.stringify(r))});u.z.object({rack:ra.optional(),keys:u.z.string().array().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const lo=u.z.object({tasks:u.z.union([Kc.array(),u.z.null().transform(()=>[])])}),ho="/hardware/task/retrieve";let Ch=class{constructor(e){h(this,"client");this.client=e}async retrieve(e){return(await ue(this.client,ho,e,lo)).tasks}async search(e){return(await ue(this.client,ho,{keys:[e]},lo)).tasks}async page(e,t){return(await ue(this.client,ho,{offset:e,limit:t},lo)).tasks}};const v_="/hardware/task/create",w_="/hardware/task/delete";u.z.object({tasks:g_.array()});const __=u.z.object({tasks:Kc.array()});u.z.object({keys:Vc.array()});const b_=u.z.object({});let jh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,v_,{tasks:e.map(n=>({...n,config:JSON.stringify(n.config)}))},__)).tasks}async delete(e){await ue(this.client,w_,{keys:e},b_)}};const k_=Object.freeze(Object.defineProperty({__proto__:null,Client:Ih,Retriever:Ch,Writer:jh},Symbol.toStringTag,{value:"Module"}));class O_{constructor(e,t){h(this,"key");h(this,"name");this.key=t,this.name=e}get ontologyID(){return new nt({type:"group",key:this.key})}}const T_=u.z.string().uuid(),x_=u.z.object({key:T_,name:u.z.string()}),S_=u.z.object({group:x_});var qt;let E_=(qt=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={parent:e,name:t},[s,a]=await this.client.send(qt.ENDPOINT,n,S_);if(a!=null)throw a;return s.group}async rename(e,t){const n={key:e,name:t},[,s]=await this.client.send(qt.ENDPOINT_RENAME,n,u.z.object({}));if(s!=null)throw s}async delete(e){const t={keys:e},[,n]=await this.client.send(qt.ENDPOINT_DELETE,t,u.z.object({}));if(n!=null)throw n}},h(qt,"ENDPOINT","/ontology/create-group"),h(qt,"ENDPOINT_RENAME","/ontology/rename-group"),h(qt,"ENDPOINT_DELETE","/ontology/delete-group"),qt),N_=class{constructor(e){h(this,"creator");this.creator=new E_(e)}async create(e,t){return this.sugar(await this.creator.create(e,t))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new O_(e.name,e.key)}};const Zh=u.z.union([u.z.literal("label"),u.z.literal("builtin"),u.z.literal("cluster"),u.z.literal("channel"),u.z.literal("node"),u.z.literal("group"),u.z.literal("range"),u.z.literal("range-alias"),u.z.literal("user"),u.z.literal("workspace"),u.z.literal("pid"),u.z.literal("lineplot"),u.z.literal("rack")]),sa=u.z.object({type:Zh,key:u.z.string()}),Rh=u.z.string().transform(r=>{const[e,t]=r.split(":");return{type:e,key:t}}),zh=u.z.union([Rh,sa]),En=class En{constructor(e){h(this,"type");h(this,"key");if(e instanceof En)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}}};h(En,"z",u.z.union([zh,u.z.instanceof(En)]).transform(e=>new En(e)));let nt=En;const A_=new nt({type:"builtin",key:"root"}),Ph=u.z.object({type:u.z.number()}),Uh=u.z.object({type:Zh,fields:u.z.record(Ph)}),Dh=u.z.object({id:nt.z,name:u.z.string(),schema:Uh.optional(),data:u.z.record(u.z.unknown()).optional()}).transform(r=>({key:r.id.toString(),...r})),I_=u.z.object({from:nt.z,type:u.z.string(),to:nt.z}),Vo=r=>{const[e,t,n]=r.split("->");return{from:new nt(e),type:t,to:new nt(n)}};u.z.object({ids:sa.array().optional(),children:u.z.boolean().optional(),parents:u.z.boolean().optional(),includeSchema:u.z.boolean().optional(),includeFieldData:u.z.boolean().optional(),term:u.z.string().optional()});const C_=u.z.object({resources:Dh.array()});var In;let j_=(In=class{constructor(e){h(this,"client");this.client=e}async search(e){return await this.execute({term:e})}async retrieve(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),includeFieldData:n,includeSchema:t})}async retrieveChildren(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),children:!0,includeSchema:t,includeFieldData:n})}async retrieveParents(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),parents:!0,includeSchema:t,includeFieldData:n})}async execute(e){const[t,n]=await this.client.send(In.ENDPOINT,e,C_);if(n!=null)throw n;return t.resources}},h(In,"ENDPOINT","/ontology/retrieve"),In);const fo={ADD_CHILDREN:"/ontology/add-children",REMOVE_CHILDREN:"/ontology/remove-children",MOVE_CHILDREN:"/ontology/move-children"};let Z_=class{constructor(e){h(this,"client");this.client=e}async addChildren(e,...t){const n={id:e,children:t},[,s]=await this.client.send(fo.ADD_CHILDREN,n,u.z.object({}));if(s!=null)throw s}async removeChildren(e,...t){const n={id:e,children:t},[,s]=await this.client.send(fo.REMOVE_CHILDREN,n,u.z.object({}));if(s!=null)throw s}async moveChildren(e,t,...n){const s={from:e,to:t,children:n},[,a]=await this.client.send(fo.MOVE_CHILDREN,s,u.z.object({}));if(a!=null)throw a}};const Ku="sy_ontology_resource_set",Fu="sy_ontology_resource_delete",Wu="sy_ontology_relationship_set",qu="sy_ontology_relationship_delete";class Ki{constructor(e,t){h(this,"resourceObs");h(this,"relationshipObs");h(this,"relationships");h(this,"resources");h(this,"streamer");h(this,"retriever");h(this,"closePromise");this.relationshipObs=new Ga.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Ga.Observer,this.resources=this.resourceObs,this.retriever=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),i=this.parseRelationshipDeletes(e);a.concat(i).length>0&&this.relationshipObs.notify(a.concat(i))}parseRelationshipSets(e){const t=e.get(Wu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"set",key:Vo(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(qu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"delete",key:Vo(n)}))}async parseResourceSets(e){const t=e.get(Ku);if(t.length===0)return[];const n=t[0].toStrings().map(s=>new nt(s));try{return(await this.retriever.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(s){if(s instanceof tr)return console.warn(s),[];throw s}}parseResourceDeletes(e){const t=e.get(Fu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"delete",key:new nt(n)}))}static async open(e,t){const n=await e.newStreamer([Ku,Fu,Wu,qu]);return new Ki(n,t)}}let Mh=class{constructor(e,t){h(this,"groups");h(this,"retriever");h(this,"writer");h(this,"framer");this.retriever=new j_(e),this.writer=new Z_(e),this.groups=new N_(e),this.framer=t}async search(e){return await this.retriever.search(e)}async retrieve(e,t,n){const s=await this.retriever.retrieve(e,t,n);if(Array.isArray(e))return s;if(s.length===0)throw new tr(`No resource found with ID ${e.toString()}`);return s[0]}async page(e,t){return[]}async retrieveChildren(e,t,n){return await this.retriever.retrieveChildren(e,t,n)}async retrieveParents(e,t,n){return await this.retriever.retrieveParents(e,t,n)}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 Ki.open(this.framer,this.retriever)}};const R_=Object.freeze(Object.defineProperty({__proto__:null,ChangeTracker:Ki,Client:Mh,ID:nt,Root:A_,crudeIDZ:zh,idZ:sa,parseRelationship:Vo,relationshipSchemaZ:I_,resourceSchemaZ:Dh,schemaFieldZ:Ph,schemaZ:Uh,stringIDZ:Rh},Symbol.toStringTag,{value:"Module"})),Ln=u.z.string().uuid(),aa=u.z.object({key:Ln,name:u.z.string().min(1),color:u.z.string()}),z_=r=>new nt({type:"label",key:r});u.z.object({keys:Ln.array().optional(),for:sa.optional(),search:u.z.string().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const P_=u.z.object({labels:aa.array().optional().default([])});var Cn;let $h=(Cn=class{constructor(e){h(this,"client");this.client=e}async retrieve(e){const t=Se(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(Cn.ENDPOINT,e,P_);if(n!=null)throw n;return t.labels}},h(Cn,"ENDPOINT","/label/retrieve"),Cn);const Lh=aa.extend({key:Ln.optional()});u.z.object({labels:Lh.array()});const U_=u.z.object({labels:aa.array()});u.z.object({keys:Ln.array()});u.z.object({id:sa,labels:Ln.array()});const po=u.z.object({}),D_="/label/create",M_="/label/delete",$_="/label/set",L_="/label/remove";let Bh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,D_,{labels:Se(e)},U_)).labels}async delete(e){await ue(this.client,M_,{keys:Se(e)},po)}async set(e,t){await ue(this.client,$_,{id:e,labels:t},po)}async remove(e,t){await ue(this.client,L_,{id:e,labels:t},po)}};const B_="sy_label_set",V_="sy_label_delete";let Vh=class{constructor(e,t){h(this,"retriever");h(this,"writer");h(this,"frameClient");this.writer=new Bh(e),this.retriever=new $h(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 na.open(this.frameClient,B_,V_,K_)}};const K_=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(aa).map(t=>({variant:r,key:t.key,value:t})),F_=Object.freeze(Object.defineProperty({__proto__:null,Client:Vh,Retriever:$h,Writer:Bh,keyZ:Ln,labelZ:aa,newLabelPayloadZ:Lh,ontologyID:z_},Symbol.toStringTag,{value:"Module"})),bt=u.z.string().uuid(),ia=u.z.object({key:bt,name:u.z.string().min(1),timeRange:Zt.z}),Kh=ia.extend({key:u.z.string().uuid().optional()}),Fc=r=>{const e=Se(r);if(e.length===0)throw new Error("Range params must not be empty");const t=bt.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},W_=u.z.object({}),q_=u.z.object({range:ia}),Y_=u.z.object({}),J_="/range/set-active",G_="/range/retrieve-active",H_="/range/clear-active";class X_{constructor(e){h(this,"client");this.client=e}async setActive(e){const[,t]=await this.client.send(J_,{range:e},W_);if(t!=null)throw t}async retrieveActive(){const[e,t]=await this.client.send(G_,{},q_);if(t instanceof tr)return null;if(t!=null)throw t;return e.range}async clearActive(e){const[,t]=await this.client.send(H_,{range:e},Y_);if(t!=null)throw t}}const Q_="sy_range_alias_set",eb="sy_range_alias_delete";u.z.object({range:bt,aliases:u.z.string().array()});const tb=u.z.object({aliases:u.z.record(u.z.string(),Js)});u.z.object({range:bt,aliases:u.z.record(Js,u.z.string())});u.z.unknown();u.z.object({range:bt,channels:Js.array()});const rb=u.z.unknown();u.z.object({range:bt});const nb=u.z.object({aliases:u.z.record(u.z.string(),u.z.string())}),Kt=class Kt{constructor(e,t,n){h(this,"frameClient");h(this,"cache",new Map);h(this,"client");h(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",s={};if(n){const i=this.cache.get(e);if(i!=null)return i;t.push(e)}else e.forEach(i=>{const o=this.cache.get(i);o!=null?s[i]=o:t.push(i)});if(t.length===0)return s;const a=await ue(this.client,Kt.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},tb);return Object.entries(a.aliases).forEach(([i,o])=>this.cache.set(i,o)),n?a.aliases[t[0]]:{...s,...a.aliases}}async set(e){await ue(this.client,Kt.SET_ENDPOINT,{range:this.rangeKey,aliases:e},u.z.unknown())}async list(){return(await ue(this.client,Kt.LIST_ENDPOINT,{range:this.rangeKey},nb)).aliases}async delete(e){await ue(this.client,Kt.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},rb)}async openChangeTracker(){return await na.open(this.frameClient,Q_,eb,ib(this.rangeKey))}};h(Kt,"SET_ENDPOINT","/range/alias/set"),h(Kt,"RESOLVE_ENDPOINT","/range/alias/resolve"),h(Kt,"LIST_ENDPOINT","/range/alias/list"),h(Kt,"DELETE_ENDPOINT","/range/alias/delete");let Ko=Kt;const sb=u.z.object({range:bt,channel:Js,alias:u.z.string()}),ab="---",ib=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(ab)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(sb).map(n=>({variant:e,key:n.alias,value:n}));u.z.object({range:bt,keys:u.z.string().array()});const ob=u.z.object({pairs:u.z.record(u.z.string(),u.z.string())});u.z.object({range:bt,pairs:u.z.record(u.z.string(),u.z.string())});u.z.object({range:bt,keys:u.z.string().array()});const Cr=class Cr{constructor(e,t){h(this,"rangeKey");h(this,"client");this.rangeKey=e,this.client=t}async get(e){const[t,n]=await this.client.send(Cr.GET_ENDPOINT,{range:this.rangeKey,keys:Se(e)},ob);if(n!=null)throw n;return Array.isArray(e)?t.pairs:t.pairs[e]}async set(e,t){await ue(this.client,Cr.SET_ENDPOINT,{range:this.rangeKey,pairs:em(e)?e:{[e]:t}},u.z.unknown())}async delete(e){await ue(this.client,Cr.DELETE_ENDPOINT,{range:this.rangeKey,keys:Se(e)},u.z.unknown())}};h(Cr,"GET_ENDPOINT","/range/kv/get"),h(Cr,"SET_ENDPOINT","/range/kv/set"),h(Cr,"DELETE_ENDPOINT","/range/kv/delete");let Fo=Cr;const mo=r=>new nt({type:"range",key:r});class Fh{constructor(e,t=Zt.ZERO,n,s,a,i,o,c){h(this,"key");h(this,"name");h(this,"kv");h(this,"timeRange");h(this,"channels");h(this,"aliaser");h(this,"frameClient");h(this,"labelClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=s,this.kv=a,this.aliaser=i,this.channels=o,this.labelClient=c}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new tr(`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(mo(this.key))}async addLabel(...e){await this.labelClient.label(mo(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(mo(this.key),e)}}let Wh=class{constructor(e,t,n,s,a,i){h(this,"frameClient");h(this,"retriever");h(this,"writer");h(this,"unaryClient");h(this,"channels");h(this,"active");h(this,"labelClient");this.frameClient=e,this.retriever=t,this.writer=n,this.unaryClient=s,this.channels=a,this.active=new X_(s),this.labelClient=i}async create(e){const t=!Array.isArray(e),n=this.sugar(await this.writer.create(Se(e)));return t?n[0]:n}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(Se(e))}async search(e){return this.sugar(await this.retriever.search(e))}async page(e,t){return[]}async retrieve(e){const{single:t,actual:n}=Fc(e),s=this.sugar(await this.retriever.retrieve(e));if(!t)return s;if(s.length===0)throw new tr(`range matching ${n} not found`);if(s.length>1)throw new tr(`multiple ranges matching ${n} found`);return s[0]}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 Fh(t.name,t.timeRange,t.key,this.frameClient,new Fo(t.key,this.unaryClient),new Ko(t.key,this.frameClient,this.unaryClient),this.channels,this.labelClient))}};const cb=u.z.object({ranges:ia.array()});u.z.object({ranges:Kh.array()});u.z.object({keys:bt.array()});const ub=u.z.object({});u.z.object({key:bt,name:u.z.string()});const lb=u.z.object({}),db="/range/create",hb="/range/delete",fb="/range/rename";let qh=class{constructor(e){h(this,"client");this.client=e}async rename(e,t){await ue(this.client,fb,{key:e,name:t},lb)}async create(e){return(await ue(this.client,db,{ranges:e},cb)).ranges}async delete(e){await ue(this.client,hb,{keys:e},ub)}};u.z.object({keys:bt.array().optional(),names:u.z.array(u.z.string()).optional(),term:u.z.string().optional()});const pb=u.z.object({ranges:u.z.array(ia)});let Yh=class{constructor(e){h(this,"ENDPOINT","/range/retrieve");h(this,"client");this.client=e}async retrieve(e){const{normalized:t,variant:n}=Fc(e);return await this.execute({[n]:t})}async search(e){return await this.execute({term:e})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,pb);if(n!=null)throw n;return t.ranges}};const mb=Object.freeze(Object.defineProperty({__proto__:null,Client:Wh,Range:Fh,Retriever:Yh,Writer:qh,analyzeParams:Fc,keyZ:bt,newPayloadZ:Kh,payloadZ:ia},Symbol.toStringTag,{value:"Module"})),yb="/api/v1/";class gb{constructor(e,t=!1){h(this,"url");h(this,"unary");h(this,"stream");h(this,"secure");this.secure=t,this.url=e.child(yb);const n=new Vl.JSONEncoderDecoder;this.unary=new yw(this.url,n,this.secure),this.stream=new xw(this.url,n,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const Jr=u.z.string().uuid(),Wc=u.z.object({name:u.z.string(),key:Jr,layout:ic}),Fi=Wc.omit({layout:!0}).extend({layout:u.z.string().transform(r=>JSON.parse(r))}),qc=u.z.string().uuid(),vb=u.z.object({key:u.z.string(),name:u.z.string(),data:ic}),Yc=u.z.object({key:u.z.string(),name:u.z.string(),data:u.z.string().transform(r=>JSON.parse(r))});u.z.object({keys:u.z.string().array()});const wb=u.z.object({linePlots:Yc.array()});let _b=class{constructor(e){h(this,"ENDPOINT","/workspace/lineplot/retrieve");h(this,"client");this.client=e}async retrieve(e){const t=Se(e);return await this.execute({keys:t})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,wb);if(n!=null)throw n;return t.linePlots}};vb.partial({key:!0});const bb=Yc.partial({key:!0});u.z.object({workspace:Jr,linePlots:bb.array()});const kb=u.z.object({linePlots:Yc.array()});u.z.object({keys:qc.array()});const Ob=u.z.object({});u.z.object({key:qc,name:u.z.string()});const Yu=u.z.object({});u.z.object({key:qc,data:u.z.string()});u.z.object({});const Tb="/workspace/lineplot/create",xb="/workspace/lineplot/delete",Sb="/workspace/lineplot/rename",Eb="/workspace/lineplot/set-data";let Nb=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await ue(this.client,Tb,{workspace:e,linePlots:[n]},kb)).linePlots[0]}async delete(e){const t=Se(e);await ue(this.client,xb,{keys:t},Ob)}async rename(e,t){await ue(this.client,Sb,{key:e,name:t},Yu)}async setData(e,t){await ue(this.client,Eb,{key:e,data:JSON.stringify(t)},Yu)}},Ab=class{constructor(e){h(this,"writer");h(this,"retriever");this.writer=new Nb(e),this.retriever=new _b(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 Wi=u.z.string().uuid(),Ib=u.z.object({key:u.z.string(),name:u.z.string(),data:ic,snapshot:u.z.boolean()}),qi=u.z.object({key:u.z.string(),name:u.z.string(),snapshot:u.z.boolean(),data:u.z.string().transform(r=>JSON.parse(r))});u.z.object({keys:u.z.string().array()});const Cb=u.z.object({pids:qi.array()});let jb=class{constructor(e){h(this,"ENDPOINT","/workspace/pid/retrieve");h(this,"client");this.client=e}async retrieve(e){const t=Se(e);return await this.execute({keys:t})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,Cb);if(n!=null)throw n;return t.pids}};Ib.partial({key:!0});const Zb=qi.partial({key:!0,snapshot:!0});u.z.object({workspace:Jr,pids:Zb.array()});const Rb=u.z.object({pids:qi.array()});u.z.object({keys:Wi.array()});const zb=u.z.object({});u.z.object({key:Wi,name:u.z.string()});const Ju=u.z.object({});u.z.object({key:Wi,data:u.z.string()});u.z.object({});u.z.object({key:Wi,name:u.z.string(),snapshot:u.z.boolean()});const Pb=u.z.object({pid:qi}),Ub="/workspace/pid/create",Db="/workspace/pid/delete",Mb="/workspace/pid/rename",$b="/workspace/pid/set-data",Lb="/workspace/pid/copy";let Bb=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await ue(this.client,Ub,{workspace:e,pids:[n]},Rb)).pids[0]}async copy(e,t,n){return(await ue(this.client,Lb,{key:e,name:t,snapshot:n},Pb)).pid}async delete(e){const t=Se(e);await ue(this.client,Db,{keys:t},zb)}async rename(e,t){await ue(this.client,Mb,{key:e,name:t},Ju)}async setData(e,t){await ue(this.client,$b,{key:e,data:JSON.stringify(t)},Ju)}},Vb=class{constructor(e){h(this,"writer");h(this,"retriever");this.writer=new Bb(e),this.retriever=new jb(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)}};u.z.object({keys:Jr.array().optional(),search:u.z.string().optional(),author:u.z.string().uuid().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const Kb=u.z.object({workspaces:Fi.array()}),Oi=class Oi{constructor(e){h(this,"client");this.client=e}async retrieve(e){const t=Se(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){const[t,n]=await this.client.send(Oi.ENDPOINT,e,Kb);if(n!=null)throw n;return t.workspaces}};h(Oi,"ENDPOINT","/workspace/retrieve");let Wo=Oi;Wc.partial({key:!0});const Fb=Fi.partial({key:!0});u.z.object({workspaces:Fb.partial({key:!0}).array()});const Wb=u.z.object({workspaces:Fi.array()});u.z.object({keys:Jr.array()});const qb=u.z.object({});u.z.object({key:Jr,name:u.z.string()});const Yb=u.z.object({});u.z.object({key:Jr,layout:u.z.string()});const Jb=u.z.object({}),Gb="/workspace/create",Hb="/workspace/delete",Xb="/workspace/rename",Qb="/workspace/set-layout";class e0{constructor(e){h(this,"client");this.client=e}async create(e){const t=Se(e).map(s=>({...s,layout:JSON.stringify(s.layout)}));return(await ue(this.client,Gb,{workspaces:t},Wb)).workspaces}async delete(e){await ue(this.client,Hb,{keys:Se(e)},qb)}async rename(e,t){await ue(this.client,Xb,{key:e,name:t},Yb)}async setLayout(e,t){await ue(this.client,Qb,{key:e,layout:JSON.stringify(t)},Jb)}}class Jh{constructor(e){h(this,"pid");h(this,"linePlot");h(this,"retriever");h(this,"writer");this.pid=new Vb(e),this.linePlot=new Ab(e),this.retriever=new Wo(e),this.writer=new e0(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 t0=Object.freeze(Object.defineProperty({__proto__:null,Client:Jh,keyZ:Jr,workspaceRemoteZ:Fi,workspaceZ:Wc},Symbol.toStringTag,{value:"Module"})),Gh=u.z.object({host:u.z.string().min(1),port:u.z.number().or(u.z.string()),username:u.z.string().optional(),password:u.z.string().optional(),connectivityPollFrequency:Pe.z.default(Pe.seconds(30)),secure:u.z.boolean().optional().default(!1),name:u.z.string().optional()});class Hh{constructor(e){h(this,"transport");h(this,"createdAt");h(this,"telem");h(this,"ranges");h(this,"channels");h(this,"auth");h(this,"connectivity");h(this,"ontology");h(this,"props");h(this,"workspaces");h(this,"labels");h(this,"hardware");this.createdAt=Ue.now(),this.props=Gh.parse(e);const{host:t,port:n,username:s,password:a,connectivityPollFrequency:i,secure:o}=this.props;this.transport=new gb(new im({host:t,port:Number(n)}),o),this.transport.use(Cw),s!=null&&a!=null&&(this.auth=new Dw(this.transport.unary,{username:s,password:a}),this.transport.use(this.auth.middleware()));const c=new fc(new ms(this.transport.unary)),l=new Ha(this.transport.unary);this.telem=new bh(this.transport.stream,c),this.channels=new fh(this.telem,c,this.transport.unary,l),this.connectivity=new Fs(this.transport.unary,i,e.name),this.ontology=new Mh(this.transport.unary,this.telem);const w=new Yh(this.transport.unary),T=new qh(this.transport.unary);this.labels=new Vh(this.transport.unary,this.telem),this.ranges=new Wh(this.telem,w,T,this.transport.unary,c,this.labels),this.workspaces=new Jh(this.transport.unary);const X=new Oh(new Th(this.transport.unary),new xh(this.transport.unary),this.telem),Q=new Ch(this.transport.unary),Ze=new jh(this.transport.unary),ee=new Ih(Q,Ze),rr=new Sh(new Ah(this.transport.unary),new Nh(this.transport.unary),this.telem,Ze,Q);this.hardware=new kh(ee,rr,X)}close(){this.connectivity.stopChecking()}}h(Hh,"connectivity",Fs);const r0=Object.freeze(Object.defineProperty({__proto__:null,Authority:Wr,StateTracker:Mc,filterTransfersByChannelKey:Jw,stateZ:Yw,subjectZ:Dc,transferString:Gw},Symbol.toStringTag,{value:"Module"}));exports.AuthError=Zc;exports.Authority=Wr;exports.Channel=Rc;exports.ContiguityError=Nw;exports.DataType=et;exports.Density=st;exports.Frame=pt;exports.GeneralError=lh;exports.ParseError=dh;exports.QueryError=tr;exports.Rate=Ai;exports.RouteError=hh;exports.Series=Ct;exports.Synnax=Hh;exports.TimeRange=Zt;exports.TimeSpan=Pe;exports.TimeStamp=Ue;exports.UnexpectedError=yn;exports.ValidationError=zt;exports.channel=Zw;exports.connection=Lw;exports.control=r0;exports.device=d_;exports.framer=e_;exports.hardware=t_;exports.label=F_;exports.ontology=R_;exports.rack=y_;exports.ranger=mb;exports.synnaxPropsZ=Gh;exports.task=k_;exports.workspace=t0;
|
|
20
|
+
`);if(!(t instanceof Vs))throw t}closeSend(){this.stream.closeSend()}send(e){const t=this.stream.send(e);if(t!=null)throw t}}const Bo=new Pe(-1);var Uc=(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))(Uc||{}),wh=(r=>(r[r.None=0]="None",r[r.Ack=1]="Ack",r[r.Data=2]="Data",r))(wh||{});const Bw=u.z.object({command:u.z.nativeEnum(Uc),span:Pe.z.optional(),bounds:Zt.z.optional(),stamp:Ue.z.optional(),keys:u.z.number().array().optional()}),Vw=u.z.object({variant:u.z.nativeEnum(wh),ack:u.z.boolean(),command:u.z.nativeEnum(Uc),error:ta.optional().nullable(),frame:$i.optional()}),ts=class ts{constructor(e,t){h(this,"stream");h(this,"adapter");h(this,"value");this.stream=new Pc("Iterator",e),this.value=new pt,this.adapter=t}static async _open(e,t,n,s){const a=await Li.open(n,t),i=await s.stream(ts.ENDPOINT,Bw,Vw),o=new ts(i,a);return await o.execute({command:0,keys:a.keys,bounds:e}),o}async next(e=Bo){return await this.execute({command:1,span:new Pe(e)})}async prev(e=Bo){return await this.execute({command:2,span:new Pe(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 Ue(e)})}async seekGE(e){return await this.execute({command:6,stamp:new Ue(e)})}async valid(){return await this.execute({command:7})}async close(){await this.stream.closeAndAck()}[Symbol.asyncIterator](){return new Kw(this)}async execute(e){for(this.stream.send(e),this.value=new pt;;){const t=await this.stream.receive();if(t.variant===1)return t.ack;this.value.push(this.adapter.adapt(new pt(t.frame)))}}};h(ts,"ENDPOINT","/frame/iterate");let _i=ts;class Kw{constructor(e){h(this,"iter");h(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 Fw=u.z.object({start:Ue.z.optional(),keys:u.z.number().array()}),Ww=u.z.object({frame:$i,error:ta.optional().nullable()}),qw="/frame/stream";class Bi{constructor(e,t){h(this,"stream");h(this,"adapter");this.stream=new Pc("Streamer",e),this.adapter=t}get keys(){return this.adapter.keys}static async _open(e,t,n,s){const a=await Li.open(n,t),i=await s.stream(qw,Fw,Ww),o=new Bi(i,a);return i.send({start:new Ue(e),keys:a.keys}),o}async next(){try{return{done:!1,value:await this.read()}}catch{return{done:!0,value:void 0}}}async read(){return this.adapter.adapt(new pt((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}}const Dc=u.z.object({name:u.z.string(),key:u.z.string()}),Yw=u.z.object({subject:Dc,resource:u.z.number(),authority:Wr.z}),Jw=(...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}),Gw=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 Mc{constructor(e){h(this,"states");h(this,"streamer");h(this,"ecd");h(this,"observer");h(this,"closePromise");this.states=new Map,this.ecd=new Vl.JSONEncoderDecoder,this.observer=new Ga.Observer,this.streamer=e,this.closePromise=this.stream()}subjects(){const e=new Map;return this.states.forEach(t=>e.set(t.subject.key,t.subject)),Array.from(e.values())}onChange(e){return this.observer.onChange(e)}async close(){this.streamer.close(),await this.closePromise}static async open(e){const t=await e.newStreamer("sy_node_1_control");return new Mc(t)}async stream(){for await(const e of this.streamer){const t=this.ecd.decode(e.series[0].buffer);this.merge(t),this.observer.notify(t.transfers)}}merge(e){e.transfers.forEach(t=>{t.from==null&&t.to==null&&console.warn("Invalid transfer: ",t),t.to==null?this.states.delete(t.from.resource):this.states.set(t.to.resource,t.to)})}}var $c=(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[r.SetMode=5]="SetMode",r))($c||{}),Ws=(r=>(r[r.PersistStream=1]="PersistStream",r[r.PersistOnly=2]="PersistOnly",r[r.StreamOnly=3]="StreamOnly",r))(Ws||{});const Hw=u.z.object({start:Ue.z.optional(),controlSubject:Dc.optional(),keys:u.z.number().array().optional(),authorities:Wr.z.array().optional(),mode:u.z.nativeEnum(Ws).optional()}),Xw=u.z.object({command:u.z.nativeEnum($c),config:Hw.optional(),frame:$i.optional()}),Qw=u.z.object({ack:u.z.boolean(),command:u.z.nativeEnum($c),error:ta.optional().nullable()});var on;let _h=(on=class{constructor(e,t){h(this,"stream");h(this,"adapter");this.stream=new Pc("Writer",e),this.adapter=t}static async _open(e,t,{channels:n,authorities:s=Wr.Absolute,controlSubject:a,start:i,mode:o}){const c=await zc.open(e,n),l=await t.stream(on.ENDPOINT,Xw,Qw),w=new on(l,c);return await w.execute({command:0,config:{start:new Ue(i),keys:c.keys,controlSubject:a,authorities:Se(s),mode:o}}),w}async write(e,t){return["string","number"].includes(typeof e)&&(e=new pt(e,new Ct({data:t}))),e=this.adapter.adapt(new pt(e)),this.stream.send({command:1,frame:e.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 setMode(e){return(await this.execute({command:5,config:{mode: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?jc(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()}},h(on,"ENDPOINT","/frame/write"),on),bh=class{constructor(e,t){h(this,"stream");h(this,"retriever");this.stream=e,this.retriever=t}async newIterator(e,t){return await _i._open(e,t,this.retriever,this.stream)}async newWriter({start:e,channels:t,controlSubject:n,authorities:s=Wr.Absolute,mode:a=Ws.PersistStream}){return await _h._open(this.retriever,this.stream,{start:e??Ue.now(),controlSubject:n,channels:t,authorities:s,mode:a})}async newStreamer(e,t=Ue.now()){return await Bi._open(t,e,this.retriever,this.stream)}async write(e,t,n){const s=await this.newWriter({start:t,channels:e,mode:Ws.PersistOnly});try{if(await s.write(e,n),!await s.commit())throw await s.error()}finally{await s.close()}}async read(e,t){const{single:n}=qr(t),s=await this.readFrame(e,t);return n?s.series[0]:s}async readFrame(e,t){const n=await this.newIterator(e,t),s=new pt;try{for await(const a of n)s.push(a)}finally{await n.close()}return s}};const e_=Object.freeze(Object.defineProperty({__proto__:null,AUTO_SPAN:Bo,Client:bh,Frame:pt,Iterator:_i,Streamer:Bi,Writer:_h,WriterMode:Ws,frameZ:$i,series:yh,seriesFromPayload:gh,seriesToPayload:vh},Symbol.toStringTag,{value:"Module"}));let kh=class{constructor(e,t,n){h(this,"tasks");h(this,"racks");h(this,"devices");this.tasks=e,this.racks=t,this.devices=n}};const t_=Object.freeze(Object.defineProperty({__proto__:null,Client:kh},Symbol.toStringTag,{value:"Module"})),ra=u.z.number(),Lc=u.z.object({key:ra,name:u.z.string()}),r_=Lc.partial({key:!0}),Bc=u.z.string(),Vi=u.z.object({key:Bc,rack:ra,name:u.z.string(),make:u.z.string(),model:u.z.string(),location:u.z.string(),properties:u.z.string()});class na{constructor(e,t,n,s){h(this,"streamer");h(this,"decoder");h(this,"base");h(this,"closePromise");h(this,"deleteChannel");h(this,"setChannel");this.streamer=e,this.decoder=t,this.base=new Ga.Observer,this.closePromise=this.stream(),this.deleteChannel=s,this.setChannel=n}onChange(e){return this.base.onChange(e)}async close(){return this.streamer.close(),await this.closePromise}async stream(){for await(const e of this.streamer){const t=[];if(this.deleteChannel!=null){const n=e.get(this.deleteChannel);t.push(...n.flatMap(s=>this.decoder("delete",s)))}if(this.setChannel!=null){const n=e.get(this.setChannel);t.push(...n.flatMap(s=>this.decoder("set",s)))}this.base.notify(t)}}static async open(e,t,n,s){const a=await e.newStreamer([t,n]);return new na(a,s,t,n)}}const n_="sy_device_set",s_="sy_device_delete";let Oh=class{constructor(e,t,n){h(this,"retriever");h(this,"writer");h(this,"frameClient");this.retriever=e,this.writer=t,this.frameClient=n}async create(e){return(await this.writer.create([e]))[0]}async retrieve(e){const t=await this.retriever.retrieve(Se(e));return Array.isArray(e)?t:t[0]}async search(e){return await this.retriever.search(e)}async page(e,t){return await this.retriever.page(e,t)}async delete(e){await this.writer.delete(e)}async openDeviceTracker(){return await na.open(this.frameClient,n_,s_,a_)}};const a_=(r,e)=>r==="delete"?e.toStrings().map(t=>({variant:r,key:t,value:void 0})):e.parseJSON(Vi).map(t=>({variant:r,key:t.key,value:t})),io="/hardware/device/retrieve";u.z.object({search:u.z.string().optional(),limit:u.z.number().optional(),offset:u.z.number().optional(),keys:Bc.array().optional()});const oo=u.z.object({devices:Vi.array()});let Th=class{constructor(e){h(this,"client");this.client=e}async search(e){return(await ue(this.client,io,{keys:[e]},oo)).devices}async page(e,t){return(await ue(this.client,io,{offset:e,limit:t},oo)).devices}async retrieve(e){return(await ue(this.client,io,{keys:e},oo)).devices}};const i_="/hardware/device/create",o_="/hardware/device/delete",c_=u.z.object({devices:Vi.array()}),u_=u.z.object({devices:Vi.array()});u.z.object({keys:Bc.array()});const l_=u.z.object({});let xh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,i_,c_.parse({devices:e}),u_)).devices}async delete(e){await ue(this.client,o_,{keys:e},l_)}};const d_=Object.freeze(Object.defineProperty({__proto__:null,Client:Oh,Retriever:Th,Writer:xh},Symbol.toStringTag,{value:"Module"}));let Sh=class{constructor(e,t,n,s,a){h(this,"retriever");h(this,"writer");h(this,"frameClient");h(this,"taskWriter");h(this,"taskRetriever");this.retriever=e,this.writer=t,this.frameClient=n,this.taskWriter=s,this.taskRetriever=a}async create(e){const t=await this.writer.create([e]);return this.sugar(t)[0]}async search(e){const t=await this.retriever.search(e);return this.sugar(t)}async page(e,t){const n=await this.retriever.page(e,t);return this.sugar(n)}async retrieve(e){const t=await this.retriever.retrieve(Se(e));return Array.isArray(e)?this.sugar(t):this.sugar(t)[0]}sugar(e){return e.map(t=>new Eh(t.key,t.name,this.taskWriter,this.taskRetriever))}};class Eh{constructor(e,t,n,s){h(this,"key");h(this,"name");h(this,"writer");h(this,"retriever");this.key=e,this.name=t,this.writer=n,this.retriever=s}async listTasks(){return await this.retriever.retrieve({rack:this.key})}async retrieveTasks(){return[]}async createTask(e){return e.key=((BigInt(this.key)<<32n)+(BigInt(e.key??0)&0xffffffffn)).toString(),(await this.writer.create([e]))[0]}async deleteTask(e){await this.writer.delete([e])}}const h_="/hardware/rack/create",f_="/hardware/rack/delete";u.z.object({racks:r_.array()});const p_=u.z.object({racks:Lc.array()});u.z.object({keys:ra.array()});const m_=u.z.object({});let Nh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,h_,{racks:e},p_)).racks}async delete(e){await ue(this.client,f_,{keys:e},m_)}};const co="/hardware/rack/retrieve";u.z.object({keys:ra.array().optional(),search:u.z.string().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const uo=u.z.object({racks:Lc.array()});let Ah=class{constructor(e){h(this,"client");this.client=e}async page(e,t){return(await ue(this.client,co,{offset:e,limit:t},uo)).racks}async search(e){return(await ue(this.client,co,{search:e},uo)).racks}async retrieve(e){return(await ue(this.client,co,{keys:e},uo)).racks}};const y_=Object.freeze(Object.defineProperty({__proto__:null,Client:Sh,Rack:Eh,Retriever:Ah,Writer:Nh},Symbol.toStringTag,{value:"Module"}));let Ih=class{constructor(e,t){h(this,"retriever");h(this,"writer");this.retriever=e,this.writer=t}async search(e){return await this.retriever.search(e)}async page(e,t){return await this.retriever.page(e,t)}async create(e){return(await this.writer.create([e]))[0]}async retrieve(e){const t={};let n=!0;typeof e=="number"?t.rack=e:typeof e=="string"?(n=!1,t.keys=[e]):t.keys=Se(e);const s=await this.retriever.retrieve(t);return n?s:s[0]}};const Vc=u.z.bigint().or(u.z.number()).transform(r=>r.toString()),Kc=u.z.object({key:Vc,name:u.z.string(),type:u.z.string(),config:u.z.record(u.z.unknown()).or(u.z.string().transform(r=>JSON.parse(r)))}),g_=Kc.omit({key:!0}).extend({key:Vc.transform(r=>r.toString()).optional(),config:u.z.unknown().transform(r=>JSON.stringify(r))});u.z.object({rack:ra.optional(),keys:u.z.string().array().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const lo=u.z.object({tasks:u.z.union([Kc.array(),u.z.null().transform(()=>[])])}),ho="/hardware/task/retrieve";let Ch=class{constructor(e){h(this,"client");this.client=e}async retrieve(e){return(await ue(this.client,ho,e,lo)).tasks}async search(e){return(await ue(this.client,ho,{keys:[e]},lo)).tasks}async page(e,t){return(await ue(this.client,ho,{offset:e,limit:t},lo)).tasks}};const v_="/hardware/task/create",w_="/hardware/task/delete";u.z.object({tasks:g_.array()});const __=u.z.object({tasks:Kc.array()});u.z.object({keys:Vc.array()});const b_=u.z.object({});let jh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,v_,{tasks:e.map(n=>({...n,config:JSON.stringify(n.config)}))},__)).tasks}async delete(e){await ue(this.client,w_,{keys:e},b_)}};const k_=Object.freeze(Object.defineProperty({__proto__:null,Client:Ih,Retriever:Ch,Writer:jh},Symbol.toStringTag,{value:"Module"}));class O_{constructor(e,t){h(this,"key");h(this,"name");this.key=t,this.name=e}get ontologyID(){return new nt({type:"group",key:this.key})}}const T_=u.z.string().uuid(),x_=u.z.object({key:T_,name:u.z.string()}),S_=u.z.object({group:x_});var qt;let E_=(qt=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={parent:e,name:t},[s,a]=await this.client.send(qt.ENDPOINT,n,S_);if(a!=null)throw a;return s.group}async rename(e,t){const n={key:e,name:t},[,s]=await this.client.send(qt.ENDPOINT_RENAME,n,u.z.object({}));if(s!=null)throw s}async delete(e){const t={keys:e},[,n]=await this.client.send(qt.ENDPOINT_DELETE,t,u.z.object({}));if(n!=null)throw n}},h(qt,"ENDPOINT","/ontology/create-group"),h(qt,"ENDPOINT_RENAME","/ontology/rename-group"),h(qt,"ENDPOINT_DELETE","/ontology/delete-group"),qt),N_=class{constructor(e){h(this,"creator");this.creator=new E_(e)}async create(e,t){return this.sugar(await this.creator.create(e,t))}async rename(e,t){return await this.creator.rename(e,t)}async delete(...e){return await this.creator.delete(e)}sugar(e){return new O_(e.name,e.key)}};const Zh=u.z.union([u.z.literal("label"),u.z.literal("builtin"),u.z.literal("cluster"),u.z.literal("channel"),u.z.literal("node"),u.z.literal("group"),u.z.literal("range"),u.z.literal("range-alias"),u.z.literal("user"),u.z.literal("workspace"),u.z.literal("pid"),u.z.literal("lineplot"),u.z.literal("rack")]),sa=u.z.object({type:Zh,key:u.z.string()}),Rh=u.z.string().transform(r=>{const[e,t]=r.split(":");return{type:e,key:t}}),zh=u.z.union([Rh,sa]),En=class En{constructor(e){h(this,"type");h(this,"key");if(e instanceof En)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}}};h(En,"z",u.z.union([zh,u.z.instanceof(En)]).transform(e=>new En(e)));let nt=En;const A_=new nt({type:"builtin",key:"root"}),Ph=u.z.object({type:u.z.number()}),Uh=u.z.object({type:Zh,fields:u.z.record(Ph)}),Dh=u.z.object({id:nt.z,name:u.z.string(),schema:Uh.optional(),data:u.z.record(u.z.unknown()).optional()}).transform(r=>({key:r.id.toString(),...r})),I_=u.z.object({from:nt.z,type:u.z.string(),to:nt.z}),Vo=r=>{const[e,t,n]=r.split("->");return{from:new nt(e),type:t,to:new nt(n)}};u.z.object({ids:sa.array().optional(),children:u.z.boolean().optional(),parents:u.z.boolean().optional(),includeSchema:u.z.boolean().optional(),includeFieldData:u.z.boolean().optional(),term:u.z.string().optional()});const C_=u.z.object({resources:Dh.array()});var In;let j_=(In=class{constructor(e){h(this,"client");this.client=e}async search(e){return await this.execute({term:e})}async retrieve(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),includeFieldData:n,includeSchema:t})}async retrieveChildren(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),children:!0,includeSchema:t,includeFieldData:n})}async retrieveParents(e,t=!0,n=!0){return await this.execute({ids:Se(e).map(s=>new nt(s).payload),parents:!0,includeSchema:t,includeFieldData:n})}async execute(e){const[t,n]=await this.client.send(In.ENDPOINT,e,C_);if(n!=null)throw n;return t.resources}},h(In,"ENDPOINT","/ontology/retrieve"),In);const fo={ADD_CHILDREN:"/ontology/add-children",REMOVE_CHILDREN:"/ontology/remove-children",MOVE_CHILDREN:"/ontology/move-children"};let Z_=class{constructor(e){h(this,"client");this.client=e}async addChildren(e,...t){const n={id:e,children:t},[,s]=await this.client.send(fo.ADD_CHILDREN,n,u.z.object({}));if(s!=null)throw s}async removeChildren(e,...t){const n={id:e,children:t},[,s]=await this.client.send(fo.REMOVE_CHILDREN,n,u.z.object({}));if(s!=null)throw s}async moveChildren(e,t,...n){const s={from:e,to:t,children:n},[,a]=await this.client.send(fo.MOVE_CHILDREN,s,u.z.object({}));if(a!=null)throw a}};const Ku="sy_ontology_resource_set",Fu="sy_ontology_resource_delete",Wu="sy_ontology_relationship_set",qu="sy_ontology_relationship_delete";class Ki{constructor(e,t){h(this,"resourceObs");h(this,"relationshipObs");h(this,"relationships");h(this,"resources");h(this,"streamer");h(this,"retriever");h(this,"closePromise");this.relationshipObs=new Ga.Observer,this.relationships=this.relationshipObs,this.resourceObs=new Ga.Observer,this.resources=this.resourceObs,this.retriever=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),i=this.parseRelationshipDeletes(e);a.concat(i).length>0&&this.relationshipObs.notify(a.concat(i))}parseRelationshipSets(e){const t=e.get(Wu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"set",key:Vo(n),value:void 0}))}parseRelationshipDeletes(e){const t=e.get(qu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"delete",key:Vo(n)}))}async parseResourceSets(e){const t=e.get(Ku);if(t.length===0)return[];const n=t[0].toStrings().map(s=>new nt(s));try{return(await this.retriever.retrieve(n)).map(a=>({variant:"set",key:a.id,value:a}))}catch(s){if(s instanceof tr)return console.warn(s),[];throw s}}parseResourceDeletes(e){const t=e.get(Fu);return t.length===0?[]:t[0].toStrings().map(n=>({variant:"delete",key:new nt(n)}))}static async open(e,t){const n=await e.newStreamer([Ku,Fu,Wu,qu]);return new Ki(n,t)}}let Mh=class{constructor(e,t){h(this,"groups");h(this,"retriever");h(this,"writer");h(this,"framer");this.retriever=new j_(e),this.writer=new Z_(e),this.groups=new N_(e),this.framer=t}async search(e){return await this.retriever.search(e)}async retrieve(e,t,n){const s=await this.retriever.retrieve(e,t,n);if(Array.isArray(e))return s;if(s.length===0)throw new tr(`No resource found with ID ${e.toString()}`);return s[0]}async page(e,t){return[]}async retrieveChildren(e,t,n){return await this.retriever.retrieveChildren(e,t,n)}async retrieveParents(e,t,n){return await this.retriever.retrieveParents(e,t,n)}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 Ki.open(this.framer,this.retriever)}};const R_=Object.freeze(Object.defineProperty({__proto__:null,ChangeTracker:Ki,Client:Mh,ID:nt,Root:A_,crudeIDZ:zh,idZ:sa,parseRelationship:Vo,relationshipSchemaZ:I_,resourceSchemaZ:Dh,schemaFieldZ:Ph,schemaZ:Uh,stringIDZ:Rh},Symbol.toStringTag,{value:"Module"})),Ln=u.z.string().uuid(),aa=u.z.object({key:Ln,name:u.z.string().min(1),color:u.z.string()}),z_=r=>new nt({type:"label",key:r});u.z.object({keys:Ln.array().optional(),for:sa.optional(),search:u.z.string().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const P_=u.z.object({labels:aa.array().optional().default([])});var Cn;let $h=(Cn=class{constructor(e){h(this,"client");this.client=e}async retrieve(e){const t=Se(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(Cn.ENDPOINT,e,P_);if(n!=null)throw n;return t.labels}},h(Cn,"ENDPOINT","/label/retrieve"),Cn);const Lh=aa.extend({key:Ln.optional()});u.z.object({labels:Lh.array()});const U_=u.z.object({labels:aa.array()});u.z.object({keys:Ln.array()});u.z.object({id:sa,labels:Ln.array()});const po=u.z.object({}),D_="/label/create",M_="/label/delete",$_="/label/set",L_="/label/remove";let Bh=class{constructor(e){h(this,"client");this.client=e}async create(e){return(await ue(this.client,D_,{labels:Se(e)},U_)).labels}async delete(e){await ue(this.client,M_,{keys:Se(e)},po)}async set(e,t){await ue(this.client,$_,{id:e,labels:t},po)}async remove(e,t){await ue(this.client,L_,{id:e,labels:t},po)}};const B_="sy_label_set",V_="sy_label_delete";let Vh=class{constructor(e,t){h(this,"retriever");h(this,"writer");h(this,"frameClient");this.writer=new Bh(e),this.retriever=new $h(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 na.open(this.frameClient,B_,V_,K_)}};const K_=(r,e)=>r==="delete"?e.toUUIDs().map(t=>({variant:r,key:t})):e.parseJSON(aa).map(t=>({variant:r,key:t.key,value:t})),F_=Object.freeze(Object.defineProperty({__proto__:null,Client:Vh,Retriever:$h,Writer:Bh,keyZ:Ln,labelZ:aa,newLabelPayloadZ:Lh,ontologyID:z_},Symbol.toStringTag,{value:"Module"})),bt=u.z.string().uuid(),ia=u.z.object({key:bt,name:u.z.string().min(1),timeRange:Zt.z}),Kh=ia.extend({key:u.z.string().uuid().optional()}),Fc=r=>{const e=Se(r);if(e.length===0)throw new Error("Range params must not be empty");const t=bt.safeParse(e[0]).success;return{single:!Array.isArray(r),variant:t?"keys":"names",normalized:e,actual:r}},W_=u.z.object({}),q_=u.z.object({range:ia}),Y_=u.z.object({}),J_="/range/set-active",G_="/range/retrieve-active",H_="/range/clear-active";class X_{constructor(e){h(this,"client");this.client=e}async setActive(e){const[,t]=await this.client.send(J_,{range:e},W_);if(t!=null)throw t}async retrieveActive(){const[e,t]=await this.client.send(G_,{},q_);if(t instanceof tr)return null;if(t!=null)throw t;return e.range}async clearActive(e){const[,t]=await this.client.send(H_,{range:e},Y_);if(t!=null)throw t}}const Q_="sy_range_alias_set",eb="sy_range_alias_delete";u.z.object({range:bt,aliases:u.z.string().array()});const tb=u.z.object({aliases:u.z.record(u.z.string(),Js)});u.z.object({range:bt,aliases:u.z.record(Js,u.z.string())});u.z.unknown();u.z.object({range:bt,channels:Js.array()});const rb=u.z.unknown();u.z.object({range:bt});const nb=u.z.object({aliases:u.z.record(u.z.string(),u.z.string())}),Kt=class Kt{constructor(e,t,n){h(this,"frameClient");h(this,"cache",new Map);h(this,"client");h(this,"rangeKey");this.rangeKey=e,this.cache=new Map,this.client=n,this.frameClient=t}async resolve(e){const t=[],n=typeof e=="string",s={};if(n){const i=this.cache.get(e);if(i!=null)return i;t.push(e)}else e.forEach(i=>{const o=this.cache.get(i);o!=null?s[i]=o:t.push(i)});if(t.length===0)return s;const a=await ue(this.client,Kt.RESOLVE_ENDPOINT,{range:this.rangeKey,aliases:t},tb);return Object.entries(a.aliases).forEach(([i,o])=>this.cache.set(i,o)),n?a.aliases[t[0]]:{...s,...a.aliases}}async set(e){await ue(this.client,Kt.SET_ENDPOINT,{range:this.rangeKey,aliases:e},u.z.unknown())}async list(){return(await ue(this.client,Kt.LIST_ENDPOINT,{range:this.rangeKey},nb)).aliases}async delete(e){await ue(this.client,Kt.DELETE_ENDPOINT,{range:this.rangeKey,channels:e},rb)}async openChangeTracker(){return await na.open(this.frameClient,Q_,eb,ib(this.rangeKey))}};h(Kt,"SET_ENDPOINT","/range/alias/set"),h(Kt,"RESOLVE_ENDPOINT","/range/alias/resolve"),h(Kt,"LIST_ENDPOINT","/range/alias/list"),h(Kt,"DELETE_ENDPOINT","/range/alias/delete");let Ko=Kt;const sb=u.z.object({range:bt,channel:Js,alias:u.z.string()}),ab="---",ib=r=>(e,t)=>e==="delete"?t.toStrings().filter(n=>n.split(ab)[0]===r).map(n=>({variant:e,key:n,value:void 0})):t.parseJSON(sb).map(n=>({variant:e,key:n.alias,value:n}));u.z.object({range:bt,keys:u.z.string().array()});const ob=u.z.object({pairs:u.z.record(u.z.string(),u.z.string())});u.z.object({range:bt,pairs:u.z.record(u.z.string(),u.z.string())});u.z.object({range:bt,keys:u.z.string().array()});const Cr=class Cr{constructor(e,t){h(this,"rangeKey");h(this,"client");this.rangeKey=e,this.client=t}async get(e){const[t,n]=await this.client.send(Cr.GET_ENDPOINT,{range:this.rangeKey,keys:Se(e)},ob);if(n!=null)throw n;return Array.isArray(e)?t.pairs:t.pairs[e]}async set(e,t){await ue(this.client,Cr.SET_ENDPOINT,{range:this.rangeKey,pairs:em(e)?e:{[e]:t}},u.z.unknown())}async delete(e){await ue(this.client,Cr.DELETE_ENDPOINT,{range:this.rangeKey,keys:Se(e)},u.z.unknown())}};h(Cr,"GET_ENDPOINT","/range/kv/get"),h(Cr,"SET_ENDPOINT","/range/kv/set"),h(Cr,"DELETE_ENDPOINT","/range/kv/delete");let Fo=Cr;const mo=r=>new nt({type:"range",key:r});class Fh{constructor(e,t=Zt.ZERO,n,s,a,i,o,c){h(this,"key");h(this,"name");h(this,"kv");h(this,"timeRange");h(this,"channels");h(this,"aliaser");h(this,"frameClient");h(this,"labelClient");this.key=n,this.name=e,this.timeRange=t,this.frameClient=s,this.kv=a,this.aliaser=i,this.channels=o,this.labelClient=c}async setAlias(e,t){const n=await this.channels.retrieve(e);if(n.length===0)throw new tr(`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(mo(this.key))}async addLabel(...e){await this.labelClient.label(mo(this.key),e)}async removeLabel(...e){await this.labelClient.removeLabels(mo(this.key),e)}}let Wh=class{constructor(e,t,n,s,a,i){h(this,"frameClient");h(this,"retriever");h(this,"writer");h(this,"unaryClient");h(this,"channels");h(this,"active");h(this,"labelClient");this.frameClient=e,this.retriever=t,this.writer=n,this.unaryClient=s,this.channels=a,this.active=new X_(s),this.labelClient=i}async create(e){const t=!Array.isArray(e),n=this.sugar(await this.writer.create(Se(e)));return t?n[0]:n}async rename(e,t){await this.writer.rename(e,t)}async delete(e){await this.writer.delete(Se(e))}async search(e){return this.sugar(await this.retriever.search(e))}async page(e,t){return[]}async retrieve(e){const{single:t,actual:n}=Fc(e),s=this.sugar(await this.retriever.retrieve(e));if(!t)return s;if(s.length===0)throw new tr(`range matching ${n} not found`);if(s.length>1)throw new tr(`multiple ranges matching ${n} found`);return s[0]}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 Fh(t.name,t.timeRange,t.key,this.frameClient,new Fo(t.key,this.unaryClient),new Ko(t.key,this.frameClient,this.unaryClient),this.channels,this.labelClient))}};const cb=u.z.object({ranges:ia.array()});u.z.object({ranges:Kh.array()});u.z.object({keys:bt.array()});const ub=u.z.object({});u.z.object({key:bt,name:u.z.string()});const lb=u.z.object({}),db="/range/create",hb="/range/delete",fb="/range/rename";let qh=class{constructor(e){h(this,"client");this.client=e}async rename(e,t){await ue(this.client,fb,{key:e,name:t},lb)}async create(e){return(await ue(this.client,db,{ranges:e},cb)).ranges}async delete(e){await ue(this.client,hb,{keys:e},ub)}};u.z.object({keys:bt.array().optional(),names:u.z.array(u.z.string()).optional(),term:u.z.string().optional()});const pb=u.z.object({ranges:u.z.array(ia)});let Yh=class{constructor(e){h(this,"ENDPOINT","/range/retrieve");h(this,"client");this.client=e}async retrieve(e){const{normalized:t,variant:n}=Fc(e);return await this.execute({[n]:t})}async search(e){return await this.execute({term:e})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,pb);if(n!=null)throw n;return t.ranges}};const mb=Object.freeze(Object.defineProperty({__proto__:null,Client:Wh,Range:Fh,Retriever:Yh,Writer:qh,analyzeParams:Fc,keyZ:bt,newPayloadZ:Kh,payloadZ:ia},Symbol.toStringTag,{value:"Module"})),yb="/api/v1/";class gb{constructor(e,t=!1){h(this,"url");h(this,"unary");h(this,"stream");h(this,"secure");this.secure=t,this.url=e.child(yb);const n=new Vl.JSONEncoderDecoder;this.unary=new yw(this.url,n,this.secure),this.stream=new xw(this.url,n,this.secure)}use(...e){this.unary.use(...e),this.stream.use(...e)}}const Jr=u.z.string().uuid(),Wc=u.z.object({name:u.z.string(),key:Jr,layout:ic}),Fi=Wc.omit({layout:!0}).extend({layout:u.z.string().transform(r=>JSON.parse(r))}),qc=u.z.string().uuid(),vb=u.z.object({key:u.z.string(),name:u.z.string(),data:ic}),Yc=u.z.object({key:u.z.string(),name:u.z.string(),data:u.z.string().transform(r=>JSON.parse(r))});u.z.object({keys:u.z.string().array()});const wb=u.z.object({linePlots:Yc.array()});let _b=class{constructor(e){h(this,"ENDPOINT","/workspace/lineplot/retrieve");h(this,"client");this.client=e}async retrieve(e){const t=Se(e);return await this.execute({keys:t})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,wb);if(n!=null)throw n;return t.linePlots}};vb.partial({key:!0});const bb=Yc.partial({key:!0});u.z.object({workspace:Jr,linePlots:bb.array()});const kb=u.z.object({linePlots:Yc.array()});u.z.object({keys:qc.array()});const Ob=u.z.object({});u.z.object({key:qc,name:u.z.string()});const Yu=u.z.object({});u.z.object({key:qc,data:u.z.string()});u.z.object({});const Tb="/workspace/lineplot/create",xb="/workspace/lineplot/delete",Sb="/workspace/lineplot/rename",Eb="/workspace/lineplot/set-data";let Nb=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await ue(this.client,Tb,{workspace:e,linePlots:[n]},kb)).linePlots[0]}async delete(e){const t=Se(e);await ue(this.client,xb,{keys:t},Ob)}async rename(e,t){await ue(this.client,Sb,{key:e,name:t},Yu)}async setData(e,t){await ue(this.client,Eb,{key:e,data:JSON.stringify(t)},Yu)}},Ab=class{constructor(e){h(this,"writer");h(this,"retriever");this.writer=new Nb(e),this.retriever=new _b(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 Wi=u.z.string().uuid(),Ib=u.z.object({key:u.z.string(),name:u.z.string(),data:ic,snapshot:u.z.boolean()}),qi=u.z.object({key:u.z.string(),name:u.z.string(),snapshot:u.z.boolean(),data:u.z.string().transform(r=>JSON.parse(r))});u.z.object({keys:u.z.string().array()});const Cb=u.z.object({pids:qi.array()});let jb=class{constructor(e){h(this,"ENDPOINT","/workspace/pid/retrieve");h(this,"client");this.client=e}async retrieve(e){const t=Se(e);return await this.execute({keys:t})}async execute(e){const[t,n]=await this.client.send(this.ENDPOINT,e,Cb);if(n!=null)throw n;return t.pids}};Ib.partial({key:!0});const Zb=qi.partial({key:!0,snapshot:!0});u.z.object({workspace:Jr,pids:Zb.array()});const Rb=u.z.object({pids:qi.array()});u.z.object({keys:Wi.array()});const zb=u.z.object({});u.z.object({key:Wi,name:u.z.string()});const Ju=u.z.object({});u.z.object({key:Wi,data:u.z.string()});u.z.object({});u.z.object({key:Wi,name:u.z.string(),snapshot:u.z.boolean()});const Pb=u.z.object({pid:qi}),Ub="/workspace/pid/create",Db="/workspace/pid/delete",Mb="/workspace/pid/rename",$b="/workspace/pid/set-data",Lb="/workspace/pid/copy";let Bb=class{constructor(e){h(this,"client");this.client=e}async create(e,t){const n={...t,data:JSON.stringify(t.data)};return(await ue(this.client,Ub,{workspace:e,pids:[n]},Rb)).pids[0]}async copy(e,t,n){return(await ue(this.client,Lb,{key:e,name:t,snapshot:n},Pb)).pid}async delete(e){const t=Se(e);await ue(this.client,Db,{keys:t},zb)}async rename(e,t){await ue(this.client,Mb,{key:e,name:t},Ju)}async setData(e,t){await ue(this.client,$b,{key:e,data:JSON.stringify(t)},Ju)}},Vb=class{constructor(e){h(this,"writer");h(this,"retriever");this.writer=new Bb(e),this.retriever=new jb(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)}};u.z.object({keys:Jr.array().optional(),search:u.z.string().optional(),author:u.z.string().uuid().optional(),offset:u.z.number().optional(),limit:u.z.number().optional()});const Kb=u.z.object({workspaces:Fi.array()}),Oi=class Oi{constructor(e){h(this,"client");this.client=e}async retrieve(e){const t=Se(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){const[t,n]=await this.client.send(Oi.ENDPOINT,e,Kb);if(n!=null)throw n;return t.workspaces}};h(Oi,"ENDPOINT","/workspace/retrieve");let Wo=Oi;Wc.partial({key:!0});const Fb=Fi.partial({key:!0});u.z.object({workspaces:Fb.partial({key:!0}).array()});const Wb=u.z.object({workspaces:Fi.array()});u.z.object({keys:Jr.array()});const qb=u.z.object({});u.z.object({key:Jr,name:u.z.string()});const Yb=u.z.object({});u.z.object({key:Jr,layout:u.z.string()});const Jb=u.z.object({}),Gb="/workspace/create",Hb="/workspace/delete",Xb="/workspace/rename",Qb="/workspace/set-layout";class e0{constructor(e){h(this,"client");this.client=e}async create(e){const t=Se(e).map(s=>({...s,layout:JSON.stringify(s.layout)}));return(await ue(this.client,Gb,{workspaces:t},Wb)).workspaces}async delete(e){await ue(this.client,Hb,{keys:Se(e)},qb)}async rename(e,t){await ue(this.client,Xb,{key:e,name:t},Yb)}async setLayout(e,t){await ue(this.client,Qb,{key:e,layout:JSON.stringify(t)},Jb)}}class Jh{constructor(e){h(this,"pid");h(this,"linePlot");h(this,"retriever");h(this,"writer");this.pid=new Vb(e),this.linePlot=new Ab(e),this.retriever=new Wo(e),this.writer=new e0(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 t0=Object.freeze(Object.defineProperty({__proto__:null,Client:Jh,keyZ:Jr,workspaceRemoteZ:Fi,workspaceZ:Wc},Symbol.toStringTag,{value:"Module"})),Gh=u.z.object({host:u.z.string().min(1),port:u.z.number().or(u.z.string()),username:u.z.string().optional(),password:u.z.string().optional(),connectivityPollFrequency:Pe.z.default(Pe.seconds(30)),secure:u.z.boolean().optional().default(!1),name:u.z.string().optional()});class Hh{constructor(e){h(this,"transport");h(this,"createdAt");h(this,"telem");h(this,"ranges");h(this,"channels");h(this,"auth");h(this,"connectivity");h(this,"ontology");h(this,"props");h(this,"workspaces");h(this,"labels");h(this,"hardware");this.createdAt=Ue.now(),this.props=Gh.parse(e);const{host:t,port:n,username:s,password:a,connectivityPollFrequency:i,secure:o}=this.props;this.transport=new gb(new im({host:t,port:Number(n)}),o),this.transport.use(Cw),s!=null&&a!=null&&(this.auth=new Dw(this.transport.unary,{username:s,password:a}),this.transport.use(this.auth.middleware()));const c=new fc(new ms(this.transport.unary)),l=new Ha(this.transport.unary);this.telem=new bh(this.transport.stream,c),this.channels=new fh(this.telem,c,this.transport.unary,l),this.connectivity=new Fs(this.transport.unary,i,e.name),this.ontology=new Mh(this.transport.unary,this.telem);const w=new Yh(this.transport.unary),T=new qh(this.transport.unary);this.labels=new Vh(this.transport.unary,this.telem),this.ranges=new Wh(this.telem,w,T,this.transport.unary,c,this.labels),this.workspaces=new Jh(this.transport.unary);const X=new Oh(new Th(this.transport.unary),new xh(this.transport.unary),this.telem),Q=new Ch(this.transport.unary),Ze=new jh(this.transport.unary),ee=new Ih(Q,Ze),rr=new Sh(new Ah(this.transport.unary),new Nh(this.transport.unary),this.telem,Ze,Q);this.hardware=new kh(ee,rr,X)}close(){this.connectivity.stopChecking()}}h(Hh,"connectivity",Fs);const r0=Object.freeze(Object.defineProperty({__proto__:null,Authority:Wr,StateTracker:Mc,filterTransfersByChannelKey:Jw,stateZ:Yw,subjectZ:Dc,transferString:Gw},Symbol.toStringTag,{value:"Module"}));exports.AuthError=Zc;exports.Authority=Wr;exports.Channel=Rc;exports.ContiguityError=Nw;exports.DataType=et;exports.Density=st;exports.Frame=pt;exports.GeneralError=lh;exports.ParseError=dh;exports.QueryError=tr;exports.Rate=Ai;exports.RouteError=hh;exports.Series=Ct;exports.Synnax=Hh;exports.TimeRange=Zt;exports.TimeSpan=Pe;exports.TimeStamp=Ue;exports.UnexpectedError=yn;exports.ValidationError=zt;exports.channel=Zw;exports.connection=Lw;exports.control=r0;exports.device=d_;exports.framer=e_;exports.hardware=t_;exports.label=F_;exports.ontology=R_;exports.rack=y_;exports.ranger=mb;exports.synnaxPropsZ=Gh;exports.task=k_;exports.workspace=t0;
|
|
21
21
|
//# sourceMappingURL=client.cjs.map
|