@synnaxlabs/client 0.20.0 → 0.22.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 (262) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/.vscode/settings.json +3 -0
  3. package/README.md +13 -0
  4. package/dist/auth/auth.d.ts +7 -6
  5. package/dist/auth/auth.d.ts.map +1 -1
  6. package/dist/channel/client.d.ts +14 -11
  7. package/dist/channel/client.d.ts.map +1 -1
  8. package/dist/channel/creator.d.ts +10 -0
  9. package/dist/channel/creator.d.ts.map +1 -0
  10. package/dist/channel/payload.d.ts +6 -2
  11. package/dist/channel/payload.d.ts.map +1 -1
  12. package/dist/channel/retriever.d.ts +65 -35
  13. package/dist/channel/retriever.d.ts.map +1 -1
  14. package/dist/channel/writer.d.ts +4 -3
  15. package/dist/client.cjs +19 -22
  16. package/dist/client.cjs.map +1 -1
  17. package/dist/client.d.ts +12 -10
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +6781 -6675
  20. package/dist/client.js.map +1 -1
  21. package/dist/connection/checker.d.ts +4 -3
  22. package/dist/connection/checker.d.ts.map +1 -1
  23. package/dist/control/authority.d.ts +2 -1
  24. package/dist/control/state.d.ts +6 -4
  25. package/dist/control/state.d.ts.map +1 -1
  26. package/dist/errors.d.ts +24 -20
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/framer/adapter.d.ts +5 -4
  29. package/dist/framer/adapter.d.ts.map +1 -1
  30. package/dist/framer/client.d.ts +12 -12
  31. package/dist/framer/client.d.ts.map +1 -1
  32. package/dist/framer/frame.d.ts +13 -12
  33. package/dist/framer/frame.d.ts.map +1 -1
  34. package/dist/framer/iterator.d.ts +5 -4
  35. package/dist/framer/iterator.d.ts.map +1 -1
  36. package/dist/framer/streamProxy.d.ts +3 -2
  37. package/dist/framer/streamProxy.d.ts.map +1 -1
  38. package/dist/framer/streamer.d.ts +13 -4
  39. package/dist/framer/streamer.d.ts.map +1 -1
  40. package/dist/framer/writer.d.ts +67 -33
  41. package/dist/framer/writer.d.ts.map +1 -1
  42. package/dist/hardware/client.d.ts +4 -3
  43. package/dist/hardware/device/client.d.ts +107 -14
  44. package/dist/hardware/device/client.d.ts.map +1 -1
  45. package/dist/hardware/device/external.d.ts +0 -2
  46. package/dist/hardware/device/external.d.ts.map +1 -1
  47. package/dist/hardware/device/index.d.ts +1 -1
  48. package/dist/hardware/device/index.d.ts.map +1 -1
  49. package/dist/hardware/rack/client.d.ts +43 -20
  50. package/dist/hardware/rack/client.d.ts.map +1 -1
  51. package/dist/hardware/rack/external.d.ts +0 -2
  52. package/dist/hardware/rack/external.d.ts.map +1 -1
  53. package/dist/hardware/task/client.d.ts +197 -14
  54. package/dist/hardware/task/client.d.ts.map +1 -1
  55. package/dist/hardware/task/index.d.ts +1 -1
  56. package/dist/hardware/task/index.d.ts.map +1 -1
  57. package/dist/index.d.ts +4 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/label/client.d.ts +8 -6
  60. package/dist/label/client.d.ts.map +1 -1
  61. package/dist/label/payload.d.ts +2 -1
  62. package/dist/label/retriever.d.ts +3 -2
  63. package/dist/label/writer.d.ts +4 -3
  64. package/dist/ontology/client.d.ts +82 -14
  65. package/dist/ontology/client.d.ts.map +1 -1
  66. package/dist/ontology/external.d.ts +0 -1
  67. package/dist/ontology/external.d.ts.map +1 -1
  68. package/dist/ontology/group/client.d.ts +3 -2
  69. package/dist/ontology/group/client.d.ts.map +1 -1
  70. package/dist/ontology/group/group.d.ts +1 -0
  71. package/dist/ontology/group/payload.d.ts +2 -1
  72. package/dist/ontology/group/writer.d.ts +4 -3
  73. package/dist/ontology/payload.d.ts +71 -60
  74. package/dist/ontology/payload.d.ts.map +1 -1
  75. package/dist/ontology/writer.d.ts +3 -2
  76. package/dist/ranger/active.d.ts +3 -2
  77. package/dist/ranger/alias.d.ts +7 -6
  78. package/dist/ranger/alias.d.ts.map +1 -1
  79. package/dist/ranger/client.d.ts +162 -11
  80. package/dist/ranger/client.d.ts.map +1 -1
  81. package/dist/ranger/external.d.ts +0 -1
  82. package/dist/ranger/external.d.ts.map +1 -1
  83. package/dist/ranger/kv.d.ts +5 -3
  84. package/dist/ranger/kv.d.ts.map +1 -1
  85. package/dist/ranger/payload.d.ts +57 -50
  86. package/dist/ranger/payload.d.ts.map +1 -1
  87. package/dist/ranger/range.d.ts +12 -10
  88. package/dist/ranger/range.d.ts.map +1 -1
  89. package/dist/ranger/writer.d.ts +3 -2
  90. package/dist/setupspecs.d.ts +2 -1
  91. package/dist/signals/observable.d.ts +8 -15
  92. package/dist/signals/observable.d.ts.map +1 -1
  93. package/dist/transport.d.ts +3 -2
  94. package/dist/transport.d.ts.map +1 -1
  95. package/dist/user/payload.d.ts +2 -1
  96. package/dist/util/retrieve.d.ts +24 -0
  97. package/dist/util/retrieve.d.ts.map +1 -0
  98. package/dist/util/retrieve.spec.d.ts +2 -0
  99. package/dist/util/retrieve.spec.d.ts.map +1 -0
  100. package/dist/util/telem.d.ts +2 -1
  101. package/dist/util/telem.d.ts.map +1 -1
  102. package/dist/util/zod.d.ts +4 -0
  103. package/dist/util/zod.d.ts.map +1 -0
  104. package/dist/workspace/client.d.ts +9 -6
  105. package/dist/workspace/client.d.ts.map +1 -1
  106. package/dist/workspace/lineplot/client.d.ts +6 -5
  107. package/dist/workspace/lineplot/client.d.ts.map +1 -1
  108. package/dist/workspace/lineplot/payload.d.ts +3 -2
  109. package/dist/workspace/lineplot/payload.d.ts.map +1 -1
  110. package/dist/workspace/lineplot/retriever.d.ts +3 -2
  111. package/dist/workspace/lineplot/retriever.d.ts.map +1 -1
  112. package/dist/workspace/lineplot/writer.d.ts +7 -6
  113. package/dist/workspace/lineplot/writer.d.ts.map +1 -1
  114. package/dist/workspace/payload.d.ts +3 -2
  115. package/dist/workspace/payload.d.ts.map +1 -1
  116. package/dist/workspace/retriever.d.ts +3 -2
  117. package/dist/workspace/schematic/client.d.ts +18 -0
  118. package/dist/workspace/schematic/client.d.ts.map +1 -0
  119. package/dist/workspace/schematic/external.d.ts.map +1 -0
  120. package/dist/workspace/schematic/index.d.ts +2 -0
  121. package/dist/workspace/schematic/index.d.ts.map +1 -0
  122. package/dist/workspace/{pid → schematic}/payload.d.ts +6 -5
  123. package/dist/workspace/schematic/payload.d.ts.map +1 -0
  124. package/dist/workspace/schematic/retriever.d.ts +10 -0
  125. package/dist/workspace/schematic/retriever.d.ts.map +1 -0
  126. package/dist/workspace/schematic/schematic.spec.d.ts +2 -0
  127. package/dist/workspace/schematic/schematic.spec.d.ts.map +1 -0
  128. package/dist/workspace/{pid → schematic}/writer.d.ts +11 -10
  129. package/dist/workspace/schematic/writer.d.ts.map +1 -0
  130. package/dist/workspace/writer.d.ts +5 -4
  131. package/dist/workspace/writer.d.ts.map +1 -1
  132. package/examples/node/package-lock.json +29 -12
  133. package/examples/node/package.json +2 -2
  134. package/examples/node/streamWrite.js +8 -11
  135. package/package.json +10 -9
  136. package/src/auth/auth.spec.ts +55 -15
  137. package/src/auth/auth.ts +41 -42
  138. package/src/channel/batchRetriever.spec.ts +37 -40
  139. package/src/channel/channel.spec.ts +4 -4
  140. package/src/channel/client.ts +42 -49
  141. package/src/channel/creator.ts +37 -0
  142. package/src/channel/payload.ts +2 -1
  143. package/src/channel/retriever.ts +55 -71
  144. package/src/client.ts +23 -20
  145. package/src/connection/checker.ts +1 -1
  146. package/src/connection/connection.spec.ts +1 -6
  147. package/src/control/state.ts +3 -1
  148. package/src/errors.ts +71 -67
  149. package/src/framer/adapter.spec.ts +33 -1
  150. package/src/framer/adapter.ts +10 -6
  151. package/src/framer/client.ts +13 -12
  152. package/src/framer/frame.spec.ts +1 -1
  153. package/src/framer/frame.ts +9 -6
  154. package/src/framer/iterator.spec.ts +1 -1
  155. package/src/framer/iterator.ts +1 -1
  156. package/src/framer/streamProxy.ts +12 -13
  157. package/src/framer/streamer.spec.ts +1 -1
  158. package/src/framer/streamer.ts +25 -1
  159. package/src/framer/writer.spec.ts +49 -2
  160. package/src/framer/writer.ts +27 -2
  161. package/src/hardware/device/client.ts +155 -28
  162. package/src/hardware/device/device.spec.ts +2 -2
  163. package/src/hardware/device/external.ts +0 -2
  164. package/src/hardware/device/index.ts +2 -2
  165. package/src/hardware/rack/client.ts +139 -56
  166. package/src/hardware/rack/external.ts +0 -2
  167. package/src/hardware/rack/rack.spec.ts +20 -1
  168. package/src/hardware/task/client.ts +324 -31
  169. package/src/hardware/task/index.ts +1 -1
  170. package/src/hardware/task/task.spec.ts +41 -0
  171. package/src/index.ts +3 -4
  172. package/src/label/client.ts +3 -2
  173. package/src/label/retriever.ts +1 -1
  174. package/src/label/writer.ts +1 -1
  175. package/src/ontology/client.ts +195 -41
  176. package/src/ontology/external.ts +0 -1
  177. package/src/ontology/group/client.ts +1 -2
  178. package/src/ontology/group/payload.ts +1 -1
  179. package/src/ontology/ontology.spec.ts +16 -0
  180. package/src/ontology/payload.ts +22 -13
  181. package/src/ranger/active.ts +5 -5
  182. package/src/ranger/alias.ts +2 -2
  183. package/src/ranger/client.ts +68 -17
  184. package/src/ranger/external.ts +0 -1
  185. package/src/ranger/kv.ts +6 -1
  186. package/src/ranger/payload.ts +6 -4
  187. package/src/ranger/range.ts +4 -1
  188. package/src/ranger/ranger.spec.ts +24 -2
  189. package/src/signals/observable.ts +24 -63
  190. package/src/transport.ts +2 -1
  191. package/src/util/retrieve.spec.ts +56 -0
  192. package/src/util/retrieve.ts +103 -0
  193. package/src/util/telem.ts +1 -1
  194. package/src/util/zod.ts +4 -0
  195. package/src/workspace/client.ts +6 -4
  196. package/src/workspace/lineplot/client.ts +3 -3
  197. package/src/workspace/lineplot/linePlot.spec.ts +11 -11
  198. package/src/workspace/lineplot/payload.ts +1 -1
  199. package/src/workspace/lineplot/retriever.ts +5 -13
  200. package/src/workspace/lineplot/writer.ts +8 -7
  201. package/src/workspace/payload.ts +6 -3
  202. package/src/workspace/retriever.ts +1 -1
  203. package/src/workspace/{pid → schematic}/client.ts +10 -10
  204. package/src/workspace/{pid → schematic}/external.ts +2 -2
  205. package/src/workspace/{pid → schematic}/index.ts +1 -1
  206. package/src/workspace/{pid → schematic}/payload.ts +4 -4
  207. package/src/workspace/{pid → schematic}/retriever.ts +10 -10
  208. package/src/workspace/{pid/pid.spec.ts → schematic/schematic.spec.ts} +35 -35
  209. package/src/workspace/{pid → schematic}/writer.ts +26 -25
  210. package/src/workspace/workspace.spec.ts +7 -7
  211. package/src/workspace/writer.ts +8 -2
  212. package/dist/hardware/device/payload.d.ts +0 -30
  213. package/dist/hardware/device/payload.d.ts.map +0 -1
  214. package/dist/hardware/device/retriever.d.ts +0 -10
  215. package/dist/hardware/device/retriever.d.ts.map +0 -1
  216. package/dist/hardware/device/writer.d.ts +0 -9
  217. package/dist/hardware/device/writer.d.ts.map +0 -1
  218. package/dist/hardware/rack/payload.d.ts +0 -26
  219. package/dist/hardware/rack/payload.d.ts.map +0 -1
  220. package/dist/hardware/rack/retriever.d.ts +0 -10
  221. package/dist/hardware/rack/retriever.d.ts.map +0 -1
  222. package/dist/hardware/rack/writer.d.ts +0 -9
  223. package/dist/hardware/rack/writer.d.ts.map +0 -1
  224. package/dist/hardware/task/external.d.ts +0 -4
  225. package/dist/hardware/task/external.d.ts.map +0 -1
  226. package/dist/hardware/task/payload.d.ts +0 -42
  227. package/dist/hardware/task/payload.d.ts.map +0 -1
  228. package/dist/hardware/task/retriever.d.ts +0 -29
  229. package/dist/hardware/task/retriever.d.ts.map +0 -1
  230. package/dist/hardware/task/writer.d.ts +0 -9
  231. package/dist/hardware/task/writer.d.ts.map +0 -1
  232. package/dist/ontology/retriever.d.ts +0 -13
  233. package/dist/ontology/retriever.d.ts.map +0 -1
  234. package/dist/ontology/signals.d.ts +0 -30
  235. package/dist/ontology/signals.d.ts.map +0 -1
  236. package/dist/ranger/retriever.d.ts +0 -11
  237. package/dist/ranger/retriever.d.ts.map +0 -1
  238. package/dist/workspace/pid/client.d.ts +0 -17
  239. package/dist/workspace/pid/client.d.ts.map +0 -1
  240. package/dist/workspace/pid/external.d.ts.map +0 -1
  241. package/dist/workspace/pid/index.d.ts +0 -2
  242. package/dist/workspace/pid/index.d.ts.map +0 -1
  243. package/dist/workspace/pid/payload.d.ts.map +0 -1
  244. package/dist/workspace/pid/pid.spec.d.ts +0 -2
  245. package/dist/workspace/pid/pid.spec.d.ts.map +0 -1
  246. package/dist/workspace/pid/retriever.d.ts +0 -9
  247. package/dist/workspace/pid/retriever.d.ts.map +0 -1
  248. package/dist/workspace/pid/writer.d.ts.map +0 -1
  249. package/src/hardware/device/payload.ts +0 -27
  250. package/src/hardware/device/retriever.ts +0 -60
  251. package/src/hardware/device/writer.ts +0 -59
  252. package/src/hardware/rack/payload.ts +0 -26
  253. package/src/hardware/rack/retriever.ts +0 -68
  254. package/src/hardware/rack/writer.ts +0 -59
  255. package/src/hardware/task/external.ts +0 -12
  256. package/src/hardware/task/payload.ts +0 -40
  257. package/src/hardware/task/retriever.ts +0 -70
  258. package/src/hardware/task/writer.ts +0 -65
  259. package/src/ontology/retriever.ts +0 -91
  260. package/src/ontology/signals.ts +0 -139
  261. package/src/ranger/retriever.ts +0 -50
  262. /package/dist/workspace/{pid → schematic}/external.d.ts +0 -0
