@nmtjs/protocol 0.15.0-beta.2 → 0.15.0-beta.4

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 (77) hide show
  1. package/dist/client/format.d.ts +26 -0
  2. package/dist/client/format.js +1 -0
  3. package/dist/client/format.js.map +1 -0
  4. package/dist/client/index.d.ts +7 -0
  5. package/dist/client/index.js +1 -0
  6. package/dist/client/index.js.map +1 -0
  7. package/dist/client/protocol.d.ts +114 -0
  8. package/dist/client/protocol.js +1 -0
  9. package/dist/client/protocol.js.map +1 -0
  10. package/dist/client/stream.d.ts +49 -0
  11. package/dist/client/stream.js +1 -0
  12. package/dist/client/stream.js.map +1 -0
  13. package/dist/client/versions/v1.d.ts +108 -0
  14. package/dist/client/versions/v1.js +1 -0
  15. package/dist/client/versions/v1.js.map +1 -0
  16. package/dist/common/binary.d.ts +20 -0
  17. package/dist/common/binary.js +1 -0
  18. package/dist/common/binary.js.map +1 -0
  19. package/dist/common/blob.d.ts +29 -0
  20. package/dist/common/blob.js +1 -0
  21. package/dist/common/blob.js.map +1 -0
  22. package/dist/common/constants.d.ts +2 -0
  23. package/dist/common/constants.js +1 -0
  24. package/dist/common/constants.js.map +1 -0
  25. package/dist/common/enums.d.ts +51 -0
  26. package/dist/common/enums.js +1 -0
  27. package/dist/common/enums.js.map +1 -0
  28. package/dist/common/index.d.ts +6 -0
  29. package/dist/common/index.js +1 -0
  30. package/dist/common/index.js.map +1 -0
  31. package/dist/common/types.d.ts +14 -0
  32. package/dist/common/types.js +1 -0
  33. package/dist/common/types.js.map +1 -0
  34. package/dist/common/utils.d.ts +2 -0
  35. package/dist/common/utils.js +1 -0
  36. package/dist/common/utils.js.map +1 -0
  37. package/dist/server/format.d.ts +32 -0
  38. package/dist/server/format.js +1 -0
  39. package/dist/server/format.js.map +1 -0
  40. package/dist/server/index.d.ts +9 -0
  41. package/dist/server/index.js +1 -0
  42. package/dist/server/index.js.map +1 -0
  43. package/dist/server/protocol.d.ts +102 -0
  44. package/dist/server/protocol.js +1 -0
  45. package/dist/server/protocol.js.map +1 -0
  46. package/dist/server/stream.d.ts +15 -0
  47. package/dist/server/stream.js +1 -0
  48. package/dist/server/stream.js.map +1 -0
  49. package/dist/server/types.d.ts +34 -0
  50. package/dist/server/types.js +1 -0
  51. package/dist/server/types.js.map +1 -0
  52. package/dist/server/utils.d.ts +12 -0
  53. package/dist/server/utils.js +1 -0
  54. package/dist/server/utils.js.map +1 -0
  55. package/dist/server/versions/v1.d.ts +77 -0
  56. package/dist/server/versions/v1.js +1 -0
  57. package/dist/server/versions/v1.js.map +1 -0
  58. package/package.json +11 -10
  59. package/src/client/format.ts +49 -0
  60. package/src/client/index.ts +8 -0
  61. package/src/client/protocol.ts +107 -0
  62. package/src/client/stream.ts +222 -0
  63. package/src/client/versions/v1.ts +205 -0
  64. package/src/common/binary.ts +70 -0
  65. package/src/common/blob.ts +99 -0
  66. package/src/common/constants.ts +2 -0
  67. package/src/common/enums.ts +62 -0
  68. package/src/common/index.ts +6 -0
  69. package/src/common/types.ts +18 -0
  70. package/src/common/utils.ts +12 -0
  71. package/src/server/format.ts +113 -0
  72. package/src/server/index.ts +10 -0
  73. package/src/server/protocol.ts +97 -0
  74. package/src/server/stream.ts +51 -0
  75. package/src/server/types.ts +42 -0
  76. package/src/server/utils.ts +22 -0
  77. package/src/server/versions/v1.ts +198 -0
