@@ -27,35 +27,40 @@ export type JsonCrdtLogicalTimestamp = [sessionId: number, time: number];
2727export type JsonCrdtServerTimestamp = number ;
2828
2929/**
30- * LWW JSON object node .
30+ * A constant immutable JSON value .
3131 */
32- export interface ObjectJsonCrdtNode {
33- type : 'obj ' ;
32+ export interface ConstantJsonCrdtNode {
33+ type : 'con ' ;
3434 id : JsonCrdtTimestamp ;
35- keys : Record < string , JsonCrdtNode > ;
35+ timestamp ?: boolean ;
36+ value ?: unknown | JsonCrdtTimestamp ;
3637}
3738
3839/**
39- * Tuple ( LWW JSON array) node .
40+ * LWW register for any JSON value .
4041 */
41- export interface TupleJsonCrdtNode {
42- type : 'tup ' ;
42+ export interface ValueJsonCrdtNode {
43+ type : 'val ' ;
4344 id : JsonCrdtTimestamp ;
44- components : ( null | JsonCrdtNode ) [ ] ;
45+ value : JsonCrdtNode ;
4546}
4647
4748/**
48- * RGA JSON array node.
49+ * LWW JSON object node.
4950 */
50- export interface ArrayJsonCrdtNode {
51- type : 'arr ' ;
51+ export interface ObjectJsonCrdtNode {
52+ type : 'obj ' ;
5253 id : JsonCrdtTimestamp ;
53- chunks : ( ArrayJsonCrdtChunk | JsonCrdtRgaTombstone ) [ ] ;
54+ keys : Record < string , JsonCrdtNode > ;
5455}
5556
56- export interface ArrayJsonCrdtChunk {
57+ /**
58+ * Tuple (LWW JSON array) node.
59+ */
60+ export interface TupleJsonCrdtNode {
61+ type : 'tup' ;
5762 id : JsonCrdtTimestamp ;
58- nodes : JsonCrdtNode [ ] ;
63+ components : ( null | JsonCrdtNode ) [ ] ;
5964}
6065
6166/**
@@ -87,30 +92,25 @@ export interface BinaryJsonCrdtChunk {
8792}
8893
8994/**
90- * A tombstone used in RGA nodes .
95+ * RGA JSON array node .
9196 */
92- export interface JsonCrdtRgaTombstone {
97+ export interface ArrayJsonCrdtNode {
98+ type : 'arr' ;
9399 id : JsonCrdtTimestamp ;
94- span : number ;
100+ chunks : ( ArrayJsonCrdtChunk | JsonCrdtRgaTombstone ) [ ] ;
95101}
96102
97- /**
98- * LWW register for any JSON value.
99- */
100- export interface ValueJsonCrdtNode {
101- type : 'val' ;
103+ export interface ArrayJsonCrdtChunk {
102104 id : JsonCrdtTimestamp ;
103- value : JsonCrdtNode ;
105+ nodes : JsonCrdtNode [ ] ;
104106}
105107
106108/**
107- * A constant immutable JSON value .
109+ * A tombstone used in RGA nodes .
108110 */
109- export interface ConstantJsonCrdtNode {
110- type : 'con' ;
111+ export interface JsonCrdtRgaTombstone {
111112 id : JsonCrdtTimestamp ;
112- timestamp ?: boolean ;
113- value ?: unknown | JsonCrdtTimestamp ;
113+ span : number ;
114114}
115115
116116export type JsonCrdtNode =
0 commit comments