@liveblocks/core 2.1.1-test2 → 2.2.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/index.mjs 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 = "2.1.1-test2";
9
+ var PKG_VERSION = "2.2.1";
10
10
  var PKG_FORMAT = "esm";
11
11
 
12
12
  // src/dupe-detection.ts
@@ -628,6 +628,9 @@ function compactObject(obj) {
628
628
  });
629
629
  return newObj;
630
630
  }
631
+ function wait(millis) {
632
+ return new Promise((res) => setTimeout(res, millis));
633
+ }
631
634
  async function withTimeout(promise, millis, errmsg) {
632
635
  let timerID;
633
636
  const timer$ = new Promise((_, reject) => {
@@ -637,13 +640,16 @@ async function withTimeout(promise, millis, errmsg) {
637
640
  });
638
641
  return Promise.race([promise, timer$]).finally(() => clearTimeout(timerID));
639
642
  }
640
- function memoize(factoryFn) {
643
+ function memoizeOnSuccess(factoryFn) {
641
644
  let cached = null;
642
645
  return () => {
643
646
  if (cached === null) {
644
- cached = { value: factoryFn() };
647
+ cached = factoryFn().catch((err) => {
648
+ cached = null;
649
+ throw err;
650
+ });
645
651
  }
646
- return cached.value;
652
+ return cached;
647
653
  };
648
654
  }
649
655
 
@@ -661,6 +667,7 @@ var ServerMsgCode = /* @__PURE__ */ ((ServerMsgCode2) => {
661
667
  ServerMsgCode2[ServerMsgCode2["THREAD_CREATED"] = 400] = "THREAD_CREATED";
662
668
  ServerMsgCode2[ServerMsgCode2["THREAD_DELETED"] = 407] = "THREAD_DELETED";
663
669
  ServerMsgCode2[ServerMsgCode2["THREAD_METADATA_UPDATED"] = 401] = "THREAD_METADATA_UPDATED";
670
+ ServerMsgCode2[ServerMsgCode2["THREAD_UPDATED"] = 408] = "THREAD_UPDATED";
664
671
  ServerMsgCode2[ServerMsgCode2["COMMENT_CREATED"] = 402] = "COMMENT_CREATED";
665
672
  ServerMsgCode2[ServerMsgCode2["COMMENT_EDITED"] = 403] = "COMMENT_EDITED";
666
673
  ServerMsgCode2[ServerMsgCode2["COMMENT_DELETED"] = 404] = "COMMENT_DELETED";
@@ -5244,6 +5251,22 @@ function createCommentsApi(roomId, getAuthValue, fetchClientApi) {
5244
5251
  }
5245
5252
  );
5246
5253
  }
5254
+ async function markThreadAsResolved({ threadId }) {
5255
+ await fetchJson(
5256
+ `/threads/${encodeURIComponent(threadId)}/mark-as-resolved`,
5257
+ {
5258
+ method: "POST"
5259
+ }
5260
+ );
5261
+ }
5262
+ async function markThreadAsUnresolved({ threadId }) {
5263
+ await fetchJson(
5264
+ `/threads/${encodeURIComponent(threadId)}/mark-as-unresolved`,
5265
+ {
5266
+ method: "POST"
5267
+ }
5268
+ );
5269
+ }
5247
5270
  async function createComment({
5248
5271
  threadId,
5249
5272
  commentId,
@@ -5337,6 +5360,8 @@ function createCommentsApi(roomId, getAuthValue, fetchClientApi) {
5337
5360
  createThread,
5338
5361
  deleteThread,
5339
5362
  editThreadMetadata,
5363
+ markThreadAsResolved,
5364
+ markThreadAsUnresolved,
5340
5365
  createComment,
5341
5366
  editComment,
5342
5367
  deleteComment: deleteComment2,
@@ -6141,6 +6166,7 @@ ${Array.from(traces).join("\n\n")}`
6141
6166
  case 400 /* THREAD_CREATED */:
6142
6167
  case 407 /* THREAD_DELETED */:
6143
6168
  case 401 /* THREAD_METADATA_UPDATED */:
6169
+ case 408 /* THREAD_UPDATED */:
6144
6170
  case 405 /* COMMENT_REACTION_ADDED */:
6145
6171
  case 406 /* COMMENT_REACTION_REMOVED */:
6146
6172
  case 402 /* COMMENT_CREATED */:
@@ -6615,8 +6641,8 @@ ${Array.from(traces).join("\n\n")}`
6615
6641
  getStorageStatus,
6616
6642
  isPresenceReady,
6617
6643
  isStorageReady,
6618
- waitUntilPresenceReady: memoize(waitUntilPresenceReady),
6619
- waitUntilStorageReady: memoize(waitUntilStorageReady),
6644
+ waitUntilPresenceReady: memoizeOnSuccess(waitUntilPresenceReady),
6645
+ waitUntilStorageReady: memoizeOnSuccess(waitUntilStorageReady),
6620
6646
  events,
6621
6647
  // Core
6622
6648
  getStatus: () => managedSocket.getStatus(),
@@ -6901,6 +6927,34 @@ function applyOptimisticUpdates(state) {
6901
6927
  };
6902
6928
  break;
6903
6929
  }
6930
+ case "mark-thread-as-resolved": {
6931
+ const thread = result.threads[optimisticUpdate.threadId];
6932
+ if (thread === void 0) {
6933
+ break;
6934
+ }
6935
+ if (thread.deletedAt !== void 0) {
6936
+ break;
6937
+ }
6938
+ result.threads[thread.id] = {
6939
+ ...thread,
6940
+ resolved: true
6941
+ };
6942
+ break;
6943
+ }
6944
+ case "mark-thread-as-unresolved": {
6945
+ const thread = result.threads[optimisticUpdate.threadId];
6946
+ if (thread === void 0) {
6947
+ break;
6948
+ }
6949
+ if (thread.deletedAt !== void 0) {
6950
+ break;
6951
+ }
6952
+ result.threads[thread.id] = {
6953
+ ...thread,
6954
+ resolved: false
6955
+ };
6956
+ break;
6957
+ }
6904
6958
  case "create-comment": {
6905
6959
  const thread = result.threads[optimisticUpdate.comment.threadId];
6906
6960
  if (thread === void 0) {
@@ -7477,7 +7531,7 @@ function isCommentBodyParagraph(element) {
7477
7531
  return "type" in element && element.type === "mention";
7478
7532
  }
7479
7533
  function isCommentBodyText(element) {
7480
- return "text" in element && typeof element.text === "string";
7534
+ return !("type" in element) && "text" in element && typeof element.text === "string";
7481
7535
  }
7482
7536
  function isCommentBodyMention(element) {
7483
7537
  return "type" in element && element.type === "mention";
@@ -7660,7 +7714,7 @@ function toAbsoluteUrl(url) {
7660
7714
  var stringifyCommentBodyPlainElements = {
7661
7715
  paragraph: ({ children }) => children,
7662
7716
  text: ({ element }) => element.text,
7663
- link: ({ element }) => element.url,
7717
+ link: ({ element }) => element.text ?? element.url,
7664
7718
  mention: ({ element, user }) => {
7665
7719
  return `@${user?.name ?? element.id}`;
7666
7720
  }
@@ -7689,7 +7743,7 @@ var stringifyCommentBodyHtmlElements = {
7689
7743
  return children;
7690
7744
  },
7691
7745
  link: ({ element, href }) => {
7692
- return html`<a href="${href}" target="_blank" rel="noopener noreferrer">${element.url}</a>`;
7746
+ return html`<a href="${href}" target="_blank" rel="noopener noreferrer">${element.text ?? element.url}</a>`;
7693
7747
  },
7694
7748
  mention: ({ element, user }) => {
7695
7749
  return html`<span data-mention>@${user?.name ?? element.id}</span>`;
@@ -7719,7 +7773,7 @@ var stringifyCommentBodyMarkdownElements = {
7719
7773
  return children;
7720
7774
  },
7721
7775
  link: ({ element, href }) => {
7722
- return markdown`[${element.url}](${href})`;
7776
+ return markdown`[${element.text ?? element.url}](${href})`;
7723
7777
  },
7724
7778
  mention: ({ element, user }) => {
7725
7779
  return markdown`@${user?.name ?? element.id}`;
@@ -8320,6 +8374,7 @@ export {
8320
8374
  makeEventSource,
8321
8375
  makePoller,
8322
8376
  makePosition,
8377
+ memoizeOnSuccess,
8323
8378
  nn,
8324
8379
  objectToQuery,
8325
8380
  patchLiveObjectKey,
@@ -8332,6 +8387,7 @@ export {
8332
8387
  toPlainLson,
8333
8388
  tryParseJson,
8334
8389
  upsertComment,
8390
+ wait,
8335
8391
  withTimeout
8336
8392
  };
8337
8393
  //# sourceMappingURL=index.mjs.map