@liveblocks/core 1.4.0-test1 → 1.4.1-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 CHANGED
@@ -2180,8 +2180,16 @@ declare type UserTreeNode = {
2180
2180
  readonly isReadOnly: boolean;
2181
2181
  };
2182
2182
  };
2183
- declare type TreeNode = LsonTreeNode | UserTreeNode;
2183
+ declare type CustomEventTreeNode = {
2184
+ readonly type: "CustomEvent";
2185
+ readonly id: string;
2186
+ readonly key: string;
2187
+ readonly connectionId: number;
2188
+ readonly payload: Json;
2189
+ };
2190
+ declare type TreeNode = LsonTreeNode | UserTreeNode | CustomEventTreeNode;
2184
2191
 
2192
+ type DevToolsTreeNode_CustomEventTreeNode = CustomEventTreeNode;
2185
2193
  type DevToolsTreeNode_JsonTreeNode = JsonTreeNode;
2186
2194
  type DevToolsTreeNode_LiveTreeNode<TName extends `Live${string}` = `Live${string}`> = LiveTreeNode<TName>;
2187
2195
  type DevToolsTreeNode_LsonTreeNode = LsonTreeNode;
@@ -2189,6 +2197,7 @@ type DevToolsTreeNode_TreeNode = TreeNode;
2189
2197
  type DevToolsTreeNode_UserTreeNode = UserTreeNode;
2190
2198
  declare namespace DevToolsTreeNode {
2191
2199
  export {
2200
+ DevToolsTreeNode_CustomEventTreeNode as CustomEventTreeNode,
2192
2201
  DevToolsTreeNode_JsonTreeNode as JsonTreeNode,
2193
2202
  DevToolsTreeNode_LiveTreeNode as LiveTreeNode,
2194
2203
  DevToolsTreeNode_LsonTreeNode as LsonTreeNode,
@@ -2285,6 +2294,14 @@ declare type ClientToPanelMessage =
2285
2294
  me?: UserTreeNode;
2286
2295
  others?: readonly UserTreeNode[];
2287
2296
  }
2297
+ /**
2298
+ * Sent whenever an user room event is emitted in the room.
2299
+ */
2300
+ | {
2301
+ msg: "room::events::custom-event";
2302
+ roomId: string;
2303
+ event: CustomEventTreeNode;
2304
+ }
2288
2305
  /**
2289
2306
  * Sent whenever the ydoc is updated
2290
2307
  */
package/dist/index.d.ts CHANGED
@@ -2180,8 +2180,16 @@ declare type UserTreeNode = {
2180
2180
  readonly isReadOnly: boolean;
2181
2181
  };
2182
2182
  };
2183
- declare type TreeNode = LsonTreeNode | UserTreeNode;
2183
+ declare type CustomEventTreeNode = {
2184
+ readonly type: "CustomEvent";
2185
+ readonly id: string;
2186
+ readonly key: string;
2187
+ readonly connectionId: number;
2188
+ readonly payload: Json;
2189
+ };
2190
+ declare type TreeNode = LsonTreeNode | UserTreeNode | CustomEventTreeNode;
2184
2191
 
2192
+ type DevToolsTreeNode_CustomEventTreeNode = CustomEventTreeNode;
2185
2193
  type DevToolsTreeNode_JsonTreeNode = JsonTreeNode;
2186
2194
  type DevToolsTreeNode_LiveTreeNode<TName extends `Live${string}` = `Live${string}`> = LiveTreeNode<TName>;
2187
2195
  type DevToolsTreeNode_LsonTreeNode = LsonTreeNode;
@@ -2189,6 +2197,7 @@ type DevToolsTreeNode_TreeNode = TreeNode;
2189
2197
  type DevToolsTreeNode_UserTreeNode = UserTreeNode;
2190
2198
  declare namespace DevToolsTreeNode {
2191
2199
  export {
2200
+ DevToolsTreeNode_CustomEventTreeNode as CustomEventTreeNode,
2192
2201
  DevToolsTreeNode_JsonTreeNode as JsonTreeNode,
2193
2202
  DevToolsTreeNode_LiveTreeNode as LiveTreeNode,
2194
2203
  DevToolsTreeNode_LsonTreeNode as LsonTreeNode,
@@ -2285,6 +2294,14 @@ declare type ClientToPanelMessage =
2285
2294
  me?: UserTreeNode;
2286
2295
  others?: readonly UserTreeNode[];
2287
2296
  }
2297
+ /**
2298
+ * Sent whenever an user room event is emitted in the room.
2299
+ */
2300
+ | {
2301
+ msg: "room::events::custom-event";
2302
+ roomId: string;
2303
+ event: CustomEventTreeNode;
2304
+ }
2288
2305
  /**
2289
2306
  * Sent whenever the ydoc is updated
2290
2307
  */
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.4.0-test1";
9
+ var PKG_VERSION = "1.4.1-test1";
10
10
  var PKG_FORMAT = "cjs";
11
11
 
12
12
  // src/dupe-detection.ts
@@ -1544,7 +1544,11 @@ function startSyncStream(room) {
1544
1544
  room.events.self.subscribe(() => partialSyncMe(room)),
1545
1545
  room.events.others.subscribe(() => partialSyncOthers(room)),
1546
1546
  // Any time ydoc is updated, forward the update
1547
- room.events.ydoc.subscribe((update) => syncYdocUpdate(room, update))
1547
+ room.events.ydoc.subscribe((update) => syncYdocUpdate(room, update)),
1548
+ // Any time a custom room event is received, forward it
1549
+ room.events.customEvent.subscribe(
1550
+ (eventData) => forwardEvent(room, eventData)
1551
+ )
1548
1552
  ]);
1549
1553
  }
1550
1554
  function syncYdocUpdate(room, update) {
@@ -1554,6 +1558,24 @@ function syncYdocUpdate(room, update) {
1554
1558
  update
1555
1559
  });
1556
1560
  }
1561
+ var loadedAt = Date.now();
1562
+ var eventCounter = 0;
1563
+ function nextEventId() {
1564
+ return `event-${loadedAt}-${eventCounter++}`;
1565
+ }
1566
+ function forwardEvent(room, eventData) {
1567
+ sendToPanel({
1568
+ msg: "room::events::custom-event",
1569
+ roomId: room.id,
1570
+ event: {
1571
+ type: "CustomEvent",
1572
+ id: nextEventId(),
1573
+ key: "Event",
1574
+ connectionId: eventData.connectionId,
1575
+ payload: eventData.event
1576
+ }
1577
+ });
1578
+ }
1557
1579
  function partialSyncConnection(room) {
1558
1580
  sendToPanel({
1559
1581
  msg: "room::sync::partial",
@@ -2334,7 +2356,16 @@ var LiveList = class _LiveList extends AbstractCrdt {
2334
2356
  };
2335
2357
  ops.push(op);
2336
2358
  for (const item of this._items) {
2337
- ops.push(...item._toOps(this._id, item._getParentKeyOrThrow(), pool));
2359
+ const parentKey2 = item._getParentKeyOrThrow();
2360
+ const childOps = HACK_addIntentAndDeletedIdToOperation(
2361
+ item._toOps(this._id, parentKey2, pool),
2362
+ void 0
2363
+ );
2364
+ const childOpId = childOps[0].opId;
2365
+ if (childOpId !== void 0) {
2366
+ this._unacknowledgedSets.set(parentKey2, childOpId);
2367
+ }
2368
+ ops.push(...childOps);
2338
2369
  }
2339
2370
  return ops;
2340
2371
  }