@nmtjs/client 0.15.0-beta.2 → 0.15.0-beta.21

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.
@@ -0,0 +1,20 @@
1
+ import type { TAnyRouterContract } from '@nmtjs/contract';
2
+ import type { BaseClientOptions } from '../core.ts';
3
+ import type { ClientTransportFactory } from '../transport.ts';
4
+ import type { ClientCallers, RuntimeInputContractTypeProvider, RuntimeOutputContractTypeProvider } from '../types.ts';
5
+ import { BaseClient } from '../core.ts';
6
+ export declare class RuntimeContractTransformer {
7
+ #private;
8
+ constructor(router: TAnyRouterContract);
9
+ encode(_procedure: string, payload: any): unknown;
10
+ decode(_procedure: string, payload: any): unknown;
11
+ }
12
+ export declare class RuntimeClient<Transport extends ClientTransportFactory<any, any> = ClientTransportFactory<any, any>, RouterContract extends TAnyRouterContract = TAnyRouterContract, SafeCall extends boolean = false> extends BaseClient<Transport, RouterContract, SafeCall, RuntimeInputContractTypeProvider, RuntimeOutputContractTypeProvider> {
13
+ #private;
14
+ protected readonly transformer: RuntimeContractTransformer;
15
+ constructor(options: BaseClientOptions<RouterContract, SafeCall>, transport: Transport, transportOptions: Transport extends ClientTransportFactory<any, infer Options> ? Options : never);
16
+ get call(): ClientCallers<this["_"]["routes"], SafeCall, false>;
17
+ get stream(): ClientCallers<this["_"]["routes"], SafeCall, true>;
18
+ protected resolveProcedures(router: TAnyRouterContract, path?: string[]): void;
19
+ protected buildCallers(): ClientCallers<this['_']['routes'], SafeCall, boolean>;
20
+ }
@@ -78,3 +78,4 @@ export class RuntimeClient extends BaseClient {
78
78
  return callers;
79
79
  }
80
80
  }
81
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/clients/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { TAnyRouterContract } from '@nmtjs/contract';
2
+ import type { BaseClientOptions } from '../core.ts';
3
+ import type { ClientTransportFactory } from '../transport.ts';
4
+ import type { ClientCallers, StaticInputContractTypeProvider, StaticOutputContractTypeProvider } from '../types.ts';
5
+ import { BaseClient } from '../core.ts';
6
+ import { BaseClientTransformer } from '../transformers.ts';
7
+ export declare class StaticClient<Transport extends ClientTransportFactory<any, any> = ClientTransportFactory<any, any>, RouterContract extends TAnyRouterContract = TAnyRouterContract, SafeCall extends boolean = false> extends BaseClient<Transport, RouterContract, SafeCall, StaticInputContractTypeProvider, StaticOutputContractTypeProvider> {
8
+ protected readonly transformer: BaseClientTransformer;
9
+ constructor(options: BaseClientOptions<RouterContract, SafeCall>, transport: Transport, transportOptions: Transport extends ClientTransportFactory<any, infer Options> ? Options : never);
10
+ get call(): ClientCallers<this["_"]["routes"], SafeCall, false>;
11
+ get stream(): ClientCallers<this["_"]["routes"], SafeCall, true>;
12
+ protected createProxy<T>(target: Record<string, unknown>, isStream: boolean, path?: string[]): T;
13
+ }
@@ -24,3 +24,4 @@ export class StaticClient extends BaseClient {
24
24
  });
25
25
  }
26
26
  }