@@ -0,0 +1,26 @@
1
+ import type { ProtocolBlob } from '../common/blob.ts';
2
+ import type { DecodeRPCContext } from '../common/types.ts';
3
+ import type { ProtocolClientBlobStream, ProtocolServerBlobStream } from './stream.ts';
4
+ export interface EncodeRPCContext<T = any> {
5
+ addStream: (blob: ProtocolBlob) => T;
6
+ }
7
+ export type ProtocolRPCEncode = ArrayBufferView;
8
+ export interface BaseClientDecoder {
9
+ decode(buffer: ArrayBufferView): unknown;
10
+ decodeRPC(buffer: ArrayBufferView, context: DecodeRPCContext<(options?: {
11
+ signal?: AbortSignal;
12
+ }) => ProtocolServerBlobStream>): unknown;
13
+ }
14
+ export interface BaseClientEncoder {
15
+ encode(data: unknown): ArrayBufferView;
16
+ encodeRPC(data: unknown, context: EncodeRPCContext<ProtocolClientBlobStream>): ProtocolRPCEncode;
17
+ }
18
+ export declare abstract class BaseClientFormat implements BaseClientDecoder, BaseClientEncoder {
19
+ abstract contentType: string;
20
+ abstract encode(data: unknown): ArrayBufferView;
21
+ abstract encodeRPC(data: unknown, context: EncodeRPCContext): ProtocolRPCEncode;
22
+ abstract decode(buffer: ArrayBufferView): unknown;
23
+ abstract decodeRPC(buffer: ArrayBufferView, context: DecodeRPCContext<(options?: {
24
+ signal?: AbortSignal;
25
+ }) => ProtocolServerBlobStream>): unknown;
26
+ }
@@ -1,2 +1,3 @@
1
1
  export class BaseClientFormat {
2
2
  }
3
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/client/format.ts"],"names":[],"mappings":"AA+BA,MAAM,OAAgB,gBAAgB;CAiBrC"}
@@ -0,0 +1,7 @@
1
+ export * from './format.ts';
2
+ export * from './protocol.ts';
3
+ export * from './stream.ts';
4
+ import { ProtocolVersion1 } from './versions/v1.ts';
5
+ export declare const versions: {
6
+ 1: ProtocolVersion1;
7
+ };
@@ -4,3 +4,4 @@ export * from "./stream.js";
4
4
  import { ProtocolVersion } from "../common/enums.js";
5
5
  import { ProtocolVersion1 } from "./versions/v1.js";
6
6
  export const versions = { [ProtocolVersion.v1]: new ProtocolVersion1() };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAA"}
@@ -0,0 +1,114 @@
1
+ import type { ProtocolBlob, ProtocolBlobMetadata } from '../common/blob.ts';
2
+ import type { ClientMessageType, ProtocolVersion, ServerMessageType } from '../common/enums.ts';
3
+ import type { BaseProtocolError, EncodeRPCStreams } from '../common/types.ts';
4
+ import type { BaseClientDecoder, BaseClientEncoder } from './format.ts';
5
+ import type { ProtocolClientBlobStream, ProtocolServerBlobStream } from './stream.ts';
6
+ export type MessageContext = {
7
+ decoder: BaseClientDecoder;
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
+ }
103
+ export declare class ProtocolError extends Error implements BaseProtocolError {
104
+ code: string;
105
+ data?: any;
106
+ constructor(code: string, message?: string, data?: any);
107
+ get message(): string;
108
+ toString(): string;
109
+ toJSON(): {
110
+ code: string;
111
+ message: string;
112
+ data: any;
113
+ };
114
+ }
@@ -22,3 +22,4 @@ export class ProtocolError extends Error {
22
22
  return { code: this.code, message: this.message, data: this.data };
23
23
  }
24
24
  }
