@nmtjs/protocol 0.15.0-beta.37 → 0.15.0-beta.39

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 (93) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/client/format.d.ts +18 -13
  4. package/dist/client/format.js +1 -0
  5. package/dist/client/format.js.map +1 -0
  6. package/dist/client/index.d.ts +4 -1
  7. package/dist/client/index.js +7 -4
  8. package/dist/client/index.js.map +1 -0
  9. package/dist/client/protocol.d.ts +102 -138
  10. package/dist/client/protocol.js +7 -336
  11. package/dist/client/protocol.js.map +1 -0
  12. package/dist/client/stream.d.ts +34 -19
  13. package/dist/client/stream.js +138 -46
  14. package/dist/client/stream.js.map +1 -0
  15. package/dist/client/versions/v1.d.ts +108 -0
  16. package/dist/client/versions/v1.js +128 -0
  17. package/dist/client/versions/v1.js.map +1 -0
  18. package/dist/common/binary.d.ts +5 -6
  19. package/dist/common/binary.js +22 -9
  20. package/dist/common/binary.js.map +1 -0
  21. package/dist/common/blob.d.ts +14 -8
  22. package/dist/common/blob.js +55 -30
  23. package/dist/common/blob.js.map +1 -0
  24. package/dist/common/constants.d.ts +2 -0
  25. package/dist/common/constants.js +2 -0
  26. package/dist/common/constants.js.map +1 -0
  27. package/dist/common/enums.d.ts +17 -7
  28. package/dist/common/enums.js +34 -14
  29. package/dist/common/enums.js.map +1 -0
  30. package/dist/common/index.d.ts +2 -0
  31. package/dist/common/index.js +7 -4
  32. package/dist/common/index.js.map +1 -0
  33. package/dist/common/types.d.ts +5 -24
  34. package/dist/common/types.js +1 -0
  35. package/dist/common/types.js.map +1 -0
  36. package/dist/common/utils.d.ts +2 -0
  37. package/dist/common/utils.js +7 -0
  38. package/dist/common/utils.js.map +1 -0
  39. package/dist/server/format.d.ts +17 -23
  40. package/dist/server/format.js +13 -8
  41. package/dist/server/format.js.map +1 -0
  42. package/dist/server/index.d.ts +4 -6
  43. package/dist/server/index.js +9 -11
  44. package/dist/server/index.js.map +1 -0
  45. package/dist/server/protocol.d.ts +88 -114
  46. package/dist/server/protocol.js +5 -354
  47. package/dist/server/protocol.js.map +1 -0
  48. package/dist/server/stream.d.ts +5 -0
  49. package/dist/server/stream.js +31 -2
  50. package/dist/server/stream.js.map +1 -0
  51. package/dist/server/types.d.ts +29 -8
  52. package/dist/server/types.js +1 -0
  53. package/dist/server/types.js.map +1 -0
  54. package/dist/server/utils.d.ts +3 -6
  55. package/dist/server/utils.js +5 -4
  56. package/dist/server/utils.js.map +1 -0
  57. package/dist/server/versions/v1.d.ts +77 -0
  58. package/dist/server/versions/v1.js +119 -0
  59. package/dist/server/versions/v1.js.map +1 -0
  60. package/package.json +18 -24
  61. package/src/client/format.ts +49 -0
  62. package/src/client/index.ts +8 -0
  63. package/src/client/protocol.ts +107 -0
  64. package/src/client/stream.ts +222 -0
  65. package/src/client/versions/v1.ts +205 -0
  66. package/src/common/binary.ts +70 -0
  67. package/src/common/blob.ts +94 -0
  68. package/src/common/constants.ts +2 -0
  69. package/src/common/enums.ts +62 -0
  70. package/src/common/index.ts +6 -0
  71. package/src/common/types.ts +18 -0
  72. package/src/common/utils.ts +12 -0
  73. package/src/server/format.ts +117 -0
  74. package/src/server/index.ts +10 -0
  75. package/src/server/protocol.ts +97 -0
  76. package/src/server/stream.ts +72 -0
  77. package/src/server/types.ts +42 -0
  78. package/src/server/utils.ts +22 -0
  79. package/src/server/versions/v1.ts +198 -0
  80. package/dist/client/events.d.ts +0 -15
  81. package/dist/client/events.js +0 -28
  82. package/dist/server/api.d.ts +0 -33
  83. package/dist/server/api.js +0 -7
  84. package/dist/server/connection.d.ts +0 -25
  85. package/dist/server/connection.js +0 -22
  86. package/dist/server/constants.d.ts +0 -4
  87. package/dist/server/constants.js +0 -2
  88. package/dist/server/injectables.d.ts +0 -14
  89. package/dist/server/injectables.js +0 -22
  90. package/dist/server/registry.d.ts +0 -3
  91. package/dist/server/registry.js +0 -3
  92. package/dist/server/transport.d.ts +0 -23
  93. package/dist/server/transport.js +0 -3
