cojson 0.1.8 → 0.1.10
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/dist/account.d.ts +6 -3
- package/dist/account.js +4 -2
- package/dist/account.js.map +1 -1
- package/dist/coValue.d.ts +44 -80
- package/dist/coValue.js +4 -348
- package/dist/coValue.js.map +1 -1
- package/dist/coValueCore.d.ts +84 -0
- package/dist/coValueCore.js +356 -0
- package/dist/coValueCore.js.map +1 -0
- package/dist/coValues/coList.d.ts +114 -0
- package/dist/{contentTypes → coValues}/coList.js +59 -19
- package/dist/coValues/coList.js.map +1 -0
- package/dist/{contentTypes → coValues}/coMap.d.ts +25 -7
- package/dist/{contentTypes → coValues}/coMap.js +34 -15
- package/dist/coValues/coMap.js.map +1 -0
- package/dist/coValues/coStream.d.ts +69 -0
- package/dist/coValues/coStream.js +131 -0
- package/dist/coValues/coStream.js.map +1 -0
- package/dist/coValues/static.d.ts +14 -0
- package/dist/coValues/static.js +20 -0
- package/dist/coValues/static.js.map +1 -0
- package/dist/group.d.ts +57 -9
- package/dist/group.js +94 -28
- package/dist/group.js.map +1 -1
- package/dist/index.d.ts +19 -10
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +59 -5
- package/dist/node.js +36 -15
- package/dist/node.js.map +1 -1
- package/dist/permissions.d.ts +2 -2
- package/dist/permissions.js +1 -1
- package/dist/permissions.js.map +1 -1
- package/dist/sync.d.ts +3 -3
- package/dist/sync.js +2 -2
- package/dist/sync.js.map +1 -1
- package/dist/testUtils.d.ts +2 -2
- package/dist/testUtils.js +1 -1
- package/dist/testUtils.js.map +1 -1
- package/package.json +2 -2
- package/src/account.test.ts +1 -1
- package/src/account.ts +8 -5
- package/src/coValue.test.ts +335 -129
- package/src/coValue.ts +52 -576
- package/src/coValueCore.test.ts +180 -0
- package/src/coValueCore.ts +592 -0
- package/src/{contentTypes → coValues}/coList.ts +91 -42
- package/src/{contentTypes → coValues}/coMap.ts +40 -20
- package/src/coValues/coStream.ts +249 -0
- package/src/coValues/static.ts +31 -0
- package/src/group.test.ts +47 -0
- package/src/group.ts +120 -50
- package/src/index.ts +43 -28
- package/src/node.ts +48 -27
- package/src/permissions.test.ts +32 -32
- package/src/permissions.ts +5 -5
- package/src/sync.test.ts +77 -77
- package/src/sync.ts +5 -5
- package/src/testUtils.ts +1 -1
- package/tsconfig.json +1 -2
- package/dist/contentType.d.ts +0 -15
- package/dist/contentType.js +0 -7
- package/dist/contentType.js.map +0 -1
- package/dist/contentTypes/coList.d.ts +0 -77
- package/dist/contentTypes/coList.js.map +0 -1
- package/dist/contentTypes/coMap.js.map +0 -1
- package/dist/contentTypes/coStream.d.ts +0 -11
- package/dist/contentTypes/coStream.js +0 -16
- package/dist/contentTypes/coStream.js.map +0 -1
- package/dist/contentTypes/static.d.ts +0 -11
- package/dist/contentTypes/static.js +0 -14
- package/dist/contentTypes/static.js.map +0 -1
- package/src/contentType.test.ts +0 -284
- package/src/contentType.ts +0 -26
- package/src/contentTypes/coStream.ts +0 -24
- package/src/contentTypes/static.ts +0 -22
package/dist/group.js
CHANGED
|
@@ -7,31 +7,58 @@ export function expectGroupContent(content) {
|
|
|
7
7
|
}
|
|
8
8
|
return content;
|
|
9
9
|
}
|
|
10
|
+
/** A `Group` is a scope for permissions of its members (`"reader" | "writer" | "admin"`), applying to objects owned by that group.
|
|
11
|
+
*
|
|
12
|
+
* A `Group` object exposes methods for permission management and allows you to create new CoValues owned by that group.
|
|
13
|
+
*
|
|
14
|
+
* (Internally, a `Group` is also just a `CoMap`, mapping member accounts to roles and containing some
|
|
15
|
+
* state management for making cryptographic keys available to current members)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* You typically get a group from a CoValue that you already have loaded:
|
|
19
|
+
*
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const group = coMap.group;
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* Or, you can create a new group with a `LocalNode`:
|
|
26
|
+
*
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const localNode.createGroup();
|
|
29
|
+
* ```
|
|
30
|
+
* */
|
|
10
31
|
export class Group {
|
|
11
|
-
|
|
12
|
-
|
|
32
|
+
/** @internal */
|
|
33
|
+
constructor(underlyingMap, node) {
|
|
34
|
+
this.underlyingMap = underlyingMap;
|
|
13
35
|
this.node = node;
|
|
14
36
|
}
|
|
37
|
+
/** Returns the `CoID` of the `Group`. */
|
|
15
38
|
get id() {
|
|
16
|
-
return this.
|
|
39
|
+
return this.underlyingMap.id;
|
|
17
40
|
}
|
|
41
|
+
/** Returns the current role of a given account. */
|
|
18
42
|
roleOf(accountID) {
|
|
19
43
|
return this.roleOfInternal(accountID);
|
|
20
44
|
}
|
|
21
45
|
/** @internal */
|
|
22
46
|
roleOfInternal(accountID) {
|
|
23
|
-
return this.
|
|
47
|
+
return this.underlyingMap.get(accountID);
|
|
24
48
|
}
|
|
49
|
+
/** Returns the role of the current account in the group. */
|
|
25
50
|
myRole() {
|
|
26
51
|
return this.roleOfInternal(this.node.account.id);
|
|
27
52
|
}
|
|
53
|
+
/** Directly grants a new member a role in the group. The current account must be an
|
|
54
|
+
* admin to be able to do so. Throws otherwise. */
|
|
28
55
|
addMember(accountID, role) {
|
|
29
56
|
this.addMemberInternal(accountID, role);
|
|
30
57
|
}
|
|
31
58
|
/** @internal */
|
|
32
59
|
addMemberInternal(accountID, role) {
|
|
33
|
-
this.
|
|
34
|
-
const currentReadKey = this.
|
|
60
|
+
this.underlyingMap = this.underlyingMap.edit((map) => {
|
|
61
|
+
const currentReadKey = this.underlyingMap.core.getCurrentReadKey();
|
|
35
62
|
if (!currentReadKey.secret) {
|
|
36
63
|
throw new Error("Can't add member without read key secret");
|
|
37
64
|
}
|
|
@@ -40,30 +67,28 @@ export class Group {
|
|
|
40
67
|
if (map.get(accountID) !== role) {
|
|
41
68
|
throw new Error("Failed to set role");
|
|
42
69
|
}
|
|
43
|
-
map.set(`${currentReadKey.id}_for_${accountID}`, seal(currentReadKey.secret, this.
|
|
44
|
-
in: this.
|
|
45
|
-
tx: this.
|
|
70
|
+
map.set(`${currentReadKey.id}_for_${accountID}`, seal(currentReadKey.secret, this.underlyingMap.core.node.account.currentSealerSecret(), getAgentSealerID(agent), {
|
|
71
|
+
in: this.underlyingMap.core.id,
|
|
72
|
+
tx: this.underlyingMap.core.nextTransactionID(),
|
|
46
73
|
}), "trusting");
|
|
47
74
|
});
|
|
48
75
|
}
|
|
49
|
-
|
|
50
|
-
const secretSeed = newRandomSecretSeed();
|
|
51
|
-
const inviteSecret = agentSecretFromSecretSeed(secretSeed);
|
|
52
|
-
const inviteID = getAgentID(inviteSecret);
|
|
53
|
-
this.addMemberInternal(inviteID, `${role}Invite`);
|
|
54
|
-
return inviteSecretFromSecretSeed(secretSeed);
|
|
55
|
-
}
|
|
76
|
+
/** @internal */
|
|
56
77
|
rotateReadKey() {
|
|
57
|
-
const currentlyPermittedReaders = this.
|
|
78
|
+
const currentlyPermittedReaders = this.underlyingMap
|
|
79
|
+
.keys()
|
|
80
|
+
.filter((key) => {
|
|
58
81
|
if (key.startsWith("co_") || isAgentID(key)) {
|
|
59
|
-
const role = this.
|
|
60
|
-
return (role === "admin" ||
|
|
82
|
+
const role = this.underlyingMap.get(key);
|
|
83
|
+
return (role === "admin" ||
|
|
84
|
+
role === "writer" ||
|
|
85
|
+
role === "reader");
|
|
61
86
|
}
|
|
62
87
|
else {
|
|
63
88
|
return false;
|
|
64
89
|
}
|
|
65
90
|
});
|
|
66
|
-
const maybeCurrentReadKey = this.
|
|
91
|
+
const maybeCurrentReadKey = this.underlyingMap.core.getCurrentReadKey();
|
|
67
92
|
if (!maybeCurrentReadKey.secret) {
|
|
68
93
|
throw new Error("Can't rotate read key secret we don't have access to");
|
|
69
94
|
}
|
|
@@ -72,12 +97,12 @@ export class Group {
|
|
|
72
97
|
secret: maybeCurrentReadKey.secret,
|
|
73
98
|
};
|
|
74
99
|
const newReadKey = newRandomKeySecret();
|
|
75
|
-
this.
|
|
100
|
+
this.underlyingMap = this.underlyingMap.edit((map) => {
|
|
76
101
|
for (const readerID of currentlyPermittedReaders) {
|
|
77
102
|
const reader = this.node.resolveAccountAgent(readerID, "Expected to know currently permitted reader");
|
|
78
|
-
map.set(`${newReadKey.id}_for_${readerID}`, seal(newReadKey.secret, this.
|
|
79
|
-
in: this.
|
|
80
|
-
tx: this.
|
|
103
|
+
map.set(`${newReadKey.id}_for_${readerID}`, seal(newReadKey.secret, this.underlyingMap.core.node.account.currentSealerSecret(), getAgentSealerID(reader), {
|
|
104
|
+
in: this.underlyingMap.core.id,
|
|
105
|
+
tx: this.underlyingMap.core.nextTransactionID(),
|
|
81
106
|
}), "trusting");
|
|
82
107
|
}
|
|
83
108
|
map.set(`${currentReadKey.id}_for_${newReadKey.id}`, encryptKeySecret({
|
|
@@ -87,45 +112,86 @@ export class Group {
|
|
|
87
112
|
map.set("readKey", newReadKey.id, "trusting");
|
|
88
113
|
});
|
|
89
114
|
}
|
|
115
|
+
/** Strips the specified member of all roles (preventing future writes in
|
|
116
|
+
* the group and owned values) and rotates the read encryption key for that group
|
|
117
|
+
* (preventing reads of new content in the group and owned values) */
|
|
90
118
|
removeMember(accountID) {
|
|
91
119
|
this.removeMemberInternal(accountID);
|
|
92
120
|
}
|
|
93
121
|
/** @internal */
|
|
94
122
|
removeMemberInternal(accountID) {
|
|
95
|
-
this.
|
|
123
|
+
this.underlyingMap = this.underlyingMap.edit((map) => {
|
|
96
124
|
map.set(accountID, "revoked", "trusting");
|
|
97
125
|
});
|
|
98
126
|
this.rotateReadKey();
|
|
99
127
|
}
|
|
128
|
+
/** Creates an invite for new members to indirectly join the group, allowing them to grant themselves the specified role with the InviteSecret (a string starting with "inviteSecret_") - use `LocalNode.acceptInvite()` for this purpose. */
|
|
129
|
+
createInvite(role) {
|
|
130
|
+
const secretSeed = newRandomSecretSeed();
|
|
131
|
+
const inviteSecret = agentSecretFromSecretSeed(secretSeed);
|
|
132
|
+
const inviteID = getAgentID(inviteSecret);
|
|
133
|
+
this.addMemberInternal(inviteID, `${role}Invite`);
|
|
134
|
+
return inviteSecretFromSecretSeed(secretSeed);
|
|
135
|
+
}
|
|
136
|
+
/** Creates a new `CoMap` within this group, with the specified specialized
|
|
137
|
+
* `CoMap` type `M` and optional static metadata. */
|
|
100
138
|
createMap(meta) {
|
|
101
139
|
return this.node
|
|
102
140
|
.createCoValue({
|
|
103
141
|
type: "comap",
|
|
104
142
|
ruleset: {
|
|
105
143
|
type: "ownedByGroup",
|
|
106
|
-
group: this.
|
|
144
|
+
group: this.underlyingMap.id,
|
|
107
145
|
},
|
|
108
146
|
meta: meta || null,
|
|
109
147
|
...createdNowUnique(),
|
|
110
148
|
})
|
|
111
149
|
.getCurrentContent();
|
|
112
150
|
}
|
|
151
|
+
/** Creates a new `CoList` within this group, with the specified specialized
|
|
152
|
+
* `CoList` type `L` and optional static metadata. */
|
|
113
153
|
createList(meta) {
|
|
114
154
|
return this.node
|
|
115
155
|
.createCoValue({
|
|
116
156
|
type: "colist",
|
|
117
157
|
ruleset: {
|
|
118
158
|
type: "ownedByGroup",
|
|
119
|
-
group: this.
|
|
159
|
+
group: this.underlyingMap.id,
|
|
120
160
|
},
|
|
121
161
|
meta: meta || null,
|
|
122
162
|
...createdNowUnique(),
|
|
123
163
|
})
|
|
124
164
|
.getCurrentContent();
|
|
125
165
|
}
|
|
166
|
+
createStream(meta) {
|
|
167
|
+
return this.node
|
|
168
|
+
.createCoValue({
|
|
169
|
+
type: "costream",
|
|
170
|
+
ruleset: {
|
|
171
|
+
type: "ownedByGroup",
|
|
172
|
+
group: this.underlyingMap.id,
|
|
173
|
+
},
|
|
174
|
+
meta: meta || null,
|
|
175
|
+
...createdNowUnique(),
|
|
176
|
+
})
|
|
177
|
+
.getCurrentContent();
|
|
178
|
+
}
|
|
179
|
+
createBinaryStream(meta = { type: "binary" }) {
|
|
180
|
+
return this.node
|
|
181
|
+
.createCoValue({
|
|
182
|
+
type: "costream",
|
|
183
|
+
ruleset: {
|
|
184
|
+
type: "ownedByGroup",
|
|
185
|
+
group: this.underlyingMap.id,
|
|
186
|
+
},
|
|
187
|
+
meta: meta,
|
|
188
|
+
...createdNowUnique(),
|
|
189
|
+
})
|
|
190
|
+
.getCurrentContent();
|
|
191
|
+
}
|
|
126
192
|
/** @internal */
|
|
127
193
|
testWithDifferentAccount(account, sessionId) {
|
|
128
|
-
return new Group(expectGroupContent(this.
|
|
194
|
+
return new Group(expectGroupContent(this.underlyingMap.core
|
|
129
195
|
.testWithDifferentAccount(account, sessionId)
|
|
130
196
|
.getCurrentContent()), this.node);
|
|
131
197
|
}
|
package/dist/group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,EACJ,gBAAgB,EAChB,gBAAgB,EAEhB,mBAAmB,EACnB,yBAAyB,EACzB,UAAU,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAsB,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CoValueCore, newRandomSessionID } from "./coValueCore.js";
|
|
2
2
|
import { LocalNode } from "./node.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import type { CoValue, ReadableCoValue } from "./coValue.js";
|
|
4
|
+
import { CoMap, WriteableCoMap } from "./coValues/coMap.js";
|
|
5
|
+
import { CoList, WriteableCoList } from "./coValues/coList.js";
|
|
6
|
+
import { CoStream, WriteableCoStream, BinaryCoStream, WriteableBinaryCoStream } from "./coValues/coStream.js";
|
|
5
7
|
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, newRandomSecretSeed, agentSecretFromSecretSeed } from "./crypto.js";
|
|
6
8
|
import { connectedPeers } from "./streamUtils.js";
|
|
7
9
|
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
8
10
|
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
9
11
|
import { Group, expectGroupContent } from "./group.js";
|
|
10
12
|
import type { SessionID, AgentID } from "./ids.js";
|
|
11
|
-
import type { CoID,
|
|
13
|
+
import type { CoID, CoValueImpl } from "./coValue.js";
|
|
14
|
+
import type { BinaryChunkInfo, BinaryCoStreamMeta } from "./coValues/coStream.js";
|
|
12
15
|
import type { JsonValue } from "./jsonValue.js";
|
|
13
16
|
import type { SyncMessage, Peer } from "./sync.js";
|
|
14
17
|
import type { AgentSecret } from "./crypto.js";
|
|
15
|
-
import type { AccountID,
|
|
18
|
+
import type { AccountID, Profile } from "./account.js";
|
|
16
19
|
import type { InviteSecret } from "./group.js";
|
|
17
|
-
type Value = JsonValue |
|
|
20
|
+
type Value = JsonValue | CoValueImpl;
|
|
21
|
+
/** @hidden */
|
|
18
22
|
export declare const cojsonInternals: {
|
|
19
23
|
agentSecretFromBytes: typeof agentSecretFromBytes;
|
|
20
24
|
agentSecretToBytes: typeof agentSecretToBytes;
|
|
@@ -30,16 +34,21 @@ export declare const cojsonInternals: {
|
|
|
30
34
|
shortHashLength: number;
|
|
31
35
|
expectGroupContent: typeof expectGroupContent;
|
|
32
36
|
};
|
|
33
|
-
export { LocalNode,
|
|
34
|
-
export type { Value, JsonValue,
|
|
37
|
+
export { LocalNode, Group, CoMap, WriteableCoMap, CoList, WriteableCoList, CoStream, WriteableCoStream, BinaryCoStream, WriteableBinaryCoStream, CoValueCore, AnonymousControlledAccount, ControlledAccount, };
|
|
38
|
+
export type { Value, JsonValue, CoValue, ReadableCoValue, CoValueImpl, CoID, AccountID, Profile, SessionID, Peer, BinaryChunkInfo, BinaryCoStreamMeta, AgentID, AgentSecret, InviteSecret, SyncMessage, };
|
|
35
39
|
export declare namespace CojsonInternalTypes {
|
|
36
40
|
type CoValueKnownState = import("./sync.js").CoValueKnownState;
|
|
37
41
|
type DoneMessage = import("./sync.js").DoneMessage;
|
|
38
42
|
type KnownStateMessage = import("./sync.js").KnownStateMessage;
|
|
39
43
|
type LoadMessage = import("./sync.js").LoadMessage;
|
|
40
44
|
type NewContentMessage = import("./sync.js").NewContentMessage;
|
|
41
|
-
type CoValueHeader = import("./
|
|
42
|
-
type Transaction = import("./
|
|
45
|
+
type CoValueHeader = import("./coValueCore.js").CoValueHeader;
|
|
46
|
+
type Transaction = import("./coValueCore.js").Transaction;
|
|
43
47
|
type Signature = import("./crypto.js").Signature;
|
|
44
48
|
type RawCoID = import("./ids.js").RawCoID;
|
|
49
|
+
type AccountContent = import("./account.js").AccountContent;
|
|
50
|
+
type ProfileContent = import("./account.js").ProfileContent;
|
|
51
|
+
type ProfileMeta = import("./account.js").ProfileMeta;
|
|
52
|
+
type SealerSecret = import("./crypto.js").SealerSecret;
|
|
53
|
+
type SignerSecret = import("./crypto.js").SignerSecret;
|
|
45
54
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CoValueCore, newRandomSessionID } from "./coValueCore.js";
|
|
2
2
|
import { LocalNode } from "./node.js";
|
|
3
|
-
import { CoMap } from "./
|
|
4
|
-
import { CoList } from "./
|
|
3
|
+
import { CoMap, WriteableCoMap } from "./coValues/coMap.js";
|
|
4
|
+
import { CoList, WriteableCoList } from "./coValues/coList.js";
|
|
5
|
+
import { CoStream, WriteableCoStream, BinaryCoStream, WriteableBinaryCoStream, } from "./coValues/coStream.js";
|
|
5
6
|
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, newRandomSecretSeed, agentSecretFromSecretSeed, secretSeedLength, shortHashLength, } from "./crypto.js";
|
|
6
7
|
import { connectedPeers } from "./streamUtils.js";
|
|
7
8
|
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
8
9
|
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
9
10
|
import { Group, expectGroupContent } from "./group.js";
|
|
11
|
+
/** @hidden */
|
|
10
12
|
export const cojsonInternals = {
|
|
11
13
|
agentSecretFromBytes,
|
|
12
14
|
agentSecretToBytes,
|
|
@@ -20,7 +22,7 @@ export const cojsonInternals = {
|
|
|
20
22
|
agentSecretFromSecretSeed,
|
|
21
23
|
secretSeedLength,
|
|
22
24
|
shortHashLength,
|
|
23
|
-
expectGroupContent
|
|
25
|
+
expectGroupContent,
|
|
24
26
|
};
|
|
25
|
-
export { LocalNode,
|
|
27
|
+
export { LocalNode, Group, CoMap, WriteableCoMap, CoList, WriteableCoList, CoStream, WriteableCoStream, BinaryCoStream, WriteableBinaryCoStream, CoValueCore, AnonymousControlledAccount, ControlledAccount, };
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAavD,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,yBAAyB;IACzB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;CACrB,CAAC;AAEF,OAAO,EACH,SAAS,EACT,KAAK,EACL,KAAK,EACL,cAAc,EACd,MAAM,EACN,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,GACpB,CAAC"}
|
package/dist/node.d.ts
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
import { AgentSecret } from "./crypto.js";
|
|
2
|
+
import { CoValueCore, CoValueHeader } from "./coValueCore.js";
|
|
2
3
|
import { InviteSecret, Group } from "./group.js";
|
|
3
4
|
import { Peer, SyncManager } from "./sync.js";
|
|
4
|
-
import { SessionID } from "./ids.js";
|
|
5
|
-
import { CoID,
|
|
6
|
-
import { GeneralizedControlledAccount, AccountID, Profile } from "./account.js";
|
|
5
|
+
import { AgentID, RawCoID, SessionID } from "./ids.js";
|
|
6
|
+
import { CoID, CoValueImpl } from "./coValue.js";
|
|
7
|
+
import { GeneralizedControlledAccount, ControlledAccount, AccountID, Profile } from "./account.js";
|
|
8
|
+
/** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
|
|
9
|
+
|
|
10
|
+
A `LocalNode` can have peers that it syncs to, for example some form of local persistence, or a sync server, such as `sync.jazz.tools` (Jazz Global Mesh).
|
|
11
|
+
|
|
12
|
+
@example
|
|
13
|
+
You typically get hold of a `LocalNode` using `jazz-react`'s `useJazz()`:
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
const { localNode } = useJazz();
|
|
17
|
+
```
|
|
18
|
+
*/
|
|
7
19
|
export declare class LocalNode {
|
|
20
|
+
/** @internal */
|
|
21
|
+
coValues: {
|
|
22
|
+
[key: RawCoID]: CoValueState;
|
|
23
|
+
};
|
|
24
|
+
/** @internal */
|
|
25
|
+
account: GeneralizedControlledAccount;
|
|
8
26
|
currentSessionID: SessionID;
|
|
9
27
|
sync: SyncManager;
|
|
10
28
|
constructor(account: GeneralizedControlledAccount, currentSessionID: SessionID);
|
|
@@ -15,8 +33,44 @@ export declare class LocalNode {
|
|
|
15
33
|
sessionID: SessionID;
|
|
16
34
|
};
|
|
17
35
|
static withLoadedAccount(accountID: AccountID, accountSecret: AgentSecret, sessionID: SessionID, peersToLoadFrom: Peer[]): Promise<LocalNode>;
|
|
18
|
-
|
|
36
|
+
/** @internal */
|
|
37
|
+
createCoValue(header: CoValueHeader): CoValueCore;
|
|
38
|
+
/** @internal */
|
|
39
|
+
loadCoValue(id: RawCoID): Promise<CoValueCore>;
|
|
40
|
+
/**
|
|
41
|
+
* Loads a CoValue's content, syncing from peers as necessary and resolving the returned
|
|
42
|
+
* promise once a first version has been loaded. See `coValue.subscribe()` and `node.useTelepathicData()`
|
|
43
|
+
* for listening to subsequent updates to the CoValue.
|
|
44
|
+
*/
|
|
45
|
+
load<T extends CoValueImpl>(id: CoID<T>): Promise<T>;
|
|
46
|
+
/**
|
|
47
|
+
* Loads a profile associated with an account. `Profile` is at least a `CoMap<{string: name}>`,
|
|
48
|
+
* but might contain other, app-specific properties.
|
|
49
|
+
*/
|
|
19
50
|
loadProfile(id: AccountID): Promise<Profile>;
|
|
20
|
-
acceptInvite<T extends
|
|
51
|
+
acceptInvite<T extends CoValueImpl>(groupOrOwnedValueID: CoID<T>, inviteSecret: InviteSecret): Promise<void>;
|
|
52
|
+
/** @internal */
|
|
53
|
+
expectCoValueLoaded(id: RawCoID, expectation?: string): CoValueCore;
|
|
54
|
+
/** @internal */
|
|
55
|
+
expectProfileLoaded(id: AccountID, expectation?: string): Profile;
|
|
56
|
+
/** @internal */
|
|
57
|
+
createAccount(name: string, agentSecret?: `sealerSecret_z${string}/signerSecret_z${string}`): ControlledAccount;
|
|
58
|
+
/** @internal */
|
|
59
|
+
resolveAccountAgent(id: AccountID | AgentID, expectation?: string): AgentID;
|
|
60
|
+
/** Creates a new group (with the current account as the group's first admin). */
|
|
21
61
|
createGroup(): Group;
|
|
62
|
+
/** @internal */
|
|
63
|
+
testWithDifferentAccount(account: GeneralizedControlledAccount, currentSessionID: SessionID): LocalNode;
|
|
22
64
|
}
|
|
65
|
+
/** @internal */
|
|
66
|
+
type CoValueState = {
|
|
67
|
+
state: "loading";
|
|
68
|
+
done: Promise<CoValueCore>;
|
|
69
|
+
resolve: (coValue: CoValueCore) => void;
|
|
70
|
+
} | {
|
|
71
|
+
state: "loaded";
|
|
72
|
+
coValue: CoValueCore;
|
|
73
|
+
};
|
|
74
|
+
/** @internal */
|
|
75
|
+
export declare function newLoadingState(): CoValueState;
|
|
76
|
+
export {};
|
package/dist/node.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { agentSecretFromSecretSeed, createdNowUnique, getAgentID, getAgentSealerID, getAgentSealerSecret, newRandomAgentSecret, newRandomKeySecret, seal, } from "./crypto.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CoValueCore, newRandomSessionID } from "./coValueCore.js";
|
|
3
3
|
import { Group, expectGroupContent, secretSeedFromInviteSecret, } from "./group.js";
|
|
4
4
|
import { SyncManager } from "./sync.js";
|
|
5
5
|
import { isAgentID } from "./ids.js";
|
|
6
6
|
import { Account, accountHeaderForInitialAgentSecret, ControlledAccount, AnonymousControlledAccount, } from "./account.js";
|
|
7
|
+
/** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
|
|
8
|
+
|
|
9
|
+
A `LocalNode` can have peers that it syncs to, for example some form of local persistence, or a sync server, such as `sync.jazz.tools` (Jazz Global Mesh).
|
|
10
|
+
|
|
11
|
+
@example
|
|
12
|
+
You typically get hold of a `LocalNode` using `jazz-react`'s `useJazz()`:
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
const { localNode } = useJazz();
|
|
16
|
+
```
|
|
17
|
+
*/
|
|
7
18
|
export class LocalNode {
|
|
8
19
|
constructor(account, currentSessionID) {
|
|
9
20
|
/** @internal */
|
|
@@ -39,7 +50,7 @@ export class LocalNode {
|
|
|
39
50
|
}
|
|
40
51
|
/** @internal */
|
|
41
52
|
createCoValue(header) {
|
|
42
|
-
const coValue = new
|
|
53
|
+
const coValue = new CoValueCore(header, this);
|
|
43
54
|
this.coValues[coValue.id] = { state: "loaded", coValue: coValue };
|
|
44
55
|
void this.sync.syncCoValue(coValue);
|
|
45
56
|
return coValue;
|
|
@@ -57,9 +68,18 @@ export class LocalNode {
|
|
|
57
68
|
}
|
|
58
69
|
return entry.done;
|
|
59
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Loads a CoValue's content, syncing from peers as necessary and resolving the returned
|
|
73
|
+
* promise once a first version has been loaded. See `coValue.subscribe()` and `node.useTelepathicData()`
|
|
74
|
+
* for listening to subsequent updates to the CoValue.
|
|
75
|
+
*/
|
|
60
76
|
async load(id) {
|
|
61
77
|
return (await this.loadCoValue(id)).getCurrentContent();
|
|
62
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Loads a profile associated with an account. `Profile` is at least a `CoMap<{string: name}>`,
|
|
81
|
+
* but might contain other, app-specific properties.
|
|
82
|
+
*/
|
|
63
83
|
async loadProfile(id) {
|
|
64
84
|
const account = await this.load(id);
|
|
65
85
|
const profileID = account.get("profile");
|
|
@@ -70,17 +90,17 @@ export class LocalNode {
|
|
|
70
90
|
}
|
|
71
91
|
async acceptInvite(groupOrOwnedValueID, inviteSecret) {
|
|
72
92
|
const groupOrOwnedValue = await this.load(groupOrOwnedValueID);
|
|
73
|
-
if (groupOrOwnedValue.
|
|
74
|
-
return this.acceptInvite(groupOrOwnedValue.
|
|
93
|
+
if (groupOrOwnedValue.core.header.ruleset.type === "ownedByGroup") {
|
|
94
|
+
return this.acceptInvite(groupOrOwnedValue.core.header.ruleset.group, inviteSecret);
|
|
75
95
|
}
|
|
76
|
-
else if (groupOrOwnedValue.
|
|
96
|
+
else if (groupOrOwnedValue.core.header.ruleset.type !== "group") {
|
|
77
97
|
throw new Error("Can only accept invites to groups");
|
|
78
98
|
}
|
|
79
99
|
const group = new Group(expectGroupContent(groupOrOwnedValue), this);
|
|
80
100
|
const inviteAgentSecret = agentSecretFromSecretSeed(secretSeedFromInviteSecret(inviteSecret));
|
|
81
101
|
const inviteAgentID = getAgentID(inviteAgentSecret);
|
|
82
102
|
const inviteRole = await new Promise((resolve, reject) => {
|
|
83
|
-
group.
|
|
103
|
+
group.underlyingMap.subscribe((groupMap) => {
|
|
84
104
|
const role = groupMap.get(inviteAgentID);
|
|
85
105
|
if (role) {
|
|
86
106
|
resolve(role);
|
|
@@ -91,7 +111,7 @@ export class LocalNode {
|
|
|
91
111
|
if (!inviteRole) {
|
|
92
112
|
throw new Error("No invite found");
|
|
93
113
|
}
|
|
94
|
-
const existingRole = group.
|
|
114
|
+
const existingRole = group.underlyingMap.get(this.account.id);
|
|
95
115
|
if (existingRole === "admin" ||
|
|
96
116
|
(existingRole === "writer" && inviteRole === "writerInvite") ||
|
|
97
117
|
(existingRole === "writer" && inviteRole === "reader") ||
|
|
@@ -105,10 +125,10 @@ export class LocalNode {
|
|
|
105
125
|
: inviteRole === "writerInvite"
|
|
106
126
|
? "writer"
|
|
107
127
|
: "reader");
|
|
108
|
-
group.
|
|
109
|
-
group.
|
|
110
|
-
for (const groupListener of group.
|
|
111
|
-
groupListener(group.
|
|
128
|
+
group.underlyingMap.core._sessions = groupAsInvite.underlyingMap.core.sessions;
|
|
129
|
+
group.underlyingMap.core._cachedContent = undefined;
|
|
130
|
+
for (const groupListener of group.underlyingMap.core.listeners) {
|
|
131
|
+
groupListener(group.underlyingMap.core.getCurrentContent());
|
|
112
132
|
}
|
|
113
133
|
}
|
|
114
134
|
/** @internal */
|
|
@@ -135,7 +155,7 @@ export class LocalNode {
|
|
|
135
155
|
createAccount(name, agentSecret = newRandomAgentSecret()) {
|
|
136
156
|
const account = this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret)).testWithDifferentAccount(new AnonymousControlledAccount(agentSecret), newRandomSessionID(getAgentID(agentSecret)));
|
|
137
157
|
const accountAsGroup = new Group(expectGroupContent(account.getCurrentContent()), account.node);
|
|
138
|
-
accountAsGroup.
|
|
158
|
+
accountAsGroup.underlyingMap.edit((editable) => {
|
|
139
159
|
editable.set(getAgentID(agentSecret), "admin", "trusting");
|
|
140
160
|
const readKey = newRandomKeySecret();
|
|
141
161
|
editable.set(`${readKey.id}_for_${getAgentID(agentSecret)}`, seal(readKey.secret, getAgentSealerSecret(agentSecret), getAgentSealerID(getAgentID(agentSecret)), {
|
|
@@ -151,11 +171,11 @@ export class LocalNode {
|
|
|
151
171
|
profile.edit((editable) => {
|
|
152
172
|
editable.set("name", name, "trusting");
|
|
153
173
|
});
|
|
154
|
-
accountAsGroup.
|
|
174
|
+
accountAsGroup.underlyingMap.edit((editable) => {
|
|
155
175
|
editable.set("profile", profile.id, "trusting");
|
|
156
176
|
});
|
|
157
177
|
const accountOnThisNode = this.expectCoValueLoaded(account.id);
|
|
158
|
-
accountOnThisNode._sessions = { ...accountAsGroup.
|
|
178
|
+
accountOnThisNode._sessions = { ...accountAsGroup.underlyingMap.core.sessions };
|
|
159
179
|
accountOnThisNode._cachedContent = undefined;
|
|
160
180
|
return controlledAccount;
|
|
161
181
|
}
|
|
@@ -174,6 +194,7 @@ export class LocalNode {
|
|
|
174
194
|
}
|
|
175
195
|
return new Account(coValue.getCurrentContent(), this).getCurrentAgentID();
|
|
176
196
|
}
|
|
197
|
+
/** Creates a new group (with the current account as the group's first admin). */
|
|
177
198
|
createGroup() {
|
|
178
199
|
const groupCoValue = this.createCoValue({
|
|
179
200
|
type: "comap",
|
|
@@ -212,7 +233,7 @@ export class LocalNode {
|
|
|
212
233
|
coValuesToCopy.unshift(coValuesToCopy.pop());
|
|
213
234
|
continue;
|
|
214
235
|
}
|
|
215
|
-
const newCoValue = new
|
|
236
|
+
const newCoValue = new CoValueCore(entry.coValue.header, newNode, { ...entry.coValue.sessions });
|
|
216
237
|
newNode.coValues[coValueID] = {
|
|
217
238
|
state: "loaded",
|
|
218
239
|
coValue: newCoValue,
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
package/dist/permissions.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KeyID } from "./crypto.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CoValueCore, Transaction } from "./coValueCore.js";
|
|
3
3
|
import { AgentID, RawCoID, TransactionID } from "./ids.js";
|
|
4
4
|
import { AccountID } from "./account.js";
|
|
5
5
|
export type PermissionsDef = {
|
|
@@ -12,7 +12,7 @@ export type PermissionsDef = {
|
|
|
12
12
|
type: "unsafeAllowAll";
|
|
13
13
|
};
|
|
14
14
|
export type Role = "reader" | "writer" | "admin" | "revoked" | "adminInvite" | "writerInvite" | "readerInvite";
|
|
15
|
-
export declare function determineValidTransactions(coValue:
|
|
15
|
+
export declare function determineValidTransactions(coValue: CoValueCore): {
|
|
16
16
|
txID: TransactionID;
|
|
17
17
|
tx: Transaction;
|
|
18
18
|
}[];
|
package/dist/permissions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { accountOrAgentIDfromSessionID, } from "./
|
|
1
|
+
import { accountOrAgentIDfromSessionID, } from "./coValueCore.js";
|
|
2
2
|
export function determineValidTransactions(coValue) {
|
|
3
3
|
if (coValue.header.ruleset.type === "group") {
|
|
4
4
|
const allTrustingTransactionsSorted = Object.entries(coValue.sessions).flatMap(([sessionID, sessionLog]) => {
|