25
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client/protocol.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAoD5C,MAAM,OAAgB,wBAAwB;IAgBlC,MAAM,CAAC,GAAG,MAAyC;QAC3D,OAAO,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,IAAI,CAAQ;IACZ,IAAI,CAAM;IAEV,YAAY,IAAY,EAAE,OAAgB,EAAE,IAAU;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IACpE,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ import type { Callback, DuplexStreamOptions } from '@nmtjs/common';
2
+ import { DuplexStream } from '@nmtjs/common';
3
+ import type { ProtocolBlobInterface, ProtocolBlobMetadata } from '../common/blob.ts';
4
+ import { kBlobKey } from '../common/constants.ts';
5
+ export declare class ProtocolClientBlobStream extends DuplexStream<any, ArrayBufferView> implements ProtocolBlobInterface {
6
+ #private;
7
+ readonly source: ReadableStream;
8
+ readonly id: number;
9
+ readonly metadata: ProtocolBlobMetadata;
10
+ readonly [kBlobKey] = true;
11
+ constructor(source: ReadableStream, id: number, metadata: ProtocolBlobMetadata);
12
+ abort(reason?: string): Promise<void>;
13
+ end(): Promise<void>;
14
+ read(size: number): Promise<Uint8Array<ArrayBufferLike> | null>;
15
+ }
16
+ export declare abstract class ProtocolServerStreamInterface<O = unknown> extends DuplexStream<O, ArrayBufferView> {
17
+ [Symbol.asyncIterator](): AsyncGenerator<Awaited<O>, void, unknown>;
18
+ }
19
+ export declare class ProtocolServerStream<T = unknown> extends ProtocolServerStreamInterface<T> implements ProtocolServerStreamInterface<T> {
20
+ }
21
+ export declare class ProtocolServerRPCStream<T = unknown> extends ProtocolServerStream<T> {
22
+ createAsyncIterable(onDone: Callback): {
23
+ [Symbol.asyncIterator]: () => {
24
+ next(): Promise<IteratorResult<Awaited<T>, void>>;
25
+ return(value: any): Promise<IteratorResult<Awaited<T>, void>>;
26
+ throw(error: any): Promise<IteratorResult<Awaited<T>, void>>;
27
+ };
28
+ };
29
+ }
30
+ export declare class ProtocolServerBlobStream extends ProtocolServerStreamInterface<ArrayBufferView> implements ProtocolBlobInterface, Blob {
31
+ readonly metadata: ProtocolBlobMetadata;
32
+ readonly [kBlobKey] = true;
33
+ constructor(metadata: ProtocolBlobMetadata, options?: DuplexStreamOptions<ArrayBufferView, ArrayBufferView>);
34
+ get size(): number;
35
+ get type(): string;
36
+ text(): Promise<string>;
37
+ bytes(): Promise<Uint8Array<ArrayBuffer>>;
38
+ arrayBuffer(): Promise<ArrayBuffer>;
39
+ json<T = unknown>(): Promise<T>;
40
+ stream(): ReadableStream<Uint8Array<ArrayBuffer>>;
41
+ /**
42
+ * Throws an error
43
+ */
44
+ formData(): Promise<FormData>;
45
+ /**
46
+ * Throws an error
47
+ */
48
+ slice(): Blob;
49
+ }
@@ -187,3 +187,4 @@ export class ProtocolServerBlobStream extends ProtocolServerStreamInterface {
187
187
  throw new Error('Unable to slice');
188
188
  }
189
189
  }