@@ -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
+ size?: undefined;
13
+ chunk?: undefined;
14
+ streamId?: undefined;
15
+ reason?: undefined;
16
+ } | {
17
+ type: ServerMessageType.RpcResponse;
18
+ callId: number;
19
+ result: unknown;
20
+ error?: undefined;
21
+ size?: undefined;
22
+ chunk?: undefined;
23
+ streamId?: undefined;
24
+ reason?: undefined;
25
+ } | {
26
+ result?: undefined;
27
+ type: ServerMessageType.RpcStreamResponse;
28
+ callId: number;
29
+ error: BaseProtocolError | undefined;
30
+ size?: undefined;
31
+ chunk?: undefined;
32
+ streamId?: undefined;
33
+ reason?: undefined;
34
+ } | {
35
+ result?: undefined;
36
+ error?: undefined;
37
+ type: ServerMessageType.RpcStreamChunk;
38
+ callId: number;
39
+ chunk: Uint8Array<ArrayBufferLike>;
40
+ size?: undefined;
41
+ streamId?: undefined;
42
+ reason?: undefined;
43
+ } | {
44
+ result?: undefined;
45
+ error?: undefined;
46
+ type: ServerMessageType.RpcStreamEnd;
47
+ callId: number;
48
+ size?: undefined;
49
+ chunk?: undefined;
50
+ streamId?: undefined;
51
+ reason?: undefined;
52
+ } | {
53
+ result?: undefined;
54
+ error?: undefined;
55
+ type: ServerMessageType.RpcStreamAbort;
56
+ callId: number;
57
+ reason: string | undefined;
58
+ size?: undefined;
59
+ chunk?: undefined;
60
+ streamId?: undefined;
61
+ } | {
62
+ result?: undefined;
63
+ error?: undefined;
64
+ callId?: undefined;
65
+ type: ServerMessageType.ClientStreamPull;
66
+ streamId: number;
67
+ size: number;
68
+ chunk?: undefined;
69
+ reason?: undefined;
70
+ } | {
71
+ result?: undefined;
72
+ error?: undefined;
73
+ callId?: undefined;
74
+ size?: undefined;
75
+ type: ServerMessageType.ClientStreamAbort;
76
+ streamId: number;
77
+ reason: string | undefined;
78
+ chunk?: undefined;
79
+ } | {
80
+ result?: undefined;
81
+ error?: undefined;
82
+ callId?: undefined;
83
+ size?: undefined;
84
+ type: ServerMessageType.ServerStreamPush;
85
+ streamId: number;
86
+ chunk: Uint8Array<ArrayBufferLike>;
87
+ reason?: undefined;
88
+ } | {
89
+ result?: undefined;
90
+ error?: undefined;
91
+ callId?: undefined;
92
+ size?: undefined;
93
+ chunk?: undefined;
94
+ type: ServerMessageType.ServerStreamEnd;
95
+ streamId: number;
96
+ reason: string | undefined;
97
+ } | {
98
+ result?: undefined;
99
+ error?: undefined;
100
+ callId?: undefined;
101
+ size?: undefined;
102
+ chunk?: undefined;
103
+ type: ServerMessageType.ServerStreamAbort;
104
+ streamId: number;
105
+ reason: string | undefined;
106
+ };
107
+ encodeMessage<T extends ClientMessageType>(context: MessageContext, messageType: T, payload: ClientMessageTypePayload[T]): Uint8Array<ArrayBuffer>;
108
+ }
@@ -0,0 +1,128 @@
1
+ import { decodeNumber, decodeText, encodeNumber, encodeText, } from '../../common/binary.js';
2
+ import { ClientMessageType, MessageByteLength, ProtocolVersion, ServerMessageType, } from '../../common/enums.js';
3
+ import { ProtocolVersionInterface } from '../protocol.js';
4
+ export class ProtocolVersion1 extends ProtocolVersionInterface {
5
+ version = ProtocolVersion.v1;
6
+ decodeMessage(context, buffer) {
7
+ const messageType = decodeNumber(buffer, 'Uint8');
8
+ const payload = buffer.subarray(MessageByteLength.MessageType);
9
+ switch (messageType) {
10
+ // case ServerMessageType.Event: {
11
+ // const { event, data } = context.decoder.decode(payload)
12
+ // return { type: messageType, event, data }
13
+ // }
14
+ case ServerMessageType.RpcResponse: {
15
+ const callId = decodeNumber(payload, 'Uint32');
16
+ const isError = decodeNumber(payload, 'Uint8', MessageByteLength.CallId);
17
+ const dataPayload = payload.subarray(MessageByteLength.CallId + MessageByteLength.MessageError);
18
+ if (isError) {
19
+ const error = context.decoder.decode(dataPayload);
20
+ return { type: messageType, callId, error };
21
+ }
22
+ else {
23
+ const result = context.decoder.decodeRPC(dataPayload, {
24
+ addStream: (streamId, metadata) => {
25
+ return context.addServerStream(streamId, metadata);
26
+ },
27
+ });
28
+ return { type: messageType, callId, result };
29
+ }
30
+ }
31
+ case ServerMessageType.RpcStreamResponse: {
32
+ const callId = decodeNumber(payload, 'Uint32');
33
+ const errorPayload = payload.subarray(MessageByteLength.CallId);
34
+ const error = errorPayload.byteLength > 0
35
+ ? context.decoder.decode(errorPayload)
36
+ : undefined;
37
+ return { type: messageType, callId, error };
38
+ }
39
+ case ServerMessageType.RpcStreamChunk: {
40
+ const callId = decodeNumber(payload, 'Uint32');
41
+ const chunk = payload.subarray(MessageByteLength.CallId);
42
+ return { type: messageType, callId, chunk };
43
+ }
44
+ case ServerMessageType.RpcStreamEnd: {
45
+ const callId = decodeNumber(payload, 'Uint32');
46
+ return { type: messageType, callId };
47
+ }
48
+ case ServerMessageType.RpcStreamAbort: {
49
+ const callId = decodeNumber(payload, 'Uint32');
50
+ const reasonPayload = payload.subarray(MessageByteLength.CallId);
51
+ const reason = reasonPayload.byteLength > 0 ? decodeText(reasonPayload) : undefined;
52
+ return { type: messageType, callId, reason };
53
+ }
54
+ case ServerMessageType.ClientStreamPull: {
55
+ const streamId = decodeNumber(payload, 'Uint32');
56
+ const size = decodeNumber(payload, 'Uint32', MessageByteLength.StreamId);
57
+ return { type: messageType, streamId, size };
58
+ }
59
+ case ServerMessageType.ClientStreamAbort: {
60
+ const streamId = decodeNumber(payload, 'Uint32');
61
+ const reasonPayload = payload.subarray(MessageByteLength.StreamId);
62
+ const reason = reasonPayload.byteLength > 0 ? decodeText(reasonPayload) : undefined;
63
+ return { type: messageType, streamId, reason };
64
+ }
65
+ case ServerMessageType.ServerStreamPush: {
66
+ const streamId = decodeNumber(payload, 'Uint32');
67
+ const chunk = payload.subarray(MessageByteLength.StreamId);
68
+ return { type: messageType, streamId, chunk };
69
+ }
70
+ case ServerMessageType.ServerStreamEnd: {
71
+ const streamId = decodeNumber(payload, 'Uint32');
72
+ const reasonPayload = payload.subarray(MessageByteLength.StreamId);
73
+ const reason = reasonPayload.byteLength > 0 ? decodeText(reasonPayload) : undefined;
74
+ return { type: messageType, streamId, reason };
75
+ }
76
+ case ServerMessageType.ServerStreamAbort: {
77
+ const streamId = decodeNumber(payload, 'Uint32');
78
+ const reasonPayload = payload.subarray(MessageByteLength.StreamId);
79
+ const reason = reasonPayload.byteLength > 0 ? decodeText(reasonPayload) : undefined;
80
+ return { type: messageType, streamId, reason };
81
+ }
82
+ default:
83
+ throw new Error(`Unsupported message type: ${messageType}`);
84
+ }
85
+ }
86
+ encodeMessage(context, messageType, payload) {
87
+ switch (messageType) {
88
+ case ClientMessageType.Rpc: {
89
+ const { callId, procedure, payload: rpcPayload, } = payload;
90
+ const procedureBuffer = encodeText(procedure);
91
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(callId, 'Uint32'), encodeNumber(procedureBuffer.byteLength, 'Uint16'), procedureBuffer, context.encoder.encodeRPC(rpcPayload, {
92
+ addStream: (blob) => context.addClientStream(blob),
93
+ }));
94
+ }
95
+ case ClientMessageType.RpcAbort: {
96
+ const { callId, reason } = payload;
97
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(callId, 'Uint32'), reason ? encodeText(reason) : new Uint8Array(0));
98
+ }
99
+ case ClientMessageType.RpcPull: {
100
+ const { callId } = payload;
101
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(callId, 'Uint32'));
102
+ }
103
+ case ClientMessageType.ClientStreamPush: {
104
+ const { streamId, chunk } = payload;
105
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(streamId, 'Uint32'), chunk);
106
+ }
107
+ case ClientMessageType.ClientStreamEnd: {
108
+ const { streamId } = payload;
109
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(streamId, 'Uint32'));
110
+ }
111
+ case ClientMessageType.ClientStreamAbort: {
112
+ const { streamId, reason } = payload;
113
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(streamId, 'Uint32'), reason ? encodeText(reason) : new Uint8Array(0));
114
+ }
115
+ case ClientMessageType.ServerStreamPull: {
116
+ const { streamId, size } = payload;
117
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(streamId, 'Uint32'), encodeNumber(size, 'Uint32'));
118
+ }
119
+ case ClientMessageType.ServerStreamAbort: {
120
+ const { streamId, reason } = payload;
121
+ return this.encode(encodeNumber(messageType, 'Uint8'), encodeNumber(streamId, 'Uint32'), reason ? encodeText(reason) : new Uint8Array(0));
122
+ }
123
+ default:
124
+ throw new Error(`Unsupported message type: ${messageType}`);
125
+ }
126
+ }
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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"}
@@ -1,4 +1,3 @@
1
- declare const utf8decoder: TextDecoder;
2
1
  export type BinaryTypes = {
3
2
  Int8: number;
4
3
  Int16: number;
@@ -12,8 +11,8 @@ export type BinaryTypes = {
12
11
  BigUint64: bigint;
13
12
  };
14
13
  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, type: T, offset?: number, littleEndian?: boolean) => BinaryTypes[T];
