cojson 0.13.10 → 0.13.11
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +9 -0
- package/dist/PeerKnownStates.d.ts +5 -25
- package/dist/PeerKnownStates.d.ts.map +1 -1
- package/dist/PeerKnownStates.js +7 -20
- package/dist/PeerKnownStates.js.map +1 -1
- package/dist/PeerState.d.ts +14 -7
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/PeerState.js +51 -7
- package/dist/PeerState.js.map +1 -1
- package/dist/coValues/coList.d.ts +13 -2
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coList.js +60 -34
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coPlainText.d.ts +45 -0
- package/dist/coValues/coPlainText.d.ts.map +1 -1
- package/dist/coValues/coPlainText.js +61 -11
- package/dist/coValues/coPlainText.js.map +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +8 -51
- package/dist/sync.js.map +1 -1
- package/dist/tests/PeerKnownStates.test.js +9 -14
- package/dist/tests/PeerKnownStates.test.js.map +1 -1
- package/dist/tests/PeerState.test.js +22 -34
- package/dist/tests/PeerState.test.js.map +1 -1
- package/dist/tests/coList.test.js +63 -0
- package/dist/tests/coList.test.js.map +1 -1
- package/dist/tests/coPlainText.test.js +66 -11
- package/dist/tests/coPlainText.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +65 -3
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/package.json +1 -1
- package/src/PeerKnownStates.ts +19 -56
- package/src/PeerState.ts +70 -12
- package/src/coValues/coList.ts +84 -44
- package/src/coValues/coPlainText.ts +75 -11
- package/src/sync.ts +11 -52
- package/src/tests/PeerKnownStates.test.ts +9 -14
- package/src/tests/PeerState.test.ts +27 -40
- package/src/tests/coList.test.ts +83 -0
- package/src/tests/coPlainText.test.ts +81 -11
- package/src/tests/sync.mesh.test.ts +81 -3
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# cojson
|
|
2
2
|
|
|
3
|
+
## 0.13.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 17273a6: Adds locale support to Segmenter for CoPlainText
|
|
8
|
+
Adds insertAfter to CoPlainText
|
|
9
|
+
- 3396ed4: Simplify unknown value management on handleNewContent
|
|
10
|
+
- 267ea4c: Fix max recursion error happening on large colists
|
|
11
|
+
|
|
3
12
|
## 0.13.10
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -1,38 +1,18 @@
|
|
|
1
1
|
import { RawCoID, SessionID } from "./ids.js";
|
|
2
2
|
import { CoValueKnownState } from "./sync.js";
|
|
3
|
-
export type PeerKnownStateActions = {
|
|
4
|
-
type: "SET_AS_EMPTY";
|
|
5
|
-
id: RawCoID;
|
|
6
|
-
} | {
|
|
7
|
-
type: "UPDATE_HEADER";
|
|
8
|
-
id: RawCoID;
|
|
9
|
-
header: boolean;
|
|
10
|
-
} | {
|
|
11
|
-
type: "UPDATE_SESSION_COUNTER";
|
|
12
|
-
id: RawCoID;
|
|
13
|
-
sessionId: SessionID;
|
|
14
|
-
value: number;
|
|
15
|
-
} | {
|
|
16
|
-
type: "SET";
|
|
17
|
-
id: RawCoID;
|
|
18
|
-
value: CoValueKnownState;
|
|
19
|
-
} | {
|
|
20
|
-
type: "COMBINE_WITH";
|
|
21
|
-
id: RawCoID;
|
|
22
|
-
value: CoValueKnownState;
|
|
23
|
-
};
|
|
24
3
|
export declare class PeerKnownStates {
|
|
25
4
|
private coValues;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
5
|
+
updateHeader(id: RawCoID, header: boolean): void;
|
|
6
|
+
combineWith(id: RawCoID, value: CoValueKnownState): void;
|
|
7
|
+
updateSessionCounter(id: RawCoID, sessionId: SessionID, value: number): void;
|
|
8
|
+
set(id: RawCoID, knownState: CoValueKnownState | "empty"): void;
|
|
29
9
|
get(id: RawCoID): CoValueKnownState | undefined;
|
|
30
10
|
has(id: RawCoID): boolean;
|
|
31
11
|
clone(): PeerKnownStates;
|
|
32
|
-
dispatch(action: PeerKnownStateActions): void;
|
|
33
12
|
listeners: Set<(id: RawCoID, knownState: CoValueKnownState) => void>;
|
|
34
13
|
triggerUpdate(id: RawCoID): void;
|
|
35
14
|
private trigger;
|
|
36
15
|
subscribe(listener: (id: RawCoID, knownState: CoValueKnownState) => void): () => void;
|
|
37
16
|
}
|
|
17
|
+
export type ReadonlyPeerKnownStates = Pick<PeerKnownStates, "get" | "has" | "clone" | "subscribe">;
|
|
38
18
|
//# sourceMappingURL=PeerKnownStates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerKnownStates.d.ts","sourceRoot":"","sources":["../src/PeerKnownStates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,iBAAiB,EAGlB,MAAM,WAAW,CAAC;AAEnB,
|
|
1
|
+
{"version":3,"file":"PeerKnownStates.d.ts","sourceRoot":"","sources":["../src/PeerKnownStates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,iBAAiB,EAGlB,MAAM,WAAW,CAAC;AAEnB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAyC;IAEzD,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAOzC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAMjD,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IASrE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO;IAQxD,GAAG,CAAC,EAAE,EAAE,OAAO;IAIf,GAAG,CAAC,EAAE,EAAE,OAAO;IAIf,KAAK;IAML,SAAS,WAAgB,OAAO,cAAc,iBAAiB,KAAK,IAAI,EAAI;IAE5E,aAAa,CAAC,EAAE,EAAE,OAAO;IAIzB,OAAO,CAAC,OAAO;IAMf,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,KAAK,IAAI;CAOzE;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,eAAe,EACf,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,CACtC,CAAC"}
|
package/dist/PeerKnownStates.js
CHANGED
|
@@ -8,16 +8,23 @@ export class PeerKnownStates {
|
|
|
8
8
|
const knownState = this.coValues.get(id) ?? emptyKnownState(id);
|
|
9
9
|
knownState.header = header;
|
|
10
10
|
this.coValues.set(id, knownState);
|
|
11
|
+
this.triggerUpdate(id);
|
|
11
12
|
}
|
|
12
13
|
combineWith(id, value) {
|
|
13
14
|
const knownState = this.coValues.get(id) ?? emptyKnownState(id);
|
|
14
15
|
this.coValues.set(id, combinedKnownStates(knownState, value));
|
|
16
|
+
this.triggerUpdate(id);
|
|
15
17
|
}
|
|
16
18
|
updateSessionCounter(id, sessionId, value) {
|
|
17
19
|
const knownState = this.coValues.get(id) ?? emptyKnownState(id);
|
|
18
20
|
const currentValue = knownState.sessions[sessionId] || 0;
|
|
19
21
|
knownState.sessions[sessionId] = Math.max(currentValue, value);
|
|
20
22
|
this.coValues.set(id, knownState);
|
|
23
|
+
this.triggerUpdate(id);
|
|
24
|
+
}
|
|
25
|
+
set(id, knownState) {
|
|
26
|
+
this.coValues.set(id, knownState === "empty" ? emptyKnownState(id) : knownState);
|
|
27
|
+
this.triggerUpdate(id);
|
|
21
28
|
}
|
|
22
29
|
get(id) {
|
|
23
30
|
return this.coValues.get(id);
|
|
@@ -30,26 +37,6 @@ export class PeerKnownStates {
|
|
|
30
37
|
clone.coValues = new Map(this.coValues);
|
|
31
38
|
return clone;
|
|
32
39
|
}
|
|
33
|
-
dispatch(action) {
|
|
34
|
-
switch (action.type) {
|
|
35
|
-
case "UPDATE_HEADER":
|
|
36
|
-
this.updateHeader(action.id, action.header);
|
|
37
|
-
break;
|
|
38
|
-
case "UPDATE_SESSION_COUNTER":
|
|
39
|
-
this.updateSessionCounter(action.id, action.sessionId, action.value);
|
|
40
|
-
break;
|
|
41
|
-
case "SET":
|
|
42
|
-
this.coValues.set(action.id, action.value);
|
|
43
|
-
break;
|
|
44
|
-
case "COMBINE_WITH":
|
|
45
|
-
this.combineWith(action.id, action.value);
|
|
46
|
-
break;
|
|
47
|
-
case "SET_AS_EMPTY":
|
|
48
|
-
this.coValues.set(action.id, emptyKnownState(action.id));
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
this.triggerUpdate(action.id);
|
|
52
|
-
}
|
|
53
40
|
triggerUpdate(id) {
|
|
54
41
|
this.trigger(id, this.coValues.get(id) ?? emptyKnownState(id));
|
|
55
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerKnownStates.js","sourceRoot":"","sources":["../src/PeerKnownStates.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACnB,eAAe,GAChB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"PeerKnownStates.js","sourceRoot":"","sources":["../src/PeerKnownStates.ts"],"names":[],"mappings":"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"}
|
package/dist/PeerState.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PeerKnownStates, ReadonlyPeerKnownStates } from "./PeerKnownStates.js";
|
|
2
2
|
import { TryAddTransactionsError } from "./coValueCore.js";
|
|
3
|
-
import { RawCoID } from "./ids.js";
|
|
4
|
-
import { Peer, SyncMessage } from "./sync.js";
|
|
3
|
+
import { RawCoID, SessionID } from "./ids.js";
|
|
4
|
+
import { CoValueKnownState, Peer, SyncMessage } from "./sync.js";
|
|
5
5
|
export declare class PeerState {
|
|
6
6
|
private peer;
|
|
7
7
|
private queue;
|
|
8
8
|
incomingMessagesProcessingPromise: Promise<void> | undefined;
|
|
9
9
|
nextPeer: Peer | undefined;
|
|
10
|
-
constructor(peer: Peer, knownStates:
|
|
10
|
+
constructor(peer: Peer, knownStates: ReadonlyPeerKnownStates | undefined);
|
|
11
11
|
/**
|
|
12
12
|
* Here we to collect all the known states that a given peer has told us about.
|
|
13
13
|
*
|
|
14
14
|
* This can be used to safely track the sync state of a coValue in a given peer.
|
|
15
15
|
*/
|
|
16
|
-
readonly
|
|
16
|
+
readonly _knownStates: PeerKnownStates;
|
|
17
|
+
get knownStates(): ReadonlyPeerKnownStates;
|
|
17
18
|
/**
|
|
18
19
|
* This one collects the known states "optimistically".
|
|
19
20
|
* We use it to keep track of the content we have sent to a given peer.
|
|
@@ -21,9 +22,15 @@ export declare class PeerState {
|
|
|
21
22
|
* The main difference with knownState is that this is updated when the content is sent to the peer without
|
|
22
23
|
* waiting for any acknowledgement from the peer.
|
|
23
24
|
*/
|
|
24
|
-
readonly
|
|
25
|
+
readonly _optimisticKnownStates: PeerKnownStates | "assumeInfallible";
|
|
26
|
+
get optimisticKnownStates(): ReadonlyPeerKnownStates;
|
|
25
27
|
readonly toldKnownState: Set<RawCoID>;
|
|
26
|
-
|
|
28
|
+
updateHeader(id: RawCoID, header: boolean): void;
|
|
29
|
+
combineWith(id: RawCoID, value: CoValueKnownState): void;
|
|
30
|
+
combineOptimisticWith(id: RawCoID, value: CoValueKnownState): void;
|
|
31
|
+
updateSessionCounter(id: RawCoID, sessionId: SessionID, value: number): void;
|
|
32
|
+
setKnownState(id: RawCoID, knownState: CoValueKnownState | "empty"): void;
|
|
33
|
+
setOptimisticKnownState(id: RawCoID, knownState: CoValueKnownState | "empty"): void;
|
|
27
34
|
readonly erroredCoValues: Map<RawCoID, TryAddTransactionsError>;
|
|
28
35
|
get id(): string;
|
|
29
36
|
get role(): "peer" | "server" | "client" | "storage";
|
package/dist/PeerState.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerState.d.ts","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PeerState.d.ts","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAKhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjE,qBAAa,SAAS;IAOlB,OAAO,CAAC,IAAI;IANd,OAAO,CAAC,KAAK,CAA4B;IAEzC,iCAAiC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGjB,IAAI,EAAE,IAAI,EAClB,WAAW,EAAE,uBAAuB,GAAG,SAAS;IAwBlD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IAEvC,IAAI,WAAW,IAAI,uBAAuB,CAEzC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,EAAE,eAAe,GAAG,kBAAkB,CAAC;IAEtE,IAAI,qBAAqB,IAAI,uBAAuB,CAMnD;IAED,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAElD,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAQzC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAQjD,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;IAQ3D,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAQrE,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO;IAQlE,uBAAuB,CACrB,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,iBAAiB,GAAG,OAAO;IASzC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAa;IAE5E,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,6CAEP;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,YAAY,YAEf;IAED,8BAA8B;IAI9B,qBAAqB;IAIrB,OAAO,CAAC,UAAU,CAAS;IACpB,MAAM,UAAS;IAEhB,YAAY;IAqBlB,mBAAmB,CAAC,GAAG,EAAE,WAAW;IAYpC,IAAI,QAAQ,2CAQX;IAED,OAAO,CAAC,UAAU;IAQlB,cAAc,YAAiB,IAAI,EAAI;IAEvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI;IAarC,SAAS;IAQT,gBAAgB;IAWV,uBAAuB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC;CA8B5E"}
|
package/dist/PeerState.js
CHANGED
|
@@ -19,20 +19,64 @@ export class PeerState {
|
|
|
19
19
|
this.queue = new PriorityBasedMessageQueue(CO_VALUE_PRIORITY.HIGH, {
|
|
20
20
|
peerRole: peer.role,
|
|
21
21
|
});
|
|
22
|
-
this.
|
|
22
|
+
this._knownStates = knownStates?.clone() ?? new PeerKnownStates();
|
|
23
23
|
// We assume that exchanges with storage peers are always successful
|
|
24
24
|
// hence we don't need to differentiate between knownStates and optimisticKnownStates
|
|
25
25
|
if (peer.role === "storage") {
|
|
26
|
-
this.
|
|
26
|
+
this._optimisticKnownStates = "assumeInfallible";
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
this.
|
|
29
|
+
this._optimisticKnownStates =
|
|
30
|
+
knownStates?.clone() ?? new PeerKnownStates();
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
get knownStates() {
|
|
34
|
+
return this._knownStates;
|
|
35
|
+
}
|
|
36
|
+
get optimisticKnownStates() {
|
|
37
|
+
if (this._optimisticKnownStates === "assumeInfallible") {
|
|
38
|
+
return this.knownStates;
|
|
39
|
+
}
|
|
40
|
+
return this._optimisticKnownStates;
|
|
41
|
+
}
|
|
42
|
+
updateHeader(id, header) {
|
|
43
|
+
this._knownStates.updateHeader(id, header);
|
|
44
|
+
if (this._optimisticKnownStates !== "assumeInfallible") {
|
|
45
|
+
this._optimisticKnownStates.updateHeader(id, header);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
combineWith(id, value) {
|
|
49
|
+
this._knownStates.combineWith(id, value);
|
|
50
|
+
if (this._optimisticKnownStates !== "assumeInfallible") {
|
|
51
|
+
this._optimisticKnownStates.combineWith(id, value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
combineOptimisticWith(id, value) {
|
|
55
|
+
if (this._optimisticKnownStates === "assumeInfallible") {
|
|
56
|
+
this._knownStates.combineWith(id, value);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this._optimisticKnownStates.combineWith(id, value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
updateSessionCounter(id, sessionId, value) {
|
|
63
|
+
this._knownStates.updateSessionCounter(id, sessionId, value);
|
|
64
|
+
if (this._optimisticKnownStates !== "assumeInfallible") {
|
|
65
|
+
this._optimisticKnownStates.updateSessionCounter(id, sessionId, value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
setKnownState(id, knownState) {
|
|
69
|
+
this._knownStates.set(id, knownState);
|
|
70
|
+
if (this._optimisticKnownStates !== "assumeInfallible") {
|
|
71
|
+
this._optimisticKnownStates.set(id, knownState);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
setOptimisticKnownState(id, knownState) {
|
|
75
|
+
if (this._optimisticKnownStates === "assumeInfallible") {
|
|
76
|
+
this._knownStates.set(id, knownState);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this._optimisticKnownStates.set(id, knownState);
|
|
36
80
|
}
|
|
37
81
|
}
|
|
38
82
|
get id() {
|
package/dist/PeerState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerState.js","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PeerState.js","sourceRoot":"","sources":["../src/PeerState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,MAAM,OAAO,SAAS;IAMpB,YACU,IAAU,EAClB,WAAgD;QADxC,SAAI,GAAJ,IAAI,CAAM;QAqDX,mBAAc,GAAiB,IAAI,GAAG,EAAE,CAAC;QAqDzC,oBAAe,GAA0C,IAAI,GAAG,EAAE,CAAC;QA0BpE,eAAU,GAAG,KAAK,CAAC;QACpB,WAAM,GAAG,KAAK,CAAC;QAqDtB,mBAAc,GAAG,IAAI,GAAG,EAAc,CAAC;QAvLrC;;;;;WAKG;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACjE,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;QAElE,oEAAoE;QACpE,qFAAqF;QACrF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB;gBACzB,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IASD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAWD,IAAI,qBAAqB;QACvB,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAID,YAAY,CAAC,EAAW,EAAE,MAAe;QACvC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAW,EAAE,KAAwB;QAC/C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,EAAW,EAAE,KAAwB;QACzD,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,EAAW,EAAE,SAAoB,EAAE,KAAa;QACnE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,aAAa,CAAC,EAAW,EAAE,UAAuC;QAChE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,uBAAuB,CACrB,EAAW,EACX,UAAuC;QAEvC,IAAI,IAAI,CAAC,sBAAsB,KAAK,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAID,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAChC,CAAC;IAED,8BAA8B;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;IACrC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACrE,CAAC;IAKD,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnC,kDAAkD;YAClD,gEAAgE;YAChE,oDAAoD;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;iBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,mBAAmB,CAAC,GAAgB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,SAAS,CAAC;gBACrB,MAAM,cAAuB,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAEO,UAAU;QAChB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnC,4DAA4D;YAC5D,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAID,gBAAgB,CAAC,QAAoB;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS;QACP,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,QAAQ,EAAE,CAAC;QACb,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACd,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;YACjC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAA6C;QACzE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,iCAAiC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE;YACzC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;oBAC3B,MAAM;gBACR,CAAC;gBACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;oBAC1B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;wBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;qBACpB,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBAED,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,iCAAiC,GAAG,uBAAuB,EAAE,CAAC;QAEnE,OAAO,IAAI,CAAC,iCAAiC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ import { CoID, RawCoValue } from "../coValue.js";
|
|
|
2
2
|
import { CoValueCore } from "../coValueCore.js";
|
|
3
3
|
import { AgentID, SessionID, TransactionID } from "../ids.js";
|
|
4
4
|
import { JsonObject, JsonValue } from "../jsonValue.js";
|
|
5
|
+
import { CoValueKnownState } from "../sync.js";
|
|
5
6
|
import { RawAccountID } from "./account.js";
|
|
6
7
|
import { RawGroup } from "./group.js";
|
|
7
8
|
export type OpID = TransactionID & {
|
|
@@ -66,7 +67,10 @@ export declare class RawCoListView<Item extends JsonValue = JsonValue, Meta exte
|
|
|
66
67
|
opID: OpID;
|
|
67
68
|
}[];
|
|
68
69
|
/** @internal */
|
|
70
|
+
knownTransactions: CoValueKnownState["sessions"];
|
|
71
|
+
/** @internal */
|
|
69
72
|
constructor(core: CoValueCore);
|
|
73
|
+
processNewTransactions(): void;
|
|
70
74
|
/** @category 6. Meta */
|
|
71
75
|
get headerMeta(): Meta;
|
|
72
76
|
/** @category 6. Meta */
|
|
@@ -135,6 +139,15 @@ export declare class RawCoList<Item extends JsonValue = JsonValue, Meta extends
|
|
|
135
139
|
* @category 2. Editing
|
|
136
140
|
**/
|
|
137
141
|
append(item: Item, after?: number, privacy?: "private" | "trusting"): void;
|
|
142
|
+
/**
|
|
143
|
+
* Appends `items` to the list at index `after`. If `after` is negative, it is treated as `0`.
|
|
144
|
+
*
|
|
145
|
+
* If `privacy` is `"private"` **(default)**, `items` are encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
|
|
146
|
+
*
|
|
147
|
+
* If `privacy` is `"trusting"`, `items` are stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
148
|
+
*
|
|
149
|
+
* @category 2. Editing
|
|
150
|
+
*/
|
|
138
151
|
appendItems(items: Item[], after?: number, privacy?: "private" | "trusting"): void;
|
|
139
152
|
/**
|
|
140
153
|
* Prepends `item` before the item currently at index `before`.
|
|
@@ -156,8 +169,6 @@ export declare class RawCoList<Item extends JsonValue = JsonValue, Meta extends
|
|
|
156
169
|
**/
|
|
157
170
|
delete(at: number, privacy?: "private" | "trusting"): void;
|
|
158
171
|
replace(at: number, newItem: Item, privacy?: "private" | "trusting"): void;
|
|
159
|
-
/** @internal */
|
|
160
|
-
rebuildFromCore(): void;
|
|
161
172
|
}
|
|
162
173
|
export {};
|
|
163
174
|
//# sourceMappingURL=coList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
|
package/dist/coValues/coList.js
CHANGED
|
@@ -15,7 +15,19 @@ export class RawCoListView {
|
|
|
15
15
|
this.deletionsByInsertion = {};
|
|
16
16
|
this.afterStart = [];
|
|
17
17
|
this.beforeEnd = [];
|
|
18
|
-
|
|
18
|
+
this.knownTransactions = {};
|
|
19
|
+
this.processNewTransactions();
|
|
20
|
+
}
|
|
21
|
+
processNewTransactions() {
|
|
22
|
+
const newTransactions = this.core.getValidTransactions({
|
|
23
|
+
ignorePrivateTransactions: false,
|
|
24
|
+
knownTransactions: this.knownTransactions,
|
|
25
|
+
});
|
|
26
|
+
if (newTransactions.length === 0) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this._cachedEntries = undefined;
|
|
30
|
+
for (const { txID, changes, madeAt } of newTransactions) {
|
|
19
31
|
for (const [changeIdx, changeUntyped] of changes.entries()) {
|
|
20
32
|
const change = changeUntyped;
|
|
21
33
|
if (change.op === "pre" || change.op === "app") {
|
|
@@ -102,6 +114,7 @@ export class RawCoListView {
|
|
|
102
114
|
throw new Error("Unknown list operation " + change.op);
|
|
103
115
|
}
|
|
104
116
|
}
|
|
117
|
+
this.knownTransactions[txID.sessionID] = Math.max(this.knownTransactions[txID.sessionID] ?? 0, txID.txIndex);
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
/** @category 6. Meta */
|
|
@@ -162,25 +175,38 @@ export class RawCoListView {
|
|
|
162
175
|
}
|
|
163
176
|
/** @internal */
|
|
164
177
|
fillArrayFromOpID(opID, arr) {
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
178
|
+
const todo = [opID]; // a stack with the next item to do at the end
|
|
179
|
+
const predecessorsVisited = new Set();
|
|
180
|
+
while (todo.length > 0) {
|
|
181
|
+
const currentOpID = todo[todo.length - 1];
|
|
182
|
+
const entry = this.insertions[currentOpID.sessionID]?.[currentOpID.txIndex]?.[currentOpID.changeIdx];
|
|
183
|
+
if (!entry) {
|
|
184
|
+
throw new Error("Missing op " + currentOpID);
|
|
185
|
+
}
|
|
186
|
+
const shouldTraversePredecessors = entry.predecessors.length > 0 && !predecessorsVisited.has(currentOpID);
|
|
187
|
+
// We navigate the predecessors before processing the current opID in the list
|
|
188
|
+
if (shouldTraversePredecessors) {
|
|
189
|
+
for (let i = entry.predecessors.length - 1; i >= 0; i--) {
|
|
190
|
+
todo.push(entry.predecessors[i]);
|
|
191
|
+
}
|
|
192
|
+
predecessorsVisited.add(currentOpID);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// Remove the current opID from the todo stack to consider it processed.
|
|
196
|
+
todo.pop();
|
|
197
|
+
const deleted = (this.deletionsByInsertion[currentOpID.sessionID]?.[currentOpID.txIndex]?.[currentOpID.changeIdx]?.length || 0) > 0;
|
|
198
|
+
if (!deleted) {
|
|
199
|
+
arr.push({
|
|
200
|
+
value: entry.value,
|
|
201
|
+
madeAt: entry.madeAt,
|
|
202
|
+
opID: currentOpID,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// traverse successors in reverse for correct insertion behavior
|
|
206
|
+
for (const successor of entry.successors) {
|
|
207
|
+
todo.push(successor);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
184
210
|
}
|
|
185
211
|
}
|
|
186
212
|
/**
|
|
@@ -252,6 +278,15 @@ export class RawCoList extends RawCoListView {
|
|
|
252
278
|
append(item, after, privacy = "private") {
|
|
253
279
|
this.appendItems([item], after, privacy);
|
|
254
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Appends `items` to the list at index `after`. If `after` is negative, it is treated as `0`.
|
|
283
|
+
*
|
|
284
|
+
* If `privacy` is `"private"` **(default)**, `items` are encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
|
|
285
|
+
*
|
|
286
|
+
* If `privacy` is `"trusting"`, `items` are stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
287
|
+
*
|
|
288
|
+
* @category 2. Editing
|
|
289
|
+
*/
|
|
255
290
|
appendItems(items, after, privacy = "private") {
|
|
256
291
|
const entries = this.entries();
|
|
257
292
|
after =
|
|
@@ -259,7 +294,7 @@ export class RawCoList extends RawCoListView {
|
|
|
259
294
|
? entries.length > 0
|
|
260
295
|
? entries.length - 1
|
|
261
296
|
: 0
|
|
262
|
-
: after;
|
|
297
|
+
: Math.max(0, after);
|
|
263
298
|
let opIDBefore;
|
|
264
299
|
if (entries.length > 0) {
|
|
265
300
|
const entryBefore = entries[after];
|
|
@@ -285,7 +320,7 @@ export class RawCoList extends RawCoListView {
|
|
|
285
320
|
changes.reverse();
|
|
286
321
|
}
|
|
287
322
|
this.core.makeTransaction(changes, privacy);
|
|
288
|
-
this.
|
|
323
|
+
this.processNewTransactions();
|
|
289
324
|
}
|
|
290
325
|
/**
|
|
291
326
|
* Prepends `item` before the item currently at index `before`.
|
|
@@ -325,7 +360,7 @@ export class RawCoList extends RawCoListView {
|
|
|
325
360
|
before: opIDAfter,
|
|
326
361
|
},
|
|
327
362
|
], privacy);
|
|
328
|
-
this.
|
|
363
|
+
this.processNewTransactions();
|
|
329
364
|
}
|
|
330
365
|
/** Deletes the item at index `at`.
|
|
331
366
|
*
|
|
@@ -347,7 +382,7 @@ export class RawCoList extends RawCoListView {
|
|
|
347
382
|
insertion: entry.opID,
|
|
348
383
|
},
|
|
349
384
|
], privacy);
|
|
350
|
-
this.
|
|
385
|
+
this.processNewTransactions();
|
|
351
386
|
}
|
|
352
387
|
replace(at, newItem, privacy = "private") {
|
|
353
388
|
const entries = this.entries();
|
|
@@ -366,16 +401,7 @@ export class RawCoList extends RawCoListView {
|
|
|
366
401
|
insertion: entry.opID,
|
|
367
402
|
},
|
|
368
403
|
], privacy);
|
|
369
|
-
this.
|
|
370
|
-
}
|
|
371
|
-
/** @internal */
|
|
372
|
-
rebuildFromCore() {
|
|
373
|
-
const listAfter = new RawCoList(this.core);
|
|
374
|
-
this.afterStart = listAfter.afterStart;
|
|
375
|
-
this.beforeEnd = listAfter.beforeEnd;
|
|
376
|
-
this.insertions = listAfter.insertions;
|
|
377
|
-
this.deletionsByInsertion = listAfter.deletionsByInsertion;
|
|
378
|
-
this._cachedEntries = undefined;
|
|
404
|
+
this.processNewTransactions();
|
|
379
405
|
}
|
|
380
406
|
}
|
|
381
407
|
//# sourceMappingURL=coList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,33 @@ type PlaintextIdxMapping = {
|
|
|
15
15
|
[opID: StringifiedOpID]: number;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* A collaborative plain text implementation that supports grapheme-accurate editing.
|
|
20
|
+
*
|
|
21
|
+
* Locale support:
|
|
22
|
+
* - Locale can be specified in the meta field when creating the text: `{ meta: { locale: "ja-JP" } }`
|
|
23
|
+
* - If no locale is specified, falls back to browser's locale (`navigator.language`)
|
|
24
|
+
* - If browser locale is not available, defaults to 'en'
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // With specific locale
|
|
29
|
+
* const textJa = node.createCoValue({
|
|
30
|
+
* type: "coplaintext",
|
|
31
|
+
* ruleset: { type: "unsafeAllowAll" },
|
|
32
|
+
* meta: { locale: "ja-JP" },
|
|
33
|
+
* ...Crypto.createdNowUnique(),
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* // Using browser locale
|
|
37
|
+
* const text = node.createCoValue({
|
|
38
|
+
* type: "coplaintext",
|
|
39
|
+
* ruleset: { type: "unsafeAllowAll" },
|
|
40
|
+
* meta: null,
|
|
41
|
+
* ...Crypto.createdNowUnique(),
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
18
45
|
export declare class RawCoPlainText<Meta extends JsonObject | null = JsonObject | null> extends RawCoList<string, Meta> {
|
|
19
46
|
/** @category 6. Meta */
|
|
20
47
|
type: "coplaintext";
|
|
@@ -23,6 +50,24 @@ export declare class RawCoPlainText<Meta extends JsonObject | null = JsonObject
|
|
|
23
50
|
constructor(core: CoValueCore);
|
|
24
51
|
get mapping(): PlaintextIdxMapping;
|
|
25
52
|
toString(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Inserts `text` before the character at index `idx`.
|
|
55
|
+
* If idx is 0, inserts at the start of the text.
|
|
56
|
+
*
|
|
57
|
+
* @param idx - The index of the character to insert before
|
|
58
|
+
* @param text - The text to insert
|
|
59
|
+
* @param privacy - Whether the operation should be private or trusting
|
|
60
|
+
* @category 2. Editing
|
|
61
|
+
*/
|
|
62
|
+
insertBefore(idx: number, text: string, privacy?: "private" | "trusting"): void;
|
|
63
|
+
/**
|
|
64
|
+
* Inserts `text` after the character at index `idx`.
|
|
65
|
+
*
|
|
66
|
+
* @param idx - The index of the character to insert after
|
|
67
|
+
* @param text - The text to insert
|
|
68
|
+
* @param privacy - Whether the operation should be private or trusting
|
|
69
|
+
* @category 2. Editing
|
|
70
|
+
*/
|
|
26
71
|
insertAfter(idx: number, text: string, privacy?: "private" | "trusting"): void;
|
|
27
72
|
deleteRange({ from, to }: {
|
|
28
73
|
from: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coPlainText.d.ts","sourceRoot":"","sources":["../../src/coValues/coPlainText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAqB,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"coPlainText.d.ts","sourceRoot":"","sources":["../../src/coValues/coPlainText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAqB,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQjE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,iBAAiB,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnE,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAEzD;AAED,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,YAAY,EAAE;QAAE,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAA;KAAE,CAAC;IAClD,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAc,CACzB,IAAI,SAAS,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAClD,SAAQ,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;IAC/B,wBAAwB;IACxB,IAAI,gBAA0B;IAE9B,OAAO,CAAC,UAAU,CAAiB;IAEnC,cAAc,EAAE,OAAO,CACrB,WAAW,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,EACvC,mBAAmB,CACpB,CAAC;gBAEU,IAAI,EAAE,WAAW;IAuB7B,IAAI,OAAO,wBA6BV;IAED,QAAQ;IAMR;;;;;;;;OAQG;IACH,YAAY,CACV,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,SAAS,GAAG,UAAsB;IAe7C;;;;;;;OAOG;IACH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,SAAS,GAAG,UAAsB;IAM7C,WAAW,CACT,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,GAAE,SAAS,GAAG,UAAsB;CAsB9C"}
|