@synnaxlabs/freighter 0.24.0 → 0.26.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.
- package/dist/alamos.d.ts +1 -1
- package/dist/errors.d.ts +4 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/freighter.cjs +3 -3
- package/dist/freighter.js +786 -1124
- package/dist/http.d.ts +5 -5
- package/dist/http.d.ts.map +1 -1
- package/dist/stream.d.ts +1 -1
- package/dist/unary.d.ts +1 -1
- package/dist/unary.d.ts.map +1 -1
- package/dist/websocket.d.ts +5 -5
- package/dist/websocket.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/http.spec.ts +2 -2
- package/src/http.ts +4 -4
- package/src/websocket.spec.ts +2 -2
- package/src/websocket.ts +4 -9
package/dist/http.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { UnaryClient } from './unary';
|
|
2
|
-
import { MiddlewareCollector } from './middleware';
|
|
3
|
-
import { z } from 'zod';
|
|
4
1
|
import { binary, URL } from '@synnaxlabs/x';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { MiddlewareCollector } from './middleware';
|
|
4
|
+
import { UnaryClient } from './unary';
|
|
5
5
|
|
|
6
6
|
export declare const CONTENT_TYPE_HEADER_KEY = "Content-Type";
|
|
7
7
|
/**
|
|
@@ -13,9 +13,9 @@ export declare const CONTENT_TYPE_HEADER_KEY = "Content-Type";
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class HTTPClient extends MiddlewareCollector implements UnaryClient {
|
|
15
15
|
endpoint: URL;
|
|
16
|
-
encoder: binary.
|
|
16
|
+
encoder: binary.Codec;
|
|
17
17
|
fetch: typeof fetch;
|
|
18
|
-
constructor(endpoint: URL, encoder: binary.
|
|
18
|
+
constructor(endpoint: URL, encoder: binary.Codec, secure?: boolean);
|
|
19
19
|
get headers(): Record<string, string>;
|
|
20
20
|
send<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny = RQ>(target: string, req: z.input<RQ> | z.output<RQ>, reqSchema: RQ, resSchema: RS): Promise<[z.output<RS> | null, Error | null]>;
|
|
21
21
|
}
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,MAAM,EAAW,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAYtD;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,mBAAoB,YAAW,WAAW;IACxE,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;IACtB,KAAK,EAAE,OAAO,KAAK,CAAC;gBAER,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAE,OAAe;IAczE,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIpC;IAEK,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,GAAG,EAAE,EAC9D,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAC/B,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;CAuDhD"}
|
package/dist/stream.d.ts
CHANGED
package/dist/unary.d.ts
CHANGED
package/dist/unary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unary.d.ts","sourceRoot":"","sources":["../src/unary.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,GAAG,EAAE,EAC1D,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAC/B,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,EAAE,KACV,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"unary.d.ts","sourceRoot":"","sources":["../src/unary.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,GAAG,EAAE,EAC1D,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAC/B,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,EAAE,KACV,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,YAAY,GACvB,EAAE,SAAS,CAAC,CAAC,UAAU,EACvB,EAAE,SAAS,CAAC,CAAC,UAAU,eAEf,WAAW,UACX,MAAM,OACT,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,aACpB,EAAE,aACF,EAAE,KACZ,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAItB,CAAC"}
|
package/dist/websocket.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Stream, StreamClient } from './stream';
|
|
2
|
-
import { MiddlewareCollector } from './middleware';
|
|
3
|
-
import { z } from 'zod';
|
|
4
1
|
import { binary, URL } from '@synnaxlabs/x';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { MiddlewareCollector } from './middleware';
|
|
4
|
+
import { Stream, StreamClient } from './stream';
|
|
5
5
|
|
|
6
6
|
export declare const FREIGHTER_METADATA_PREFIX = "freighterctx";
|
|
7
7
|
/**
|
|
@@ -10,14 +10,14 @@ export declare const FREIGHTER_METADATA_PREFIX = "freighterctx";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class WebSocketClient extends MiddlewareCollector implements StreamClient {
|
|
12
12
|
baseUrl: URL;
|
|
13
|
-
encoder: binary.
|
|
13
|
+
encoder: binary.Codec;
|
|
14
14
|
static readonly MESSAGE_TYPE = "arraybuffer";
|
|
15
15
|
/**
|
|
16
16
|
* @param encoder - The encoder to use for encoding messages and decoding
|
|
17
17
|
* responses.
|
|
18
18
|
* @param baseEndpoint - A base url to use as a prefix for all requests.
|
|
19
19
|
*/
|
|
20
|
-
constructor(baseEndpoint: URL, encoder: binary.
|
|
20
|
+
constructor(baseEndpoint: URL, encoder: binary.Codec, secure?: boolean);
|
|
21
21
|
/** Implements the StreamClient interface. */
|
|
22
22
|
stream<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny = RQ>(target: string, reqSchema: RQ, resSchema: RS): Promise<Stream<RQ, RS>>;
|
|
23
23
|
private buildURL;
|
package/dist/websocket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAA6B,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAA6B,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA2GrD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAQxD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,mBAAoB,YAAW,YAAY;IAC9E,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;IAEtB,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAE7C;;;;OAIG;gBACS,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,UAAQ;IAMpE,6CAA6C;IACvC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,GAAG,EAAE,EAChE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAmB1B,OAAO,CAAC,QAAQ;YAWF,UAAU;CAezB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synnaxlabs/freighter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "a modular transport abstraction",
|
|
6
6
|
"repository": "https://github.com/synnaxlabs/synnax/tree/main/freighter/ts",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"node-fetch": "2.6.11",
|
|
18
18
|
"ws": "^8.17.0",
|
|
19
19
|
"zod": "3.23.8",
|
|
20
|
-
"@synnaxlabs/alamos": "0.
|
|
21
|
-
"@synnaxlabs/x": "0.
|
|
20
|
+
"@synnaxlabs/alamos": "0.26.0",
|
|
21
|
+
"@synnaxlabs/x": "0.26.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^20.12.7",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"typescript": "^5.4.5",
|
|
27
27
|
"vite": "5.2.11",
|
|
28
28
|
"vitest": "^1.5.0",
|
|
29
|
-
"@synnaxlabs/tsconfig": "0.0.2",
|
|
30
29
|
"@synnaxlabs/vite-plugin": "0.0.1",
|
|
30
|
+
"@synnaxlabs/tsconfig": "0.0.2",
|
|
31
31
|
"eslint-config-synnaxlabs": "0.0.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
package/src/http.spec.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
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 { binary,URL } from "@synnaxlabs/x";
|
|
10
|
+
import { binary, URL } from "@synnaxlabs/x";
|
|
11
11
|
import { describe, expect, test } from "vitest";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
|
|
@@ -20,7 +20,7 @@ const ENDPOINT = new URL({
|
|
|
20
20
|
pathPrefix: "unary",
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
const client = new HTTPClient(ENDPOINT, new binary.
|
|
23
|
+
const client = new HTTPClient(ENDPOINT, new binary.JSONCodec());
|
|
24
24
|
|
|
25
25
|
const messageZ = z.object({
|
|
26
26
|
id: z.number().optional(),
|
package/src/http.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
18
18
|
// included in the file licenses/APL.txt.
|
|
19
19
|
|
|
20
|
-
import { type binary,runtime, type URL } from "@synnaxlabs/x";
|
|
20
|
+
import { type binary, runtime, type URL } from "@synnaxlabs/x";
|
|
21
21
|
import { type z } from "zod";
|
|
22
22
|
|
|
23
23
|
import { decodeError, errorZ, Unreachable } from "@/errors";
|
|
@@ -45,10 +45,10 @@ const resolveFetchAPI = (protocol: "http" | "https"): typeof fetch => {
|
|
|
45
45
|
*/
|
|
46
46
|
export class HTTPClient extends MiddlewareCollector implements UnaryClient {
|
|
47
47
|
endpoint: URL;
|
|
48
|
-
encoder: binary.
|
|
48
|
+
encoder: binary.Codec;
|
|
49
49
|
fetch: typeof fetch;
|
|
50
50
|
|
|
51
|
-
constructor(endpoint: URL, encoder: binary.
|
|
51
|
+
constructor(endpoint: URL, encoder: binary.Codec, secure: boolean = false) {
|
|
52
52
|
super();
|
|
53
53
|
this.endpoint = endpoint.replace({ protocol: secure ? "https" : "http" });
|
|
54
54
|
this.encoder = encoder;
|
|
@@ -74,7 +74,7 @@ export class HTTPClient extends MiddlewareCollector implements UnaryClient {
|
|
|
74
74
|
reqSchema: RQ,
|
|
75
75
|
resSchema: RS,
|
|
76
76
|
): Promise<[z.output<RS> | null, Error | null]> {
|
|
77
|
-
req = reqSchema?.parse(req)
|
|
77
|
+
req = reqSchema?.parse(req);
|
|
78
78
|
let res: RS | null = null;
|
|
79
79
|
const url = this.endpoint.child(target);
|
|
80
80
|
const request: RequestInit = {};
|
package/src/websocket.spec.ts
CHANGED
|
@@ -31,7 +31,7 @@ const MessageSchema = z.object({
|
|
|
31
31
|
message: z.string().optional(),
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
const client = new WebSocketClient(url, new binary.
|
|
34
|
+
const client = new WebSocketClient(url, new binary.JSONCodec());
|
|
35
35
|
|
|
36
36
|
class MyCustomError extends BaseTypedError {
|
|
37
37
|
code: number;
|
|
@@ -105,7 +105,7 @@ describe("websocket", () => {
|
|
|
105
105
|
});
|
|
106
106
|
|
|
107
107
|
test("middleware", async () => {
|
|
108
|
-
const myClient = new WebSocketClient(url, new binary.
|
|
108
|
+
const myClient = new WebSocketClient(url, new binary.JSONCodec());
|
|
109
109
|
let c = 0;
|
|
110
110
|
myClient.use(async (md, next): Promise<[Context, Error | null]> => {
|
|
111
111
|
if (md.params !== undefined) {
|
package/src/websocket.ts
CHANGED
|
@@ -38,7 +38,7 @@ type ReceiveCallbacksQueue = Array<{
|
|
|
38
38
|
class WebSocketStream<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny = RQ>
|
|
39
39
|
implements Stream<RQ, RS>
|
|
40
40
|
{
|
|
41
|
-
private readonly encoder: binary.
|
|
41
|
+
private readonly encoder: binary.Codec;
|
|
42
42
|
private readonly reqSchema: RQ;
|
|
43
43
|
private readonly resSchema: RS;
|
|
44
44
|
private readonly ws: WebSocket;
|
|
@@ -47,12 +47,7 @@ class WebSocketStream<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny = RQ>
|
|
|
47
47
|
private readonly receiveDataQueue: Message[] = [];
|
|
48
48
|
private readonly receiveCallbacksQueue: ReceiveCallbacksQueue = [];
|
|
49
49
|
|
|
50
|
-
constructor(
|
|
51
|
-
ws: WebSocket,
|
|
52
|
-
encoder: binary.EncoderDecoder,
|
|
53
|
-
reqSchema: RQ,
|
|
54
|
-
resSchema: RS,
|
|
55
|
-
) {
|
|
50
|
+
constructor(ws: WebSocket, encoder: binary.Codec, reqSchema: RQ, resSchema: RS) {
|
|
56
51
|
this.encoder = encoder;
|
|
57
52
|
this.reqSchema = reqSchema;
|
|
58
53
|
this.resSchema = resSchema;
|
|
@@ -139,7 +134,7 @@ const isNormalClosure = (ev: CloseEvent): boolean => NORMAL_CLOSURES.includes(ev
|
|
|
139
134
|
*/
|
|
140
135
|
export class WebSocketClient extends MiddlewareCollector implements StreamClient {
|
|
141
136
|
baseUrl: URL;
|
|
142
|
-
encoder: binary.
|
|
137
|
+
encoder: binary.Codec;
|
|
143
138
|
|
|
144
139
|
static readonly MESSAGE_TYPE = "arraybuffer";
|
|
145
140
|
|
|
@@ -148,7 +143,7 @@ export class WebSocketClient extends MiddlewareCollector implements StreamClient
|
|
|
148
143
|
* responses.
|
|
149
144
|
* @param baseEndpoint - A base url to use as a prefix for all requests.
|
|
150
145
|
*/
|
|
151
|
-
constructor(baseEndpoint: URL, encoder: binary.
|
|
146
|
+
constructor(baseEndpoint: URL, encoder: binary.Codec, secure = false) {
|
|
152
147
|
super();
|
|
153
148
|
this.baseUrl = baseEndpoint.replace({ protocol: secure ? "wss" : "ws" });
|
|
154
149
|
this.encoder = encoder;
|