@liveblocks/core 3.13.0-ack1 → 3.13.0-metadata1
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 +67 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +111 -75
- package/dist/index.d.ts +111 -75
- package/dist/index.js +67 -55
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -360,7 +360,7 @@ declare namespace OpCode {
|
|
|
360
360
|
* These operations are the payload for {@link UpdateStorageServerMsg} messages
|
|
361
361
|
* only.
|
|
362
362
|
*/
|
|
363
|
-
type Op = CreateOp | UpdateObjectOp | DeleteCrdtOp | SetParentKeyOp | DeleteObjectKeyOp |
|
|
363
|
+
type Op = CreateOp | UpdateObjectOp | DeleteCrdtOp | SetParentKeyOp | DeleteObjectKeyOp | AckOpV7 | AckOpV8;
|
|
364
364
|
type CreateOp = CreateObjectOp | CreateRegisterOp | CreateMapOp | CreateListOp;
|
|
365
365
|
type UpdateObjectOp = {
|
|
366
366
|
readonly opId?: string;
|
|
@@ -411,11 +411,15 @@ type DeleteCrdtOp = {
|
|
|
411
411
|
readonly id: string;
|
|
412
412
|
readonly type: OpCode.DELETE_CRDT;
|
|
413
413
|
};
|
|
414
|
-
type
|
|
414
|
+
type AckOpV7 = {
|
|
415
415
|
readonly type: OpCode.DELETE_CRDT;
|
|
416
416
|
readonly id: "ACK";
|
|
417
417
|
readonly opId: string;
|
|
418
418
|
};
|
|
419
|
+
type AckOpV8 = {
|
|
420
|
+
readonly type: OpCode.ACK;
|
|
421
|
+
readonly opId: string;
|
|
422
|
+
};
|
|
419
423
|
type SetParentKeyOp = {
|
|
420
424
|
readonly opId?: string;
|
|
421
425
|
readonly id: string;
|
|
@@ -1140,7 +1144,7 @@ declare global {
|
|
|
1140
1144
|
[key: string]: unknown;
|
|
1141
1145
|
}
|
|
1142
1146
|
}
|
|
1143
|
-
type ExtendableTypes = "Presence" | "Storage" | "UserMeta" | "RoomEvent" | "ThreadMetadata" | "RoomInfo" | "GroupInfo" | "ActivitiesData";
|
|
1147
|
+
type ExtendableTypes = "Presence" | "Storage" | "UserMeta" | "RoomEvent" | "ThreadMetadata" | "CommentMetadata" | "RoomInfo" | "GroupInfo" | "ActivitiesData";
|
|
1144
1148
|
type MakeErrorString<K extends ExtendableTypes, Reason extends string = "does not match its requirements"> = `The type you provided for '${K}' ${Reason}. To learn how to fix this, see https://liveblocks.io/docs/errors/${K}`;
|
|
1145
1149
|
type GetOverride<K extends ExtendableTypes, B, Reason extends string = "does not match its requirements"> = GetOverrideOrErrorValue<K, B, MakeErrorString<K, Reason>>;
|
|
1146
1150
|
type GetOverrideOrErrorValue<K extends ExtendableTypes, B, ErrorType> = unknown extends Liveblocks[K] ? B : Liveblocks[K] extends B ? Liveblocks[K] : ErrorType;
|
|
@@ -1148,7 +1152,8 @@ type DP = GetOverride<"Presence", JsonObject, "is not a valid JSON object">;
|
|
|
1148
1152
|
type DS = GetOverride<"Storage", LsonObject, "is not a valid LSON value">;
|
|
1149
1153
|
type DU = GetOverrideOrErrorValue<"UserMeta", BaseUserMeta, Record<"id" | "info", MakeErrorString<"UserMeta">>>;
|
|
1150
1154
|
type DE = GetOverride<"RoomEvent", Json, "is not a valid JSON value">;
|
|
1151
|
-
type
|
|
1155
|
+
type DTM = GetOverride<"ThreadMetadata", BaseMetadata>;
|
|
1156
|
+
type DCM = GetOverride<"CommentMetadata", BaseMetadata>;
|
|
1152
1157
|
type DRI = GetOverride<"RoomInfo", BaseRoomInfo>;
|
|
1153
1158
|
type DGI = GetOverride<"GroupInfo", BaseGroupInfo>;
|
|
1154
1159
|
type DAD = GetOverrideOrErrorValue<"ActivitiesData", BaseActivitiesData, {
|
|
@@ -1213,7 +1218,7 @@ type CommentMixedAttachment = CommentAttachment | CommentLocalAttachment;
|
|
|
1213
1218
|
/**
|
|
1214
1219
|
* Represents a comment.
|
|
1215
1220
|
*/
|
|
1216
|
-
type CommentData = {
|
|
1221
|
+
type CommentData<CM extends BaseMetadata = DCM> = {
|
|
1217
1222
|
type: "comment";
|
|
1218
1223
|
id: string;
|
|
1219
1224
|
threadId: string;
|
|
@@ -1223,13 +1228,15 @@ type CommentData = {
|
|
|
1223
1228
|
editedAt?: Date;
|
|
1224
1229
|
reactions: CommentReaction[];
|
|
1225
1230
|
attachments: CommentAttachment[];
|
|
1231
|
+
metadata: CM;
|
|
1226
1232
|
} & Relax<{
|
|
1227
1233
|
body: CommentBody;
|
|
1228
1234
|
} | {
|
|
1229
1235
|
deletedAt: Date;
|
|
1230
1236
|
}>;
|
|
1231
|
-
type CommentDataPlain = Omit<DateToString<CommentData
|
|
1237
|
+
type CommentDataPlain<CM extends BaseMetadata = DCM> = Omit<DateToString<CommentData<CM>>, "reactions" | "body" | "metadata"> & {
|
|
1232
1238
|
reactions: DateToString<CommentReaction>[];
|
|
1239
|
+
metadata: CM;
|
|
1233
1240
|
} & Relax<{
|
|
1234
1241
|
body: CommentBody;
|
|
1235
1242
|
} | {
|
|
@@ -1284,22 +1291,22 @@ type SearchCommentsResult = {
|
|
|
1284
1291
|
/**
|
|
1285
1292
|
* Represents a thread of comments.
|
|
1286
1293
|
*/
|
|
1287
|
-
type ThreadData<
|
|
1294
|
+
type ThreadData<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> = {
|
|
1288
1295
|
type: "thread";
|
|
1289
1296
|
id: string;
|
|
1290
1297
|
roomId: string;
|
|
1291
1298
|
createdAt: Date;
|
|
1292
1299
|
updatedAt: Date;
|
|
1293
|
-
comments: CommentData[];
|
|
1294
|
-
metadata:
|
|
1300
|
+
comments: CommentData<CM>[];
|
|
1301
|
+
metadata: TM;
|
|
1295
1302
|
resolved: boolean;
|
|
1296
1303
|
};
|
|
1297
|
-
interface ThreadDataWithDeleteInfo<
|
|
1304
|
+
interface ThreadDataWithDeleteInfo<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ThreadData<TM, CM> {
|
|
1298
1305
|
deletedAt?: Date;
|
|
1299
1306
|
}
|
|
1300
|
-
type ThreadDataPlain<
|
|
1301
|
-
comments: CommentDataPlain[];
|
|
1302
|
-
metadata:
|
|
1307
|
+
type ThreadDataPlain<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> = Omit<DateToString<ThreadData<TM, CM>>, "comments" | "metadata"> & {
|
|
1308
|
+
comments: CommentDataPlain<CM>[];
|
|
1309
|
+
metadata: TM;
|
|
1303
1310
|
};
|
|
1304
1311
|
type ThreadDeleteInfo = {
|
|
1305
1312
|
type: "deletedThread";
|
|
@@ -1537,17 +1544,17 @@ type MakeOptionalFieldsNullable<T> = {
|
|
|
1537
1544
|
};
|
|
1538
1545
|
type Patchable<T> = Partial<MakeOptionalFieldsNullable<T>>;
|
|
1539
1546
|
|
|
1540
|
-
interface RoomHttpApi<
|
|
1547
|
+
interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
1541
1548
|
getThreads(options: {
|
|
1542
1549
|
roomId: string;
|
|
1543
1550
|
cursor?: string;
|
|
1544
1551
|
query?: {
|
|
1545
1552
|
resolved?: boolean;
|
|
1546
1553
|
subscribed?: boolean;
|
|
1547
|
-
metadata?: Partial<QueryMetadata<
|
|
1554
|
+
metadata?: Partial<QueryMetadata<TM>>;
|
|
1548
1555
|
};
|
|
1549
1556
|
}): Promise<{
|
|
1550
|
-
threads: ThreadData<
|
|
1557
|
+
threads: ThreadData<TM, CM>[];
|
|
1551
1558
|
inboxNotifications: InboxNotificationData[];
|
|
1552
1559
|
subscriptions: SubscriptionData[];
|
|
1553
1560
|
requestedAt: Date;
|
|
@@ -1560,7 +1567,7 @@ interface RoomHttpApi<M extends BaseMetadata> {
|
|
|
1560
1567
|
signal?: AbortSignal;
|
|
1561
1568
|
}): Promise<{
|
|
1562
1569
|
threads: {
|
|
1563
|
-
updated: ThreadData<
|
|
1570
|
+
updated: ThreadData<TM, CM>[];
|
|
1564
1571
|
deleted: ThreadDeleteInfo[];
|
|
1565
1572
|
};
|
|
1566
1573
|
inboxNotifications: {
|
|
@@ -1577,7 +1584,7 @@ interface RoomHttpApi<M extends BaseMetadata> {
|
|
|
1577
1584
|
searchComments(options: {
|
|
1578
1585
|
roomId: string;
|
|
1579
1586
|
query: {
|
|
1580
|
-
threadMetadata?: Partial<QueryMetadata<
|
|
1587
|
+
threadMetadata?: Partial<QueryMetadata<TM>>;
|
|
1581
1588
|
threadResolved?: boolean;
|
|
1582
1589
|
hasAttachments?: boolean;
|
|
1583
1590
|
hasMentions?: boolean;
|
|
@@ -1588,19 +1595,20 @@ interface RoomHttpApi<M extends BaseMetadata> {
|
|
|
1588
1595
|
}): Promise<{
|
|
1589
1596
|
data: Array<SearchCommentsResult>;
|
|
1590
1597
|
}>;
|
|
1591
|
-
createThread({ roomId, metadata, body, commentId, threadId, attachmentIds, }: {
|
|
1598
|
+
createThread({ roomId, metadata, body, commentId, threadId, commentMetadata, attachmentIds, }: {
|
|
1592
1599
|
roomId: string;
|
|
1593
1600
|
threadId?: string;
|
|
1594
1601
|
commentId?: string;
|
|
1595
|
-
metadata:
|
|
1602
|
+
metadata: TM | undefined;
|
|
1603
|
+
commentMetadata: CM | undefined;
|
|
1596
1604
|
body: CommentBody;
|
|
1597
1605
|
attachmentIds?: string[];
|
|
1598
|
-
}): Promise<ThreadData<
|
|
1606
|
+
}): Promise<ThreadData<TM, CM>>;
|
|
1599
1607
|
getThread(options: {
|
|
1600
1608
|
roomId: string;
|
|
1601
1609
|
threadId: string;
|
|
1602
1610
|
}): Promise<{
|
|
1603
|
-
thread?: ThreadData<
|
|
1611
|
+
thread?: ThreadData<TM, CM>;
|
|
1604
1612
|
inboxNotification?: InboxNotificationData;
|
|
1605
1613
|
subscription?: SubscriptionData;
|
|
1606
1614
|
}>;
|
|
@@ -1610,23 +1618,31 @@ interface RoomHttpApi<M extends BaseMetadata> {
|
|
|
1610
1618
|
}): Promise<void>;
|
|
1611
1619
|
editThreadMetadata({ roomId, metadata, threadId, }: {
|
|
1612
1620
|
roomId: string;
|
|
1613
|
-
metadata: Patchable<
|
|
1621
|
+
metadata: Patchable<TM>;
|
|
1614
1622
|
threadId: string;
|
|
1615
|
-
}): Promise<
|
|
1616
|
-
|
|
1623
|
+
}): Promise<TM>;
|
|
1624
|
+
editCommentMetadata({ roomId, threadId, commentId, metadata, }: {
|
|
1625
|
+
roomId: string;
|
|
1626
|
+
threadId: string;
|
|
1627
|
+
commentId: string;
|
|
1628
|
+
metadata: Patchable<CM>;
|
|
1629
|
+
}): Promise<CM>;
|
|
1630
|
+
createComment({ roomId, threadId, commentId, body, metadata, attachmentIds, }: {
|
|
1617
1631
|
roomId: string;
|
|
1618
1632
|
threadId: string;
|
|
1619
1633
|
commentId?: string;
|
|
1620
1634
|
body: CommentBody;
|
|
1635
|
+
metadata?: CM;
|
|
1621
1636
|
attachmentIds?: string[];
|
|
1622
|
-
}): Promise<CommentData
|
|
1623
|
-
editComment({ roomId, threadId, commentId, body, attachmentIds, }: {
|
|
1637
|
+
}): Promise<CommentData<CM>>;
|
|
1638
|
+
editComment({ roomId, threadId, commentId, body, attachmentIds, metadata, }: {
|
|
1624
1639
|
roomId: string;
|
|
1625
1640
|
threadId: string;
|
|
1626
1641
|
commentId: string;
|
|
1627
1642
|
body: CommentBody;
|
|
1628
1643
|
attachmentIds?: string[];
|
|
1629
|
-
|
|
1644
|
+
metadata?: Patchable<CM>;
|
|
1645
|
+
}): Promise<CommentData<CM>>;
|
|
1630
1646
|
deleteComment({ roomId, threadId, commentId, }: {
|
|
1631
1647
|
roomId: string;
|
|
1632
1648
|
threadId: string;
|
|
@@ -1764,7 +1780,7 @@ interface RoomHttpApi<M extends BaseMetadata> {
|
|
|
1764
1780
|
signal: AbortSignal;
|
|
1765
1781
|
}): Promise<string>;
|
|
1766
1782
|
}
|
|
1767
|
-
interface NotificationHttpApi<
|
|
1783
|
+
interface NotificationHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
1768
1784
|
getInboxNotifications(options?: {
|
|
1769
1785
|
cursor?: string;
|
|
1770
1786
|
query?: {
|
|
@@ -1773,7 +1789,7 @@ interface NotificationHttpApi<M extends BaseMetadata> {
|
|
|
1773
1789
|
};
|
|
1774
1790
|
}): Promise<{
|
|
1775
1791
|
inboxNotifications: InboxNotificationData[];
|
|
1776
|
-
threads: ThreadData<
|
|
1792
|
+
threads: ThreadData<TM, CM>[];
|
|
1777
1793
|
subscriptions: SubscriptionData[];
|
|
1778
1794
|
nextCursor: string | null;
|
|
1779
1795
|
requestedAt: Date;
|
|
@@ -1791,7 +1807,7 @@ interface NotificationHttpApi<M extends BaseMetadata> {
|
|
|
1791
1807
|
deleted: InboxNotificationDeleteInfo[];
|
|
1792
1808
|
};
|
|
1793
1809
|
threads: {
|
|
1794
|
-
updated: ThreadData<
|
|
1810
|
+
updated: ThreadData<TM, CM>[];
|
|
1795
1811
|
deleted: ThreadDeleteInfo[];
|
|
1796
1812
|
};
|
|
1797
1813
|
subscriptions: {
|
|
@@ -1816,16 +1832,16 @@ interface NotificationHttpApi<M extends BaseMetadata> {
|
|
|
1816
1832
|
}): Promise<NotificationSettingsPlain>;
|
|
1817
1833
|
updateNotificationSettings(settings: PartialNotificationSettings): Promise<NotificationSettingsPlain>;
|
|
1818
1834
|
}
|
|
1819
|
-
interface LiveblocksHttpApi<
|
|
1835
|
+
interface LiveblocksHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> extends RoomHttpApi<TM, CM>, NotificationHttpApi<TM, CM> {
|
|
1820
1836
|
getUrlMetadata(url: string): Promise<UrlMetadata>;
|
|
1821
1837
|
getUserThreads_experimental(options?: {
|
|
1822
1838
|
cursor?: string;
|
|
1823
1839
|
query?: {
|
|
1824
1840
|
resolved?: boolean;
|
|
1825
|
-
metadata?: Partial<QueryMetadata<
|
|
1841
|
+
metadata?: Partial<QueryMetadata<TM>>;
|
|
1826
1842
|
};
|
|
1827
1843
|
}): Promise<{
|
|
1828
|
-
threads: ThreadData<
|
|
1844
|
+
threads: ThreadData<TM, CM>[];
|
|
1829
1845
|
inboxNotifications: InboxNotificationData[];
|
|
1830
1846
|
subscriptions: SubscriptionData[];
|
|
1831
1847
|
nextCursor: string | null;
|
|
@@ -1841,7 +1857,7 @@ interface LiveblocksHttpApi<M extends BaseMetadata> extends RoomHttpApi<M>, Noti
|
|
|
1841
1857
|
deleted: InboxNotificationDeleteInfo[];
|
|
1842
1858
|
};
|
|
1843
1859
|
threads: {
|
|
1844
|
-
updated: ThreadData<
|
|
1860
|
+
updated: ThreadData<TM, CM>[];
|
|
1845
1861
|
deleted: ThreadDeleteInfo[];
|
|
1846
1862
|
};
|
|
1847
1863
|
subscriptions: {
|
|
@@ -1901,6 +1917,7 @@ type CommentsOrNotificationsErrorContext = {
|
|
|
1901
1917
|
commentId: string;
|
|
1902
1918
|
body: CommentBody;
|
|
1903
1919
|
metadata: BaseMetadata;
|
|
1920
|
+
commentMetadata: BaseMetadata;
|
|
1904
1921
|
} | {
|
|
1905
1922
|
type: "DELETE_THREAD_ERROR";
|
|
1906
1923
|
roomId: string;
|
|
@@ -1910,6 +1927,12 @@ type CommentsOrNotificationsErrorContext = {
|
|
|
1910
1927
|
roomId: string;
|
|
1911
1928
|
threadId: string;
|
|
1912
1929
|
metadata: Patchable<BaseMetadata>;
|
|
1930
|
+
} | {
|
|
1931
|
+
type: "EDIT_COMMENT_METADATA_ERROR";
|
|
1932
|
+
roomId: string;
|
|
1933
|
+
threadId: string;
|
|
1934
|
+
commentId: string;
|
|
1935
|
+
metadata: Patchable<BaseMetadata>;
|
|
1913
1936
|
} | {
|
|
1914
1937
|
type: "MARK_THREAD_AS_RESOLVED_ERROR" | "MARK_THREAD_AS_UNRESOLVED_ERROR" | "SUBSCRIBE_TO_THREAD_ERROR" | "UNSUBSCRIBE_FROM_THREAD_ERROR";
|
|
1915
1938
|
roomId: string;
|
|
@@ -1920,6 +1943,7 @@ type CommentsOrNotificationsErrorContext = {
|
|
|
1920
1943
|
threadId: string;
|
|
1921
1944
|
commentId: string;
|
|
1922
1945
|
body: CommentBody;
|
|
1946
|
+
metadata: BaseMetadata;
|
|
1923
1947
|
} | {
|
|
1924
1948
|
type: "DELETE_COMMENT_ERROR";
|
|
1925
1949
|
roomId: string;
|
|
@@ -2024,7 +2048,7 @@ type InternalSyncStatus = SyncStatus | "has-local-changes";
|
|
|
2024
2048
|
* of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
|
|
2025
2049
|
* will probably happen if you do.
|
|
2026
2050
|
*/
|
|
2027
|
-
type PrivateClientApi<U extends BaseUserMeta,
|
|
2051
|
+
type PrivateClientApi<U extends BaseUserMeta, TM extends BaseMetadata, CM extends BaseMetadata> = {
|
|
2028
2052
|
readonly currentUserId: Signal<string | undefined>;
|
|
2029
2053
|
readonly mentionSuggestionsCache: Map<string, MentionData[]>;
|
|
2030
2054
|
readonly resolveMentionSuggestions: ClientOptions<U>["resolveMentionSuggestions"];
|
|
@@ -2032,13 +2056,13 @@ type PrivateClientApi<U extends BaseUserMeta, M extends BaseMetadata> = {
|
|
|
2032
2056
|
readonly roomsInfoStore: BatchStore<DRI | undefined, string>;
|
|
2033
2057
|
readonly groupsInfoStore: BatchStore<DGI | undefined, string>;
|
|
2034
2058
|
readonly getRoomIds: () => string[];
|
|
2035
|
-
readonly httpClient: LiveblocksHttpApi<
|
|
2036
|
-
as<
|
|
2059
|
+
readonly httpClient: LiveblocksHttpApi<TM, CM>;
|
|
2060
|
+
as<TM2 extends BaseMetadata, CM2 extends BaseMetadata>(): Client<U, TM2, CM2>;
|
|
2037
2061
|
createSyncSource(): SyncSource;
|
|
2038
2062
|
emitError(context: LiveblocksErrorContext, cause?: Error): void;
|
|
2039
2063
|
ai: Ai;
|
|
2040
2064
|
};
|
|
2041
|
-
type NotificationsApi<
|
|
2065
|
+
type NotificationsApi<TM extends BaseMetadata, CM extends BaseMetadata> = {
|
|
2042
2066
|
/**
|
|
2043
2067
|
* Gets a page (or the initial page) for user inbox notifications and their
|
|
2044
2068
|
* associated threads and thread subscriptions.
|
|
@@ -2065,7 +2089,7 @@ type NotificationsApi<M extends BaseMetadata> = {
|
|
|
2065
2089
|
};
|
|
2066
2090
|
}): Promise<{
|
|
2067
2091
|
inboxNotifications: InboxNotificationData[];
|
|
2068
|
-
threads: ThreadData<
|
|
2092
|
+
threads: ThreadData<TM, CM>[];
|
|
2069
2093
|
subscriptions: SubscriptionData[];
|
|
2070
2094
|
nextCursor: string | null;
|
|
2071
2095
|
requestedAt: Date;
|
|
@@ -2106,7 +2130,7 @@ type NotificationsApi<M extends BaseMetadata> = {
|
|
|
2106
2130
|
deleted: InboxNotificationDeleteInfo[];
|
|
2107
2131
|
};
|
|
2108
2132
|
threads: {
|
|
2109
|
-
updated: ThreadData<
|
|
2133
|
+
updated: ThreadData<TM, CM>[];
|
|
2110
2134
|
deleted: ThreadDeleteInfo[];
|
|
2111
2135
|
};
|
|
2112
2136
|
subscriptions: {
|
|
@@ -2186,23 +2210,23 @@ type NotificationsApi<M extends BaseMetadata> = {
|
|
|
2186
2210
|
* narrower.
|
|
2187
2211
|
*/
|
|
2188
2212
|
type OpaqueClient = Client<BaseUserMeta>;
|
|
2189
|
-
type Client<U extends BaseUserMeta = DU,
|
|
2213
|
+
type Client<U extends BaseUserMeta = DU, TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> = {
|
|
2190
2214
|
/**
|
|
2191
2215
|
* Gets a room. Returns null if {@link Client.enter} has not been called previously.
|
|
2192
2216
|
*
|
|
2193
2217
|
* @param roomId The id of the room
|
|
2194
2218
|
*/
|
|
2195
|
-
getRoom<P extends JsonObject = DP, S extends LsonObject = DS, E extends Json = DE,
|
|
2219
|
+
getRoom<P extends JsonObject = DP, S extends LsonObject = DS, E extends Json = DE, TM2 extends BaseMetadata = TM, CM2 extends BaseMetadata = CM>(roomId: string): Room<P, S, U, E, TM2, CM2> | null;
|
|
2196
2220
|
/**
|
|
2197
2221
|
* Enter a room.
|
|
2198
2222
|
* @param roomId The id of the room
|
|
2199
2223
|
* @param options Optional. You can provide initializers for the Presence or Storage when entering the Room.
|
|
2200
2224
|
* @returns The room and a leave function. Call the returned leave() function when you no longer need the room.
|
|
2201
2225
|
*/
|
|
2202
|
-
enterRoom<P extends JsonObject = DP, S extends LsonObject = DS, E extends Json = DE,
|
|
2226
|
+
enterRoom<P extends JsonObject = DP, S extends LsonObject = DS, E extends Json = DE, TM2 extends BaseMetadata = TM, CM2 extends BaseMetadata = CM>(roomId: string, ...args: OptionalTupleUnless<P & S, [
|
|
2203
2227
|
options: EnterOptions<NoInfr<P>, NoInfr<S>>
|
|
2204
2228
|
]>): {
|
|
2205
|
-
room: Room<P, S, U, E,
|
|
2229
|
+
room: Room<P, S, U, E, TM2, CM2>;
|
|
2206
2230
|
leave: () => void;
|
|
2207
2231
|
};
|
|
2208
2232
|
/**
|
|
@@ -2268,7 +2292,7 @@ type Client<U extends BaseUserMeta = DU, M extends BaseMetadata = DM> = {
|
|
|
2268
2292
|
* of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
|
|
2269
2293
|
* will probably happen if you do.
|
|
2270
2294
|
*/
|
|
2271
|
-
readonly [kInternal]: PrivateClientApi<U,
|
|
2295
|
+
readonly [kInternal]: PrivateClientApi<U, TM, CM>;
|
|
2272
2296
|
/**
|
|
2273
2297
|
* Returns the current global sync status of the Liveblocks client. If any
|
|
2274
2298
|
* part of Liveblocks has any local pending changes that haven't been
|
|
@@ -2292,7 +2316,7 @@ type Client<U extends BaseUserMeta = DU, M extends BaseMetadata = DM> = {
|
|
|
2292
2316
|
readonly error: Observable<LiveblocksError>;
|
|
2293
2317
|
readonly syncStatus: Observable<void>;
|
|
2294
2318
|
};
|
|
2295
|
-
} & NotificationsApi<
|
|
2319
|
+
} & NotificationsApi<TM, CM>;
|
|
2296
2320
|
type AuthEndpoint = string | ((room?: string) => Promise<CustomAuthenticationResult>);
|
|
2297
2321
|
/**
|
|
2298
2322
|
* The authentication endpoint that is called to ensure that the current user has access to a room.
|
|
@@ -2488,7 +2512,6 @@ declare const ServerMsgCode: Readonly<{
|
|
|
2488
2512
|
ROOM_STATE: 104;
|
|
2489
2513
|
INITIAL_STORAGE_STATE: 200;
|
|
2490
2514
|
UPDATE_STORAGE: 201;
|
|
2491
|
-
STORAGE_ACK: 202;
|
|
2492
2515
|
UPDATE_YDOC: 300;
|
|
2493
2516
|
THREAD_CREATED: 400;
|
|
2494
2517
|
THREAD_DELETED: 407;
|
|
@@ -2499,6 +2522,7 @@ declare const ServerMsgCode: Readonly<{
|
|
|
2499
2522
|
COMMENT_DELETED: 404;
|
|
2500
2523
|
COMMENT_REACTION_ADDED: 405;
|
|
2501
2524
|
COMMENT_REACTION_REMOVED: 406;
|
|
2525
|
+
COMMENT_METADATA_UPDATED: 409;
|
|
2502
2526
|
REJECT_STORAGE_OP: 299;
|
|
2503
2527
|
}>;
|
|
2504
2528
|
declare namespace ServerMsgCode {
|
|
@@ -2509,7 +2533,6 @@ declare namespace ServerMsgCode {
|
|
|
2509
2533
|
type ROOM_STATE = typeof ServerMsgCode.ROOM_STATE;
|
|
2510
2534
|
type INITIAL_STORAGE_STATE = typeof ServerMsgCode.INITIAL_STORAGE_STATE;
|
|
2511
2535
|
type UPDATE_STORAGE = typeof ServerMsgCode.UPDATE_STORAGE;
|
|
2512
|
-
type STORAGE_ACK = typeof ServerMsgCode.STORAGE_ACK;
|
|
2513
2536
|
type UPDATE_YDOC = typeof ServerMsgCode.UPDATE_YDOC;
|
|
2514
2537
|
type THREAD_CREATED = typeof ServerMsgCode.THREAD_CREATED;
|
|
2515
2538
|
type THREAD_DELETED = typeof ServerMsgCode.THREAD_DELETED;
|
|
@@ -2520,13 +2543,14 @@ declare namespace ServerMsgCode {
|
|
|
2520
2543
|
type COMMENT_DELETED = typeof ServerMsgCode.COMMENT_DELETED;
|
|
2521
2544
|
type COMMENT_REACTION_ADDED = typeof ServerMsgCode.COMMENT_REACTION_ADDED;
|
|
2522
2545
|
type COMMENT_REACTION_REMOVED = typeof ServerMsgCode.COMMENT_REACTION_REMOVED;
|
|
2546
|
+
type COMMENT_METADATA_UPDATED = typeof ServerMsgCode.COMMENT_METADATA_UPDATED;
|
|
2523
2547
|
type REJECT_STORAGE_OP = typeof ServerMsgCode.REJECT_STORAGE_OP;
|
|
2524
2548
|
}
|
|
2525
2549
|
/**
|
|
2526
2550
|
* Messages that can be sent from the server to the client.
|
|
2527
2551
|
*/
|
|
2528
|
-
type ServerMsg<P extends JsonObject, U extends BaseUserMeta, E extends Json> = UpdatePresenceServerMsg<P> | UserJoinServerMsg<U> | UserLeftServerMsg | BroadcastedEventServerMsg<E> | RoomStateServerMsg<U> | InitialDocumentStateServerMsg | UpdateStorageServerMsg |
|
|
2529
|
-
type CommentsEventServerMsg = ThreadCreatedEvent | ThreadDeletedEvent | ThreadMetadataUpdatedEvent | ThreadUpdatedEvent | CommentCreatedEvent | CommentEditedEvent | CommentDeletedEvent | CommentReactionAdded | CommentReactionRemoved;
|
|
2552
|
+
type ServerMsg<P extends JsonObject, U extends BaseUserMeta, E extends Json> = UpdatePresenceServerMsg<P> | UserJoinServerMsg<U> | UserLeftServerMsg | BroadcastedEventServerMsg<E> | RoomStateServerMsg<U> | InitialDocumentStateServerMsg | UpdateStorageServerMsg | YDocUpdateServerMsg | RejectedStorageOpServerMsg | CommentsEventServerMsg;
|
|
2553
|
+
type CommentsEventServerMsg = ThreadCreatedEvent | ThreadDeletedEvent | ThreadMetadataUpdatedEvent | ThreadUpdatedEvent | CommentCreatedEvent | CommentEditedEvent | CommentDeletedEvent | CommentReactionAdded | CommentReactionRemoved | CommentMetadataUpdatedEvent;
|
|
2530
2554
|
type ThreadCreatedEvent = {
|
|
2531
2555
|
type: ServerMsgCode.THREAD_CREATED;
|
|
2532
2556
|
threadId: string;
|
|
@@ -2570,6 +2594,11 @@ type CommentReactionRemoved = {
|
|
|
2570
2594
|
commentId: string;
|
|
2571
2595
|
emoji: string;
|
|
2572
2596
|
};
|
|
2597
|
+
type CommentMetadataUpdatedEvent = {
|
|
2598
|
+
type: ServerMsgCode.COMMENT_METADATA_UPDATED;
|
|
2599
|
+
threadId: string;
|
|
2600
|
+
commentId: string;
|
|
2601
|
+
};
|
|
2573
2602
|
/**
|
|
2574
2603
|
* Sent by the WebSocket server and broadcasted to all clients to announce that
|
|
2575
2604
|
* a User updated their presence. For example, when a user moves their cursor.
|
|
@@ -2734,14 +2763,6 @@ type UpdateStorageServerMsg = {
|
|
|
2734
2763
|
readonly type: ServerMsgCode.UPDATE_STORAGE;
|
|
2735
2764
|
readonly ops: Op[];
|
|
2736
2765
|
};
|
|
2737
|
-
/**
|
|
2738
|
-
* Sent back to client that initiated a storage mutation, to acknowledge which
|
|
2739
|
-
* mutations have been persisted.
|
|
2740
|
-
*/
|
|
2741
|
-
type StorageAckServerMsg = {
|
|
2742
|
-
readonly type: ServerMsgCode.STORAGE_ACK;
|
|
2743
|
-
readonly opIds: string[];
|
|
2744
|
-
};
|
|
2745
2766
|
/**
|
|
2746
2767
|
* Sent by the WebSocket server to the client to indicate that certain opIds
|
|
2747
2768
|
* have been rejected, possibly due to lack of permissions or exceeding
|
|
@@ -3059,12 +3080,12 @@ type SubscribeFn<P extends JsonObject, _TStorage extends LsonObject, U extends B
|
|
|
3059
3080
|
(type: "storage-status", listener: Callback<StorageStatus>): () => void;
|
|
3060
3081
|
(type: "comments", listener: Callback<CommentsEventServerMsg>): () => void;
|
|
3061
3082
|
};
|
|
3062
|
-
type GetThreadsOptions<
|
|
3083
|
+
type GetThreadsOptions<TM extends BaseMetadata> = {
|
|
3063
3084
|
cursor?: string;
|
|
3064
3085
|
query?: {
|
|
3065
3086
|
resolved?: boolean;
|
|
3066
3087
|
subscribed?: boolean;
|
|
3067
|
-
metadata?: Partial<QueryMetadata<
|
|
3088
|
+
metadata?: Partial<QueryMetadata<TM>>;
|
|
3068
3089
|
};
|
|
3069
3090
|
};
|
|
3070
3091
|
type GetThreadsSinceOptions = {
|
|
@@ -3087,7 +3108,7 @@ type GetSubscriptionSettingsOptions = {
|
|
|
3087
3108
|
* a Room instance using globally augmented types only, which is narrower.
|
|
3088
3109
|
*/
|
|
3089
3110
|
type OpaqueRoom = Room<JsonObject, LsonObject, BaseUserMeta, Json, BaseMetadata>;
|
|
3090
|
-
type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUserMeta = DU, E extends Json = DE,
|
|
3111
|
+
type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUserMeta = DU, E extends Json = DE, TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> = {
|
|
3091
3112
|
/**
|
|
3092
3113
|
* @private
|
|
3093
3114
|
*
|
|
@@ -3301,8 +3322,8 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3301
3322
|
* requestedAt
|
|
3302
3323
|
* } = await room.getThreads({ query: { resolved: false }});
|
|
3303
3324
|
*/
|
|
3304
|
-
getThreads(options?: GetThreadsOptions<
|
|
3305
|
-
threads: ThreadData<
|
|
3325
|
+
getThreads(options?: GetThreadsOptions<TM>): Promise<{
|
|
3326
|
+
threads: ThreadData<TM, CM>[];
|
|
3306
3327
|
inboxNotifications: InboxNotificationData[];
|
|
3307
3328
|
subscriptions: SubscriptionData[];
|
|
3308
3329
|
requestedAt: Date;
|
|
@@ -3319,7 +3340,7 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3319
3340
|
*/
|
|
3320
3341
|
getThreadsSince(options: GetThreadsSinceOptions): Promise<{
|
|
3321
3342
|
threads: {
|
|
3322
|
-
updated: ThreadData<
|
|
3343
|
+
updated: ThreadData<TM, CM>[];
|
|
3323
3344
|
deleted: ThreadDeleteInfo[];
|
|
3324
3345
|
};
|
|
3325
3346
|
inboxNotifications: {
|
|
@@ -3340,7 +3361,7 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3340
3361
|
* const { thread, inboxNotification, subscription } = await room.getThread("th_xxx");
|
|
3341
3362
|
*/
|
|
3342
3363
|
getThread(threadId: string): Promise<{
|
|
3343
|
-
thread?: ThreadData<
|
|
3364
|
+
thread?: ThreadData<TM, CM>;
|
|
3344
3365
|
inboxNotification?: InboxNotificationData;
|
|
3345
3366
|
subscription?: SubscriptionData;
|
|
3346
3367
|
}>;
|
|
@@ -3358,10 +3379,11 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3358
3379
|
createThread(options: {
|
|
3359
3380
|
threadId?: string;
|
|
3360
3381
|
commentId?: string;
|
|
3361
|
-
metadata:
|
|
3382
|
+
metadata: TM | undefined;
|
|
3362
3383
|
body: CommentBody;
|
|
3384
|
+
commentMetadata?: CM;
|
|
3363
3385
|
attachmentIds?: string[];
|
|
3364
|
-
}): Promise<ThreadData<
|
|
3386
|
+
}): Promise<ThreadData<TM, CM>>;
|
|
3365
3387
|
/**
|
|
3366
3388
|
* Deletes a thread.
|
|
3367
3389
|
*
|
|
@@ -3377,9 +3399,21 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3377
3399
|
* await room.editThreadMetadata({ threadId: "th_xxx", metadata: { x: 100, y: 100 } })
|
|
3378
3400
|
*/
|
|
3379
3401
|
editThreadMetadata(options: {
|
|
3380
|
-
metadata: Patchable<
|
|
3402
|
+
metadata: Patchable<TM>;
|
|
3403
|
+
threadId: string;
|
|
3404
|
+
}): Promise<TM>;
|
|
3405
|
+
/**
|
|
3406
|
+
* Edits a comment's metadata.
|
|
3407
|
+
* To delete an existing metadata property, set its value to `null`.
|
|
3408
|
+
*
|
|
3409
|
+
* @example
|
|
3410
|
+
* await room.editCommentMetadata({ threadId: "th_xxx", commentId: "cm_xxx", metadata: { slackChannelId: "C024BE91L", slackMessageTs: "1700311782.001200" } })
|
|
3411
|
+
*/
|
|
3412
|
+
editCommentMetadata(options: {
|
|
3381
3413
|
threadId: string;
|
|
3382
|
-
|
|
3414
|
+
commentId: string;
|
|
3415
|
+
metadata: Patchable<CM>;
|
|
3416
|
+
}): Promise<CM>;
|
|
3383
3417
|
/**
|
|
3384
3418
|
* Marks a thread as resolved.
|
|
3385
3419
|
*
|
|
@@ -3424,8 +3458,9 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3424
3458
|
threadId: string;
|
|
3425
3459
|
commentId?: string;
|
|
3426
3460
|
body: CommentBody;
|
|
3461
|
+
metadata?: CM;
|
|
3427
3462
|
attachmentIds?: string[];
|
|
3428
|
-
}): Promise<CommentData
|
|
3463
|
+
}): Promise<CommentData<CM>>;
|
|
3429
3464
|
/**
|
|
3430
3465
|
* Edits a comment.
|
|
3431
3466
|
*
|
|
@@ -3443,8 +3478,9 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
3443
3478
|
threadId: string;
|
|
3444
3479
|
commentId: string;
|
|
3445
3480
|
body: CommentBody;
|
|
3481
|
+
metadata?: Patchable<CM>;
|
|
3446
3482
|
attachmentIds?: string[];
|
|
3447
|
-
}): Promise<CommentData
|
|
3483
|
+
}): Promise<CommentData<CM>>;
|
|
3448
3484
|
/**
|
|
3449
3485
|
* Deletes a comment.
|
|
3450
3486
|
* If it is the last non-deleted comment, the thread also gets deleted.
|
|
@@ -4463,14 +4499,14 @@ declare const MENTION_CHARACTER = "@";
|
|
|
4463
4499
|
* @param data The plain comment data object (usually returned by the API)
|
|
4464
4500
|
* @returns The rich comment data object that can be used by the client.
|
|
4465
4501
|
*/
|
|
4466
|
-
declare function convertToCommentData(data: CommentDataPlain): CommentData
|
|
4502
|
+
declare function convertToCommentData<CM extends BaseMetadata>(data: CommentDataPlain<CM>): CommentData<CM>;
|
|
4467
4503
|
/**
|
|
4468
4504
|
* Converts a plain thread data object (usually returned by the API) to a thread data object that can be used by the client.
|
|
4469
4505
|
* This is necessary because the plain data object stores dates as ISO strings, but the client expects them as Date objects.
|
|
4470
4506
|
* @param data The plain thread data object (usually returned by the API)
|
|
4471
4507
|
* @returns The rich thread data object that can be used by the client.
|
|
4472
4508
|
*/
|
|
4473
|
-
declare function convertToThreadData<
|
|
4509
|
+
declare function convertToThreadData<TM extends BaseMetadata, CM extends BaseMetadata>(data: ThreadDataPlain<TM, CM>): ThreadData<TM, CM>;
|
|
4474
4510
|
/**
|
|
4475
4511
|
* Converts a plain comment reaction object (usually returned by the API) to a comment reaction object that can be used by the client.
|
|
4476
4512
|
* This is necessary because the plain data object stores dates as ISO strings, but the client expects them as Date objects.
|
|
@@ -5186,4 +5222,4 @@ type EnsureJson<T> = T extends Json ? T : T extends Array<infer I> ? (EnsureJson
|
|
|
5186
5222
|
[K in keyof T as EnsureJson<T[K]> extends never ? never : K]: EnsureJson<T[K]>;
|
|
5187
5223
|
};
|
|
5188
5224
|
|
|
5189
|
-
export { type
|
|
5225
|
+
export { type AckOpV7, type AckOpV8, type ActivityData, type AiAssistantContentPart, type AiAssistantMessage, type AiChat, type AiChatMessage, type AiChatsQuery, type AiKnowledgeRetrievalPart, type AiKnowledgeSource, type AiOpaqueToolDefinition, type AiOpaqueToolInvocationProps, type AiReasoningPart, type AiRetrievalPart, type AiSourcesPart, type AiTextPart, type AiToolDefinition, type AiToolExecuteCallback, type AiToolExecuteContext, type AiToolInvocationPart, type AiToolInvocationProps, type AiToolTypePack, type AiUrlSource, type AiUserMessage, type AiWebRetrievalPart, type AsyncError, type AsyncLoading, type AsyncResult, type AsyncSuccess, type Awaitable, type BaseActivitiesData, type BaseAuthResult, type BaseGroupInfo, type BaseMetadata, type BaseRoomInfo, type BaseUserMeta, type Brand, type BroadcastEventClientMsg, type BroadcastOptions, type BroadcastedEventServerMsg, type Client, type ClientMsg, ClientMsgCode, type ClientOptions, type CommentAttachment, type CommentBody, type CommentBodyBlockElement, type CommentBodyElement, type CommentBodyInlineElement, type CommentBodyLink, type CommentBodyLinkElementArgs, type CommentBodyMention, type CommentBodyMentionElementArgs, type CommentBodyParagraph, type CommentBodyParagraphElementArgs, type CommentBodyText, type CommentBodyTextElementArgs, type CommentData, type CommentDataPlain, type CommentLocalAttachment, type CommentMixedAttachment, type CommentReaction, type CommentUserReaction, type CommentUserReactionPlain, type CommentsEventServerMsg, type ContextualPromptContext, type ContextualPromptResponse, type CopilotId, CrdtType, type CreateListOp, type CreateManagedPoolOptions, type CreateMapOp, type CreateObjectOp, type CreateOp, type CreateRegisterOp, type Cursor, type CustomAuthenticationResult, type DAD, type DCM, type DE, type DGI, type DP, type DRI, type DS, type DTM, type DU, DefaultMap, type Delegates, type DeleteCrdtOp, type DeleteObjectKeyOp, Deque, DerivedSignal, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, type DistributiveOmit, type EnsureJson, type EnterOptions, type EventSource, type FetchStorageClientMsg, type FetchYDocClientMsg, type GetThreadsOptions, type GroupData, type GroupDataPlain, type GroupMemberData, type GroupMentionData, type GroupScopes, type History, type HistoryVersion, HttpError, type ISODateString, type ISignal, type IUserInfo, type IWebSocket, type IWebSocketCloseEvent, type IWebSocketEvent, type IWebSocketInstance, type IWebSocketMessageEvent, type IYjsProvider, type IdTuple, type Immutable, type InboxNotificationCustomData, type InboxNotificationCustomDataPlain, type InboxNotificationData, type InboxNotificationDataPlain, type InboxNotificationDeleteInfo, type InboxNotificationTextMentionData, type InboxNotificationTextMentionDataPlain, type InboxNotificationThreadData, type InboxNotificationThreadDataPlain, type InferFromSchema, type InitialDocumentStateServerMsg, type Json, type JsonArray, type JsonObject, type JsonScalar, type KDAD, type LargeMessageStrategy, type LayerKey, LiveList, type LiveListUpdate, LiveMap, type LiveMapUpdate, type LiveNode, LiveObject, type LiveObjectUpdate, type LiveStructure, LiveblocksError, type LiveblocksErrorContext, type LostConnectionEvent, type Lson, type LsonObject, MENTION_CHARACTER, type ManagedPool, type MentionData, type MessageId, MutableSignal, type NoInfr, type NodeMap, type NotificationChannel, type NotificationChannelSettings, type NotificationKind, type NotificationSettings, type NotificationSettingsPlain, type Observable, type Op, OpCode, type OpaqueClient, type OpaqueRoom, type OptionalTupleUnless, type OthersEvent, type ParentToChildNodeMap, type PartialNotificationSettings, type PartialUnless, type Patchable, Permission, type PlainLson, type PlainLsonFields, type PlainLsonList, type PlainLsonMap, type PlainLsonObject, type Poller, type PrivateClientApi, type PrivateRoomApi, Promise_withResolvers, type QueryMetadata, type QueryParams, type RejectedStorageOpServerMsg, type Relax, type RenderableToolResultResponse, type Resolve, type ResolveGroupsInfoArgs, type ResolveMentionSuggestionsArgs, type ResolveRoomsInfoArgs, type ResolveUsersArgs, type Room, type RoomEventMessage, type RoomStateServerMsg, type RoomSubscriptionSettings, type SearchCommentsResult, type SerializedChild, type SerializedCrdt, type SerializedList, type SerializedMap, type SerializedObject, type SerializedRegister, type SerializedRootObject, type ServerMsg, ServerMsgCode, type SetParentKeyOp, Signal, type SignalType, SortedList, type Status, type StorageStatus, type StorageUpdate, type StringifyCommentBodyElements, type StringifyCommentBodyOptions, type SubscriptionData, type SubscriptionDataPlain, type SubscriptionDeleteInfo, type SubscriptionDeleteInfoPlain, type SubscriptionKey, type SyncSource, type SyncStatus, TextEditorType, type ThreadData, type ThreadDataPlain, type ThreadDataWithDeleteInfo, type ThreadDeleteInfo, type ToImmutable, type ToJson, type ToolResultResponse, type URLSafeString, type UnsubscribeCallback, type UpdateObjectOp, type UpdatePresenceClientMsg, type UpdatePresenceServerMsg, type UpdateStorageClientMsg, type UpdateStorageServerMsg, type UpdateYDocClientMsg, type UploadAttachmentOptions, type UrlMetadata, type User, type UserJoinServerMsg, type UserLeftServerMsg, type UserMentionData, type UserRoomSubscriptionSettings, type UserSubscriptionData, type UserSubscriptionDataPlain, WebsocketCloseCodes, type WithNavigation, type WithOptional, type WithRequired, type YDocUpdateServerMsg, type YjsSyncStatus, asPos, assert, assertNever, autoRetry, b64decode, batch, checkBounds, chunk, cloneLson, compactObject, fancyConsole as console, convertToCommentData, convertToCommentUserReaction, convertToGroupData, convertToInboxNotificationData, convertToSubscriptionData, convertToThreadData, convertToUserSubscriptionData, createClient, createCommentAttachmentId, createCommentId, createInboxNotificationId, createManagedPool, createNotificationSettings, createThreadId, defineAiTool, deprecate, deprecateIf, detectDupes, entries, errorIf, findLastIndex, freeze, generateUrl, getMentionsFromCommentBody, getSubscriptionKey, html, htmlSafe, isCommentBodyLink, isCommentBodyMention, isCommentBodyText, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isNotificationChannelEnabled, isNumberOperator, isPlainObject, isStartsWithOperator, isUrl, kInternal, keys, legacy_patchImmutableObject, lsonToJson, makeAbortController, makeEventSource, makePoller, makePosition, mapValues, memoizeOnSuccess, nanoid, nn, objectToQuery, patchLiveObjectKey, patchNotificationSettings, raise, resolveMentionsInCommentBody, sanitizeUrl, shallow, shallow2, stableStringify, stringifyCommentBody, throwUsageError, toPlainLson, tryParseJson, url, urljoin, wait, warnOnce, warnOnceIf, withTimeout };
|