@synnaxlabs/client 0.26.1 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/README.md +36 -10
  3. package/api/client.api.md +3077 -0
  4. package/api-extractor.json +7 -0
  5. package/dist/access/client.d.ts +0 -1
  6. package/dist/access/payload.d.ts +0 -1
  7. package/dist/auth/auth.d.ts +0 -1
  8. package/dist/channel/client.d.ts +6 -2
  9. package/dist/channel/client.d.ts.map +1 -1
  10. package/dist/channel/creator.d.ts +0 -1
  11. package/dist/channel/payload.d.ts +4 -1
  12. package/dist/channel/payload.d.ts.map +1 -1
  13. package/dist/channel/retriever.d.ts +0 -1
  14. package/dist/channel/writer.d.ts +0 -1
  15. package/dist/client.cjs +17 -17
  16. package/dist/client.d.ts +6 -7
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +2006 -1745
  19. package/dist/connection/checker.d.ts +0 -1
  20. package/dist/control/client.d.ts +0 -1
  21. package/dist/control/client.d.ts.map +1 -1
  22. package/dist/control/state.d.ts +0 -1
  23. package/dist/errors.d.ts +0 -1
  24. package/dist/framer/adapter.d.ts +0 -1
  25. package/dist/framer/client.d.ts +0 -1
  26. package/dist/framer/deleter.d.ts +0 -1
  27. package/dist/framer/frame.d.ts +11 -12
  28. package/dist/framer/iterator.d.ts +0 -1
  29. package/dist/framer/streamProxy.d.ts +0 -1
  30. package/dist/framer/streamer.d.ts +0 -1
  31. package/dist/framer/writer.d.ts +0 -1
  32. package/dist/framer/writer.d.ts.map +1 -1
  33. package/dist/hardware/client.d.ts +0 -1
  34. package/dist/hardware/device/client.d.ts +0 -1
  35. package/dist/hardware/device/payload.d.ts +0 -1
  36. package/dist/hardware/device/payload.d.ts.map +1 -1
  37. package/dist/hardware/rack/client.d.ts +0 -1
  38. package/dist/hardware/rack/payload.d.ts +0 -1
  39. package/dist/hardware/rack/payload.d.ts.map +1 -1
  40. package/dist/hardware/task/client.d.ts +0 -1
  41. package/dist/hardware/task/payload.d.ts +0 -1
  42. package/dist/hardware/task/payload.d.ts.map +1 -1
  43. package/dist/label/client.d.ts +8 -6
  44. package/dist/label/client.d.ts.map +1 -1
  45. package/dist/label/payload.d.ts +0 -1
  46. package/dist/label/retriever.d.ts +0 -1
  47. package/dist/label/retriever.d.ts.map +1 -1
  48. package/dist/label/writer.d.ts +32 -2
  49. package/dist/label/writer.d.ts.map +1 -1
  50. package/dist/ontology/client.d.ts +124 -11
  51. package/dist/ontology/client.d.ts.map +1 -1
  52. package/dist/ontology/group/client.d.ts +0 -1
  53. package/dist/ontology/group/group.d.ts +0 -1
  54. package/dist/ontology/group/payload.d.ts +0 -1
  55. package/dist/ontology/group/writer.d.ts +0 -1
  56. package/dist/ontology/payload.d.ts +5 -1
  57. package/dist/ontology/payload.d.ts.map +1 -1
  58. package/dist/ontology/writer.d.ts +4 -5
  59. package/dist/ontology/writer.d.ts.map +1 -1
  60. package/dist/ranger/alias.d.ts +0 -1
  61. package/dist/ranger/client.d.ts +55 -14
  62. package/dist/ranger/client.d.ts.map +1 -1
  63. package/dist/ranger/external.d.ts +1 -1
  64. package/dist/ranger/external.d.ts.map +1 -1
  65. package/dist/ranger/kv.d.ts +42 -5
  66. package/dist/ranger/kv.d.ts.map +1 -1
  67. package/dist/ranger/payload.d.ts +5 -2
  68. package/dist/ranger/payload.d.ts.map +1 -1
  69. package/dist/ranger/writer.d.ts +107 -2
  70. package/dist/ranger/writer.d.ts.map +1 -1
  71. package/dist/setupspecs.d.ts +0 -1
  72. package/dist/signals/observable.d.ts +0 -1
  73. package/dist/transport.d.ts +0 -1
  74. package/dist/user/client.d.ts +0 -1
  75. package/dist/user/payload.d.ts +0 -1
  76. package/dist/util/retrieve.d.ts +0 -1
  77. package/dist/util/telem.d.ts +0 -1
  78. package/dist/util/zod.d.ts +0 -1
  79. package/dist/workspace/client.d.ts +0 -1
  80. package/dist/workspace/lineplot/client.d.ts +0 -1
  81. package/dist/workspace/lineplot/payload.d.ts +0 -1
  82. package/dist/workspace/lineplot/retriever.d.ts +0 -1
  83. package/dist/workspace/lineplot/writer.d.ts +0 -1
  84. package/dist/workspace/payload.d.ts +0 -1
  85. package/dist/workspace/retriever.d.ts +0 -1
  86. package/dist/workspace/schematic/client.d.ts +0 -1
  87. package/dist/workspace/schematic/payload.d.ts +0 -1
  88. package/dist/workspace/schematic/retriever.d.ts +0 -1
  89. package/dist/workspace/schematic/writer.d.ts +0 -1
  90. package/dist/workspace/writer.d.ts +0 -1
  91. package/package.json +14 -12
  92. package/src/access/access.spec.ts +11 -11
  93. package/src/channel/batchRetriever.spec.ts +2 -0
  94. package/src/channel/channel.spec.ts +51 -31
  95. package/src/channel/client.ts +7 -0
  96. package/src/channel/payload.ts +1 -0
  97. package/src/client.ts +4 -3
  98. package/src/control/client.ts +9 -0
  99. package/src/errors.spec.ts +9 -0
  100. package/src/framer/frame.spec.ts +2 -2
  101. package/src/framer/frame.ts +22 -22
  102. package/src/framer/writer.ts +2 -1
  103. package/src/hardware/device/payload.ts +9 -0
  104. package/src/hardware/rack/payload.ts +9 -0
  105. package/src/hardware/task/payload.ts +9 -0
  106. package/src/label/client.ts +49 -19
  107. package/src/label/label.spec.ts +9 -0
  108. package/src/label/retriever.ts +2 -1
  109. package/src/label/writer.ts +11 -3
  110. package/src/ontology/client.ts +214 -13
  111. package/src/ontology/payload.ts +4 -0
  112. package/src/ontology/writer.ts +26 -12
  113. package/src/ranger/client.ts +204 -28
  114. package/src/ranger/external.ts +1 -1
  115. package/src/ranger/kv.ts +50 -11
  116. package/src/ranger/payload.ts +9 -5
  117. package/src/ranger/ranger.spec.ts +114 -49
  118. package/src/ranger/writer.ts +7 -2
  119. package/vite.config.ts +1 -1
  120. package/dist/ranger/active.d.ts +0 -11
  121. package/dist/ranger/active.d.ts.map +0 -1
  122. package/dist/ranger/range.d.ts +0 -32
  123. package/dist/ranger/range.d.ts.map +0 -1
  124. package/src/ranger/active.ts +0 -74
  125. package/src/ranger/range.ts +0 -98
