loro-crdt 1.0.8-alpha.0 → 1.0.8-alpha.2
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/CHANGELOG.md +12 -0
- package/bundler/index.d.ts +2 -1
- package/bundler/index.js +2 -1
- package/bundler/index.js.map +1 -1
- package/nodejs/index.js +8 -5
- package/nodejs/index.js.map +1 -1
- package/package.json +1 -1
- package/ts/index.ts +2 -1
- package/web/index.d.ts +73 -0
- package/web/index.js +157 -0
- package/web/index.js.map +1 -0
- package/web/loro_wasm.d.ts +3376 -0
- package/web/loro_wasm.js +5864 -0
- package/web/loro_wasm_bg.wasm +0 -0
- package/web/loro_wasm_bg.wasm.d.ts +249 -0
package/CHANGELOG.md
CHANGED
package/bundler/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./loro_wasm";
|
|
2
2
|
export type * from "./loro_wasm";
|
|
3
|
-
import { AwarenessWasm, PeerID, Container, ContainerID, ContainerType, LoroCounter, LoroDoc, LoroList, LoroMap, LoroText, LoroTree, OpId, Value, AwarenessListener } from "./loro_wasm";
|
|
3
|
+
import init, { AwarenessWasm, PeerID, Container, ContainerID, ContainerType, LoroCounter, LoroDoc, LoroList, LoroMap, LoroText, LoroTree, OpId, Value, AwarenessListener } from "./loro_wasm";
|
|
4
|
+
export default init;
|
|
4
5
|
/**
|
|
5
6
|
* @deprecated Please use LoroDoc
|
|
6
7
|
*/
|
package/bundler/index.js
CHANGED
package/bundler/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../ts/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../ts/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/nodejs/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var init = require("./loro_wasm");
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* @deprecated Please use LoroDoc
|
|
7
9
|
*/
|
|
8
|
-
class Loro extends
|
|
10
|
+
class Loro extends init.LoroDoc {
|
|
9
11
|
}
|
|
10
12
|
const CONTAINER_TYPES = [
|
|
11
13
|
"Map",
|
|
@@ -83,7 +85,7 @@ function newRootContainerID(name, type) {
|
|
|
83
85
|
class Awareness {
|
|
84
86
|
constructor(peer, timeout = 30000) {
|
|
85
87
|
this.listeners = new Set();
|
|
86
|
-
this.inner = new
|
|
88
|
+
this.inner = new init.AwarenessWasm(peer, timeout);
|
|
87
89
|
this.peer = peer;
|
|
88
90
|
this.timeout = timeout;
|
|
89
91
|
}
|
|
@@ -153,6 +155,7 @@ class Awareness {
|
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
|
|
158
|
+
exports.default = init;
|
|
156
159
|
exports.Awareness = Awareness;
|
|
157
160
|
exports.Loro = Loro;
|
|
158
161
|
exports.getType = getType;
|
|
@@ -160,10 +163,10 @@ exports.isContainer = isContainer;
|
|
|
160
163
|
exports.isContainerId = isContainerId;
|
|
161
164
|
exports.newContainerID = newContainerID;
|
|
162
165
|
exports.newRootContainerID = newRootContainerID;
|
|
163
|
-
Object.keys(
|
|
166
|
+
Object.keys(init).forEach(function (k) {
|
|
164
167
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
165
168
|
enumerable: true,
|
|
166
|
-
get: function () { return
|
|
169
|
+
get: function () { return init[k]; }
|
|
167
170
|
});
|
|
168
171
|
});
|
|
169
172
|
//# sourceMappingURL=index.js.map
|
package/nodejs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../ts/index.ts"],"sourcesContent":[null],"names":["LoroDoc","AwarenessWasm"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../ts/index.ts"],"sourcesContent":[null],"names":["LoroDoc","AwarenessWasm"],"mappings":"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"}
|
package/package.json
CHANGED
package/ts/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "loro-wasm";
|
|
2
2
|
export type * from "loro-wasm";
|
|
3
|
-
import {
|
|
3
|
+
import init, {
|
|
4
4
|
AwarenessWasm,
|
|
5
5
|
PeerID,
|
|
6
6
|
Container,
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
Value,
|
|
18
18
|
AwarenessListener,
|
|
19
19
|
} from "loro-wasm";
|
|
20
|
+
export default init;
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* @deprecated Please use LoroDoc
|
package/web/index.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export * from "./loro_wasm";
|
|
2
|
+
export type * from "./loro_wasm";
|
|
3
|
+
import init, { AwarenessWasm, PeerID, Container, ContainerID, ContainerType, LoroCounter, LoroDoc, LoroList, LoroMap, LoroText, LoroTree, OpId, Value, AwarenessListener } from "./loro_wasm";
|
|
4
|
+
export default init;
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Please use LoroDoc
|
|
7
|
+
*/
|
|
8
|
+
export declare class Loro extends LoroDoc {
|
|
9
|
+
}
|
|
10
|
+
export declare function isContainerId(s: string): s is ContainerID;
|
|
11
|
+
/** Whether the value is a container.
|
|
12
|
+
*
|
|
13
|
+
* # Example
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* const doc = new LoroDoc();
|
|
17
|
+
* const map = doc.getMap("map");
|
|
18
|
+
* const list = doc.getList("list");
|
|
19
|
+
* const text = doc.getText("text");
|
|
20
|
+
* isContainer(map); // true
|
|
21
|
+
* isContainer(list); // true
|
|
22
|
+
* isContainer(text); // true
|
|
23
|
+
* isContainer(123); // false
|
|
24
|
+
* isContainer("123"); // false
|
|
25
|
+
* isContainer({}); // false
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function isContainer(value: any): value is Container;
|
|
29
|
+
/** Get the type of a value that may be a container.
|
|
30
|
+
*
|
|
31
|
+
* # Example
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* const doc = new LoroDoc();
|
|
35
|
+
* const map = doc.getMap("map");
|
|
36
|
+
* const list = doc.getList("list");
|
|
37
|
+
* const text = doc.getText("text");
|
|
38
|
+
* getType(map); // "Map"
|
|
39
|
+
* getType(list); // "List"
|
|
40
|
+
* getType(text); // "Text"
|
|
41
|
+
* getType(123); // "Json"
|
|
42
|
+
* getType("123"); // "Json"
|
|
43
|
+
* getType({}); // "Json"
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function getType<T>(value: T): T extends LoroText ? "Text" : T extends LoroMap<any> ? "Map" : T extends LoroTree<any> ? "Tree" : T extends LoroList<any> ? "List" : T extends LoroCounter ? "Counter" : "Json";
|
|
47
|
+
export declare function newContainerID(id: OpId, type: ContainerType): ContainerID;
|
|
48
|
+
export declare function newRootContainerID(name: string, type: ContainerType): ContainerID;
|
|
49
|
+
/**
|
|
50
|
+
* Awareness is a structure that allows to track the ephemeral state of the peers.
|
|
51
|
+
*
|
|
52
|
+
* If we don't receive a state update from a peer within the timeout, we will remove their state.
|
|
53
|
+
* The timeout is in milliseconds. This can be used to handle the off-line state of a peer.
|
|
54
|
+
*/
|
|
55
|
+
export declare class Awareness<T extends Value = Value> {
|
|
56
|
+
inner: AwarenessWasm<T>;
|
|
57
|
+
private peer;
|
|
58
|
+
private timer;
|
|
59
|
+
private timeout;
|
|
60
|
+
private listeners;
|
|
61
|
+
constructor(peer: PeerID, timeout?: number);
|
|
62
|
+
apply(bytes: Uint8Array, origin?: string): void;
|
|
63
|
+
setLocalState(state: T): void;
|
|
64
|
+
getLocalState(): T | undefined;
|
|
65
|
+
getAllStates(): Record<PeerID, T>;
|
|
66
|
+
encode(peers: PeerID[]): Uint8Array;
|
|
67
|
+
encodeAll(): Uint8Array;
|
|
68
|
+
addListener(listener: AwarenessListener): void;
|
|
69
|
+
removeListener(listener: AwarenessListener): void;
|
|
70
|
+
peers(): PeerID[];
|
|
71
|
+
destroy(): void;
|
|
72
|
+
private startTimerIfNotEmpty;
|
|
73
|
+
}
|
package/web/index.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import init__default, { LoroDoc, AwarenessWasm } from "./loro_wasm.js";
|
|
2
|
+
export * from "./loro_wasm.js";
|
|
3
|
+
export { default } from "./loro_wasm.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Please use LoroDoc
|
|
7
|
+
*/
|
|
8
|
+
class Loro extends LoroDoc {
|
|
9
|
+
}
|
|
10
|
+
const CONTAINER_TYPES = [
|
|
11
|
+
"Map",
|
|
12
|
+
"Text",
|
|
13
|
+
"List",
|
|
14
|
+
"Tree",
|
|
15
|
+
"MovableList",
|
|
16
|
+
"Counter",
|
|
17
|
+
];
|
|
18
|
+
function isContainerId(s) {
|
|
19
|
+
return s.startsWith("cid:");
|
|
20
|
+
}
|
|
21
|
+
/** Whether the value is a container.
|
|
22
|
+
*
|
|
23
|
+
* # Example
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const doc = new LoroDoc();
|
|
27
|
+
* const map = doc.getMap("map");
|
|
28
|
+
* const list = doc.getList("list");
|
|
29
|
+
* const text = doc.getText("text");
|
|
30
|
+
* isContainer(map); // true
|
|
31
|
+
* isContainer(list); // true
|
|
32
|
+
* isContainer(text); // true
|
|
33
|
+
* isContainer(123); // false
|
|
34
|
+
* isContainer("123"); // false
|
|
35
|
+
* isContainer({}); // false
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
function isContainer(value) {
|
|
39
|
+
if (typeof value !== "object" || value == null) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const p = Object.getPrototypeOf(value);
|
|
43
|
+
if (p == null || typeof p !== "object" || typeof p["kind"] !== "function") {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return CONTAINER_TYPES.includes(value.kind());
|
|
47
|
+
}
|
|
48
|
+
/** Get the type of a value that may be a container.
|
|
49
|
+
*
|
|
50
|
+
* # Example
|
|
51
|
+
*
|
|
52
|
+
* ```ts
|
|
53
|
+
* const doc = new LoroDoc();
|
|
54
|
+
* const map = doc.getMap("map");
|
|
55
|
+
* const list = doc.getList("list");
|
|
56
|
+
* const text = doc.getText("text");
|
|
57
|
+
* getType(map); // "Map"
|
|
58
|
+
* getType(list); // "List"
|
|
59
|
+
* getType(text); // "Text"
|
|
60
|
+
* getType(123); // "Json"
|
|
61
|
+
* getType("123"); // "Json"
|
|
62
|
+
* getType({}); // "Json"
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
function getType(value) {
|
|
66
|
+
if (isContainer(value)) {
|
|
67
|
+
return value.kind();
|
|
68
|
+
}
|
|
69
|
+
return "Json";
|
|
70
|
+
}
|
|
71
|
+
function newContainerID(id, type) {
|
|
72
|
+
return `cid:${id.counter}@${id.peer}:${type}`;
|
|
73
|
+
}
|
|
74
|
+
function newRootContainerID(name, type) {
|
|
75
|
+
return `cid:root-${name}:${type}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Awareness is a structure that allows to track the ephemeral state of the peers.
|
|
79
|
+
*
|
|
80
|
+
* If we don't receive a state update from a peer within the timeout, we will remove their state.
|
|
81
|
+
* The timeout is in milliseconds. This can be used to handle the off-line state of a peer.
|
|
82
|
+
*/
|
|
83
|
+
class Awareness {
|
|
84
|
+
constructor(peer, timeout = 30000) {
|
|
85
|
+
this.listeners = new Set();
|
|
86
|
+
this.inner = new AwarenessWasm(peer, timeout);
|
|
87
|
+
this.peer = peer;
|
|
88
|
+
this.timeout = timeout;
|
|
89
|
+
}
|
|
90
|
+
apply(bytes, origin = "remote") {
|
|
91
|
+
const { updated, added } = this.inner.apply(bytes);
|
|
92
|
+
this.listeners.forEach((listener) => {
|
|
93
|
+
listener({ updated, added, removed: [] }, origin);
|
|
94
|
+
});
|
|
95
|
+
this.startTimerIfNotEmpty();
|
|
96
|
+
}
|
|
97
|
+
setLocalState(state) {
|
|
98
|
+
const wasEmpty = this.inner.getState(this.peer) == null;
|
|
99
|
+
this.inner.setLocalState(state);
|
|
100
|
+
if (wasEmpty) {
|
|
101
|
+
this.listeners.forEach((listener) => {
|
|
102
|
+
listener({ updated: [], added: [this.inner.peer()], removed: [] }, "local");
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.listeners.forEach((listener) => {
|
|
107
|
+
listener({ updated: [this.inner.peer()], added: [], removed: [] }, "local");
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
this.startTimerIfNotEmpty();
|
|
111
|
+
}
|
|
112
|
+
getLocalState() {
|
|
113
|
+
return this.inner.getState(this.peer);
|
|
114
|
+
}
|
|
115
|
+
getAllStates() {
|
|
116
|
+
return this.inner.getAllStates();
|
|
117
|
+
}
|
|
118
|
+
encode(peers) {
|
|
119
|
+
return this.inner.encode(peers);
|
|
120
|
+
}
|
|
121
|
+
encodeAll() {
|
|
122
|
+
return this.inner.encodeAll();
|
|
123
|
+
}
|
|
124
|
+
addListener(listener) {
|
|
125
|
+
this.listeners.add(listener);
|
|
126
|
+
}
|
|
127
|
+
removeListener(listener) {
|
|
128
|
+
this.listeners.delete(listener);
|
|
129
|
+
}
|
|
130
|
+
peers() {
|
|
131
|
+
return this.inner.peers();
|
|
132
|
+
}
|
|
133
|
+
destroy() {
|
|
134
|
+
clearInterval(this.timer);
|
|
135
|
+
this.listeners.clear();
|
|
136
|
+
}
|
|
137
|
+
startTimerIfNotEmpty() {
|
|
138
|
+
if (this.inner.isEmpty() || this.timer != null) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.timer = setInterval(() => {
|
|
142
|
+
const removed = this.inner.removeOutdated();
|
|
143
|
+
if (removed.length > 0) {
|
|
144
|
+
this.listeners.forEach((listener) => {
|
|
145
|
+
listener({ updated: [], added: [], removed }, "timeout");
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (this.inner.isEmpty()) {
|
|
149
|
+
clearInterval(this.timer);
|
|
150
|
+
this.timer = undefined;
|
|
151
|
+
}
|
|
152
|
+
}, this.timeout / 2);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export { Awareness, Loro, getType, isContainer, isContainerId, newContainerID, newRootContainerID };
|
|
157
|
+
//# sourceMappingURL=index.js.map
|
package/web/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../ts/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|