190
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/client/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import type { BaseProtocolError } from '../../common/types.ts';
2
+ import type { ClientMessageTypePayload, MessageContext } from '../protocol.ts';
3
+ import { ClientMessageType, ProtocolVersion, ServerMessageType } from '../../common/enums.ts';
4
+ import { ProtocolVersionInterface } from '../protocol.ts';
5
+ export declare class ProtocolVersion1 extends ProtocolVersionInterface {
6
+ version: ProtocolVersion;
7
+ decodeMessage(context: MessageContext, buffer: Uint8Array): {
8
+ type: ServerMessageType.RpcResponse;
9
+ callId: number;
10
+ error: BaseProtocolError;
11
+ result?: undefined;
12
+ chunk?: undefined;
13
+ reason?: undefined;
14
+ streamId?: undefined;
15
+ size?: undefined;
16
+ } | {
17
+ type: ServerMessageType.RpcResponse;
18
+ callId: number;
19
+ result: unknown;
20
+ error?: undefined;
21
+ chunk?: undefined;
22
+ reason?: undefined;
23
+ streamId?: undefined;
24
+ size?: undefined;
25
+ } | {
26
+ type: ServerMessageType.RpcStreamResponse;
27
+ callId: number;
28
+ error: BaseProtocolError | undefined;
29
+ result?: undefined;
30
+ chunk?: undefined;
31
+ reason?: undefined;
32
+ streamId?: undefined;
33
+ size?: undefined;
34
+ } | {
35
+ type: ServerMessageType.RpcStreamChunk;
36
+ callId: number;
37
+ chunk: Uint8Array<ArrayBufferLike>;
38
+ error?: undefined;
39
+ result?: undefined;
40
+ reason?: undefined;
41
+ streamId?: undefined;
42
+ size?: undefined;
43
+ } | {
44
+ type: ServerMessageType.RpcStreamEnd;
45
+ callId: number;
46
+ error?: undefined;
47
+ result?: undefined;
48
+ chunk?: undefined;
49
+ reason?: undefined;
50
+ streamId?: undefined;
51
+ size?: undefined;
52
+ } | {
53
+ type: ServerMessageType.RpcStreamAbort;
54
+ callId: number;
55
+ reason: string | undefined;
56
+ error?: undefined;
57
+ result?: undefined;
58
+ chunk?: undefined;
59
+ streamId?: undefined;
60
+ size?: undefined;
61
+ } | {
62
+ type: ServerMessageType.ClientStreamPull;
63
+ streamId: number;
64
+ size: number;
65
+ callId?: undefined;
66
+ error?: undefined;
67
+ result?: undefined;
68
+ chunk?: undefined;
69
+ reason?: undefined;
70
+ } | {
71
+ type: ServerMessageType.ClientStreamAbort;
72
+ streamId: number;
73
+ reason: string | undefined;
74
+ callId?: undefined;
75
+ error?: undefined;
76
+ result?: undefined;
77
+ chunk?: undefined;
78
+ size?: undefined;
79
+ } | {
80
+ type: ServerMessageType.ServerStreamPush;
81
+ streamId: number;
82
+ chunk: Uint8Array<ArrayBufferLike>;
83
+ callId?: undefined;
84
+ error?: undefined;
85
+ result?: undefined;
86
+ reason?: undefined;
87
+ size?: undefined;
88
+ } | {
89
+ type: ServerMessageType.ServerStreamEnd;
90
+ streamId: number;
91
+ reason: string | undefined;
92
+ callId?: undefined;
93
+ error?: undefined;
94
+ result?: undefined;
95
+ chunk?: undefined;
96
+ size?: undefined;
97
+ } | {
98
+ type: ServerMessageType.ServerStreamAbort;
99
+ streamId: number;
100
+ reason: string | undefined;
101
+ callId?: undefined;
102
+ error?: undefined;
103
+ result?: undefined;
104
+ chunk?: undefined;
105
+ size?: undefined;
106
+ };
107
+ encodeMessage<T extends ClientMessageType>(context: MessageContext, messageType: T, payload: ClientMessageTypePayload[T]): Uint8Array<ArrayBuffer>;
108
+ }
@@ -125,3 +125,4 @@ export class ProtocolVersion1 extends ProtocolVersionInterface {
125
125
  }
126
126
  }
127
127
  }