27
+ //# sourceMappingURL=static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/clients/static.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,OAAO,YAOX,SAAQ,UAMT;IACoB,WAAW,CAAuB;IAErD,YACE,OAAoD,EACpD,SAAoB,EACpB,gBAKS;QAET,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAA;IAChD,CAAC;IAED,IAAa,IAAI;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAIjD,CAAA;IACH,CAAC;IAED,IAAa,MAAM;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAIhD,CAAA;IACH,CAAC;IAES,WAAW,CACnB,MAA+B,EAC/B,QAAiB,EACjB,OAAiB,EAAE;QAEnB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACjB,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,GAAG,CAAA;gBAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvC,MAAM,MAAM,GAAG,CACb,OAAiB,EACjB,OAAoC,EACpC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBACpD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3D,CAAC;SACF,CAAM,CAAA;IACT,CAAC;CACF"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,71 @@
1
+ import type { Future, TypeProvider } from '@nmtjs/common';
2
+ import type { TAnyRouterContract } from '@nmtjs/contract';
3
+ import type { ProtocolBlobMetadata, ProtocolVersion } from '@nmtjs/protocol';
4
+ import type { BaseClientFormat, MessageContext, ProtocolVersionInterface } from '@nmtjs/protocol/client';
5
+ import { ProtocolBlob } from '@nmtjs/protocol';
6
+ import { ProtocolError } from '@nmtjs/protocol/client';
7
+ import type { BaseClientTransformer } from './transformers.ts';
8
+ import type { ClientTransportFactory } from './transport.ts';
9
+ import type { ClientCallers, ClientCallOptions, ResolveAPIRouterRoutes } from './types.ts';
10
+ import { EventEmitter } from './events.ts';
11
+ import { ClientStreams, ServerStreams } from './streams.ts';
12
+ export { ErrorCode, ProtocolBlob, type ProtocolBlobMetadata, } from '@nmtjs/protocol';
13
+ export * from './types.ts';
14
+ export declare class ClientError extends ProtocolError {
15
+ }
16
+ export type ProtocolClientCall = Future<any> & {
17
+ procedure: string;
18
+ signal?: AbortSignal;
19
+ };
20
+ export interface BaseClientOptions<RouterContract extends TAnyRouterContract = TAnyRouterContract, SafeCall extends boolean = false> {
21
+ contract: RouterContract;
22
+ protocol: ProtocolVersion;
23
+ format: BaseClientFormat;
24
+ application?: string;
25
+ timeout?: number;
26
+ autoreconnect?: boolean;
27
+ safe?: SafeCall;
28
+ }
29
+ /**
30
+ * @todo Add error logging in ClientStreamPull rejection handler for easier debugging
31
+ * @todo Consider edge case where callId/streamId overflow at MAX_UINT32 with existing entries
32
+ */
33
+ export declare abstract class BaseClient<TransportFactory extends ClientTransportFactory<any, any> = ClientTransportFactory<any, any>, RouterContract extends TAnyRouterContract = TAnyRouterContract, SafeCall extends boolean = false, InputTypeProvider extends TypeProvider = TypeProvider, OutputTypeProvider extends TypeProvider = TypeProvider> extends EventEmitter<{
34
+ connected: [];
35
+ disconnected: [reason: 'server' | 'client' | (string & {})];
36
+ }> {
37
+ #private;
38
+ readonly options: BaseClientOptions<RouterContract, SafeCall>;
39
+ readonly transportFactory: TransportFactory;
40
+ readonly transportOptions: TransportFactory extends ClientTransportFactory<any, infer U> ? U : never;
41
+ _: {
42
+ routes: ResolveAPIRouterRoutes<RouterContract, InputTypeProvider, OutputTypeProvider>;
43
+ safe: SafeCall;
44
+ };
45
+ protected abstract readonly transformer: BaseClientTransformer;
46
+ abstract call: ClientCallers<this['_']['routes'], SafeCall, false>;
47
+ abstract stream: ClientCallers<this['_']['routes'], SafeCall, true>;
48
+ protected calls: Map<number, ProtocolClientCall>;
49
+ protected transport: TransportFactory extends ClientTransportFactory<any, any, infer T> ? T : never;
50
+ protected protocol: ProtocolVersionInterface;
51
+ protected messageContext: MessageContext | null;
52
+ protected clientStreams: ClientStreams;
53
+ protected serverStreams: ServerStreams<import("@nmtjs/protocol/client").ProtocolServerStreamInterface<unknown>>;
54
+ protected rpcStreams: ServerStreams<import("@nmtjs/protocol/client").ProtocolServerStreamInterface<unknown>>;
55
+ protected callId: number;
56
+ protected streamId: number;
57
+ protected cab: AbortController | null;
58
+ protected reconnectTimeout: number;
59
+ protected connecting: Promise<void> | null;
60
+ protected state: 'connected' | 'disconnected';
61
+ constructor(options: BaseClientOptions<RouterContract, SafeCall>, transportFactory: TransportFactory, transportOptions: TransportFactory extends ClientTransportFactory<any, infer U> ? U : never);
62
+ get auth(): any;
63
+ set auth(value: any);
64
+ connect(): Promise<void>;
65
+ disconnect(): Promise<void>;
66
+ blob(source: Blob | ReadableStream | string | AsyncIterable<Uint8Array>, metadata?: ProtocolBlobMetadata): ProtocolBlob;
67
+ protected _call(procedure: string, payload: any, options?: ClientCallOptions): Promise<any>;
68
+ protected onConnect(): Promise<void>;
69
+ protected onDisconnect(reason: 'client' | 'server' | (string & {})): Promise<void>;
70
+ protected onMessage(buffer: ArrayBufferView): Promise<void>;
71
+ }
package/dist/core.js CHANGED
@@ -29,6 +29,8 @@ export class BaseClient extends EventEmitter {
29
29
  streamId = 0;
30
30
  cab = null;
31
31
  reconnectTimeout = DEFAULT_RECONNECT_TIMEOUT;
32
+ connecting = null;
33
+ state = 'disconnected';
32
34
  #auth;
33
35
  constructor(options, transportFactory, transportOptions) {
34
36
  super();
@@ -41,14 +43,11 @@ export class BaseClient extends EventEmitter {
41
43
  if (this.transport.type === ConnectionType.Bidirectional &&
42
44
  this.options.autoreconnect) {
43
45
  this.on('disconnected', async (reason) => {
44
- if (reason === 'server') {
45
- this.connect();
46
- }
47
- else if (reason === 'error') {
46
+ while (this.state === 'disconnected') {
48
47
  const timeout = new Promise((resolve) => setTimeout(resolve, this.reconnectTimeout));
49
- const connected = new Promise((_, reject) => this.once('connected', reject));
50
48
  this.reconnectTimeout = Math.min(this.reconnectTimeout * 2, DEFAULT_MAX_RECONNECT_TIMEOUT);
51
- await Promise.race([timeout, connected]).then(this.connect.bind(this), noopFn);
49
+ await timeout;
50
+ await this.connect().catch(noopFn);
52
51
  }
53
52
  });
54
53
  this.on('connected', () => {
@@ -56,7 +55,7 @@ export class BaseClient extends EventEmitter {
56
55
  });
57
56
  if (globalThis.window) {
58
57
  globalThis.window.addEventListener('pageshow', () => {
59
- if (!this.cab)
58
+ if (this.state === 'disconnected')
60
59
  this.connect();
61
60
  });
62
61
  }
@@ -68,54 +67,68 @@ export class BaseClient extends EventEmitter {
68
67
  set auth(value) {
69
68
  this.#auth = value;
70
69
  }
71
- async connect() {
72
- if (this.transport.type === ConnectionType.Bidirectional) {
73
- this.cab = new AbortController();
74
- const protocol = this.protocol;
75
- const serverStreams = this.serverStreams;
76
- const transport = {
77
- send: (buffer) => {
78
- this.#send(buffer).catch(noopFn);
79
- },
80
- };
81
- this.messageContext = {
82
- transport,
83
- encoder: this.options.format,
84
- decoder: this.options.format,
85
- addClientStream: (blob) => {
86
- const streamId = this.#getStreamId();
87
- return this.clientStreams.add(blob.source, streamId, blob.metadata);
88
- },
89
- addServerStream(streamId, metadata) {
90
- const stream = new ProtocolServerBlobStream(metadata, {
91
- pull: (controller) => {
92
- transport.send(protocol.encodeMessage(this, ClientMessageType.ServerStreamPull, { streamId, size: 65535 /* 64kb by default */ }));
93
- },
94
- close: () => {
95
- serverStreams.remove(streamId);
96
- },
97
- readableStrategy: { highWaterMark: 0 },
98
- });
99
- serverStreams.add(streamId, stream);
100
- return ({ signal } = {}) => {
101
- if (signal)
102
- signal.addEventListener('abort', () => {
103
- transport.send(protocol.encodeMessage(this, ClientMessageType.ServerStreamAbort, { streamId }));
104
- serverStreams.abort(streamId);
105
- }, { once: true });
106
- return stream;
107
- };
108
- },
109
- streamId: this.#getStreamId.bind(this),
110
- };
111
- return this.transport.connect({
112
- auth: this.auth,
113
- application: this.options.application,
114
- onMessage: this.onMessage.bind(this),
115
- onConnect: this.onConnect.bind(this),
116
- onDisconnect: this.onDisconnect.bind(this),
117
- });
118
- }
70
+ connect() {
71
+ if (this.state === 'connected')
72
+ return Promise.resolve();
73
+ if (this.connecting)
74
+ return this.connecting;
75
+ const _connect = async () => {
76
+ if (this.transport.type === ConnectionType.Bidirectional) {
77
+ this.cab = new AbortController();
78
+ const protocol = this.protocol;
79
+ const serverStreams = this.serverStreams;
80
+ const transport = {
81
+ send: (buffer) => {
82
+ this.#send(buffer).catch(noopFn);
83
+ },
84
+ };
85
+ this.messageContext = {
86
+ transport,
87
+ encoder: this.options.format,
88
+ decoder: this.options.format,
89
+ addClientStream: (blob) => {
90
+ const streamId = this.#getStreamId();
91
+ return this.clientStreams.add(blob.source, streamId, blob.metadata);
92
+ },
93
+ addServerStream(streamId, metadata) {
94
+ const stream = new ProtocolServerBlobStream(metadata, {
95
+ pull: (controller) => {
96
+ transport.send(protocol.encodeMessage(this, ClientMessageType.ServerStreamPull, { streamId, size: 65535 /* 64kb by default */ }));
97
+ },
98
+ close: () => {
99
+ serverStreams.remove(streamId);
100
+ },
101
+ readableStrategy: { highWaterMark: 0 },
102
+ });
103
+ serverStreams.add(streamId, stream);
104
+ return ({ signal } = {}) => {
105
+ if (signal)
106
+ signal.addEventListener('abort', () => {
107
+ transport.send(protocol.encodeMessage(this, ClientMessageType.ServerStreamAbort, { streamId }));
108
+ serverStreams.abort(streamId);
109
+ }, { once: true });
110
+ return stream;
111
+ };
112
+ },
113
+ streamId: this.#getStreamId.bind(this),
114
+ };
115
+ return this.transport.connect({
116
+ auth: this.auth,
117
+ application: this.options.application,
118
+ onMessage: this.onMessage.bind(this),
119
+ onConnect: this.onConnect.bind(this),
120
+ onDisconnect: this.onDisconnect.bind(this),
121
+ });
122
+ }
123
+ };
124
+ this.connecting = _connect()
125
+ .then(() => {
126
+ this.state = 'connected';
127
+ })
128
+ .finally(() => {
129
+ this.connecting = null;
130
+ });
131
+ return this.connecting;
119
132
  }
120
133
  async disconnect() {
121
134
  if (this.transport.type === ConnectionType.Bidirectional) {
@@ -208,9 +221,11 @@ export class BaseClient extends EventEmitter {
208
221
  }
209
222
  }
210
223
  async onConnect() {
224
+ this.state = 'connected';
211
225
  this.emit('connected');
212
226
  }
213
227
  async onDisconnect(reason) {
228
+ this.state = 'disconnected';
214
229
  this.emit('disconnected', reason);
215
230
  this.clientStreams.clear(reason);
216
231
  this.serverStreams.clear(reason);
@@ -408,3 +423,4 @@ export class BaseClient extends EventEmitter {
408
423
  return this.callId++;
409
424
  }
410
425
  }
426
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Callback } from '@nmtjs/common';
2
+ export type EventMap = {
3
+ [K: string]: any[];
4
+ };
5
+ /**
6
+ * Thin 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
+ }
16
+ export declare const once: <T extends EventEmitter, EventMap extends T extends EventEmitter<infer E, any> ? E : never, EventName extends T extends EventEmitter<any, infer N> ? N : never>(ee: T, event: EventName, signal?: AbortSignal) => Promise<EventMap[EventName]>;
package/dist/events.js CHANGED
@@ -31,3 +31,4 @@ export const once = (ee, event, signal) => {
31
31
  ee.once(event, resolve, { signal });
32
32
  });
33
33
  };
34
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAIA,mDAAmD;AACnD;;GAEG;AACH,MAAM,OAAO,YAAY;IAOvB,MAAM,CAAC,IAAI,CAGT,EAAK,EAAE,KAAQ;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IAC3B,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE1C,EAAE,CACA,KAA4B,EAC5B,QAAsC,EACtC,OAAiC;QAEjC,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CACF,KAA4B,EAC5B,QAAsC,EACtC,OAAiC;QAEjC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,GAAG,CAAC,KAAoC,EAAE,QAAkB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAA6C;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAKlB,EAAK,EACL,KAAgB,EAChB,MAAoB,EACpB,EAAE;IACF,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QAClD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './core.ts';
2
+ export * from './events.ts';
3
+ export * from './transformers.ts';
4
+ export * from './transport.ts';
5
+ export * from './types.ts';
package/dist/index.js CHANGED
@@ -3,3 +3,4 @@ export * from "./events.js";
3
3
  export * from "./transformers.js";
4
4
  export * from "./transport.js";
5
5
  export * from "./types.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,26 @@
1
+ import type { ProtocolBlobMetadata } from '@nmtjs/protocol';
2
+ import type { ProtocolServerStreamInterface } from '@nmtjs/protocol/client';
3
+ import { ProtocolClientBlobStream } from '@nmtjs/protocol/client';
4
+ export declare class ClientStreams {
5
+ #private;
6
+ get size(): number;
7
+ get(streamId: number): ProtocolClientBlobStream;
8
+ add(source: ReadableStream, streamId: number, metadata: ProtocolBlobMetadata): ProtocolClientBlobStream;
9
+ remove(streamId: number): void;
10
+ abort(streamId: number, reason?: string): Promise<void>;
11
+ pull(streamId: number, size: number): Promise<Uint8Array<ArrayBufferLike> | null>;
12
+ end(streamId: number): Promise<void>;
13
+ clear(reason?: string): Promise<void>;
14
+ }
15
+ export declare class ServerStreams<T extends ProtocolServerStreamInterface = ProtocolServerStreamInterface> {
16
+ #private;
17
+ get size(): number;
18
+ has(streamId: number): boolean;
19
+ get(streamId: number): T;
20
+ add(streamId: number, stream: T): T;
21
+ remove(streamId: number): void;
22
+ abort(streamId: number): Promise<void>;
23
+ push(streamId: number, chunk: ArrayBufferView): Promise<void>;
24
+ end(streamId: number): Promise<void>;
25
+ clear(reason?: string): Promise<void>;
26
+ }
package/dist/streams.js CHANGED
@@ -98,3 +98,4 @@ export class ServerStreams {
98
98
  this.#writers.clear();
99
99
  }
100
100
  }
101
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class BaseClientTransformer {
2
+ encode(_procedure: string, payload: any): any;
3
+ decode(_procedure: string, payload: any): any;
4
+ }
@@ -6,3 +6,4 @@ export class BaseClientTransformer {
6
6
  return payload;
7
7
  }
8
8
  }
9
+ //# sourceMappingURL=transformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,UAAkB,EAAE,OAAY;QACrC,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,CAAC,UAAkB,EAAE,OAAY;QACrC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import type { ConnectionType, ProtocolBlobMetadata, ProtocolVersion } from '@nmtjs/protocol';
2
+ import type { BaseClientFormat } from '@nmtjs/protocol/client';
3
+ export type ClientTransportMessageOptions = {
4
+ signal?: AbortSignal;
5
+ _stream_response?: boolean;
6
+ };
7
+ export interface ClientTransportStartParams {
8
+ auth?: string;
9
+ application?: string;
10
+ onMessage: (message: ArrayBufferView) => any;
11
+ onConnect: () => any;
12
+ onDisconnect: (reason: 'client' | 'server' | (string & {})) => any;
13
+ }
14
+ export interface ClientTransportRpcParams {
15
+ format: BaseClientFormat;
16
+ auth?: string;
17
+ application?: string;
18
+ }
19
+ export type ClientCallResponse = {
20
+ type: 'rpc';
21
+ result: ArrayBufferView;
22
+ } | {
23
+ type: 'rpc_stream';
24
+ stream: ReadableStream<ArrayBufferView>;
25
+ } | {
26
+ type: 'blob';
27
+ metadata: ProtocolBlobMetadata;
28
+ source: ReadableStream<ArrayBufferView>;
29
+ };
30
+ export type ClientTransport<T extends ConnectionType = ConnectionType> = T extends ConnectionType.Bidirectional ? {
31
+ type: ConnectionType.Bidirectional;
32
+ connect(params: ClientTransportStartParams): Promise<void>;
33
+ disconnect(): Promise<void>;
34
+ send(message: ArrayBufferView, options: ClientTransportMessageOptions): Promise<void>;
35
+ } : {
36
+ type: ConnectionType.Unidirectional;
37
+ connect?(params: ClientTransportStartParams): Promise<void>;
38
+ disconnect?(): Promise<void>;
39
+ call(client: {
40
+ format: BaseClientFormat;
41
+ auth?: string;
42
+ application?: string;
43
+ }, rpc: {
44
+ callId: number;
45
+ procedure: string;
46
+ payload: any;
47
+ }, options: ClientTransportMessageOptions): Promise<ClientCallResponse>;
48
+ };
49
+ export interface ClientTransportParams {
50
+ protocol: ProtocolVersion;
51
+ format: BaseClientFormat;
52
+ }
53
+ export type ClientTransportFactory<Type extends ConnectionType, Options = unknown, Transport extends ClientTransport<Type> = ClientTransport<Type>> = (params: ClientTransportParams, options: Options) => Transport;
package/dist/transport.js CHANGED
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import type { CallTypeProvider, OneOf, TypeProvider } from '@nmtjs/common';
2
+ import type { TAnyProcedureContract, TAnyRouterContract } from '@nmtjs/contract';
3
+ import type { ProtocolBlobInterface } from '@nmtjs/protocol';
4
+ import type { ProtocolError, ProtocolServerBlobStream } from '@nmtjs/protocol/client';
5
+ import type { BaseTypeAny, PlainType, t } from '@nmtjs/type';
6
+ export declare const ResolvedType: unique symbol;
7
+ export type ResolvedType = typeof ResolvedType;
8
+ export type ClientCallOptions = {
9
+ timeout?: number;
10
+ signal?: AbortSignal;
11
+ /**
12
+ * @internal
13
+ */
14
+ _stream_response?: boolean;
15
+ };
16
+ export type ClientOutputType<T> = T extends ProtocolBlobInterface ? (options?: {
17
+ signal?: AbortSignal;
18
+ }) => ProtocolServerBlobStream : T extends {
19
+ [PlainType]?: true;
20
+ } ? {
21
+ [K in keyof Omit<T, PlainType>]: ClientOutputType<T[K]>;
22
+ } : T;
23
+ export interface StaticInputContractTypeProvider extends TypeProvider {
24
+ output: this['input'] extends BaseTypeAny ? t.infer.decode.input<this['input']> : never;
25
+ }
26
+ export interface RuntimeInputContractTypeProvider extends TypeProvider {
27
+ output: this['input'] extends BaseTypeAny ? t.infer.encode.input<this['input']> : never;
28
+ }
29
+ export interface StaticOutputContractTypeProvider extends TypeProvider {
30
+ output: this['input'] extends BaseTypeAny ? ClientOutputType<t.infer.encodeRaw.output<this['input']>> : never;
31
+ }
32
+ export interface RuntimeOutputContractTypeProvider extends TypeProvider {
33
+ output: this['input'] extends BaseTypeAny ? ClientOutputType<t.infer.decodeRaw.output<this['input']>> : never;
34
+ }
35
+ export type AnyResolvedContractProcedure = {
36
+ [ResolvedType]: 'procedure';
37
+ contract: TAnyProcedureContract;
38
+ stream: boolean;
39
+ input: any;
40
+ output: any;
41
+ };
42
+ export type AnyResolvedContractRouter = {
43
+ [ResolvedType]: 'router';
44
+ [key: string]: AnyResolvedContractProcedure | AnyResolvedContractRouter;
45
+ };
46
+ export type ResolveAPIRouterRoutes<T extends TAnyRouterContract, InputTypeProvider extends TypeProvider = TypeProvider, OutputTypeProvider extends TypeProvider = TypeProvider> = {
47
+ [ResolvedType]: 'router';
48
+ } & {
49
+ [K in keyof T['routes']]: T['routes'][K] extends TAnyProcedureContract ? {
50
+ [ResolvedType]: 'procedure';
51
+ contract: T['routes'][K];
52
+ stream: T['routes'][K]['stream'] extends true ? true : false;
53
+ input: CallTypeProvider<InputTypeProvider, T['routes'][K]['input']>;
54
+ output: T['routes'][K]['stream'] extends true ? AsyncIterable<CallTypeProvider<OutputTypeProvider, T['routes'][K]['output']>> : CallTypeProvider<OutputTypeProvider, T['routes'][K]['output']>;
55
+ } : T['routes'][K] extends TAnyRouterContract ? ResolveAPIRouterRoutes<T['routes'][K], InputTypeProvider, OutputTypeProvider> : never;
56
+ };
57
+ export type ResolveContract<C extends TAnyRouterContract = TAnyRouterContract, InputTypeProvider extends TypeProvider = TypeProvider, OutputTypeProvider extends TypeProvider = TypeProvider> = ResolveAPIRouterRoutes<C, InputTypeProvider, OutputTypeProvider>;
58
+ export type ClientCaller<Procedure extends AnyResolvedContractProcedure, SafeCall extends boolean> = (...args: Procedure['input'] extends t.NeverType ? [data?: undefined, options?: Partial<ClientCallOptions>] : undefined extends t.infer.encode.input<Procedure['contract']['input']> ? [data?: Procedure['input'], options?: Partial<ClientCallOptions>] : [data: Procedure['input'], options?: Partial<ClientCallOptions>]) => SafeCall extends true ? Promise<OneOf<[{
59
+ result: Procedure['output'];
60
+ }, {
61
+ error: ProtocolError;
62
+ }]>> : Promise<Procedure['output']>;
63
+ type OmitType<T extends object, E> = {
64
+ [K in keyof T as T[K] extends E ? never : K]: T[K];
65
+ };
66
+ export type ClientCallers<Resolved extends AnyResolvedContractRouter, SafeCall extends boolean, Stream extends boolean> = OmitType<{
67
+ [K in keyof Resolved]: Resolved[K] extends AnyResolvedContractProcedure ? Stream extends (Resolved[K]['stream'] extends true ? true : false) ? ClientCaller<Resolved[K], SafeCall> : never : Resolved[K] extends AnyResolvedContractRouter ? ClientCallers<Resolved[K], SafeCall, Stream> : never;
68
+ }, never>;
69
+ export {};
package/dist/types.js CHANGED
@@ -1 +1,2 @@
1
1
  export const ResolvedType = Symbol('ResolvedType');
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAA"}