@liveblocks/core 3.21.0-exp9 → 3.21.0-private2
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 +467 -1704
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +59 -354
- package/dist/index.d.ts +59 -354
- package/dist/index.js +304 -1541
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -87,6 +87,12 @@ declare const Permission: {
|
|
|
87
87
|
readonly CommentsWrite: "comments:write";
|
|
88
88
|
readonly CommentsRead: "comments:read";
|
|
89
89
|
readonly CommentsNone: "comments:none";
|
|
90
|
+
readonly CommentsPublicWrite: "comments:public:write";
|
|
91
|
+
readonly CommentsPublicRead: "comments:public:read";
|
|
92
|
+
readonly CommentsPublicNone: "comments:public:none";
|
|
93
|
+
readonly CommentsPrivateWrite: "comments:private:write";
|
|
94
|
+
readonly CommentsPrivateRead: "comments:private:read";
|
|
95
|
+
readonly CommentsPrivateNone: "comments:private:none";
|
|
90
96
|
/**
|
|
91
97
|
* Feeds
|
|
92
98
|
*/
|
|
@@ -106,6 +112,8 @@ type PermissionMatrix = {
|
|
|
106
112
|
room: AccessLevel;
|
|
107
113
|
storage: AccessLevel;
|
|
108
114
|
comments: AccessLevel;
|
|
115
|
+
"comments:public": AccessLevel;
|
|
116
|
+
"comments:private": AccessLevel;
|
|
109
117
|
feeds: AccessLevel;
|
|
110
118
|
personal: AccessLevel;
|
|
111
119
|
};
|
|
@@ -411,8 +419,6 @@ declare const OpCode: Readonly<{
|
|
|
411
419
|
DELETE_OBJECT_KEY: 6;
|
|
412
420
|
CREATE_MAP: 7;
|
|
413
421
|
CREATE_REGISTER: 8;
|
|
414
|
-
CREATE_TEXT: 9;
|
|
415
|
-
UPDATE_TEXT: 10;
|
|
416
422
|
}>;
|
|
417
423
|
declare namespace OpCode {
|
|
418
424
|
type INIT = typeof OpCode.INIT;
|
|
@@ -424,48 +430,13 @@ declare namespace OpCode {
|
|
|
424
430
|
type DELETE_OBJECT_KEY = typeof OpCode.DELETE_OBJECT_KEY;
|
|
425
431
|
type CREATE_MAP = typeof OpCode.CREATE_MAP;
|
|
426
432
|
type CREATE_REGISTER = typeof OpCode.CREATE_REGISTER;
|
|
427
|
-
type CREATE_TEXT = typeof OpCode.CREATE_TEXT;
|
|
428
|
-
type UPDATE_TEXT = typeof OpCode.UPDATE_TEXT;
|
|
429
433
|
}
|
|
430
|
-
type TextAttributes = JsonObject;
|
|
431
|
-
/**
|
|
432
|
-
* A single segment in a {@link LiveTextData} document.
|
|
433
|
-
*
|
|
434
|
-
* @example
|
|
435
|
-
* ["Hello world"]
|
|
436
|
-
* ["Hello ", { bold: true }]
|
|
437
|
-
*/
|
|
438
|
-
type LiveTextSegment = [text: string] | [text: string, attributes: TextAttributes];
|
|
439
|
-
/**
|
|
440
|
-
* Serialized form of a {@link LiveText} document: an ordered list of text
|
|
441
|
-
* segments with optional inline attributes.
|
|
442
|
-
*
|
|
443
|
-
* @example
|
|
444
|
-
* [["Hello world"]]
|
|
445
|
-
* [["Hello ", { bold: true }], ["world"]]
|
|
446
|
-
*/
|
|
447
|
-
type LiveTextData = LiveTextSegment[];
|
|
448
|
-
type TextOperation = {
|
|
449
|
-
type: "insert";
|
|
450
|
-
index: number;
|
|
451
|
-
text: string;
|
|
452
|
-
attributes?: TextAttributes;
|
|
453
|
-
} | {
|
|
454
|
-
type: "delete";
|
|
455
|
-
index: number;
|
|
456
|
-
length: number;
|
|
457
|
-
} | {
|
|
458
|
-
type: "format";
|
|
459
|
-
index: number;
|
|
460
|
-
length: number;
|
|
461
|
-
attributes: JsonObject;
|
|
462
|
-
};
|
|
463
434
|
/**
|
|
464
435
|
* These operations are the payload for {@link UpdateStorageServerMsg} messages
|
|
465
436
|
* only.
|
|
466
437
|
*/
|
|
467
|
-
type Op = CreateOp | UpdateObjectOp |
|
|
468
|
-
type CreateOp = CreateObjectOp | CreateRegisterOp | CreateMapOp | CreateListOp
|
|
438
|
+
type Op = CreateOp | UpdateObjectOp | DeleteCrdtOp | SetParentKeyOp | DeleteObjectKeyOp;
|
|
439
|
+
type CreateOp = CreateObjectOp | CreateRegisterOp | CreateMapOp | CreateListOp;
|
|
469
440
|
type UpdateObjectOp = {
|
|
470
441
|
readonly opId?: string;
|
|
471
442
|
readonly id: string;
|
|
@@ -510,26 +481,6 @@ type CreateRegisterOp = {
|
|
|
510
481
|
readonly intent?: "set" | "push";
|
|
511
482
|
readonly deletedId?: string;
|
|
512
483
|
};
|
|
513
|
-
type CreateTextOp = {
|
|
514
|
-
readonly opId?: string;
|
|
515
|
-
readonly id: string;
|
|
516
|
-
readonly type: OpCode.CREATE_TEXT;
|
|
517
|
-
readonly parentId: string;
|
|
518
|
-
readonly parentKey: string;
|
|
519
|
-
readonly data: LiveTextData;
|
|
520
|
-
readonly version: number;
|
|
521
|
-
readonly intent?: "set" | "push";
|
|
522
|
-
readonly deletedId?: string;
|
|
523
|
-
};
|
|
524
|
-
type UpdateTextOp = {
|
|
525
|
-
readonly opId?: string;
|
|
526
|
-
readonly id: string;
|
|
527
|
-
readonly type: OpCode.UPDATE_TEXT;
|
|
528
|
-
readonly baseVersion: number;
|
|
529
|
-
readonly version?: number;
|
|
530
|
-
readonly ops: TextOperation[];
|
|
531
|
-
readonly metadata?: JsonObject;
|
|
532
|
-
};
|
|
533
484
|
type DeleteCrdtOp = {
|
|
534
485
|
readonly opId?: string;
|
|
535
486
|
readonly id: string;
|
|
@@ -658,17 +609,15 @@ declare const CrdtType: Readonly<{
|
|
|
658
609
|
LIST: 1;
|
|
659
610
|
MAP: 2;
|
|
660
611
|
REGISTER: 3;
|
|
661
|
-
TEXT: 4;
|
|
662
612
|
}>;
|
|
663
613
|
declare namespace CrdtType {
|
|
664
614
|
type OBJECT = typeof CrdtType.OBJECT;
|
|
665
615
|
type LIST = typeof CrdtType.LIST;
|
|
666
616
|
type MAP = typeof CrdtType.MAP;
|
|
667
617
|
type REGISTER = typeof CrdtType.REGISTER;
|
|
668
|
-
type TEXT = typeof CrdtType.TEXT;
|
|
669
618
|
}
|
|
670
619
|
type SerializedCrdt = SerializedRootObject | SerializedChild;
|
|
671
|
-
type SerializedChild = SerializedObject | SerializedList | SerializedMap | SerializedRegister
|
|
620
|
+
type SerializedChild = SerializedObject | SerializedList | SerializedMap | SerializedRegister;
|
|
672
621
|
type SerializedRootObject = {
|
|
673
622
|
readonly type: CrdtType.OBJECT;
|
|
674
623
|
readonly data: JsonObject;
|
|
@@ -697,21 +646,13 @@ type SerializedRegister = {
|
|
|
697
646
|
readonly parentKey: string;
|
|
698
647
|
readonly data: Json;
|
|
699
648
|
};
|
|
700
|
-
type SerializedText = {
|
|
701
|
-
readonly type: CrdtType.TEXT;
|
|
702
|
-
readonly parentId: string;
|
|
703
|
-
readonly parentKey: string;
|
|
704
|
-
readonly data: LiveTextData;
|
|
705
|
-
readonly version: number;
|
|
706
|
-
};
|
|
707
649
|
type StorageNode = RootStorageNode | ChildStorageNode;
|
|
708
|
-
type ChildStorageNode = ObjectStorageNode | ListStorageNode | MapStorageNode | RegisterStorageNode
|
|
650
|
+
type ChildStorageNode = ObjectStorageNode | ListStorageNode | MapStorageNode | RegisterStorageNode;
|
|
709
651
|
type RootStorageNode = [id: "root", value: SerializedRootObject];
|
|
710
652
|
type ObjectStorageNode = [id: string, value: SerializedObject];
|
|
711
653
|
type ListStorageNode = [id: string, value: SerializedList];
|
|
712
654
|
type MapStorageNode = [id: string, value: SerializedMap];
|
|
713
655
|
type RegisterStorageNode = [id: string, value: SerializedRegister];
|
|
714
|
-
type TextStorageNode = [id: string, value: SerializedText];
|
|
715
656
|
type NodeMap = Map<string, SerializedCrdt>;
|
|
716
657
|
type NodeStream = Iterable<StorageNode>;
|
|
717
658
|
declare function isRootStorageNode(node: StorageNode): node is RootStorageNode;
|
|
@@ -719,9 +660,8 @@ declare function isObjectStorageNode(node: StorageNode): node is RootStorageNode
|
|
|
719
660
|
declare function isListStorageNode(node: StorageNode): node is ListStorageNode;
|
|
720
661
|
declare function isMapStorageNode(node: StorageNode): node is MapStorageNode;
|
|
721
662
|
declare function isRegisterStorageNode(node: StorageNode): node is RegisterStorageNode;
|
|
722
|
-
declare function isTextStorageNode(node: StorageNode): node is TextStorageNode;
|
|
723
663
|
type CompactNode = CompactRootNode | CompactChildNode;
|
|
724
|
-
type CompactChildNode = CompactObjectNode | CompactListNode | CompactMapNode | CompactRegisterNode
|
|
664
|
+
type CompactChildNode = CompactObjectNode | CompactListNode | CompactMapNode | CompactRegisterNode;
|
|
725
665
|
type CompactRootNode = readonly [id: "root", data: JsonObject];
|
|
726
666
|
type CompactObjectNode = readonly [
|
|
727
667
|
id: string,
|
|
@@ -749,14 +689,6 @@ type CompactRegisterNode = readonly [
|
|
|
749
689
|
parentKey: string,
|
|
750
690
|
data: Json
|
|
751
691
|
];
|
|
752
|
-
type CompactTextNode = readonly [
|
|
753
|
-
id: string,
|
|
754
|
-
type: CrdtType.TEXT,
|
|
755
|
-
parentId: string,
|
|
756
|
-
parentKey: string,
|
|
757
|
-
data: LiveTextData,
|
|
758
|
-
version: number
|
|
759
|
-
];
|
|
760
692
|
declare function compactNodesToNodeStream(compactNodes: CompactNode[]): NodeStream;
|
|
761
693
|
declare function nodeStreamToCompactNodes(nodes: NodeStream): Iterable<CompactNode>;
|
|
762
694
|
|
|
@@ -922,244 +854,16 @@ declare class LiveObject<O extends LsonObject> extends AbstractCrdt {
|
|
|
922
854
|
clone(): LiveObject<O>;
|
|
923
855
|
}
|
|
924
856
|
|
|
925
|
-
/**
|
|
926
|
-
* Use this symbol to brand an object property as internal.
|
|
927
|
-
*
|
|
928
|
-
* @example
|
|
929
|
-
* Object.defineProperty(
|
|
930
|
-
* {
|
|
931
|
-
* public,
|
|
932
|
-
* [kInternal]: {
|
|
933
|
-
* private
|
|
934
|
-
* },
|
|
935
|
-
* },
|
|
936
|
-
* kInternal,
|
|
937
|
-
* {
|
|
938
|
-
* enumerable: false,
|
|
939
|
-
* }
|
|
940
|
-
* );
|
|
941
|
-
*/
|
|
942
|
-
declare const kInternal: unique symbol;
|
|
943
|
-
declare const kStorageUpdateSource: unique symbol;
|
|
944
|
-
|
|
945
|
-
/**
|
|
946
|
-
* The position of the ops being transformed relative to the ops they are
|
|
947
|
-
* transformed over, in the final (server-serialized) timeline:
|
|
948
|
-
*
|
|
949
|
-
* - "after": the transformed ops will be ordered after the `over` ops. Used
|
|
950
|
-
* when rebasing a not-yet-accepted op over already-accepted ops. On
|
|
951
|
-
* same-index insert ties, the transformed op shifts right (the earlier op
|
|
952
|
-
* stays left), and conflicting format attributes are kept (they will
|
|
953
|
-
* overwrite, since the op applies later).
|
|
954
|
-
* - "before": the transformed ops were ordered before the `over` ops. Used
|
|
955
|
-
* when applying an accepted remote op on top of locally-pending ops. On
|
|
956
|
-
* same-index insert ties, the transformed op stays left, and conflicting
|
|
957
|
-
* format attributes are dropped on overlapping ranges (the later `over` op
|
|
958
|
-
* wins).
|
|
959
|
-
*/
|
|
960
|
-
type TransformOrder = "before" | "after";
|
|
961
|
-
/**
|
|
962
|
-
* Transform `ops` over `over` (see {@link transformTextOperationsX}),
|
|
963
|
-
* returning only the transformed `ops`.
|
|
964
|
-
*/
|
|
965
|
-
declare function transformTextOperations(ops: readonly TextOperation[], over: readonly TextOperation[], order: TransformOrder): TextOperation[];
|
|
966
|
-
declare function applyLiveTextOperations(data: LiveTextData, ops: readonly TextOperation[]): LiveTextData;
|
|
967
|
-
|
|
968
|
-
type LiveTextAttributes = TextAttributes;
|
|
969
|
-
type LiveTextAttributesPatch = JsonObject;
|
|
970
|
-
|
|
971
|
-
type LiveTextChange = {
|
|
972
|
-
/** Text was inserted at {@link LiveTextChange.index}. */
|
|
973
|
-
readonly type: "insert";
|
|
974
|
-
readonly index: number;
|
|
975
|
-
readonly text: string;
|
|
976
|
-
readonly attributes?: TextAttributes;
|
|
977
|
-
} | {
|
|
978
|
-
/** Text was deleted starting at {@link LiveTextChange.index}. */
|
|
979
|
-
readonly type: "delete";
|
|
980
|
-
readonly index: number;
|
|
981
|
-
readonly length: number;
|
|
982
|
-
readonly deletedText: string;
|
|
983
|
-
} | {
|
|
984
|
-
/** Inline attributes were updated on a range of text. */
|
|
985
|
-
readonly type: "format";
|
|
986
|
-
readonly index: number;
|
|
987
|
-
readonly length: number;
|
|
988
|
-
readonly attributes: LiveTextAttributesPatch;
|
|
989
|
-
};
|
|
990
|
-
/** Notification payload when a {@link LiveText} node changes. */
|
|
991
|
-
type LiveTextUpdates = {
|
|
992
|
-
type: "LiveText";
|
|
993
|
-
node: LiveText;
|
|
994
|
-
version: number;
|
|
995
|
-
updates: LiveTextChange[];
|
|
996
|
-
};
|
|
997
|
-
/**
|
|
998
|
-
* @private
|
|
999
|
-
*
|
|
1000
|
-
* Private methods on a LiveText node. As a user of Liveblocks, NEVER USE ANY
|
|
1001
|
-
* OF THESE DIRECTLY, because bad things will probably happen if you do.
|
|
1002
|
-
*/
|
|
1003
|
-
type PrivateLiveTextApi = {
|
|
1004
|
-
/**
|
|
1005
|
-
* Encode a local-document index into server-confirmed coordinates suitable
|
|
1006
|
-
* for broadcasting to peers via presence or any other side channel. Pair
|
|
1007
|
-
* the result with {@link LiveText.version} at the same instant when
|
|
1008
|
-
* sending.
|
|
1009
|
-
*/
|
|
1010
|
-
encodeIndex(localIndex: number): number;
|
|
1011
|
-
/**
|
|
1012
|
-
* Decode an `(index, fromVersion)` pair from a peer into an offset in this
|
|
1013
|
-
* LiveText's current local document.
|
|
1014
|
-
*/
|
|
1015
|
-
decodeIndex(index: number, fromVersion: number): number | null;
|
|
1016
|
-
};
|
|
1017
|
-
|
|
1018
|
-
/**
|
|
1019
|
-
* LiveText is a collaborative rich-text primitive built on server-ordered
|
|
1020
|
-
* operational transformation.
|
|
1021
|
-
*
|
|
1022
|
-
* Use it to store plain text with optional inline formatting attributes in
|
|
1023
|
-
* Liveblocks Storage. Each document is a flat sequence of text segments; it
|
|
1024
|
-
* cannot contain child Storage structures.
|
|
1025
|
-
*
|
|
1026
|
-
* Outbound model (one-in-flight): at most one UpdateTextOp per node is
|
|
1027
|
-
* awaiting server acknowledgement at any time. Local edits made while an op
|
|
1028
|
-
* is in flight are queued and sent (composed into a single op) once the ack
|
|
1029
|
-
* arrives. This guarantees every wire op is expressed against server-state
|
|
1030
|
-
* coordinates, so the server can transform it over exactly the (foreign)
|
|
1031
|
-
* ops the client hadn't seen — never over the client's own pending ops.
|
|
1032
|
-
*
|
|
1033
|
-
* Inbound model: accepted remote ops are transformed over the local pending
|
|
1034
|
-
* ops before being applied ("before" order: the accepted op wins ties), and
|
|
1035
|
-
* the pending ops are re-expressed over the remote op in turn ("after"
|
|
1036
|
-
* order), keeping them in server coordinates at all times.
|
|
1037
|
-
*
|
|
1038
|
-
* @example
|
|
1039
|
-
* const text = new LiveText("Hello");
|
|
1040
|
-
* text.insert(5, " world");
|
|
1041
|
-
* text.format(0, 5, { bold: true });
|
|
1042
|
-
*
|
|
1043
|
-
* // [["Hello", { bold: true }], [" world"]]
|
|
1044
|
-
* text.toJSON();
|
|
1045
|
-
*
|
|
1046
|
-
* @example
|
|
1047
|
-
* // Use in Storage
|
|
1048
|
-
* declare global {
|
|
1049
|
-
* interface Liveblocks {
|
|
1050
|
-
* Storage: { document: LiveText };
|
|
1051
|
-
* }
|
|
1052
|
-
* }
|
|
1053
|
-
*
|
|
1054
|
-
* const { root } = await room.getStorage();
|
|
1055
|
-
* root.get("document").replace(0, root.get("document").length, "Updated");
|
|
1056
|
-
*/
|
|
1057
|
-
declare class LiveText extends AbstractCrdt {
|
|
1058
|
-
#private;
|
|
1059
|
-
/**
|
|
1060
|
-
* @private
|
|
1061
|
-
*
|
|
1062
|
-
* Private methods and variables used in the core internals, but as a user
|
|
1063
|
-
* of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
|
|
1064
|
-
* will probably happen if you do.
|
|
1065
|
-
*/
|
|
1066
|
-
readonly [kInternal]: PrivateLiveTextApi;
|
|
1067
|
-
/**
|
|
1068
|
-
* Creates a new LiveText document.
|
|
1069
|
-
*
|
|
1070
|
-
* @param textOrData Initial plain text, or an array of `[text]` /
|
|
1071
|
-
* `[text, attributes]` segments. Defaults to an empty document.
|
|
1072
|
-
*
|
|
1073
|
-
* @example
|
|
1074
|
-
* new LiveText();
|
|
1075
|
-
* new LiveText("Hello world");
|
|
1076
|
-
* new LiveText([["Hello ", { bold: true }], ["world"]]);
|
|
1077
|
-
*/
|
|
1078
|
-
constructor(textOrData?: string | LiveTextData, version?: number);
|
|
1079
|
-
get version(): number;
|
|
1080
|
-
get length(): number;
|
|
1081
|
-
/**
|
|
1082
|
-
* Inserts text at the given index.
|
|
1083
|
-
*
|
|
1084
|
-
* @param index Character index at which to insert. Values outside the
|
|
1085
|
-
* document range are clipped.
|
|
1086
|
-
* @param text Text to insert.
|
|
1087
|
-
* @param attributes Optional inline attributes for the inserted text.
|
|
1088
|
-
*
|
|
1089
|
-
* @example
|
|
1090
|
-
* const text = new LiveText("Hello");
|
|
1091
|
-
* text.insert(5, " world");
|
|
1092
|
-
* text.insert(0, "Say: ", { italic: true });
|
|
1093
|
-
*/
|
|
1094
|
-
insert(index: number, text: string, attributes?: TextAttributes): void;
|
|
1095
|
-
/**
|
|
1096
|
-
* Deletes `length` characters starting at `index`.
|
|
1097
|
-
*
|
|
1098
|
-
* @example
|
|
1099
|
-
* const text = new LiveText("Hello world");
|
|
1100
|
-
* text.delete(5, 6); // "Hello"
|
|
1101
|
-
*/
|
|
1102
|
-
delete(index: number, length: number): void;
|
|
1103
|
-
/**
|
|
1104
|
-
* Replaces a range of text with new text.
|
|
1105
|
-
*
|
|
1106
|
-
* @example
|
|
1107
|
-
* const text = new LiveText("Hello world");
|
|
1108
|
-
* text.replace(0, 5, "Hi"); // "Hi world"
|
|
1109
|
-
*/
|
|
1110
|
-
replace(index: number, length: number, text: string, attributes?: TextAttributes): void;
|
|
1111
|
-
/**
|
|
1112
|
-
* Applies or removes inline attributes on a range of text.
|
|
1113
|
-
*
|
|
1114
|
-
* Set an attribute to `null` to remove it from the range.
|
|
1115
|
-
*
|
|
1116
|
-
* @example
|
|
1117
|
-
* const text = new LiveText("Hello world");
|
|
1118
|
-
* text.format(0, 5, { bold: true });
|
|
1119
|
-
* text.format(0, 5, { bold: null });
|
|
1120
|
-
*/
|
|
1121
|
-
format(index: number, length: number, attributes: LiveTextAttributesPatch): void;
|
|
1122
|
-
/** Returns the plain text content without attributes. Equivalent to joining the text from each segment in {@link LiveText.toJSON}. */
|
|
1123
|
-
toString(): string;
|
|
1124
|
-
/**
|
|
1125
|
-
* Returns a JSON-compatible snapshot of the document as a {@link LiveTextData}
|
|
1126
|
-
* array.
|
|
1127
|
-
*
|
|
1128
|
-
* @example
|
|
1129
|
-
* new LiveText([["Hello ", { bold: true }], ["world"]]).toJSON();
|
|
1130
|
-
* // [["Hello ", { bold: true }], ["world"]]
|
|
1131
|
-
*/
|
|
1132
|
-
toJSON(): LiveTextData;
|
|
1133
|
-
clone(): LiveText;
|
|
1134
|
-
}
|
|
1135
|
-
|
|
1136
857
|
type StorageCallback = (updates: StorageUpdate[]) => void;
|
|
1137
858
|
type LiveMapUpdate = LiveMapUpdates<string, Lson>;
|
|
1138
859
|
type LiveObjectUpdate = LiveObjectUpdates<LsonObject>;
|
|
1139
860
|
type LiveListUpdate = LiveListUpdates<Lson>;
|
|
1140
|
-
type LiveTextUpdate = LiveTextUpdates;
|
|
1141
|
-
type StorageUpdateSource = {
|
|
1142
|
-
origin: "remote";
|
|
1143
|
-
} | {
|
|
1144
|
-
origin: "local";
|
|
1145
|
-
via: "mutation";
|
|
1146
|
-
} | {
|
|
1147
|
-
origin: "local";
|
|
1148
|
-
via: "history";
|
|
1149
|
-
action: "undo" | "redo";
|
|
1150
|
-
};
|
|
1151
861
|
/**
|
|
1152
862
|
* The payload of notifications sent (in-client) when LiveStructures change.
|
|
1153
863
|
* Messages of this kind are not originating from the network, but are 100%
|
|
1154
864
|
* in-client.
|
|
1155
|
-
*
|
|
1156
|
-
* Updates delivered through `room.subscribe` may carry
|
|
1157
|
-
* `[kStorageUpdateSource]` to distinguish where a mutation came from.
|
|
1158
|
-
* Undo/redo replays use `via: "history"` with `action: "undo" | "redo"`.
|
|
1159
865
|
*/
|
|
1160
|
-
type StorageUpdate =
|
|
1161
|
-
[kStorageUpdateSource]?: StorageUpdateSource;
|
|
1162
|
-
};
|
|
866
|
+
type StorageUpdate = LiveMapUpdate | LiveObjectUpdate | LiveListUpdate;
|
|
1163
867
|
|
|
1164
868
|
/**
|
|
1165
869
|
* Read-only query surface over {@link UnacknowledgedOps}, handed to CRDTs so
|
|
@@ -1185,16 +889,6 @@ interface ReadonlyUnacknowledgedOps {
|
|
|
1185
889
|
isPossiblyStored(opId: string): boolean;
|
|
1186
890
|
}
|
|
1187
891
|
|
|
1188
|
-
type DispatchOptions = {
|
|
1189
|
-
/**
|
|
1190
|
-
* Whether this dispatch should clear the redo stack. Defaults to true when
|
|
1191
|
-
* any forward ops are included (a fresh local mutation), false otherwise.
|
|
1192
|
-
* LiveText uses this to dispatch queued ops after an acknowledgement
|
|
1193
|
-
* (which should not clear redo), and to register fresh local edits that
|
|
1194
|
-
* don't carry wire ops yet (which should).
|
|
1195
|
-
*/
|
|
1196
|
-
clearRedoStack?: boolean;
|
|
1197
|
-
};
|
|
1198
892
|
/**
|
|
1199
893
|
* The managed pool is a namespace registry (i.e. a context) that "owns" all
|
|
1200
894
|
* the individual live nodes, ensuring each one has a unique ID, and holding on
|
|
@@ -1214,7 +908,7 @@ interface ManagedPool {
|
|
|
1214
908
|
* - Add reverse operations to the undo/redo stack
|
|
1215
909
|
* - Notify room subscribers with updates (in-client, no networking)
|
|
1216
910
|
*/
|
|
1217
|
-
dispatch: (ops: ClientWireOp[], reverseOps: Op[], storageUpdates: Map<string, StorageUpdate
|
|
911
|
+
dispatch: (ops: ClientWireOp[], reverseOps: Op[], storageUpdates: Map<string, StorageUpdate>) => void;
|
|
1218
912
|
/**
|
|
1219
913
|
* Ensures storage can be written to else throws an error.
|
|
1220
914
|
* This is used to prevent writing to storage when the user does not have
|
|
@@ -1239,7 +933,7 @@ type CreateManagedPoolOptions = {
|
|
|
1239
933
|
/**
|
|
1240
934
|
* Will get invoked when any Live structure calls .dispatch() on the pool.
|
|
1241
935
|
*/
|
|
1242
|
-
onDispatch?: (ops: ClientWireOp[], reverse: Op[], storageUpdates: Map<string, StorageUpdate
|
|
936
|
+
onDispatch?: (ops: ClientWireOp[], reverse: Op[], storageUpdates: Map<string, StorageUpdate>) => void;
|
|
1243
937
|
/**
|
|
1244
938
|
* Will get invoked when any Live structure calls .assertStorageIsWritable()
|
|
1245
939
|
* on the pool. Defaults to true when not provided. Return false if you want
|
|
@@ -1419,7 +1113,7 @@ declare class LiveRegister<TValue extends Json> extends AbstractCrdt {
|
|
|
1419
1113
|
clone(): TValue;
|
|
1420
1114
|
}
|
|
1421
1115
|
|
|
1422
|
-
type LiveStructure = LiveObject<LsonObject> | LiveList<Lson> | LiveMap<string, Lson
|
|
1116
|
+
type LiveStructure = LiveObject<LsonObject> | LiveList<Lson> | LiveMap<string, Lson>;
|
|
1423
1117
|
/**
|
|
1424
1118
|
* Think of Lson as a sibling of the Json data tree, except that the nested
|
|
1425
1119
|
* data structure can contain a mix of Json values and LiveStructure instances.
|
|
@@ -1455,7 +1149,7 @@ type ToJson<L extends Lson | LsonObject> = L extends LiveList<infer I extends Ls
|
|
|
1455
1149
|
readonly [K in keyof O]: ToJson<Exclude<O[K], undefined>> | (undefined extends O[K] ? undefined : never);
|
|
1456
1150
|
} : L extends LiveMap<infer KS extends string, infer V extends Lson> ? Lson extends V ? ReadonlyJsonObject : {
|
|
1457
1151
|
readonly [K in KS]: ToJson<V>;
|
|
1458
|
-
} : L extends
|
|
1152
|
+
} : L extends LsonObject ? string extends keyof L ? ReadonlyJsonObject : {
|
|
1459
1153
|
readonly [K in keyof L]: ToJson<Exclude<L[K], undefined>> | (undefined extends L[K] ? undefined : never);
|
|
1460
1154
|
} : L extends Json ? L : never;
|
|
1461
1155
|
|
|
@@ -1709,6 +1403,7 @@ type SearchCommentsResult = {
|
|
|
1709
1403
|
commentId: string;
|
|
1710
1404
|
content: string;
|
|
1711
1405
|
};
|
|
1406
|
+
type ThreadVisibility = "public" | "private";
|
|
1712
1407
|
/**
|
|
1713
1408
|
* Represents a thread of comments.
|
|
1714
1409
|
*/
|
|
@@ -1721,6 +1416,7 @@ type ThreadData<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> =
|
|
|
1721
1416
|
comments: CommentData<CM>[];
|
|
1722
1417
|
metadata: TM;
|
|
1723
1418
|
resolved: boolean;
|
|
1419
|
+
visibility: ThreadVisibility;
|
|
1724
1420
|
};
|
|
1725
1421
|
interface ThreadDataWithDeleteInfo<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ThreadData<TM, CM> {
|
|
1726
1422
|
deletedAt?: Date;
|
|
@@ -1983,6 +1679,7 @@ interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
|
1983
1679
|
cursor?: string;
|
|
1984
1680
|
query?: {
|
|
1985
1681
|
resolved?: boolean;
|
|
1682
|
+
visibility?: ThreadVisibility;
|
|
1986
1683
|
subscribed?: boolean;
|
|
1987
1684
|
metadata?: Partial<QueryMetadata<TM>>;
|
|
1988
1685
|
};
|
|
@@ -2032,6 +1729,7 @@ interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
|
2032
1729
|
roomId: string;
|
|
2033
1730
|
threadId?: string;
|
|
2034
1731
|
commentId?: string;
|
|
1732
|
+
visibility?: ThreadVisibility;
|
|
2035
1733
|
metadata: TM | undefined;
|
|
2036
1734
|
commentMetadata: CM | undefined;
|
|
2037
1735
|
body: CommentBody;
|
|
@@ -2048,17 +1746,20 @@ interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
|
2048
1746
|
deleteThread({ roomId, threadId, }: {
|
|
2049
1747
|
roomId: string;
|
|
2050
1748
|
threadId: string;
|
|
1749
|
+
visibility?: ThreadVisibility;
|
|
2051
1750
|
}): Promise<void>;
|
|
2052
1751
|
editThreadMetadata({ roomId, metadata, threadId, }: {
|
|
2053
1752
|
roomId: string;
|
|
2054
1753
|
metadata: Patchable<TM>;
|
|
2055
1754
|
threadId: string;
|
|
1755
|
+
visibility?: ThreadVisibility;
|
|
2056
1756
|
}): Promise<TM>;
|
|
2057
1757
|
editCommentMetadata({ roomId, threadId, commentId, metadata, }: {
|
|
2058
1758
|
roomId: string;
|
|
2059
1759
|
threadId: string;
|
|
2060
1760
|
commentId: string;
|
|
2061
1761
|
metadata: Patchable<CM>;
|
|
1762
|
+
visibility?: ThreadVisibility;
|
|
2062
1763
|
}): Promise<CM>;
|
|
2063
1764
|
createComment({ roomId, threadId, commentId, body, metadata, attachmentIds, }: {
|
|
2064
1765
|
roomId: string;
|
|
@@ -2067,6 +1768,7 @@ interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
|
2067
1768
|
body: CommentBody;
|
|
2068
1769
|
metadata?: CM;
|
|
2069
1770
|
attachmentIds?: string[];
|
|
1771
|
+
visibility?: ThreadVisibility;
|
|
2070
1772
|
}): Promise<CommentData<CM>>;
|
|
2071
1773
|
editComment({ roomId, threadId, commentId, body, attachmentIds, metadata, }: {
|
|
2072
1774
|
roomId: string;
|
|
@@ -2075,31 +1777,37 @@ interface RoomHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> {
|
|
|
2075
1777
|
body: CommentBody;
|
|
2076
1778
|
attachmentIds?: string[];
|
|
2077
1779
|
metadata?: Patchable<CM>;
|
|
1780
|
+
visibility?: ThreadVisibility;
|
|
2078
1781
|
}): Promise<CommentData<CM>>;
|
|
2079
1782
|
deleteComment({ roomId, threadId, commentId, }: {
|
|
2080
1783
|
roomId: string;
|
|
2081
1784
|
threadId: string;
|
|
2082
1785
|
commentId: string;
|
|
1786
|
+
visibility?: ThreadVisibility;
|
|
2083
1787
|
}): Promise<void>;
|
|
2084
1788
|
addReaction({ roomId, threadId, commentId, emoji, }: {
|
|
2085
1789
|
roomId: string;
|
|
2086
1790
|
threadId: string;
|
|
2087
1791
|
commentId: string;
|
|
2088
1792
|
emoji: string;
|
|
1793
|
+
visibility?: ThreadVisibility;
|
|
2089
1794
|
}): Promise<CommentUserReaction>;
|
|
2090
1795
|
removeReaction({ roomId, threadId, commentId, emoji, }: {
|
|
2091
1796
|
roomId: string;
|
|
2092
1797
|
threadId: string;
|
|
2093
1798
|
commentId: string;
|
|
2094
1799
|
emoji: string;
|
|
1800
|
+
visibility?: ThreadVisibility;
|
|
2095
1801
|
}): Promise<void>;
|
|
2096
1802
|
markThreadAsResolved({ roomId, threadId, }: {
|
|
2097
1803
|
roomId: string;
|
|
2098
1804
|
threadId: string;
|
|
1805
|
+
visibility?: ThreadVisibility;
|
|
2099
1806
|
}): Promise<void>;
|
|
2100
1807
|
markThreadAsUnresolved({ roomId, threadId, }: {
|
|
2101
1808
|
roomId: string;
|
|
2102
1809
|
threadId: string;
|
|
1810
|
+
visibility?: ThreadVisibility;
|
|
2103
1811
|
}): Promise<void>;
|
|
2104
1812
|
subscribeToThread({ roomId, threadId, }: {
|
|
2105
1813
|
roomId: string;
|
|
@@ -2254,6 +1962,7 @@ interface LiveblocksHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> ex
|
|
|
2254
1962
|
cursor?: string;
|
|
2255
1963
|
query?: {
|
|
2256
1964
|
resolved?: boolean;
|
|
1965
|
+
visibility?: ThreadVisibility;
|
|
2257
1966
|
metadata?: Partial<QueryMetadata<TM>>;
|
|
2258
1967
|
};
|
|
2259
1968
|
}): Promise<{
|
|
@@ -2287,6 +1996,25 @@ interface LiveblocksHttpApi<TM extends BaseMetadata, CM extends BaseMetadata> ex
|
|
|
2287
1996
|
getGroup(groupId: string): Promise<GroupData | undefined>;
|
|
2288
1997
|
}
|
|
2289
1998
|
|
|
1999
|
+
/**
|
|
2000
|
+
* Use this symbol to brand an object property as internal.
|
|
2001
|
+
*
|
|
2002
|
+
* @example
|
|
2003
|
+
* Object.defineProperty(
|
|
2004
|
+
* {
|
|
2005
|
+
* public,
|
|
2006
|
+
* [kInternal]: {
|
|
2007
|
+
* private
|
|
2008
|
+
* },
|
|
2009
|
+
* },
|
|
2010
|
+
* kInternal,
|
|
2011
|
+
* {
|
|
2012
|
+
* enumerable: false,
|
|
2013
|
+
* }
|
|
2014
|
+
* );
|
|
2015
|
+
*/
|
|
2016
|
+
declare const kInternal: unique symbol;
|
|
2017
|
+
|
|
2290
2018
|
/**
|
|
2291
2019
|
* Back-port of TypeScript 5.4's built-in NoInfer utility type.
|
|
2292
2020
|
* See https://stackoverflow.com/a/56688073/148872
|
|
@@ -2404,6 +2132,7 @@ type CommentsOrNotificationsErrorContext = {
|
|
|
2404
2132
|
threadId: string;
|
|
2405
2133
|
commentId: string;
|
|
2406
2134
|
body: CommentBody;
|
|
2135
|
+
visibility: ThreadVisibility;
|
|
2407
2136
|
metadata: BaseMetadata;
|
|
2408
2137
|
commentMetadata: BaseMetadata;
|
|
2409
2138
|
} | {
|
|
@@ -3842,6 +3571,7 @@ type GetThreadsOptions<TM extends BaseMetadata> = {
|
|
|
3842
3571
|
cursor?: string;
|
|
3843
3572
|
query?: {
|
|
3844
3573
|
resolved?: boolean;
|
|
3574
|
+
visibility?: ThreadVisibility;
|
|
3845
3575
|
subscribed?: boolean;
|
|
3846
3576
|
metadata?: Partial<QueryMetadata<TM>>;
|
|
3847
3577
|
};
|
|
@@ -4200,6 +3930,7 @@ type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUs
|
|
|
4200
3930
|
createThread(options: {
|
|
4201
3931
|
threadId?: string;
|
|
4202
3932
|
commentId?: string;
|
|
3933
|
+
visibility?: ThreadVisibility;
|
|
4203
3934
|
metadata: TM | undefined;
|
|
4204
3935
|
body: CommentBody;
|
|
4205
3936
|
commentMetadata?: CM;
|
|
@@ -4417,14 +4148,7 @@ interface SyncSource {
|
|
|
4417
4148
|
*/
|
|
4418
4149
|
type PrivateRoomApi = {
|
|
4419
4150
|
presenceBuffer: Json | undefined;
|
|
4420
|
-
undoStack: readonly
|
|
4421
|
-
readonly id: number;
|
|
4422
|
-
readonly frames: readonly Readonly<Stackframe<JsonObject>>[];
|
|
4423
|
-
}[];
|
|
4424
|
-
redoStack: readonly {
|
|
4425
|
-
readonly id: number;
|
|
4426
|
-
readonly frames: readonly Readonly<Stackframe<JsonObject>>[];
|
|
4427
|
-
}[];
|
|
4151
|
+
undoStack: readonly (readonly Readonly<Stackframe<JsonObject>>[])[];
|
|
4428
4152
|
nodeCount: number;
|
|
4429
4153
|
getYjsProvider(): IYjsProvider | undefined;
|
|
4430
4154
|
setYjsProvider(provider: IYjsProvider | undefined): void;
|
|
@@ -4432,6 +4156,7 @@ type PrivateRoomApi = {
|
|
|
4432
4156
|
getSelf_forDevTools(): UserTreeNode | null;
|
|
4433
4157
|
getOthers_forDevTools(): readonly UserTreeNode[];
|
|
4434
4158
|
reportTextEditor(editor: TextEditorType, rootKey: string): Promise<void>;
|
|
4159
|
+
getPermissionMatrix(): PermissionMatrix | undefined;
|
|
4435
4160
|
createTextMention(mentionId: string, mention: MentionData): Promise<void>;
|
|
4436
4161
|
deleteTextMention(mentionId: string): Promise<void>;
|
|
4437
4162
|
listTextVersions(): Promise<{
|
|
@@ -4459,21 +4184,6 @@ type PrivateRoomApi = {
|
|
|
4459
4184
|
incomingMessage(data: string): void;
|
|
4460
4185
|
};
|
|
4461
4186
|
attachmentUrlsStore: BatchStore<string, string>;
|
|
4462
|
-
readonly history: Observable<{
|
|
4463
|
-
action: "push";
|
|
4464
|
-
id: number;
|
|
4465
|
-
} | {
|
|
4466
|
-
action: "undo";
|
|
4467
|
-
id: number;
|
|
4468
|
-
} | {
|
|
4469
|
-
action: "redo";
|
|
4470
|
-
id: number;
|
|
4471
|
-
} | {
|
|
4472
|
-
action: "clear";
|
|
4473
|
-
} | {
|
|
4474
|
-
action: "discard";
|
|
4475
|
-
ids: number[];
|
|
4476
|
-
}>;
|
|
4477
4187
|
};
|
|
4478
4188
|
type Stackframe<P extends JsonObject> = Op | PresenceStackframe<P>;
|
|
4479
4189
|
type PresenceStackframe<P extends JsonObject> = {
|
|
@@ -5373,12 +5083,7 @@ type PlainLsonList = {
|
|
|
5373
5083
|
liveblocksType: "LiveList";
|
|
5374
5084
|
data: PlainLson[];
|
|
5375
5085
|
};
|
|
5376
|
-
type
|
|
5377
|
-
liveblocksType: "LiveText";
|
|
5378
|
-
data: LiveTextData;
|
|
5379
|
-
version?: number;
|
|
5380
|
-
};
|
|
5381
|
-
type PlainLson = PlainLsonObject | PlainLsonMap | PlainLsonList | PlainLsonText | Json;
|
|
5086
|
+
type PlainLson = PlainLsonObject | PlainLsonMap | PlainLsonList | Json;
|
|
5382
5087
|
|
|
5383
5088
|
/**
|
|
5384
5089
|
* Returns PlainLson for a given Json or LiveStructure, suitable for calling the storage init api
|
|
@@ -6093,4 +5798,4 @@ type EnsureJson<T> = T extends Json ? T : T extends Array<infer I> ? (EnsureJson
|
|
|
6093
5798
|
[K in keyof T as EnsureJson<T[K]> extends never ? never : K]: EnsureJson<T[K]>;
|
|
6094
5799
|
};
|
|
6095
5800
|
|
|
6096
|
-
export { type AccessLevel, 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 ChildStorageNode, type Client, type ClientMsg, ClientMsgCode, type ClientOptions, type ClientWireOp, 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 CompactChildNode, type CompactListNode, type CompactMapNode, type CompactNode, type CompactObjectNode, type CompactRegisterNode, type CompactRootNode, type
|
|
5801
|
+
export { type AccessLevel, 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 ChildStorageNode, type Client, type ClientMsg, ClientMsgCode, type ClientOptions, type ClientWireOp, 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 CompactChildNode, type CompactListNode, type CompactMapNode, type CompactNode, type CompactObjectNode, type CompactRegisterNode, type CompactRootNode, 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 DFM, type DFMD, 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 Feed, type FeedCreateMetadata, type FeedDeletedServerMsg, type FeedFetchMetadataFilter, type FeedMessage, type FeedMessagesAddedServerMsg, type FeedMessagesDeletedServerMsg, type FeedMessagesListServerMsg, type FeedMessagesUpdatedServerMsg, type FeedRequestError, FeedRequestErrorCode, type FeedRequestFailedServerMsg, type FeedUpdateMetadata, type FeedsAddedServerMsg, type FeedsEventServerMsg, type FeedsListServerMsg, type FeedsUpdatedServerMsg, type FetchStorageClientMsg, type FetchYDocClientMsg, type GetThreadsOptions, type GroupData, type GroupDataPlain, type GroupMemberData, type GroupMentionData, type GroupScopes, type HasOpId, type History, type HistoryVersion, HttpError, type ISODateString, type ISignal, type IUserInfo, type IWebSocket, type IWebSocketCloseEvent, type IWebSocketEvent, type IWebSocketInstance, type IWebSocketMessageEvent, type IYjsProvider, type IgnoredOp, type Immutable, type InboxNotificationCustomData, type InboxNotificationCustomDataPlain, type InboxNotificationData, type InboxNotificationDataPlain, type InboxNotificationDeleteInfo, type InboxNotificationTextMentionData, type InboxNotificationTextMentionDataPlain, type InboxNotificationThreadData, type InboxNotificationThreadDataPlain, type InferFromSchema, type Json, type JsonArray, type JsonObject, type JsonScalar, type KDAD, type LayerKey, type ListStorageNode, 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 MapStorageNode, type MentionData, type MessageId, MutableSignal, type NoInfr, type NodeMap, type NodeStream, type NotificationChannel, type NotificationChannelSettings, type NotificationKind, type NotificationSettings, type NotificationSettingsPlain, type ObjectStorageNode, type Observable, type Op, OpCode, type OpaqueClient, type OpaqueRoom, type OptionalTupleUnless, type OthersEvent, type ParentToChildNodeMap, type PartialNotificationSettings, type PartialUnless, type Patchable, Permission, type PermissionMatrix, type PermissionResources, type PlainLson, type PlainLsonFields, type PlainLsonList, type PlainLsonMap, type PlainLsonObject, type Poller, type PrivateClientApi, type PrivateRoomApi, Promise_withResolvers, type QueryMetadata, type QueryParams, type ReadonlyJson, type ReadonlyJsonObject, type RegisterStorageNode, type RejectedStorageOpServerMsg, type Relax, type RenderableToolResultResponse, type RequiredAccessLevel, type Resolve, type ResolveGroupsInfoArgs, type ResolveMentionSuggestionsArgs, type ResolveRoomsInfoArgs, type ResolveUsersArgs, type Room, type RoomAccesses, type RoomEventMessage, type RoomPermissions, type RoomStateServerMsg, type RoomSubscriptionSettings, type RootStorageNode, type SearchCommentsResult, type SerializedChild, type SerializedCrdt, type SerializedList, type SerializedMap, type SerializedObject, type SerializedRegister, type SerializedRootObject, type ServerMsg, ServerMsgCode, type ServerWireOp, type SetParentKeyOp, Signal, type SignalType, SortedList, type Status, type StorageChunkServerMsg, type StorageNode, type StorageStatus, type StorageUpdate, type StringifyCommentBodyElements, type StringifyCommentBodyOptions, type SubscriptionData, type SubscriptionDataPlain, type SubscriptionDeleteInfo, type SubscriptionDeleteInfoPlain, type SubscriptionKey, type SyncConfig, type SyncMode, type SyncSource, type SyncStatus, TextEditorType, type ThreadData, type ThreadDataPlain, type ThreadDataWithDeleteInfo, type ThreadDeleteInfo, type ThreadVisibility, type ToJson, type ToolResultResponse, type URLSafeString, type UnsubscribeCallback, type UpdateObjectOp, type UpdatePresenceClientMsg, type UpdatePresenceServerMsg, type UpdateRoomAccesses, 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, compactNodesToNodeStream, compactObject, fancyConsole as console, convertToCommentData, convertToCommentUserReaction, convertToGroupData, convertToInboxNotificationData, convertToSubscriptionData, convertToThreadData, convertToUserSubscriptionData, createClient, createCommentAttachmentId, createCommentId, createInboxNotificationId, createManagedPool, createNotificationSettings, createThreadId, deepLiveify, defineAiTool, deprecate, deprecateIf, detectDupes, entries, errorIf, findLastIndex, freeze, generateUrl, getMentionsFromCommentBody, getSubscriptionKey, hasPermissionAccess, html, htmlSafe, isCommentBodyLink, isCommentBodyMention, isCommentBodyText, isJsonArray, isJsonObject, isJsonScalar, isListStorageNode, isLiveNode, isMapStorageNode, isNotificationChannelEnabled, isNumberOperator, isObjectStorageNode, isPlainObject, isRegisterStorageNode, isRootStorageNode, isStartsWithOperator, isUrl, kInternal, keys, makeAbortController, makeEventSource, makePoller, makePosition, mapValues, memoizeOnSuccess, mergeRoomPermissionScopes, nanoid, nn, nodeStreamToCompactNodes, normalizeRoomAccesses, normalizeRoomPermissions, normalizeUpdateRoomAccesses, objectToQuery, patchNotificationSettings, permissionMatrixFromScopes, raise, resolveMentionsInCommentBody, sanitizeUrl, shallow, shallow2, stableStringify, stringifyCommentBody, throwUsageError, toPlainLson, tryParseJson, url, urljoin, validatePermissionsSet, wait, warnOnce, warnOnceIf, withTimeout };
|