128
+ //# sourceMappingURL=v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.js","sourceRoot":"","sources":["../../../src/client/versions/v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ declare const utf8decoder: TextDecoder;
2
+ export type BinaryTypes = {
3
+ Int8: number;
4
+ Int16: number;
5
+ Int32: number;
6
+ Uint8: number;
7
+ Uint16: number;
8
+ Uint32: number;
9
+ Float32: number;
10
+ Float64: number;
11
+ BigInt64: bigint;
12
+ BigUint64: bigint;
13
+ };
14
+ export declare const encodeNumber: <T extends keyof BinaryTypes>(value: BinaryTypes[T], type: T, littleEndian?: boolean) => ArrayBuffer;
15
+ export declare const decodeNumber: <T extends keyof BinaryTypes>(buffer: ArrayBuffer | ArrayBufferView, type: T, offset?: number, littleEndian?: boolean) => BinaryTypes[T];
16
+ export declare const encodeText: (text: string) => Uint8Array<ArrayBuffer>;
17
+ export declare const decodeText: (buffer: Parameters<typeof utf8decoder.decode>[0]) => string;
18
+ export declare const concat: (...buffers: (ArrayBuffer | ArrayBufferView)[]) => Uint8Array<ArrayBuffer>;
19
+ export declare const UTF8Transform: () => TransformStream<string, Uint8Array<ArrayBufferLike>>;
20
+ export {};
@@ -37,3 +37,4 @@ export const UTF8Transform = () => new TransformStream({
37
37
  controller.enqueue(encodeText(chunk));
38
38
  },
39
39
  });
40
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/common/binary.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,2BAA2B;AAE3B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AACrC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAerC,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAqB,EACrB,IAAO,EACP,YAAY,GAAG,IAAI,EACnB,EAAE;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,iBAAiB,CAAA;IAChE,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC3B,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,EAAE,YAAY,CAAC,CAAA;IACjD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAAqC,EACrC,IAAO,EACP,MAAM,GAAG,CAAC,EACV,YAAY,GAAG,IAAI,EACH,EAAE;IAClB,MAAM,EAAE,GAAG,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IACjE,MAAM,UAAU,GAAG,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;IACxE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC7B,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,EAAE,YAAY,CAAmB,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAgD,EAAE,EAAE,CAC7E,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAE5B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,OAA0C,EAAE,EAAE;IACtE,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,WAAW,IAAI,MAAM,CAAC,UAAU,CAAA;IAC9D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;IACxC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GACT,MAAM,YAAY,WAAW;YAC3B,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;YACxB,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACzE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACvB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,IAAI,eAAe,CAAqB;IACtC,SAAS,CAAC,KAAK,EAAE,UAAU;QACzB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { kBlobKey } from './constants.ts';
2
+ export type ProtocolBlobMetadata = {
3
+ type: string;
4
+ size?: number | undefined;
5
+ filename?: string | undefined;
6
+ };
7
+ export interface ProtocolBlobInterface {
8
+ readonly metadata: ProtocolBlobMetadata;
9
+ readonly [kBlobKey]: any;
10
+ }
11
+ export declare class ProtocolBlob implements ProtocolBlobInterface {
12
+ [kBlobKey]: true;
13
+ readonly source: any;
14
+ readonly metadata: ProtocolBlobMetadata;
15
+ readonly encode?: () => unknown;
16
+ readonly toJSON?: () => unknown;
17
+ constructor({ source, encode, size, type, filename, }: {
18
+ source: any;
19
+ encode?: () => unknown;
20
+ size?: number;
21
+ type?: string;
22
+ filename?: string;
23
+ });
24
+ static from(_source: any, _metadata?: {
25
+ size?: number;
26
+ type?: string;
27
+ filename?: string;
28
+ }, _encode?: () => unknown): ProtocolBlob;
29
+ }
@@ -64,3 +64,4 @@ export class ProtocolBlob {
64
64
  });
65
65
  }
66
66
  }
