@mml-io/delta-net-server 0.26.1 → 0.27.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/README.md +2 -2
- package/build/DeltaNetConnection.d.ts +26 -0
- package/build/DeltaNetConnection.d.ts.map +1 -0
- package/build/DeltaNetServer.d.ts +36 -23
- package/build/DeltaNetServer.d.ts.map +1 -1
- package/build/DeltaNetV01Connection.d.ts +5 -24
- package/build/DeltaNetV01Connection.d.ts.map +1 -1
- package/build/DeltaNetV02Connection.d.ts +7 -0
- package/build/DeltaNetV02Connection.d.ts.map +1 -0
- package/build/createDeltaNetServerConnectionForWebsocket.d.ts +13 -3
- package/build/createDeltaNetServerConnectionForWebsocket.d.ts.map +1 -1
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +394 -256
- package/build/index.js.map +4 -4
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
This package contains the `DeltaNetServer` class that provides a way to accept websocket connections that can each set int64 components and byte states which are then visible to every other connected user.
|
|
7
7
|
|
|
8
|
-
The WebSocket
|
|
8
|
+
The WebSocket protocols used by this package (`delta-net-v0.1` and `delta-net-v0.2`) are defined in `@mml-io/delta-net-protocol`. Protocol version negotiation is handled automatically via WebSocket subprotocols.
|
|
9
9
|
|
|
10
|
-
A client for the
|
|
10
|
+
A client for the DeltaNet protocols is provided by `@mml-io/delta-net-web`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DeltaNetServerErrorType, DeltaNetServerMessage, deltaNetProtocolSubProtocol_v0_1, deltaNetProtocolSubProtocol_v0_2 } from "@mml-io/delta-net-protocol";
|
|
2
|
+
import { DeltaNetServer } from "./DeltaNetServer";
|
|
3
|
+
export declare abstract class DeltaNetConnection {
|
|
4
|
+
readonly webSocket: WebSocket;
|
|
5
|
+
protected readonly deltaNetServer: DeltaNetServer;
|
|
6
|
+
abstract readonly protocolVersion: typeof deltaNetProtocolSubProtocol_v0_1 | typeof deltaNetProtocolSubProtocol_v0_2;
|
|
7
|
+
private websocketListener;
|
|
8
|
+
readonly internalConnectionId: number;
|
|
9
|
+
isObserver: boolean;
|
|
10
|
+
readonly components: Map<number, bigint>;
|
|
11
|
+
readonly states: Map<number, Uint8Array<ArrayBufferLike>>;
|
|
12
|
+
private pendingStateValidations;
|
|
13
|
+
private nextValidationId;
|
|
14
|
+
private authState;
|
|
15
|
+
private authenticationAbortController;
|
|
16
|
+
constructor(webSocket: WebSocket, deltaNetServer: DeltaNetServer);
|
|
17
|
+
abstract sendMessage(message: DeltaNetServerMessage): boolean;
|
|
18
|
+
sendEncodedBytes(bytes: Uint8Array): boolean;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
setAuthenticated(): void;
|
|
21
|
+
disconnectWithError(error: Error, errorType: DeltaNetServerErrorType, retryable?: boolean): void;
|
|
22
|
+
private handleConnectUser;
|
|
23
|
+
private handleStateUpdate;
|
|
24
|
+
private handleClientMessage;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=DeltaNetConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeltaNetConnection.d.ts","sourceRoot":"","sources":["../src/DeltaNetConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,uBAAuB,EAEvB,qBAAqB,EACrB,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAEvE,8BAAsB,kBAAkB;aA0BpB,SAAS,EAAE,SAAS;IACpC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IA1BnD,kBAAyB,eAAe,EACpC,OAAO,gCAAgC,GACvC,OAAO,gCAAgC,CAAC;IAE5C,OAAO,CAAC,iBAAiB,CAAuC;IAEhE,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IACtC,UAAU,EAAE,OAAO,CAAS;IAGnC,SAAgB,UAAU,sBAA6B;IACvD,SAAgB,MAAM,2CAAiC;IAGvD,OAAO,CAAC,uBAAuB,CAG3B;IACJ,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,SAAS,CAAwE;IACzF,OAAO,CAAC,6BAA6B,CAAgC;gBAGnD,SAAS,EAAE,SAAS,EACjB,cAAc,EAAE,cAAc;aAwCnC,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO;IAE7D,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAQ5C,OAAO;IAeP,gBAAgB;IAIhB,mBAAmB,CACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,uBAAuB,EAClC,SAAS,GAAE,OAAc,GACxB,IAAI;YA6BO,iBAAiB;YA0HjB,iBAAiB;IA8F/B,OAAO,CAAC,mBAAmB;CAwF5B"}
|
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DeltaNetServerErrorType } from "@mml-io/delta-net-protocol";
|
|
2
|
+
import { DeltaNetConnection } from "./DeltaNetConnection";
|
|
3
3
|
export type onJoinerOptions = {
|
|
4
|
-
|
|
4
|
+
connection: DeltaNetConnection;
|
|
5
5
|
components: Array<[number, bigint]>;
|
|
6
6
|
states: Array<[number, Uint8Array]>;
|
|
7
7
|
token: string;
|
|
8
8
|
internalConnectionId: number;
|
|
9
9
|
};
|
|
10
10
|
export type onComponentsUpdateOptions = {
|
|
11
|
-
|
|
11
|
+
connection: DeltaNetConnection;
|
|
12
12
|
internalConnectionId: number;
|
|
13
13
|
components: Array<[number, bigint]>;
|
|
14
14
|
};
|
|
15
15
|
export type onStatesUpdateOptions = {
|
|
16
|
-
|
|
16
|
+
connection: DeltaNetConnection;
|
|
17
17
|
internalConnectionId: number;
|
|
18
18
|
states: Array<[number, Uint8Array]>;
|
|
19
|
+
abortSignal: AbortSignal;
|
|
19
20
|
};
|
|
20
21
|
export type onLeaveOptions = {
|
|
21
|
-
|
|
22
|
+
connection: DeltaNetConnection;
|
|
22
23
|
internalConnectionId: number;
|
|
23
24
|
components: Array<[number, number]>;
|
|
24
25
|
states: Array<[number, Uint8Array]>;
|
|
25
26
|
};
|
|
26
27
|
export type onCustomMessageOptions = {
|
|
27
|
-
|
|
28
|
+
connection: DeltaNetConnection;
|
|
28
29
|
internalConnectionId: number;
|
|
29
30
|
customType: number;
|
|
30
31
|
contents: string;
|
|
31
32
|
};
|
|
32
33
|
export declare class DeltaNetServerError extends Error {
|
|
33
|
-
errorType:
|
|
34
|
+
errorType: DeltaNetServerErrorType;
|
|
34
35
|
retryable: boolean;
|
|
35
|
-
constructor(errorType:
|
|
36
|
+
constructor(errorType: DeltaNetServerErrorType, message: string, retryable: boolean);
|
|
36
37
|
}
|
|
37
38
|
export type DeltaNetServerOptions = {
|
|
38
39
|
onJoiner?: (opts: onJoinerOptions) => true | void | Error | DeltaNetServerError | {
|
|
@@ -63,53 +64,64 @@ export declare class DeltaNetServer {
|
|
|
63
64
|
private preTickData;
|
|
64
65
|
private connectionIdToComponentIndex;
|
|
65
66
|
private componentIndexToConnectionId;
|
|
66
|
-
private
|
|
67
|
-
private
|
|
68
|
-
private
|
|
67
|
+
private connectionIdToConnection;
|
|
68
|
+
private allConnections;
|
|
69
|
+
private authenticatedConnections;
|
|
70
|
+
private authenticatedV01Connections;
|
|
71
|
+
private authenticatedV02Connections;
|
|
69
72
|
private observerConnections;
|
|
70
|
-
private
|
|
73
|
+
private webSocketToConnection;
|
|
71
74
|
private components;
|
|
72
75
|
private states;
|
|
73
76
|
private documentEffectiveStartTime;
|
|
74
|
-
private pingCounter;
|
|
75
77
|
private disposed;
|
|
76
78
|
private maxStateValueSize;
|
|
77
79
|
private maxMessageSize;
|
|
78
80
|
constructor(opts?: DeltaNetServerOptions);
|
|
79
81
|
static handleWebsocketSubprotocol(protocols: Set<string> | Array<string>): string | false;
|
|
80
|
-
|
|
82
|
+
/**
|
|
83
|
+
* @param webSocket The upgraded WebSocket.
|
|
84
|
+
* @param deltaNetSubProtocol Optional explicit delta-net sub-protocol
|
|
85
|
+
* version. When provided, `webSocket.protocol` is ignored for version
|
|
86
|
+
* selection. This allows a higher-level protocol to be negotiated at the
|
|
87
|
+
* WebSocket level while the delta-net version is supplied by the caller.
|
|
88
|
+
*/
|
|
89
|
+
addWebSocket(webSocket: WebSocket, deltaNetSubProtocol?: string): void;
|
|
81
90
|
removeWebSocket(webSocket: WebSocket): void;
|
|
82
91
|
hasWebSocket(webSocket: WebSocket): boolean;
|
|
92
|
+
private addToAuthenticatedSets;
|
|
93
|
+
private removeFromAuthenticatedSets;
|
|
83
94
|
dangerouslyGetConnectionsToComponentIndex(): Map<number, number>;
|
|
84
95
|
dangerouslyAddNewJoinerCallback(callback: (index: number) => {
|
|
85
96
|
id: number;
|
|
86
97
|
afterAddCallback?: () => void;
|
|
87
98
|
} | null): void;
|
|
88
|
-
private disconnectWithError;
|
|
89
99
|
getComponentValue(componentId: number, componentIndex: number): number | null;
|
|
90
100
|
getNextConnectionId(): number;
|
|
91
101
|
getMaxMessageSize(): number;
|
|
92
|
-
validateJoiner(
|
|
102
|
+
validateJoiner(connection: DeltaNetConnection, token: string, components: Array<[number, bigint]>, states: Array<[number, Uint8Array]>): Promise<{
|
|
93
103
|
success: true;
|
|
104
|
+
stateOverrides?: Array<[number, Uint8Array]>;
|
|
94
105
|
} | {
|
|
95
106
|
success: false;
|
|
96
107
|
error: string;
|
|
97
108
|
}> | {
|
|
98
109
|
success: true;
|
|
110
|
+
stateOverrides?: Array<[number, Uint8Array]>;
|
|
99
111
|
} | {
|
|
100
112
|
success: false;
|
|
101
113
|
error: string;
|
|
102
114
|
};
|
|
103
|
-
addAuthenticatedConnection(
|
|
104
|
-
validateAndApplyStateUpdate(
|
|
115
|
+
addAuthenticatedConnection(connection: DeltaNetConnection): void;
|
|
116
|
+
validateAndApplyStateUpdate(connection: DeltaNetConnection, internalConnectionId: number, stateId: number, stateValue: Uint8Array, abortSignal: AbortSignal): Promise<true | void | Error | DeltaNetServerError> | true | void | Error | DeltaNetServerError;
|
|
105
117
|
clearInternalConnectionId(internalConnectionId: number): void;
|
|
106
|
-
private sendPings;
|
|
107
118
|
tick(): {
|
|
108
119
|
removedIds: Set<number>;
|
|
109
120
|
addedIds: Set<number>;
|
|
121
|
+
addedObserverIds: Set<number>;
|
|
110
122
|
};
|
|
111
123
|
getServerTime(): number;
|
|
112
|
-
setUserComponents(
|
|
124
|
+
setUserComponents(connection: DeltaNetConnection, internalConnectionId: number, components: Array<[number, bigint]>): {
|
|
113
125
|
success: true;
|
|
114
126
|
} | {
|
|
115
127
|
success: false;
|
|
@@ -117,10 +129,11 @@ export declare class DeltaNetServer {
|
|
|
117
129
|
};
|
|
118
130
|
setComponentValue(componentId: number, index: number, value: bigint): void;
|
|
119
131
|
private applyComponentUpdates;
|
|
120
|
-
overrideUserStates(
|
|
132
|
+
overrideUserStates(connection: DeltaNetConnection | null, internalConnectionId: number, states: Array<[number, Uint8Array]>): void;
|
|
121
133
|
setUserState(index: number, stateId: number, stateValue: Uint8Array): void;
|
|
122
134
|
private applyStateUpdates;
|
|
123
|
-
handleCustomMessage(
|
|
135
|
+
handleCustomMessage(connection: DeltaNetConnection, internalConnectionId: number, customType: number, contents: string): void;
|
|
136
|
+
sendCustomMessageToConnection(connectionId: number, customType: number, contents: string): void;
|
|
124
137
|
broadcastCustomMessage(customType: number, contents: string): void;
|
|
125
138
|
dispose(): void;
|
|
126
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaNetServer.d.ts","sourceRoot":"","sources":["../src/DeltaNetServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,
|
|
1
|
+
{"version":3,"file":"DeltaNetServer.d.ts","sourceRoot":"","sources":["../src/DeltaNetServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare class DeltaNetV01Connection {
|
|
4
|
-
readonly
|
|
5
|
-
|
|
6
|
-
private websocketListener;
|
|
7
|
-
readonly internalConnectionId: number;
|
|
8
|
-
isObserver: boolean;
|
|
9
|
-
components: Map<number, bigint>;
|
|
10
|
-
states: Map<number, Uint8Array<ArrayBufferLike>>;
|
|
11
|
-
private pendingStateValidations;
|
|
12
|
-
private nextValidationId;
|
|
13
|
-
private isAuthenticated;
|
|
14
|
-
private isAuthenticating;
|
|
15
|
-
private authenticationAbortController;
|
|
16
|
-
constructor(webSocket: WebSocket, deltaNetServer: DeltaNetServer);
|
|
17
|
-
sendMessage(message: DeltaNetV01ServerMessage): void;
|
|
18
|
-
sendEncodedBytes(bytes: Uint8Array): void;
|
|
19
|
-
dispose(): void;
|
|
20
|
-
setAuthenticated(): void;
|
|
21
|
-
private disconnectWithError;
|
|
22
|
-
private handleConnectUser;
|
|
23
|
-
handleStateUpdate(stateId: number, stateValue: Uint8Array): Promise<void>;
|
|
24
|
-
private handleClientMessage;
|
|
1
|
+
import { DeltaNetServerMessage } from "@mml-io/delta-net-protocol";
|
|
2
|
+
import { DeltaNetConnection } from "./DeltaNetConnection";
|
|
3
|
+
export declare class DeltaNetV01Connection extends DeltaNetConnection {
|
|
4
|
+
readonly protocolVersion = "delta-net-v0.1";
|
|
5
|
+
sendMessage(message: DeltaNetServerMessage): boolean;
|
|
25
6
|
}
|
|
26
7
|
//# sourceMappingURL=DeltaNetV01Connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaNetV01Connection.d.ts","sourceRoot":"","sources":["../src/DeltaNetV01Connection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DeltaNetV01Connection.d.ts","sourceRoot":"","sources":["../src/DeltaNetV01Connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D,SAAgB,eAAe,oBAAoC;IAEnD,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO;CAGrE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DeltaNetServerMessage } from "@mml-io/delta-net-protocol";
|
|
2
|
+
import { DeltaNetConnection } from "./DeltaNetConnection";
|
|
3
|
+
export declare class DeltaNetV02Connection extends DeltaNetConnection {
|
|
4
|
+
readonly protocolVersion = "delta-net-v0.2";
|
|
5
|
+
sendMessage(message: DeltaNetServerMessage): boolean;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DeltaNetV02Connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeltaNetV02Connection.d.ts","sourceRoot":"","sources":["../src/DeltaNetV02Connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D,SAAgB,eAAe,oBAAoC;IAEnD,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO;CAGrE"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { DeltaNetConnection } from "./DeltaNetConnection";
|
|
1
2
|
import { DeltaNetServer } from "./DeltaNetServer";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Create a DeltaNetConnection for an incoming WebSocket.
|
|
5
|
+
*
|
|
6
|
+
* @param webSocket The upgraded WebSocket.
|
|
7
|
+
* @param deltaNetServer The server instance that will own the connection.
|
|
8
|
+
* @param deltaNetSubProtocol Optional explicit delta-net sub-protocol version
|
|
9
|
+
* to use. When provided, the value of `webSocket.protocol` is ignored. This
|
|
10
|
+
* allows a higher-level protocol (e.g. `3d-web-experience-v0.1`) to be
|
|
11
|
+
* negotiated at the WebSocket level while the delta-net version is determined
|
|
12
|
+
* by the caller.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createDeltaNetServerConnectionForWebsocket(webSocket: WebSocket, deltaNetServer: DeltaNetServer, deltaNetSubProtocol?: string): DeltaNetConnection | null;
|
|
5
15
|
//# sourceMappingURL=createDeltaNetServerConnectionForWebsocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDeltaNetServerConnectionForWebsocket.d.ts","sourceRoot":"","sources":["../src/createDeltaNetServerConnectionForWebsocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createDeltaNetServerConnectionForWebsocket.d.ts","sourceRoot":"","sources":["../src/createDeltaNetServerConnectionForWebsocket.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUlD;;;;;;;;;;GAUG;AACH,wBAAgB,0CAA0C,CACxD,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,mBAAmB,CAAC,EAAE,MAAM,GAC3B,kBAAkB,GAAG,IAAI,CA2B3B"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export * from "./DeltaNetServer";
|
|
2
|
+
export { DeltaNetConnection } from "./DeltaNetConnection";
|
|
2
3
|
export { DeltaNetV01Connection } from "./DeltaNetV01Connection";
|
|
4
|
+
export { DeltaNetV02Connection } from "./DeltaNetV02Connection";
|
|
5
|
+
export { createDeltaNetServerConnectionForWebsocket } from "./createDeltaNetServerConnectionForWebsocket";
|
|
3
6
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,0CAA0C,EAAE,MAAM,8CAA8C,CAAC"}
|