@liveblocks/core 1.3.6 → 1.4.0-test1
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/index.d.mts +95 -68
- package/dist/index.d.ts +95 -68
- package/dist/index.js +53 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -681,6 +681,11 @@ declare type CommentBody = {
|
|
|
681
681
|
content: CommentBodyBlockElement[];
|
|
682
682
|
};
|
|
683
683
|
|
|
684
|
+
declare type CommentReaction = {
|
|
685
|
+
emoji: string;
|
|
686
|
+
userId: string;
|
|
687
|
+
createdAt: string;
|
|
688
|
+
};
|
|
684
689
|
/**
|
|
685
690
|
* Represents a comment.
|
|
686
691
|
*/
|
|
@@ -692,6 +697,7 @@ declare type CommentData = {
|
|
|
692
697
|
userId: string;
|
|
693
698
|
createdAt: string;
|
|
694
699
|
editedAt?: string;
|
|
700
|
+
reactions: CommentReaction[];
|
|
695
701
|
} & ({
|
|
696
702
|
body: CommentBody;
|
|
697
703
|
deletedAt?: never;
|
|
@@ -742,6 +748,16 @@ declare type CommentsApi<ThreadMetadata extends BaseMetadata> = {
|
|
|
742
748
|
threadId: string;
|
|
743
749
|
commentId: string;
|
|
744
750
|
}): Promise<void>;
|
|
751
|
+
addReaction(options: {
|
|
752
|
+
threadId: string;
|
|
753
|
+
commentId: string;
|
|
754
|
+
emoji: string;
|
|
755
|
+
}): Promise<CommentData>;
|
|
756
|
+
removeReaction(options: {
|
|
757
|
+
threadId: string;
|
|
758
|
+
commentId: string;
|
|
759
|
+
emoji: string;
|
|
760
|
+
}): Promise<CommentData>;
|
|
745
761
|
};
|
|
746
762
|
declare function createCommentsApi<ThreadMetadata extends BaseMetadata>(roomId: string, getAuthValue: () => Promise<AuthValue>, { serverEndpoint }: Options): CommentsApi<ThreadMetadata>;
|
|
747
763
|
|
|
@@ -924,6 +940,64 @@ declare type Delegates<T extends BaseAuthResult> = {
|
|
|
924
940
|
createSocket: (authValue: T) => IWebSocketInstance;
|
|
925
941
|
};
|
|
926
942
|
|
|
943
|
+
declare enum ClientMsgCode {
|
|
944
|
+
UPDATE_PRESENCE = 100,
|
|
945
|
+
BROADCAST_EVENT = 103,
|
|
946
|
+
FETCH_STORAGE = 200,
|
|
947
|
+
UPDATE_STORAGE = 201,
|
|
948
|
+
FETCH_YDOC = 300,
|
|
949
|
+
UPDATE_YDOC = 301
|
|
950
|
+
}
|
|
951
|
+
/**
|
|
952
|
+
* Messages that can be sent from the client to the server.
|
|
953
|
+
*/
|
|
954
|
+
declare type ClientMsg<TPresence extends JsonObject, TRoomEvent extends Json> = BroadcastEventClientMsg<TRoomEvent> | UpdatePresenceClientMsg<TPresence> | UpdateStorageClientMsg | FetchStorageClientMsg | FetchYDocClientMsg | UpdateYDocClientMsg;
|
|
955
|
+
declare type BroadcastEventClientMsg<TRoomEvent extends Json> = {
|
|
956
|
+
type: ClientMsgCode.BROADCAST_EVENT;
|
|
957
|
+
event: TRoomEvent;
|
|
958
|
+
};
|
|
959
|
+
declare type UpdatePresenceClientMsg<TPresence extends JsonObject> = {
|
|
960
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
961
|
+
/**
|
|
962
|
+
* Set this to any number to signify that this is a Full Presence™
|
|
963
|
+
* update, not a patch.
|
|
964
|
+
*
|
|
965
|
+
* The numeric value itself no longer has specific meaning. Historically,
|
|
966
|
+
* this field was intended so that clients could ignore these broadcasted
|
|
967
|
+
* full presence messages, but it turned out that getting a full presence
|
|
968
|
+
* "keyframe" from time to time was useful.
|
|
969
|
+
*
|
|
970
|
+
* So nowadays, the presence (pun intended) of this `targetActor` field
|
|
971
|
+
* is a backward-compatible way of expressing that the `data` contains
|
|
972
|
+
* all presence fields, and isn't a partial "patch".
|
|
973
|
+
*/
|
|
974
|
+
readonly targetActor: number;
|
|
975
|
+
readonly data: TPresence;
|
|
976
|
+
} | {
|
|
977
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
978
|
+
/**
|
|
979
|
+
* Absence of the `targetActor` field signifies that this is a Partial
|
|
980
|
+
* Presence™ "patch".
|
|
981
|
+
*/
|
|
982
|
+
readonly targetActor?: undefined;
|
|
983
|
+
readonly data: Partial<TPresence>;
|
|
984
|
+
};
|
|
985
|
+
declare type UpdateStorageClientMsg = {
|
|
986
|
+
readonly type: ClientMsgCode.UPDATE_STORAGE;
|
|
987
|
+
readonly ops: Op[];
|
|
988
|
+
};
|
|
989
|
+
declare type FetchStorageClientMsg = {
|
|
990
|
+
readonly type: ClientMsgCode.FETCH_STORAGE;
|
|
991
|
+
};
|
|
992
|
+
declare type FetchYDocClientMsg = {
|
|
993
|
+
readonly type: ClientMsgCode.FETCH_YDOC;
|
|
994
|
+
readonly vector: string;
|
|
995
|
+
};
|
|
996
|
+
declare type UpdateYDocClientMsg = {
|
|
997
|
+
readonly type: ClientMsgCode.UPDATE_YDOC;
|
|
998
|
+
readonly update: string;
|
|
999
|
+
};
|
|
1000
|
+
|
|
927
1001
|
declare type IdTuple<T> = [id: string, value: T];
|
|
928
1002
|
declare enum CrdtType {
|
|
929
1003
|
OBJECT = 0,
|
|
@@ -983,7 +1057,7 @@ declare enum ServerMsgCode {
|
|
|
983
1057
|
/**
|
|
984
1058
|
* Messages that can be sent from the server to the client.
|
|
985
1059
|
*/
|
|
986
|
-
declare type ServerMsg<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = UpdatePresenceServerMsg<TPresence> | UserJoinServerMsg<TUserMeta> | UserLeftServerMsg | BroadcastedEventServerMsg<TRoomEvent> | RoomStateServerMsg<TUserMeta> | InitialDocumentStateServerMsg | UpdateStorageServerMsg | RejectedStorageOpServerMsg |
|
|
1060
|
+
declare type ServerMsg<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = UpdatePresenceServerMsg<TPresence> | UserJoinServerMsg<TUserMeta> | UserLeftServerMsg | BroadcastedEventServerMsg<TRoomEvent> | RoomStateServerMsg<TUserMeta> | InitialDocumentStateServerMsg | UpdateStorageServerMsg | RejectedStorageOpServerMsg | YDocUpdateServerMsg | CommentsEventServerMsg;
|
|
987
1061
|
declare type CommentsEventServerMsg = ThreadCreatedEvent | ThreadMetadataUpdatedEvent | CommentCreatedEvent | CommentEditedEvent | CommentDeletedEvent;
|
|
988
1062
|
declare type ThreadCreatedEvent = {
|
|
989
1063
|
type: ServerMsgCode.THREAD_CREATED;
|
|
@@ -1094,7 +1168,7 @@ declare type UserLeftServerMsg = {
|
|
|
1094
1168
|
* Sent by the WebSocket server when the ydoc is updated or when requested based on stateVector passed.
|
|
1095
1169
|
* Contains a base64 encoded update
|
|
1096
1170
|
*/
|
|
1097
|
-
declare type
|
|
1171
|
+
declare type YDocUpdateServerMsg = {
|
|
1098
1172
|
readonly type: ServerMsgCode.UPDATE_YDOC;
|
|
1099
1173
|
readonly update: string;
|
|
1100
1174
|
readonly isSync: boolean;
|
|
@@ -1232,13 +1306,19 @@ declare type OthersEvent<TPresence extends JsonObject, TUserMeta extends BaseUse
|
|
|
1232
1306
|
type: "reset";
|
|
1233
1307
|
};
|
|
1234
1308
|
|
|
1235
|
-
declare type
|
|
1309
|
+
declare type RoomEventMessage<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = {
|
|
1236
1310
|
/**
|
|
1237
1311
|
* The connection ID of the client that sent the event.
|
|
1238
1312
|
* If this message was broadcast from the server (via the REST API), then
|
|
1239
1313
|
* this value will be -1.
|
|
1240
1314
|
*/
|
|
1241
1315
|
connectionId: number;
|
|
1316
|
+
/**
|
|
1317
|
+
* The User (from the others list) that sent the event.
|
|
1318
|
+
* If this message was broadcast from the server (via the REST API), then
|
|
1319
|
+
* this value will be null.
|
|
1320
|
+
*/
|
|
1321
|
+
user: User<TPresence, TUserMeta> | null;
|
|
1242
1322
|
event: TRoomEvent;
|
|
1243
1323
|
};
|
|
1244
1324
|
declare type StorageStatus = "not-loaded" | "loading" | "synchronizing" | "synchronized";
|
|
@@ -1372,7 +1452,7 @@ declare type SubscribeFn<TPresence extends JsonObject, _TStorage extends LsonObj
|
|
|
1372
1452
|
* });
|
|
1373
1453
|
*
|
|
1374
1454
|
*/
|
|
1375
|
-
(type: "event", listener: Callback<
|
|
1455
|
+
(type: "event", listener: Callback<RoomEventMessage<TPresence, TUserMeta, TRoomEvent>>): () => void;
|
|
1376
1456
|
/**
|
|
1377
1457
|
* Subscribe to errors thrown in the room.
|
|
1378
1458
|
*
|
|
@@ -1612,10 +1692,7 @@ declare type Room<TPresence extends JsonObject, TStorage extends LsonObject, TUs
|
|
|
1612
1692
|
readonly connection: Observable<LegacyConnectionStatus>;
|
|
1613
1693
|
readonly status: Observable<Status>;
|
|
1614
1694
|
readonly lostConnection: Observable<LostConnectionEvent>;
|
|
1615
|
-
readonly customEvent: Observable<
|
|
1616
|
-
connectionId: number;
|
|
1617
|
-
event: TRoomEvent;
|
|
1618
|
-
}>;
|
|
1695
|
+
readonly customEvent: Observable<RoomEventMessage<TPresence, TUserMeta, TRoomEvent>>;
|
|
1619
1696
|
readonly self: Observable<User<TPresence, TUserMeta>>;
|
|
1620
1697
|
readonly myPresence: Observable<TPresence>;
|
|
1621
1698
|
readonly others: Observable<{
|
|
@@ -1632,7 +1709,7 @@ declare type Room<TPresence extends JsonObject, TStorage extends LsonObject, TUs
|
|
|
1632
1709
|
*/
|
|
1633
1710
|
readonly storageDidLoad: Observable<void>;
|
|
1634
1711
|
readonly storageStatus: Observable<StorageStatus>;
|
|
1635
|
-
readonly ydoc: Observable<
|
|
1712
|
+
readonly ydoc: Observable<YDocUpdateServerMsg | UpdateYDocClientMsg>;
|
|
1636
1713
|
readonly comments: Observable<CommentsEventServerMsg>;
|
|
1637
1714
|
};
|
|
1638
1715
|
/**
|
|
@@ -2078,64 +2155,6 @@ declare function asPos(str: string): Pos;
|
|
|
2078
2155
|
*/
|
|
2079
2156
|
declare function shallow(a: unknown, b: unknown): boolean;
|
|
2080
2157
|
|
|
2081
|
-
declare enum ClientMsgCode {
|
|
2082
|
-
UPDATE_PRESENCE = 100,
|
|
2083
|
-
BROADCAST_EVENT = 103,
|
|
2084
|
-
FETCH_STORAGE = 200,
|
|
2085
|
-
UPDATE_STORAGE = 201,
|
|
2086
|
-
FETCH_YDOC = 300,
|
|
2087
|
-
UPDATE_YDOC = 301
|
|
2088
|
-
}
|
|
2089
|
-
/**
|
|
2090
|
-
* Messages that can be sent from the client to the server.
|
|
2091
|
-
*/
|
|
2092
|
-
declare type ClientMsg<TPresence extends JsonObject, TRoomEvent extends Json> = BroadcastEventClientMsg<TRoomEvent> | UpdatePresenceClientMsg<TPresence> | UpdateStorageClientMsg | FetchStorageClientMsg | FetchYDocClientMsg | UpdateYDocClientMsg;
|
|
2093
|
-
declare type BroadcastEventClientMsg<TRoomEvent extends Json> = {
|
|
2094
|
-
type: ClientMsgCode.BROADCAST_EVENT;
|
|
2095
|
-
event: TRoomEvent;
|
|
2096
|
-
};
|
|
2097
|
-
declare type UpdatePresenceClientMsg<TPresence extends JsonObject> = {
|
|
2098
|
-
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
2099
|
-
/**
|
|
2100
|
-
* Set this to any number to signify that this is a Full Presence™
|
|
2101
|
-
* update, not a patch.
|
|
2102
|
-
*
|
|
2103
|
-
* The numeric value itself no longer has specific meaning. Historically,
|
|
2104
|
-
* this field was intended so that clients could ignore these broadcasted
|
|
2105
|
-
* full presence messages, but it turned out that getting a full presence
|
|
2106
|
-
* "keyframe" from time to time was useful.
|
|
2107
|
-
*
|
|
2108
|
-
* So nowadays, the presence (pun intended) of this `targetActor` field
|
|
2109
|
-
* is a backward-compatible way of expressing that the `data` contains
|
|
2110
|
-
* all presence fields, and isn't a partial "patch".
|
|
2111
|
-
*/
|
|
2112
|
-
readonly targetActor: number;
|
|
2113
|
-
readonly data: TPresence;
|
|
2114
|
-
} | {
|
|
2115
|
-
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
2116
|
-
/**
|
|
2117
|
-
* Absence of the `targetActor` field signifies that this is a Partial
|
|
2118
|
-
* Presence™ "patch".
|
|
2119
|
-
*/
|
|
2120
|
-
readonly targetActor?: undefined;
|
|
2121
|
-
readonly data: Partial<TPresence>;
|
|
2122
|
-
};
|
|
2123
|
-
declare type UpdateStorageClientMsg = {
|
|
2124
|
-
readonly type: ClientMsgCode.UPDATE_STORAGE;
|
|
2125
|
-
readonly ops: Op[];
|
|
2126
|
-
};
|
|
2127
|
-
declare type FetchStorageClientMsg = {
|
|
2128
|
-
readonly type: ClientMsgCode.FETCH_STORAGE;
|
|
2129
|
-
};
|
|
2130
|
-
declare type FetchYDocClientMsg = {
|
|
2131
|
-
readonly type: ClientMsgCode.FETCH_YDOC;
|
|
2132
|
-
readonly vector: string;
|
|
2133
|
-
};
|
|
2134
|
-
declare type UpdateYDocClientMsg = {
|
|
2135
|
-
readonly type: ClientMsgCode.UPDATE_YDOC;
|
|
2136
|
-
readonly update: string;
|
|
2137
|
-
};
|
|
2138
|
-
|
|
2139
2158
|
declare type JsonTreeNode = {
|
|
2140
2159
|
readonly type: "Json";
|
|
2141
2160
|
readonly id: string;
|
|
@@ -2265,6 +2284,14 @@ declare type ClientToPanelMessage =
|
|
|
2265
2284
|
storage?: readonly LsonTreeNode[];
|
|
2266
2285
|
me?: UserTreeNode;
|
|
2267
2286
|
others?: readonly UserTreeNode[];
|
|
2287
|
+
}
|
|
2288
|
+
/**
|
|
2289
|
+
* Sent whenever the ydoc is updated
|
|
2290
|
+
*/
|
|
2291
|
+
| {
|
|
2292
|
+
msg: "room::sync::ydoc";
|
|
2293
|
+
roomId: string;
|
|
2294
|
+
update: YDocUpdateServerMsg | UpdateYDocClientMsg;
|
|
2268
2295
|
};
|
|
2269
2296
|
declare type FullPanelToClientMessage = PanelToClientMessage & {
|
|
2270
2297
|
source: "liveblocks-devtools-panel";
|
|
@@ -2299,4 +2326,4 @@ declare type EnsureJson<T> = [
|
|
|
2299
2326
|
[K in keyof T]: EnsureJson<T[K]>;
|
|
2300
2327
|
};
|
|
2301
2328
|
|
|
2302
|
-
export { AckOp, AsyncCache, AsyncState, AsyncStateError, AsyncStateInitial, AsyncStateLoading, AsyncStateResolved, AsyncStateSuccess, BaseAuthResult, BaseMetadata, BaseUserMeta, BroadcastEventClientMsg, BroadcastOptions, BroadcastedEventServerMsg, Client, ClientMsg, ClientMsgCode, CommentBody, CommentBodyElement, CommentBodyLink, CommentBodyMention, CommentBodyParagraph, CommentBodyText, CommentData, CommentsApi, CrdtType, CreateChildOp, CreateListOp, CreateMapOp, CreateObjectOp, CreateOp, CreateRegisterOp, CreateRootObjectOp, CustomAuthenticationResult, Delegates, DeleteCrdtOp, DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, EnsureJson, EventSource, FetchStorageClientMsg, FetchYDocClientMsg, History, IWebSocket, IWebSocketCloseEvent, IWebSocketEvent, IWebSocketInstance, IWebSocketMessageEvent, IdTuple, Immutable, InitialDocumentStateServerMsg, Json, JsonArray, JsonObject, JsonScalar, LegacyConnectionStatus, LiveList, LiveListUpdate, LiveMap, LiveMapUpdate, LiveNode, LiveObject, LiveObjectUpdate, LiveStructure, LostConnectionEvent, Lson, LsonObject, NodeMap, Op, OpCode, Others, ParentToChildNodeMap, PlainLson, PlainLsonFields, PlainLsonList, PlainLsonMap, PlainLsonObject, RejectedStorageOpServerMsg, Resolve, Room, RoomInitializers, RoomStateServerMsg, SerializedChild, SerializedCrdt, SerializedList, SerializedMap, SerializedObject, SerializedRegister, SerializedRootObject, ServerMsg, ServerMsgCode, SetParentKeyOp, Status, StorageStatus, StorageUpdate, ThreadData, ToImmutable, ToJson, UnsubscribeCallback, UpdateObjectOp, UpdatePresenceClientMsg, UpdatePresenceServerMsg, UpdateStorageClientMsg, UpdateStorageServerMsg, UpdateYDocClientMsg, User, UserJoinServerMsg, UserLeftServerMsg, WebsocketCloseCodes, asPos, assert, assertNever, b64decode, fancyConsole as console, createAsyncCache, createClient, createCommentsApi, deprecate, deprecateIf, detectDupes, errorIf, freeze, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, nn, patchLiveObjectKey, shallow, throwUsageError, toPlainLson, tryParseJson, withTimeout };
|
|
2329
|
+
export { AckOp, AsyncCache, AsyncState, AsyncStateError, AsyncStateInitial, AsyncStateLoading, AsyncStateResolved, AsyncStateSuccess, BaseAuthResult, BaseMetadata, BaseUserMeta, BroadcastEventClientMsg, BroadcastOptions, BroadcastedEventServerMsg, Client, ClientMsg, ClientMsgCode, CommentBody, CommentBodyElement, CommentBodyLink, CommentBodyMention, CommentBodyParagraph, CommentBodyText, CommentData, CommentReaction, CommentsApi, CrdtType, CreateChildOp, CreateListOp, CreateMapOp, CreateObjectOp, CreateOp, CreateRegisterOp, CreateRootObjectOp, CustomAuthenticationResult, Delegates, DeleteCrdtOp, DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, EnsureJson, EventSource, FetchStorageClientMsg, FetchYDocClientMsg, History, IWebSocket, IWebSocketCloseEvent, IWebSocketEvent, IWebSocketInstance, IWebSocketMessageEvent, IdTuple, Immutable, InitialDocumentStateServerMsg, Json, JsonArray, JsonObject, JsonScalar, LegacyConnectionStatus, LiveList, LiveListUpdate, LiveMap, LiveMapUpdate, LiveNode, LiveObject, LiveObjectUpdate, LiveStructure, LostConnectionEvent, Lson, LsonObject, NodeMap, Op, OpCode, Others, ParentToChildNodeMap, PlainLson, PlainLsonFields, PlainLsonList, PlainLsonMap, PlainLsonObject, RejectedStorageOpServerMsg, Resolve, Room, RoomEventMessage, RoomInitializers, RoomStateServerMsg, SerializedChild, SerializedCrdt, SerializedList, SerializedMap, SerializedObject, SerializedRegister, SerializedRootObject, ServerMsg, ServerMsgCode, SetParentKeyOp, Status, StorageStatus, StorageUpdate, ThreadData, ToImmutable, ToJson, UnsubscribeCallback, UpdateObjectOp, UpdatePresenceClientMsg, UpdatePresenceServerMsg, UpdateStorageClientMsg, UpdateStorageServerMsg, UpdateYDocClientMsg, User, UserJoinServerMsg, UserLeftServerMsg, WebsocketCloseCodes, YDocUpdateServerMsg, asPos, assert, assertNever, b64decode, fancyConsole as console, createAsyncCache, createClient, createCommentsApi, deprecate, deprecateIf, detectDupes, errorIf, freeze, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, nn, patchLiveObjectKey, shallow, throwUsageError, toPlainLson, tryParseJson, withTimeout };
|
package/dist/index.d.ts
CHANGED
|
@@ -681,6 +681,11 @@ declare type CommentBody = {
|
|
|
681
681
|
content: CommentBodyBlockElement[];
|
|
682
682
|
};
|
|
683
683
|
|
|
684
|
+
declare type CommentReaction = {
|
|
685
|
+
emoji: string;
|
|
686
|
+
userId: string;
|
|
687
|
+
createdAt: string;
|
|
688
|
+
};
|
|
684
689
|
/**
|
|
685
690
|
* Represents a comment.
|
|
686
691
|
*/
|
|
@@ -692,6 +697,7 @@ declare type CommentData = {
|
|
|
692
697
|
userId: string;
|
|
693
698
|
createdAt: string;
|
|
694
699
|
editedAt?: string;
|
|
700
|
+
reactions: CommentReaction[];
|
|
695
701
|
} & ({
|
|
696
702
|
body: CommentBody;
|
|
697
703
|
deletedAt?: never;
|
|
@@ -742,6 +748,16 @@ declare type CommentsApi<ThreadMetadata extends BaseMetadata> = {
|
|
|
742
748
|
threadId: string;
|
|
743
749
|
commentId: string;
|
|
744
750
|
}): Promise<void>;
|
|
751
|
+
addReaction(options: {
|
|
752
|
+
threadId: string;
|
|
753
|
+
commentId: string;
|
|
754
|
+
emoji: string;
|
|
755
|
+
}): Promise<CommentData>;
|
|
756
|
+
removeReaction(options: {
|
|
757
|
+
threadId: string;
|
|
758
|
+
commentId: string;
|
|
759
|
+
emoji: string;
|
|
760
|
+
}): Promise<CommentData>;
|
|
745
761
|
};
|
|
746
762
|
declare function createCommentsApi<ThreadMetadata extends BaseMetadata>(roomId: string, getAuthValue: () => Promise<AuthValue>, { serverEndpoint }: Options): CommentsApi<ThreadMetadata>;
|
|
747
763
|
|
|
@@ -924,6 +940,64 @@ declare type Delegates<T extends BaseAuthResult> = {
|
|
|
924
940
|
createSocket: (authValue: T) => IWebSocketInstance;
|
|
925
941
|
};
|
|
926
942
|
|
|
943
|
+
declare enum ClientMsgCode {
|
|
944
|
+
UPDATE_PRESENCE = 100,
|
|
945
|
+
BROADCAST_EVENT = 103,
|
|
946
|
+
FETCH_STORAGE = 200,
|
|
947
|
+
UPDATE_STORAGE = 201,
|
|
948
|
+
FETCH_YDOC = 300,
|
|
949
|
+
UPDATE_YDOC = 301
|
|
950
|
+
}
|
|
951
|
+
/**
|
|
952
|
+
* Messages that can be sent from the client to the server.
|
|
953
|
+
*/
|
|
954
|
+
declare type ClientMsg<TPresence extends JsonObject, TRoomEvent extends Json> = BroadcastEventClientMsg<TRoomEvent> | UpdatePresenceClientMsg<TPresence> | UpdateStorageClientMsg | FetchStorageClientMsg | FetchYDocClientMsg | UpdateYDocClientMsg;
|
|
955
|
+
declare type BroadcastEventClientMsg<TRoomEvent extends Json> = {
|
|
956
|
+
type: ClientMsgCode.BROADCAST_EVENT;
|
|
957
|
+
event: TRoomEvent;
|
|
958
|
+
};
|
|
959
|
+
declare type UpdatePresenceClientMsg<TPresence extends JsonObject> = {
|
|
960
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
961
|
+
/**
|
|
962
|
+
* Set this to any number to signify that this is a Full Presence™
|
|
963
|
+
* update, not a patch.
|
|
964
|
+
*
|
|
965
|
+
* The numeric value itself no longer has specific meaning. Historically,
|
|
966
|
+
* this field was intended so that clients could ignore these broadcasted
|
|
967
|
+
* full presence messages, but it turned out that getting a full presence
|
|
968
|
+
* "keyframe" from time to time was useful.
|
|
969
|
+
*
|
|
970
|
+
* So nowadays, the presence (pun intended) of this `targetActor` field
|
|
971
|
+
* is a backward-compatible way of expressing that the `data` contains
|
|
972
|
+
* all presence fields, and isn't a partial "patch".
|
|
973
|
+
*/
|
|
974
|
+
readonly targetActor: number;
|
|
975
|
+
readonly data: TPresence;
|
|
976
|
+
} | {
|
|
977
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
978
|
+
/**
|
|
979
|
+
* Absence of the `targetActor` field signifies that this is a Partial
|
|
980
|
+
* Presence™ "patch".
|
|
981
|
+
*/
|
|
982
|
+
readonly targetActor?: undefined;
|
|
983
|
+
readonly data: Partial<TPresence>;
|
|
984
|
+
};
|
|
985
|
+
declare type UpdateStorageClientMsg = {
|
|
986
|
+
readonly type: ClientMsgCode.UPDATE_STORAGE;
|
|
987
|
+
readonly ops: Op[];
|
|
988
|
+
};
|
|
989
|
+
declare type FetchStorageClientMsg = {
|
|
990
|
+
readonly type: ClientMsgCode.FETCH_STORAGE;
|
|
991
|
+
};
|
|
992
|
+
declare type FetchYDocClientMsg = {
|
|
993
|
+
readonly type: ClientMsgCode.FETCH_YDOC;
|
|
994
|
+
readonly vector: string;
|
|
995
|
+
};
|
|
996
|
+
declare type UpdateYDocClientMsg = {
|
|
997
|
+
readonly type: ClientMsgCode.UPDATE_YDOC;
|
|
998
|
+
readonly update: string;
|
|
999
|
+
};
|
|
1000
|
+
|
|
927
1001
|
declare type IdTuple<T> = [id: string, value: T];
|
|
928
1002
|
declare enum CrdtType {
|
|
929
1003
|
OBJECT = 0,
|
|
@@ -983,7 +1057,7 @@ declare enum ServerMsgCode {
|
|
|
983
1057
|
/**
|
|
984
1058
|
* Messages that can be sent from the server to the client.
|
|
985
1059
|
*/
|
|
986
|
-
declare type ServerMsg<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = UpdatePresenceServerMsg<TPresence> | UserJoinServerMsg<TUserMeta> | UserLeftServerMsg | BroadcastedEventServerMsg<TRoomEvent> | RoomStateServerMsg<TUserMeta> | InitialDocumentStateServerMsg | UpdateStorageServerMsg | RejectedStorageOpServerMsg |
|
|
1060
|
+
declare type ServerMsg<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = UpdatePresenceServerMsg<TPresence> | UserJoinServerMsg<TUserMeta> | UserLeftServerMsg | BroadcastedEventServerMsg<TRoomEvent> | RoomStateServerMsg<TUserMeta> | InitialDocumentStateServerMsg | UpdateStorageServerMsg | RejectedStorageOpServerMsg | YDocUpdateServerMsg | CommentsEventServerMsg;
|
|
987
1061
|
declare type CommentsEventServerMsg = ThreadCreatedEvent | ThreadMetadataUpdatedEvent | CommentCreatedEvent | CommentEditedEvent | CommentDeletedEvent;
|
|
988
1062
|
declare type ThreadCreatedEvent = {
|
|
989
1063
|
type: ServerMsgCode.THREAD_CREATED;
|
|
@@ -1094,7 +1168,7 @@ declare type UserLeftServerMsg = {
|
|
|
1094
1168
|
* Sent by the WebSocket server when the ydoc is updated or when requested based on stateVector passed.
|
|
1095
1169
|
* Contains a base64 encoded update
|
|
1096
1170
|
*/
|
|
1097
|
-
declare type
|
|
1171
|
+
declare type YDocUpdateServerMsg = {
|
|
1098
1172
|
readonly type: ServerMsgCode.UPDATE_YDOC;
|
|
1099
1173
|
readonly update: string;
|
|
1100
1174
|
readonly isSync: boolean;
|
|
@@ -1232,13 +1306,19 @@ declare type OthersEvent<TPresence extends JsonObject, TUserMeta extends BaseUse
|
|
|
1232
1306
|
type: "reset";
|
|
1233
1307
|
};
|
|
1234
1308
|
|
|
1235
|
-
declare type
|
|
1309
|
+
declare type RoomEventMessage<TPresence extends JsonObject, TUserMeta extends BaseUserMeta, TRoomEvent extends Json> = {
|
|
1236
1310
|
/**
|
|
1237
1311
|
* The connection ID of the client that sent the event.
|
|
1238
1312
|
* If this message was broadcast from the server (via the REST API), then
|
|
1239
1313
|
* this value will be -1.
|
|
1240
1314
|
*/
|
|
1241
1315
|
connectionId: number;
|
|
1316
|
+
/**
|
|
1317
|
+
* The User (from the others list) that sent the event.
|
|
1318
|
+
* If this message was broadcast from the server (via the REST API), then
|
|
1319
|
+
* this value will be null.
|
|
1320
|
+
*/
|
|
1321
|
+
user: User<TPresence, TUserMeta> | null;
|
|
1242
1322
|
event: TRoomEvent;
|
|
1243
1323
|
};
|
|
1244
1324
|
declare type StorageStatus = "not-loaded" | "loading" | "synchronizing" | "synchronized";
|
|
@@ -1372,7 +1452,7 @@ declare type SubscribeFn<TPresence extends JsonObject, _TStorage extends LsonObj
|
|
|
1372
1452
|
* });
|
|
1373
1453
|
*
|
|
1374
1454
|
*/
|
|
1375
|
-
(type: "event", listener: Callback<
|
|
1455
|
+
(type: "event", listener: Callback<RoomEventMessage<TPresence, TUserMeta, TRoomEvent>>): () => void;
|
|
1376
1456
|
/**
|
|
1377
1457
|
* Subscribe to errors thrown in the room.
|
|
1378
1458
|
*
|
|
@@ -1612,10 +1692,7 @@ declare type Room<TPresence extends JsonObject, TStorage extends LsonObject, TUs
|
|
|
1612
1692
|
readonly connection: Observable<LegacyConnectionStatus>;
|
|
1613
1693
|
readonly status: Observable<Status>;
|
|
1614
1694
|
readonly lostConnection: Observable<LostConnectionEvent>;
|
|
1615
|
-
readonly customEvent: Observable<
|
|
1616
|
-
connectionId: number;
|
|
1617
|
-
event: TRoomEvent;
|
|
1618
|
-
}>;
|
|
1695
|
+
readonly customEvent: Observable<RoomEventMessage<TPresence, TUserMeta, TRoomEvent>>;
|
|
1619
1696
|
readonly self: Observable<User<TPresence, TUserMeta>>;
|
|
1620
1697
|
readonly myPresence: Observable<TPresence>;
|
|
1621
1698
|
readonly others: Observable<{
|
|
@@ -1632,7 +1709,7 @@ declare type Room<TPresence extends JsonObject, TStorage extends LsonObject, TUs
|
|
|
1632
1709
|
*/
|
|
1633
1710
|
readonly storageDidLoad: Observable<void>;
|
|
1634
1711
|
readonly storageStatus: Observable<StorageStatus>;
|
|
1635
|
-
readonly ydoc: Observable<
|
|
1712
|
+
readonly ydoc: Observable<YDocUpdateServerMsg | UpdateYDocClientMsg>;
|
|
1636
1713
|
readonly comments: Observable<CommentsEventServerMsg>;
|
|
1637
1714
|
};
|
|
1638
1715
|
/**
|
|
@@ -2078,64 +2155,6 @@ declare function asPos(str: string): Pos;
|
|
|
2078
2155
|
*/
|
|
2079
2156
|
declare function shallow(a: unknown, b: unknown): boolean;
|
|
2080
2157
|
|
|
2081
|
-
declare enum ClientMsgCode {
|
|
2082
|
-
UPDATE_PRESENCE = 100,
|
|
2083
|
-
BROADCAST_EVENT = 103,
|
|
2084
|
-
FETCH_STORAGE = 200,
|
|
2085
|
-
UPDATE_STORAGE = 201,
|
|
2086
|
-
FETCH_YDOC = 300,
|
|
2087
|
-
UPDATE_YDOC = 301
|
|
2088
|
-
}
|
|
2089
|
-
/**
|
|
2090
|
-
* Messages that can be sent from the client to the server.
|
|
2091
|
-
*/
|
|
2092
|
-
declare type ClientMsg<TPresence extends JsonObject, TRoomEvent extends Json> = BroadcastEventClientMsg<TRoomEvent> | UpdatePresenceClientMsg<TPresence> | UpdateStorageClientMsg | FetchStorageClientMsg | FetchYDocClientMsg | UpdateYDocClientMsg;
|
|
2093
|
-
declare type BroadcastEventClientMsg<TRoomEvent extends Json> = {
|
|
2094
|
-
type: ClientMsgCode.BROADCAST_EVENT;
|
|
2095
|
-
event: TRoomEvent;
|
|
2096
|
-
};
|
|
2097
|
-
declare type UpdatePresenceClientMsg<TPresence extends JsonObject> = {
|
|
2098
|
-
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
2099
|
-
/**
|
|
2100
|
-
* Set this to any number to signify that this is a Full Presence™
|
|
2101
|
-
* update, not a patch.
|
|
2102
|
-
*
|
|
2103
|
-
* The numeric value itself no longer has specific meaning. Historically,
|
|
2104
|
-
* this field was intended so that clients could ignore these broadcasted
|
|
2105
|
-
* full presence messages, but it turned out that getting a full presence
|
|
2106
|
-
* "keyframe" from time to time was useful.
|
|
2107
|
-
*
|
|
2108
|
-
* So nowadays, the presence (pun intended) of this `targetActor` field
|
|
2109
|
-
* is a backward-compatible way of expressing that the `data` contains
|
|
2110
|
-
* all presence fields, and isn't a partial "patch".
|
|
2111
|
-
*/
|
|
2112
|
-
readonly targetActor: number;
|
|
2113
|
-
readonly data: TPresence;
|
|
2114
|
-
} | {
|
|
2115
|
-
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
2116
|
-
/**
|
|
2117
|
-
* Absence of the `targetActor` field signifies that this is a Partial
|
|
2118
|
-
* Presence™ "patch".
|
|
2119
|
-
*/
|
|
2120
|
-
readonly targetActor?: undefined;
|
|
2121
|
-
readonly data: Partial<TPresence>;
|
|
2122
|
-
};
|
|
2123
|
-
declare type UpdateStorageClientMsg = {
|
|
2124
|
-
readonly type: ClientMsgCode.UPDATE_STORAGE;
|
|
2125
|
-
readonly ops: Op[];
|
|
2126
|
-
};
|
|
2127
|
-
declare type FetchStorageClientMsg = {
|
|
2128
|
-
readonly type: ClientMsgCode.FETCH_STORAGE;
|
|
2129
|
-
};
|
|
2130
|
-
declare type FetchYDocClientMsg = {
|
|
2131
|
-
readonly type: ClientMsgCode.FETCH_YDOC;
|
|
2132
|
-
readonly vector: string;
|
|
2133
|
-
};
|
|
2134
|
-
declare type UpdateYDocClientMsg = {
|
|
2135
|
-
readonly type: ClientMsgCode.UPDATE_YDOC;
|
|
2136
|
-
readonly update: string;
|
|
2137
|
-
};
|
|
2138
|
-
|
|
2139
2158
|
declare type JsonTreeNode = {
|
|
2140
2159
|
readonly type: "Json";
|
|
2141
2160
|
readonly id: string;
|
|
@@ -2265,6 +2284,14 @@ declare type ClientToPanelMessage =
|
|
|
2265
2284
|
storage?: readonly LsonTreeNode[];
|
|
2266
2285
|
me?: UserTreeNode;
|
|
2267
2286
|
others?: readonly UserTreeNode[];
|
|
2287
|
+
}
|
|
2288
|
+
/**
|
|
2289
|
+
* Sent whenever the ydoc is updated
|
|
2290
|
+
*/
|
|
2291
|
+
| {
|
|
2292
|
+
msg: "room::sync::ydoc";
|
|
2293
|
+
roomId: string;
|
|
2294
|
+
update: YDocUpdateServerMsg | UpdateYDocClientMsg;
|
|
2268
2295
|
};
|
|
2269
2296
|
declare type FullPanelToClientMessage = PanelToClientMessage & {
|
|
2270
2297
|
source: "liveblocks-devtools-panel";
|
|
@@ -2299,4 +2326,4 @@ declare type EnsureJson<T> = [
|
|
|
2299
2326
|
[K in keyof T]: EnsureJson<T[K]>;
|
|
2300
2327
|
};
|
|
2301
2328
|
|
|
2302
|
-
export { AckOp, AsyncCache, AsyncState, AsyncStateError, AsyncStateInitial, AsyncStateLoading, AsyncStateResolved, AsyncStateSuccess, BaseAuthResult, BaseMetadata, BaseUserMeta, BroadcastEventClientMsg, BroadcastOptions, BroadcastedEventServerMsg, Client, ClientMsg, ClientMsgCode, CommentBody, CommentBodyElement, CommentBodyLink, CommentBodyMention, CommentBodyParagraph, CommentBodyText, CommentData, CommentsApi, CrdtType, CreateChildOp, CreateListOp, CreateMapOp, CreateObjectOp, CreateOp, CreateRegisterOp, CreateRootObjectOp, CustomAuthenticationResult, Delegates, DeleteCrdtOp, DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, EnsureJson, EventSource, FetchStorageClientMsg, FetchYDocClientMsg, History, IWebSocket, IWebSocketCloseEvent, IWebSocketEvent, IWebSocketInstance, IWebSocketMessageEvent, IdTuple, Immutable, InitialDocumentStateServerMsg, Json, JsonArray, JsonObject, JsonScalar, LegacyConnectionStatus, LiveList, LiveListUpdate, LiveMap, LiveMapUpdate, LiveNode, LiveObject, LiveObjectUpdate, LiveStructure, LostConnectionEvent, Lson, LsonObject, NodeMap, Op, OpCode, Others, ParentToChildNodeMap, PlainLson, PlainLsonFields, PlainLsonList, PlainLsonMap, PlainLsonObject, RejectedStorageOpServerMsg, Resolve, Room, RoomInitializers, RoomStateServerMsg, SerializedChild, SerializedCrdt, SerializedList, SerializedMap, SerializedObject, SerializedRegister, SerializedRootObject, ServerMsg, ServerMsgCode, SetParentKeyOp, Status, StorageStatus, StorageUpdate, ThreadData, ToImmutable, ToJson, UnsubscribeCallback, UpdateObjectOp, UpdatePresenceClientMsg, UpdatePresenceServerMsg, UpdateStorageClientMsg, UpdateStorageServerMsg, UpdateYDocClientMsg, User, UserJoinServerMsg, UserLeftServerMsg, WebsocketCloseCodes, asPos, assert, assertNever, b64decode, fancyConsole as console, createAsyncCache, createClient, createCommentsApi, deprecate, deprecateIf, detectDupes, errorIf, freeze, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, nn, patchLiveObjectKey, shallow, throwUsageError, toPlainLson, tryParseJson, withTimeout };
|
|
2329
|
+
export { AckOp, AsyncCache, AsyncState, AsyncStateError, AsyncStateInitial, AsyncStateLoading, AsyncStateResolved, AsyncStateSuccess, BaseAuthResult, BaseMetadata, BaseUserMeta, BroadcastEventClientMsg, BroadcastOptions, BroadcastedEventServerMsg, Client, ClientMsg, ClientMsgCode, CommentBody, CommentBodyElement, CommentBodyLink, CommentBodyMention, CommentBodyParagraph, CommentBodyText, CommentData, CommentReaction, CommentsApi, CrdtType, CreateChildOp, CreateListOp, CreateMapOp, CreateObjectOp, CreateOp, CreateRegisterOp, CreateRootObjectOp, CustomAuthenticationResult, Delegates, DeleteCrdtOp, DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, EnsureJson, EventSource, FetchStorageClientMsg, FetchYDocClientMsg, History, IWebSocket, IWebSocketCloseEvent, IWebSocketEvent, IWebSocketInstance, IWebSocketMessageEvent, IdTuple, Immutable, InitialDocumentStateServerMsg, Json, JsonArray, JsonObject, JsonScalar, LegacyConnectionStatus, LiveList, LiveListUpdate, LiveMap, LiveMapUpdate, LiveNode, LiveObject, LiveObjectUpdate, LiveStructure, LostConnectionEvent, Lson, LsonObject, NodeMap, Op, OpCode, Others, ParentToChildNodeMap, PlainLson, PlainLsonFields, PlainLsonList, PlainLsonMap, PlainLsonObject, RejectedStorageOpServerMsg, Resolve, Room, RoomEventMessage, RoomInitializers, RoomStateServerMsg, SerializedChild, SerializedCrdt, SerializedList, SerializedMap, SerializedObject, SerializedRegister, SerializedRootObject, ServerMsg, ServerMsgCode, SetParentKeyOp, Status, StorageStatus, StorageUpdate, ThreadData, ToImmutable, ToJson, UnsubscribeCallback, UpdateObjectOp, UpdatePresenceClientMsg, UpdatePresenceServerMsg, UpdateStorageClientMsg, UpdateStorageServerMsg, UpdateYDocClientMsg, User, UserJoinServerMsg, UserLeftServerMsg, WebsocketCloseCodes, YDocUpdateServerMsg, asPos, assert, assertNever, b64decode, fancyConsole as console, createAsyncCache, createClient, createCommentsApi, deprecate, deprecateIf, detectDupes, errorIf, freeze, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, nn, patchLiveObjectKey, shallow, throwUsageError, toPlainLson, tryParseJson, withTimeout };
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ var __export = (target, all) => {
|
|
|
6
6
|
|
|
7
7
|
// src/version.ts
|
|
8
8
|
var PKG_NAME = "@liveblocks/core";
|
|
9
|
-
var PKG_VERSION = "1.
|
|
9
|
+
var PKG_VERSION = "1.4.0-test1";
|
|
10
10
|
var PKG_FORMAT = "cjs";
|
|
11
11
|
|
|
12
12
|
// src/dupe-detection.ts
|
|
@@ -1542,9 +1542,18 @@ function startSyncStream(room) {
|
|
|
1542
1542
|
room.events.storage.subscribe(() => partialSyncStorage(room)),
|
|
1543
1543
|
// Any time "me" or "others" updates, send the new values accordingly
|
|
1544
1544
|
room.events.self.subscribe(() => partialSyncMe(room)),
|
|
1545
|
-
room.events.others.subscribe(() => partialSyncOthers(room))
|
|
1545
|
+
room.events.others.subscribe(() => partialSyncOthers(room)),
|
|
1546
|
+
// Any time ydoc is updated, forward the update
|
|
1547
|
+
room.events.ydoc.subscribe((update) => syncYdocUpdate(room, update))
|
|
1546
1548
|
]);
|
|
1547
1549
|
}
|
|
1550
|
+
function syncYdocUpdate(room, update) {
|
|
1551
|
+
sendToPanel({
|
|
1552
|
+
msg: "room::sync::ydoc",
|
|
1553
|
+
roomId: room.id,
|
|
1554
|
+
update
|
|
1555
|
+
});
|
|
1556
|
+
}
|
|
1548
1557
|
function partialSyncConnection(room) {
|
|
1549
1558
|
sendToPanel({
|
|
1550
1559
|
msg: "room::sync::partial",
|
|
@@ -1586,6 +1595,7 @@ function fullSync(room) {
|
|
|
1586
1595
|
const root = room.getStorageSnapshot();
|
|
1587
1596
|
const me = room.__internal.getSelf_forDevTools();
|
|
1588
1597
|
const others = room.__internal.getOthers_forDevTools();
|
|
1598
|
+
room.fetchYDoc("");
|
|
1589
1599
|
sendToPanel({
|
|
1590
1600
|
msg: "room::sync::full",
|
|
1591
1601
|
roomId: room.id,
|
|
@@ -1821,13 +1831,47 @@ function createCommentsApi(roomId, getAuthValue, { serverEndpoint }) {
|
|
|
1821
1831
|
}
|
|
1822
1832
|
);
|
|
1823
1833
|
}
|
|
1834
|
+
function addReaction({
|
|
1835
|
+
threadId,
|
|
1836
|
+
commentId,
|
|
1837
|
+
emoji
|
|
1838
|
+
}) {
|
|
1839
|
+
return fetchJson(
|
|
1840
|
+
`/threads/${encodeURIComponent(threadId)}/comments/${encodeURIComponent(
|
|
1841
|
+
commentId
|
|
1842
|
+
)}/reactions`,
|
|
1843
|
+
{
|
|
1844
|
+
method: "POST",
|
|
1845
|
+
headers: {
|
|
1846
|
+
"Content-Type": "application/json"
|
|
1847
|
+
},
|
|
1848
|
+
body: JSON.stringify({ emoji })
|
|
1849
|
+
}
|
|
1850
|
+
);
|
|
1851
|
+
}
|
|
1852
|
+
function removeReaction({
|
|
1853
|
+
threadId,
|
|
1854
|
+
commentId,
|
|
1855
|
+
emoji
|
|
1856
|
+
}) {
|
|
1857
|
+
return fetchJson(
|
|
1858
|
+
`/threads/${encodeURIComponent(threadId)}/comments/${encodeURIComponent(
|
|
1859
|
+
commentId
|
|
1860
|
+
)}/reactions/${encodeURIComponent(emoji)}`,
|
|
1861
|
+
{
|
|
1862
|
+
method: "DELETE"
|
|
1863
|
+
}
|
|
1864
|
+
);
|
|
1865
|
+
}
|
|
1824
1866
|
return {
|
|
1825
1867
|
getThreads,
|
|
1826
1868
|
createThread,
|
|
1827
1869
|
editThreadMetadata,
|
|
1828
1870
|
createComment,
|
|
1829
1871
|
editComment,
|
|
1830
|
-
deleteComment
|
|
1872
|
+
deleteComment,
|
|
1873
|
+
addReaction,
|
|
1874
|
+
removeReaction
|
|
1831
1875
|
};
|
|
1832
1876
|
}
|
|
1833
1877
|
|
|
@@ -5261,8 +5305,10 @@ function createRoom(options, config) {
|
|
|
5261
5305
|
break;
|
|
5262
5306
|
}
|
|
5263
5307
|
case 103 /* BROADCASTED_EVENT */: {
|
|
5308
|
+
const others = context.others.current;
|
|
5264
5309
|
eventHub.customEvent.notify({
|
|
5265
5310
|
connectionId: message.actor,
|
|
5311
|
+
user: message.actor < 0 ? null : _nullishCoalesce(others.find((u) => u.connectionId === message.actor), () => ( null)),
|
|
5266
5312
|
event: message.event
|
|
5267
5313
|
});
|
|
5268
5314
|
break;
|
|
@@ -5405,10 +5451,12 @@ ${Array.from(traces).join("\n\n")}`
|
|
|
5405
5451
|
return messages;
|
|
5406
5452
|
}
|
|
5407
5453
|
function updateYDoc(update) {
|
|
5408
|
-
|
|
5454
|
+
const clientMsg = {
|
|
5409
5455
|
type: 301 /* UPDATE_YDOC */,
|
|
5410
5456
|
update
|
|
5411
|
-
}
|
|
5457
|
+
};
|
|
5458
|
+
context.buffer.messages.push(clientMsg);
|
|
5459
|
+
eventHub.ydoc.notify(clientMsg);
|
|
5412
5460
|
flushNowOrSoon();
|
|
5413
5461
|
}
|
|
5414
5462
|
function broadcastEvent(event, options2 = {
|