cojson 0.7.0-alpha.27 → 0.7.0-alpha.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +6 -0
- package/dist/coValues/account.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/localNode.js +17 -14
- package/dist/localNode.js.map +1 -1
- package/dist/tests/testUtils.js +2 -2
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/coValues/account.ts +5 -5
- package/src/index.ts +0 -3
- package/src/localNode.ts +17 -28
- package/src/tests/account.test.ts +7 -3
- package/src/tests/permissions.test.ts +28 -28
- package/src/tests/testUtils.ts +2 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> cojson@0.7.0-alpha.
|
|
2
|
+
> cojson@0.7.0-alpha.27 build /Users/anselm/jazz/jazz/packages/cojson
|
|
3
3
|
> npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> cojson@0.7.0-alpha.
|
|
6
|
+
> cojson@0.7.0-alpha.27 lint
|
|
7
7
|
> eslint src/**/*.ts
|
|
8
8
|
|
|
9
9
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAMH,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACH,UAAU,EACV,UAAU,EACV,kCAAkC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACH,UAAU,EACV,UAAU,EACV,kCAAkC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAqBzD,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,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,6BAA6B;IAC7B,WAAW;IACX,kCAAkC;IAClC,WAAW;CACd,CAAC;AAEF,OAAO,EACH,SAAS,EACT,QAAQ,EAER,QAAQ,EAER,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EAIjB,UAAU,EAIV,UAAU,IAAI,OAAO,EAGrB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,WAAW,IAAI,WAAW,EAC1B,uBAAuB,EASvB,SAAS,EACZ,CAAC"}
|
package/dist/localNode.js
CHANGED
|
@@ -27,20 +27,27 @@ export class LocalNode {
|
|
|
27
27
|
this.currentSessionID = currentSessionID;
|
|
28
28
|
}
|
|
29
29
|
/** @category 2. Node Creation */
|
|
30
|
-
static async withNewlyCreatedAccount({
|
|
30
|
+
static async withNewlyCreatedAccount({ creationProps, peersToLoadFrom, migration, initialAgentSecret = newRandomAgentSecret(), }) {
|
|
31
31
|
const throwawayAgent = newRandomAgentSecret();
|
|
32
32
|
const setupNode = new LocalNode(new ControlledAgent(throwawayAgent), newRandomSessionID(getAgentID(throwawayAgent)));
|
|
33
|
-
const account = setupNode.createAccount(
|
|
33
|
+
const account = setupNode.createAccount(initialAgentSecret);
|
|
34
34
|
const nodeWithAccount = account.core.node.testWithDifferentAccount(account, newRandomSessionID(account.id));
|
|
35
35
|
const accountOnNodeWithAccount = nodeWithAccount.account;
|
|
36
|
-
const profile = nodeWithAccount.expectProfileLoaded(accountOnNodeWithAccount.id, "After creating account");
|
|
37
36
|
if (peersToLoadFrom) {
|
|
38
37
|
for (const peer of peersToLoadFrom) {
|
|
39
38
|
nodeWithAccount.syncManager.addPeer(peer);
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
if (migration) {
|
|
43
|
-
await migration(accountOnNodeWithAccount,
|
|
42
|
+
await migration(accountOnNodeWithAccount, nodeWithAccount, creationProps);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const profileGroup = accountOnNodeWithAccount.createGroup();
|
|
46
|
+
profileGroup.addMember("everyone", "reader");
|
|
47
|
+
const profile = profileGroup.createMap({
|
|
48
|
+
name: creationProps.name,
|
|
49
|
+
});
|
|
50
|
+
accountOnNodeWithAccount.set('profile', profile.id, "trusting");
|
|
44
51
|
}
|
|
45
52
|
const controlledAccount = new RawControlledAccount(accountOnNodeWithAccount.core, accountOnNodeWithAccount.agentSecret);
|
|
46
53
|
nodeWithAccount.account = controlledAccount;
|
|
@@ -49,6 +56,9 @@ export class LocalNode {
|
|
|
49
56
|
coValue: controlledAccount.core,
|
|
50
57
|
};
|
|
51
58
|
controlledAccount.core._cachedContent = undefined;
|
|
59
|
+
if (!controlledAccount.get("profile")) {
|
|
60
|
+
throw new Error("Must set account profile in initial migration");
|
|
61
|
+
}
|
|
52
62
|
// we shouldn't need this, but it fixes account data not syncing for new accounts
|
|
53
63
|
function syncAllCoValuesAfterCreateAccount() {
|
|
54
64
|
for (const coValueEntry of Object.values(nodeWithAccount.coValues)) {
|
|
@@ -97,7 +107,7 @@ export class LocalNode {
|
|
|
97
107
|
throw new Error("Profile unavailable from all peers");
|
|
98
108
|
}
|
|
99
109
|
if (migration) {
|
|
100
|
-
await migration(controlledAccount,
|
|
110
|
+
await migration(controlledAccount, node);
|
|
101
111
|
node.account = new RawControlledAccount(controlledAccount.core, controlledAccount.agentSecret);
|
|
102
112
|
}
|
|
103
113
|
return node;
|
|
@@ -250,9 +260,9 @@ export class LocalNode {
|
|
|
250
260
|
return this.expectCoValueLoaded(profileID, expectation).getCurrentContent();
|
|
251
261
|
}
|
|
252
262
|
/** @internal */
|
|
253
|
-
createAccount(
|
|
263
|
+
createAccount(agentSecret = newRandomAgentSecret()) {
|
|
254
264
|
const accountAgentID = getAgentID(agentSecret);
|
|
255
|
-
|
|
265
|
+
const account = expectGroup(this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret))
|
|
256
266
|
.testWithDifferentAccount(new ControlledAgent(agentSecret), newRandomSessionID(accountAgentID))
|
|
257
267
|
.getCurrentContent());
|
|
258
268
|
account.set(accountAgentID, "admin", "trusting");
|
|
@@ -268,16 +278,9 @@ export class LocalNode {
|
|
|
268
278
|
});
|
|
269
279
|
account.set(`${readKey.id}_for_${accountAgentID}`, sealed, "trusting");
|
|
270
280
|
account.set("readKey", readKey.id, "trusting");
|
|
271
|
-
const profile = account.createMap({ name }, {
|
|
272
|
-
type: "profile",
|
|
273
|
-
}, "trusting");
|
|
274
|
-
account.set("profile", profile.id, "trusting");
|
|
275
281
|
const accountOnThisNode = this.expectCoValueLoaded(account.id);
|
|
276
282
|
accountOnThisNode._sessionLogs = new Map(account.core.sessionLogs);
|
|
277
283
|
accountOnThisNode._cachedContent = undefined;
|
|
278
|
-
const profileOnThisNode = this.createCoValue(profile.core.header);
|
|
279
|
-
profileOnThisNode._sessionLogs = new Map(profile.core.sessionLogs);
|
|
280
|
-
profileOnThisNode._cachedContent = undefined;
|
|
281
284
|
return new RawControlledAccount(accountOnThisNode, agentSecret);
|
|
282
285
|
}
|
|
283
286
|
/** @internal */
|
package/dist/localNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNode.js","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localNode.js","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/testUtils.js
CHANGED
|
@@ -25,7 +25,7 @@ export function newGroup() {
|
|
|
25
25
|
}
|
|
26
26
|
export function groupWithTwoAdmins() {
|
|
27
27
|
const { groupCore, admin, node } = newGroup();
|
|
28
|
-
const otherAdmin = node.createAccount(
|
|
28
|
+
const otherAdmin = node.createAccount();
|
|
29
29
|
let group = expectGroup(groupCore.getCurrentContent());
|
|
30
30
|
group.set(otherAdmin.id, "admin", "trusting");
|
|
31
31
|
expect(group.get(otherAdmin.id)).toEqual("admin");
|
|
@@ -43,7 +43,7 @@ export function newGroupHighLevel() {
|
|
|
43
43
|
}
|
|
44
44
|
export function groupWithTwoAdminsHighLevel() {
|
|
45
45
|
let { admin, node, group } = newGroupHighLevel();
|
|
46
|
-
const otherAdmin = node.createAccount(
|
|
46
|
+
const otherAdmin = node.createAccount();
|
|
47
47
|
group.addMember(otherAdmin, "admin");
|
|
48
48
|
return { admin, node, group, otherAdmin };
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAe,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAG,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,UAAU,kCAAkC;IAC9C,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAE3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9D,OAAO,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC;IAEhE,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE;QAClD,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/coValues/account.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { AgentID } from "../ids.js";
|
|
|
16
16
|
import { RawCoMap } from "./coMap.js";
|
|
17
17
|
import { RawGroup, InviteSecret } from "./group.js";
|
|
18
18
|
import { LocalNode } from "../index.js";
|
|
19
|
+
import { JsonObject } from "../jsonValue.js";
|
|
19
20
|
|
|
20
21
|
export function accountHeaderForInitialAgentSecret(
|
|
21
22
|
agentSecret: AgentSecret
|
|
@@ -33,7 +34,7 @@ export function accountHeaderForInitialAgentSecret(
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export class RawAccount<
|
|
36
|
-
Meta extends AccountMeta = AccountMeta
|
|
37
|
+
Meta extends AccountMeta = AccountMeta,
|
|
37
38
|
> extends RawGroup<Meta> {
|
|
38
39
|
currentAgentID(): AgentID {
|
|
39
40
|
const agents = this.keys().filter((k): k is AgentID =>
|
|
@@ -149,15 +150,14 @@ export type AccountID = CoID<RawAccount>;
|
|
|
149
150
|
export type ProfileShape = {
|
|
150
151
|
name: string;
|
|
151
152
|
};
|
|
152
|
-
export type ProfileMeta = { type: "profile" };
|
|
153
153
|
|
|
154
154
|
export class RawProfile<
|
|
155
155
|
Shape extends ProfileShape = ProfileShape,
|
|
156
|
-
Meta extends
|
|
156
|
+
Meta extends JsonObject | null = JsonObject | null,
|
|
157
157
|
> extends RawCoMap<Shape, Meta> {}
|
|
158
158
|
|
|
159
159
|
export type RawAccountMigration<Meta extends AccountMeta = AccountMeta> = (
|
|
160
160
|
account: RawControlledAccount<Meta>,
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
localNode: LocalNode,
|
|
162
|
+
creationProps?: { name: string }
|
|
163
163
|
) => void | Promise<void>;
|
package/src/index.ts
CHANGED
|
@@ -50,7 +50,6 @@ import type {
|
|
|
50
50
|
AccountID,
|
|
51
51
|
AccountMeta,
|
|
52
52
|
RawAccountMigration,
|
|
53
|
-
ProfileMeta,
|
|
54
53
|
} from "./coValues/account.js";
|
|
55
54
|
import type { InviteSecret } from "./coValues/group.js";
|
|
56
55
|
import type * as Media from "./media.js";
|
|
@@ -99,7 +98,6 @@ export {
|
|
|
99
98
|
AccountMeta,
|
|
100
99
|
RawAccountMigration,
|
|
101
100
|
RawProfile as Profile,
|
|
102
|
-
ProfileMeta,
|
|
103
101
|
SessionID,
|
|
104
102
|
Media,
|
|
105
103
|
CoValueCore,
|
|
@@ -133,7 +131,6 @@ export namespace CojsonInternalTypes {
|
|
|
133
131
|
export type Signature = import("./crypto.js").Signature;
|
|
134
132
|
export type RawCoID = import("./ids.js").RawCoID;
|
|
135
133
|
export type ProfileShape = import("./coValues/account.js").ProfileShape;
|
|
136
|
-
export type ProfileMeta = import("./coValues/account.js").ProfileMeta;
|
|
137
134
|
export type SealerSecret = import("./crypto.js").SealerSecret;
|
|
138
135
|
export type SignerSecret = import("./crypto.js").SignerSecret;
|
|
139
136
|
export type JsonObject = import("./jsonValue.js").JsonObject;
|
package/src/localNode.ts
CHANGED
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
RawProfile,
|
|
34
34
|
RawAccountMigration,
|
|
35
35
|
} from "./coValues/account.js";
|
|
36
|
-
import { RawCoValue } from "./index.js";
|
|
36
|
+
import { Profile, RawCoValue } from "./index.js";
|
|
37
37
|
import { expectGroup } from "./typeUtils/expectGroup.js";
|
|
38
38
|
|
|
39
39
|
/** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
|
|
@@ -70,12 +70,12 @@ export class LocalNode {
|
|
|
70
70
|
static async withNewlyCreatedAccount<
|
|
71
71
|
Meta extends AccountMeta = AccountMeta
|
|
72
72
|
>({
|
|
73
|
-
|
|
73
|
+
creationProps,
|
|
74
74
|
peersToLoadFrom,
|
|
75
75
|
migration,
|
|
76
76
|
initialAgentSecret = newRandomAgentSecret(),
|
|
77
77
|
}: {
|
|
78
|
-
name: string;
|
|
78
|
+
creationProps: {name: string};
|
|
79
79
|
peersToLoadFrom?: Peer[];
|
|
80
80
|
migration?: RawAccountMigration<Meta>;
|
|
81
81
|
initialAgentSecret?: AgentSecret;
|
|
@@ -91,7 +91,7 @@ export class LocalNode {
|
|
|
91
91
|
newRandomSessionID(getAgentID(throwawayAgent))
|
|
92
92
|
);
|
|
93
93
|
|
|
94
|
-
const account = setupNode.createAccount(
|
|
94
|
+
const account = setupNode.createAccount(initialAgentSecret);
|
|
95
95
|
|
|
96
96
|
const nodeWithAccount = account.core.node.testWithDifferentAccount(
|
|
97
97
|
account,
|
|
@@ -101,11 +101,6 @@ export class LocalNode {
|
|
|
101
101
|
const accountOnNodeWithAccount =
|
|
102
102
|
nodeWithAccount.account as RawControlledAccount<Meta>;
|
|
103
103
|
|
|
104
|
-
const profile = nodeWithAccount.expectProfileLoaded(
|
|
105
|
-
accountOnNodeWithAccount.id,
|
|
106
|
-
"After creating account"
|
|
107
|
-
);
|
|
108
|
-
|
|
109
104
|
if (peersToLoadFrom) {
|
|
110
105
|
for (const peer of peersToLoadFrom) {
|
|
111
106
|
nodeWithAccount.syncManager.addPeer(peer);
|
|
@@ -113,7 +108,14 @@ export class LocalNode {
|
|
|
113
108
|
}
|
|
114
109
|
|
|
115
110
|
if (migration) {
|
|
116
|
-
await migration(accountOnNodeWithAccount,
|
|
111
|
+
await migration(accountOnNodeWithAccount, nodeWithAccount, creationProps);
|
|
112
|
+
} else {
|
|
113
|
+
const profileGroup = accountOnNodeWithAccount.createGroup();
|
|
114
|
+
profileGroup.addMember("everyone", "reader");
|
|
115
|
+
const profile = profileGroup.createMap<Profile>({
|
|
116
|
+
name: creationProps.name,
|
|
117
|
+
});
|
|
118
|
+
accountOnNodeWithAccount.set('profile', profile.id, "trusting");
|
|
117
119
|
}
|
|
118
120
|
|
|
119
121
|
const controlledAccount = new RawControlledAccount(
|
|
@@ -128,6 +130,10 @@ export class LocalNode {
|
|
|
128
130
|
};
|
|
129
131
|
controlledAccount.core._cachedContent = undefined;
|
|
130
132
|
|
|
133
|
+
if (!controlledAccount.get("profile")) {
|
|
134
|
+
throw new Error("Must set account profile in initial migration");
|
|
135
|
+
}
|
|
136
|
+
|
|
131
137
|
// we shouldn't need this, but it fixes account data not syncing for new accounts
|
|
132
138
|
function syncAllCoValuesAfterCreateAccount() {
|
|
133
139
|
for (const coValueEntry of Object.values(
|
|
@@ -217,7 +223,6 @@ export class LocalNode {
|
|
|
217
223
|
if (migration) {
|
|
218
224
|
await migration(
|
|
219
225
|
controlledAccount as RawControlledAccount<Meta>,
|
|
220
|
-
profile,
|
|
221
226
|
node
|
|
222
227
|
);
|
|
223
228
|
node.account = new RawControlledAccount(
|
|
@@ -465,11 +470,10 @@ export class LocalNode {
|
|
|
465
470
|
|
|
466
471
|
/** @internal */
|
|
467
472
|
createAccount(
|
|
468
|
-
name: string,
|
|
469
473
|
agentSecret = newRandomAgentSecret()
|
|
470
474
|
): RawControlledAccount {
|
|
471
475
|
const accountAgentID = getAgentID(agentSecret);
|
|
472
|
-
|
|
476
|
+
const account = expectGroup(
|
|
473
477
|
this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret))
|
|
474
478
|
.testWithDifferentAccount(
|
|
475
479
|
new ControlledAgent(agentSecret),
|
|
@@ -496,27 +500,12 @@ export class LocalNode {
|
|
|
496
500
|
|
|
497
501
|
account.set("readKey", readKey.id, "trusting");
|
|
498
502
|
|
|
499
|
-
const profile = account.createMap<RawProfile>(
|
|
500
|
-
{ name },
|
|
501
|
-
{
|
|
502
|
-
type: "profile",
|
|
503
|
-
},
|
|
504
|
-
"trusting"
|
|
505
|
-
);
|
|
506
|
-
|
|
507
|
-
account.set("profile", profile.id, "trusting");
|
|
508
|
-
|
|
509
503
|
const accountOnThisNode = this.expectCoValueLoaded(account.id);
|
|
510
504
|
|
|
511
505
|
accountOnThisNode._sessionLogs = new Map(account.core.sessionLogs);
|
|
512
506
|
|
|
513
507
|
accountOnThisNode._cachedContent = undefined;
|
|
514
508
|
|
|
515
|
-
const profileOnThisNode = this.createCoValue(profile.core.header);
|
|
516
|
-
|
|
517
|
-
profileOnThisNode._sessionLogs = new Map(profile.core.sessionLogs);
|
|
518
|
-
profileOnThisNode._cachedContent = undefined;
|
|
519
|
-
|
|
520
509
|
return new RawControlledAccount(accountOnThisNode, agentSecret);
|
|
521
510
|
}
|
|
522
511
|
|
|
@@ -16,7 +16,9 @@ beforeEach(async () => {
|
|
|
16
16
|
|
|
17
17
|
test("Can create a node while creating a new account with profile", async () => {
|
|
18
18
|
const { node, accountID, accountSecret, sessionID } =
|
|
19
|
-
await LocalNode.withNewlyCreatedAccount({
|
|
19
|
+
await LocalNode.withNewlyCreatedAccount({
|
|
20
|
+
creationProps: { name: "Hermes Puggington" },
|
|
21
|
+
});
|
|
20
22
|
|
|
21
23
|
expect(node).not.toBeNull();
|
|
22
24
|
expect(accountID).not.toBeNull();
|
|
@@ -30,7 +32,7 @@ test("Can create a node while creating a new account with profile", async () =>
|
|
|
30
32
|
|
|
31
33
|
test("A node with an account can create groups and and objects within them", async () => {
|
|
32
34
|
const { node, accountID } = await LocalNode.withNewlyCreatedAccount({
|
|
33
|
-
name: "Hermes Puggington",
|
|
35
|
+
creationProps: { name: "Hermes Puggington" },
|
|
34
36
|
});
|
|
35
37
|
|
|
36
38
|
const group = await node.createGroup();
|
|
@@ -44,7 +46,9 @@ test("A node with an account can create groups and and objects within them", asy
|
|
|
44
46
|
|
|
45
47
|
test("Can create account with one node, and then load it on another", async () => {
|
|
46
48
|
const { node, accountID, accountSecret } =
|
|
47
|
-
await LocalNode.withNewlyCreatedAccount({
|
|
49
|
+
await LocalNode.withNewlyCreatedAccount({
|
|
50
|
+
creationProps: { name: "Hermes Puggington" },
|
|
51
|
+
});
|
|
48
52
|
|
|
49
53
|
const group = await node.createGroup();
|
|
50
54
|
expect(group).not.toBeNull();
|
|
@@ -53,7 +53,7 @@ test("Added admin can add a third admin to a group", () => {
|
|
|
53
53
|
|
|
54
54
|
expect(groupAsOtherAdmin.get(otherAdmin.id)).toEqual("admin");
|
|
55
55
|
|
|
56
|
-
const thirdAdmin = node.createAccount(
|
|
56
|
+
const thirdAdmin = node.createAccount();
|
|
57
57
|
|
|
58
58
|
groupAsOtherAdmin.set(thirdAdmin.id, "admin", "trusting");
|
|
59
59
|
expect(groupAsOtherAdmin.get(thirdAdmin.id)).toEqual("admin");
|
|
@@ -71,7 +71,7 @@ test("Added adming can add a third admin to a group (high level)", () => {
|
|
|
71
71
|
.getCurrentContent()
|
|
72
72
|
);
|
|
73
73
|
|
|
74
|
-
const thirdAdmin = groupAsOtherAdmin.core.node.createAccount(
|
|
74
|
+
const thirdAdmin = groupAsOtherAdmin.core.node.createAccount();
|
|
75
75
|
|
|
76
76
|
groupAsOtherAdmin.addMember(thirdAdmin, "admin");
|
|
77
77
|
|
|
@@ -122,7 +122,7 @@ test("Admins can't demote other admins in a group (high level)", () => {
|
|
|
122
122
|
|
|
123
123
|
test("Admins an add writers to a group, who can't add admins, writers, or readers", () => {
|
|
124
124
|
const { groupCore, node } = newGroup();
|
|
125
|
-
const writer = node.createAccount(
|
|
125
|
+
const writer = node.createAccount();
|
|
126
126
|
|
|
127
127
|
const groupContent = expectGroup(groupCore.getCurrentContent());
|
|
128
128
|
|
|
@@ -139,7 +139,7 @@ test("Admins an add writers to a group, who can't add admins, writers, or reader
|
|
|
139
139
|
|
|
140
140
|
expect(groupAsWriter.get(writer.id)).toEqual("writer");
|
|
141
141
|
|
|
142
|
-
const otherAgent = node.createAccount(
|
|
142
|
+
const otherAgent = node.createAccount();
|
|
143
143
|
|
|
144
144
|
groupAsWriter.set(otherAgent.id, "admin", "trusting");
|
|
145
145
|
expect(groupAsWriter.get(otherAgent.id)).toBeUndefined();
|
|
@@ -154,7 +154,7 @@ test("Admins an add writers to a group, who can't add admins, writers, or reader
|
|
|
154
154
|
test("Admins an add writers to a group, who can't add admins, writers, or readers (high level)", () => {
|
|
155
155
|
const { group, node } = newGroupHighLevel();
|
|
156
156
|
|
|
157
|
-
const writer = node.createAccount(
|
|
157
|
+
const writer = node.createAccount();
|
|
158
158
|
|
|
159
159
|
group.addMember(writer, "writer");
|
|
160
160
|
expect(group.get(writer.id)).toEqual("writer");
|
|
@@ -167,7 +167,7 @@ test("Admins an add writers to a group, who can't add admins, writers, or reader
|
|
|
167
167
|
|
|
168
168
|
expect(groupAsWriter.get(writer.id)).toEqual("writer");
|
|
169
169
|
|
|
170
|
-
const otherAgent = groupAsWriter.core.node.createAccount(
|
|
170
|
+
const otherAgent = groupAsWriter.core.node.createAccount();
|
|
171
171
|
|
|
172
172
|
expect(() => groupAsWriter.addMember(otherAgent, "admin")).toThrow(
|
|
173
173
|
"Failed to set role"
|
|
@@ -184,7 +184,7 @@ test("Admins an add writers to a group, who can't add admins, writers, or reader
|
|
|
184
184
|
|
|
185
185
|
test("Admins can add readers to a group, who can't add admins, writers, or readers", () => {
|
|
186
186
|
const { groupCore, node } = newGroup();
|
|
187
|
-
const reader = node.createAccount(
|
|
187
|
+
const reader = node.createAccount();
|
|
188
188
|
|
|
189
189
|
const groupContent = expectGroup(groupCore.getCurrentContent());
|
|
190
190
|
|
|
@@ -199,7 +199,7 @@ test("Admins can add readers to a group, who can't add admins, writers, or reade
|
|
|
199
199
|
|
|
200
200
|
expect(groupAsReader.get(reader.id)).toEqual("reader");
|
|
201
201
|
|
|
202
|
-
const otherAgent = node.createAccount(
|
|
202
|
+
const otherAgent = node.createAccount();
|
|
203
203
|
|
|
204
204
|
groupAsReader.set(otherAgent.id, "admin", "trusting");
|
|
205
205
|
expect(groupAsReader.get(otherAgent.id)).toBeUndefined();
|
|
@@ -215,7 +215,7 @@ test("Admins can add readers to a group, who can't add admins, writers, or reade
|
|
|
215
215
|
test("Admins can add readers to a group, who can't add admins, writers, or readers (high level)", () => {
|
|
216
216
|
const { group, node } = newGroupHighLevel();
|
|
217
217
|
|
|
218
|
-
const reader = node.createAccount(
|
|
218
|
+
const reader = node.createAccount();
|
|
219
219
|
|
|
220
220
|
group.addMember(reader, "reader");
|
|
221
221
|
expect(group.get(reader.id)).toEqual("reader");
|
|
@@ -228,7 +228,7 @@ test("Admins can add readers to a group, who can't add admins, writers, or reade
|
|
|
228
228
|
|
|
229
229
|
expect(groupAsReader.get(reader.id)).toEqual("reader");
|
|
230
230
|
|
|
231
|
-
const otherAgent = groupAsReader.core.node.createAccount(
|
|
231
|
+
const otherAgent = groupAsReader.core.node.createAccount();
|
|
232
232
|
|
|
233
233
|
expect(() => groupAsReader.addMember(otherAgent, "admin")).toThrow(
|
|
234
234
|
"Failed to set role"
|
|
@@ -271,7 +271,7 @@ test("Admins can write to an object that is owned by their group (high level)",
|
|
|
271
271
|
test("Writers can write to an object that is owned by their group", () => {
|
|
272
272
|
const { node, groupCore } = newGroup();
|
|
273
273
|
|
|
274
|
-
const writer = node.createAccount(
|
|
274
|
+
const writer = node.createAccount();
|
|
275
275
|
|
|
276
276
|
const group = expectGroup(groupCore.getCurrentContent());
|
|
277
277
|
group.set(writer.id, "writer", "trusting");
|
|
@@ -300,7 +300,7 @@ test("Writers can write to an object that is owned by their group", () => {
|
|
|
300
300
|
test("Writers can write to an object that is owned by their group (high level)", () => {
|
|
301
301
|
const { node, group } = newGroupHighLevel();
|
|
302
302
|
|
|
303
|
-
const writer = node.createAccount(
|
|
303
|
+
const writer = node.createAccount();
|
|
304
304
|
|
|
305
305
|
group.addMember(writer, "writer");
|
|
306
306
|
|
|
@@ -319,7 +319,7 @@ test("Writers can write to an object that is owned by their group (high level)",
|
|
|
319
319
|
test("Readers can not write to an object that is owned by their group", () => {
|
|
320
320
|
const { node, groupCore } = newGroup();
|
|
321
321
|
|
|
322
|
-
const reader = node.createAccount(
|
|
322
|
+
const reader = node.createAccount();
|
|
323
323
|
|
|
324
324
|
const group = expectGroup(groupCore.getCurrentContent());
|
|
325
325
|
group.set(reader.id, "reader", "trusting");
|
|
@@ -348,7 +348,7 @@ test("Readers can not write to an object that is owned by their group", () => {
|
|
|
348
348
|
test("Readers can not write to an object that is owned by their group (high level)", () => {
|
|
349
349
|
const { node, group } = newGroupHighLevel();
|
|
350
350
|
|
|
351
|
-
const reader = node.createAccount(
|
|
351
|
+
const reader = node.createAccount();
|
|
352
352
|
|
|
353
353
|
group.addMember(reader, "reader");
|
|
354
354
|
|
|
@@ -417,7 +417,7 @@ test("Admins can set group read key and then use it to create and read private t
|
|
|
417
417
|
test("Admins can set group read key and then writers can use it to create and read private transactions in owned objects", () => {
|
|
418
418
|
const { node, groupCore, admin } = newGroup();
|
|
419
419
|
|
|
420
|
-
const writer = node.createAccount(
|
|
420
|
+
const writer = node.createAccount();
|
|
421
421
|
|
|
422
422
|
const { secret: readKey, id: readKeyID } = newRandomKeySecret();
|
|
423
423
|
|
|
@@ -477,7 +477,7 @@ test("Admins can set group read key and then writers can use it to create and re
|
|
|
477
477
|
test("Admins can set group read key and then writers can use it to create and read private transactions in owned objects (high level)", () => {
|
|
478
478
|
const { node, group, admin } = newGroupHighLevel();
|
|
479
479
|
|
|
480
|
-
const writer = node.createAccount(
|
|
480
|
+
const writer = node.createAccount();
|
|
481
481
|
|
|
482
482
|
group.addMember(writer, "writer");
|
|
483
483
|
|
|
@@ -496,7 +496,7 @@ test("Admins can set group read key and then writers can use it to create and re
|
|
|
496
496
|
test("Admins can set group read key and then use it to create private transactions in owned objects, which readers can read", () => {
|
|
497
497
|
const { node, groupCore, admin } = newGroup();
|
|
498
498
|
|
|
499
|
-
const reader = node.createAccount(
|
|
499
|
+
const reader = node.createAccount();
|
|
500
500
|
|
|
501
501
|
const { secret: readKey, id: readKeyID } = newRandomKeySecret();
|
|
502
502
|
|
|
@@ -560,7 +560,7 @@ test("Admins can set group read key and then use it to create private transactio
|
|
|
560
560
|
test("Admins can set group read key and then use it to create private transactions in owned objects, which readers can read (high level)", () => {
|
|
561
561
|
const { node, group, admin } = newGroupHighLevel();
|
|
562
562
|
|
|
563
|
-
const reader = node.createAccount(
|
|
563
|
+
const reader = node.createAccount();
|
|
564
564
|
|
|
565
565
|
group.addMember(reader, "reader");
|
|
566
566
|
|
|
@@ -581,9 +581,9 @@ test("Admins can set group read key and then use it to create private transactio
|
|
|
581
581
|
test("Admins can set group read key and then use it to create private transactions in owned objects, which readers can read, even with a separate later revelation for the same read key", () => {
|
|
582
582
|
const { node, groupCore, admin } = newGroup();
|
|
583
583
|
|
|
584
|
-
const reader1 = node.createAccount(
|
|
584
|
+
const reader1 = node.createAccount();
|
|
585
585
|
|
|
586
|
-
const reader2 = node.createAccount(
|
|
586
|
+
const reader2 = node.createAccount();
|
|
587
587
|
|
|
588
588
|
const { secret: readKey, id: readKeyID } = newRandomKeySecret();
|
|
589
589
|
|
|
@@ -672,9 +672,9 @@ test("Admins can set group read key and then use it to create private transactio
|
|
|
672
672
|
test("Admins can set group read key and then use it to create private transactions in owned objects, which readers can read, even with a separate later revelation for the same read key (high level)", () => {
|
|
673
673
|
const { node, group, admin } = newGroupHighLevel();
|
|
674
674
|
|
|
675
|
-
const reader1 = node.createAccount(
|
|
675
|
+
const reader1 = node.createAccount();
|
|
676
676
|
|
|
677
|
-
const reader2 = node.createAccount(
|
|
677
|
+
const reader2 = node.createAccount();
|
|
678
678
|
|
|
679
679
|
group.addMember(reader1, "reader");
|
|
680
680
|
|
|
@@ -814,7 +814,7 @@ test("Admins can set group read key, make a private transaction in an owned obje
|
|
|
814
814
|
|
|
815
815
|
expect(childContent.get("foo")).toEqual("bar");
|
|
816
816
|
|
|
817
|
-
const reader = node.createAccount(
|
|
817
|
+
const reader = node.createAccount();
|
|
818
818
|
|
|
819
819
|
const { secret: readKey2, id: readKeyID2 } = newRandomKeySecret();
|
|
820
820
|
|
|
@@ -893,7 +893,7 @@ test("Admins can set group read key, make a private transaction in an owned obje
|
|
|
893
893
|
|
|
894
894
|
expect(childObject.core.getCurrentReadKey()).not.toEqual(firstReadKey);
|
|
895
895
|
|
|
896
|
-
const reader = node.createAccount(
|
|
896
|
+
const reader = node.createAccount();
|
|
897
897
|
|
|
898
898
|
group.addMember(reader, "reader");
|
|
899
899
|
|
|
@@ -922,9 +922,9 @@ test("Admins can set group read rey, make a private transaction in an owned obje
|
|
|
922
922
|
|
|
923
923
|
const groupContent = expectGroup(groupCore.getCurrentContent());
|
|
924
924
|
const { secret: readKey, id: readKeyID } = newRandomKeySecret();
|
|
925
|
-
const reader = node.createAccount(
|
|
925
|
+
const reader = node.createAccount();
|
|
926
926
|
|
|
927
|
-
const reader2 = node.createAccount(
|
|
927
|
+
const reader2 = node.createAccount();
|
|
928
928
|
|
|
929
929
|
const revelation1 = seal({
|
|
930
930
|
message: readKey,
|
|
@@ -1072,9 +1072,9 @@ test("Admins can set group read rey, make a private transaction in an owned obje
|
|
|
1072
1072
|
|
|
1073
1073
|
const secondReadKey = childObject.core.getCurrentReadKey();
|
|
1074
1074
|
|
|
1075
|
-
const reader = node.createAccount(
|
|
1075
|
+
const reader = node.createAccount();
|
|
1076
1076
|
|
|
1077
|
-
const reader2 = node.createAccount(
|
|
1077
|
+
const reader2 = node.createAccount();
|
|
1078
1078
|
|
|
1079
1079
|
group.addMember(reader, "reader");
|
|
1080
1080
|
group.addMember(reader2, "reader");
|
package/src/tests/testUtils.ts
CHANGED
|
@@ -37,7 +37,7 @@ export function newGroup() {
|
|
|
37
37
|
export function groupWithTwoAdmins() {
|
|
38
38
|
const { groupCore, admin, node } = newGroup();
|
|
39
39
|
|
|
40
|
-
const otherAdmin = node.createAccount(
|
|
40
|
+
const otherAdmin = node.createAccount();
|
|
41
41
|
|
|
42
42
|
let group = expectGroup(groupCore.getCurrentContent());
|
|
43
43
|
|
|
@@ -66,7 +66,7 @@ export function newGroupHighLevel() {
|
|
|
66
66
|
export function groupWithTwoAdminsHighLevel() {
|
|
67
67
|
let { admin, node, group } = newGroupHighLevel();
|
|
68
68
|
|
|
69
|
-
const otherAdmin = node.createAccount(
|
|
69
|
+
const otherAdmin = node.createAccount();
|
|
70
70
|
|
|
71
71
|
group.addMember(otherAdmin, "admin");
|
|
72
72
|
|