@synnaxlabs/client 0.43.0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/dist/access/payload.d.ts +1 -1
  3. package/dist/access/payload.d.ts.map +1 -1
  4. package/dist/access/policy/client.d.ts +263 -6
  5. package/dist/access/policy/client.d.ts.map +1 -1
  6. package/dist/access/policy/external.d.ts +0 -1
  7. package/dist/access/policy/external.d.ts.map +1 -1
  8. package/dist/access/policy/payload.d.ts +105 -93
  9. package/dist/access/policy/payload.d.ts.map +1 -1
  10. package/dist/auth/auth.d.ts +1 -1
  11. package/dist/auth/auth.d.ts.map +1 -1
  12. package/dist/channel/client.d.ts +12 -13
  13. package/dist/channel/client.d.ts.map +1 -1
  14. package/dist/channel/payload.d.ts +77 -19
  15. package/dist/channel/payload.d.ts.map +1 -1
  16. package/dist/channel/retriever.d.ts +9 -16
  17. package/dist/channel/retriever.d.ts.map +1 -1
  18. package/dist/channel/writer.d.ts +1 -1
  19. package/dist/channel/writer.d.ts.map +1 -1
  20. package/dist/client.cjs +27 -135
  21. package/dist/client.d.ts +3 -3
  22. package/dist/client.d.ts.map +1 -1
  23. package/dist/client.js +8619 -28938
  24. package/dist/connection/checker.d.ts +1 -1
  25. package/dist/connection/checker.d.ts.map +1 -1
  26. package/dist/control/client.d.ts +1 -0
  27. package/dist/control/client.d.ts.map +1 -1
  28. package/dist/control/state.d.ts +6 -6
  29. package/dist/control/state.d.ts.map +1 -1
  30. package/dist/errors.d.ts +18 -5
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/framer/adapter.d.ts +3 -3
  33. package/dist/framer/adapter.d.ts.map +1 -1
  34. package/dist/framer/client.d.ts +4 -13
  35. package/dist/framer/client.d.ts.map +1 -1
  36. package/dist/framer/codec.d.ts +1 -1
  37. package/dist/framer/codec.d.ts.map +1 -1
  38. package/dist/framer/deleter.d.ts +5 -5
  39. package/dist/framer/deleter.d.ts.map +1 -1
  40. package/dist/framer/frame.d.ts +5 -7
  41. package/dist/framer/frame.d.ts.map +1 -1
  42. package/dist/framer/streamProxy.d.ts +1 -1
  43. package/dist/framer/streamProxy.d.ts.map +1 -1
  44. package/dist/framer/streamer.d.ts +139 -20
  45. package/dist/framer/streamer.d.ts.map +1 -1
  46. package/dist/framer/writer.d.ts +222 -33
  47. package/dist/framer/writer.d.ts.map +1 -1
  48. package/dist/hardware/device/client.d.ts +49 -28
  49. package/dist/hardware/device/client.d.ts.map +1 -1
  50. package/dist/hardware/device/payload.d.ts +126 -46
  51. package/dist/hardware/device/payload.d.ts.map +1 -1
  52. package/dist/hardware/rack/client.d.ts +78 -22
  53. package/dist/hardware/rack/client.d.ts.map +1 -1
  54. package/dist/hardware/rack/payload.d.ts +99 -56
  55. package/dist/hardware/rack/payload.d.ts.map +1 -1
  56. package/dist/hardware/task/client.d.ts +100 -41
  57. package/dist/hardware/task/client.d.ts.map +1 -1
  58. package/dist/hardware/task/payload.d.ts +83 -61
  59. package/dist/hardware/task/payload.d.ts.map +1 -1
  60. package/dist/index.d.ts +2 -2
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/label/client.d.ts +138 -20
  63. package/dist/label/client.d.ts.map +1 -1
  64. package/dist/label/external.d.ts +0 -2
  65. package/dist/label/external.d.ts.map +1 -1
  66. package/dist/label/payload.d.ts +4 -5
  67. package/dist/label/payload.d.ts.map +1 -1
  68. package/dist/ontology/client.d.ts +45 -135
  69. package/dist/ontology/client.d.ts.map +1 -1
  70. package/dist/ontology/group/group.d.ts +3 -3
  71. package/dist/ontology/group/group.d.ts.map +1 -1
  72. package/dist/ontology/group/payload.d.ts +3 -27
  73. package/dist/ontology/group/payload.d.ts.map +1 -1
  74. package/dist/ontology/payload.d.ts +113 -243
  75. package/dist/ontology/payload.d.ts.map +1 -1
  76. package/dist/ontology/writer.d.ts +4 -4
  77. package/dist/ontology/writer.d.ts.map +1 -1
  78. package/dist/ranger/alias.d.ts +11 -5
  79. package/dist/ranger/alias.d.ts.map +1 -1
  80. package/dist/ranger/client.d.ts +87 -30
  81. package/dist/ranger/client.d.ts.map +1 -1
  82. package/dist/ranger/external.d.ts +1 -1
  83. package/dist/ranger/external.d.ts.map +1 -1
  84. package/dist/ranger/kv.d.ts +10 -12
  85. package/dist/ranger/kv.d.ts.map +1 -1
  86. package/dist/ranger/payload.d.ts +23 -44
  87. package/dist/ranger/payload.d.ts.map +1 -1
  88. package/dist/ranger/writer.d.ts +22 -19
  89. package/dist/ranger/writer.d.ts.map +1 -1
  90. package/dist/testutil/client.d.ts +4 -0
  91. package/dist/testutil/client.d.ts.map +1 -0
  92. package/dist/user/client.d.ts +59 -6
  93. package/dist/user/client.d.ts.map +1 -1
  94. package/dist/user/payload.d.ts +4 -6
  95. package/dist/user/payload.d.ts.map +1 -1
  96. package/dist/user/retriever.d.ts +2 -2
  97. package/dist/user/retriever.d.ts.map +1 -1
  98. package/dist/util/decodeJSONString.d.ts +2 -2
  99. package/dist/util/decodeJSONString.d.ts.map +1 -1
  100. package/dist/util/parseWithoutKeyConversion.d.ts +2 -2
  101. package/dist/util/parseWithoutKeyConversion.d.ts.map +1 -1
  102. package/dist/util/retrieve.d.ts +1 -1
  103. package/dist/util/retrieve.d.ts.map +1 -1
  104. package/dist/util/zod.d.ts +1 -1
  105. package/dist/util/zod.d.ts.map +1 -1
  106. package/dist/workspace/client.d.ts +17 -6
  107. package/dist/workspace/client.d.ts.map +1 -1
  108. package/dist/workspace/lineplot/client.d.ts +2 -2
  109. package/dist/workspace/lineplot/client.d.ts.map +1 -1
  110. package/dist/workspace/lineplot/payload.d.ts +8 -9
  111. package/dist/workspace/lineplot/payload.d.ts.map +1 -1
  112. package/dist/workspace/log/client.d.ts +2 -2
  113. package/dist/workspace/log/client.d.ts.map +1 -1
  114. package/dist/workspace/log/payload.d.ts +8 -9
  115. package/dist/workspace/log/payload.d.ts.map +1 -1
  116. package/dist/workspace/payload.d.ts +10 -11
  117. package/dist/workspace/payload.d.ts.map +1 -1
  118. package/dist/workspace/schematic/client.d.ts +2 -2
  119. package/dist/workspace/schematic/client.d.ts.map +1 -1
  120. package/dist/workspace/schematic/payload.d.ts +10 -11
  121. package/dist/workspace/schematic/payload.d.ts.map +1 -1
  122. package/dist/workspace/table/client.d.ts +2 -2
  123. package/dist/workspace/table/client.d.ts.map +1 -1
  124. package/dist/workspace/table/payload.d.ts +10 -11
  125. package/dist/workspace/table/payload.d.ts.map +1 -1
  126. package/examples/node/package-lock.json +47 -39
  127. package/examples/node/package.json +2 -1
  128. package/examples/node/streamWrite.js +5 -11
  129. package/package.json +14 -13
  130. package/src/access/payload.ts +1 -1
  131. package/src/access/policy/client.ts +87 -32
  132. package/src/access/policy/external.ts +0 -1
  133. package/src/access/policy/payload.ts +4 -4
  134. package/src/access/policy/policy.spec.ts +86 -83
  135. package/src/auth/auth.spec.ts +29 -18
  136. package/src/auth/auth.ts +1 -1
  137. package/src/channel/batchRetriever.spec.ts +4 -9
  138. package/src/channel/channel.spec.ts +24 -6
  139. package/src/channel/client.ts +31 -46
  140. package/src/channel/payload.ts +13 -14
  141. package/src/channel/retriever.ts +26 -41
  142. package/src/channel/writer.ts +3 -3
  143. package/src/client.ts +4 -4
  144. package/src/connection/checker.ts +1 -1
  145. package/src/connection/connection.spec.ts +31 -23
  146. package/src/control/client.ts +2 -2
  147. package/src/control/state.spec.ts +3 -3
  148. package/src/control/state.ts +1 -1
  149. package/src/errors.spec.ts +9 -5
  150. package/src/errors.ts +28 -15
  151. package/src/framer/adapter.spec.ts +118 -9
  152. package/src/framer/adapter.ts +24 -11
  153. package/src/framer/client.spec.ts +125 -2
  154. package/src/framer/client.ts +41 -47
  155. package/src/framer/codec.ts +1 -1
  156. package/src/framer/deleter.spec.ts +2 -2
  157. package/src/framer/deleter.ts +1 -1
  158. package/src/framer/frame.ts +1 -4
  159. package/src/framer/iterator.spec.ts +8 -8
  160. package/src/framer/iterator.ts +1 -1
  161. package/src/framer/streamProxy.ts +1 -1
  162. package/src/framer/streamer.spec.ts +185 -36
  163. package/src/framer/streamer.ts +28 -36
  164. package/src/framer/writer.spec.ts +6 -6
  165. package/src/framer/writer.ts +97 -111
  166. package/src/hardware/device/client.ts +45 -131
  167. package/src/hardware/device/device.spec.ts +163 -52
  168. package/src/hardware/device/payload.ts +10 -21
  169. package/src/hardware/rack/client.ts +87 -105
  170. package/src/hardware/rack/payload.ts +4 -13
  171. package/src/hardware/rack/rack.spec.ts +28 -35
  172. package/src/hardware/task/client.ts +335 -291
  173. package/src/hardware/task/payload.ts +86 -62
  174. package/src/hardware/task/task.spec.ts +208 -32
  175. package/src/index.ts +2 -1
  176. package/src/label/client.ts +100 -95
  177. package/src/label/external.ts +0 -2
  178. package/src/label/label.spec.ts +8 -6
  179. package/src/label/payload.ts +3 -4
  180. package/src/ontology/client.ts +41 -324
  181. package/src/ontology/group/group.spec.ts +2 -2
  182. package/src/ontology/group/group.ts +4 -5
  183. package/src/ontology/group/payload.ts +2 -25
  184. package/src/ontology/group/writer.ts +1 -1
  185. package/src/ontology/ontology.spec.ts +355 -41
  186. package/src/ontology/payload.ts +74 -112
  187. package/src/ontology/writer.ts +8 -17
  188. package/src/ranger/alias.ts +19 -37
  189. package/src/ranger/client.ts +118 -150
  190. package/src/ranger/external.ts +9 -1
  191. package/src/ranger/kv.ts +6 -27
  192. package/src/ranger/payload.ts +21 -37
  193. package/src/ranger/ranger.spec.ts +37 -56
  194. package/src/ranger/writer.ts +1 -1
  195. package/src/{signals/index.ts → testutil/client.ts} +11 -1
  196. package/src/user/client.ts +122 -47
  197. package/src/user/payload.ts +2 -5
  198. package/src/user/retriever.ts +1 -1
  199. package/src/user/user.spec.ts +31 -31
  200. package/src/user/writer.ts +1 -1
  201. package/src/util/decodeJSONString.ts +3 -3
  202. package/src/util/parseWithoutKeyConversion.ts +2 -2
  203. package/src/util/retrieve.ts +1 -1
  204. package/src/util/zod.ts +1 -1
  205. package/src/workspace/client.ts +20 -36
  206. package/src/workspace/lineplot/client.ts +5 -7
  207. package/src/workspace/lineplot/lineplot.spec.ts +2 -2
  208. package/src/workspace/lineplot/payload.ts +4 -7
  209. package/src/workspace/log/client.ts +5 -7
  210. package/src/workspace/log/log.spec.ts +2 -2
  211. package/src/workspace/log/payload.ts +4 -7
  212. package/src/workspace/payload.ts +4 -7
  213. package/src/workspace/schematic/client.ts +5 -7
  214. package/src/workspace/schematic/payload.ts +4 -7
  215. package/src/workspace/schematic/schematic.spec.ts +2 -2
  216. package/src/workspace/table/client.ts +5 -7
  217. package/src/workspace/table/payload.ts +4 -7
  218. package/src/workspace/table/table.spec.ts +2 -2
  219. package/src/workspace/workspace.spec.ts +2 -2
  220. package/dist/access/policy/ontology.d.ts +0 -5
  221. package/dist/access/policy/ontology.d.ts.map +0 -1
  222. package/dist/access/policy/retriever.d.ts +0 -40
  223. package/dist/access/policy/retriever.d.ts.map +0 -1
  224. package/dist/access/policy/writer.d.ts +0 -9
  225. package/dist/access/policy/writer.d.ts.map +0 -1
  226. package/dist/label/retriever.d.ts +0 -14
  227. package/dist/label/retriever.d.ts.map +0 -1
  228. package/dist/label/writer.d.ts +0 -54
  229. package/dist/label/writer.d.ts.map +0 -1
  230. package/dist/setupspecs.d.ts +0 -5
  231. package/dist/setupspecs.d.ts.map +0 -1
  232. package/dist/signals/external.d.ts +0 -2
  233. package/dist/signals/external.d.ts.map +0 -1
  234. package/dist/signals/index.d.ts +0 -2
  235. package/dist/signals/index.d.ts.map +0 -1
  236. package/dist/signals/observable.d.ts +0 -12
  237. package/dist/signals/observable.d.ts.map +0 -1
  238. package/src/access/policy/ontology.ts +0 -17
  239. package/src/access/policy/retriever.ts +0 -44
  240. package/src/access/policy/writer.ts +0 -65
  241. package/src/label/retriever.ts +0 -63
  242. package/src/label/writer.ts +0 -95
  243. package/src/setupspecs.ts +0 -27
  244. package/src/signals/external.ts +0 -10
  245. package/src/signals/observable.ts +0 -42
