@pluv/crdt-loro 0.19.0 → 0.21.0

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.
@@ -1,18 +1,18 @@
1
1
 
2
- > @pluv/crdt-loro@0.19.0 build /home/runner/work/pluv/pluv/packages/crdt-loro
2
+ > @pluv/crdt-loro@0.21.0 build /home/runner/work/pluv/pluv/packages/crdt-loro
3
3
  > tsup src/index.ts --format esm,cjs --dts
4
4
 
5
- CLI Building entry: src/index.ts
6
- CLI Using tsconfig: tsconfig.json
7
- CLI tsup v8.1.0
8
- CLI Target: es6
9
- ESM Build start
10
- CJS Build start
11
- ESM dist/index.mjs 18.22 KB
12
- ESM ⚡️ Build success in 114ms
13
- CJS dist/index.js 19.23 KB
14
- CJS ⚡️ Build success in 114ms
15
- DTS Build start
16
- DTS ⚡️ Build success in 2568ms
17
- DTS dist/index.d.mts 7.04 KB
18
- DTS dist/index.d.ts 7.04 KB
5
+ CLI Building entry: src/index.ts
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v8.2.4
8
+ CLI Target: es6
9
+ ESM Build start
10
+ CJS Build start
11
+ CJS dist/index.js 9.39 KB
12
+ CJS ⚡️ Build success in 109ms
13
+ ESM dist/index.mjs 8.33 KB
14
+ ESM ⚡️ Build success in 110ms
15
+ DTS Build start
16
+ DTS ⚡️ Build success in 2133ms
17
+ DTS dist/index.d.mts 3.43 KB
18
+ DTS dist/index.d.ts 3.43 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,89 @@
1
1
  # @pluv/crdt-loro
2
2
 