16
- export declare const encodeText: (text: string) => ArrayBuffer;
17
- export declare const decodeText: (buffer: Parameters<typeof utf8decoder.decode>[0]) => string;
18
- export declare const concat: (...buffers: ArrayBuffer[]) => ArrayBuffer;
19
- export {};
14
+ export declare const decodeNumber: <T extends keyof BinaryTypes>(buffer: ArrayBuffer | ArrayBufferView<ArrayBufferLike>, type: T, offset?: number, littleEndian?: boolean) => BinaryTypes[T];
15
+ export declare const encodeText: (text: string) => Uint8Array<ArrayBuffer>;
16
+ export declare const decodeText: (buffer: AllowSharedBufferSource | undefined) => string;
17
+ export declare const concat: (...buffers: (ArrayBuffer | ArrayBufferView<ArrayBufferLike>)[]) => Uint8Array<ArrayBuffer>;
18
+ export declare const UTF8Transform: () => TransformStream<string, Uint8Array<ArrayBufferLike>>;
@@ -2,26 +2,39 @@
2
2
  /// <reference lib="dom" />
3
3
  const utf8decoder = new TextDecoder();
4
4
  const utf8encoder = new TextEncoder();
5
- export const encodeNumber = (value, type, littleEndian = false) => {
5
+ export const encodeNumber = (value, type, littleEndian = true) => {
6
6
  const bytesNeeded = globalThis[`${type}Array`].BYTES_PER_ELEMENT;
7
7
  const ab = new ArrayBuffer(bytesNeeded);
8
8
  const dv = new DataView(ab);
9
9
  dv[`set${type}`](0, value, littleEndian);
10
10
  return ab;
11
11
  };
12
- export const decodeNumber = (buffer, type, offset = 0, littleEndian = false) => {
13
- const view = new DataView(buffer);
14
- return view[`get${type}`](offset, littleEndian);
12
+ export const decodeNumber = (buffer, type, offset = 0, littleEndian = true) => {
13
+ const ab = buffer instanceof ArrayBuffer ? buffer : buffer.buffer;
14
+ const baseOffset = buffer instanceof ArrayBuffer ? 0 : buffer.byteOffset;
15
+ const view = new DataView(ab);
16
+ return view[`get${type}`](baseOffset + offset, littleEndian);
15
17
  };
16
- export const encodeText = (text) => new Uint8Array(utf8encoder.encode(text)).buffer;
18
+ export const encodeText = (text) => utf8encoder.encode(text);
17
19
  export const decodeText = (buffer) => utf8decoder.decode(buffer);
18
20
  export const concat = (...buffers) => {
19
- const totalLength = buffers.reduce((acc, buffer) => acc + buffer.byteLength, 0);
21
+ let totalLength = 0;
22
+ for (const buffer of buffers)
23
+ totalLength += buffer.byteLength;
20
24
  const view = new Uint8Array(totalLength);
21
25
  let offset = 0;
22
26
  for (const buffer of buffers) {
23
- view.set(new Uint8Array(buffer), offset);
24
- offset += buffer.byteLength;
27
+ const chunk = buffer instanceof ArrayBuffer
28
+ ? new Uint8Array(buffer)
29
+ : new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
30
+ view.set(chunk, offset);
31
+ offset += chunk.byteLength;
25
32
  }
26
- return view.buffer;
33
+ return view;
27
34
  };
35
+ export const UTF8Transform = () => new TransformStream({
36
+ transform(chunk, controller) {
37
+ controller.enqueue(encodeText(chunk));
38
+ },
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,CAAC;IACH,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;AAAA,CACV,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAAqC,EACrC,IAAO,EACP,MAAM,GAAG,CAAC,EACV,YAAY,GAAG,IAAI,EACH,EAAE,CAAC;IACnB,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;AAAA,CAC/E,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,CAAC;IACvE,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;AAAA,CACZ,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,IAAI,eAAe,CAAqB;IACtC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE;QAC3B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAAA,CACtC;CACF,CAAC,CAAA"}
@@ -1,5 +1,4 @@
1
- export declare const BlobKey: unique symbol;
2
- export type BlobKey = typeof BlobKey;
1
+ import { kBlobKey } from './constants.ts';
3
2
  export type ProtocolBlobMetadata = {
4
3
  type: string;
5
4
  size?: number | undefined;
@@ -7,16 +6,23 @@ export type ProtocolBlobMetadata = {
7
6
  };
8
7
  export interface ProtocolBlobInterface {
9
8
  readonly metadata: ProtocolBlobMetadata;
10
- readonly [BlobKey]: true;
9
+ readonly [kBlobKey]: any;
11
10
  }
12
11
  export declare class ProtocolBlob implements ProtocolBlobInterface {
13
- readonly [BlobKey] = true;
14
- readonly metadata: ProtocolBlobMetadata;
15
12
  readonly source: any;
16
- constructor(source: any, size?: number, type?: string, filename?: string);
17
- static from(source: any, metadata?: {
13
+ readonly metadata: ProtocolBlobMetadata;
14
+ readonly encode?: (metadata: ProtocolBlobMetadata) => unknown;
15
+ readonly toJSON?: () => unknown;
16
+ constructor({ source, encode, size, type, filename }: {
17
+ source: any;
18
+ encode?: () => unknown;
19
+ size?: number;
20
+ type?: string;
21
+ filename?: string;
22
+ });
23
+ static from(_source: any, _metadata?: {
18
24
  size?: number;
19
25
  type?: string;
20
26
  filename?: string;
21
- }): ProtocolBlob;
27
+ }, _encode?: (metadata: ProtocolBlobMetadata) => unknown): ProtocolBlob;
22
28
  }
@@ -1,42 +1,67 @@
1
- export const BlobKey = Symbol.for('neemata:BlobKey');
1
+ import { kBlobKey } from './constants.js';
2
2
  export class ProtocolBlob {
3
- [BlobKey] = true;
4
- metadata;
3
+ [kBlobKey] = true;
5
4
  source;
6
- constructor(source, size, type = 'application/octet-stream', filename) {
5
+ metadata;
6
+ encode;
7
+ toJSON;
8
+ constructor({ source, encode, size, type = 'application/octet-stream', filename, }) {
7
9
  if (typeof size !== 'undefined' && size <= 0)
8
10
  throw new Error('Blob size is invalid');
11
+ this.encode = encode;
9
12
  this.source = source;
10
13
  this.metadata = { size, type, filename };
14
+ if (encode) {
15
+ Object.defineProperty(this, 'toJSON', {
16
+ configurable: false,
17
+ enumerable: false,
18
+ writable: false,
19
+ value: encode,
20
+ });
21
+ }
11
22
  }
12
- static from(source, metadata = {}) {
13
- let _source;
14
- if (source instanceof globalThis.ReadableStream) {
15
- _source = source;
16
- }
17
- else if ('File' in globalThis && source instanceof globalThis.File) {
18
- _source = source.stream();
19
- metadata.size = source.size;
20
- metadata.filename = source.name;
21
- }
22
- else if (source instanceof globalThis.Blob) {
23
- _source = source.stream();
24
- metadata.size = source.size;
25
- }
26
- else if (typeof source === 'string') {
27
- const blob = new Blob([source]);
28
- _source = blob.stream();
29
- metadata.size = blob.size;
30
- metadata.type = metadata.type || 'text/plain';
31
- }
32
- else if (source instanceof globalThis.ArrayBuffer) {
33
- const blob = new Blob([source]);
34
- _source = blob.stream();
35
- metadata.size = blob.size;
23
+ static from(_source, _metadata = {}, _encode) {
24
+ let source;
25
+ const metadata = { type: 'application/octet-stream', ..._metadata };
26
+ if (_source instanceof globalThis.ReadableStream) {
27
+ source = _source;
28
+ }
29
+ else if ('File' in globalThis && _source instanceof globalThis.File) {
30
+ source = _source.stream();
31
+ metadata.size ??= _source.size;
32
+ metadata.filename ??= _source.name;
33
+ }
34
+ else if (_source instanceof globalThis.Blob) {
35
+ source = _source.stream();
36
+ metadata.size ??= _source.size;
37
+ metadata.type ??= _source.type;
38
+ }
39
+ else if (typeof _source === 'string') {
40
+ const blob = new Blob([_source]);
41
+ source = blob.stream();
42
+ metadata.size ??= blob.size;
43
+ metadata.type ??= 'text/plain';
44
+ }
45
+ else if (globalThis.ArrayBuffer.isView(_source)) {
46
+ const blob = new Blob([_source]);
47
+ source = blob.stream();
48
+ metadata.size ??= blob.size;
49
+ }
50
+ else if (_source instanceof globalThis.ArrayBuffer) {
51
+ const blob = new Blob([_source]);
52
+ source = blob.stream();
53
+ metadata.size ??= blob.size;
36
54
  }
37
55
  else {
38
- _source = source;
56
+ source = _source;
39
57
  }
40
- return new ProtocolBlob(_source, metadata.size, metadata.type, metadata.filename);
58
+ return new ProtocolBlob({
59
+ source,
60
+ encode: _encode?.bind(null, metadata),
61
+ size: metadata.size,
62
+ type: metadata.type,
63
+ filename: metadata.filename,
64
+ });
41
65
  }
42
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;
@@ -0,0 +1,2 @@
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"}
@@ -1,15 +1,17 @@
1
+ export declare enum ProtocolVersion {
2
+ v1 = 1
3
+ }
1
4
  export declare enum ClientMessageType {
2
5
  Rpc = 10,
3
6
  RpcAbort = 11,
4
- RpcStreamAbort = 12,
7
+ RpcPull = 12,
5
8
  ClientStreamPush = 20,
6
9
  ClientStreamEnd = 21,
7
10
  ClientStreamAbort = 22,
8
- ServerStreamAbort = 23,
9
- ServerStreamPull = 24
11
+ ServerStreamAbort = 33,
12
+ ServerStreamPull = 34
10
13
  }
11
14
  export declare enum ServerMessageType {
12
- Event = 1,
13
15
  RpcResponse = 10,
14
16
  RpcStreamResponse = 11,
15
17
  RpcStreamChunk = 12,
@@ -18,10 +20,10 @@ export declare enum ServerMessageType {
18
20
  ServerStreamPush = 20,
19
21
  ServerStreamEnd = 21,
20
22
  ServerStreamAbort = 22,
21
- ClientStreamAbort = 23,
22
- ClientStreamPull = 24
23
+ ClientStreamAbort = 33,
24
+ ClientStreamPull = 34
23
25
  }
24
- export declare enum TransportType {
26
+ export declare enum ConnectionType {
25
27
  Bidirectional = "Bidirectional",
26
28
  Unidirectional = "Unidirectional"
27
29
  }
@@ -39,3 +41,11 @@ export declare enum ErrorCode {
39
41
  ClientRequestError = "ClientRequestError",
40
42
  ConnectionError = "ConnectionError"
41
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
+ }
@@ -1,17 +1,24 @@
1
- export var ClientMessageType;
1
+ export { ProtocolVersion };
2
+ var ProtocolVersion;
3
+ (function (ProtocolVersion) {
4
+ ProtocolVersion[ProtocolVersion["v1"] = 1] = "v1";
5
+ })(ProtocolVersion || (ProtocolVersion = {}));
6
+ export { ClientMessageType };
7
+ var ClientMessageType;
2
8
  (function (ClientMessageType) {
3
9
  ClientMessageType[ClientMessageType["Rpc"] = 10] = "Rpc";
4
10
  ClientMessageType[ClientMessageType["RpcAbort"] = 11] = "RpcAbort";
5
- ClientMessageType[ClientMessageType["RpcStreamAbort"] = 12] = "RpcStreamAbort";
11
+ ClientMessageType[ClientMessageType["RpcPull"] = 12] = "RpcPull";
6
12
  ClientMessageType[ClientMessageType["ClientStreamPush"] = 20] = "ClientStreamPush";
7
13
  ClientMessageType[ClientMessageType["ClientStreamEnd"] = 21] = "ClientStreamEnd";
8
14
  ClientMessageType[ClientMessageType["ClientStreamAbort"] = 22] = "ClientStreamAbort";
9
- ClientMessageType[ClientMessageType["ServerStreamAbort"] = 23] = "ServerStreamAbort";
10
- ClientMessageType[ClientMessageType["ServerStreamPull"] = 24] = "ServerStreamPull";
15
+ ClientMessageType[ClientMessageType["ServerStreamAbort"] = 33] = "ServerStreamAbort";
16
+ ClientMessageType[ClientMessageType["ServerStreamPull"] = 34] = "ServerStreamPull";
11
17
  })(ClientMessageType || (ClientMessageType = {}));
12
- export var ServerMessageType;
18
+ export { ServerMessageType };
19
+ var ServerMessageType;
13
20
  (function (ServerMessageType) {
14
- ServerMessageType[ServerMessageType["Event"] = 1] = "Event";
21
+ // Event = 1,
15
22
  ServerMessageType[ServerMessageType["RpcResponse"] = 10] = "RpcResponse";
16
23
  ServerMessageType[ServerMessageType["RpcStreamResponse"] = 11] = "RpcStreamResponse";
17
24
  ServerMessageType[ServerMessageType["RpcStreamChunk"] = 12] = "RpcStreamChunk";
@@ -20,15 +27,17 @@ export var ServerMessageType;
20
27
  ServerMessageType[ServerMessageType["ServerStreamPush"] = 20] = "ServerStreamPush";
21
28
  ServerMessageType[ServerMessageType["ServerStreamEnd"] = 21] = "ServerStreamEnd";
22
29
  ServerMessageType[ServerMessageType["ServerStreamAbort"] = 22] = "ServerStreamAbort";
23
- ServerMessageType[ServerMessageType["ClientStreamAbort"] = 23] = "ClientStreamAbort";
24
- ServerMessageType[ServerMessageType["ClientStreamPull"] = 24] = "ClientStreamPull";
30
+ ServerMessageType[ServerMessageType["ClientStreamAbort"] = 33] = "ClientStreamAbort";
31
+ ServerMessageType[ServerMessageType["ClientStreamPull"] = 34] = "ClientStreamPull";
25
32
  })(ServerMessageType || (ServerMessageType = {}));
26
- export var TransportType;
27
- (function (TransportType) {
28
- TransportType["Bidirectional"] = "Bidirectional";
29
- TransportType["Unidirectional"] = "Unidirectional";
30
- })(TransportType || (TransportType = {}));
31
- export var ErrorCode;
33
+ export { ConnectionType };
34
+ var ConnectionType;
35
+ (function (ConnectionType) {
36
+ ConnectionType["Bidirectional"] = "Bidirectional";
37
+ ConnectionType["Unidirectional"] = "Unidirectional";
38
+ })(ConnectionType || (ConnectionType = {}));
39
+ export { ErrorCode };
40
+ var ErrorCode;
32
41
  (function (ErrorCode) {
33
42
  ErrorCode["ValidationError"] = "ValidationError";
34
43
  ErrorCode["BadRequest"] = "BadRequest";
@@ -43,3 +52,14 @@ export var ErrorCode;
43
52
  ErrorCode["ClientRequestError"] = "ClientRequestError";
44
53
  ErrorCode["ConnectionError"] = "ConnectionError";
45
54
  })(ErrorCode || (ErrorCode = {}));
55
+ export { MessageByteLength };
56
+ var MessageByteLength;
57
+ (function (MessageByteLength) {
58
+ MessageByteLength[MessageByteLength["MessageType"] = 1] = "MessageType";
59
+ MessageByteLength[MessageByteLength["MessageError"] = 1] = "MessageError";
60
+ MessageByteLength[MessageByteLength["ProcedureLength"] = 2] = "ProcedureLength";
61
+ MessageByteLength[MessageByteLength["CallId"] = 4] = "CallId";
62
+ MessageByteLength[MessageByteLength["StreamId"] = 4] = "StreamId";
63
+ MessageByteLength[MessageByteLength["ChunkSize"] = 4] = "ChunkSize";
64
+ })(MessageByteLength || (MessageByteLength = {}));
65
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/common/enums.ts"],"names":[],"mappings":"SAAY,eAAe;AAA3B,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,iDAAM,CAAA;AAAC,CACT,EAFY,eAAe,KAAf,eAAe,QAE1B;SAEW,iBAAiB;AAA7B,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;AAAC,CACxB,EAXY,iBAAiB,KAAjB,iBAAiB,QAW5B;SAEW,iBAAiB;AAA7B,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;AAAC,CACxB,EAfY,iBAAiB,KAAjB,iBAAiB,QAe5B;SAEW,cAAc;AAA1B,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;AAAC,CACpC,EAHY,cAAc,KAAd,cAAc,QAGzB;SAEW,SAAS;AAArB,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;AAAC,CACtC,EAbY,SAAS,KAAT,SAAS,QAapB;SAEW,iBAAiB;AAA7B,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,uEAAe,CAAA;IACf,yEAAgB,CAAA;IAChB,+EAAmB,CAAA;IACnB,6DAAU,CAAA;IACV,iEAAY,CAAA;IACZ,mEAAa,CAAA;AAAC,CAChB,EAPY,iBAAiB,KAAjB,iBAAiB,QAO5B"}
@@ -1,4 +1,6 @@
1
1
  export * from './binary.ts';
2
2
  export * from './blob.ts';
3
+ export * from './constants.ts';
3
4
  export * from './enums.ts';
4
5
  export * from './types.ts';
6
+ export * from './utils.ts';
@@ -1,4 +1,7 @@
1
- export * from "./binary.js";
2
- export * from "./blob.js";
3
- export * from "./enums.js";
4
- export * from "./types.js";
1
+ export * from './binary.js';
2
+ export * from './blob.js';
3
+ export * from './constants.js';
4
+ export * from './enums.js';
5
+ export * from './types.js';
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"}