67
+ //# sourceMappingURL=blob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/common/blob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const kBlobKey: unique symbol;
2
+ export type kBlobKey = typeof kBlobKey;
@@ -1 +1,2 @@
1
1
  export const kBlobKey = Symbol.for('neemata:blobKey');
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,51 @@
1
+ export declare enum ProtocolVersion {
2
+ v1 = 1
3
+ }
4
+ export declare enum ClientMessageType {
5
+ Rpc = 10,
6
+ RpcAbort = 11,
7
+ RpcPull = 12,
8
+ ClientStreamPush = 20,
9
+ ClientStreamEnd = 21,
10
+ ClientStreamAbort = 22,
11
+ ServerStreamAbort = 33,
12
+ ServerStreamPull = 34
13
+ }
14
+ export declare enum ServerMessageType {
15
+ RpcResponse = 10,
16
+ RpcStreamResponse = 11,
17
+ RpcStreamChunk = 12,
18
+ RpcStreamEnd = 13,
19
+ RpcStreamAbort = 14,
20
+ ServerStreamPush = 20,
21
+ ServerStreamEnd = 21,
22
+ ServerStreamAbort = 22,
23
+ ClientStreamAbort = 33,
24
+ ClientStreamPull = 34
25
+ }
26
+ export declare enum ConnectionType {
27
+ Bidirectional = "Bidirectional",
28
+ Unidirectional = "Unidirectional"
29
+ }
30
+ export declare enum ErrorCode {
31
+ ValidationError = "ValidationError",
32
+ BadRequest = "BadRequest",
33
+ NotFound = "NotFound",
34
+ Forbidden = "Forbidden",
35
+ Unauthorized = "Unauthorized",
36
+ InternalServerError = "InternalServerError",
37
+ NotAcceptable = "NotAcceptable",
38
+ RequestTimeout = "RequestTimeout",
39
+ GatewayTimeout = "GatewayTimeout",
40
+ ServiceUnavailable = "ServiceUnavailable",
41
+ ClientRequestError = "ClientRequestError",
42
+ ConnectionError = "ConnectionError"
43
+ }
44
+ export declare enum MessageByteLength {
45
+ MessageType = 1,
46
+ MessageError = 1,
47
+ ProcedureLength = 2,
48
+ CallId = 4,
49
+ StreamId = 4,
50
+ ChunkSize = 4
51
+ }
@@ -56,3 +56,4 @@ export var MessageByteLength;
56
56
  MessageByteLength[MessageByteLength["StreamId"] = 4] = "StreamId";
57
57
  MessageByteLength[MessageByteLength["ChunkSize"] = 4] = "ChunkSize";
58
58
  })(MessageByteLength || (MessageByteLength = {}));
59
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/common/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,iDAAM,CAAA;AACR,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,MAAM,CAAN,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IAC3B,wDAAQ,CAAA;IACR,kEAAa,CAAA;IACb,gEAAY,CAAA;IAEZ,kFAAqB,CAAA;IACrB,gFAAoB,CAAA;IACpB,oFAAsB,CAAA;IAEtB,oFAAsB,CAAA;IACtB,kFAAqB,CAAA;AACvB,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,QAW5B;AAED,MAAM,CAAN,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAC3B,aAAa;IAEb,wEAAgB,CAAA;IAChB,oFAAsB,CAAA;IACtB,8EAAmB,CAAA;IACnB,0EAAiB,CAAA;IACjB,8EAAmB,CAAA;IAEnB,kFAAqB,CAAA;IACrB,gFAAoB,CAAA;IACpB,oFAAsB,CAAA;IAEtB,oFAAsB,CAAA;IACtB,kFAAqB,CAAA;AACvB,CAAC,EAfW,iBAAiB,KAAjB,iBAAiB,QAe5B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;AACnC,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,gDAAmC,CAAA;IACnC,sCAAyB,CAAA;IACzB,kCAAqB,CAAA;IACrB,oCAAuB,CAAA;IACvB,0CAA6B,CAAA;IAC7B,wDAA2C,CAAA;IAC3C,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,sDAAyC,CAAA;IACzC,sDAAyC,CAAA;IACzC,gDAAmC,CAAA;AACrC,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,uEAAe,CAAA;IACf,yEAAgB,CAAA;IAChB,+EAAmB,CAAA;IACnB,6DAAU,CAAA;IACV,iEAAY,CAAA;IACZ,mEAAa,CAAA;AACf,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B"}
@@ -0,0 +1,6 @@
1
+ export * from './binary.ts';
2
+ export * from './blob.ts';
3
+ export * from './constants.ts';
4
+ export * from './enums.ts';
5
+ export * from './types.ts';
6
+ export * from './utils.ts';
@@ -4,3 +4,4 @@ export * from "./constants.js";
4
4
  export * from "./enums.js";
