cojson 0.0.24 → 0.1.1
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/README.md +1 -1
- package/dist/account.d.ts +4 -4
- package/dist/account.js +7 -7
- package/dist/account.js.map +1 -1
- package/dist/coValue.d.ts +2 -2
- package/dist/coValue.js +23 -23
- package/dist/coValue.js.map +1 -1
- package/dist/{team.d.ts → group.d.ts} +7 -7
- package/dist/{team.js → group.js} +24 -24
- package/dist/group.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +3 -3
- package/dist/node.js +41 -39
- package/dist/node.js.map +1 -1
- package/dist/permissions.d.ts +3 -3
- package/dist/permissions.js +13 -13
- package/dist/permissions.js.map +1 -1
- package/dist/testUtils.d.ts +8 -8
- package/dist/testUtils.js +19 -19
- package/dist/testUtils.js.map +1 -1
- package/package.json +2 -2
- package/src/account.test.ts +7 -7
- package/src/account.ts +8 -8
- package/src/coValue.test.ts +5 -5
- package/src/coValue.ts +24 -24
- package/src/{team.ts → group.ts} +31 -31
- package/src/index.ts +4 -4
- package/src/node.ts +48 -46
- package/src/permissions.test.ts +303 -303
- package/src/permissions.ts +16 -16
- package/src/sync.test.ts +74 -74
- package/src/testUtils.ts +19 -19
- package/dist/team.js.map +0 -1
package/dist/node.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { agentSecretFromSecretSeed, createdNowUnique, getAgentID, getAgentSealerID, getAgentSealerSecret, newRandomAgentSecret, newRandomKeySecret, seal, } from "./crypto.js";
|
|
2
2
|
import { CoValue, newRandomSessionID } from "./coValue.js";
|
|
3
|
-
import {
|
|
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";
|
|
@@ -65,45 +65,47 @@ export class LocalNode {
|
|
|
65
65
|
}
|
|
66
66
|
return (await this.loadCoValue(profileID)).getCurrentContent();
|
|
67
67
|
}
|
|
68
|
-
async acceptInvite(
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
return this.acceptInvite(
|
|
68
|
+
async acceptInvite(groupOrOwnedValueID, inviteSecret) {
|
|
69
|
+
const groupOrOwnedValue = await this.load(groupOrOwnedValueID);
|
|
70
|
+
if (groupOrOwnedValue.coValue.header.ruleset.type === "ownedByGroup") {
|
|
71
|
+
return this.acceptInvite(groupOrOwnedValue.coValue.header.ruleset.group, inviteSecret);
|
|
72
72
|
}
|
|
73
|
-
else if (
|
|
74
|
-
throw new Error("Can only accept invites to
|
|
73
|
+
else if (groupOrOwnedValue.coValue.header.ruleset.type !== "group") {
|
|
74
|
+
throw new Error("Can only accept invites to groups");
|
|
75
75
|
}
|
|
76
|
-
const
|
|
76
|
+
const group = new Group(expectGroupContent(groupOrOwnedValue), this);
|
|
77
77
|
const inviteAgentSecret = agentSecretFromSecretSeed(secretSeedFromInviteSecret(inviteSecret));
|
|
78
78
|
const inviteAgentID = getAgentID(inviteAgentSecret);
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
const role =
|
|
79
|
+
const inviteRole = await new Promise((resolve, reject) => {
|
|
80
|
+
group.groupMap.subscribe((groupMap) => {
|
|
81
|
+
const role = groupMap.get(inviteAgentID);
|
|
82
82
|
if (role) {
|
|
83
83
|
resolve(role);
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
setTimeout(() => reject(new Error("Couldn't find
|
|
86
|
+
setTimeout(() => reject(new Error("Couldn't find invite before timeout")), 1000);
|
|
87
87
|
});
|
|
88
|
-
if (!
|
|
89
|
-
throw new Error("No
|
|
88
|
+
if (!inviteRole) {
|
|
89
|
+
throw new Error("No invite found");
|
|
90
90
|
}
|
|
91
|
-
const existingRole =
|
|
91
|
+
const existingRole = group.groupMap.get(this.account.id);
|
|
92
92
|
if (existingRole === "admin" ||
|
|
93
|
-
(existingRole === "writer" &&
|
|
94
|
-
|
|
93
|
+
(existingRole === "writer" && inviteRole === "writerInvite") ||
|
|
94
|
+
(existingRole === "writer" && inviteRole === "reader") ||
|
|
95
|
+
(existingRole === "reader" && inviteRole === "readerInvite")) {
|
|
96
|
+
console.debug("Not accepting invite that would replace or downgrade role");
|
|
95
97
|
return;
|
|
96
98
|
}
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
+
const groupAsInvite = group.testWithDifferentAccount(new AnonymousControlledAccount(inviteAgentSecret), newRandomSessionID(inviteAgentID));
|
|
100
|
+
groupAsInvite.addMember(this.account.id, inviteRole === "adminInvite"
|
|
99
101
|
? "admin"
|
|
100
|
-
:
|
|
102
|
+
: inviteRole === "writerInvite"
|
|
101
103
|
? "writer"
|
|
102
104
|
: "reader");
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
for (const
|
|
106
|
-
|
|
105
|
+
group.groupMap.coValue._sessions = groupAsInvite.groupMap.coValue.sessions;
|
|
106
|
+
group.groupMap.coValue._cachedContent = undefined;
|
|
107
|
+
for (const groupListener of group.groupMap.coValue.listeners) {
|
|
108
|
+
groupListener(group.groupMap.coValue.getCurrentContent());
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
expectCoValueLoaded(id, expectation) {
|
|
@@ -118,7 +120,7 @@ export class LocalNode {
|
|
|
118
120
|
}
|
|
119
121
|
expectProfileLoaded(id, expectation) {
|
|
120
122
|
const account = this.expectCoValueLoaded(id, expectation);
|
|
121
|
-
const profileID =
|
|
123
|
+
const profileID = expectGroupContent(account.getCurrentContent()).get("profile");
|
|
122
124
|
if (!profileID) {
|
|
123
125
|
throw new Error(`${expectation ? expectation + ": " : ""}Account ${id} has no profile`);
|
|
124
126
|
}
|
|
@@ -126,8 +128,8 @@ export class LocalNode {
|
|
|
126
128
|
}
|
|
127
129
|
createAccount(name, agentSecret = newRandomAgentSecret()) {
|
|
128
130
|
const account = this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret)).testWithDifferentAccount(new AnonymousControlledAccount(agentSecret), newRandomSessionID(getAgentID(agentSecret)));
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
+
const accountAsGroup = new Group(expectGroupContent(account.getCurrentContent()), account.node);
|
|
132
|
+
accountAsGroup.groupMap.edit((editable) => {
|
|
131
133
|
editable.set(getAgentID(agentSecret), "admin", "trusting");
|
|
132
134
|
const readKey = newRandomKeySecret();
|
|
133
135
|
editable.set(`${readKey.id}_for_${getAgentID(agentSecret)}`, seal(readKey.secret, getAgentSealerSecret(agentSecret), getAgentSealerID(getAgentID(agentSecret)), {
|
|
@@ -137,17 +139,17 @@ export class LocalNode {
|
|
|
137
139
|
editable.set("readKey", readKey.id, "trusting");
|
|
138
140
|
});
|
|
139
141
|
const controlledAccount = new ControlledAccount(agentSecret, account.getCurrentContent(), account.node);
|
|
140
|
-
const profile =
|
|
142
|
+
const profile = accountAsGroup.createMap({
|
|
141
143
|
type: "profile",
|
|
142
144
|
});
|
|
143
145
|
profile.edit((editable) => {
|
|
144
146
|
editable.set("name", name, "trusting");
|
|
145
147
|
});
|
|
146
|
-
|
|
148
|
+
accountAsGroup.groupMap.edit((editable) => {
|
|
147
149
|
editable.set("profile", profile.id, "trusting");
|
|
148
150
|
});
|
|
149
151
|
const accountOnThisNode = this.expectCoValueLoaded(account.id);
|
|
150
|
-
accountOnThisNode._sessions = { ...
|
|
152
|
+
accountOnThisNode._sessions = { ...accountAsGroup.groupMap.coValue.sessions };
|
|
151
153
|
accountOnThisNode._cachedContent = undefined;
|
|
152
154
|
return controlledAccount;
|
|
153
155
|
}
|
|
@@ -157,7 +159,7 @@ export class LocalNode {
|
|
|
157
159
|
}
|
|
158
160
|
const coValue = this.expectCoValueLoaded(id, expectation);
|
|
159
161
|
if (coValue.header.type !== "comap" ||
|
|
160
|
-
coValue.header.ruleset.type !== "
|
|
162
|
+
coValue.header.ruleset.type !== "group" ||
|
|
161
163
|
!coValue.header.meta ||
|
|
162
164
|
!("type" in coValue.header.meta) ||
|
|
163
165
|
coValue.header.meta.type !== "account") {
|
|
@@ -165,24 +167,24 @@ export class LocalNode {
|
|
|
165
167
|
}
|
|
166
168
|
return new Account(coValue.getCurrentContent(), this).getCurrentAgentID();
|
|
167
169
|
}
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
+
createGroup() {
|
|
171
|
+
const groupCoValue = this.createCoValue({
|
|
170
172
|
type: "comap",
|
|
171
|
-
ruleset: { type: "
|
|
173
|
+
ruleset: { type: "group", initialAdmin: this.account.id },
|
|
172
174
|
meta: null,
|
|
173
175
|
...createdNowUnique(),
|
|
174
176
|
});
|
|
175
|
-
let
|
|
176
|
-
|
|
177
|
+
let groupContent = expectGroupContent(groupCoValue.getCurrentContent());
|
|
178
|
+
groupContent = groupContent.edit((editable) => {
|
|
177
179
|
editable.set(this.account.id, "admin", "trusting");
|
|
178
180
|
const readKey = newRandomKeySecret();
|
|
179
181
|
editable.set(`${readKey.id}_for_${this.account.id}`, seal(readKey.secret, this.account.currentSealerSecret(), this.account.currentSealerID(), {
|
|
180
|
-
in:
|
|
181
|
-
tx:
|
|
182
|
+
in: groupCoValue.id,
|
|
183
|
+
tx: groupCoValue.nextTransactionID(),
|
|
182
184
|
}), "trusting");
|
|
183
185
|
editable.set("readKey", readKey.id, "trusting");
|
|
184
186
|
});
|
|
185
|
-
return new
|
|
187
|
+
return new Group(groupContent, this);
|
|
186
188
|
}
|
|
187
189
|
testWithDifferentAccount(account, ownSessionID) {
|
|
188
190
|
const newNode = new LocalNode(account, ownSessionID);
|
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
|
@@ -3,11 +3,11 @@ import { CoValue, Transaction } from "./coValue.js";
|
|
|
3
3
|
import { RawCoID, TransactionID } from "./ids.js";
|
|
4
4
|
import { AccountIDOrAgentID } from "./account.js";
|
|
5
5
|
export type PermissionsDef = {
|
|
6
|
-
type: "
|
|
6
|
+
type: "group";
|
|
7
7
|
initialAdmin: AccountIDOrAgentID;
|
|
8
8
|
} | {
|
|
9
|
-
type: "
|
|
10
|
-
|
|
9
|
+
type: "ownedByGroup";
|
|
10
|
+
group: RawCoID;
|
|
11
11
|
} | {
|
|
12
12
|
type: "unsafeAllowAll";
|
|
13
13
|
};
|
package/dist/permissions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { accountOrAgentIDfromSessionID, } from "./coValue.js";
|
|
2
2
|
export function determineValidTransactions(coValue) {
|
|
3
|
-
if (coValue.header.ruleset.type === "
|
|
3
|
+
if (coValue.header.ruleset.type === "group") {
|
|
4
4
|
const allTrustingTransactionsSorted = Object.entries(coValue.sessions).flatMap(([sessionID, sessionLog]) => {
|
|
5
5
|
return sessionLog.transactions
|
|
6
6
|
.map((tx, txIndex) => ({ sessionID, txIndex, tx }))
|
|
@@ -9,7 +9,7 @@ export function determineValidTransactions(coValue) {
|
|
|
9
9
|
return true;
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
console.warn("Unexpected private transaction in
|
|
12
|
+
console.warn("Unexpected private transaction in Group");
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
});
|
|
@@ -19,7 +19,7 @@ export function determineValidTransactions(coValue) {
|
|
|
19
19
|
});
|
|
20
20
|
const initialAdmin = coValue.header.ruleset.initialAdmin;
|
|
21
21
|
if (!initialAdmin) {
|
|
22
|
-
throw new Error("
|
|
22
|
+
throw new Error("Group must have initialAdmin");
|
|
23
23
|
}
|
|
24
24
|
const memberState = {};
|
|
25
25
|
const validTransactions = [];
|
|
@@ -28,11 +28,11 @@ export function determineValidTransactions(coValue) {
|
|
|
28
28
|
const transactor = accountOrAgentIDfromSessionID(sessionID);
|
|
29
29
|
const change = tx.changes[0];
|
|
30
30
|
if (tx.changes.length !== 1) {
|
|
31
|
-
console.warn("
|
|
31
|
+
console.warn("Group transaction must have exactly one change");
|
|
32
32
|
continue;
|
|
33
33
|
}
|
|
34
34
|
if (change.op !== "set") {
|
|
35
|
-
console.warn("
|
|
35
|
+
console.warn("Group transaction must set a role or readKey");
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
38
|
if (change.key === "readKey") {
|
|
@@ -73,7 +73,7 @@ export function determineValidTransactions(coValue) {
|
|
|
73
73
|
change.value !== "adminInvite" &&
|
|
74
74
|
change.value !== "writerInvite" &&
|
|
75
75
|
change.value !== "readerInvite") {
|
|
76
|
-
console.warn("
|
|
76
|
+
console.warn("Group transaction must set a valid role");
|
|
77
77
|
continue;
|
|
78
78
|
}
|
|
79
79
|
const isFirstSelfAppointment = !memberState[transactor] &&
|
|
@@ -109,7 +109,7 @@ export function determineValidTransactions(coValue) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
else {
|
|
112
|
-
console.warn("
|
|
112
|
+
console.warn("Group transaction must be made by current admin or invite");
|
|
113
113
|
continue;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -119,18 +119,18 @@ export function determineValidTransactions(coValue) {
|
|
|
119
119
|
}
|
|
120
120
|
return validTransactions;
|
|
121
121
|
}
|
|
122
|
-
else if (coValue.header.ruleset.type === "
|
|
123
|
-
const
|
|
124
|
-
.expectCoValueLoaded(coValue.header.ruleset.
|
|
122
|
+
else if (coValue.header.ruleset.type === "ownedByGroup") {
|
|
123
|
+
const groupContent = coValue.node
|
|
124
|
+
.expectCoValueLoaded(coValue.header.ruleset.group, "Determining valid transaction in owned object but its group wasn't loaded")
|
|
125
125
|
.getCurrentContent();
|
|
126
|
-
if (
|
|
127
|
-
throw new Error("
|
|
126
|
+
if (groupContent.type !== "comap") {
|
|
127
|
+
throw new Error("Group must be a map");
|
|
128
128
|
}
|
|
129
129
|
return Object.entries(coValue.sessions).flatMap(([sessionID, sessionLog]) => {
|
|
130
130
|
const transactor = accountOrAgentIDfromSessionID(sessionID);
|
|
131
131
|
return sessionLog.transactions
|
|
132
132
|
.filter((tx) => {
|
|
133
|
-
const transactorRoleAtTxTime =
|
|
133
|
+
const transactorRoleAtTxTime = groupContent.getAtTime(transactor, tx.madeAt);
|
|
134
134
|
return (transactorRoleAtTxTime === "admin" ||
|
|
135
135
|
transactorRoleAtTxTime === "writer");
|
|
136
136
|
})
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAMA,OAAO,EAIH,6BAA6B,GAChC,MAAM,cAAc,CAAC;AAqBtB,MAAM,UAAU,0BAA0B,CACtC,OAAgB;IAEhB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/testUtils.d.ts
CHANGED
|
@@ -2,26 +2,26 @@ import { LocalNode } from "./node.js";
|
|
|
2
2
|
import { AnonymousControlledAccount } from "./account.js";
|
|
3
3
|
import { SessionID } from "./ids.js";
|
|
4
4
|
export declare function randomAnonymousAccountAndSessionID(): [AnonymousControlledAccount, SessionID];
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function newGroup(): {
|
|
6
6
|
node: LocalNode;
|
|
7
|
-
|
|
7
|
+
group: import("./coValue.js").CoValue;
|
|
8
8
|
admin: AnonymousControlledAccount;
|
|
9
9
|
};
|
|
10
|
-
export declare function
|
|
11
|
-
|
|
10
|
+
export declare function groupWithTwoAdmins(): {
|
|
11
|
+
group: import("./coValue.js").CoValue;
|
|
12
12
|
admin: AnonymousControlledAccount;
|
|
13
13
|
otherAdmin: import("./account.js").ControlledAccount;
|
|
14
14
|
node: LocalNode;
|
|
15
15
|
};
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function newGroupHighLevel(): {
|
|
17
17
|
admin: AnonymousControlledAccount;
|
|
18
18
|
node: LocalNode;
|
|
19
|
-
|
|
19
|
+
group: import("./group.js").Group;
|
|
20
20
|
};
|
|
21
|
-
export declare function
|
|
21
|
+
export declare function groupWithTwoAdminsHighLevel(): {
|
|
22
22
|
admin: AnonymousControlledAccount;
|
|
23
23
|
node: LocalNode;
|
|
24
|
-
|
|
24
|
+
group: import("./group.js").Group;
|
|
25
25
|
otherAdmin: import("./account.js").ControlledAccount;
|
|
26
26
|
};
|
|
27
27
|
export declare function shouldNotResolve<T>(promise: Promise<T>, ops: {
|
package/dist/testUtils.js
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
import { createdNowUnique, getAgentID, newRandomAgentSecret } from "./crypto.js";
|
|
2
2
|
import { newRandomSessionID } from "./coValue.js";
|
|
3
3
|
import { LocalNode } from "./node.js";
|
|
4
|
-
import {
|
|
4
|
+
import { expectGroupContent } from "./group.js";
|
|
5
5
|
import { AnonymousControlledAccount } from "./account.js";
|
|
6
6
|
export function randomAnonymousAccountAndSessionID() {
|
|
7
7
|
const agentSecret = newRandomAgentSecret();
|
|
8
8
|
const sessionID = newRandomSessionID(getAgentID(agentSecret));
|
|
9
9
|
return [new AnonymousControlledAccount(agentSecret), sessionID];
|
|
10
10
|
}
|
|
11
|
-
export function
|
|
11
|
+
export function newGroup() {
|
|
12
12
|
const [admin, sessionID] = randomAnonymousAccountAndSessionID();
|
|
13
13
|
const node = new LocalNode(admin, sessionID);
|
|
14
|
-
const
|
|
14
|
+
const group = node.createCoValue({
|
|
15
15
|
type: "comap",
|
|
16
|
-
ruleset: { type: "
|
|
16
|
+
ruleset: { type: "group", initialAdmin: admin.id },
|
|
17
17
|
meta: null,
|
|
18
18
|
...createdNowUnique(),
|
|
19
19
|
});
|
|
20
|
-
const
|
|
21
|
-
|
|
20
|
+
const groupContent = expectGroupContent(group.getCurrentContent());
|
|
21
|
+
groupContent.edit((editable) => {
|
|
22
22
|
editable.set(admin.id, "admin", "trusting");
|
|
23
23
|
expect(editable.get(admin.id)).toEqual("admin");
|
|
24
24
|
});
|
|
25
|
-
return { node,
|
|
25
|
+
return { node, group, admin };
|
|
26
26
|
}
|
|
27
|
-
export function
|
|
28
|
-
const {
|
|
27
|
+
export function groupWithTwoAdmins() {
|
|
28
|
+
const { group, admin, node } = newGroup();
|
|
29
29
|
const otherAdmin = node.createAccount("otherAdmin");
|
|
30
|
-
let content =
|
|
30
|
+
let content = expectGroupContent(group.getCurrentContent());
|
|
31
31
|
content.edit((editable) => {
|
|
32
32
|
editable.set(otherAdmin.id, "admin", "trusting");
|
|
33
33
|
expect(editable.get(otherAdmin.id)).toEqual("admin");
|
|
34
34
|
});
|
|
35
|
-
content =
|
|
35
|
+
content = expectGroupContent(group.getCurrentContent());
|
|
36
36
|
if (content.type !== "comap") {
|
|
37
37
|
throw new Error("Expected map");
|
|
38
38
|
}
|
|
39
39
|
expect(content.get(otherAdmin.id)).toEqual("admin");
|
|
40
|
-
return {
|
|
40
|
+
return { group, admin, otherAdmin, node };
|
|
41
41
|
}
|
|
42
|
-
export function
|
|
42
|
+
export function newGroupHighLevel() {
|
|
43
43
|
const [admin, sessionID] = randomAnonymousAccountAndSessionID();
|
|
44
44
|
const node = new LocalNode(admin, sessionID);
|
|
45
|
-
const
|
|
46
|
-
return { admin, node,
|
|
45
|
+
const group = node.createGroup();
|
|
46
|
+
return { admin, node, group };
|
|
47
47
|
}
|
|
48
|
-
export function
|
|
49
|
-
const { admin, node,
|
|
48
|
+
export function groupWithTwoAdminsHighLevel() {
|
|
49
|
+
const { admin, node, group } = newGroupHighLevel();
|
|
50
50
|
const otherAdmin = node.createAccount("otherAdmin");
|
|
51
|
-
|
|
52
|
-
return { admin, node,
|
|
51
|
+
group.addMember(otherAdmin.id, "admin");
|
|
52
|
+
return { admin, node, group, otherAdmin };
|
|
53
53
|
}
|
|
54
54
|
export function shouldNotResolve(promise, ops) {
|
|
55
55
|
return new Promise((resolve, reject) => {
|
package/dist/testUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAG,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.1.1",
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@types/jest": "^29.5.3",
|
|
11
11
|
"@typescript-eslint/eslint-plugin": "^6.2.1",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"/dist/"
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "2951d8452f54fb123699cf1aed5cc58832365ec2"
|
|
56
56
|
}
|
package/src/account.test.ts
CHANGED
|
@@ -19,14 +19,14 @@ test("Can create a node while creating a new account with profile", async () =>
|
|
|
19
19
|
);
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
test("A node with an account can create
|
|
22
|
+
test("A node with an account can create groups and and objects within them", async () => {
|
|
23
23
|
const { node, accountID } =
|
|
24
24
|
LocalNode.withNewlyCreatedAccount("Hermes Puggington");
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
expect(
|
|
26
|
+
const group = await node.createGroup();
|
|
27
|
+
expect(group).not.toBeNull();
|
|
28
28
|
|
|
29
|
-
let map =
|
|
29
|
+
let map = group.createMap();
|
|
30
30
|
map = map.edit((edit) => {
|
|
31
31
|
edit.set("foo", "bar", "private");
|
|
32
32
|
expect(edit.get("foo")).toEqual("bar");
|
|
@@ -41,10 +41,10 @@ test("Can create account with one node, and then load it on another", async () =
|
|
|
41
41
|
const { node, accountID, accountSecret } =
|
|
42
42
|
LocalNode.withNewlyCreatedAccount("Hermes Puggington");
|
|
43
43
|
|
|
44
|
-
const
|
|
45
|
-
expect(
|
|
44
|
+
const group = await node.createGroup();
|
|
45
|
+
expect(group).not.toBeNull();
|
|
46
46
|
|
|
47
|
-
let map =
|
|
47
|
+
let map = group.createMap();
|
|
48
48
|
map = map.edit((edit) => {
|
|
49
49
|
edit.set("foo", "bar", "private");
|
|
50
50
|
expect(edit.get("foo")).toEqual("bar");
|
package/src/account.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./crypto.js";
|
|
15
15
|
import { AgentID } from "./ids.js";
|
|
16
16
|
import { CoMap, LocalNode } from "./index.js";
|
|
17
|
-
import {
|
|
17
|
+
import { Group, GroupContent } from "./group.js";
|
|
18
18
|
|
|
19
19
|
export function accountHeaderForInitialAgentSecret(
|
|
20
20
|
agentSecret: AgentSecret
|
|
@@ -22,7 +22,7 @@ export function accountHeaderForInitialAgentSecret(
|
|
|
22
22
|
const agent = getAgentID(agentSecret);
|
|
23
23
|
return {
|
|
24
24
|
type: "comap",
|
|
25
|
-
ruleset: { type: "
|
|
25
|
+
ruleset: { type: "group", initialAdmin: agent },
|
|
26
26
|
meta: {
|
|
27
27
|
type: "account",
|
|
28
28
|
},
|
|
@@ -31,13 +31,13 @@ export function accountHeaderForInitialAgentSecret(
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
export class Account extends
|
|
34
|
+
export class Account extends Group {
|
|
35
35
|
get id(): AccountID {
|
|
36
|
-
return this.
|
|
36
|
+
return this.groupMap.id as AccountID;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
getCurrentAgentID(): AgentID {
|
|
40
|
-
const agents = this.
|
|
40
|
+
const agents = this.groupMap
|
|
41
41
|
.keys()
|
|
42
42
|
.filter((k): k is AgentID => k.startsWith("sealer_"));
|
|
43
43
|
|
|
@@ -70,10 +70,10 @@ export class ControlledAccount
|
|
|
70
70
|
|
|
71
71
|
constructor(
|
|
72
72
|
agentSecret: AgentSecret,
|
|
73
|
-
|
|
73
|
+
groupMap: CoMap<AccountContent, AccountMeta>,
|
|
74
74
|
node: LocalNode
|
|
75
75
|
) {
|
|
76
|
-
super(
|
|
76
|
+
super(groupMap, node);
|
|
77
77
|
|
|
78
78
|
this.agentSecret = agentSecret;
|
|
79
79
|
}
|
|
@@ -133,7 +133,7 @@ export class AnonymousControlledAccount
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
export type AccountContent =
|
|
136
|
+
export type AccountContent = GroupContent & { profile: CoID<Profile> };
|
|
137
137
|
export type AccountMeta = { type: "account" };
|
|
138
138
|
export type AccountID = CoID<CoMap<AccountContent, AccountMeta>>;
|
|
139
139
|
|
package/src/coValue.test.ts
CHANGED
|
@@ -125,17 +125,17 @@ test("transactions with correctly signed, but wrong hash are rejected", () => {
|
|
|
125
125
|
).toBe(false);
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
-
test("New transactions in a
|
|
128
|
+
test("New transactions in a group correctly update owned values, including subscriptions", async () => {
|
|
129
129
|
const [account, sessionID] = randomAnonymousAccountAndSessionID();
|
|
130
130
|
const node = new LocalNode(account, sessionID);
|
|
131
131
|
|
|
132
|
-
const
|
|
132
|
+
const group = node.createGroup();
|
|
133
133
|
|
|
134
134
|
const timeBeforeEdit = Date.now();
|
|
135
135
|
|
|
136
136
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
137
137
|
|
|
138
|
-
let map =
|
|
138
|
+
let map = group.createMap();
|
|
139
139
|
|
|
140
140
|
let mapAfterEdit = map.edit((map) => {
|
|
141
141
|
map.set("hello", "world");
|
|
@@ -159,7 +159,7 @@ test("New transactions in a team correctly update owned values, including subscr
|
|
|
159
159
|
]
|
|
160
160
|
} satisfies Transaction;
|
|
161
161
|
|
|
162
|
-
const { expectedNewHash } =
|
|
162
|
+
const { expectedNewHash } = group.groupMap.coValue.expectedNewHashAfter(sessionID, [
|
|
163
163
|
resignationThatWeJustLearnedAbout,
|
|
164
164
|
]);
|
|
165
165
|
|
|
@@ -170,7 +170,7 @@ test("New transactions in a team correctly update owned values, including subscr
|
|
|
170
170
|
|
|
171
171
|
expect(map.coValue.getValidSortedTransactions().length).toBe(1);
|
|
172
172
|
|
|
173
|
-
const manuallyAdddedTxSuccess =
|
|
173
|
+
const manuallyAdddedTxSuccess = group.groupMap.coValue.tryAddTransactions(node.ownSessionID, [resignationThatWeJustLearnedAbout], expectedNewHash, signature);
|
|
174
174
|
|
|
175
175
|
expect(manuallyAdddedTxSuccess).toBe(true);
|
|
176
176
|
|