@boatkit-io/restream 0.14.3 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/datastream/Envelope.js +120 -0
- package/dist/cjs/datastream/Envelope.js.map +1 -0
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/websocket/SocketHelper.js +311 -7
- package/dist/cjs/websocket/SocketHelper.js.map +1 -1
- package/dist/esm/datastream/Envelope.d.ts +25 -0
- package/dist/esm/datastream/Envelope.d.ts.map +1 -0
- package/dist/esm/datastream/Envelope.js +116 -0
- package/dist/esm/datastream/Envelope.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/websocket/SocketHelper.d.ts +81 -2
- package/dist/esm/websocket/SocketHelper.d.ts.map +1 -1
- package/dist/esm/websocket/SocketHelper.js +311 -7
- package/dist/esm/websocket/SocketHelper.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare enum DataStreamPayloadType {
|
|
2
|
+
Frame = 1,
|
|
3
|
+
BlockSet = 2
|
|
4
|
+
}
|
|
5
|
+
export declare enum DataStreamFlags {
|
|
6
|
+
Recovery = 1,
|
|
7
|
+
Discontinuity = 2,
|
|
8
|
+
Commit = 4
|
|
9
|
+
}
|
|
10
|
+
export interface DataStreamEnvelope {
|
|
11
|
+
streamID: string;
|
|
12
|
+
generation: bigint;
|
|
13
|
+
sequence: bigint;
|
|
14
|
+
timestampUnixNano: bigint;
|
|
15
|
+
payloadType: DataStreamPayloadType;
|
|
16
|
+
frameID: bigint;
|
|
17
|
+
flags: DataStreamFlags;
|
|
18
|
+
format: string;
|
|
19
|
+
firstIndex: number;
|
|
20
|
+
itemCount: number;
|
|
21
|
+
totalItemCount: number;
|
|
22
|
+
payload: Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
export declare function decodeDataStreamEnvelope(input: ArrayBufferLike, maxPayloadBytes?: number): DataStreamEnvelope;
|
|
25
|
+
//# sourceMappingURL=Envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Envelope.d.ts","sourceRoot":"","sources":["../../../src/datastream/Envelope.ts"],"names":[],"mappings":"AAMA,oBAAY,qBAAqB;IAC7B,KAAK,IAAI;IACT,QAAQ,IAAI;CACf;AAED,oBAAY,eAAe;IACvB,QAAQ,IAAS;IACjB,aAAa,IAAS;IACtB,MAAM,IAAS;CAClB;AAID,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,qBAAqB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,eAAe,EACtB,eAAe,SAAyB,GACzC,kBAAkB,CA0DpB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const wireHeaderBytes = 60;
|
|
2
|
+
const defaultMaxPayloadBytes = 32 * 1024 * 1024;
|
|
3
|
+
const maxStreamIDBytes = 4 * 1024;
|
|
4
|
+
const maxFormatBytes = 4 * 1024;
|
|
5
|
+
const textDecoder = new TextDecoder();
|
|
6
|
+
export var DataStreamPayloadType;
|
|
7
|
+
(function (DataStreamPayloadType) {
|
|
8
|
+
DataStreamPayloadType[DataStreamPayloadType["Frame"] = 1] = "Frame";
|
|
9
|
+
DataStreamPayloadType[DataStreamPayloadType["BlockSet"] = 2] = "BlockSet";
|
|
10
|
+
})(DataStreamPayloadType || (DataStreamPayloadType = {}));
|
|
11
|
+
export var DataStreamFlags;
|
|
12
|
+
(function (DataStreamFlags) {
|
|
13
|
+
DataStreamFlags[DataStreamFlags["Recovery"] = 1] = "Recovery";
|
|
14
|
+
DataStreamFlags[DataStreamFlags["Discontinuity"] = 2] = "Discontinuity";
|
|
15
|
+
DataStreamFlags[DataStreamFlags["Commit"] = 4] = "Commit";
|
|
16
|
+
})(DataStreamFlags || (DataStreamFlags = {}));
|
|
17
|
+
const allFlags = DataStreamFlags.Recovery | DataStreamFlags.Discontinuity | DataStreamFlags.Commit;
|
|
18
|
+
export function decodeDataStreamEnvelope(input, maxPayloadBytes = defaultMaxPayloadBytes) {
|
|
19
|
+
const bytes = new Uint8Array(input);
|
|
20
|
+
if (bytes.byteLength < wireHeaderBytes) {
|
|
21
|
+
throw new Error("Data stream envelope is truncated");
|
|
22
|
+
}
|
|
23
|
+
if (String.fromCharCode(...bytes.subarray(0, 4)) !== 'RSD1') {
|
|
24
|
+
throw new Error("Unsupported data stream wire format");
|
|
25
|
+
}
|
|
26
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
27
|
+
const payloadType = view.getUint8(4);
|
|
28
|
+
const flags = view.getUint8(5);
|
|
29
|
+
if (view.getUint16(6, true) !== 0) {
|
|
30
|
+
throw new Error("Data stream reserved header bits are non-zero");
|
|
31
|
+
}
|
|
32
|
+
if ((flags & ~allFlags) !== 0) {
|
|
33
|
+
throw new Error("Data stream envelope has unknown flags");
|
|
34
|
+
}
|
|
35
|
+
const streamIDLength = view.getUint16(52, true);
|
|
36
|
+
const formatLength = view.getUint16(54, true);
|
|
37
|
+
const payloadLength = view.getUint32(56, true);
|
|
38
|
+
if (streamIDLength > maxStreamIDBytes || formatLength > maxFormatBytes) {
|
|
39
|
+
throw new Error("Data stream string length exceeds limit");
|
|
40
|
+
}
|
|
41
|
+
if (payloadLength > maxPayloadBytes) {
|
|
42
|
+
throw new Error("Data stream payload length exceeds limit");
|
|
43
|
+
}
|
|
44
|
+
const expectedLength = wireHeaderBytes + streamIDLength + formatLength + payloadLength;
|
|
45
|
+
if (bytes.byteLength !== expectedLength) {
|
|
46
|
+
throw new Error(`Data stream envelope length mismatch: have ${bytes.byteLength}, expected ${expectedLength}`);
|
|
47
|
+
}
|
|
48
|
+
let offset = wireHeaderBytes;
|
|
49
|
+
const streamID = textDecoder.decode(bytes.subarray(offset, offset + streamIDLength));
|
|
50
|
+
offset += streamIDLength;
|
|
51
|
+
const format = textDecoder.decode(bytes.subarray(offset, offset + formatLength));
|
|
52
|
+
offset += formatLength;
|
|
53
|
+
const payload = bytes.slice(offset, offset + payloadLength);
|
|
54
|
+
if (!streamID || !format) {
|
|
55
|
+
throw new Error("Data stream identity and format are required");
|
|
56
|
+
}
|
|
57
|
+
const envelope = {
|
|
58
|
+
streamID,
|
|
59
|
+
generation: view.getBigUint64(8, true),
|
|
60
|
+
sequence: view.getBigUint64(16, true),
|
|
61
|
+
timestampUnixNano: view.getBigInt64(24, true),
|
|
62
|
+
payloadType,
|
|
63
|
+
frameID: view.getBigUint64(32, true),
|
|
64
|
+
flags,
|
|
65
|
+
format,
|
|
66
|
+
firstIndex: view.getUint32(40, true),
|
|
67
|
+
itemCount: view.getUint32(44, true),
|
|
68
|
+
totalItemCount: view.getUint32(48, true),
|
|
69
|
+
payload,
|
|
70
|
+
};
|
|
71
|
+
validateDataStreamEnvelope(envelope);
|
|
72
|
+
return envelope;
|
|
73
|
+
}
|
|
74
|
+
function validateDataStreamEnvelope(envelope) {
|
|
75
|
+
if (envelope.generation === 0n || envelope.sequence === 0n || envelope.frameID === 0n) {
|
|
76
|
+
throw new Error("Data stream generation, sequence, and frame ID must be non-zero");
|
|
77
|
+
}
|
|
78
|
+
switch (envelope.payloadType) {
|
|
79
|
+
case DataStreamPayloadType.Frame:
|
|
80
|
+
if ((envelope.flags & DataStreamFlags.Commit) !== 0) {
|
|
81
|
+
throw new Error("Frame payloads are implicitly committed");
|
|
82
|
+
}
|
|
83
|
+
if (envelope.firstIndex !== 0 || envelope.itemCount !== 0 || envelope.totalItemCount !== 0) {
|
|
84
|
+
throw new Error("Frame payload has BlockSet indexing");
|
|
85
|
+
}
|
|
86
|
+
if (envelope.payload.byteLength === 0) {
|
|
87
|
+
throw new Error("Frame payload is empty");
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
case DataStreamPayloadType.BlockSet:
|
|
91
|
+
validateBlockSet(envelope);
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
throw new Error(`Unknown data stream payload type ${envelope.payloadType}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function validateBlockSet(envelope) {
|
|
98
|
+
if ((envelope.flags & DataStreamFlags.Recovery) !== 0) {
|
|
99
|
+
throw new Error("BlockSet payload cannot be a recovery frame");
|
|
100
|
+
}
|
|
101
|
+
if (envelope.totalItemCount === 0) {
|
|
102
|
+
throw new Error("BlockSet total item count must be non-zero");
|
|
103
|
+
}
|
|
104
|
+
if ((envelope.flags & DataStreamFlags.Commit) !== 0) {
|
|
105
|
+
if (envelope.firstIndex !== 0 || envelope.itemCount !== 0 || envelope.payload.byteLength !== 0) {
|
|
106
|
+
throw new Error("BlockSet commit must not contain a range or payload");
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (envelope.itemCount === 0 ||
|
|
111
|
+
envelope.firstIndex + envelope.itemCount > envelope.totalItemCount ||
|
|
112
|
+
envelope.payload.byteLength === 0) {
|
|
113
|
+
throw new Error("Invalid BlockSet data range");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=Envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Envelope.js","sourceRoot":"","sources":["../../../src/datastream/Envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export { default as BinaryReader } from './utils/BinaryReader.js';
|
|
2
2
|
export { default as BinaryWriter } from './utils/BinaryWriter.js';
|
|
3
3
|
export { default as TriggerStore } from './stores/TriggerStore.js';
|
|
4
|
+
export { DataStreamFlags, DataStreamPayloadType, decodeDataStreamEnvelope, } from './datastream/Envelope.js';
|
|
5
|
+
export type { DataStreamEnvelope } from './datastream/Envelope.js';
|
|
4
6
|
export { PartialArray, PartialMap, PartialModArray, PartialModMap, PartialValue } from './restream/PackageRestream.js';
|
|
5
7
|
export { VarInfo, FieldInfo, VarInfoPrimitive, VarInfoStruct, VarInfoGenericParam, VarInfoPointer, VarInfoArray, VarInfoMap, VarInfoDynamic, AppliablePartial, AppliableOnTopPartial, SerializationType } from './utils/SerializationTypes.js';
|
|
6
8
|
export * from './utils/Decoders.js';
|
|
7
9
|
export * from './utils/Encoders.js';
|
|
8
10
|
export * from './utils/SerializationTypes.js';
|
|
9
11
|
export { mapValueToObject } from './utils/TSUtils.js';
|
|
10
|
-
export { EventMessage, EventStruct, EventStructType, FFRPCCallMessage, FFRPCStruct, KeyedEventMessage, KeyedEventSubscriptionMessage, ReStreamSocket, RPCCallError, RPCCallMessage, RPCResponseStruct, RPCStruct, } from './websocket/SocketHelper.js';
|
|
12
|
+
export { EventMessage, EventStruct, EventStructType, DataStreamEndpoint, DataStreamEndpointCallback, DataStreamEndpointMessage, DataStreamSubscriptionMessage, FFRPCCallMessage, FFRPCStruct, KeyedEventMessage, KeyedEventSubscriptionMessage, ReStreamSocket, ReStreamSocketOptions, RPCCallError, RPCCallMessage, RPCResponseStruct, RPCStruct, ViewerSessionAttachRequest, ViewerSessionAttachResponse, ViewerSessionCapabilities, ViewerSessionCloseMessage, ViewerSessionDataStreamSubscription, ViewerSessionStoreSubscription, } from './websocket/SocketHelper.js';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACvH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC/O,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,6BAA6B,EAC7B,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACvH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC/O,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,6BAA6B,EAC7B,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,mCAAmC,EACnC,8BAA8B,GACjC,MAAM,6BAA6B,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { default as BinaryReader } from './utils/BinaryReader.js';
|
|
2
2
|
export { default as BinaryWriter } from './utils/BinaryWriter.js';
|
|
3
3
|
export { default as TriggerStore } from './stores/TriggerStore.js';
|
|
4
|
+
export { DataStreamFlags, DataStreamPayloadType, decodeDataStreamEnvelope, } from './datastream/Envelope.js';
|
|
4
5
|
export { PartialArray, PartialMap, PartialModArray, PartialModMap, PartialValue } from './restream/PackageRestream.js';
|
|
5
6
|
export { VarInfoPrimitive, VarInfoStruct, VarInfoGenericParam, VarInfoPointer, VarInfoArray, VarInfoMap, VarInfoDynamic, SerializationType } from './utils/SerializationTypes.js';
|
|
6
7
|
export * from './utils/Decoders.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACvH,OAAO,EAAsB,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAA2C,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC/O,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAEH,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACvH,OAAO,EAAsB,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAA2C,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC/O,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAEH,WAAW,EAOX,WAAW,EAGX,cAAc,EAId,iBAAiB,EACjB,SAAS,GAOZ,MAAM,6BAA6B,CAAC"}
|
|
@@ -67,6 +67,59 @@ export interface KeyedEventMessage {
|
|
|
67
67
|
key: string;
|
|
68
68
|
event: ArrayBufferLike;
|
|
69
69
|
}
|
|
70
|
+
export interface DataStreamSubscriptionMessage {
|
|
71
|
+
subscriptionID: string;
|
|
72
|
+
storeName: string;
|
|
73
|
+
streamName: string;
|
|
74
|
+
action: StoreSubscriptionAction;
|
|
75
|
+
key: string;
|
|
76
|
+
}
|
|
77
|
+
export interface DataStreamEndpoint {
|
|
78
|
+
leaseID: string;
|
|
79
|
+
url: string;
|
|
80
|
+
token: string;
|
|
81
|
+
/** Zero means the credential lives until the parent subscription revokes it. */
|
|
82
|
+
expiresAtUnixMilli: number;
|
|
83
|
+
metadata?: Record<string, string>;
|
|
84
|
+
}
|
|
85
|
+
export interface DataStreamEndpointMessage {
|
|
86
|
+
subscriptionID: string;
|
|
87
|
+
endpoint?: DataStreamEndpoint;
|
|
88
|
+
error?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface ViewerSessionStoreSubscription {
|
|
91
|
+
storeName: string;
|
|
92
|
+
key: string;
|
|
93
|
+
}
|
|
94
|
+
export interface ViewerSessionDataStreamSubscription {
|
|
95
|
+
subscriptionID: string;
|
|
96
|
+
storeName: string;
|
|
97
|
+
streamName: string;
|
|
98
|
+
key: string;
|
|
99
|
+
}
|
|
100
|
+
export interface ViewerSessionAttachRequest {
|
|
101
|
+
sessionID: string;
|
|
102
|
+
storeSubscriptions: ViewerSessionStoreSubscription[];
|
|
103
|
+
keyedEventSubscriptions: KeyedEventSubscriptionMessage[];
|
|
104
|
+
dataStreamSubscriptions: ViewerSessionDataStreamSubscription[];
|
|
105
|
+
}
|
|
106
|
+
export interface ViewerSessionCapabilities {
|
|
107
|
+
dataStreams: boolean;
|
|
108
|
+
}
|
|
109
|
+
export interface ViewerSessionAttachResponse {
|
|
110
|
+
sessionID: string;
|
|
111
|
+
resumed: boolean;
|
|
112
|
+
capabilities: ViewerSessionCapabilities;
|
|
113
|
+
error?: string;
|
|
114
|
+
}
|
|
115
|
+
export interface ViewerSessionCloseMessage {
|
|
116
|
+
sessionID: string;
|
|
117
|
+
}
|
|
118
|
+
export interface ReStreamSocketOptions {
|
|
119
|
+
viewerSessions?: boolean;
|
|
120
|
+
sessionAttachTimeoutMs?: number;
|
|
121
|
+
}
|
|
122
|
+
export type DataStreamEndpointCallback = (endpoint: DataStreamEndpoint | undefined, error?: Error) => void;
|
|
70
123
|
export interface RPCCallMessage {
|
|
71
124
|
callID: number;
|
|
72
125
|
methodName: string;
|
|
@@ -89,16 +142,42 @@ export declare class ReStreamSocket {
|
|
|
89
142
|
private _socket;
|
|
90
143
|
private _timestampOffset;
|
|
91
144
|
private _authenticated;
|
|
145
|
+
private _viewerSessions;
|
|
146
|
+
private readonly _sessionAttachTimeoutMs;
|
|
147
|
+
private _sessionID;
|
|
148
|
+
private _sessionAttach;
|
|
149
|
+
private _sessionAttachTimer;
|
|
150
|
+
private _sessionAttachOperations;
|
|
151
|
+
private _sessionFallbackAttempted;
|
|
152
|
+
private _capabilities;
|
|
92
153
|
private _rpcCallID;
|
|
154
|
+
private _dataStreamSubscriptionID;
|
|
93
155
|
private _rpcCallsPending;
|
|
94
156
|
private _eventSubscriptions;
|
|
95
157
|
private _keyedEventSubscriptions;
|
|
96
|
-
|
|
97
|
-
|
|
158
|
+
private _dataStreamSubscriptions;
|
|
159
|
+
constructor(socket: Socket, options?: ReStreamSocketOptions);
|
|
160
|
+
markAuthenticated(): Promise<void>;
|
|
161
|
+
/** Enables the optional session handshake before the first authentication. */
|
|
162
|
+
enableViewerSessions(): void;
|
|
163
|
+
/** Applies the capability negotiated for the next authenticated transport. */
|
|
164
|
+
setViewerSessionsEnabled(enabled: boolean): void;
|
|
165
|
+
getSessionID(): string | undefined;
|
|
166
|
+
getCapabilities(): ViewerSessionCapabilities;
|
|
167
|
+
closeSession(): void;
|
|
98
168
|
sendRPC<RS extends RPCResponseStruct<RT>, RT>(rpcStruct: RPCStruct<RS, RT>): Promise<RT>;
|
|
99
169
|
sendFFRPC(ffrpcStruct: FFRPCStruct): void;
|
|
100
170
|
subscribeToEvent<ES extends EventStruct>(eventType: EventStructType<ES>, callback: (event: ES) => void): () => void;
|
|
101
171
|
subscribeToKeyedEvent<ES extends EventStruct>(storeName: string, eventType: EventStructType<ES>, key: string, callback: (event: ES) => void): () => void;
|
|
172
|
+
subscribeToDataStream(storeName: string, streamName: string, key: string, callback: DataStreamEndpointCallback): () => void;
|
|
173
|
+
private _emitSessionAttach;
|
|
174
|
+
private _clearSessionAttach;
|
|
175
|
+
private _clearSessionAttachTimer;
|
|
176
|
+
private _rejectPendingRPCs;
|
|
102
177
|
private _emitKeyedEventSubscription;
|
|
178
|
+
private _keyedEventSubscriptionMessage;
|
|
179
|
+
private _emitDataStreamSubscription;
|
|
180
|
+
private _dataStreamSubscriptionMessage;
|
|
181
|
+
private _queueSessionAttachOperation;
|
|
103
182
|
}
|
|
104
183
|
//# sourceMappingURL=SocketHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketHelper.d.ts","sourceRoot":"","sources":["../../../src/websocket/SocketHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,YAAY,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SocketHelper.d.ts","sourceRoot":"","sources":["../../../src/websocket/SocketHelper.ts"],"names":[],"mappings":"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"}
|