3
+ ## 0.21.0
4
+
5
+ ### Patch Changes
6
+
7
+ - @pluv/crdt@0.21.0
8
+ - @pluv/types@0.21.0
9
+
10
+ ## 0.20.0
11
+
12
+ ### Minor Changes
13
+
14
+ - 9492085: **BREAKING**: `@pluv/crdt-yjs` and `@pluv/crdt-loro` have been updated so that the utilities to create shared-types/containers no-longer return a wrapper around the underlying shared-types and containers, but rather return the shared-types/containers directly.
15
+
16
+ This means that for methods such as `getStorage` from `@pluv/client` and `useStorage` from `@pluv/react`, the shared-types/containers are also returned instead of the wrapper types.
17
+
18
+ The motivation for these changes are so that pluv.io is supplementary to `yjs` and `loro-crdt`, instead of having these libraries be an internal implementation of pluv.io.
19
+
20
+ ```ts
21
+ // Before
22
+
23
+ import { yjs } from "@pluv/crdt-yjs";
24
+
25
+ yjs.array([]); // Returns CrdtYjsArray
26
+ yjs.object([]); // Returns CrdtYjsObject
27
+
28
+ const room: PluvRoom = /* ... */;
29
+
30
+ room.getStorage("messages"); // Returns AbstractCrdtType
31
+
32
+ const [, sharedType] = useStorage("messages"); // sharedType is an AbstractCrdtType
33
+ ```
34
+
35
+ ```ts
36
+ // Now
37
+
38
+ import { yjs } from "@pluv/crdt-yjs";
39
+
40
+ yjs.array([]); // Returns yjs.Array
41
+ yjs.object([]); // Returns yjs.Map
42
+
43
+ const room: PluvRoom = /* ... */;
44
+
45
+ room.getStorage("messages"); // Returns yjs.AbstractType
46
+
47
+ const [, sharedType] = useStorage("messages"); // sharedType is a yjs.AbstractType
48
+ ```
49
+
50
+ For `@pluv/crdt-loro` specifically, `@pluv/client` relies on [loro events and subscriptions](https://www.loro.dev/docs/tutorial/get_started#event) to detect changes. The `AbstractLoroCrdt` types previously called `Loro.commit` after each change as an abstraction, but now this no-longer happens. To ensure that changes to loro containers are properly handled in `@pluv/react`, make sure to commit your changes whenever possible:
51
+
52
+ ```ts
53
+ // Before
54
+
55
+ const [data, container] = useStorage("messages");
56
+
57
+ // This automatically called Loro.commit under the hood and rerendered the page with updated data.
58
+ container.push(loro.object({ name: "John Doe", age: 35 }));
59
+ ```
60
+
61
+ ```ts
62
+ // Now
63
+
64
+ const [data, container] = useStorage("messages");
65
+
66
+ const doc = useDoc();
67
+ const transact = useTransact();
68
+
69
+ // Updates need to be committed back to the doc whenever the changes need to be emitted to other users
70
+ // The returned data also will not update until the changes are commited
71
+
72
+ // The two operations below are functionally equivalent
73
+ transact(() => {
74
+ container.push(loro.object({ name: "John Doe", age: 35 }));
75
+ });
76
+
77
+ container.push(loro.object({ name: "John Doe", age: 35 }));
78
+ doc.value.commit();
79
+ ```
80
+
81
+ ### Patch Changes
82
+
83
+ - Updated dependencies [9492085]
84
+ - @pluv/crdt@0.20.0
85
+ - @pluv/types@0.20.0
86
+
3
87
  ## 0.19.0
4
88
 
5
89
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,8 +1,12 @@
1
- import { AbstractCrdtType, AbstractCrdtDoc, DocApplyEncodedStateParams, InferCrdtStorageJson, DocSubscribeCallbackParams, AbstractCrdtDocFactory } from '@pluv/crdt';
2
- import { Loro, LoroMap, LoroText, LoroList } from 'loro-crdt';
3
- import { Json } from '@pluv/types';
1
+ import { CrdtType, AbstractCrdtDoc, DocApplyEncodedStateParams, InferCrdtJson, DocSubscribeCallbackParams, AbstractCrdtDocFactory } from '@pluv/crdt';
2
+ import { Loro, LoroList, LoroMap, LoroText } from 'loro-crdt';
4
3
 
5
- declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any, any>>> extends AbstractCrdtDoc<TStorage> {
4
+ type LoroType<TValue extends unknown, TJson extends unknown = any> = TValue & CrdtType<TValue, TJson> & {
5
+ toJSON?: () => any;
6
+ toString?: () => string;
7
+ };
8
+
9
+ declare class CrdtLoroDoc<TStorage extends Record<string, LoroType<any, any>>> extends AbstractCrdtDoc<TStorage> {
6
10
  value: Loro;
7
11
  private _storage;
8
12
  constructor(value?: TStorage);
@@ -22,7 +26,8 @@ declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any,
22
26
  get(key?: undefined): TStorage;
23
27
  get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
24
28
  getEncodedState(): string;
25
- toJson(): InferCrdtStorageJson<TStorage>;
29
+ toJson(): InferCrdtJson<TStorage>;
30
+ toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
26
31
  isEmpty(): boolean;
27
32
  /**
28
33
  * TODO
@@ -47,89 +52,7 @@ declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any,
47
52
  undo(): this;
48
53
  }
49
54
 
50
- declare class CrdtLoroMap<T extends unknown> extends AbstractCrdtType<LoroMap<Record<string, T>>, Record<string, InferLoroJson<T>>> {
51
- readonly initialValue: readonly (readonly [key: string, value: T])[];
52
- private _doc;
53
- private _initialized;
54
- private _value;
55
- constructor(value?: readonly (readonly [key: string, value: T])[]);
56
- set doc(doc: CrdtLoroDoc<any>);
57
- get size(): number;
58
- get value(): LoroMap<Record<string, T>>;
59
- set value(value: LoroMap<Record<string, T>>);
60
- delete(prop: string): this;
61
- set(prop: string, value: T): this;
62
- toJson(): InferCrdtStorageJson<Record<string, InferLoroJson<T>>>;
63
- private _guardInitialized;
64
- }
65
-
66
- declare const map: <T extends unknown>(value?: readonly (readonly [key: string, value: T])[]) => CrdtLoroMap<T>;
67
-
68
- declare class CrdtLoroObject<T extends Record<string, any>> extends AbstractCrdtType<LoroMap<T>, InferLoroJson<T>> {
69
- readonly initialValue: readonly (readonly [key: string, value: T])[];
70
- private _doc;
71
- private _initialized;
72
- private _value;
73
- constructor(value: T);
74
- set doc(doc: CrdtLoroDoc<any>);
75
- get size(): number;
76
- get value(): LoroMap<T>;
77
- set value(value: LoroMap<T>);
78
- set(prop: string, value: T): this;
79
- toJson(): InferCrdtStorageJson<InferLoroJson<T>>;
80
- private _guardInitialized;
81
- }
82
-
83
- declare const object: <T extends Record<string, any>>(value: T) => CrdtLoroObject<T>;
84
-
85
- declare class CrdtLoroText extends AbstractCrdtType<LoroText, string> {
86
- initalValue: string;
87
- private _doc;
88
- private _initialized;
89
- private _value;
90
- constructor(value?: string);
91
- set doc(doc: CrdtLoroDoc<any>);
92
- get length(): number;
93
- get value(): LoroText;
94
- set value(value: LoroText);
95
- delete(index: number, length?: number): this;
96
- insert(index: number, text: string): this;
97
- toJson(): string;
98
- private _guardInitialized;
99
- }
100
-
101
- declare const text: (value?: string) => CrdtLoroText;
102
-
103
- type InferLoroType<T extends unknown> = T extends CrdtLoroArray<infer IType> ? LoroList<IType[]> : T extends CrdtLoroMap<infer IType> ? LoroMap<Record<string, IType>> : T extends CrdtLoroObject<infer IType> ? LoroMap<IType> : T extends CrdtLoroText ? LoroText : T extends Json ? T : never;
104
- type InferLoroJson<T extends unknown> = T extends CrdtLoroArray<infer IType> ? InferLoroJson<IType>[] : T extends CrdtLoroMap<infer IType> ? Record<string, InferLoroJson<IType>> : T extends CrdtLoroObject<infer IType> ? {
105
- [P in keyof IType]: InferLoroJson<IType[P]>;
106
- } : T extends CrdtLoroText | LoroText ? string : T extends LoroList<infer IType> ? InferLoroJson<IType> : T extends LoroMap<infer IType> ? {
107
- [P in keyof IType]: InferLoroJson<IType[P]>;
108
- } : T extends (infer IType)[] ? InferLoroJson<IType>[] : T extends Record<any, any> ? {
109
- [P in keyof T]: InferLoroJson<T[P]>;
110
- } : T extends Json ? T : never;
111
-
112
- declare class CrdtLoroArray<T extends unknown> extends AbstractCrdtType<LoroList<T[]>, InferLoroJson<T>[]> {
113
- readonly initialValue: T[] | readonly T[];
114
- private _doc;
115
- private _initialized;
116
- private _value;
117
- constructor(value?: T[] | readonly T[]);
118
- set doc(doc: CrdtLoroDoc<any>);
119
- get length(): number;
120
- get value(): LoroList<T[]>;
121
- set value(value: LoroList<T[]>);
122
- delete(index: number, length?: number): this;
123
- insert(index: number, ...items: T[]): this;
124
- push(...items: T[]): this;
125
- unshift(...items: T[]): this;
126
- toJson(): InferCrdtStorageJson<InferLoroJson<T>>[];
127
- private _guardInitialized;
128
- }
129
-
130
- declare const array: <T extends unknown>(value?: T[] | readonly T[]) => CrdtLoroArray<T>;
131
-
132
- declare class CrdtLoroDocFactory<TStorage extends Record<string, AbstractCrdtType<any, any>>> extends AbstractCrdtDocFactory<TStorage> {
55
+ declare class CrdtLoroDocFactory<TStorage extends Record<string, LoroType<any, any>>> extends AbstractCrdtDocFactory<TStorage> {
133
56
  private _initialStorage;
134
57
  constructor(initialStorage?: () => TStorage);
135
58
  getEmpty(): CrdtLoroDoc<TStorage>;
@@ -138,27 +61,26 @@ declare class CrdtLoroDocFactory<TStorage extends Record<string, AbstractCrdtTyp
138
61
  getInitialized(initialStorage?: () => TStorage): CrdtLoroDoc<TStorage>;
139
62
  }
140
63
 
141
- declare const doc: <TStorage extends Record<string, AbstractCrdtType<any, any>>>(value?: () => TStorage) => CrdtLoroDocFactory<TStorage>;
64
+ declare const doc: <TStorage extends Record<string, LoroType<any, any>>>(value?: () => TStorage) => CrdtLoroDocFactory<TStorage>;
65
+
66
+ declare const list: <T extends unknown>(value?: T[] | readonly T[]) => LoroType<LoroList<T>, T[]>;
67
+
68
+ declare const map: <T extends unknown>(value?: readonly (readonly [key: string, value: T])[]) => LoroType<LoroMap<Record<string, T>>, Record<string, T>>;
69
+
70
+ declare const object: <T extends Record<string, any>>(value: T) => LoroType<LoroMap<T>, T>;
71
+
72
+ declare const text: (value?: string) => LoroType<LoroText, string>;
142
73
 
143
- type loro_CrdtLoroArray<T extends unknown> = CrdtLoroArray<T>;
144
- declare const loro_CrdtLoroArray: typeof CrdtLoroArray;
145
- type loro_CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any, any>>> = CrdtLoroDoc<TStorage>;
74
+ type loro_CrdtLoroDoc<TStorage extends Record<string, LoroType<any, any>>> = CrdtLoroDoc<TStorage>;
146
75
  declare const loro_CrdtLoroDoc: typeof CrdtLoroDoc;
147
- type loro_CrdtLoroMap<T extends unknown> = CrdtLoroMap<T>;
148
- declare const loro_CrdtLoroMap: typeof CrdtLoroMap;
149
- type loro_CrdtLoroObject<T extends Record<string, any>> = CrdtLoroObject<T>;
150
- declare const loro_CrdtLoroObject: typeof CrdtLoroObject;
151
- type loro_CrdtLoroText = CrdtLoroText;
152
- declare const loro_CrdtLoroText: typeof CrdtLoroText;
153
- type loro_InferLoroJson<T extends unknown> = InferLoroJson<T>;
154
- type loro_InferLoroType<T extends unknown> = InferLoroType<T>;
155
- declare const loro_array: typeof array;
76
+ type loro_LoroType<TValue extends unknown, TJson extends unknown = any> = LoroType<TValue, TJson>;
156
77
  declare const loro_doc: typeof doc;
78
+ declare const loro_list: typeof list;
157
79
  declare const loro_map: typeof map;
158
80
  declare const loro_object: typeof object;
159
81
  declare const loro_text: typeof text;
160
82
  declare namespace loro {
161
- export { loro_CrdtLoroArray as CrdtLoroArray, loro_CrdtLoroDoc as CrdtLoroDoc, loro_CrdtLoroMap as CrdtLoroMap, loro_CrdtLoroObject as CrdtLoroObject, loro_CrdtLoroText as CrdtLoroText, type loro_InferLoroJson as InferLoroJson, type loro_InferLoroType as InferLoroType, loro_array as array, loro_doc as doc, loro_map as map, loro_object as object, loro_text as text };
83
+ export { loro_CrdtLoroDoc as CrdtLoroDoc, type loro_LoroType as LoroType, loro_doc as doc, loro_list as list, loro_map as map, loro_object as object, loro_text as text };
162
84
  }
163
85
 
164
86
  export { loro };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- import { AbstractCrdtType, AbstractCrdtDoc, DocApplyEncodedStateParams, InferCrdtStorageJson, DocSubscribeCallbackParams, AbstractCrdtDocFactory } from '@pluv/crdt';
2
- import { Loro, LoroMap, LoroText, LoroList } from 'loro-crdt';
3
- import { Json } from '@pluv/types';
1
+ import { CrdtType, AbstractCrdtDoc, DocApplyEncodedStateParams, InferCrdtJson, DocSubscribeCallbackParams, AbstractCrdtDocFactory } from '@pluv/crdt';
2
+ import { Loro, LoroList, LoroMap, LoroText } from 'loro-crdt';
4
3
 
5
- declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any, any>>> extends AbstractCrdtDoc<TStorage> {
4
+ type LoroType<TValue extends unknown, TJson extends unknown = any> = TValue & CrdtType<TValue, TJson> & {
5
+ toJSON?: () => any;
6
+ toString?: () => string;
7
+ };
8
+
9
+ declare class CrdtLoroDoc<TStorage extends Record<string, LoroType<any, any>>> extends AbstractCrdtDoc<TStorage> {
6
10
  value: Loro;
7
11
  private _storage;
8
12
  constructor(value?: TStorage);
@@ -22,7 +26,8 @@ declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any,
22
26
  get(key?: undefined): TStorage;
23
27
  get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
24
28
  getEncodedState(): string;
25
- toJson(): InferCrdtStorageJson<TStorage>;
29
+ toJson(): InferCrdtJson<TStorage>;
30
+ toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
26
31
  isEmpty(): boolean;
27
32
  /**
28
33
  * TODO
@@ -47,89 +52,7 @@ declare class CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any,
47
52
  undo(): this;
48
53
  }
49
54
 
50
- declare class CrdtLoroMap<T extends unknown> extends AbstractCrdtType<LoroMap<Record<string, T>>, Record<string, InferLoroJson<T>>> {
51
- readonly initialValue: readonly (readonly [key: string, value: T])[];
52
- private _doc;
53
- private _initialized;
54
- private _value;
55
- constructor(value?: readonly (readonly [key: string, value: T])[]);
56
- set doc(doc: CrdtLoroDoc<any>);
57
- get size(): number;
58
- get value(): LoroMap<Record<string, T>>;
59
- set value(value: LoroMap<Record<string, T>>);
60
- delete(prop: string): this;
61
- set(prop: string, value: T): this;
62
- toJson(): InferCrdtStorageJson<Record<string, InferLoroJson<T>>>;
63
- private _guardInitialized;
64
- }
65
-
66
- declare const map: <T extends unknown>(value?: readonly (readonly [key: string, value: T])[]) => CrdtLoroMap<T>;
67
-
68
- declare class CrdtLoroObject<T extends Record<string, any>> extends AbstractCrdtType<LoroMap<T>, InferLoroJson<T>> {
69
- readonly initialValue: readonly (readonly [key: string, value: T])[];
70
- private _doc;
71
- private _initialized;
72
- private _value;
73
- constructor(value: T);
74
- set doc(doc: CrdtLoroDoc<any>);
75
- get size(): number;
76
- get value(): LoroMap<T>;
77
- set value(value: LoroMap<T>);
78
- set(prop: string, value: T): this;
79
- toJson(): InferCrdtStorageJson<InferLoroJson<T>>;
80
- private _guardInitialized;
81
- }
82
-
83
- declare const object: <T extends Record<string, any>>(value: T) => CrdtLoroObject<T>;
84
-
85
- declare class CrdtLoroText extends AbstractCrdtType<LoroText, string> {
86
- initalValue: string;
87
- private _doc;
88
- private _initialized;
89
- private _value;
90
- constructor(value?: string);
91
- set doc(doc: CrdtLoroDoc<any>);
92
- get length(): number;
93
- get value(): LoroText;
94
- set value(value: LoroText);
95
- delete(index: number, length?: number): this;
96
- insert(index: number, text: string): this;
97
- toJson(): string;
98
- private _guardInitialized;
99
- }
100
-
101
- declare const text: (value?: string) => CrdtLoroText;
102
-
103
- type InferLoroType<T extends unknown> = T extends CrdtLoroArray<infer IType> ? LoroList<IType[]> : T extends CrdtLoroMap<infer IType> ? LoroMap<Record<string, IType>> : T extends CrdtLoroObject<infer IType> ? LoroMap<IType> : T extends CrdtLoroText ? LoroText : T extends Json ? T : never;
104
- type InferLoroJson<T extends unknown> = T extends CrdtLoroArray<infer IType> ? InferLoroJson<IType>[] : T extends CrdtLoroMap<infer IType> ? Record<string, InferLoroJson<IType>> : T extends CrdtLoroObject<infer IType> ? {
105
- [P in keyof IType]: InferLoroJson<IType[P]>;
106
- } : T extends CrdtLoroText | LoroText ? string : T extends LoroList<infer IType> ? InferLoroJson<IType> : T extends LoroMap<infer IType> ? {
107
- [P in keyof IType]: InferLoroJson<IType[P]>;
108
- } : T extends (infer IType)[] ? InferLoroJson<IType>[] : T extends Record<any, any> ? {
109
- [P in keyof T]: InferLoroJson<T[P]>;
110
- } : T extends Json ? T : never;
111
-
112
- declare class CrdtLoroArray<T extends unknown> extends AbstractCrdtType<LoroList<T[]>, InferLoroJson<T>[]> {
113
- readonly initialValue: T[] | readonly T[];
114
- private _doc;
115
- private _initialized;
116
- private _value;
117
- constructor(value?: T[] | readonly T[]);
118
- set doc(doc: CrdtLoroDoc<any>);
119
- get length(): number;
120
- get value(): LoroList<T[]>;
121
- set value(value: LoroList<T[]>);
122
- delete(index: number, length?: number): this;
123
- insert(index: number, ...items: T[]): this;
124
- push(...items: T[]): this;
125
- unshift(...items: T[]): this;
126
- toJson(): InferCrdtStorageJson<InferLoroJson<T>>[];
127
- private _guardInitialized;
128
- }
129
-
130
- declare const array: <T extends unknown>(value?: T[] | readonly T[]) => CrdtLoroArray<T>;
131
-
132
- declare class CrdtLoroDocFactory<TStorage extends Record<string, AbstractCrdtType<any, any>>> extends AbstractCrdtDocFactory<TStorage> {
55
+ declare class CrdtLoroDocFactory<TStorage extends Record<string, LoroType<any, any>>> extends AbstractCrdtDocFactory<TStorage> {
133
56
  private _initialStorage;
134
57
  constructor(initialStorage?: () => TStorage);
135
58
  getEmpty(): CrdtLoroDoc<TStorage>;
@@ -138,27 +61,26 @@ declare class CrdtLoroDocFactory<TStorage extends Record<string, AbstractCrdtTyp
138
61
  getInitialized(initialStorage?: () => TStorage): CrdtLoroDoc<TStorage>;
139
62
  }
140
63
 
141
- declare const doc: <TStorage extends Record<string, AbstractCrdtType<any, any>>>(value?: () => TStorage) => CrdtLoroDocFactory<TStorage>;
64
+ declare const doc: <TStorage extends Record<string, LoroType<any, any>>>(value?: () => TStorage) => CrdtLoroDocFactory<TStorage>;
65
+
66
+ declare const list: <T extends unknown>(value?: T[] | readonly T[]) => LoroType<LoroList<T>, T[]>;
67
+
68
+ declare const map: <T extends unknown>(value?: readonly (readonly [key: string, value: T])[]) => LoroType<LoroMap<Record<string, T>>, Record<string, T>>;
69
+
70
+ declare const object: <T extends Record<string, any>>(value: T) => LoroType<LoroMap<T>, T>;
71
+
72
+ declare const text: (value?: string) => LoroType<LoroText, string>;
142
73
 
143
- type loro_CrdtLoroArray<T extends unknown> = CrdtLoroArray<T>;
144
- declare const loro_CrdtLoroArray: typeof CrdtLoroArray;
145
- type loro_CrdtLoroDoc<TStorage extends Record<string, AbstractCrdtType<any, any>>> = CrdtLoroDoc<TStorage>;
74
+ type loro_CrdtLoroDoc<TStorage extends Record<string, LoroType<any, any>>> = CrdtLoroDoc<TStorage>;
146
75
  declare const loro_CrdtLoroDoc: typeof CrdtLoroDoc;
147
- type loro_CrdtLoroMap<T extends unknown> = CrdtLoroMap<T>;
148
- declare const loro_CrdtLoroMap: typeof CrdtLoroMap;
149
- type loro_CrdtLoroObject<T extends Record<string, any>> = CrdtLoroObject<T>;
150
- declare const loro_CrdtLoroObject: typeof CrdtLoroObject;
151
- type loro_CrdtLoroText = CrdtLoroText;
152
- declare const loro_CrdtLoroText: typeof CrdtLoroText;
153
- type loro_InferLoroJson<T extends unknown> = InferLoroJson<T>;
154
- type loro_InferLoroType<T extends unknown> = InferLoroType<T>;
155
- declare const loro_array: typeof array;
76
+ type loro_LoroType<TValue extends unknown, TJson extends unknown = any> = LoroType<TValue, TJson>;
156
77
  declare const loro_doc: typeof doc;
78
+ declare const loro_list: typeof list;
157
79
  declare const loro_map: typeof map;
158
80
  declare const loro_object: typeof object;
159
81
  declare const loro_text: typeof text;
160
82
  declare namespace loro {
161
- export { loro_CrdtLoroArray as CrdtLoroArray, loro_CrdtLoroDoc as CrdtLoroDoc, loro_CrdtLoroMap as CrdtLoroMap, loro_CrdtLoroObject as CrdtLoroObject, loro_CrdtLoroText as CrdtLoroText, type loro_InferLoroJson as InferLoroJson, type loro_InferLoroType as InferLoroType, loro_array as array, loro_doc as doc, loro_map as map, loro_object as object, loro_text as text };
83
+ export { loro_CrdtLoroDoc as CrdtLoroDoc, type loro_LoroType as LoroType, loro_doc as doc, loro_list as list, loro_map as map, loro_object as object, loro_text as text };
162
84
  }
163
85
 
164
86
  export { loro };