@liveblocks/core 3.14.0-pre3 → 3.14.0-types1

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.cjs 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 = "3.14.0-pre3";
9
+ var PKG_VERSION = "3.14.0-types1";
10
10
  var PKG_FORMAT = "cjs";
11
11
 
12
12
  // src/dupe-detection.ts
@@ -3143,12 +3143,7 @@ var ServerMsgCode = Object.freeze({
3143
3143
  BROADCASTED_EVENT: 103,
3144
3144
  ROOM_STATE: 104,
3145
3145
  // For Storage
3146
- STORAGE_STATE_V7: 200,
3147
- // Only sent in V7
3148
- STORAGE_CHUNK: 210,
3149
- // Used in V8+
3150
- STORAGE_STREAM_END: 211,
3151
- // Used in V8+
3146
+ STORAGE_STATE: 200,
3152
3147
  UPDATE_STORAGE: 201,
3153
3148
  // For Yjs Docs
3154
3149
  UPDATE_YDOC: 300,
@@ -6237,60 +6232,6 @@ function isMapStorageNode(node) {
6237
6232
  function isRegisterStorageNode(node) {
6238
6233
  return node[1].type === CrdtType.REGISTER;
6239
6234
  }
6240
- function isCompactRootNode(node) {
6241
- return node[0] === "root";
6242
- }
6243
- function* compactNodesToNodeStream(compactNodes) {
6244
- for (const cnode of compactNodes) {
6245
- if (isCompactRootNode(cnode)) {
6246
- yield [cnode[0], { type: CrdtType.OBJECT, data: cnode[1] }];
6247
- continue;
6248
- }
6249
- switch (cnode[1]) {
6250
- case CrdtType.OBJECT:
6251
- yield [cnode[0], { type: CrdtType.OBJECT, parentId: cnode[2], parentKey: cnode[3], data: cnode[4] }];
6252
- break;
6253
- case CrdtType.LIST:
6254
- yield [cnode[0], { type: CrdtType.LIST, parentId: cnode[2], parentKey: cnode[3] }];
6255
- break;
6256
- case CrdtType.MAP:
6257
- yield [cnode[0], { type: CrdtType.MAP, parentId: cnode[2], parentKey: cnode[3] }];
6258
- break;
6259
- case CrdtType.REGISTER:
6260
- yield [cnode[0], { type: CrdtType.REGISTER, parentId: cnode[2], parentKey: cnode[3], data: cnode[4] }];
6261
- break;
6262
- default:
6263
- }
6264
- }
6265
- }
6266
- function* nodeStreamToCompactNodes(nodes) {
6267
- for (const node of nodes) {
6268
- if (isObjectStorageNode(node)) {
6269
- if (isRootStorageNode(node)) {
6270
- const id = node[0];
6271
- const crdt = node[1];
6272
- yield [id, crdt.data];
6273
- } else {
6274
- const id = node[0];
6275
- const crdt = node[1];
6276
- yield [id, CrdtType.OBJECT, crdt.parentId, crdt.parentKey, crdt.data];
6277
- }
6278
- } else if (isListStorageNode(node)) {
6279
- const id = node[0];
6280
- const crdt = node[1];
6281
- yield [id, CrdtType.LIST, crdt.parentId, crdt.parentKey];
6282
- } else if (isMapStorageNode(node)) {
6283
- const id = node[0];
6284
- const crdt = node[1];
6285
- yield [id, CrdtType.MAP, crdt.parentId, crdt.parentKey];
6286
- } else if (isRegisterStorageNode(node)) {
6287
- const id = node[0];
6288
- const crdt = node[1];
6289
- yield [id, CrdtType.REGISTER, crdt.parentId, crdt.parentKey, crdt.data];
6290
- } else {
6291
- }
6292
- }
6293
- }
6294
6235
 
6295
6236
  // src/crdts/LiveRegister.ts
6296
6237
  var LiveRegister = class _LiveRegister extends AbstractCrdt {
@@ -7770,8 +7711,8 @@ var LiveObject = (_class2 = class _LiveObject extends AbstractCrdt {
7770
7711
  return [root, parentToChildren];
7771
7712
  }
7772
7713
  /** @private Do not use this API directly */
7773
- static _fromItems(nodes, pool) {
7774
- const [root, parentToChildren] = _LiveObject.#buildRootAndParentToChildren(nodes);
7714
+ static _fromItems(items, pool) {
7715
+ const [root, parentToChildren] = _LiveObject.#buildRootAndParentToChildren(items);
7775
7716
  return _LiveObject._deserialize(
7776
7717
  ["root", root],
7777
7718
  parentToChildren,
@@ -8381,7 +8322,10 @@ function getTreesDiffOperations(currentItems, newItems) {
8381
8322
  const ops = [];
8382
8323
  currentItems.forEach((_, id) => {
8383
8324
  if (!newItems.get(id)) {
8384
- ops.push({ type: OpCode.DELETE_CRDT, id });
8325
+ ops.push({
8326
+ type: OpCode.DELETE_CRDT,
8327
+ id
8328
+ });
8385
8329
  }
8386
8330
  });
8387
8331
  newItems.forEach((crdt, id) => {
@@ -8881,23 +8825,6 @@ function installBackgroundTabSpy() {
8881
8825
  };
8882
8826
  return [inBackgroundSince, unsub];
8883
8827
  }
8884
- function makeNodeMapBuffer() {
8885
- let map = /* @__PURE__ */ new Map();
8886
- return {
8887
- /** Append a "page" of nodes to the current NodeMap buffer. */
8888
- append(chunk2) {
8889
- for (const [id, node] of chunk2) {
8890
- map.set(id, node);
8891
- }
8892
- },
8893
- /** Return the contents of the current NodeMap buffer, and create a fresh new one. */
8894
- take() {
8895
- const result = map;
8896
- map = /* @__PURE__ */ new Map();
8897
- return result;
8898
- }
8899
- };
8900
- }
8901
8828
  function createRoom(options, config) {
8902
8829
  const roomId = config.roomId;
8903
8830
  const initialPresence = options.initialPresence;
@@ -8958,7 +8885,6 @@ function createRoom(options, config) {
8958
8885
  activeBatch: null,
8959
8886
  unacknowledgedOps: /* @__PURE__ */ new Map()
8960
8887
  };
8961
- const nodeMapBuffer = makeNodeMapBuffer();
8962
8888
  let lastTokenKey;
8963
8889
  function onStatusDidChange(newStatus) {
8964
8890
  const authValue = managedSocket.authValue;
@@ -9240,14 +9166,14 @@ function createRoom(options, config) {
9240
9166
  self,
9241
9167
  (me) => me !== null ? userToTreeNode("Me", me) : null
9242
9168
  );
9243
- function createOrUpdateRootFromMessage(nodes) {
9169
+ function createOrUpdateRootFromMessage(message) {
9170
+ if (message.items.length === 0) {
9171
+ throw new Error("Internal error: cannot load storage without items");
9172
+ }
9244
9173
  if (context.root !== void 0) {
9245
- updateRoot(nodes);
9174
+ updateRoot(message.items);
9246
9175
  } else {
9247
- context.root = LiveObject._fromItems(
9248
- nodes,
9249
- context.pool
9250
- );
9176
+ context.root = LiveObject._fromItems(message.items, context.pool);
9251
9177
  }
9252
9178
  const canWrite = _nullishCoalesce(_optionalChain([self, 'access', _188 => _188.get, 'call', _189 => _189(), 'optionalAccess', _190 => _190.canWrite]), () => ( true));
9253
9179
  const stackSizeBefore = context.undoStack.length;
@@ -9264,10 +9190,7 @@ function createRoom(options, config) {
9264
9190
  }
9265
9191
  context.undoStack.length = stackSizeBefore;
9266
9192
  }
9267
- function updateRoot(nodes) {
9268
- if (nodes.size === 0) {
9269
- throw new Error("Internal error: cannot load storage without items");
9270
- }
9193
+ function updateRoot(items) {
9271
9194
  if (context.root === void 0) {
9272
9195
  return;
9273
9196
  }
@@ -9275,7 +9198,10 @@ function createRoom(options, config) {
9275
9198
  for (const [id, crdt] of context.pool.nodes) {
9276
9199
  currentItems.set(id, crdt._serialize());
9277
9200
  }
9278
- const ops = getTreesDiffOperations(currentItems, nodes);
9201
+ const ops = getTreesDiffOperations(
9202
+ currentItems,
9203
+ new Map(items)
9204
+ );
9279
9205
  const result = applyRemoteOps(ops);
9280
9206
  notify(result.updates);
9281
9207
  }
@@ -9650,12 +9576,10 @@ function createRoom(options, config) {
9650
9576
  updates.others.push(onRoomStateMessage(message));
9651
9577
  break;
9652
9578
  }
9653
- case ServerMsgCode.STORAGE_CHUNK:
9654
- nodeMapBuffer.append(compactNodesToNodeStream(message.nodes));
9655
- break;
9656
- case ServerMsgCode.STORAGE_STREAM_END:
9657
- processInitialStorage(nodeMapBuffer.take());
9579
+ case ServerMsgCode.STORAGE_STATE: {
9580
+ processInitialStorage(message);
9658
9581
  break;
9582
+ }
9659
9583
  case ServerMsgCode.UPDATE_STORAGE: {
9660
9584
  const applyResult = applyRemoteOps(message.ops);
9661
9585
  for (const [key, value] of applyResult.updates.storageUpdates) {
@@ -9695,8 +9619,6 @@ function createRoom(options, config) {
9695
9619
  eventHub.comments.notify(message);
9696
9620
  break;
9697
9621
  }
9698
- case ServerMsgCode.STORAGE_STATE_V7:
9699
- // No longer used in V8
9700
9622
  default:
9701
9623
  break;
9702
9624
  }
@@ -9798,9 +9720,9 @@ function createRoom(options, config) {
9798
9720
  }
9799
9721
  let _getStorage$ = null;
9800
9722
  let _resolveStoragePromise = null;
9801
- function processInitialStorage(nodes) {
9723
+ function processInitialStorage(message) {
9802
9724
  const unacknowledgedOps = new Map(context.unacknowledgedOps);
9803
- createOrUpdateRootFromMessage(nodes);
9725
+ createOrUpdateRootFromMessage(message);
9804
9726
  applyAndSendOfflineOps(unacknowledgedOps);
9805
9727
  _optionalChain([_resolveStoragePromise, 'optionalCall', _193 => _193()]);
9806
9728
  notifyStorageStatus();
@@ -9808,10 +9730,8 @@ function createRoom(options, config) {
9808
9730
  }
9809
9731
  async function streamStorage() {
9810
9732
  if (!managedSocket.authValue) return;
9811
- const nodes = new Map(
9812
- await httpClient.streamStorage({ roomId })
9813
- );
9814
- processInitialStorage(nodes);
9733
+ const items = await httpClient.streamStorage({ roomId });
9734
+ processInitialStorage({ type: ServerMsgCode.STORAGE_STATE, items });
9815
9735
  }
9816
9736
  function refreshStorage(options2) {
9817
9737
  const messages = context.buffer.messages;
@@ -9819,7 +9739,6 @@ function createRoom(options, config) {
9819
9739
  void streamStorage();
9820
9740
  } else if (!messages.some((msg) => msg.type === ClientMsgCode.FETCH_STORAGE)) {
9821
9741
  messages.push({ type: ClientMsgCode.FETCH_STORAGE });
9822
- nodeMapBuffer.take();
9823
9742
  }
9824
9743
  if (options2.flush) {
9825
9744
  flushNowOrSoon();
@@ -10413,7 +10332,7 @@ function makeCreateSocketDelegateForRoom(roomId, baseUrl, WebSocketPolyfill, eng
10413
10332
  }
10414
10333
  const url2 = new URL(baseUrl);
10415
10334
  url2.protocol = url2.protocol === "http:" ? "ws" : "wss";
10416
- url2.pathname = "/v8";
10335
+ url2.pathname = "/v7";
10417
10336
  url2.searchParams.set("roomId", roomId);
10418
10337
  if (authValue.type === "secret") {
10419
10338
  url2.searchParams.set("tok", authValue.token.raw);
@@ -11733,7 +11652,5 @@ detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
11733
11652
 
11734
11653
 
11735
11654
 
11736
-
11737
-
11738
- exports.ClientMsgCode = ClientMsgCode; exports.CrdtType = CrdtType; exports.DefaultMap = DefaultMap; exports.Deque = Deque; exports.DerivedSignal = DerivedSignal; exports.HttpError = HttpError; exports.LiveList = LiveList; exports.LiveMap = LiveMap; exports.LiveObject = LiveObject; exports.LiveblocksError = LiveblocksError; exports.MENTION_CHARACTER = MENTION_CHARACTER; exports.MutableSignal = MutableSignal; exports.OpCode = OpCode; exports.Permission = Permission; exports.Promise_withResolvers = Promise_withResolvers; exports.ServerMsgCode = ServerMsgCode; exports.Signal = Signal; exports.SortedList = SortedList; exports.TextEditorType = TextEditorType; exports.WebsocketCloseCodes = WebsocketCloseCodes; exports.asPos = asPos; exports.assert = assert; exports.assertNever = assertNever; exports.autoRetry = autoRetry; exports.b64decode = b64decode; exports.batch = batch; exports.checkBounds = checkBounds; exports.chunk = chunk; exports.cloneLson = cloneLson; exports.compactNodesToNodeStream = compactNodesToNodeStream; exports.compactObject = compactObject; exports.console = fancy_console_exports; exports.convertToCommentData = convertToCommentData; exports.convertToCommentUserReaction = convertToCommentUserReaction; exports.convertToGroupData = convertToGroupData; exports.convertToInboxNotificationData = convertToInboxNotificationData; exports.convertToSubscriptionData = convertToSubscriptionData; exports.convertToThreadData = convertToThreadData; exports.convertToUserSubscriptionData = convertToUserSubscriptionData; exports.createClient = createClient; exports.createCommentAttachmentId = createCommentAttachmentId; exports.createCommentId = createCommentId; exports.createInboxNotificationId = createInboxNotificationId; exports.createManagedPool = createManagedPool; exports.createNotificationSettings = createNotificationSettings; exports.createThreadId = createThreadId; exports.defineAiTool = defineAiTool; exports.deprecate = deprecate; exports.deprecateIf = deprecateIf; exports.detectDupes = detectDupes; exports.entries = entries; exports.errorIf = errorIf; exports.findLastIndex = findLastIndex; exports.freeze = freeze; exports.generateUrl = generateUrl; exports.getMentionsFromCommentBody = getMentionsFromCommentBody; exports.getSubscriptionKey = getSubscriptionKey; exports.html = html; exports.htmlSafe = htmlSafe; exports.isCommentBodyLink = isCommentBodyLink; exports.isCommentBodyMention = isCommentBodyMention; exports.isCommentBodyText = isCommentBodyText; exports.isJsonArray = isJsonArray; exports.isJsonObject = isJsonObject; exports.isJsonScalar = isJsonScalar; exports.isListStorageNode = isListStorageNode; exports.isLiveNode = isLiveNode; exports.isMapStorageNode = isMapStorageNode; exports.isNotificationChannelEnabled = isNotificationChannelEnabled; exports.isNumberOperator = isNumberOperator; exports.isObjectStorageNode = isObjectStorageNode; exports.isPlainObject = isPlainObject; exports.isRegisterStorageNode = isRegisterStorageNode; exports.isRootStorageNode = isRootStorageNode; exports.isStartsWithOperator = isStartsWithOperator; exports.isUrl = isUrl; exports.kInternal = kInternal; exports.keys = keys; exports.legacy_patchImmutableObject = legacy_patchImmutableObject; exports.lsonToJson = lsonToJson; exports.makeAbortController = makeAbortController; exports.makeEventSource = makeEventSource; exports.makePoller = makePoller; exports.makePosition = makePosition; exports.mapValues = mapValues; exports.memoizeOnSuccess = memoizeOnSuccess; exports.nanoid = nanoid; exports.nn = nn; exports.nodeStreamToCompactNodes = nodeStreamToCompactNodes; exports.objectToQuery = objectToQuery; exports.patchLiveObjectKey = patchLiveObjectKey; exports.patchNotificationSettings = patchNotificationSettings; exports.raise = raise; exports.resolveMentionsInCommentBody = resolveMentionsInCommentBody; exports.sanitizeUrl = sanitizeUrl; exports.shallow = shallow; exports.shallow2 = shallow2; exports.stableStringify = stableStringify; exports.stringifyCommentBody = stringifyCommentBody; exports.throwUsageError = throwUsageError; exports.toPlainLson = toPlainLson; exports.tryParseJson = tryParseJson; exports.url = url; exports.urljoin = urljoin; exports.wait = wait; exports.warnOnce = warnOnce; exports.warnOnceIf = warnOnceIf; exports.withTimeout = withTimeout;
11655
+ exports.ClientMsgCode = ClientMsgCode; exports.CrdtType = CrdtType; exports.DefaultMap = DefaultMap; exports.Deque = Deque; exports.DerivedSignal = DerivedSignal; exports.HttpError = HttpError; exports.LiveList = LiveList; exports.LiveMap = LiveMap; exports.LiveObject = LiveObject; exports.LiveblocksError = LiveblocksError; exports.MENTION_CHARACTER = MENTION_CHARACTER; exports.MutableSignal = MutableSignal; exports.OpCode = OpCode; exports.Permission = Permission; exports.Promise_withResolvers = Promise_withResolvers; exports.ServerMsgCode = ServerMsgCode; exports.Signal = Signal; exports.SortedList = SortedList; exports.TextEditorType = TextEditorType; exports.WebsocketCloseCodes = WebsocketCloseCodes; exports.asPos = asPos; exports.assert = assert; exports.assertNever = assertNever; exports.autoRetry = autoRetry; exports.b64decode = b64decode; exports.batch = batch; exports.checkBounds = checkBounds; exports.chunk = chunk; exports.cloneLson = cloneLson; exports.compactObject = compactObject; exports.console = fancy_console_exports; exports.convertToCommentData = convertToCommentData; exports.convertToCommentUserReaction = convertToCommentUserReaction; exports.convertToGroupData = convertToGroupData; exports.convertToInboxNotificationData = convertToInboxNotificationData; exports.convertToSubscriptionData = convertToSubscriptionData; exports.convertToThreadData = convertToThreadData; exports.convertToUserSubscriptionData = convertToUserSubscriptionData; exports.createClient = createClient; exports.createCommentAttachmentId = createCommentAttachmentId; exports.createCommentId = createCommentId; exports.createInboxNotificationId = createInboxNotificationId; exports.createManagedPool = createManagedPool; exports.createNotificationSettings = createNotificationSettings; exports.createThreadId = createThreadId; exports.defineAiTool = defineAiTool; exports.deprecate = deprecate; exports.deprecateIf = deprecateIf; exports.detectDupes = detectDupes; exports.entries = entries; exports.errorIf = errorIf; exports.findLastIndex = findLastIndex; exports.freeze = freeze; exports.generateUrl = generateUrl; exports.getMentionsFromCommentBody = getMentionsFromCommentBody; exports.getSubscriptionKey = getSubscriptionKey; exports.html = html; exports.htmlSafe = htmlSafe; exports.isCommentBodyLink = isCommentBodyLink; exports.isCommentBodyMention = isCommentBodyMention; exports.isCommentBodyText = isCommentBodyText; exports.isJsonArray = isJsonArray; exports.isJsonObject = isJsonObject; exports.isJsonScalar = isJsonScalar; exports.isListStorageNode = isListStorageNode; exports.isLiveNode = isLiveNode; exports.isMapStorageNode = isMapStorageNode; exports.isNotificationChannelEnabled = isNotificationChannelEnabled; exports.isNumberOperator = isNumberOperator; exports.isObjectStorageNode = isObjectStorageNode; exports.isPlainObject = isPlainObject; exports.isRegisterStorageNode = isRegisterStorageNode; exports.isRootStorageNode = isRootStorageNode; exports.isStartsWithOperator = isStartsWithOperator; exports.isUrl = isUrl; exports.kInternal = kInternal; exports.keys = keys; exports.legacy_patchImmutableObject = legacy_patchImmutableObject; exports.lsonToJson = lsonToJson; exports.makeAbortController = makeAbortController; exports.makeEventSource = makeEventSource; exports.makePoller = makePoller; exports.makePosition = makePosition; exports.mapValues = mapValues; exports.memoizeOnSuccess = memoizeOnSuccess; exports.nanoid = nanoid; exports.nn = nn; exports.objectToQuery = objectToQuery; exports.patchLiveObjectKey = patchLiveObjectKey; exports.patchNotificationSettings = patchNotificationSettings; exports.raise = raise; exports.resolveMentionsInCommentBody = resolveMentionsInCommentBody; exports.sanitizeUrl = sanitizeUrl; exports.shallow = shallow; exports.shallow2 = shallow2; exports.stableStringify = stableStringify; exports.stringifyCommentBody = stringifyCommentBody; exports.throwUsageError = throwUsageError; exports.toPlainLson = toPlainLson; exports.tryParseJson = tryParseJson; exports.url = url; exports.urljoin = urljoin; exports.wait = wait; exports.warnOnce = warnOnce; exports.warnOnceIf = warnOnceIf; exports.withTimeout = withTimeout;
11739
11656
  //# sourceMappingURL=index.cjs.map