5
5
  export * from "./types.js";
6
6
  export * from "./utils.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { ProtocolBlobMetadata } from './blob.ts';
2
+ type Stream = any;
3
+ export interface BaseProtocolError {
4
+ code: string;
5
+ message: string;
6
+ data?: any;
7
+ }
8
+ export type ProtocolRPCPayload = unknown;
9
+ export type ProtocolRPCResponse = unknown;
10
+ export type EncodeRPCStreams = Record<number, ProtocolBlobMetadata>;
11
+ export interface DecodeRPCContext<T = Stream> {
12
+ addStream: (id: number, metadata: ProtocolBlobMetadata) => T;
13
+ }
14
+ export {};
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { ProtocolBlobInterface } from './blob.ts';
2
+ export declare const isBlobInterface: <T extends ProtocolBlobInterface>(value: any) => value is T;
@@ -4,3 +4,4 @@ export const isBlobInterface = (value) => {
4
4
  (typeof value === 'object' || typeof value === 'function') &&
5
5
  kBlobKey in value);
6
6
  };
7
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAU,EACE,EAAE;IACd,OAAO,CACL,KAAK;QACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;QAC1D,QAAQ,IAAI,KAAK,CAClB,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { Pattern } from '@nmtjs/common';
2
+ import type { DecodeRPCContext, EncodeRPCStreams, ProtocolRPCPayload } from '../common/types.ts';
3
+ import type { ProtocolClientStream } from './stream.ts';
4
+ export interface BaseServerDecoder {
5
+ accept: Pattern[];
6
+ decode(buffer: ArrayBufferView): unknown;
7
+ decodeRPC(buffer: ArrayBufferView, context: DecodeRPCContext<() => ProtocolClientStream>): ProtocolRPCPayload;
8
+ }
9
+ export interface BaseServerEncoder {
10
+ contentType: string;
11
+ encode(data: unknown): ArrayBufferView;
12
+ encodeRPC(data: unknown, streams: EncodeRPCStreams): ArrayBufferView;
13
+ encodeBlob(streamId: number): unknown;
14
+ }
15
+ export declare abstract class BaseServerFormat implements BaseServerDecoder, BaseServerEncoder {
16
+ abstract accept: Pattern[];
17
+ abstract contentType: string;
18
+ abstract encode(data: unknown): ArrayBufferView;
19
+ abstract encodeRPC(data: unknown, streams: EncodeRPCStreams): ArrayBufferView;
20
+ abstract encodeBlob(streamId: number): unknown;
21
+ abstract decode(buffer: ArrayBufferView): any;
22
+ abstract decodeRPC(buffer: ArrayBufferView, context: DecodeRPCContext<() => ProtocolClientStream>): ProtocolRPCPayload;
23
+ }
24
+ export declare const parseContentTypes: (types: string) => string[];
25
+ export declare class ProtocolFormats {
26
+ decoders: Map<Pattern, BaseServerDecoder>;
27
+ encoders: Map<Pattern, BaseServerEncoder>;
28
+ constructor(formats: BaseServerFormat[]);
29
+ supportsDecoder(contentType: string, throwIfUnsupported?: boolean): BaseServerDecoder | null;
30
+ supportsEncoder(contentType: string, throwIfUnsupported?: boolean): BaseServerEncoder | null;
31
+ private supports;
32
+ }
@@ -60,3 +60,4 @@ export class ProtocolFormats {
60
60
  return null;
61
61
  }
62
62
  }
63
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/server/format.ts"],"names":[],"mappings":"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"}