@@ -1,7 +1,6 @@
1
1
  import { UnaryClient } from '@synnaxlabs/freighter';
2
2
  import { TimeSpan } from '@synnaxlabs/x/telem';
3
3
  import { z } from 'zod';
4
-
5
4
  export declare const status: z.ZodEnum<["disconnected", "connecting", "connected", "failed"]>;
6
5
  export type Status = z.infer<typeof status>;
7
6
  export declare const state: z.ZodObject<{
@@ -1,6 +1,5 @@
1
1
  import { StateTracker } from './state';
2
2
  import { framer } from '../framer';
3
-
4
3
  export declare class Client {
5
4
  private readonly framer;
6
5
  constructor(framer: framer.Client);
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/control/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,MAAM,CAAC,MAAM;IAI3B,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;CAIhD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/control/client.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,MAAM,CAAC,MAAM;IAI3B,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;CAIhD"}
@@ -4,7 +4,6 @@ import { z } from 'zod';
4
4
  import { Key as ChannelKey } from '../channel/payload';
5
5
  import { framer } from '../framer';
6
6
  import { Streamer as FrameStreamer } from '../framer/streamer';
7
-
8
7
  export type Authority = control.Authority;
9
8
  export declare const Authority: typeof control.Authority;
10
9
  export type Transfer = control.Transfer<ChannelKey>;
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { BaseTypedError, Middleware } from '@synnaxlabs/freighter';
2
-
3
2
  export interface Field {
4
3
  field: string;
5
4
  message: string;
@@ -2,7 +2,6 @@ import { CrudeSeries } from '@synnaxlabs/x/telem';
2
2
  import { Key, KeyOrName, Params } from '../channel/payload';
3
3
  import { Retriever } from '../channel/retriever';
4
4
  import { CrudeFrame, Frame } from './frame';
5
-
6
5
  export declare class ReadFrameAdapter {
7
6
  private adapter;
8
7
  retriever: Retriever;
@@ -6,7 +6,6 @@ import { Frame } from './frame';
6
6
  import { Iterator, IteratorConfig } from './iterator';
7
7
  import { Streamer, StreamerConfig } from './streamer';
8
8
  import { Writer, WriterConfig } from './writer';
9
-
10
9
  export declare class Client {
11
10
  private readonly streamClient;
12
11
  private readonly retriever;
@@ -1,7 +1,6 @@
1
1
  import { UnaryClient } from '@synnaxlabs/freighter';
2
2
  import { TimeRange } from '@synnaxlabs/x';
3
3
  import { z } from 'zod';
4
-
5
4
  declare const reqZ: z.ZodObject<{
6
5
  keys: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7
6
  bounds: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
@@ -1,7 +1,6 @@
1
1
  import { DataType, MultiSeries, Series, Size, TelemValue, TimeRange, TimeStamp } from '@synnaxlabs/x/telem';
2
2
  import { z } from 'zod';
3
3
  import { KeyOrName, Keys, Names, Params } from '../channel/payload';
4
-
5
4
  type ColumnType = "key" | "name" | null;
6
5
  export type CrudeFrame = Frame | FramePayload | Map<KeyOrName, Series[] | Series> | Record<KeyOrName, Series[] | Series>;
7
6
  /**
@@ -10,15 +9,15 @@ export type CrudeFrame = Frame | FramePayload | Map<KeyOrName, Series[] | Series
10
9
  *
11
10
  * Frames have two important characteristics: alignment and orientation.
12
11
  *
13
- * A frame's alignment defines how correlated the arrays for different channels in the
12
+ * A frame's alignment defines how correlated the series for different channels in the
14
13
  * frame are:
15
14
  *
16
- * - A frame is weakly aligned if it meets the time range occupied by all arrays of a
15
+ * - A frame is weakly aligned if the time range occupied by all series of a
17
16
  * particular channel is the same for all channels in the frame. This means that the
18
- * arrays for a particular channel can have gaps between them.
17
+ * series for a particular channel can have gaps between them.
19
18
  *
20
19
  * - A strongly aligned frame means that all channels share the same rate/index and
21
- * there are no gaps in time between arrays. Strongly aligned frames are natural
20
+ * there are no gaps in time between series. Strongly aligned frames are natural
22
21
  * to interpret, as the values in a particular 'row' of the frame share the same
23
22
  * timestamp. All frames written to Synnax must be strongly aligned.
24
23
  *
@@ -30,7 +29,7 @@ export type CrudeFrame = Frame | FramePayload | Map<KeyOrName, Series[] | Series
30
29
  *
31
30
  * - Horizontal frames have a single channel, and are strongly aligned by default.
32
31
  * A horizontal frame typically has a single array (in which case, it's also 'square'),
33
- * although it can have multiple arrays if all the arrays are continuous in time.
32
+ * although it can have multiple series if all the series are continuous in time.
34
33
  *
35
34
  * - Vertical frames are strongly aligned and have on or more channels, but ONLY a single
36
35
  * array per channel. Synnax requires that all frames written to the database are
@@ -42,7 +41,7 @@ export type CrudeFrame = Frame | FramePayload | Map<KeyOrName, Series[] | Series
42
41
  export declare class Frame {
43
42
  readonly columns: Keys | Names;
44
43
  readonly series: Series[];
45
- constructor(columnsOrData?: Params | CrudeFrame, arrays?: Series | Series[]);
44
+ constructor(columnsOrData?: Params | CrudeFrame, series?: Series | Series[]);
46
45
  /**
47
46
  * @returns "key" if the frame columns are channel keys, "name" if the columns are
48
47
  * channel names, and null if the frame has no columns.
@@ -82,8 +81,8 @@ export declare class Frame {
82
81
  /**
83
82
  * @returns true if the frame is horizontal. Horizontal frames have a single channel,
84
83
  * and are strongly aligned by default.A horizontal frame typically has a single array
85
- * (in which case, it's also 'square'), although it can have multiple arrays if all
86
- * the arrays are continuous in time.
84
+ * (in which case, it's also 'square'), although it can have multiple series if all
85
+ * the series are continuous in time.
87
86
  */
88
87
  get isHorizontal(): boolean;
89
88
  /**
@@ -93,8 +92,8 @@ export declare class Frame {
93
92
  get isSquare(): boolean;
94
93
  /**
95
94
  * @returns true if the frame is weakly aligned. A frame is weakly aligned if it meets
96
- * the time range occupied by all arrays of a particular channel is the same for all
97
- * channels in the frame. This means that the arrays for a particular channel can have
95
+ * the time range occupied by all series of a particular channel is the same for all
96
+ * channels in the frame. This means that the series for a particular channel can have
98
97
  * gaps between them.
99
98
  */
100
99
  get isWeaklyAligned(): boolean;
@@ -102,7 +101,7 @@ export declare class Frame {
102
101
  latest(): Record<string, TelemValue | undefined>;
103
102
  get timeRanges(): TimeRange[];
104
103
  /**
105
- * @returns lazy arrays matching the given channel key or name.
104
+ * @returns lazy series matching the given channel key or name.
106
105
  * @param key the channel key or name.
107
106
  */
108
107
  get(key: KeyOrName): MultiSeries;
@@ -3,7 +3,6 @@ import { CrudeTimeRange, CrudeTimeSpan, CrudeTimeStamp, TimeSpan } from '@synnax
3
3
  import { Params } from '../channel/payload';
4
4
  import { Retriever } from '../channel/retriever';
5
5
  import { Frame } from './frame';
6
-
7
6
  export declare const AUTO_SPAN: TimeSpan;
8
7
  export interface IteratorConfig {
9
8
  /** chunkSize is the maximum number of samples contained per channel in the frame
@@ -1,6 +1,5 @@
1
1
  import { Stream } from '@synnaxlabs/freighter';
2
2
  import { z } from 'zod';
3
-
4
3
  export declare class StreamProxy<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny> {
5
4
  readonly name: string;
6
5
  private readonly stream;
@@ -4,7 +4,6 @@ import { CrudeTimeStamp } from '@synnaxlabs/x/telem';
4
4
  import { Key, Params } from '../channel/payload';
5
5
  import { Retriever } from '../channel/retriever';
6
6
  import { Frame } from './frame';
7
-
8
7
  export interface StreamerConfig {
9
8
  channels: Params;
10
9
  from?: CrudeTimeStamp;
@@ -5,7 +5,6 @@ import { z } from 'zod';
5
5
  import { KeyOrName, KeysOrNames, Params } from '../channel/payload';
6
6
  import { Retriever } from '../channel/retriever';
7
7
  import { CrudeFrame } from './frame';
8
-
9
8
  declare enum Command {
10
9
  Open = 0,
11
10
  Write = 1,
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/framer/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/framer/writer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { device } from './device';
2
2
  import { rack } from './rack';
3
3
  import { task } from './task';
4
-
5
4
  export declare class Client {
6
5
  readonly tasks: task.Client;
7
6
  readonly racks: rack.Client;
@@ -5,7 +5,6 @@ import { z } from 'zod';
5
5
  import { framer } from '../../framer';
6
6
  import { Device, DeviceKey, NewDevice } from './payload';
7
7
  import { signals } from '../../signals';
8
-
9
8
  declare const retrieveReqZ: z.ZodObject<{
10
9
  search: z.ZodOptional<z.ZodString>;
11
10
  limit: z.ZodOptional<z.ZodNumber>;
@@ -1,7 +1,6 @@
1
1
  import { UnknownRecord } from '@synnaxlabs/x';
2
2
  import { z } from 'zod';
3
3
  import { ontology } from '../../ontology';
4
-
5
4
  export declare const deviceKeyZ: z.ZodString;
6
5
  export declare const deviceZ: z.ZodObject<{
7
6
  key: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/device/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,eAAO,MAAM,OAAO;;;;;;;;gBAab,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;EAC7B,CAAC;AAEH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,IAAI,CAChE,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,EACxB,YAAY,CACb,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,UAAU;;;;;;;;gBAVhB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,EAC1B,YAAY,CACb,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,kBAAkB,EAAe,QAAQ,CAAC,YAAY,CAAC;AAEpE,eAAO,MAAM,UAAU,QAAS,SAAS,KAAG,QAAQ,CAAC,EACe,CAAC"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/device/payload.ts"],"names":[],"mappings":"AASA,OAAO,EAAU,aAAa,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,eAAO,MAAM,OAAO;;;;;;;;gBAab,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;EAC7B,CAAC;AAEH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,IAAI,CAChE,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,EACxB,YAAY,CACb,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,UAAU;;;;;;;;gBAVhB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,EAC1B,YAAY,CACb,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,kBAAkB,EAAe,QAAQ,CAAC,YAAY,CAAC;AAEpE,eAAO,MAAM,UAAU,QAAS,SAAS,KAAG,QAAQ,CAAC,EACe,CAAC"}
@@ -4,7 +4,6 @@ import { AsyncTermSearcher } from '@synnaxlabs/x/search';
4
4
  import { framer } from '../../framer';
5
5
  import { NewRack, RackKey, rackKeyZ } from './payload';
6
6
  import { task } from '../task';
7
-
8
7
  export declare class Client implements AsyncTermSearcher<string, RackKey, Rack> {
9
8
  readonly type: string;
10
9
  private readonly client;
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { ontology } from '../../ontology';
3
-
4
3
  export declare const rackKeyZ: z.ZodNumber;
5
4
  export type RackKey = z.infer<typeof rackKeyZ>;
6
5
  export declare const rackZ: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/rack/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,KAAK;;;;;;;;;EAGhB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;EAA+B,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAa,QAAQ,CAAC,YAAY,CAAC;AAEhE,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,QAAQ,CAAC,EACe,CAAC"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/rack/payload.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,KAAK;;;;;;;;;EAGhB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;EAA+B,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAa,QAAQ,CAAC,YAAY,CAAC;AAEhE,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,QAAQ,CAAC,EACe,CAAC"}
@@ -6,7 +6,6 @@ import { z } from 'zod';
6
6
  import { framer } from '../../framer';
7
7
  import { NewTask, Payload, State, StateObservable, TaskKey } from './payload';
8
8
  import { signals } from '../../signals';
9
-
10
9
  export declare class Task<C extends UnknownRecord = UnknownRecord, D extends {} = UnknownRecord, T extends string = string> {
11
10
  readonly key: TaskKey;
12
11
  readonly name: string;
@@ -1,7 +1,6 @@
1
1
  import { observe, UnknownRecord } from '@synnaxlabs/x';
2
2
  import { z } from 'zod';
3
3
  import { ontology } from '../../ontology';
4
-
5
4
  export declare const taskKeyZ: z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodBigInt, string, bigint>, z.ZodEffects<z.ZodNumber, string, number>]>;
6
5
  export type TaskKey = z.infer<typeof taskKeyZ>;
7
6
  export declare const stateZ: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/task/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,QAAQ,iHAInB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;EAcjB,CAAC;AAEH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,aAAa,IAAI,IAAI,CACpD,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,EACtB,SAAS,CACV,GAAG;IACF,OAAO,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;YAUX,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;YAJd,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,EAAE,GAAG,aAAa,EAC5B,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG;IAC9D,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;UASd,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;EAC7B,CAAC;AAEH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IACjE,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,kBAAkB,EAAa,QAAQ,CAAC,YAAY,CAAC;AAElE,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,QAAQ,CAAC,EACiB,CAAC"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/hardware/task/payload.ts"],"names":[],"mappings":"AASA,OAAO,EAAU,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,QAAQ,iHAInB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;EAcjB,CAAC;AAEH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,aAAa,IAAI,IAAI,CACpD,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,EACtB,SAAS,CACV,GAAG;IACF,OAAO,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;YAUX,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;YAJd,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,EAAE,GAAG,aAAa,EAC5B,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG;IAC9D,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;UASd,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;EAC7B,CAAC;AAEH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IACjE,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,kBAAkB,EAAa,QAAQ,CAAC,YAAY,CAAC;AAElE,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,QAAQ,CAAC,EACiB,CAAC"}
@@ -1,28 +1,30 @@
1
1
  import { UnaryClient } from '@synnaxlabs/freighter';
2
+ import { observe } from '@synnaxlabs/x';
2
3
  import { AsyncTermSearcher } from '@synnaxlabs/x/search';
3
4
  import { framer } from '../framer';
4
5
  import { Key, Label } from './payload';
5
- import { NewLabelPayload } from './writer';
6
+ import { NewLabelPayload, SetOptions } from './writer';
6
7
  import { ontology } from '../ontology';
7
8
  import { signals } from '../signals';
8
-
9
9
  export declare class Client implements AsyncTermSearcher<string, Key, Label> {
10
10
  readonly type: string;
11
11
  private readonly retriever;
12
12
  private readonly writer;
13
13
  private readonly frameClient;
14
- constructor(client: UnaryClient, frameClient: framer.Client);
14
+ private readonly ontology;
15
+ constructor(client: UnaryClient, frameClient: framer.Client, ontology: ontology.Client);
15
16
  search(term: string): Promise<Label[]>;
16
17
  retrieve(key: Key): Promise<Label>;
17
18
  retrieve(keys: Key[]): Promise<Label[]>;
18
- retrieveFor(id: ontology.ID): Promise<Label[]>;
19
- label(id: ontology.ID, labels: Key[]): Promise<void>;
20
- removeLabels(id: ontology.ID, labels: Key[]): Promise<void>;
19
+ retrieveFor(id: ontology.CrudeID): Promise<Label[]>;
20
+ label(id: ontology.CrudeID, labels: Key[], opts?: SetOptions): Promise<void>;
21
+ removeLabels(id: ontology.CrudeID, labels: Key[]): Promise<void>;
21
22
  page(offset: number, limit: number): Promise<Label[]>;
22
23
  create(label: NewLabelPayload): Promise<Label>;
23
24
  create(labels: NewLabelPayload[]): Promise<Label[]>;
24
25
  delete(key: Key): Promise<void>;
25
26
  delete(keys: Key[]): Promise<void>;
26
27
  openChangeTracker(): Promise<signals.Observable<string, Label>>;
28
+ trackLabelsOf(id: ontology.CrudeID): Promise<observe.ObservableAsyncCloseable<Label[]>>;
27
29
  }
28
30
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/label/client.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAU,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,KAAK,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,qBAAa,MAAO,YAAW,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;gBAEhC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM;IAMrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQvC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAIrD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAE9C,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQnD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAQtE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/label/client.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAU,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,KAAK,eAAe,EAAE,UAAU,EAAU,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,qBAAa,MAAO,YAAW,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAGzC,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM;IAQrB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQvC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAInD,KAAK,CACT,EAAE,EAAE,QAAQ,CAAC,OAAO,EACpB,MAAM,EAAE,GAAG,EAAE,EACb,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAIrD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAE9C,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQnD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAS/D,aAAa,CACjB,EAAE,EAAE,QAAQ,CAAC,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC;CAwBtD"}
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { ontology } from '../ontology';
3
-
4
3
  export declare const keyZ: z.ZodString;
5
4
  export type Key = z.infer<typeof keyZ>;
6
5
  export type Params = Key | Key[];
@@ -1,7 +1,6 @@
1
1
  import { UnaryClient } from '@synnaxlabs/freighter';
2
2
  import { Label, Params } from './payload';
3
3
  import { ontology } from '../ontology';
4
-
5
4
  export declare class Retriever {
6
5
  private static readonly ENDPOINT;
7
6
  private readonly client;
@@ -1 +1 @@
1
- {"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../src/label/retriever.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAQ,KAAK,KAAK,EAAU,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgBtC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK1C,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAI7C,OAAO;CAUtB"}
1
+ {"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../src/label/retriever.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAQ,KAAK,KAAK,EAAU,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiBtC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK1C,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAI7C,OAAO;CAUtB"}
@@ -2,7 +2,6 @@ import { UnaryClient } from '@synnaxlabs/freighter';
2
2
  import { z } from 'zod';
3
3
  import { Key, Label } from './payload';
4
4
  import { ontology } from '../ontology';
5
-
6
5
  export declare const newLabelPayloadZ: z.ZodObject<z.objectUtil.extendShape<{
7
6
  key: z.ZodString;
8
7
  name: z.ZodString;
@@ -19,12 +18,43 @@ export declare const newLabelPayloadZ: z.ZodObject<z.objectUtil.extendShape<{
19
18
  key?: string | undefined;
20
19
  }>;
21
20
  export type NewLabelPayload = z.infer<typeof newLabelPayloadZ>;
21
+ declare const setReqZ: z.ZodObject<{
22
+ id: z.ZodObject<{
23
+ type: z.ZodUnion<[z.ZodLiteral<"label">, z.ZodLiteral<"builtin">, z.ZodLiteral<"cluster">, z.ZodLiteral<"channel">, z.ZodLiteral<"node">, z.ZodLiteral<"group">, z.ZodLiteral<"range">, z.ZodLiteral<"range-alias">, z.ZodLiteral<"user">, z.ZodLiteral<"workspace">, z.ZodLiteral<"schematic">, z.ZodLiteral<"lineplot">, z.ZodLiteral<"rack">, z.ZodLiteral<"device">, z.ZodLiteral<"task">, z.ZodLiteral<"policy">]>;
24
+ key: z.ZodString;
25
+ }, "strip", z.ZodTypeAny, {
26
+ type: "label" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy";
27
+ key: string;
28
+ }, {
29
+ type: "label" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy";
30
+ key: string;
31
+ }>;
32
+ labels: z.ZodArray<z.ZodString, "many">;
33
+ replace: z.ZodOptional<z.ZodBoolean>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ id: {
36
+ type: "label" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy";
37
+ key: string;
38
+ };
39
+ labels: string[];
40
+ replace?: boolean | undefined;
41
+ }, {
42
+ id: {
43
+ type: "label" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy";
44
+ key: string;
45
+ };
46
+ labels: string[];
47
+ replace?: boolean | undefined;
48
+ }>;
49
+ type SetReq = z.infer<typeof setReqZ>;
50
+ export type SetOptions = Pick<SetReq, "replace">;
22
51
  export declare class Writer {
23
52
  private readonly client;
24
53
  constructor(client: UnaryClient);
25
54
  create(labels: NewLabelPayload | NewLabelPayload[]): Promise<Label[]>;
26
55
  delete(keys: Key | Key[]): Promise<void>;
27
- set(id: ontology.ID, labels: Key[]): Promise<void>;
56
+ set(id: ontology.ID, labels: Key[], { replace }?: SetOptions): Promise<void>;
28
57
  remove(id: ontology.ID, labels: Key[]): Promise<void>;
29
58
  }
59
+ export {};
30
60
  //# sourceMappingURL=writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/label/writer.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,GAAG,EAAQ,KAAK,KAAK,EAAU,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAA0C,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AA4B/D,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAWrE,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAS5D"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/label/writer.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,GAAG,EAAQ,KAAK,KAAK,EAAU,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAA0C,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAc/D,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIX,CAAC;AAEH,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AACtC,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAWjD,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAWrE,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,GAAG,CACP,EAAE,EAAE,QAAQ,CAAC,EAAE,EACf,MAAM,EAAE,GAAG,EAAE,EACb,EAAE,OAAO,EAAE,GAAE,UAAe,GAC3B,OAAO,CAAC,IAAI,CAAC;IAUV,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAS5D"}
@@ -4,8 +4,7 @@ import { AsyncTermSearcher } from '@synnaxlabs/x/search';
4
4
  import { z } from 'zod';
5
5
  import { framer } from '../framer';
6
6
  import { group } from './group';
7
- import { ID, RelationshipChange, Resource, ResourceChange } from './payload';
8
-
7
+ import { CrudeID, ID, IDPayload, RelationshipChange, RelationshipDirection, Resource, ResourceChange } from './payload';
9
8
  declare const retrieveReqZ: z.ZodObject<{
10
9
  ids: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
10
  type: z.ZodUnion<[z.ZodLiteral<"label">, z.ZodLiteral<"builtin">, z.ZodLiteral<"cluster">, z.ZodLiteral<"channel">, z.ZodLiteral<"node">, z.ZodLiteral<"group">, z.ZodLiteral<"range">, z.ZodLiteral<"range-alias">, z.ZodLiteral<"user">, z.ZodLiteral<"workspace">, z.ZodLiteral<"schematic">, z.ZodLiteral<"lineplot">, z.ZodLiteral<"rack">, z.ZodLiteral<"device">, z.ZodLiteral<"task">, z.ZodLiteral<"policy">]>;
@@ -51,6 +50,7 @@ declare const retrieveReqZ: z.ZodObject<{
51
50
  }>;
52
51
  type RetrieveRequest = z.infer<typeof retrieveReqZ>;
53
52
  export type RetrieveOptions = Pick<RetrieveRequest, "includeSchema" | "excludeFieldData">;
53
+ export declare const parseIDs: (ids: CrudeID | CrudeID[] | string | string[]) => IDPayload[];
54
54
  /** The core client class for executing queries against a Synnax cluster ontology */
55
55
  export declare class Client implements AsyncTermSearcher<string, string, Resource> {
56
56
  readonly type: string;
@@ -59,24 +59,119 @@ export declare class Client implements AsyncTermSearcher<string, string, Resourc
59
59
  private readonly writer;
60
60
  private readonly framer;
61
61
  constructor(unary: UnaryClient, framer: framer.Client);
62
+ /**
63
+ * Executes a fuzzy search on the ontology for resources with names/fields similar to the
64
+ * given term.
65
+ *
66
+ * @param term The search term.
67
+ * @param options Additional options for the search.
68
+ * @param options.includeSchema Whether to include the schema of the resources in the
69
+ * results.
70
+ * @param options.excludeFieldData Whether to exclude the field data of the resources in
71
+ * the results.
72
+ * @returns A list of resources that match the search term.
73
+ */
62
74
  search(term: string, options?: RetrieveOptions): Promise<Resource[]>;
63
- retrieve(id: ID | string, options?: RetrieveOptions): Promise<Resource>;
64
- retrieve(ids: ID[] | string[], options?: RetrieveOptions): Promise<Resource[]>;
75
+ /**
76
+ * Retrieves the resource in the ontology with the given ID.
77
+ * @param id The ID of the resource to retrieve.
78
+ * @param options Additional options for the retrieval.
79
+ * @param options.includeSchema Whether to include the schema of the resource in the
80
+ * results.
81
+ * @param options.excludeFieldData Whether to exclude the field data of the resource in
82
+ * the results.
83
+ * @returns The resource with the given ID.
84
+ * @throws {QueryError} If no resource is found with the given ID.
85
+ */
86
+ retrieve(id: CrudeID, options?: RetrieveOptions): Promise<Resource>;
87
+ /**
88
+ * Retrieves the resources in the ontology with the given IDs.
89
+ * @param ids The IDs of the resources to retrieve.
90
+ * @param options Additional options for the retrieval.
91
+ * @param options.includeSchema Whether to include the schema of the resources in the
92
+ * results.
93
+ * @param options.excludeFieldData Whether to exclude the field data of the resources in
94
+ * the results.
95
+ * @returns The resources with the given IDs.
96
+ * @throws {QueryError} If no resource is found with any of the given IDs.
97
+ */
98
+ retrieve(ids: CrudeID[], options?: RetrieveOptions): Promise<Resource[]>;
99
+ /**
100
+ * Retrieves resources from the ontology in a paginated manner.
101
+ *
102
+ * @param offset - The offset of the page (i.e. how many resources to skip before
103
+ * returning results).
104
+ * @param limit - The maximum number of resources to return.
105
+ * @param options - Additional options for the retrieval.
106
+ * @returns A list of resources in the ontology.
107
+ */
65
108
  page(offset: number, limit: number, options?: RetrieveOptions): Promise<Resource[]>;
66
- retrieveChildren(ids: ID | ID[], options?: RetrieveOptions): Promise<Resource[]>;
67
- retrieveParents(ids: ID | ID[], options?: RetrieveOptions): Promise<Resource[]>;
68
- addChildren(id: ID, ...children: ID[]): Promise<void>;
69
- removeChildren(id: ID, ...children: ID[]): Promise<void>;
70
- moveChildren(from: ID, to: ID, ...children: ID[]): Promise<void>;
109
+ /**
110
+ * Retrieves the children of the resources with the given IDs.
111
+ * @param ids - The IDs of the resources whose children to retrieve.
112
+ * @param options - Additional options for the retrieval.
113
+ * @param options.includeSchema - Whether to include the schema of the children in the
114
+ * results.
115
+ * @param options.excludeFieldData - Whether to exclude the field data of the children in
116
+ * the results.
117
+ * @returns The children of the resources with the given IDs.
118
+ */
119
+ retrieveChildren(ids: CrudeID | CrudeID[], options?: RetrieveOptions): Promise<Resource[]>;
120
+ /**
121
+ * Retrieves the parents of the resources with the given IDs.
122
+ *
123
+ * @param ids the IDs of the resources whose parents to retrieve
124
+ * @param options additional options for the retrieval
125
+ * @param options.includeSchema whether to include the schema of the parents in the results
126
+ * @param options.excludeFieldData whether to exclude the field data of the parents in the results
127
+ * @returns the parents of the resources with the given IDs
128
+ */
129
+ retrieveParents(ids: CrudeID | CrudeID[], options?: RetrieveOptions): Promise<Resource[]>;
130
+ /**
131
+ * Adds children to a resource in the ontology.
132
+ * @param id The ID of the resource to add children to.
133
+ * @param children The IDs of the children to add.
134
+ */
135
+ addChildren(id: CrudeID, ...children: CrudeID[]): Promise<void>;
136
+ /**
137
+ * Removes children from a resource in the ontology.
138
+ * @param id The ID of the resource to remove children from.
139
+ * @param children The IDs of the children
140
+ * to remove.
141
+ */
142
+ removeChildren(id: CrudeID, ...children: CrudeID[]): Promise<void>;
143
+ /**
144
+ * Moves children from one resource to another in the ontology.
145
+ * @param from The ID of the resource to move children from.
146
+ * @param to The ID of the resource to move children to.
147
+ * @param children The IDs of the children to move.
148
+ */
149
+ moveChildren(from: CrudeID, to: CrudeID, ...children: CrudeID[]): Promise<void>;
150
+ /**
151
+ * Opens an observable that can be used to subscribe to changes in both the ontology's
152
+ * resources and relationships.
153
+ * @see ChangeTracker for more information.
154
+ * @returns An observable that emits changes to the ontology's resources and relationships.
155
+ */
71
156
  openChangeTracker(): Promise<ChangeTracker>;
157
+ openDependentTracker(parent: ID, initial: Resource[], type?: string, direction?: RelationshipDirection): Promise<observe.ObservableAsyncCloseable<Resource[]>>;
72
158
  newSearcherWithOptions(options: RetrieveOptions): AsyncTermSearcher<string, string, Resource>;
73
159
  private execRetrieve;
74
160
  }
161
+ /**
162
+ * A class that tracks changes to the ontology's resources and relationships.
163
+ */
75
164
  export declare class ChangeTracker {
76
- private readonly resourceObs;
77
- private readonly relationshipObs;
165
+ /**
166
+ * An observable that emits changes to the ontology's relationships.
167
+ */
78
168
  readonly relationships: observe.Observable<RelationshipChange[]>;
169
+ /**
170
+ * An observable that emits changes to the ontology's resources.
171
+ */
79
172
  readonly resources: observe.Observable<ResourceChange[]>;
173
+ private readonly resourceObs;
174
+ private readonly relationshipObs;
80
175
  private readonly streamer;
81
176
  private readonly client;
82
177
  private readonly closePromise;
@@ -90,5 +185,23 @@ export declare class ChangeTracker {
90
185
  private parseResourceDeletes;
91
186
  static open(client: framer.Client, retriever: Client): Promise<ChangeTracker>;
92
187
  }
188
+ /**
189
+ * A class that tracks a resource (called the 'target' resource) and related resources
190
+ * (called 'dependents') of a particular type (called the 'type') in a Synnax cluster
191
+ * ontology.
192
+ */
193
+ export declare class DependentTracker extends observe.Observer<Resource[]> implements observe.ObservableAsyncCloseable<Resource[]> {
194
+ private readonly internal;
195
+ private readonly target;
196
+ private readonly direction;
197
+ private dependents;
198
+ private readonly client;
199
+ private readonly type;
200
+ private constructor();
201
+ static open(from: ID, client: Client, framer: framer.Client, initial: Resource[], type?: string, direction?: RelationshipDirection): Promise<DependentTracker>;
202
+ private handleResourceChange;
203
+ private handleRelationshipChange;
204
+ close(): Promise<void>;
205
+ }
93
206
  export {};
94
207
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ontology/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ontology/client.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,OAAO,EACP,EAAE,EACF,SAAS,EAGT,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,QAAQ,EACb,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAK5B,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,eAAe,EACf,eAAe,GAAG,kBAAkB,CACrC,CAAC;AAMF,eAAO,MAAM,QAAQ,QAAS,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,KAAG,SAAS,EACnC,CAAC;AAE/C,oFAAoF;AACpF,qBAAa,MAAO,YAAW,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAc;IACnC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;IAOrD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI1E;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAEzE;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa9E;;;;;;;;OAQG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItB;;;;;;;;;OASG;IACG,gBAAgB,CACpB,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItB;;;;;;;;OAQG;IACG,eAAe,CACnB,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItB;;;;OAIG;IACG,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;;;;OAKG;IACG,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;;OAKG;IACG,YAAY,CAChB,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,OAAO,EACX,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC;IAI3C,oBAAoB,CACxB,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,QAAQ,EAAE,EACnB,IAAI,GAAE,MAAiB,EACvB,SAAS,GAAE,qBAA8B,GACxC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAWxD,sBAAsB,CACpB,OAAO,EAAE,eAAe,GACvB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;YAShC,YAAY;CAU3B;AAOD;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjE;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;IAU/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKd,KAAK;YAML,MAAM;IAYpB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,wBAAwB;YASlB,iBAAiB;IAkB/B,OAAO,CAAC,oBAAoB;WAUf,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CASpF;AAED;;;;GAIG;AACH,qBAAa,gBACX,SAAQ,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CACnC,YAAW,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;IAEvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B,OAAO;WAkBM,IAAI,CACf,IAAI,EAAE,EAAE,EACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,OAAO,EAAE,QAAQ,EAAE,EACnB,IAAI,GAAE,MAAiB,EACvB,SAAS,GAAE,qBAA8B,GACxC,OAAO,CAAC,gBAAgB,CAAC;IAK5B,OAAO,CAAC,oBAAoB,CAO1B;IAEF,OAAO,CAAC,wBAAwB,CAwB9B;IAEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -1,7 +1,6 @@
1
1
  import { UnaryClient } from '@synnaxlabs/freighter';
2
2
  import { Group } from './group';
3
3
  import { ID } from '../payload';
4
-
5
4
  export declare class Client {
6
5
  private readonly creator;
7
6
  constructor(unary: UnaryClient);