@synnaxlabs/client 0.44.2 → 0.44.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/dist/client.cjs +24 -24
- package/dist/client.d.ts +2 -2
- package/dist/client.js +2900 -2586
- package/dist/framer/streamer.d.ts +2 -2
- package/dist/framer/streamer.d.ts.map +1 -1
- package/dist/framer/writer.d.ts +7 -7
- package/dist/framer/writer.d.ts.map +1 -1
- package/dist/hardware/task/client.d.ts +7 -0
- package/dist/hardware/task/client.d.ts.map +1 -1
- package/dist/testutil/client.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/framer/streamer.spec.ts +1 -1
- package/src/framer/streamer.ts +4 -3
- package/src/framer/writer.ts +26 -16
- package/src/hardware/task/client.ts +93 -20
- package/src/testutil/client.ts +7 -0
|
@@ -165,7 +165,7 @@ export declare const streamerConfigZ: z.ZodUnion<[z.ZodObject<{
|
|
|
165
165
|
} | undefined;
|
|
166
166
|
}[]>>]>;
|
|
167
167
|
downsampleFactor: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
168
|
-
|
|
168
|
+
useHighPerformanceCodec: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
169
169
|
}, z.core.$strip>, z.ZodPipe<z.ZodUnion<readonly [z.ZodUnion<[z.ZodArray<z.ZodNumber>, z.ZodPipe<z.ZodNumber, z.ZodTransform<number[], number>>]>, z.ZodUnion<[z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodPipe<z.ZodUnion<[z.ZodArray<z.ZodObject<{
|
|
170
170
|
name: z.ZodString;
|
|
171
171
|
key: z.ZodNumber;
|
|
@@ -277,7 +277,7 @@ export declare const streamerConfigZ: z.ZodUnion<[z.ZodObject<{
|
|
|
277
277
|
}[]>>]>, z.ZodTransform<{
|
|
278
278
|
channels: string[] | number[];
|
|
279
279
|
downsampleFactor: number;
|
|
280
|
-
|
|
280
|
+
useHighPerformanceCodec: boolean;
|
|
281
281
|
}, string[] | number[]>>]>;
|
|
282
282
|
export type StreamerConfig = z.input<typeof streamerConfigZ>;
|
|
283
283
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../../src/framer/streamer.ts"],"names":[],"mappings":"AASA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAG/C,QAAA,MAAM,IAAI;;;iBAAuE,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;CAAG;AAEhE,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;CAAG;
|
|
1
|
+
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../../src/framer/streamer.ts"],"names":[],"mappings":"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"}
|
package/dist/framer/writer.d.ts
CHANGED
|
@@ -48,8 +48,8 @@ declare const netWriterConfigZ: z.ZodObject<{
|
|
|
48
48
|
value: z.ZodBigInt;
|
|
49
49
|
}, z.core.$strip>, z.ZodTransform<TimeSpan, {
|
|
50
50
|
value: bigint;
|
|
51
|
-
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodCustom<TimeSpan, TimeSpan
|
|
52
|
-
|
|
51
|
+
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<TimeSpan, bigint>>, z.ZodCustom<TimeSpan, TimeSpan>, z.ZodPipe<z.ZodCustom<TimeStamp, TimeStamp>, z.ZodTransform<TimeSpan, TimeStamp>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').Rate, import('@synnaxlabs/x').Rate>, z.ZodTransform<TimeSpan, import('@synnaxlabs/x').Rate>>]>>;
|
|
52
|
+
useHighPerformanceCodec: z.ZodDefault<z.ZodBoolean>;
|
|
53
53
|
keys: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
54
54
|
}, z.core.$strip>;
|
|
55
55
|
export type NetWriterConfig = z.input<typeof netWriterConfigZ>;
|
|
@@ -75,8 +75,8 @@ export declare const writerConfigZ: z.ZodUnion<[z.ZodObject<{
|
|
|
75
75
|
value: z.ZodBigInt;
|
|
76
76
|
}, z.core.$strip>, z.ZodTransform<TimeSpan, {
|
|
77
77
|
value: bigint;
|
|
78
|
-
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodCustom<TimeSpan, TimeSpan
|
|
79
|
-
|
|
78
|
+
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<TimeSpan, bigint>>, z.ZodCustom<TimeSpan, TimeSpan>, z.ZodPipe<z.ZodCustom<TimeStamp, TimeStamp>, z.ZodTransform<TimeSpan, TimeStamp>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').Rate, import('@synnaxlabs/x').Rate>, z.ZodTransform<TimeSpan, import('@synnaxlabs/x').Rate>>]>>;
|
|
79
|
+
useHighPerformanceCodec: z.ZodDefault<z.ZodBoolean>;
|
|
80
80
|
channels: z.ZodUnion<readonly [z.ZodUnion<[z.ZodArray<z.ZodNumber>, z.ZodPipe<z.ZodNumber, z.ZodTransform<number[], number>>]>, z.ZodUnion<[z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodPipe<z.ZodUnion<[z.ZodArray<z.ZodObject<{
|
|
81
81
|
name: z.ZodString;
|
|
82
82
|
key: z.ZodNumber;
|
|
@@ -284,7 +284,7 @@ export declare const writerConfigZ: z.ZodUnion<[z.ZodObject<{
|
|
|
284
284
|
errOnUnauthorized: boolean;
|
|
285
285
|
enableAutoCommit: boolean;
|
|
286
286
|
autoIndexPersistInterval: TimeSpan;
|
|
287
|
-
|
|
287
|
+
useHighPerformanceCodec: boolean;
|
|
288
288
|
channels: string[] | number[];
|
|
289
289
|
start?: TimeStamp | undefined;
|
|
290
290
|
controlSubject?: {
|
|
@@ -317,8 +317,8 @@ declare const reqZ: z.ZodObject<{
|
|
|
317
317
|
value: z.ZodBigInt;
|
|
318
318
|
}, z.core.$strip>, z.ZodTransform<TimeSpan, {
|
|
319
319
|
value: bigint;
|
|
320
|
-
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodCustom<TimeSpan, TimeSpan
|
|
321
|
-
|
|
320
|
+
}>>, z.ZodPipe<z.ZodString, z.ZodTransform<TimeSpan, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<TimeSpan, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<TimeSpan, bigint>>, z.ZodCustom<TimeSpan, TimeSpan>, z.ZodPipe<z.ZodCustom<TimeStamp, TimeStamp>, z.ZodTransform<TimeSpan, TimeStamp>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').Rate, import('@synnaxlabs/x').Rate>, z.ZodTransform<TimeSpan, import('@synnaxlabs/x').Rate>>]>>;
|
|
321
|
+
useHighPerformanceCodec: z.ZodDefault<z.ZodBoolean>;
|
|
322
322
|
keys: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
323
323
|
}, z.core.$strip>>;
|
|
324
324
|
frame: z.ZodOptional<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/framer/writer.ts"],"names":[],"mappings":"AASA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAW,MAAM,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,gBAAgB,CAAC;AAEzD,oBAAY,aAAa;IACvB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;IACV,YAAY,IAAI;CACjB;AAED,oBAAY,UAAU;IACpB,aAAa,IAAI;IACjB,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,eAAO,MAAM,mCAAmC,EAAE,QAA2B,CAAC;;AAE9E,qBAAa,iBAAkB,SAAQ,sBAAgC;;CAItE;AAED,QAAA,MAAM,WAAW;;;;yEAWhB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/framer/writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,8 +125,15 @@ export declare class Client {
|
|
|
125
125
|
sugar<Type extends z.ZodLiteral<string> = z.ZodLiteral<string>, Config extends z.ZodType = z.ZodType, StatusData extends z.ZodType = z.ZodType>(payloads: Payload<Type, Config, StatusData>[], schemas?: Schemas<Type, Config, StatusData>): Task<Type, Config, StatusData>[];
|
|
126
126
|
sugar<Type extends z.ZodLiteral<string> = z.ZodLiteral<string>, Config extends z.ZodType = z.ZodType, StatusData extends z.ZodType = z.ZodType>(payload: Payload<Type, Config, StatusData>, schemas?: Schemas<Type, Config, StatusData>): Task<Type, Config, StatusData>;
|
|
127
127
|
executeCommand(task: Key, type: string, args?: {}): Promise<string>;
|
|
128
|
+
executeCommand(commands: NewCommand[]): Promise<string[]>;
|
|
128
129
|
executeCommandSync<StatusData extends z.ZodType = z.ZodType>(task: Key, type: string, timeout: CrudeTimeSpan, args?: {}, name?: string, statusDataZ?: StatusData): Promise<Status<StatusData>>;
|
|
130
|
+
executeCommandSync<StatusData extends z.ZodType = z.ZodType>(commands: NewCommand[], timeout: CrudeTimeSpan, statusDataZ?: StatusData): Promise<Status<StatusData>[]>;
|
|
129
131
|
}
|
|
130
132
|
export declare const ontologyID: (key: Key) => ontology.ID;
|
|
133
|
+
export interface NewCommand {
|
|
134
|
+
task: Key;
|
|
135
|
+
type: string;
|
|
136
|
+
args?: {};
|
|
137
|
+
}
|
|
131
138
|
export {};
|
|
132
139
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/hardware/task/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/hardware/task/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testutil/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testutil/client.ts"],"names":[],"mappings":"AAWA,OAAO,MAAM,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAE,WAU/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,OAAO,CAAC,WAAW,CAAC,KAAG,MAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synnaxlabs/client",
|
|
3
|
-
"version": "0.44.
|
|
3
|
+
"version": "0.44.3",
|
|
4
4
|
"description": "The Synnax Client Library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"synnax",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"async-mutex": "^0.5.0",
|
|
28
28
|
"zod": "^4.0.2",
|
|
29
|
-
"@synnaxlabs/
|
|
30
|
-
"@synnaxlabs/
|
|
29
|
+
"@synnaxlabs/x": "^0.44.3",
|
|
30
|
+
"@synnaxlabs/freighter": "^0.44.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@vitest/coverage-v8": "^3.2.4",
|
|
@@ -322,7 +322,7 @@ describe("Streamer", () => {
|
|
|
322
322
|
it("should correctly call the underlying streamer methods", async () => {
|
|
323
323
|
const streamer = new MockStreamer();
|
|
324
324
|
const openMock = vi.fn();
|
|
325
|
-
const config = { channels: [1, 2, 3],
|
|
325
|
+
const config = { channels: [1, 2, 3], useHighPerformanceCodec: true };
|
|
326
326
|
const fr = new Frame({ 1: new Series([1]) });
|
|
327
327
|
const hardened = await HardenedStreamer.open(
|
|
328
328
|
async (cfg) => {
|
package/src/framer/streamer.ts
CHANGED
|
@@ -41,8 +41,9 @@ const intermediateStreamerConfigZ = z.object({
|
|
|
41
41
|
channels: paramsZ,
|
|
42
42
|
/** Optional factor to downsample the data by. Defaults to 1 (no downsampling). */
|
|
43
43
|
downsampleFactor: z.number().optional().default(1),
|
|
44
|
-
/**
|
|
45
|
-
|
|
44
|
+
/** useHighPerformanceCodec sets whether the writer will use the synnax frame
|
|
45
|
+
/* encoder as opposed to the standard JSON encoding mechanisms for frames. */
|
|
46
|
+
useHighPerformanceCodec: z.boolean().optional().default(true),
|
|
46
47
|
});
|
|
47
48
|
|
|
48
49
|
export const streamerConfigZ = intermediateStreamerConfigZ.or(
|
|
@@ -103,7 +104,7 @@ export const createStreamOpener =
|
|
|
103
104
|
async (config) => {
|
|
104
105
|
const cfg = streamerConfigZ.parse(config);
|
|
105
106
|
const adapter = await ReadAdapter.open(retriever, cfg.channels);
|
|
106
|
-
if (cfg.
|
|
107
|
+
if (cfg.useHighPerformanceCodec)
|
|
107
108
|
client = client.withCodec(new WSStreamerCodec(adapter.codec));
|
|
108
109
|
const stream = await client.stream(ENDPOINT, reqZ, resZ);
|
|
109
110
|
const streamer = new CoreStreamer(stream, adapter);
|
package/src/framer/writer.ts
CHANGED
|
@@ -55,30 +55,40 @@ const writerModeZ = z.enum(WriterMode).or(
|
|
|
55
55
|
export type CrudeWriterMode = z.input<typeof writerModeZ>;
|
|
56
56
|
|
|
57
57
|
const baseWriterConfigZ = z.object({
|
|
58
|
-
|
|
58
|
+
/** start sets the starting timestamp for the first sample in the writer. */
|
|
59
59
|
start: TimeStamp.z.optional(),
|
|
60
|
-
|
|
60
|
+
/** controlSubject sets the control subject of the writer. */
|
|
61
61
|
controlSubject: control.subjectZ.optional(),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
/** authorities set the control authority to set for each channel on the writer.
|
|
63
|
+
* Defaults to absolute authority. If not working with concurrent control,
|
|
64
|
+
* it's best to leave this as the default.
|
|
65
|
+
*/
|
|
65
66
|
authorities: z
|
|
66
67
|
.union([control.authorityZ.transform((a) => [a]), control.authorityZ.array()])
|
|
67
68
|
.default([control.ABSOLUTE_AUTHORITY]),
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
/** mode sets the persistence and streaming mode of the writer. The default
|
|
70
|
+
* mode is WriterModePersistStream.
|
|
71
|
+
*/
|
|
70
72
|
mode: writerModeZ.default(WriterMode.PersistStream),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
/**
|
|
74
|
+
* errOnUnauthorized sets whether the writer raises an error when it attempts to write
|
|
75
|
+
* to a channel without permission.
|
|
76
|
+
*/
|
|
73
77
|
errOnUnauthorized: z.boolean().default(false),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
/**
|
|
79
|
+
* enableAutoCommit determines whether the writer will automatically commit.
|
|
80
|
+
* If enableAutoCommit is true, then the writer will commit after each write, and
|
|
81
|
+
* will flush that commit to index after the specified autoIndexPersistInterval.
|
|
82
|
+
*/
|
|
77
83
|
enableAutoCommit: z.boolean().default(false),
|
|
78
|
-
|
|
84
|
+
/** autoIndexPersistInterval sets the interval at which commits will be flushed to
|
|
85
|
+
* disk. */
|
|
79
86
|
autoIndexPersistInterval: TimeSpan.z.default(TimeSpan.SECOND),
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
/*
|
|
88
|
+
* useHighPerformanceCodec sets whether the writer will use the synnax frame
|
|
89
|
+
* encoder as opposed to the standard JSON encoding mechanisms for frames.
|
|
90
|
+
*/
|
|
91
|
+
useHighPerformanceCodec: z.boolean().default(true),
|
|
82
92
|
});
|
|
83
93
|
|
|
84
94
|
const netWriterConfigZ = baseWriterConfigZ.extend({
|
|
@@ -198,7 +208,7 @@ export class Writer {
|
|
|
198
208
|
): Promise<Writer> {
|
|
199
209
|
const cfg = writerConfigZ.parse(config);
|
|
200
210
|
const adapter = await WriteAdapter.open(retriever, cfg.channels);
|
|
201
|
-
if (cfg.
|
|
211
|
+
if (cfg.useHighPerformanceCodec)
|
|
202
212
|
client = client.withCodec(new WSWriterCodec(adapter.codec));
|
|
203
213
|
const stream = await client.stream(Writer.ENDPOINT, reqZ, resZ);
|
|
204
214
|
const writer = new Writer(stream, adapter);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
10
|
import { sendRequired, type UnaryClient } from "@synnaxlabs/freighter";
|
|
11
|
-
import { caseconv, id } from "@synnaxlabs/x";
|
|
11
|
+
import { caseconv, id, strings } from "@synnaxlabs/x";
|
|
12
12
|
import { array } from "@synnaxlabs/x/array";
|
|
13
13
|
import { type CrudeTimeSpan, TimeSpan } from "@synnaxlabs/x/telem";
|
|
14
14
|
import { z } from "zod";
|
|
@@ -409,7 +409,17 @@ export class Client {
|
|
|
409
409
|
return isSingle ? res[0] : res;
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
-
async executeCommand(task: Key, type: string, args?: {}): Promise<string
|
|
412
|
+
async executeCommand(task: Key, type: string, args?: {}): Promise<string>;
|
|
413
|
+
|
|
414
|
+
async executeCommand(commands: NewCommand[]): Promise<string[]>;
|
|
415
|
+
|
|
416
|
+
async executeCommand(
|
|
417
|
+
task: Key | NewCommand[],
|
|
418
|
+
type?: string,
|
|
419
|
+
args?: {},
|
|
420
|
+
): Promise<string | string[]> {
|
|
421
|
+
if (Array.isArray(task)) return await executeCommands(this.frameClient, task);
|
|
422
|
+
if (type == null) throw new Error("Type is required");
|
|
413
423
|
return await executeCommand(this.frameClient, task, type, args);
|
|
414
424
|
}
|
|
415
425
|
|
|
@@ -419,8 +429,35 @@ export class Client {
|
|
|
419
429
|
timeout: CrudeTimeSpan,
|
|
420
430
|
args?: {},
|
|
421
431
|
name?: string,
|
|
432
|
+
statusDataZ?: StatusData,
|
|
433
|
+
): Promise<Status<StatusData>>;
|
|
434
|
+
async executeCommandSync<StatusData extends z.ZodType = z.ZodType>(
|
|
435
|
+
commands: NewCommand[],
|
|
436
|
+
timeout: CrudeTimeSpan,
|
|
437
|
+
statusDataZ?: StatusData,
|
|
438
|
+
): Promise<Status<StatusData>[]>;
|
|
439
|
+
|
|
440
|
+
async executeCommandSync<StatusData extends z.ZodType = z.ZodType>(
|
|
441
|
+
task: Key | NewCommand[],
|
|
442
|
+
type: string | CrudeTimeSpan,
|
|
443
|
+
timeout?: CrudeTimeSpan | StatusData,
|
|
444
|
+
args?: {},
|
|
445
|
+
name?: string,
|
|
422
446
|
statusDataZ: StatusData = z.unknown() as unknown as StatusData,
|
|
423
|
-
): Promise<Status<StatusData
|
|
447
|
+
): Promise<Status<StatusData> | Status<StatusData>[]> {
|
|
448
|
+
if (Array.isArray(task)) {
|
|
449
|
+
const retrieveNames = async () => {
|
|
450
|
+
const ts = await this.retrieve({ keys: task.map((t) => t.task) });
|
|
451
|
+
return ts.map((t) => t.name);
|
|
452
|
+
};
|
|
453
|
+
return await executeCommandsSync(
|
|
454
|
+
this.frameClient,
|
|
455
|
+
task,
|
|
456
|
+
type as CrudeTimeSpan,
|
|
457
|
+
statusDataZ,
|
|
458
|
+
retrieveNames,
|
|
459
|
+
);
|
|
460
|
+
}
|
|
424
461
|
const retrieveName = async () => {
|
|
425
462
|
const t = await this.retrieve({ key: task });
|
|
426
463
|
return t.name;
|
|
@@ -428,8 +465,8 @@ export class Client {
|
|
|
428
465
|
return await executeCommandSync(
|
|
429
466
|
this.frameClient,
|
|
430
467
|
task,
|
|
431
|
-
type,
|
|
432
|
-
timeout,
|
|
468
|
+
type as string,
|
|
469
|
+
timeout as CrudeTimeSpan,
|
|
433
470
|
name ?? retrieveName,
|
|
434
471
|
statusDataZ,
|
|
435
472
|
args,
|
|
@@ -444,13 +481,24 @@ const executeCommand = async (
|
|
|
444
481
|
task: Key,
|
|
445
482
|
type: string,
|
|
446
483
|
args?: {},
|
|
447
|
-
): Promise<string> => {
|
|
484
|
+
): Promise<string> => (await executeCommands(frameClient, [{ args, task, type }]))[0];
|
|
485
|
+
|
|
486
|
+
export interface NewCommand {
|
|
487
|
+
task: Key;
|
|
488
|
+
type: string;
|
|
489
|
+
args?: {};
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
const executeCommands = async (
|
|
493
|
+
frameClient: framer.Client | null,
|
|
494
|
+
commands: NewCommand[],
|
|
495
|
+
): Promise<string[]> => {
|
|
448
496
|
if (frameClient == null) throw NOT_CREATED_ERROR;
|
|
449
|
-
const key = id.create();
|
|
450
497
|
const w = await frameClient.openWriter(COMMAND_CHANNEL_NAME);
|
|
451
|
-
|
|
498
|
+
const cmds = commands.map((c) => ({ ...c, key: id.create() }));
|
|
499
|
+
await w.write(COMMAND_CHANNEL_NAME, cmds);
|
|
452
500
|
await w.close();
|
|
453
|
-
return key;
|
|
501
|
+
return cmds.map((c) => c.key);
|
|
454
502
|
};
|
|
455
503
|
|
|
456
504
|
const executeCommandSync = async <StatusData extends z.ZodType = z.ZodType>(
|
|
@@ -461,24 +509,45 @@ const executeCommandSync = async <StatusData extends z.ZodType = z.ZodType>(
|
|
|
461
509
|
tskName: string | (() => Promise<string>),
|
|
462
510
|
statusDataZ: StatusData,
|
|
463
511
|
args?: {},
|
|
464
|
-
): Promise<Status<StatusData>> =>
|
|
512
|
+
): Promise<Status<StatusData>> =>
|
|
513
|
+
(
|
|
514
|
+
await executeCommandsSync(
|
|
515
|
+
frameClient,
|
|
516
|
+
[{ args, task, type }],
|
|
517
|
+
timeout,
|
|
518
|
+
statusDataZ,
|
|
519
|
+
tskName,
|
|
520
|
+
)
|
|
521
|
+
)[0];
|
|
522
|
+
|
|
523
|
+
const executeCommandsSync = async <StatusData extends z.ZodType = z.ZodType>(
|
|
524
|
+
frameClient: framer.Client | null,
|
|
525
|
+
commands: NewCommand[],
|
|
526
|
+
timeout: CrudeTimeSpan,
|
|
527
|
+
statusDataZ: StatusData,
|
|
528
|
+
tskName: string | string[] | (() => Promise<string | string[]>),
|
|
529
|
+
): Promise<Status<StatusData>[]> => {
|
|
465
530
|
if (frameClient == null) throw NOT_CREATED_ERROR;
|
|
466
531
|
const streamer = await frameClient.openStreamer(STATUS_CHANNEL_NAME);
|
|
467
|
-
const
|
|
532
|
+
const cmdKeys = await executeCommands(frameClient, commands);
|
|
468
533
|
const parsedTimeout = new TimeSpan(timeout);
|
|
469
|
-
|
|
534
|
+
let states: Status<StatusData>[] = [];
|
|
470
535
|
let timeoutID: NodeJS.Timeout | undefined;
|
|
471
536
|
const timeoutPromise = new Promise<never>((_, reject) => {
|
|
472
537
|
timeoutID = setTimeout(() => {
|
|
473
|
-
void (async () =>
|
|
474
|
-
|
|
538
|
+
void (async () => {
|
|
539
|
+
const taskKeys = commands.map((c) => c.task);
|
|
540
|
+
reject(await formatTimeoutError("command", tskName, parsedTimeout, taskKeys));
|
|
541
|
+
})();
|
|
475
542
|
}, parsedTimeout.milliseconds);
|
|
476
543
|
});
|
|
477
544
|
try {
|
|
478
545
|
while (true) {
|
|
479
546
|
const frame = await Promise.race([streamer.read(), timeoutPromise]);
|
|
480
547
|
const state = statusZ(statusDataZ).parse(frame.at(-1)[STATUS_CHANNEL_NAME]);
|
|
481
|
-
if (state.key
|
|
548
|
+
if (!cmdKeys.includes(state.key)) continue;
|
|
549
|
+
states = [...states.filter((s) => s.key !== state.key), state];
|
|
550
|
+
if (states.length === cmdKeys.length) return states;
|
|
482
551
|
}
|
|
483
552
|
} finally {
|
|
484
553
|
clearTimeout(timeoutID);
|
|
@@ -488,21 +557,25 @@ const executeCommandSync = async <StatusData extends z.ZodType = z.ZodType>(
|
|
|
488
557
|
|
|
489
558
|
const formatTimeoutError = async (
|
|
490
559
|
type: string,
|
|
491
|
-
name: string | (() => Promise<string>),
|
|
560
|
+
name: string | string[] | (() => Promise<string | string[]>),
|
|
492
561
|
timeout: TimeSpan,
|
|
493
|
-
key: Key,
|
|
562
|
+
key: Key | Key[],
|
|
494
563
|
): Promise<Error> => {
|
|
495
564
|
const formattedType = caseconv.capitalize(type);
|
|
496
565
|
const formattedTimeout = timeout.toString();
|
|
497
566
|
try {
|
|
498
|
-
|
|
567
|
+
let names: string[];
|
|
568
|
+
if (typeof name === "string") names = [name];
|
|
569
|
+
else if (Array.isArray(name)) names = name;
|
|
570
|
+
else names = array.toArray(await name());
|
|
571
|
+
const formattedName = strings.naturalLanguageJoin(names);
|
|
499
572
|
return new Error(
|
|
500
|
-
`${formattedType} command to ${
|
|
573
|
+
`${formattedType} command to ${formattedName} timed out after ${formattedTimeout}`,
|
|
501
574
|
);
|
|
502
575
|
} catch (e) {
|
|
503
576
|
console.error("Failed to retrieve task name for timeout error:", e);
|
|
504
577
|
return new Error(
|
|
505
|
-
`${formattedType} command to task with key ${key} timed out after ${formattedTimeout}`,
|
|
578
|
+
`${formattedType} command to task with key ${strings.naturalLanguageJoin(key)} timed out after ${formattedTimeout}`,
|
|
506
579
|
);
|
|
507
580
|
}
|
|
508
581
|
};
|
package/src/testutil/client.ts
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
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 { TimeSpan } from "@synnaxlabs/x";
|
|
11
|
+
|
|
10
12
|
import Synnax, { type SynnaxProps } from "@/client";
|
|
11
13
|
|
|
12
14
|
export const TEST_CLIENT_PROPS: SynnaxProps = {
|
|
@@ -14,6 +16,11 @@ export const TEST_CLIENT_PROPS: SynnaxProps = {
|
|
|
14
16
|
port: 9090,
|
|
15
17
|
username: "synnax",
|
|
16
18
|
password: "seldon",
|
|
19
|
+
retry: {
|
|
20
|
+
maxRetries: 4,
|
|
21
|
+
baseInterval: TimeSpan.seconds(1),
|
|
22
|
+
scale: 1.5,
|
|
23
|
+
},
|
|
17
24
|
};
|
|
18
25
|
|
|
19
26
|
export const createTestClient = (props?: Partial<SynnaxProps>): Synnax =>
|