@@ -7,125 +7,130 @@
7
7
  // License, use of this software will be governed by the Apache License, Version 2.0,
8
8
  // included in the file licenses/APL.txt.
9
9
 
10
- import { type UnaryClient } from "@synnaxlabs/freighter";
11
- import { observe } from "@synnaxlabs/x";
12
- import { type AsyncTermSearcher } from "@synnaxlabs/x/search";
13
-
14
- import { type framer } from "@/framer";
15
- import { type Key, type Label, labelZ, ONTOLOGY_TYPE } from "@/label/payload";
16
- import { Retriever } from "@/label/retriever";
17
- import { type New, type SetOptions, Writer } from "@/label/writer";
10
+ import { sendRequired, type UnaryClient } from "@synnaxlabs/freighter";
11
+ import { array } from "@synnaxlabs/x/array";
12
+ import z from "zod";
13
+
14
+ import { type Key, keyZ, type Label, labelZ } from "@/label/payload";
18
15
  import { ontology } from "@/ontology";
19
- import { signals } from "@/signals";
16
+ import { checkForMultipleOrNoResults } from "@/util/retrieve";
17
+ import { nullableArrayZ } from "@/util/zod";
20
18
 
21
- const SET_CHANNEL_NAME = "sy_label_set";
22
- const DELETE_CHANNEL_NAME = "sy_label_delete";
19
+ export const SET_CHANNEL_NAME = "sy_label_set";
20
+ export const DELETE_CHANNEL_NAME = "sy_label_delete";
23
21
 
