@inditextech/weave-store-azure-web-pubsub 3.4.0 → 3.6.0-SNAPSHOT.112.1
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/client.d.ts +6 -2
- package/dist/client.js +22 -4
- package/dist/server.d.ts +7 -3
- package/package.json +3 -3
package/dist/client.d.ts
CHANGED
|
@@ -134,6 +134,7 @@ type FetchClient = (input: string | URL | globalThis.Request, init?: RequestInit
|
|
|
134
134
|
type FetchInitialState = (doc: Doc) => void;
|
|
135
135
|
type PersistRoom = (roomId: string, actualState: Uint8Array<ArrayBufferLike>) => Promise<void>;
|
|
136
136
|
type FetchRoom = (roomId: string) => Promise<Uint8Array | null>;
|
|
137
|
+
type WeaveRoomData = Uint8Array | FetchInitialState;
|
|
137
138
|
type WeaveStoreAzureWebPubsubEvents = {
|
|
138
139
|
onConnect: WeaveStoreAzureWebPubsubOnConnectEvent;
|
|
139
140
|
onConnected: WeaveStoreAzureWebPubsubOnConnectedEvent;
|
|
@@ -229,6 +230,7 @@ type WeaveStoreAzureWebPubsubSyncHostOptions = {
|
|
|
229
230
|
attemptsLimit: number;
|
|
230
231
|
};
|
|
231
232
|
};
|
|
233
|
+
|
|
232
234
|
//#endregion
|
|
233
235
|
//#region src/client.d.ts
|
|
234
236
|
declare class WeaveStoreAzureWebPubSubSyncClient extends Emittery {
|
|
@@ -285,16 +287,18 @@ declare class WeaveStoreAzureWebPubsub extends WeaveStore {
|
|
|
285
287
|
private roomId;
|
|
286
288
|
private started;
|
|
287
289
|
private initialRoomData;
|
|
290
|
+
private actualStatus;
|
|
288
291
|
protected provider: WeaveStoreAzureWebPubSubSyncClient;
|
|
289
292
|
protected name: string;
|
|
290
293
|
protected supportsUndoManager: boolean;
|
|
291
294
|
protected awarenessCallback: (changes: any) => void;
|
|
292
|
-
constructor(initialRoomData:
|
|
295
|
+
constructor(initialRoomData: WeaveRoomData | undefined, storeOptions: WeaveStoreOptions, azureWebPubsubOptions: Pick<WeaveStoreAzureWebPubsubOptions, "roomId" | "url"> & Partial<Omit<WeaveStoreAzureWebPubsubOptions, "roomId" | "url">>);
|
|
293
296
|
setup(): void;
|
|
294
297
|
private loadRoomInitialData;
|
|
295
298
|
private init;
|
|
296
299
|
emitEvent<T>(name: string, payload?: T): void;
|
|
297
300
|
getClientId(): string | null;
|
|
301
|
+
switchToRoom(roomId: string, roomData: Uint8Array | FetchInitialState | undefined): Promise<void>;
|
|
298
302
|
connect(extraParams?: Record<string, string>): Promise<void>;
|
|
299
303
|
disconnect(): void;
|
|
300
304
|
simulateWebsocketError(): void;
|
|
@@ -304,4 +308,4 @@ declare class WeaveStoreAzureWebPubsub extends WeaveStore {
|
|
|
304
308
|
}
|
|
305
309
|
|
|
306
310
|
//#endregion
|
|
307
|
-
export { FetchClient, FetchInitialState, FetchRoom, Message, MessageData, MessageDataType, MessageHandler, MessageType, PersistRoom, WEAVE_STORE_AZURE_WEB_PUBSUB, WEAVE_STORE_AZURE_WEB_PUBSUB_CONNECTION_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_DESTROY_ROOM_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_CLIENT_DEFAULT_OPTIONS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_HOST_DEFAULT_OPTIONS, WEAVE_STORE_HORIZONTAL_SYNC_HANDLER_CLIENT_TYPE, WeaveAzureWebPubsubSyncHandlerOptions, WeaveStoreAzureWebPubSubSyncClientConnectionStatus, WeaveStoreAzureWebPubSubSyncClientConnectionStatusKeys, WeaveStoreAzureWebPubSubSyncClientOptions, WeaveStoreAzureWebPubSubSyncHostClientConnectOptions, WeaveStoreAzureWebPubsub, WeaveStoreAzureWebPubsubConfig, WeaveStoreAzureWebPubsubEvents, WeaveStoreAzureWebPubsubOnConnectEvent, WeaveStoreAzureWebPubsubOnConnectedEvent, WeaveStoreAzureWebPubsubOnDisconnectedEvent, WeaveStoreAzureWebPubsubOnStoreFetchConnectionUrlEvent, WeaveStoreAzureWebPubsubOnWebsocketCloseEvent, WeaveStoreAzureWebPubsubOnWebsocketErrorEvent, WeaveStoreAzureWebPubsubOnWebsocketJoinGroupEvent, WeaveStoreAzureWebPubsubOnWebsocketMessageEvent, WeaveStoreAzureWebPubsubOnWebsocketOpenEvent, WeaveStoreAzureWebPubsubOnWebsocketReconnectEvent, WeaveStoreAzureWebPubsubOptions, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatus, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatusKeys, WeaveStoreAzureWebPubsubSyncHostOptions };
|
|
311
|
+
export { FetchClient, FetchInitialState, FetchRoom, Message, MessageData, MessageDataType, MessageHandler, MessageType, PersistRoom, WEAVE_STORE_AZURE_WEB_PUBSUB, WEAVE_STORE_AZURE_WEB_PUBSUB_CONNECTION_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_DESTROY_ROOM_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_CLIENT_DEFAULT_OPTIONS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_HOST_DEFAULT_OPTIONS, WEAVE_STORE_HORIZONTAL_SYNC_HANDLER_CLIENT_TYPE, WeaveAzureWebPubsubSyncHandlerOptions, WeaveRoomData, WeaveStoreAzureWebPubSubSyncClientConnectionStatus, WeaveStoreAzureWebPubSubSyncClientConnectionStatusKeys, WeaveStoreAzureWebPubSubSyncClientOptions, WeaveStoreAzureWebPubSubSyncHostClientConnectOptions, WeaveStoreAzureWebPubsub, WeaveStoreAzureWebPubsubConfig, WeaveStoreAzureWebPubsubEvents, WeaveStoreAzureWebPubsubOnConnectEvent, WeaveStoreAzureWebPubsubOnConnectedEvent, WeaveStoreAzureWebPubsubOnDisconnectedEvent, WeaveStoreAzureWebPubsubOnStoreFetchConnectionUrlEvent, WeaveStoreAzureWebPubsubOnWebsocketCloseEvent, WeaveStoreAzureWebPubsubOnWebsocketErrorEvent, WeaveStoreAzureWebPubsubOnWebsocketJoinGroupEvent, WeaveStoreAzureWebPubsubOnWebsocketMessageEvent, WeaveStoreAzureWebPubsubOnWebsocketOpenEvent, WeaveStoreAzureWebPubsubOnWebsocketReconnectEvent, WeaveStoreAzureWebPubsubOptions, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatus, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatusKeys, WeaveStoreAzureWebPubsubSyncHostOptions };
|
package/dist/client.js
CHANGED
|
@@ -3974,7 +3974,6 @@ var WeaveStoreAzureWebPubSubSyncClient = class extends Emittery {
|
|
|
3974
3974
|
if (message.type === MessageType.System) return;
|
|
3975
3975
|
const messageData = message.data;
|
|
3976
3976
|
if (messageData.type === "heartbeat") {
|
|
3977
|
-
console.log("[Azure Web PubSub] received heartbeat, updating last heartbeat time.");
|
|
3978
3977
|
this._lastHeartbeatTime = Date.now();
|
|
3979
3978
|
return;
|
|
3980
3979
|
}
|
|
@@ -4045,7 +4044,6 @@ var WeaveStoreAzureWebPubSubSyncClient = class extends Emittery {
|
|
|
4045
4044
|
this._checkHeartbeatId = setInterval(() => {
|
|
4046
4045
|
const now = Date.now();
|
|
4047
4046
|
if (now - this._lastHeartbeatTime > this._synClientOptions.heartbeat.checkWindowTimeMs) {
|
|
4048
|
-
console.log(`[Azure Web PubSub] heartbeat not received in ${this._synClientOptions.heartbeat.checkWindowTimeMs}ms window, handling it...`);
|
|
4049
4047
|
this.disconnect();
|
|
4050
4048
|
this.createWebSocket();
|
|
4051
4049
|
}
|
|
@@ -4147,6 +4145,7 @@ var WeaveStoreAzureWebPubsub = class extends WeaveStore {
|
|
|
4147
4145
|
this.roomId = roomId;
|
|
4148
4146
|
this.initialRoomData = initialRoomData;
|
|
4149
4147
|
this.started = false;
|
|
4148
|
+
this.actualStatus = WEAVE_STORE_CONNECTION_STATUS.DISCONNECTED;
|
|
4150
4149
|
this.init();
|
|
4151
4150
|
}
|
|
4152
4151
|
setup() {
|
|
@@ -4160,7 +4159,8 @@ var WeaveStoreAzureWebPubsub = class extends WeaveStore {
|
|
|
4160
4159
|
}
|
|
4161
4160
|
init() {
|
|
4162
4161
|
const { url } = this.azureWebPubsubOptions;
|
|
4163
|
-
|
|
4162
|
+
const patchedUrl = url.replace("[roomId]", this.roomId);
|
|
4163
|
+
this.provider = new WeaveStoreAzureWebPubSubSyncClient(this, patchedUrl, this.roomId, this.getDocument(), this.azureWebPubsubOptions.syncClientOptions);
|
|
4164
4164
|
const awareness = this.provider.awareness;
|
|
4165
4165
|
awareness.on("update", this.handleAwarenessChange.bind(this));
|
|
4166
4166
|
awareness.on("change", this.handleAwarenessChange.bind(this));
|
|
@@ -4172,7 +4172,11 @@ var WeaveStoreAzureWebPubsub = class extends WeaveStore {
|
|
|
4172
4172
|
this.handleConnectionStatusChange(WEAVE_STORE_CONNECTION_STATUS.DISCONNECTED);
|
|
4173
4173
|
});
|
|
4174
4174
|
this.provider.on("status", (status) => {
|
|
4175
|
-
this.
|
|
4175
|
+
if (this.actualStatus !== WEAVE_STORE_CONNECTION_STATUS.SWITCHING_ROOM || this.actualStatus === WEAVE_STORE_CONNECTION_STATUS.SWITCHING_ROOM && status === WEAVE_STORE_CONNECTION_STATUS.CONNECTED) {
|
|
4176
|
+
this.handleConnectionStatusChange(status);
|
|
4177
|
+
if (this.actualStatus === WEAVE_STORE_CONNECTION_STATUS.SWITCHING_ROOM && status === WEAVE_STORE_CONNECTION_STATUS.CONNECTED) this.instance.emitEvent("onRoomSwitchingEnd", { room: this.roomId });
|
|
4178
|
+
this.actualStatus = status;
|
|
4179
|
+
}
|
|
4176
4180
|
if (status === WEAVE_STORE_CONNECTION_STATUS.CONNECTED && !this.started) {
|
|
4177
4181
|
this.loadRoomInitialData();
|
|
4178
4182
|
this.started = true;
|
|
@@ -4186,9 +4190,23 @@ var WeaveStoreAzureWebPubsub = class extends WeaveStore {
|
|
|
4186
4190
|
if (this.provider) return this.provider.getClientId();
|
|
4187
4191
|
return null;
|
|
4188
4192
|
}
|
|
4193
|
+
async switchToRoom(roomId, roomData) {
|
|
4194
|
+
this.instance.emitEvent("onRoomSwitchingStart", { room: roomId });
|
|
4195
|
+
this.actualStatus = WEAVE_STORE_CONNECTION_STATUS.SWITCHING_ROOM;
|
|
4196
|
+
this.disconnect();
|
|
4197
|
+
this.restartDocument();
|
|
4198
|
+
await this.instance.switchRoom();
|
|
4199
|
+
this.roomId = roomId;
|
|
4200
|
+
this.initialRoomData = roomData;
|
|
4201
|
+
this.started = false;
|
|
4202
|
+
this.init();
|
|
4203
|
+
this.setup();
|
|
4204
|
+
this.connect();
|
|
4205
|
+
}
|
|
4189
4206
|
async connect(extraParams) {
|
|
4190
4207
|
const { fetchClient } = this.azureWebPubsubOptions;
|
|
4191
4208
|
this.provider.setFetchClient(fetchClient ?? window.fetch);
|
|
4209
|
+
this.instance.emitEvent("onStoreRoomChanged", { room: this.roomId });
|
|
4192
4210
|
await this.provider.connect(extraParams);
|
|
4193
4211
|
}
|
|
4194
4212
|
disconnect() {
|
package/dist/server.d.ts
CHANGED
|
@@ -42,16 +42,18 @@ declare class WeaveStoreAzureWebPubsub extends WeaveStore {
|
|
|
42
42
|
private roomId;
|
|
43
43
|
private started;
|
|
44
44
|
private initialRoomData;
|
|
45
|
+
private actualStatus;
|
|
45
46
|
protected provider: WeaveStoreAzureWebPubSubSyncClient;
|
|
46
47
|
protected name: string;
|
|
47
48
|
protected supportsUndoManager: boolean;
|
|
48
49
|
protected awarenessCallback: (changes: any) => void;
|
|
49
|
-
constructor(initialRoomData:
|
|
50
|
+
constructor(initialRoomData: WeaveRoomData | undefined, storeOptions: WeaveStoreOptions, azureWebPubsubOptions: Pick<WeaveStoreAzureWebPubsubOptions, "roomId" | "url"> & Partial<Omit<WeaveStoreAzureWebPubsubOptions, "roomId" | "url">>);
|
|
50
51
|
setup(): void;
|
|
51
52
|
private loadRoomInitialData;
|
|
52
53
|
private init;
|
|
53
54
|
emitEvent<T>(name: string, payload?: T): void;
|
|
54
55
|
getClientId(): string | null;
|
|
56
|
+
switchToRoom(roomId: string, roomData: Uint8Array | FetchInitialState | undefined): Promise<void>;
|
|
55
57
|
connect(extraParams?: Record<string, string>): Promise<void>;
|
|
56
58
|
disconnect(): void;
|
|
57
59
|
simulateWebsocketError(): void;
|
|
@@ -143,6 +145,7 @@ type FetchClient = (input: string | URL | globalThis.Request, init?: RequestInit
|
|
|
143
145
|
type FetchInitialState = (doc: Doc) => void;
|
|
144
146
|
type PersistRoom = (roomId: string, actualState: Uint8Array<ArrayBufferLike>) => Promise<void>;
|
|
145
147
|
type FetchRoom = (roomId: string) => Promise<Uint8Array | null>;
|
|
148
|
+
type WeaveRoomData = Uint8Array | FetchInitialState;
|
|
146
149
|
type WeaveStoreAzureWebPubsubEvents = {
|
|
147
150
|
onConnect: WeaveStoreAzureWebPubsubOnConnectEvent;
|
|
148
151
|
onConnected: WeaveStoreAzureWebPubsubOnConnectedEvent;
|
|
@@ -419,7 +422,8 @@ declare enum MqttDisconnectReasonCode {
|
|
|
419
422
|
* Description: The Server does not support Wildcard Subscriptions; the subscription is not accepted.
|
|
420
423
|
*/
|
|
421
424
|
WildcardSubscriptionsNotSupported = 162,
|
|
422
|
-
}
|
|
425
|
+
}
|
|
426
|
+
//#endregion
|
|
423
427
|
//#region src/server/event-handler/enum/mqtt-error-codes/mqtt-v311-connect-return-code.d.ts
|
|
424
428
|
/**
|
|
425
429
|
* MQTT 3.1.1 Connect Return Codes.
|
|
@@ -1134,4 +1138,4 @@ declare class WeaveAzureWebPubsubServer extends Emittery {
|
|
|
1134
1138
|
}
|
|
1135
1139
|
|
|
1136
1140
|
//#endregion
|
|
1137
|
-
export { Certificate, ConnectErrorResponse, ConnectRequest, ConnectResponse, ConnectResponseHandler, ConnectedRequest, ConnectionContext, DisconnectedRequest, FetchClient, FetchInitialState, FetchRoom, Message, MessageData, MessageDataType, MessageHandler, MessageType, MqttConnectErrorResponse, MqttConnectErrorResponseProperties, MqttConnectProperties, MqttConnectRequest, MqttConnectResponse, MqttConnectResponseProperties, MqttConnectionContextProperties, MqttDisconnectPacket, MqttDisconnectReasonCode, MqttDisconnectedProperties, MqttDisconnectedRequest, MqttUserProperty, MqttV311ConnectReturnCode, MqttV500ConnectReasonCode, PersistRoom, UserEventRequest, UserEventResponseHandler, WEAVE_STORE_AZURE_WEB_PUBSUB, WEAVE_STORE_AZURE_WEB_PUBSUB_CONNECTION_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_DESTROY_ROOM_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_CLIENT_DEFAULT_OPTIONS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_HOST_DEFAULT_OPTIONS, WEAVE_STORE_HORIZONTAL_SYNC_HANDLER_CLIENT_TYPE, WeaveAzureWebPubsubServer, WeaveAzureWebPubsubSyncHandlerOptions, WeaveStoreAzureWebPubSubSyncClientConnectionStatus, WeaveStoreAzureWebPubSubSyncClientConnectionStatusKeys, WeaveStoreAzureWebPubSubSyncClientOptions, WeaveStoreAzureWebPubSubSyncHost, WeaveStoreAzureWebPubSubSyncHostClientConnectOptions, WeaveStoreAzureWebPubsubConfig, WeaveStoreAzureWebPubsubEvents, WeaveStoreAzureWebPubsubOnConnectEvent, WeaveStoreAzureWebPubsubOnConnectedEvent, WeaveStoreAzureWebPubsubOnDisconnectedEvent, WeaveStoreAzureWebPubsubOnStoreFetchConnectionUrlEvent, WeaveStoreAzureWebPubsubOnWebsocketCloseEvent, WeaveStoreAzureWebPubsubOnWebsocketErrorEvent, WeaveStoreAzureWebPubsubOnWebsocketJoinGroupEvent, WeaveStoreAzureWebPubsubOnWebsocketMessageEvent, WeaveStoreAzureWebPubsubOnWebsocketOpenEvent, WeaveStoreAzureWebPubsubOnWebsocketReconnectEvent, WeaveStoreAzureWebPubsubOptions, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatus, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatusKeys, WeaveStoreAzureWebPubsubSyncHostOptions, WebPubSubClientProtocol, WebPubSubEventHandler, WebPubSubEventHandlerOptions };
|
|
1141
|
+
export { Certificate, ConnectErrorResponse, ConnectRequest, ConnectResponse, ConnectResponseHandler, ConnectedRequest, ConnectionContext, DisconnectedRequest, FetchClient, FetchInitialState, FetchRoom, Message, MessageData, MessageDataType, MessageHandler, MessageType, MqttConnectErrorResponse, MqttConnectErrorResponseProperties, MqttConnectProperties, MqttConnectRequest, MqttConnectResponse, MqttConnectResponseProperties, MqttConnectionContextProperties, MqttDisconnectPacket, MqttDisconnectReasonCode, MqttDisconnectedProperties, MqttDisconnectedRequest, MqttUserProperty, MqttV311ConnectReturnCode, MqttV500ConnectReasonCode, PersistRoom, UserEventRequest, UserEventResponseHandler, WEAVE_STORE_AZURE_WEB_PUBSUB, WEAVE_STORE_AZURE_WEB_PUBSUB_CONNECTION_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_DESTROY_ROOM_STATUS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_CLIENT_DEFAULT_OPTIONS, WEAVE_STORE_AZURE_WEB_PUBSUB_SYNC_HOST_DEFAULT_OPTIONS, WEAVE_STORE_HORIZONTAL_SYNC_HANDLER_CLIENT_TYPE, WeaveAzureWebPubsubServer, WeaveAzureWebPubsubSyncHandlerOptions, WeaveRoomData, WeaveStoreAzureWebPubSubSyncClientConnectionStatus, WeaveStoreAzureWebPubSubSyncClientConnectionStatusKeys, WeaveStoreAzureWebPubSubSyncClientOptions, WeaveStoreAzureWebPubSubSyncHost, WeaveStoreAzureWebPubSubSyncHostClientConnectOptions, WeaveStoreAzureWebPubsubConfig, WeaveStoreAzureWebPubsubEvents, WeaveStoreAzureWebPubsubOnConnectEvent, WeaveStoreAzureWebPubsubOnConnectedEvent, WeaveStoreAzureWebPubsubOnDisconnectedEvent, WeaveStoreAzureWebPubsubOnStoreFetchConnectionUrlEvent, WeaveStoreAzureWebPubsubOnWebsocketCloseEvent, WeaveStoreAzureWebPubsubOnWebsocketErrorEvent, WeaveStoreAzureWebPubsubOnWebsocketJoinGroupEvent, WeaveStoreAzureWebPubsubOnWebsocketMessageEvent, WeaveStoreAzureWebPubsubOnWebsocketOpenEvent, WeaveStoreAzureWebPubsubOnWebsocketReconnectEvent, WeaveStoreAzureWebPubsubOptions, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatus, WeaveStoreAzureWebPubsubSyncHandlerDestroyRoomStatusKeys, WeaveStoreAzureWebPubsubSyncHostOptions, WebPubSubClientProtocol, WebPubSubEventHandler, WebPubSubEventHandlerOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-store-azure-web-pubsub",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-SNAPSHOT.112.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@azure/identity": "4.10.2",
|
|
59
59
|
"@azure/web-pubsub": "1.2.0",
|
|
60
|
-
"@inditextech/weave-types": "3.
|
|
61
|
-
"@inditextech/weave-sdk": "3.
|
|
60
|
+
"@inditextech/weave-types": "3.6.0-SNAPSHOT.112.1",
|
|
61
|
+
"@inditextech/weave-sdk": "3.6.0-SNAPSHOT.112.1",
|
|
62
62
|
"@syncedstore/core": "0.6.0",
|
|
63
63
|
"buffer": "6.0.3",
|
|
64
64
|
"reconnecting-websocket": "4.4.0",
|