@@ -1,91 +0,0 @@
1
- // Copyright 2023 Synnax Labs, Inc.
2
- //
3
- // Use of this software is governed by the Business Source License included in the file
4
- // licenses/BSL.txt.
5
- //
6
- // As of the Change Date specified in that file, in accordance with the Business Source
7
- // License, use of this software will be governed by the Apache License, Version 2.0,
8
- // included in the file licenses/APL.txt.
9
-
10
- import { sendRequired, type UnaryClient } from "@synnaxlabs/freighter";
11
- import { toArray } from "@synnaxlabs/x";
12
- import { z } from "zod";
13
-
14
- import { ID, type Resource, idZ, resourceSchemaZ } from "@/ontology/payload";
15
-
16
- const reqZ = z.object({
17
- ids: idZ.array().optional(),
18
- children: z.boolean().optional(),
19
- parents: z.boolean().optional(),
20
- includeSchema: z.boolean().optional(),
21
- includeFieldData: z.boolean().optional(),
22
- term: z.string().optional(),
23
- });
24
-
25
- type Request = z.infer<typeof reqZ>;
26
-
27
- const resZ = z.object({
28
- resources: resourceSchemaZ.array(),
29
- });
30
-
31
- export class Retriever {
32
- private static readonly ENDPOINT = "/ontology/retrieve";
33
- private readonly client: UnaryClient;
34
-
35
- constructor(unary: UnaryClient) {
36
- this.client = unary;
37
- }
38
-
39
- async search(term: string): Promise<Resource[]> {
40
- const resources = await this.execute({ term });
41
- return resources;
42
- }
43
-
44
- async retrieve(
45
- ids: ID | ID[] | string | string[],
46
- includeSchema: boolean = true,
47
- includeFieldData: boolean = true,
48
- ): Promise<Resource[]> {
49
- return await this.execute({
50
- ids: toArray(ids).map((id) => new ID(id).payload),
51
- includeFieldData,
52
- includeSchema,
53
- });
54
- }
55
-
56
- async retrieveChildren(
57
- ids: ID | ID[],
58
- includeSchema: boolean = true,
59
- includeFieldData: boolean = true,
60
- ): Promise<Resource[]> {
61
- return await this.execute({
62
- ids: toArray(ids).map((id) => new ID(id).payload),
63
- children: true,
64
- includeSchema,
65
- includeFieldData,
66
- });
67
- }
68
-
69
- async retrieveParents(
70
- ids: ID | ID[],
71
- includeSchema: boolean = true,
72
- includeFieldData: boolean = true,
73
- ): Promise<Resource[]> {
74
- return await this.execute({
75
- ids: toArray(ids).map((id) => new ID(id).payload),
76
- parents: true,
77
- includeSchema,
78
- includeFieldData,
79
- });
80
- }
81
-
82
- private async execute(request: Request): Promise<Resource[]> {
83
- return (await sendRequired(
84
- this.client,
85
- Retriever.ENDPOINT,
86
- request,
87
- reqZ,
88
- resZ,
89
- )).resources;
90
- }
91
- }
@@ -1,139 +0,0 @@
1
- // Copyright 2023 Synnax Labs, Inc.
2
- //
3
- // Use of this software is governed by the Business Source License included in the file
4
- // licenses/BSL.txt.
5
- //
6
- // As of the Change Date specified in that file, in accordance with the Business Source
7
- // License, use of this software will be governed by the Apache License, Version 2.0,
8
- // included in the file licenses/APL.txt.
9
-
10
- import { observe, type change } from "@synnaxlabs/x";
11
-
12
- import { QueryError } from "@/errors";
13
- import { type Client as FrameClient } from "@/framer/client";
14
- import { type Frame } from "@/framer/frame";
15
- import { type Streamer as FrameStreamer } from "@/framer/streamer";
16
- import {
17
- ID,
18
- parseRelationship,
19
- type Relationship,
20
- type Resource,
21
- } from "@/ontology/payload";
22
- import { type Retriever } from "@/ontology/retriever";
23
-
24
- export type ResourceChange = change.Change<ID, Resource>;
25
- export type ResourceSet = change.Set<ID, Resource>;
26
- export type ResourceDelete = change.Delete<ID, Resource>;
27
- export type RelationshipChange = change.Change<Relationship, undefined>;
28
- export type RelationshipSet = change.Set<Relationship, undefined>;
29
- export type RelationshipDelete = change.Delete<Relationship, undefined>;
30
-
31
- const RESOURCE_SET_NAME = "sy_ontology_resource_set";
32
- const RESOURCE_DELETE_NAME = "sy_ontology_resource_delete";
33
- const RELATIONSHIP_SET_NAME = "sy_ontology_relationship_set";
34
- const RELATIONSHIP_DELETE_NAME = "sy_ontology_relationship_delete";
35
-
36
- export class ChangeTracker {
37
- private readonly resourceObs: observe.Observer<ResourceChange[]>;
38
- private readonly relationshipObs: observe.Observer<RelationshipChange[]>;
39
-
40
- readonly relationships: observe.Observable<RelationshipChange[]>;
41
- readonly resources: observe.Observable<ResourceChange[]>;
42
-
43
- private readonly streamer: FrameStreamer;
44
- private readonly retriever: Retriever;
45
- private readonly closePromise: Promise<void>;
46
-
47
- constructor(streamer: FrameStreamer, retriever: Retriever) {
48
- this.relationshipObs = new observe.Observer<RelationshipChange[]>();
49
- this.relationships = this.relationshipObs;
50
- this.resourceObs = new observe.Observer<ResourceChange[]>();
51
- this.resources = this.resourceObs;
52
- this.retriever = retriever;
53
- this.streamer = streamer;
54
- this.closePromise = this.start();
55
- }
56
-
57
- async close(): Promise<void> {
58
- this.streamer.close();
59
- await this.closePromise;
60
- }
61
-
62
- private async start(): Promise<void> {
63
- for await (const frame of this.streamer) {
64
- await this.update(frame);
65
- }
66
- }
67
-
68
- private async update(frame: Frame): Promise<void> {
69
- const resSets = await this.parseResourceSets(frame);
70
- const resDeletes = this.parseResourceDeletes(frame);
71
- const allResources = resSets.concat(resDeletes);
72
- if (allResources.length > 0) this.resourceObs.notify(resSets.concat(resDeletes));
73
- const relSets = this.parseRelationshipSets(frame);
74
- const relDeletes = this.parseRelationshipDeletes(frame);
75
- const allRelationships = relSets.concat(relDeletes);
76
- if (allRelationships.length > 0)
77
- this.relationshipObs.notify(relSets.concat(relDeletes));
78
- }
79
-
80
- private parseRelationshipSets(frame: Frame): RelationshipChange[] {
81
- const relationships = frame.get(RELATIONSHIP_SET_NAME);
82
- if (relationships.length === 0) return [];
83
- return Array.from(relationships.as("string")).map((rel) => ({
84
- variant: "set",
85
- key: parseRelationship(rel),
86
- value: undefined,
87
- }));
88
- }
89
-
90
- private parseRelationshipDeletes(frame: Frame): RelationshipChange[] {
91
- const relationships = frame.get(RELATIONSHIP_DELETE_NAME);
92
- if (relationships.length === 0) return [];
93
- return Array.from(relationships.as("string")).map((rel) => ({
94
- variant: "delete",
95
- key: parseRelationship(rel),
96
- }));
97
- }
98
-
99
- private async parseResourceSets(frame: Frame): Promise<ResourceChange[]> {
100
- const sets = frame.get(RESOURCE_SET_NAME);
101
- if (sets.length === 0) return [];
102
- // We should only ever get one series of sets
103
- const ids = Array.from(sets.as("string")).map((id: string) => new ID(id));
104
- try {
105
- const resources = await this.retriever.retrieve(ids);
106
- return resources.map((resource) => ({
107
- variant: "set",
108
- key: resource.id,
109
- value: resource,
110
- }));
111
- } catch (e) {
112
- if (e instanceof QueryError) {
113
- console.warn(e);
114
- return [];
115
- }
116
- throw e;
117
- }
118
- }
119
-
120
- private parseResourceDeletes(frame: Frame): ResourceChange[] {
121
- const deletes = frame.get(RESOURCE_DELETE_NAME);
122
- if (deletes.length === 0) return [];
123
- // We should only ever get one series of deletes
124
- return Array.from(deletes.as("string")).map((str) => ({
125
- variant: "delete",
126
- key: new ID(str),
127
- }));
128
- }
129
-
130
- static async open(client: FrameClient, retriever: Retriever): Promise<ChangeTracker> {
131
- const streamer = await client.openStreamer([
132
- RESOURCE_SET_NAME,
133
- RESOURCE_DELETE_NAME,
134
- RELATIONSHIP_SET_NAME,
135
- RELATIONSHIP_DELETE_NAME,
136
- ]);
137
- return new ChangeTracker(streamer, retriever);
138
- }
139
- }
@@ -1,50 +0,0 @@
1
- // Copyright 2023 Synnax Labs, Inc.
2
- //
3
- // Use of this software is governed by the Business Source License included in the file
4
- // licenses/BSL.txt.
5
- //
6
- // As of the Change Date specified in that file, in accordance with the Business Source
7
- // License, use of this software will be governed by the Apache License, Version 2.0,
8
- // included in the file licenses/APL.txt.
9
-
10
- import { type UnaryClient } from "@synnaxlabs/freighter";
11
- import { z } from "zod";
12
-
13
- import { type Params, type Payload, analyzeParams, keyZ, payloadZ } from "./payload";
14
-
15
- const reqZ = z.object({
16
- keys: keyZ.array().optional(),
17
- names: z.array(z.string()).optional(),
18
- term: z.string().optional(),
19
- });
20
-
21
- type Request = z.infer<typeof reqZ>;
22
-
23
- const resZ = z.object({
24
- ranges: z.array(payloadZ),
25
- });
26
-
27
- export class Retriever {
28
- private readonly ENDPOINT = "/range/retrieve";
29
- private readonly client: UnaryClient;
30
-
31
- constructor(client: UnaryClient) {
32
- this.client = client;
33
- }
34
-
35
- async retrieve(params: Params): Promise<Payload[]> {
36
- const { normalized, variant } = analyzeParams(params);
37
- const res = await this.execute({ [variant]: normalized });
38
- return res;
39
- }
40
-
41
- async search(term: string): Promise<Payload[]> {
42
- return await this.execute({ term });
43
- }
44
-
45
- private async execute(request: Request): Promise<Payload[]> {
46
- const [res, err] = await this.client.send(this.ENDPOINT, request, reqZ, resZ);
47
- if (err != null) throw err;
48
- return res.ranges;
49
- }
50
- }
File without changes