cojson 0.2.2 → 0.3.0-alpha.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.
- package/.eslintrc.cjs +1 -0
- package/dist/account.d.ts +8 -8
- package/dist/account.js +2 -2
- package/dist/account.js.map +1 -1
- package/dist/coValue.d.ts +22 -27
- package/dist/coValue.js +21 -0
- package/dist/coValue.js.map +1 -1
- package/dist/coValueCore.d.ts +7 -7
- package/dist/coValueCore.js +11 -14
- package/dist/coValueCore.js.map +1 -1
- package/dist/coValues/coList.d.ts +107 -42
- package/dist/coValues/coList.js +163 -72
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.d.ts +109 -50
- package/dist/coValues/coMap.js +161 -109
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/coStream.d.ts +78 -33
- package/dist/coValues/coStream.js +134 -53
- package/dist/coValues/coStream.js.map +1 -1
- package/dist/crypto.d.ts +8 -3
- package/dist/crypto.js +6 -6
- package/dist/crypto.js.map +1 -1
- package/dist/group.d.ts +59 -23
- package/dist/group.js +83 -25
- package/dist/group.js.map +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/{node.d.ts → localNode.d.ts} +23 -11
- package/dist/{node.js → localNode.js} +80 -42
- package/dist/localNode.js.map +1 -0
- package/dist/media.d.ts +1 -2
- package/dist/permissions.js +6 -3
- package/dist/permissions.js.map +1 -1
- package/dist/queriedCoValues/queriedCoList.d.ts +66 -0
- package/dist/queriedCoValues/queriedCoList.js +120 -0
- package/dist/queriedCoValues/queriedCoList.js.map +1 -0
- package/dist/queriedCoValues/queriedCoMap.d.ts +47 -0
- package/dist/queriedCoValues/queriedCoMap.js +83 -0
- package/dist/queriedCoValues/queriedCoMap.js.map +1 -0
- package/dist/queriedCoValues/queriedCoStream.d.ts +40 -0
- package/dist/queriedCoValues/queriedCoStream.js +72 -0
- package/dist/queriedCoValues/queriedCoStream.js.map +1 -0
- package/dist/queries.d.ts +31 -0
- package/dist/queries.js +77 -0
- package/dist/queries.js.map +1 -0
- package/dist/sync.d.ts +1 -1
- package/dist/sync.js +1 -1
- package/dist/sync.js.map +1 -1
- package/dist/{testUtils.d.ts → tests/testUtils.d.ts} +9 -9
- package/dist/{testUtils.js → tests/testUtils.js} +9 -7
- package/dist/tests/testUtils.js.map +1 -0
- package/package.json +2 -2
- package/src/account.ts +6 -6
- package/src/coValue.ts +65 -34
- package/src/coValueCore.ts +18 -22
- package/src/coValues/coList.ts +272 -122
- package/src/coValues/coMap.ts +349 -152
- package/src/coValues/coStream.ts +258 -94
- package/src/crypto.ts +37 -24
- package/src/group.ts +112 -46
- package/src/index.ts +42 -30
- package/src/{node.ts → localNode.ts} +117 -66
- package/src/media.ts +1 -2
- package/src/permissions.ts +15 -18
- package/src/queriedCoValues/queriedCoList.ts +248 -0
- package/src/queriedCoValues/queriedCoMap.ts +180 -0
- package/src/queriedCoValues/queriedCoStream.ts +125 -0
- package/src/queries.ts +142 -0
- package/src/sync.ts +2 -2
- package/src/{account.test.ts → tests/account.test.ts} +6 -9
- package/src/{coValue.test.ts → tests/coValue.test.ts} +120 -114
- package/src/{coValueCore.test.ts → tests/coValueCore.test.ts} +7 -7
- package/src/{crypto.test.ts → tests/crypto.test.ts} +19 -21
- package/src/{group.test.ts → tests/group.test.ts} +2 -2
- package/src/{permissions.test.ts → tests/permissions.test.ts} +260 -247
- package/src/tests/queries.test.ts +318 -0
- package/src/{sync.test.ts → tests/sync.test.ts} +39 -39
- package/src/{testUtils.ts → tests/testUtils.ts} +10 -8
- package/dist/coValues/static.d.ts +0 -14
- package/dist/coValues/static.js +0 -20
- package/dist/coValues/static.js.map +0 -1
- package/dist/node.js.map +0 -1
- package/dist/testUtils.js.map +0 -1
- package/src/coValues/static.ts +0 -31
package/.eslintrc.cjs
CHANGED
package/dist/account.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ import { CoID } from "./coValue.js";
|
|
|
3
3
|
import { AgentSecret, SealerID, SealerSecret, SignerID, SignerSecret } from "./crypto.js";
|
|
4
4
|
import { AgentID } from "./ids.js";
|
|
5
5
|
import { CoMap } from "./coValues/coMap.js";
|
|
6
|
-
import { LocalNode } from "./
|
|
6
|
+
import { LocalNode } from "./localNode.js";
|
|
7
7
|
import { Group, GroupContent } from "./group.js";
|
|
8
8
|
export declare function accountHeaderForInitialAgentSecret(agentSecret: AgentSecret): CoValueHeader;
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class AccountGroup extends Group {
|
|
10
10
|
get id(): AccountID;
|
|
11
11
|
getCurrentAgentID(): AgentID;
|
|
12
12
|
}
|
|
@@ -20,7 +20,7 @@ export interface GeneralizedControlledAccount {
|
|
|
20
20
|
currentSealerSecret: () => SealerSecret;
|
|
21
21
|
}
|
|
22
22
|
/** @hidden */
|
|
23
|
-
export declare class ControlledAccount extends
|
|
23
|
+
export declare class ControlledAccount extends AccountGroup implements GeneralizedControlledAccount {
|
|
24
24
|
agentSecret: AgentSecret;
|
|
25
25
|
constructor(agentSecret: AgentSecret, groupMap: CoMap<AccountContent, AccountMeta>, node: LocalNode);
|
|
26
26
|
currentAgentID(): AgentID;
|
|
@@ -40,14 +40,14 @@ export declare class AnonymousControlledAccount implements GeneralizedControlled
|
|
|
40
40
|
currentSealerID(): SealerID;
|
|
41
41
|
currentSealerSecret(): SealerSecret;
|
|
42
42
|
}
|
|
43
|
-
export type AccountContent =
|
|
44
|
-
profile:
|
|
45
|
-
};
|
|
43
|
+
export type AccountContent = {
|
|
44
|
+
profile: Profile;
|
|
45
|
+
} & GroupContent;
|
|
46
46
|
export type AccountMeta = {
|
|
47
47
|
type: "account";
|
|
48
48
|
};
|
|
49
|
-
export type
|
|
50
|
-
export type AccountID = CoID<
|
|
49
|
+
export type Account = CoMap<AccountContent, AccountMeta>;
|
|
50
|
+
export type AccountID = CoID<Account>;
|
|
51
51
|
export declare function isAccountID(id: AccountID | AgentID): id is AccountID;
|
|
52
52
|
export type ProfileContent = {
|
|
53
53
|
name: string;
|
package/dist/account.js
CHANGED
|
@@ -12,7 +12,7 @@ export function accountHeaderForInitialAgentSecret(agentSecret) {
|
|
|
12
12
|
uniqueness: null,
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
export class
|
|
15
|
+
export class AccountGroup extends Group {
|
|
16
16
|
get id() {
|
|
17
17
|
return this.underlyingMap.id;
|
|
18
18
|
}
|
|
@@ -27,7 +27,7 @@ export class Account extends Group {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
/** @hidden */
|
|
30
|
-
export class ControlledAccount extends
|
|
30
|
+
export class ControlledAccount extends AccountGroup {
|
|
31
31
|
constructor(agentSecret, groupMap, node) {
|
|
32
32
|
super(groupMap, node);
|
|
33
33
|
this.agentSecret = agentSecret;
|
package/dist/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAMH,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,kCAAkC,CAC9C,WAAwB;IAExB,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE;YACF,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACnB,CAAC;AACN,CAAC;AAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAMH,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,kCAAkC,CAC9C,WAAwB;IAExB,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE;YACF,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACnB,CAAC;AACN,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnC,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,EAAe,CAAC;IAC9C,CAAC;IAED,iBAAiB;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;aAC5B,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CACX,6CAA6C,GAAG,MAAM,CAAC,MAAM,CAChE,CAAC;SACL;QAED,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;IACtB,CAAC;CACJ;AAaD,cAAc;AACd,MAAM,OAAO,iBACT,SAAQ,YAAY;IAKpB,YACI,WAAwB,EACxB,QAA4C,EAC5C,IAAe;QAEf,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,cAAc;QACV,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,eAAe;QACX,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB;QACf,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACX,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB;QACf,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACJ;AAED,cAAc;AACd,MAAM,OAAO,0BAA0B;IAKnC,YAAY,WAAwB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;QACV,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,eAAe;QACX,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB;QACf,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACX,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB;QACf,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACJ;AAOD,MAAM,UAAU,WAAW,CAAC,EAAuB;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/coValue.d.ts
CHANGED
|
@@ -2,47 +2,42 @@ import { JsonObject, JsonValue } from "./jsonValue.js";
|
|
|
2
2
|
import { RawCoID } from "./ids.js";
|
|
3
3
|
import { CoMap } from "./coValues/coMap.js";
|
|
4
4
|
import { BinaryCoStream, BinaryCoStreamMeta, CoStream } from "./coValues/coStream.js";
|
|
5
|
-
import { Static } from "./coValues/static.js";
|
|
6
5
|
import { CoList } from "./coValues/coList.js";
|
|
7
6
|
import { CoValueCore } from "./coValueCore.js";
|
|
8
7
|
import { Group } from "./group.js";
|
|
9
|
-
export type CoID<T extends
|
|
8
|
+
export type CoID<T extends CoValue> = RawCoID & {
|
|
10
9
|
readonly __type: T;
|
|
11
10
|
};
|
|
12
|
-
export interface ReadableCoValue extends CoValue {
|
|
13
|
-
/** Lets you subscribe to future updates to this CoValue (whether made locally or by other users).
|
|
14
|
-
*
|
|
15
|
-
* Takes a listener function that will be called with the current state for each update.
|
|
16
|
-
*
|
|
17
|
-
* Returns an unsubscribe function.
|
|
18
|
-
*
|
|
19
|
-
* Used internally by `useTelepathicData()` for reactive updates on changes to a `CoValue`. */
|
|
20
|
-
subscribe(listener: (coValue: CoValueImpl) => void): () => void;
|
|
21
|
-
/** Lets you apply edits to a `CoValue`, inside the changer callback, which receives a `WriteableCoValue`.
|
|
22
|
-
*
|
|
23
|
-
* A `WritableCoValue` has all the same methods as a `CoValue`, but all edits made to it (with its additional mutator methods)
|
|
24
|
-
* are reflected in it immediately - so it behaves mutably, whereas a `CoValue` is always immutable
|
|
25
|
-
* (you need to use `subscribe` to receive new versions of it). */
|
|
26
|
-
edit?: ((changer: (editable: WriteableCoValue) => void) => CoValueImpl) | undefined;
|
|
27
|
-
}
|
|
28
11
|
export interface CoValue {
|
|
29
12
|
/** The `CoValue`'s (precisely typed) `CoID` */
|
|
30
|
-
id: CoID<
|
|
13
|
+
id: CoID<this>;
|
|
31
14
|
core: CoValueCore;
|
|
32
15
|
/** Specifies which kind of `CoValue` this is */
|
|
33
|
-
type:
|
|
16
|
+
type: string;
|
|
34
17
|
/** The `CoValue`'s (precisely typed) static metadata */
|
|
35
18
|
meta: JsonObject | null;
|
|
36
19
|
/** The `Group` this `CoValue` belongs to (determining permissions) */
|
|
37
20
|
group: Group;
|
|
38
21
|
/** Returns an immutable JSON presentation of this `CoValue` */
|
|
39
22
|
toJSON(): JsonValue;
|
|
23
|
+
atTime(time: number): this;
|
|
24
|
+
/** Lets you subscribe to future updates to this CoValue (whether made locally or by other users).
|
|
25
|
+
*
|
|
26
|
+
* Takes a listener function that will be called with the current state for each update.
|
|
27
|
+
*
|
|
28
|
+
* Returns an unsubscribe function.
|
|
29
|
+
*
|
|
30
|
+
* Used internally by `useTelepathicData()` for reactive updates on changes to a `CoValue`. */
|
|
31
|
+
subscribe(listener: (coValue: this) => void): () => void;
|
|
40
32
|
}
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
export type CoValueImpl = CoMap<{
|
|
44
|
-
[key: string]: JsonValue | undefined;
|
|
45
|
-
}, JsonObject | null> | CoList<JsonValue, JsonObject | null> | CoStream<JsonValue, JsonObject | null> | BinaryCoStream<BinaryCoStreamMeta> | Static<JsonObject>;
|
|
46
|
-
export declare function expectMap(content: CoValueImpl): CoMap<{
|
|
47
|
-
[key: string]: string;
|
|
33
|
+
export type AnyCoMap = CoMap<{
|
|
34
|
+
[key: string]: JsonValue | CoValue | undefined;
|
|
48
35
|
}, JsonObject | null>;
|
|
36
|
+
export type AnyCoList = CoList<JsonValue | CoValue, JsonObject | null>;
|
|
37
|
+
export type AnyCoStream = CoStream<JsonValue | CoValue, JsonObject | null>;
|
|
38
|
+
export type AnyBinaryCoStream = BinaryCoStream<BinaryCoStreamMeta>;
|
|
39
|
+
export type AnyCoValue = AnyCoMap | AnyCoList | AnyCoStream | AnyBinaryCoStream;
|
|
40
|
+
export declare function expectMap(content: CoValue): AnyCoMap;
|
|
41
|
+
export declare function expectList(content: CoValue): AnyCoList;
|
|
42
|
+
export declare function expectStream(content: CoValue): AnyCoStream;
|
|
43
|
+
export declare function isCoValue(value: JsonValue | CoValue | undefined): value is CoValue;
|
package/dist/coValue.js
CHANGED
|
@@ -1,7 +1,28 @@
|
|
|
1
|
+
import { CoMap } from "./coValues/coMap.js";
|
|
2
|
+
import { BinaryCoStream, CoStream, } from "./coValues/coStream.js";
|
|
3
|
+
import { CoList } from "./coValues/coList.js";
|
|
1
4
|
export function expectMap(content) {
|
|
2
5
|
if (content.type !== "comap") {
|
|
3
6
|
throw new Error("Expected map");
|
|
4
7
|
}
|
|
5
8
|
return content;
|
|
6
9
|
}
|
|
10
|
+
export function expectList(content) {
|
|
11
|
+
if (content.type !== "colist") {
|
|
12
|
+
throw new Error("Expected list");
|
|
13
|
+
}
|
|
14
|
+
return content;
|
|
15
|
+
}
|
|
16
|
+
export function expectStream(content) {
|
|
17
|
+
if (content.type !== "costream") {
|
|
18
|
+
throw new Error("Expected stream");
|
|
19
|
+
}
|
|
20
|
+
return content;
|
|
21
|
+
}
|
|
22
|
+
export function isCoValue(value) {
|
|
23
|
+
return (value instanceof CoMap ||
|
|
24
|
+
value instanceof CoList ||
|
|
25
|
+
value instanceof CoStream ||
|
|
26
|
+
value instanceof BinaryCoStream);
|
|
27
|
+
}
|
|
7
28
|
//# sourceMappingURL=coValue.js.map
|
package/dist/coValue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coValue.js","sourceRoot":"","sources":["../src/coValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coValue.js","sourceRoot":"","sources":["../src/coValue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EACH,cAAc,EAEd,QAAQ,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAiD9C,MAAM,UAAU,SAAS,CACrB,OAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,OAAO,OAAmB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CACtB,OAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;IAED,OAAO,OAAoB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,OAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACtC;IAED,OAAO,OAAsB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsC;IAC5D,OAAO,CACH,KAAK,YAAY,KAAK;QACtB,KAAK,YAAY,MAAM;QACvB,KAAK,YAAY,QAAQ;QACzB,KAAK,YAAY,cAAc,CAClC,CAAC;AACN,CAAC"}
|
package/dist/coValueCore.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AnyCoValue, CoValue } from "./coValue.js";
|
|
2
2
|
import { Encrypted, Hash, KeySecret, Signature, StreamingHash, KeyID } from "./crypto.js";
|
|
3
3
|
import { JsonObject, JsonValue } from "./jsonValue.js";
|
|
4
4
|
import { PermissionsDef as RulesetDef } from "./permissions.js";
|
|
5
5
|
import { Group } from "./group.js";
|
|
6
|
-
import { LocalNode } from "./
|
|
6
|
+
import { LocalNode } from "./localNode.js";
|
|
7
7
|
import { CoValueKnownState, NewContentMessage } from "./sync.js";
|
|
8
8
|
import { AgentID, RawCoID, SessionID, TransactionID } from "./ids.js";
|
|
9
9
|
import { AccountID, GeneralizedControlledAccount } from "./account.js";
|
|
10
10
|
import { Stringified } from "./jsonStringify.js";
|
|
11
11
|
export declare const MAX_RECOMMENDED_TX_SIZE: number;
|
|
12
12
|
export type CoValueHeader = {
|
|
13
|
-
type:
|
|
13
|
+
type: AnyCoValue["type"];
|
|
14
14
|
ruleset: RulesetDef;
|
|
15
15
|
meta: JsonObject | null;
|
|
16
16
|
createdAt: `2${string}` | null;
|
|
@@ -55,8 +55,8 @@ export declare class CoValueCore {
|
|
|
55
55
|
_sessions: {
|
|
56
56
|
[key: SessionID]: SessionLog;
|
|
57
57
|
};
|
|
58
|
-
_cachedContent?:
|
|
59
|
-
listeners: Set<(content?:
|
|
58
|
+
_cachedContent?: CoValue;
|
|
59
|
+
listeners: Set<(content?: CoValue) => void>;
|
|
60
60
|
_decryptionCache: {
|
|
61
61
|
[key: Encrypted<JsonValue[], JsonValue>]: Stringified<JsonValue[]> | undefined;
|
|
62
62
|
};
|
|
@@ -73,7 +73,7 @@ export declare class CoValueCore {
|
|
|
73
73
|
tryAddTransactions(sessionID: SessionID, newTransactions: Transaction[], givenExpectedNewHash: Hash | undefined, newSignature: Signature): boolean;
|
|
74
74
|
tryAddTransactionsAsync(sessionID: SessionID, newTransactions: Transaction[], givenExpectedNewHash: Hash | undefined, newSignature: Signature): Promise<boolean>;
|
|
75
75
|
private doAddTransactions;
|
|
76
|
-
subscribe(listener: (content?:
|
|
76
|
+
subscribe(listener: (content?: CoValue) => void): () => void;
|
|
77
77
|
expectedNewHashAfter(sessionID: SessionID, newTransactions: Transaction[]): {
|
|
78
78
|
expectedNewHash: Hash;
|
|
79
79
|
newStreamingHash: StreamingHash;
|
|
@@ -83,7 +83,7 @@ export declare class CoValueCore {
|
|
|
83
83
|
newStreamingHash: StreamingHash;
|
|
84
84
|
}>;
|
|
85
85
|
makeTransaction(changes: JsonValue[], privacy: "private" | "trusting"): boolean;
|
|
86
|
-
getCurrentContent():
|
|
86
|
+
getCurrentContent(): CoValue;
|
|
87
87
|
getValidSortedTransactions(): DecryptedTransaction[];
|
|
88
88
|
getCurrentReadKey(): {
|
|
89
89
|
secret: KeySecret | undefined;
|
package/dist/coValueCore.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { randomBytes } from "@noble/hashes/utils";
|
|
2
|
-
import { Static } from "./coValues/static.js";
|
|
3
2
|
import { BinaryCoStream, CoStream } from "./coValues/coStream.js";
|
|
4
3
|
import { CoMap } from "./coValues/coMap.js";
|
|
5
4
|
import { StreamingHash, unseal, shortHash, sign, verify, encryptForTransaction, decryptKeySecret, getAgentSignerID, getAgentSealerID, decryptRawForTransaction, } from "./crypto.js";
|
|
@@ -252,7 +251,7 @@ export class CoValueCore {
|
|
|
252
251
|
const signature = sign(this.node.account.currentSignerSecret(), expectedNewHash);
|
|
253
252
|
const success = this.tryAddTransactions(sessionID, [transaction], expectedNewHash, signature);
|
|
254
253
|
if (success) {
|
|
255
|
-
void this.node.
|
|
254
|
+
void this.node.syncManager.syncCoValue(this);
|
|
256
255
|
}
|
|
257
256
|
return success;
|
|
258
257
|
}
|
|
@@ -274,9 +273,6 @@ export class CoValueCore {
|
|
|
274
273
|
this._cachedContent = new CoStream(this);
|
|
275
274
|
}
|
|
276
275
|
}
|
|
277
|
-
else if (this.header.type === "static") {
|
|
278
|
-
this._cachedContent = new Static(this);
|
|
279
|
-
}
|
|
280
276
|
else {
|
|
281
277
|
throw new Error(`Unknown coValue type ${this.header.type}`);
|
|
282
278
|
}
|
|
@@ -355,13 +351,13 @@ export class CoValueCore {
|
|
|
355
351
|
if (this.header.ruleset.type === "group") {
|
|
356
352
|
const content = expectGroupContent(this.getCurrentContent());
|
|
357
353
|
// Try to find key revelation for us
|
|
358
|
-
const
|
|
359
|
-
if (
|
|
360
|
-
const revealer =
|
|
354
|
+
const lastReadyKeyEdit = content.lastEditAt(`${keyID}_for_${this.node.account.id}`);
|
|
355
|
+
if (lastReadyKeyEdit?.value) {
|
|
356
|
+
const revealer = lastReadyKeyEdit.by;
|
|
361
357
|
const revealerAgent = this.node.resolveAccountAgent(revealer, "Expected to know revealer");
|
|
362
|
-
const secret = unseal(
|
|
358
|
+
const secret = unseal(lastReadyKeyEdit.value, this.node.account.currentSealerSecret(), getAgentSealerID(revealerAgent), {
|
|
363
359
|
in: this.id,
|
|
364
|
-
tx:
|
|
360
|
+
tx: lastReadyKeyEdit.tx,
|
|
365
361
|
});
|
|
366
362
|
if (secret) {
|
|
367
363
|
let cache = readKeyCache.get(this);
|
|
@@ -469,14 +465,15 @@ export class CoValueCore {
|
|
|
469
465
|
sessionEntry = {
|
|
470
466
|
after: sentState[sessionID] ?? 0,
|
|
471
467
|
newTransactions: [],
|
|
472
|
-
lastSignature: "WILL_BE_REPLACED"
|
|
468
|
+
lastSignature: "WILL_BE_REPLACED",
|
|
473
469
|
};
|
|
474
470
|
currentPiece.new[sessionID] = sessionEntry;
|
|
475
471
|
}
|
|
476
472
|
sessionEntry.newTransactions.push(...txsToAdd);
|
|
477
|
-
sessionEntry.lastSignature =
|
|
478
|
-
|
|
479
|
-
|
|
473
|
+
sessionEntry.lastSignature =
|
|
474
|
+
nextKnownSignatureIdx === undefined
|
|
475
|
+
? log.lastSignature
|
|
476
|
+
: log.signatureAfter[nextKnownSignatureIdx];
|
|
480
477
|
sentState[sessionID] =
|
|
481
478
|
(sentState[sessionID] || 0) + txsToAdd.length;
|
|
482
479
|
}
|
package/dist/coValueCore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coValueCore.js","sourceRoot":"","sources":["../src/coValueCore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coValueCore.js","sourceRoot":"","sources":["../src/coValueCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAKH,aAAa,EACb,MAAM,EACN,SAAS,EACT,IAAI,EACJ,MAAM,EACN,qBAAqB,EAErB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAEH,0BAA0B,EAC1B,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AAUlD,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,SAAoB;IAEpB,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAwB,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA8B;IAC7D,OAAO,GAAG,SAAS,aAAa,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAkCD,MAAM,YAAY,GAAG,IAAI,OAAO,EAA2C,CAAC;AAE5E,MAAM,OAAO,WAAW;IAapB,YACI,MAAqB,EACrB,IAAe,EACf,uBAAyD,EAAE;QAV/D,cAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;QACxD,qBAAgB,GAIZ,EAAE,CAAC;QAOH,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,cAAc,EAAE;YACvC,IAAI,CAAC,IAAI;iBACJ,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBACzC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;gBACxB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;oBACnC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,wBAAwB,CACpB,OAAqC,EACrC,gBAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAC9C,OAAO,EACP,gBAAgB,CACnB,CAAC;QAEF,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,UAAU;QACN,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1C,CAAC;gBACD,CAAC,CAAC,YAAY,CAAC,MAAM;aACxB,CAAC,CACL;SACJ,CAAC;IACN,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,iBAAiB;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC7C,OAAO;YACH,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC;SAC9D,CAAC;IACN,CAAC;IAED,kBAAkB,CACd,SAAoB,EACpB,eAA8B,EAC9B,oBAAsC,EACtC,YAAuB;QAEvB,MAAM,QAAQ,GAAG,gBAAgB,CAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CACzB,6BAA6B,CAAC,SAAS,CAAC,EACxC,wCAAwC,CAC3C,CACJ,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,IAAI,CACR,eAAe,EACf,6BAA6B,CAAC,SAAS,CAAC,CAC3C,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;QAED,wCAAwC;QACxC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,oBAAoB,CACnE,SAAS,EACT,eAAe,CAClB,CAAC;QACF,uCAAuC;QACvC,eAAe;QACf,sBAAsB;QACtB,6BAA6B;QAC7B,KAAK;QAEL,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,eAAe,EAAE;YAClE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;gBACzB,eAAe;gBACf,oBAAoB;aACvB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QAED,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE;YAClD,OAAO,CAAC,IAAI,CACR,sBAAsB,EACtB,IAAI,CAAC,EAAE,EACP,YAAY,EACZ,eAAe,EACf,QAAQ,CACX,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;QACD,yCAAyC;QACzC,eAAe;QACf,qBAAqB;QACrB,iCAAiC;QACjC,KAAK;QAEL,IAAI,CAAC,iBAAiB,CAClB,SAAS,EACT,eAAe,EACf,YAAY,EACZ,eAAe,EACf,gBAAgB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,uBAAuB,CACzB,SAAoB,EACpB,eAA8B,EAC9B,oBAAsC,EACtC,YAAuB;QAEvB,MAAM,QAAQ,GAAG,gBAAgB,CAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CACzB,6BAA6B,CAAC,SAAS,CAAC,EACxC,wCAAwC,CAC3C,CACJ,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,IAAI,CACR,eAAe,EACf,6BAA6B,CAAC,SAAS,CAAC,CAC3C,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAErE,wCAAwC;QACxC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACvC,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACrE,uCAAuC;QACvC,eAAe;QACf,sBAAsB;QACtB,6BAA6B;QAC7B,KAAK;QAEL,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAEpE,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,0BAA0B,GAAG,eAAe,CAAC,MAAM,CAAC;YAC1D,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE;gBACrD,SAAS;gBACT,QAAQ;gBACR,0BAA0B;gBAC1B,wBAAwB,EAAE,eAAe,CAAC,MAAM;aACnD,CAAC,CAAC;SACN;QAED,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,eAAe,EAAE;YAClE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;gBACzB,eAAe;gBACf,oBAAoB;aACvB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QAED,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE;YAClD,OAAO,CAAC,IAAI,CACR,sBAAsB,EACtB,IAAI,CAAC,EAAE,EACP,YAAY,EACZ,eAAe,EACf,QAAQ,CACX,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;QACD,yCAAyC;QACzC,eAAe;QACf,qBAAqB;QACrB,iCAAiC;QACjC,KAAK;QAEL,IAAI,CAAC,iBAAiB,CAClB,SAAS,EACT,eAAe,EACf,YAAY,EACZ,eAAe,EACf,gBAAgB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,iBAAiB,CACrB,SAAoB,EACpB,eAA8B,EAC9B,YAAuB,EACvB,eAAqB,EACrB,gBAA+B;QAE/B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;QAClE,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAEtC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;QAEtE,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAChE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EACzD,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,oCAAoC,GAAG,YAAY;aACpD,KAAK,CAAC,yBAAyB,GAAG,CAAC,CAAC;aACpC,MAAM,CACH,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CACR,GAAG;YACH,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS;gBACrB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM;gBAC5B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAC5B,CAAC,CACJ,CAAC;QAEN,IAAI,oCAAoC,GAAG,GAAG,GAAG,IAAI,EAAE;YACnD,eAAe;YACf,4CAA4C;YAC5C,iBAAiB;YACjB,+BAA+B;YAC/B,2CAA2C;YAC3C,KAAK;YACL,cAAc,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;SAC1D;QAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;YACxB,YAAY;YACZ,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,gBAAgB;YAC/B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,cAAc;SACjC,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;IAED,SAAS,CAAC,QAAqC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC;IACN,CAAC;IAED,oBAAoB,CAChB,SAAoB,EACpB,eAA8B;QAE9B,MAAM,aAAa,GACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE;YAC/C,IAAI,aAAa,EAAE,CAAC;QACxB,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE;YACvC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;QAE/C,OAAO;YACH,eAAe,EAAE,aAAa,CAAC,MAAM,EAAE;YACvC,gBAAgB;SACnB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC3B,SAAoB,EACpB,eAA8B;QAE9B,MAAM,aAAa,GACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE;YAC/C,IAAI,aAAa,EAAE,CAAC;QACxB,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC/B,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE;YACvC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE;gBACpB,sDAAsD;gBACtD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;aAC9B;SACJ;QAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;QAE/C,OAAO;YACH,eAAe,EAAE,aAAa,CAAC,MAAM,EAAE;YACvC,gBAAgB;SACnB,CAAC;IACN,CAAC;IAED,eAAe,CACX,OAAoB,EACpB,OAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1B,IAAI,WAAwB,CAAC;QAE7B,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAElE,IAAI,CAAC,SAAS,EAAE;gBACZ,MAAM,IAAI,KAAK,CACX,gDAAgD,CACnD,CAAC;aACL;YAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE;gBACxD,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAE5D,WAAW,GAAG;gBACV,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,SAAS;aAC9B,CAAC;SACL;aAAM;YACH,WAAW,GAAG;gBACV,OAAO,EAAE,UAAU;gBACnB,MAAM;gBACN,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;aACpC,CAAC;SACL;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAE7C,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YAC7D,WAAW;SACd,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EACvC,eAAe,CAClB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CACnC,SAAS,EACT,CAAC,WAAW,CAAC,EACb,eAAe,EACf,SAAS,CACZ,CAAC;QAEF,IAAI,OAAO,EAAE;YACT,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAChD;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACxD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC5C;SACJ;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,0BAA0B;QACtB,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAE3D,MAAM,eAAe,GAA2B,iBAAiB;aAC5D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;YAClB,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;gBAC3B,OAAO;oBACH,IAAI;oBACJ,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,OAAO,EAAE,EAAE,CAAC,OAAO;iBACtB,CAAC;aACL;iBAAM;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAE5C,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,SAAS,CAAC;iBACpB;qBAAM;oBACH,IAAI,eAAe,GACf,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;oBAE/C,IAAI,CAAC,eAAe,EAAE;wBAClB,eAAe,GAAG,wBAAwB,CACtC,EAAE,CAAC,gBAAgB,EACnB,OAAO,EACP;4BACI,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,EAAE,EAAE,IAAI;yBACX,CACJ,CAAC;wBACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC;4BACtC,eAAe,CAAC;qBACvB;oBAED,IAAI,CAAC,eAAe,EAAE;wBAClB,OAAO,CAAC,KAAK,CACT,kDAAkD,CACrD,CAAC;wBACF,OAAO,SAAS,CAAC;qBACpB;oBACD,OAAO;wBACH,IAAI;wBACJ,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,OAAO,EAAE,eAAe;qBAC3B,CAAC;iBACL;aACJ;QACL,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,eAAe,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;YACnB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CACtC,CAAC;QAEF,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE7D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,CAAC,YAAY,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;aACrC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE7C,OAAO;gBACH,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,YAAY;aACnB,CAAC;SACL;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;YACpD,OAAO,IAAI,CAAC,IAAI;iBACX,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC9C,iBAAiB,EAAE,CAAC;SAC5B;aAAM;YACH,MAAM,IAAI,KAAK,CACX,yDAAyD,CAC5D,CAAC;SACL;IACL,CAAC;IAED,UAAU,CAAC,KAAY;QACnB,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE7D,oCAAoC;YAEpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CACvC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CACzC,CAAC;YAEF,IAAI,gBAAgB,EAAE,KAAK,EAAE;gBACzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC/C,QAAQ,EACR,2BAA2B,CAC9B,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,CACjB,gBAAgB,CAAC,KAAK,EACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EACvC,gBAAgB,CAAC,aAAa,CAAC,EAC/B;oBACI,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,EAAE,EAAE,gBAAgB,CAAC,EAAE;iBAC1B,CACJ,CAAC;gBAEF,IAAI,MAAM,EAAE;oBACR,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,KAAK,EAAE;wBACR,KAAK,GAAG,EAAE,CAAC;wBACX,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qBACjC;oBACD,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;oBAEtB,OAAO,MAAmB,CAAC;iBAC9B;aACJ;YAED,uDAAuD;YAEvD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBACpD,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAU,CAAC;oBACzD,MAAM,mBAAmB,GACrB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBAErC,IAAI,CAAC,mBAAmB,EAAE;wBACtB,SAAS;qBACZ;oBAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;oBAEjD,MAAM,MAAM,GAAG,gBAAgB,CAC3B;wBACI,WAAW,EAAE,KAAK;wBAClB,YAAY,EAAE,eAAe;wBAC7B,SAAS,EAAE,oBAAoB;qBAClC,EACD,mBAAmB,CACtB,CAAC;oBAEF,IAAI,MAAM,EAAE;wBACR,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACnC,IAAI,CAAC,KAAK,EAAE;4BACR,KAAK,GAAG,EAAE,CAAC;4BACX,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;yBACjC;wBACD,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBAEtB,OAAO,MAAmB,CAAC;qBAC9B;yBAAM;wBACH,OAAO,CAAC,KAAK,CACT,cAAc,eAAe,uBAAuB,KAAK,EAAE,CAC9D,CAAC;qBACL;iBACJ;aACJ;YAED,OAAO,SAAS,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;YACpD,OAAO,IAAI,CAAC,IAAI;iBACX,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC9C,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM;YACH,MAAM,IAAI,KAAK,CACX,yDAAyD,CAC5D,CAAC;SACL;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;QAED,OAAO,IAAI,KAAK,CACZ,kBAAkB,CACd,IAAI,CAAC,IAAI;aACJ,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAC9C,iBAAiB,EAAE,CAC3B,EACD,IAAI,CAAC,IAAI,CACZ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAmB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CACX,UAAyC;QAEzC,IAAI,YAAY,GAAsB;YAClC,MAAM,EAAE,SAAS;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YACpD,GAAG,EAAE,EAAE;SACV,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAkC;YAC7C,GAAG,UAAU,EAAE,QAAQ;SAC1B,CAAC;QAEF,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,OAAO,eAAe,EAAE;YACpB,eAAe,GAAG,KAAK,CAAC;YAExB,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAGxD,EAAE;gBACD,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;qBACxD,GAAG,CAAC,MAAM,CAAC;qBACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;qBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CACnC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EACzB,qBAAqB,KAAK,SAAS;oBAC/B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAClC,CAAC;gBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEpC,eAAe,GAAG,IAAI,CAAC;gBAEvB,MAAM,YAAY,GAAG,SAAS,CAAC;gBAC/B,SAAS,IAAI,QAAQ,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CACR,GAAG;oBACH,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS;wBACrB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM;wBAC5B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAC5B,CAAC,CACJ,CAAC;gBAEF,IAAI,SAAS,IAAI,uBAAuB,EAAE;oBACtC,YAAY,GAAG;wBACX,MAAM,EAAE,SAAS;wBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,EAAE;qBACV,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1B,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;iBACxC;gBAED,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,EAAE;oBACf,YAAY,GAAG;wBACX,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;wBAChC,eAAe,EAAE,EAAE;wBACnB,aAAa,EAAE,kBAA+B;qBACjD,CAAC;oBACF,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;iBAC9C;gBAED,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC/C,YAAY,CAAC,aAAa;oBACtB,qBAAqB,KAAK,SAAS;wBAC/B,CAAC,CAAC,GAAG,CAAC,aAAc;wBACpB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,qBAAqB,CAAE,CAAC;gBAErD,SAAS,CAAC,SAAS,CAAC;oBAChB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;aACrD;SACJ;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAC/D,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;YACvC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;iBACvC,IAAI,EAAE;iBACN,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc;gBAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC7B,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;CACJ"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { JsonObject, JsonValue } from "../jsonValue.js";
|
|
2
|
-
import { CoID,
|
|
2
|
+
import { CoID, CoValue } from "../coValue.js";
|
|
3
3
|
import { CoValueCore } from "../coValueCore.js";
|
|
4
|
-
import { SessionID, TransactionID } from "../ids.js";
|
|
4
|
+
import { AgentID, SessionID, TransactionID } from "../ids.js";
|
|
5
5
|
import { Group } from "../group.js";
|
|
6
6
|
import { AccountID } from "../account.js";
|
|
7
7
|
type OpID = TransactionID & {
|
|
8
8
|
changeIdx: number;
|
|
9
9
|
};
|
|
10
|
-
type InsertionOpPayload<T extends JsonValue> = {
|
|
10
|
+
type InsertionOpPayload<T extends JsonValue | CoValue> = {
|
|
11
11
|
op: "pre";
|
|
12
|
-
value: T
|
|
12
|
+
value: T extends CoValue ? CoID<T> : Exclude<T, CoValue>;
|
|
13
13
|
before: OpID | "end";
|
|
14
14
|
} | {
|
|
15
15
|
op: "app";
|
|
16
|
-
value: T
|
|
16
|
+
value: T extends CoValue ? CoID<T> : Exclude<T, CoValue>;
|
|
17
17
|
after: OpID | "start";
|
|
18
18
|
};
|
|
19
19
|
type DeletionOpPayload = {
|
|
20
20
|
op: "del";
|
|
21
21
|
insertion: OpID;
|
|
22
22
|
};
|
|
23
|
-
export type ListOpPayload<T extends JsonValue> = InsertionOpPayload<T> | DeletionOpPayload;
|
|
24
|
-
type InsertionEntry<T extends JsonValue> = {
|
|
23
|
+
export type ListOpPayload<T extends JsonValue | CoValue> = InsertionOpPayload<T> | DeletionOpPayload;
|
|
24
|
+
type InsertionEntry<T extends JsonValue | CoValue> = {
|
|
25
25
|
madeAt: number;
|
|
26
26
|
predecessors: OpID[];
|
|
27
27
|
successors: OpID[];
|
|
@@ -30,9 +30,12 @@ type DeletionEntry = {
|
|
|
30
30
|
madeAt: number;
|
|
31
31
|
deletionID: OpID;
|
|
32
32
|
} & DeletionOpPayload;
|
|
33
|
-
export declare class
|
|
34
|
-
|
|
33
|
+
export declare class CoListView<Item extends JsonValue | CoValue, Meta extends JsonObject | null = null> implements CoValue {
|
|
34
|
+
/** @category 6. Meta */
|
|
35
|
+
id: CoID<this>;
|
|
36
|
+
/** @category 6. Meta */
|
|
35
37
|
type: "colist";
|
|
38
|
+
/** @category 6. Meta */
|
|
36
39
|
core: CoValueCore;
|
|
37
40
|
/** @internal */
|
|
38
41
|
afterStart: OpID[];
|
|
@@ -42,7 +45,7 @@ export declare class CoList<T extends JsonValue, Meta extends JsonObject | null
|
|
|
42
45
|
insertions: {
|
|
43
46
|
[sessionID: SessionID]: {
|
|
44
47
|
[txIdx: number]: {
|
|
45
|
-
[changeIdx: number]: InsertionEntry<
|
|
48
|
+
[changeIdx: number]: InsertionEntry<Item>;
|
|
46
49
|
};
|
|
47
50
|
};
|
|
48
51
|
};
|
|
@@ -54,61 +57,123 @@ export declare class CoList<T extends JsonValue, Meta extends JsonObject | null
|
|
|
54
57
|
};
|
|
55
58
|
};
|
|
56
59
|
};
|
|
60
|
+
/** @category 6. Meta */
|
|
61
|
+
readonly _item: Item;
|
|
57
62
|
/** @internal */
|
|
58
63
|
constructor(core: CoValueCore);
|
|
64
|
+
/** @category 6. Meta */
|
|
59
65
|
get meta(): Meta;
|
|
66
|
+
/** @category 6. Meta */
|
|
60
67
|
get group(): Group;
|
|
68
|
+
/**
|
|
69
|
+
* Not yet implemented
|
|
70
|
+
*
|
|
71
|
+
* @category 4. Time travel
|
|
72
|
+
*/
|
|
73
|
+
atTime(_time: number): this;
|
|
74
|
+
/**
|
|
75
|
+
* Get the item currently at `idx`.
|
|
76
|
+
*
|
|
77
|
+
* @category 1. Reading
|
|
78
|
+
*/
|
|
79
|
+
get(idx: number): (Item extends CoValue ? CoID<Item> : Exclude<Item, CoValue>) | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the current items in the CoList as an array.
|
|
82
|
+
*
|
|
83
|
+
* @category 1. Reading
|
|
84
|
+
**/
|
|
85
|
+
asArray(): (Item extends CoValue ? CoID<Item> : Exclude<Item, CoValue>)[];
|
|
61
86
|
/** @internal */
|
|
62
|
-
protected fillOpsFromCoValue(): void;
|
|
63
|
-
/** Get the item currently at `idx`. */
|
|
64
|
-
get(idx: number): T | undefined;
|
|
65
|
-
/** Returns the current items in the CoList as an array. */
|
|
66
|
-
asArray(): T[];
|
|
67
87
|
entries(): {
|
|
68
|
-
value:
|
|
88
|
+
value: Item extends CoValue ? CoID<Item> : Exclude<Item, CoValue>;
|
|
69
89
|
madeAt: number;
|
|
70
90
|
opID: OpID;
|
|
71
91
|
}[];
|
|
72
92
|
/** @internal */
|
|
73
93
|
private fillArrayFromOpID;
|
|
74
|
-
/**
|
|
75
|
-
|
|
76
|
-
/** Returns the current items in the CoList as an array. (alias of `asArray`) */
|
|
77
|
-
toJSON(): T[];
|
|
78
|
-
map<U>(mapper: (value: T, idx: number) => U): U[];
|
|
79
|
-
filter<U extends T>(predicate: (value: T, idx: number) => value is U): U[];
|
|
80
|
-
reduce<U>(reducer: (accumulator: U, value: T, idx: number) => U, initialValue: U): U;
|
|
81
|
-
subscribe(listener: (coMap: CoList<T, Meta>) => void): () => void;
|
|
82
|
-
edit(changer: (editable: WriteableCoList<T, Meta>) => void): CoList<T, Meta>;
|
|
83
|
-
}
|
|
84
|
-
export declare class WriteableCoList<T extends JsonValue, Meta extends JsonObject | null = null> extends CoList<T, Meta> implements WriteableCoValue {
|
|
85
|
-
/** @internal */
|
|
86
|
-
edit(_changer: (editable: WriteableCoList<T, Meta>) => void): CoList<T, Meta>;
|
|
87
|
-
/** Appends a new item after index `after`.
|
|
94
|
+
/**
|
|
95
|
+
* Returns the current items in the CoList as an array. (alias of `asArray`)
|
|
88
96
|
*
|
|
89
|
-
*
|
|
97
|
+
* @category 1. Reading
|
|
98
|
+
*/
|
|
99
|
+
toJSON(): (Item extends CoValue ? CoID<Item> : Exclude<Item, CoValue>)[];
|
|
100
|
+
/** @category 5. Edit history */
|
|
101
|
+
editAt(idx: number): {
|
|
102
|
+
by: AccountID | AgentID;
|
|
103
|
+
tx: TransactionID;
|
|
104
|
+
at: Date;
|
|
105
|
+
value: Item extends CoValue ? CoID<Item> : Exclude<Item, CoValue>;
|
|
106
|
+
} | undefined;
|
|
107
|
+
/** @category 5. Edit history */
|
|
108
|
+
deletionEdits(): {
|
|
109
|
+
by: AccountID | AgentID;
|
|
110
|
+
tx: TransactionID;
|
|
111
|
+
at: Date;
|
|
112
|
+
}[];
|
|
113
|
+
/** @category 3. Subscription */
|
|
114
|
+
subscribe(listener: (coList: this) => void): () => void;
|
|
115
|
+
}
|
|
116
|
+
export declare class CoList<Item extends JsonValue | CoValue, Meta extends JsonObject | null = null> extends CoListView<Item, Meta> implements CoValue {
|
|
117
|
+
/** Returns a new version of this CoList with `item` appended after the item currently at index `after`.
|
|
90
118
|
*
|
|
91
|
-
* If `privacy` is `"
|
|
92
|
-
append(after: number, value: T, privacy?: "private" | "trusting"): void;
|
|
93
|
-
/** Pushes a new item to the end of the list.
|
|
119
|
+
* If `privacy` is `"private"` **(default)**, `item` is 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.
|
|
94
120
|
*
|
|
95
|
-
* If `privacy` is `"
|
|
121
|
+
* If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
96
122
|
*
|
|
97
|
-
*
|
|
98
|
-
|
|
123
|
+
* @category 2. Editing
|
|
124
|
+
**/
|
|
125
|
+
append(item: Item extends CoValue ? Item | CoID<Item> : Item, after?: number, privacy?: "private" | "trusting"): this;
|
|
99
126
|
/**
|
|
100
|
-
*
|
|
127
|
+
* Returns a new version of this CoList with `item` prepended before the item currently at index `before`.
|
|
101
128
|
*
|
|
102
|
-
* If `privacy` is `"private"` **(default)**,
|
|
129
|
+
* If `privacy` is `"private"` **(default)**, `item` is 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.
|
|
103
130
|
*
|
|
104
|
-
* If `privacy` is `"trusting"`,
|
|
131
|
+
* If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
132
|
+
*
|
|
133
|
+
* @category 2. Editing
|
|
105
134
|
*/
|
|
106
|
-
prepend(
|
|
135
|
+
prepend(item: Item extends CoValue ? Item | CoID<Item> : Item, before?: number, privacy?: "private" | "trusting"): this;
|
|
136
|
+
/** Returns a new version of this CoList with the item at index `at` deleted from the list.
|
|
137
|
+
*
|
|
138
|
+
* If `privacy` is `"private"` **(default)**, the fact of this deletion is 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.
|
|
139
|
+
*
|
|
140
|
+
* If `privacy` is `"trusting"`, the fact of this deletion is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
141
|
+
*
|
|
142
|
+
* @category 2. Editing
|
|
143
|
+
**/
|
|
144
|
+
delete(at: number, privacy?: "private" | "trusting"): this;
|
|
145
|
+
/** @category 2. Editing */
|
|
146
|
+
mutate(mutator: (mutable: MutableCoList<Item, Meta>) => void): this;
|
|
147
|
+
/** @deprecated Use `mutate` instead. */
|
|
148
|
+
edit(mutator: (mutable: MutableCoList<Item, Meta>) => void): this;
|
|
149
|
+
}
|
|
150
|
+
export declare class MutableCoList<Item extends JsonValue | CoValue, Meta extends JsonObject | null = null> extends CoListView<Item, Meta> implements CoValue {
|
|
151
|
+
/** Appends `item` after the item currently at index `after`.
|
|
152
|
+
*
|
|
153
|
+
* If `privacy` is `"private"` **(default)**, `item` is 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.
|
|
154
|
+
*
|
|
155
|
+
* If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
156
|
+
*
|
|
157
|
+
* @category 2. Mutating
|
|
158
|
+
**/
|
|
159
|
+
append(item: Item extends CoValue ? Item | CoID<Item> : Item, after?: number, privacy?: "private" | "trusting"): void;
|
|
160
|
+
/** Prepends `item` before the item currently at index `before`.
|
|
161
|
+
*
|
|
162
|
+
* If `privacy` is `"private"` **(default)**, `item` is 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.
|
|
163
|
+
*
|
|
164
|
+
* If `privacy` is `"trusting"`, `item` is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
165
|
+
*
|
|
166
|
+
* * @category 2. Mutating
|
|
167
|
+
**/
|
|
168
|
+
prepend(item: Item extends CoValue ? Item | CoID<Item> : Item, before?: number, privacy?: "private" | "trusting"): void;
|
|
107
169
|
/** Deletes the item at index `at` from the list.
|
|
108
170
|
*
|
|
109
171
|
* If `privacy` is `"private"` **(default)**, the fact of this deletion is 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.
|
|
110
172
|
*
|
|
111
|
-
* If `privacy` is `"trusting"`, the fact of this deletion is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
173
|
+
* If `privacy` is `"trusting"`, the fact of this deletion is stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
|
|
174
|
+
*
|
|
175
|
+
* * @category 2. Mutating
|
|
176
|
+
**/
|
|
112
177
|
delete(at: number, privacy?: "private" | "trusting"): void;
|
|
113
178
|
}
|
|
114
179
|
export {};
|