24
- export class Client implements AsyncTermSearcher<string, Key, Label> {
25
- readonly type: string = "label";
26
- private readonly retriever: Retriever;
27
- private readonly writer: Writer;
28
- private readonly frameClient: framer.Client;
29
- private readonly ontology: ontology.Client;
30
-
31
- constructor(
32
- client: UnaryClient,
33
- frameClient: framer.Client,
34
- ontology: ontology.Client,
35
- ) {
36
- this.writer = new Writer(client);
37
- this.retriever = new Retriever(client);
38
- this.frameClient = frameClient;
39
- this.ontology = ontology;
40
- }
22
+ export const newZ = labelZ.extend({ key: keyZ.optional() });
23
+ export interface New extends z.infer<typeof newZ> {}
41
24
 
42
- async search(term: string): Promise<Label[]> {
43
- return await this.retriever.search(term);
44
- }
25
+ const createReqZ = z.object({ labels: newZ.array() });
26
+ const createResZ = z.object({ labels: labelZ.array() });
27
+ const deleteReqZ = z.object({ keys: keyZ.array() });
28
+ const setReqZ = z.object({
29
+ id: ontology.idZ,
30
+ labels: keyZ.array(),
31
+ replace: z.boolean().optional(),
32
+ });
45
33
 
46
- async retrieve(key: Key): Promise<Label>;
47
- async retrieve(keys: Key[]): Promise<Label[]>;
48
- async retrieve(keys: Key | Key[]): Promise<Label | Label[]> {
49
- const isMany = Array.isArray(keys);
50
- const res = await this.retriever.retrieve(keys);
51
- return isMany ? res : res[0];
52
- }
34
+ interface SetReq extends z.infer<typeof setReqZ> {}
35
+ export interface SetOptions extends Pick<SetReq, "replace"> {}
36
+
37
+ const removeReqZ = setReqZ.omit({ replace: true });
38
+ const emptyResZ = z.object({});
39
+
40
+ const CREATE_ENDPOINT = "/label/create";
41
+ const DELETE_ENDPOINT = "/label/delete";
42
+ const SET_ENDPOINT = "/label/set";
43
+ const REMOVE_ENDPOINT = "/label/remove";
44
+ const RETRIEVE_ENDPOINT = "/label/retrieve";
45
+
46
+ const retrieveRequestZ = z.object({
47
+ keys: keyZ.array().optional(),
48
+ for: ontology.idZ.optional(),
49
+ searchTerm: z.string().optional(),
50
+ offset: z.number().optional(),
51
+ limit: z.number().optional(),
52
+ });
53
+
54
+ const singleRetrieveArgsZ = z
55
+ .object({ key: keyZ })
56
+ .transform(({ key }) => ({ keys: [key] }));
57
+
58
+ const retrieveArgsZ = z.union([singleRetrieveArgsZ, retrieveRequestZ]);
59
+
60
+ export type RetrieveArgs = z.input<typeof retrieveArgsZ>;
61
+ export type SingleRetrieveArgs = z.input<typeof singleRetrieveArgsZ>;
62
+ export type MultiRetrieveArgs = z.input<typeof retrieveRequestZ>;
63
+
64
+ const retrieveResponseZ = z.object({ labels: nullableArrayZ(labelZ) });
53
65
 
54
- async retrieveFor(id: ontology.CrudeID): Promise<Label[]> {
55
- return await this.retriever.retrieveFor(new ontology.ID(id));
66
+ export class Client {
67
+ readonly type: string = "label";
68
+ private readonly client: UnaryClient;
69
+
70
+ constructor(client: UnaryClient) {
71
+ this.client = client;
56
72
  }
57
73
 
58
- async label(
59
- id: ontology.CrudeID,
60
- labels: Key[],
61
- opts: SetOptions = {},
62
- ): Promise<void> {
63
- await this.writer.set(new ontology.ID(id), labels, opts);
74
+ async retrieve(args: SingleRetrieveArgs): Promise<Label>;
75
+ async retrieve(args: MultiRetrieveArgs): Promise<Label[]>;
76
+ async retrieve(args: RetrieveArgs): Promise<Label | Label[]> {
77
+ const isSingle = "key" in args;
78
+ const res = await sendRequired(
79
+ this.client,
80
+ RETRIEVE_ENDPOINT,
81
+ args,
82
+ retrieveArgsZ,
83
+ retrieveResponseZ,
84
+ );
85
+ checkForMultipleOrNoResults("Label", args, res.labels, isSingle);
86
+ return isSingle ? res.labels[0] : res.labels;
64
87
  }
65
88
 
66
- async removeLabels(id: ontology.CrudeID, labels: Key[]): Promise<void> {
67
- await this.writer.remove(new ontology.ID(id), labels);
89
+ async label(id: ontology.ID, labels: Key[], opts: SetOptions = {}): Promise<void> {
90
+ await sendRequired<typeof setReqZ, typeof emptyResZ>(
91
+ this.client,
92
+ SET_ENDPOINT,
93
+ { id, labels, replace: opts.replace },
94
+ setReqZ,
95
+ emptyResZ,
96
+ );
68
97
  }
69
98
 
70
- async page(offset: number, limit: number): Promise<Label[]> {
71
- return await this.retriever.page(offset, limit);
99
+ async remove(id: ontology.ID, labels: Key[]): Promise<void> {
100
+ await sendRequired<typeof removeReqZ, typeof emptyResZ>(
101
+ this.client,
102
+ REMOVE_ENDPOINT,
103
+ { id, labels },
104
+ removeReqZ,
105
+ emptyResZ,
106
+ );
72
107
  }
73
108
 
74
109
  async create(label: New): Promise<Label>;
75
110
  async create(labels: New[]): Promise<Label[]>;
76
111
  async create(labels: New | New[]): Promise<Label | Label[]> {
77
112
  const isMany = Array.isArray(labels);
78
- const res = await this.writer.create(labels);
79
- return isMany ? res : res[0];
113
+ const res = await sendRequired<typeof createReqZ, typeof createResZ>(
114
+ this.client,
115
+ CREATE_ENDPOINT,
116
+ { labels: array.toArray(labels) },
117
+ createReqZ,
118
+ createResZ,
119
+ );
120
+ return isMany ? res.labels : res.labels[0];
80
121
  }
81
122
 
82
123
  async delete(key: Key): Promise<void>;
83
124
  async delete(keys: Key[]): Promise<void>;
84
125
  async delete(keys: Key | Key[]): Promise<void> {
85
- await this.writer.delete(keys);
86
- }
87
-
88
- async openChangeTracker(): Promise<signals.Observable<string, Label>> {
89
- return await signals.openObservable<string, Label>(
90
- this.frameClient,
91
- SET_CHANNEL_NAME,
92
- DELETE_CHANNEL_NAME,
93
- decodeChanges,
94
- );
95
- }
96
-
97
- async trackLabelsOf(
98
- id: ontology.CrudeID,
99
- ): Promise<observe.ObservableAsyncCloseable<Label[]>> {
100
- const wrapper = new observe.Observer<Label[]>();
101
- const initial = (await this.retrieveFor(id)).map((l) => ({
102
- id: ontologyID(l.key),
103
- key: l.key,
104
- name: l.name,
105
- data: l,
106
- }));
107
- const base = await this.ontology.openDependentTracker({
108
- target: new ontology.ID(id),
109
- dependents: initial,
110
- relationshipType: "labeled_by",
111
- });
112
- base.onChange((resources: ontology.Resource[]) =>
113
- wrapper.notify(
114
- resources.map((r) => ({
115
- key: r.id.key,
116
- color: r.data?.color as string,
117
- name: r.data?.name as string,
118
- })),
119
- ),
126
+ await sendRequired<typeof deleteReqZ, typeof emptyResZ>(
127
+ this.client,
128
+ DELETE_ENDPOINT,
129
+ { keys: array.toArray(keys) },
130
+ deleteReqZ,
131
+ emptyResZ,
120
132
  );
121
- return wrapper;
122
133
  }
123
134
  }
124
135
 
125
- const decodeChanges: signals.Decoder<string, Label> = (variant, data) => {
126
- if (variant === "delete") return data.toUUIDs().map((v) => ({ variant, key: v }));
127
- return data.parseJSON(labelZ).map((l) => ({ variant, key: l.key, value: l }));
128
- };
129
-
130
- export const ontologyID = (key: Key): ontology.ID =>
131
- new ontology.ID({ type: ONTOLOGY_TYPE, key });
136
+ export const ontologyID = (key: Key): ontology.ID => ({ type: "label", key });
@@ -9,5 +9,3 @@
9
9
 
10
10
  export * from "@/label/client";
11
11
  export * from "@/label/payload";
12
- export * from "@/label/retriever";
13
- export * from "@/label/writer";
@@ -10,9 +10,9 @@
10
10
  import { describe, expect, it } from "vitest";
11
11
 
12
12
  import { label } from "@/label";
13
- import { newClient } from "@/setupspecs";
13
+ import { newTestClient } from "@/testutil/client";
14
14
 
15
- const client = newClient();
15
+ const client = newTestClient();
16
16
 
17
17
  describe("Label", () => {
18
18
  describe("create", () => {
@@ -25,7 +25,7 @@ describe("Label", () => {
25
25
  describe("retrieve", () => {
26
26
  it("should retrieve a label by its key", async () => {
27
27
  const v = await client.labels.create({ name: "Label", color: "#E774D0" });
28
- const retrieved = await client.labels.retrieve(v.key);
28
+ const retrieved = await client.labels.retrieve({ key: v.key });
29
29
  expect(retrieved).toEqual(v);
30
30
  });
31
31
  });
@@ -34,7 +34,9 @@ describe("Label", () => {
34
34
  it("should delete a label by its key", async () => {
35
35
  const v = await client.labels.create({ name: "Label", color: "#E774D0" });
36
36
  await client.labels.delete(v.key);
37
- await expect(async () => await client.labels.retrieve(v.key)).rejects.toThrow();
37
+ await expect(
38
+ async () => await client.labels.retrieve({ key: v.key }),
39
+ ).rejects.toThrow();
38
40
  });
39
41
  });
40
42
 
@@ -43,7 +45,7 @@ describe("Label", () => {
43
45
  const l1 = await client.labels.create({ name: "Label One", color: "#E774D)" });
44
46
  const l2 = await client.labels.create({ name: "Label Two", color: "#E774D)" });
45
47
  await client.labels.label(label.ontologyID(l1.key), [l2.key]);
46
- const labels = await client.labels.retrieveFor(label.ontologyID(l1.key));
48
+ const labels = await client.labels.retrieve({ for: label.ontologyID(l1.key) });
47
49
  expect(labels).toHaveLength(1);
48
50
  expect(labels[0].key).toEqual(l2.key);
49
51
  });
@@ -52,7 +54,7 @@ describe("Label", () => {
52
54
  const l2 = await client.labels.create({ name: "Label Two", color: "#E774D)" });
53
55
  await client.labels.label(label.ontologyID(l1.key), [l2.key]);
54
56
  await client.labels.label(label.ontologyID(l1.key), [l1.key], { replace: true });
55
- const labels = await client.labels.retrieveFor(label.ontologyID(l1.key));
57
+ const labels = await client.labels.retrieve({ for: label.ontologyID(l1.key) });
56
58
  expect(labels).toHaveLength(1);
57
59
  expect(labels[0].key).toEqual(l1.key);
58
60
  });
@@ -7,9 +7,9 @@
7
7
  // License, use of this software will be governed by the Apache License, Version 2.0,
8
8
  // included in the file licenses/APL.txt.
9
9
 
10
- import { z } from "zod/v4";
10
+ import { z } from "zod";
11
11
 
12
- export const keyZ = z.string().uuid();
12
+ export const keyZ = z.uuid();
13
13
  export type Key = z.infer<typeof keyZ>;
14
14
 
15
15
  export type Params = Key | Key[];
@@ -21,5 +21,4 @@ export const labelZ = z.object({
21
21
  });
22
22
  export interface Label extends z.infer<typeof labelZ> {}
23
23
 
24
- export const ONTOLOGY_TYPE = "label";
25
- export type OntologyType = typeof ONTOLOGY_TYPE;
24
+ export const LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE = "labeled_by";