@nmtjs/protocol 0.15.0-beta.35 → 0.15.0-beta.37
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/LICENSE.md +1 -1
- package/README.md +1 -1
- package/dist/client/events.d.ts +15 -0
- package/dist/client/events.js +28 -0
- package/dist/client/format.d.ts +13 -18
- package/dist/client/format.js +0 -1
- package/dist/client/index.d.ts +1 -4
- package/dist/client/index.js +4 -7
- package/dist/client/protocol.d.ts +138 -102
- package/dist/client/protocol.js +336 -7
- package/dist/client/stream.d.ts +19 -37
- package/dist/client/stream.js +46 -138
- package/dist/common/binary.d.ts +6 -5
- package/dist/common/binary.js +9 -22
- package/dist/common/blob.d.ts +8 -15
- package/dist/common/blob.js +30 -55
- package/dist/common/enums.d.ts +7 -17
- package/dist/common/enums.js +14 -34
- package/dist/common/index.d.ts +0 -2
- package/dist/common/index.js +4 -7
- package/dist/common/types.d.ts +24 -5
- package/dist/common/types.js +0 -1
- package/dist/server/api.d.ts +33 -0
- package/dist/server/api.js +7 -0
- package/dist/server/connection.d.ts +25 -0
- package/dist/server/connection.js +22 -0
- package/dist/server/constants.d.ts +4 -0
- package/dist/server/constants.js +2 -0
- package/dist/server/format.d.ts +23 -17
- package/dist/server/format.js +8 -13
- package/dist/server/index.d.ts +6 -4
- package/dist/server/index.js +11 -9
- package/dist/server/injectables.d.ts +14 -0
- package/dist/server/injectables.js +22 -0
- package/dist/server/protocol.d.ts +114 -88
- package/dist/server/protocol.js +354 -5
- package/dist/server/registry.d.ts +3 -0
- package/dist/server/registry.js +3 -0
- package/dist/server/stream.d.ts +0 -5
- package/dist/server/stream.js +2 -31
- package/dist/server/transport.d.ts +23 -0
- package/dist/server/transport.js +3 -0
- package/dist/server/types.d.ts +8 -29
- package/dist/server/types.js +0 -1
- package/dist/server/utils.d.ts +6 -3
- package/dist/server/utils.js +4 -5
- package/package.json +24 -17
- package/dist/client/format.js.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/protocol.js.map +0 -1
- package/dist/client/stream.js.map +0 -1
- package/dist/client/versions/v1.d.ts +0 -108
- package/dist/client/versions/v1.js +0 -128
- package/dist/client/versions/v1.js.map +0 -1
- package/dist/common/binary.js.map +0 -1
- package/dist/common/blob.js.map +0 -1
- package/dist/common/constants.d.ts +0 -2
- package/dist/common/constants.js +0 -2
- package/dist/common/constants.js.map +0 -1
- package/dist/common/enums.js.map +0 -1
- package/dist/common/index.js.map +0 -1
- package/dist/common/types.js.map +0 -1
- package/dist/common/utils.d.ts +0 -2
- package/dist/common/utils.js +0 -7
- package/dist/common/utils.js.map +0 -1
- package/dist/server/format.js.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/protocol.js.map +0 -1
- package/dist/server/stream.js.map +0 -1
- package/dist/server/types.js.map +0 -1
- package/dist/server/utils.js.map +0 -1
- package/dist/server/versions/v1.d.ts +0 -77
- package/dist/server/versions/v1.js +0 -119
- package/dist/server/versions/v1.js.map +0 -1
- package/src/client/format.ts +0 -49
- package/src/client/index.ts +0 -8
- package/src/client/protocol.ts +0 -107
- package/src/client/stream.ts +0 -222
- package/src/client/versions/v1.ts +0 -205
- package/src/common/binary.ts +0 -70
- package/src/common/blob.ts +0 -94
- package/src/common/constants.ts +0 -2
- package/src/common/enums.ts +0 -62
- package/src/common/index.ts +0 -6
- package/src/common/types.ts +0 -18
- package/src/common/utils.ts +0 -12
- package/src/server/format.ts +0 -117
- package/src/server/index.ts +0 -10
- package/src/server/protocol.ts +0 -97
- package/src/server/stream.ts +0 -72
- package/src/server/types.ts +0 -42
- package/src/server/utils.ts +0 -22
- package/src/server/versions/v1.ts +0 -198
package/LICENSE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c)
|
|
1
|
+
Copyright (c) 2024 Denis Ilchyshyn
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
4
|
|
package/README.md
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Callback } from '@nmtjs/common';
|
|
2
|
+
export type EventMap = {
|
|
3
|
+
[K: string]: any[];
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Very simple node-like event emitter wrapper around EventTarget
|
|
7
|
+
*/
|
|
8
|
+
export declare class EventEmitter<Events extends EventMap = EventMap, EventName extends Extract<keyof Events, string> = Extract<keyof Events, string>> {
|
|
9
|
+
#private;
|
|
10
|
+
static once<T extends EventEmitter, E extends T extends EventEmitter<any, infer Event> ? Event : never>(ee: T, event: E): Promise<unknown>;
|
|
11
|
+
on<E extends EventName>(event: E | (Object & string), listener: (...args: Events[E]) => void, options?: AddEventListenerOptions): () => void;
|
|
12
|
+
once<E extends EventName>(event: E | (Object & string), listener: (...args: Events[E]) => void, options?: AddEventListenerOptions): () => void;
|
|
13
|
+
off(event: EventName | (Object & string), listener: Callback): void;
|
|
14
|
+
emit<E extends EventName | (Object & string)>(event: E, ...args: E extends EventName ? Events[E] : any[]): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// TODO: add errors and promise rejections handling
|
|
2
|
+
/**
|
|
3
|
+
* Very simple node-like event emitter wrapper around EventTarget
|
|
4
|
+
*/
|
|
5
|
+
export class EventEmitter {
|
|
6
|
+
static once(ee, event) {
|
|
7
|
+
return new Promise((resolve) => ee.once(event, resolve));
|
|
8
|
+
}
|
|
9
|
+
#target = new EventTarget();
|
|
10
|
+
#listeners = new Map();
|
|
11
|
+
on(event, listener, options) {
|
|
12
|
+
const wrapper = (event) => listener(...event.detail);
|
|
13
|
+
this.#listeners.set(listener, wrapper);
|
|
14
|
+
this.#target.addEventListener(event, wrapper, { ...options, once: false });
|
|
15
|
+
return () => this.#target.removeEventListener(event, wrapper);
|
|
16
|
+
}
|
|
17
|
+
once(event, listener, options) {
|
|
18
|
+
return this.on(event, listener, { ...options, once: true });
|
|
19
|
+
}
|
|
20
|
+
off(event, listener) {
|
|
21
|
+
const wrapper = this.#listeners.get(listener);
|
|
22
|
+
if (wrapper)
|
|
23
|
+
this.#target.removeEventListener(event, wrapper);
|
|
24
|
+
}
|
|
25
|
+
emit(event, ...args) {
|
|
26
|
+
return this.#target.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/client/format.d.ts
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { DecodeRPCContext } from '../common/types.ts';
|
|
1
|
+
import type { DecodeRPCContext, EncodeRPCContext, ProtocolRPC, ProtocolRPCResponse } from '../common/types.ts';
|
|
3
2
|
import type { ProtocolClientBlobStream, ProtocolServerBlobStream } from './stream.ts';
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export type ProtocolRPCEncode = {
|
|
4
|
+
buffer: ArrayBuffer;
|
|
5
|
+
streams: Record<number, ProtocolClientBlobStream>;
|
|
6
|
+
};
|
|
8
7
|
export interface BaseClientDecoder {
|
|
9
|
-
decode(buffer:
|
|
10
|
-
decodeRPC(buffer:
|
|
11
|
-
signal?: AbortSignal;
|
|
12
|
-
}) => ProtocolServerBlobStream>): unknown;
|
|
8
|
+
decode(buffer: ArrayBuffer): any;
|
|
9
|
+
decodeRPC(buffer: ArrayBuffer, context: DecodeRPCContext<ProtocolServerBlobStream>): ProtocolRPCResponse<ProtocolServerBlobStream>;
|
|
13
10
|
}
|
|
14
11
|
export interface BaseClientEncoder {
|
|
15
|
-
encode(data:
|
|
16
|
-
encodeRPC(
|
|
12
|
+
encode(data: any): ArrayBuffer;
|
|
13
|
+
encodeRPC(rpc: ProtocolRPC, context: EncodeRPCContext<ProtocolClientBlobStream>): ProtocolRPCEncode;
|
|
17
14
|
}
|
|
18
15
|
export declare abstract class BaseClientFormat implements BaseClientDecoder, BaseClientEncoder {
|
|
19
16
|
abstract contentType: string;
|
|
20
|
-
abstract encode(data:
|
|
21
|
-
abstract encodeRPC(
|
|
22
|
-
abstract decode(buffer:
|
|
23
|
-
abstract decodeRPC(buffer:
|
|
24
|
-
signal?: AbortSignal;
|
|
25
|
-
}) => ProtocolServerBlobStream>): unknown;
|
|
17
|
+
abstract encode(data: any): ArrayBuffer;
|
|
18
|
+
abstract encodeRPC(rpc: ProtocolRPC, context: EncodeRPCContext<ProtocolClientBlobStream>): ProtocolRPCEncode;
|
|
19
|
+
abstract decode(buffer: ArrayBuffer): any;
|
|
20
|
+
abstract decodeRPC(buffer: ArrayBuffer, context: DecodeRPCContext<ProtocolServerBlobStream>): ProtocolRPCResponse<ProtocolServerBlobStream>;
|
|
26
21
|
}
|
package/dist/client/format.js
CHANGED
package/dist/client/index.d.ts
CHANGED
package/dist/client/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
|
|
5
|
-
import { ProtocolVersion1 } from './versions/v1.js';
|
|
6
|
-
export const versions = { [ProtocolVersion.v1]: new ProtocolVersion1() };
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export * from "./events.js";
|
|
2
|
+
export * from "./format.js";
|
|
3
|
+
export * from "./protocol.js";
|
|
4
|
+
export * from "./stream.js";
|
|
@@ -1,105 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { BaseProtocolError,
|
|
4
|
-
import type {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
encoder: BaseClientEncoder;
|
|
9
|
-
addClientStream: (blob: ProtocolBlob) => ProtocolClientBlobStream;
|
|
10
|
-
addServerStream: (streamId: number, metadata: ProtocolBlobMetadata) => (options?: {
|
|
11
|
-
signal?: AbortSignal;
|
|
12
|
-
}) => ProtocolServerBlobStream;
|
|
13
|
-
transport: {
|
|
14
|
-
send: (buffer: ArrayBufferView) => void;
|
|
15
|
-
};
|
|
16
|
-
streamId: () => number;
|
|
17
|
-
};
|
|
18
|
-
export type ClientMessageTypePayload = {
|
|
19
|
-
[ClientMessageType.Rpc]: {
|
|
20
|
-
callId: number;
|
|
21
|
-
procedure: string;
|
|
22
|
-
payload: any;
|
|
23
|
-
};
|
|
24
|
-
[ClientMessageType.RpcAbort]: {
|
|
25
|
-
callId: number;
|
|
26
|
-
reason?: string;
|
|
27
|
-
};
|
|
28
|
-
[ClientMessageType.RpcPull]: {
|
|
29
|
-
callId: number;
|
|
30
|
-
};
|
|
31
|
-
[ClientMessageType.ClientStreamPush]: {
|
|
32
|
-
streamId: number;
|
|
33
|
-
chunk: ArrayBufferView;
|
|
34
|
-
};
|
|
35
|
-
[ClientMessageType.ClientStreamEnd]: {
|
|
36
|
-
streamId: number;
|
|
37
|
-
};
|
|
38
|
-
[ClientMessageType.ClientStreamAbort]: {
|
|
39
|
-
streamId: number;
|
|
40
|
-
reason?: string;
|
|
41
|
-
};
|
|
42
|
-
[ClientMessageType.ServerStreamPull]: {
|
|
43
|
-
streamId: number;
|
|
44
|
-
size: number;
|
|
45
|
-
};
|
|
46
|
-
[ClientMessageType.ServerStreamAbort]: {
|
|
47
|
-
streamId: number;
|
|
48
|
-
reason?: string;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
export type ServerMessageTypePayload = {
|
|
52
|
-
[ServerMessageType.RpcResponse]: {
|
|
53
|
-
callId: number;
|
|
54
|
-
result?: any;
|
|
55
|
-
error?: BaseProtocolError;
|
|
56
|
-
streams?: EncodeRPCStreams;
|
|
57
|
-
};
|
|
58
|
-
[ServerMessageType.RpcStreamResponse]: {
|
|
59
|
-
callId: number;
|
|
60
|
-
error?: BaseProtocolError;
|
|
61
|
-
};
|
|
62
|
-
[ServerMessageType.RpcStreamChunk]: {
|
|
63
|
-
callId: number;
|
|
64
|
-
chunk: ArrayBufferView;
|
|
65
|
-
};
|
|
66
|
-
[ServerMessageType.RpcStreamEnd]: {
|
|
67
|
-
callId: number;
|
|
68
|
-
};
|
|
69
|
-
[ServerMessageType.RpcStreamAbort]: {
|
|
70
|
-
callId: number;
|
|
71
|
-
reason?: string;
|
|
72
|
-
};
|
|
73
|
-
[ServerMessageType.ServerStreamAbort]: {
|
|
74
|
-
streamId: number;
|
|
75
|
-
reason?: string;
|
|
76
|
-
};
|
|
77
|
-
[ServerMessageType.ServerStreamEnd]: {
|
|
78
|
-
streamId: number;
|
|
79
|
-
};
|
|
80
|
-
[ServerMessageType.ServerStreamPush]: {
|
|
81
|
-
streamId: number;
|
|
82
|
-
chunk: ArrayBufferView;
|
|
83
|
-
};
|
|
84
|
-
[ServerMessageType.ClientStreamAbort]: {
|
|
85
|
-
streamId: number;
|
|
86
|
-
reason?: string;
|
|
87
|
-
};
|
|
88
|
-
[ServerMessageType.ClientStreamPull]: {
|
|
89
|
-
streamId: number;
|
|
90
|
-
size: number;
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
export declare abstract class ProtocolVersionInterface {
|
|
94
|
-
abstract version: ProtocolVersion;
|
|
95
|
-
abstract decodeMessage(context: MessageContext, buffer: ArrayBufferView): {
|
|
96
|
-
[K in keyof ServerMessageTypePayload]: {
|
|
97
|
-
type: K;
|
|
98
|
-
} & ServerMessageTypePayload[K];
|
|
99
|
-
}[keyof ServerMessageTypePayload];
|
|
100
|
-
abstract encodeMessage<T extends ClientMessageType>(context: MessageContext, messageType: T, payload: ClientMessageTypePayload[T]): any;
|
|
101
|
-
protected encode(...chunks: (ArrayBuffer | ArrayBufferView)[]): Uint8Array<ArrayBuffer>;
|
|
102
|
-
}
|
|
1
|
+
import type { InteractivePromise, OneOf } from '@nmtjs/common';
|
|
2
|
+
import type { ProtocolBlobMetadata } from '../common/blob.ts';
|
|
3
|
+
import type { BaseProtocolError, ProtocolRPCResponse } from '../common/types.ts';
|
|
4
|
+
import type { BaseClientFormat } from './format.ts';
|
|
5
|
+
import { ClientMessageType, ServerMessageType } from '../common/enums.ts';
|
|
6
|
+
import { EventEmitter } from './events.ts';
|
|
7
|
+
import { ProtocolClientBlobStream, ProtocolServerBlobStream, ProtocolServerStream } from './stream.ts';
|
|
103
8
|
export declare class ProtocolError extends Error implements BaseProtocolError {
|
|
104
9
|
code: string;
|
|
105
10
|
data?: any;
|
|
@@ -112,3 +17,134 @@ export declare class ProtocolError extends Error implements BaseProtocolError {
|
|
|
112
17
|
data: any;
|
|
113
18
|
};
|
|
114
19
|
}
|
|
20
|
+
export declare class ProtocolClientStreams {
|
|
21
|
+
#private;
|
|
22
|
+
get(streamId: number): ProtocolClientBlobStream;
|
|
23
|
+
add(source: ReadableStream, streamId: number, metadata: ProtocolBlobMetadata): ProtocolClientBlobStream;
|
|
24
|
+
remove(streamId: number): void;
|
|
25
|
+
abort(streamId: number, error?: Error): void;
|
|
26
|
+
pull(streamId: number, size: number): Promise<ArrayBuffer | null>;
|
|
27
|
+
end(streamId: number): void;
|
|
28
|
+
clear(error?: Error): void;
|
|
29
|
+
}
|
|
30
|
+
export declare class ProtocolServerStreams<T extends ProtocolServerStream = ProtocolServerStream> {
|
|
31
|
+
#private;
|
|
32
|
+
has(streamId: number): boolean;
|
|
33
|
+
get(streamId: number): T;
|
|
34
|
+
add(streamId: number, stream: T): T;
|
|
35
|
+
remove(streamId: number): void;
|
|
36
|
+
abort(streamId: number): void;
|
|
37
|
+
push(streamId: number, chunk: ArrayBuffer): Promise<void>;
|
|
38
|
+
end(streamId: number): void;
|
|
39
|
+
clear(error?: Error): void;
|
|
40
|
+
}
|
|
41
|
+
export type ProtocolTransportEventMap = {
|
|
42
|
+
connected: [];
|
|
43
|
+
disconnected: [reason: 'server' | 'client' | 'error'];
|
|
44
|
+
};
|
|
45
|
+
export interface ProtocolSendMetadata {
|
|
46
|
+
callId?: number;
|
|
47
|
+
streamId?: number;
|
|
48
|
+
}
|
|
49
|
+
export declare enum ProtocolTransportStatus {
|
|
50
|
+
CONNECTED = "CONNECTED",
|
|
51
|
+
DISCONNECTED = "DISCONNECTED",
|
|
52
|
+
CONNECTING = "CONNECTING"
|
|
53
|
+
}
|
|
54
|
+
export declare abstract class ProtocolTransport<Options = unknown> extends EventEmitter<ProtocolTransportEventMap> {
|
|
55
|
+
protected options?: Options | undefined;
|
|
56
|
+
status: ProtocolTransportStatus;
|
|
57
|
+
constructor(options?: Options | undefined);
|
|
58
|
+
abstract connect(auth: any, transformer: ProtocolBaseTransformer): Promise<void>;
|
|
59
|
+
abstract disconnect(): Promise<void>;
|
|
60
|
+
abstract call(procedure: string, payload: any, options: ProtocolBaseClientCallOptions, transformer: ProtocolBaseTransformer): Promise<ProtocolClientCall>;
|
|
61
|
+
abstract send(messageType: ClientMessageType, buffer: ArrayBuffer, metadata: ProtocolSendMetadata): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
export declare class ProtocolBaseTransformer {
|
|
64
|
+
encodeRPC(_procedure: string, payload: any): any;
|
|
65
|
+
decodeRPC(_procedure: string, payload: any): any;
|
|
66
|
+
decodeRPCChunk(_procedure: string, payload: any): any;
|
|
67
|
+
decodeEvent(_event: string, payload: any): any;
|
|
68
|
+
}
|
|
69
|
+
export type ProtocolClientCall = InteractivePromise<any> & {
|
|
70
|
+
procedure: string;
|
|
71
|
+
signal: AbortSignal;
|
|
72
|
+
};
|
|
73
|
+
export type ProtocolBaseClientOptions = {
|
|
74
|
+
transport: ProtocolTransport;
|
|
75
|
+
format: BaseClientFormat;
|
|
76
|
+
transformer?: ProtocolBaseTransformer;
|
|
77
|
+
timeout?: number;
|
|
78
|
+
};
|
|
79
|
+
export type ProtocolBaseClientCallOptions = {
|
|
80
|
+
signal?: AbortSignal;
|
|
81
|
+
timeout: number;
|
|
82
|
+
};
|
|
83
|
+
export declare class BaseProtocol<T extends Record<string, Record<string, any>> = Record<string, Record<string, any>>> extends EventEmitter<{
|
|
84
|
+
[N in keyof T]: {
|
|
85
|
+
[E in keyof T[N] as `${Extract<N, string>}/${Extract<E, string>}`]: [
|
|
86
|
+
payload: T[N][E]
|
|
87
|
+
];
|
|
88
|
+
};
|
|
89
|
+
}[keyof T]> {
|
|
90
|
+
readonly format: BaseClientFormat;
|
|
91
|
+
protected readonly clientStreams: ProtocolClientStreams;
|
|
92
|
+
protected readonly serverStreams: ProtocolServerStreams<ProtocolServerBlobStream>;
|
|
93
|
+
protected readonly rpcStreams: ProtocolServerStreams;
|
|
94
|
+
protected readonly calls: Map<number, ProtocolClientCall>;
|
|
95
|
+
protected callId: number;
|
|
96
|
+
protected streamId: number;
|
|
97
|
+
constructor(format: BaseClientFormat);
|
|
98
|
+
get contentType(): string;
|
|
99
|
+
handleCallResponse(callId: number, call: ProtocolClientCall, response: OneOf<[
|
|
100
|
+
{
|
|
101
|
+
error: BaseProtocolError;
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
result: any;
|
|
105
|
+
stream?: any;
|
|
106
|
+
}
|
|
107
|
+
]>, transformer: ProtocolBaseTransformer): void;
|
|
108
|
+
handleRpcResponse({ callId, error, result, streams }: ProtocolRPCResponse, transformer: ProtocolBaseTransformer, stream?: ProtocolServerStream): ProtocolClientCall;
|
|
109
|
+
handleRpcStreamResponse(response: ProtocolRPCResponse, stream: ProtocolServerStream, transformer: ProtocolBaseTransformer): ProtocolClientCall;
|
|
110
|
+
createCall(procedure: string, options: ProtocolBaseClientCallOptions): InteractivePromise<unknown> & {
|
|
111
|
+
procedure: string;
|
|
112
|
+
signal: AbortSignal;
|
|
113
|
+
};
|
|
114
|
+
createRpc(procedure: string, payload: any, options: ProtocolBaseClientCallOptions, transformer: ProtocolBaseTransformer): {
|
|
115
|
+
callId: number;
|
|
116
|
+
call: InteractivePromise<unknown> & {
|
|
117
|
+
procedure: string;
|
|
118
|
+
signal: AbortSignal;
|
|
119
|
+
};
|
|
120
|
+
streams: Record<number, ProtocolClientBlobStream>;
|
|
121
|
+
buffer: ArrayBuffer;
|
|
122
|
+
};
|
|
123
|
+
pushRpcStream(callId: number, chunk: any): void;
|
|
124
|
+
endRpcStream(callId: number): void;
|
|
125
|
+
abortRpcStream(callId: number): void;
|
|
126
|
+
removeClientStream(streamId: number): void;
|
|
127
|
+
pullClientStream(streamId: number, size: number): Promise<ArrayBuffer | null>;
|
|
128
|
+
endClientStream(streamId: number): void;
|
|
129
|
+
abortClientStream(streamId: number, error?: Error): void;
|
|
130
|
+
addServerStream(stream: ProtocolServerBlobStream): void;
|
|
131
|
+
removeServerStream(streamId: number): void;
|
|
132
|
+
pushServerStream(streamId: number, chunk: ArrayBuffer): Promise<void>;
|
|
133
|
+
endServerStream(streamId: number): void;
|
|
134
|
+
abortServerStream(streamId: number, _error?: Error): void;
|
|
135
|
+
emitEvent(event: string, payload: string, transformer: ProtocolBaseTransformer): void;
|
|
136
|
+
}
|
|
137
|
+
export declare class Protocol<T extends Record<string, Record<string, any>> = Record<string, Record<string, any>>> extends BaseProtocol<T> {
|
|
138
|
+
handleServerMessage(buffer: ArrayBuffer, transport: ProtocolTransport, transformer: ProtocolBaseTransformer): void;
|
|
139
|
+
protected [ServerMessageType.Event](buffer: ArrayBuffer, _transport: ProtocolTransport, transformer: ProtocolBaseTransformer): void;
|
|
140
|
+
protected [ServerMessageType.RpcResponse](buffer: ArrayBuffer, transport: ProtocolTransport, transformer: ProtocolBaseTransformer): void;
|
|
141
|
+
protected [ServerMessageType.RpcStreamResponse](buffer: ArrayBuffer, transport: ProtocolTransport, transformer: ProtocolBaseTransformer): void;
|
|
142
|
+
protected [ServerMessageType.RpcStreamChunk](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
143
|
+
protected [ServerMessageType.RpcStreamEnd](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
144
|
+
protected [ServerMessageType.RpcStreamAbort](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
145
|
+
protected [ServerMessageType.ServerStreamPush](buffer: ArrayBuffer, transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
146
|
+
protected [ServerMessageType.ServerStreamEnd](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
147
|
+
protected [ServerMessageType.ServerStreamAbort](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
148
|
+
protected [ServerMessageType.ClientStreamPull](buffer: ArrayBuffer, transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
149
|
+
protected [ServerMessageType.ClientStreamAbort](buffer: ArrayBuffer, _transport: ProtocolTransport, _transformer: ProtocolBaseTransformer): void;
|
|
150
|
+
}
|