cojson 0.0.10 → 0.0.12

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.
Files changed (75) hide show
  1. package/README.md +2 -2
  2. package/dist/account.d.ts +57 -0
  3. package/dist/account.js +76 -0
  4. package/dist/account.js.map +1 -0
  5. package/dist/account.test.d.ts +1 -0
  6. package/dist/account.test.js +40 -0
  7. package/dist/account.test.js.map +1 -0
  8. package/dist/coValue.d.ts +16 -35
  9. package/dist/coValue.js +49 -112
  10. package/dist/coValue.js.map +1 -1
  11. package/dist/coValue.test.js +16 -16
  12. package/dist/coValue.test.js.map +1 -1
  13. package/dist/contentType.d.ts +9 -9
  14. package/dist/contentType.js.map +1 -1
  15. package/dist/contentType.test.js +13 -17
  16. package/dist/contentType.test.js.map +1 -1
  17. package/dist/contentTypes/coList.d.ts +3 -3
  18. package/dist/contentTypes/coList.js.map +1 -1
  19. package/dist/contentTypes/coMap.d.ts +31 -21
  20. package/dist/contentTypes/coMap.js +28 -0
  21. package/dist/contentTypes/coMap.js.map +1 -1
  22. package/dist/contentTypes/coStream.d.ts +3 -3
  23. package/dist/contentTypes/coStream.js.map +1 -1
  24. package/dist/contentTypes/static.d.ts +4 -4
  25. package/dist/contentTypes/static.js.map +1 -1
  26. package/dist/crypto.d.ts +45 -39
  27. package/dist/crypto.js +68 -49
  28. package/dist/crypto.js.map +1 -1
  29. package/dist/crypto.test.js +45 -49
  30. package/dist/crypto.test.js.map +1 -1
  31. package/dist/ids.d.ts +5 -3
  32. package/dist/ids.js +3 -1
  33. package/dist/ids.js.map +1 -1
  34. package/dist/index.d.ts +12 -14
  35. package/dist/index.js +6 -8
  36. package/dist/index.js.map +1 -1
  37. package/dist/jsonValue.d.ts +2 -2
  38. package/dist/node.d.ts +25 -15
  39. package/dist/node.js +88 -33
  40. package/dist/node.js.map +1 -1
  41. package/dist/permissions.d.ts +27 -33
  42. package/dist/permissions.js +55 -47
  43. package/dist/permissions.js.map +1 -1
  44. package/dist/permissions.test.js +231 -314
  45. package/dist/permissions.test.js.map +1 -1
  46. package/dist/sync.d.ts +26 -28
  47. package/dist/sync.js +81 -67
  48. package/dist/sync.js.map +1 -1
  49. package/dist/sync.test.js +194 -293
  50. package/dist/sync.test.js.map +1 -1
  51. package/dist/testUtils.d.ts +37 -0
  52. package/dist/testUtils.js +157 -0
  53. package/dist/testUtils.js.map +1 -0
  54. package/package.json +1 -1
  55. package/src/account.test.ts +67 -0
  56. package/src/account.ts +152 -0
  57. package/src/coValue.test.ts +17 -31
  58. package/src/coValue.ts +93 -179
  59. package/src/contentType.test.ts +18 -45
  60. package/src/contentType.ts +15 -13
  61. package/src/contentTypes/coList.ts +4 -4
  62. package/src/contentTypes/coMap.ts +55 -29
  63. package/src/contentTypes/coStream.ts +4 -4
  64. package/src/contentTypes/static.ts +5 -5
  65. package/src/crypto.test.ts +53 -59
  66. package/src/crypto.ts +123 -95
  67. package/src/ids.ts +9 -3
  68. package/src/index.ts +14 -25
  69. package/src/jsonValue.ts +2 -2
  70. package/src/node.ts +189 -61
  71. package/src/permissions.test.ts +370 -404
  72. package/src/permissions.ts +126 -109
  73. package/src/sync.test.ts +284 -426
  74. package/src/sync.ts +115 -105
  75. package/src/testUtils.ts +229 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../src/sync.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../src/sync.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { LocalNode } from "./node.js";
2
+ import { AnonymousControlledAccount } from "./account.js";
3
+ import { SessionID } from "./ids.js";
4
+ import { ReadableStream, WritableStream } from "isomorphic-streams";
5
+ import { Peer, PeerID } from "./sync.js";
6
+ export declare function randomAnonymousAccountAndSessionID(): [AnonymousControlledAccount, SessionID];
7
+ export declare function newTeam(): {
8
+ node: LocalNode;
9
+ team: import("./coValue.js").CoValue;
10
+ admin: AnonymousControlledAccount;
11
+ };
12
+ export declare function teamWithTwoAdmins(): {
13
+ team: import("./coValue.js").CoValue;
14
+ admin: AnonymousControlledAccount;
15
+ otherAdmin: import("./account.js").ControlledAccount;
16
+ node: LocalNode;
17
+ };
18
+ export declare function newTeamHighLevel(): {
19
+ admin: AnonymousControlledAccount;
20
+ node: LocalNode;
21
+ team: import("./permissions.js").Team;
22
+ };
23
+ export declare function teamWithTwoAdminsHighLevel(): {
24
+ admin: AnonymousControlledAccount;
25
+ node: LocalNode;
26
+ team: import("./permissions.js").Team;
27
+ otherAdmin: import("./account.js").ControlledAccount;
28
+ };
29
+ export declare function newStreamPair<T>(): [ReadableStream<T>, WritableStream<T>];
30
+ export declare function shouldNotResolve<T>(promise: Promise<T>, ops: {
31
+ timeout: number;
32
+ }): Promise<void>;
33
+ export declare function connectedPeers(peer1id: PeerID, peer2id: PeerID, { trace, peer1role, peer2role, }?: {
34
+ trace?: boolean;
35
+ peer1role?: Peer["role"];
36
+ peer2role?: Peer["role"];
37
+ }): [Peer, Peer];
@@ -0,0 +1,157 @@
1
+ import { createdNowUnique, getAgentID, newRandomAgentSecret } from "./crypto.js";
2
+ import { newRandomSessionID } from "./coValue.js";
3
+ import { LocalNode } from "./node.js";
4
+ import { expectTeamContent } from "./permissions.js";
5
+ import { AnonymousControlledAccount } from "./account.js";
6
+ import { ReadableStream, TransformStream, WritableStream } from "isomorphic-streams";
7
+ export function randomAnonymousAccountAndSessionID() {
8
+ const agentSecret = newRandomAgentSecret();
9
+ const sessionID = newRandomSessionID(getAgentID(agentSecret));
10
+ return [new AnonymousControlledAccount(agentSecret), sessionID];
11
+ }
12
+ export function newTeam() {
13
+ const [admin, sessionID] = randomAnonymousAccountAndSessionID();
14
+ const node = new LocalNode(admin, sessionID);
15
+ const team = node.createCoValue({
16
+ type: "comap",
17
+ ruleset: { type: "team", initialAdmin: admin.id },
18
+ meta: null,
19
+ ...createdNowUnique(),
20
+ });
21
+ const teamContent = expectTeamContent(team.getCurrentContent());
22
+ teamContent.edit((editable) => {
23
+ editable.set(admin.id, "admin", "trusting");
24
+ expect(editable.get(admin.id)).toEqual("admin");
25
+ });
26
+ return { node, team, admin };
27
+ }
28
+ export function teamWithTwoAdmins() {
29
+ const { team, admin, node } = newTeam();
30
+ const otherAdmin = node.createAccount("otherAdmin");
31
+ let content = expectTeamContent(team.getCurrentContent());
32
+ content.edit((editable) => {
33
+ editable.set(otherAdmin.id, "admin", "trusting");
34
+ expect(editable.get(otherAdmin.id)).toEqual("admin");
35
+ });
36
+ content = expectTeamContent(team.getCurrentContent());
37
+ if (content.type !== "comap") {
38
+ throw new Error("Expected map");
39
+ }
40
+ expect(content.get(otherAdmin.id)).toEqual("admin");
41
+ return { team, admin, otherAdmin, node };
42
+ }
43
+ export function newTeamHighLevel() {
44
+ const [admin, sessionID] = randomAnonymousAccountAndSessionID();
45
+ const node = new LocalNode(admin, sessionID);
46
+ const team = node.createTeam();
47
+ return { admin, node, team };
48
+ }
49
+ export function teamWithTwoAdminsHighLevel() {
50
+ const { admin, node, team } = newTeamHighLevel();
51
+ const otherAdmin = node.createAccount("otherAdmin");
52
+ team.addMember(otherAdmin.id, "admin");
53
+ return { admin, node, team, otherAdmin };
54
+ }
55
+ export function newStreamPair() {
56
+ const queue = [];
57
+ let resolveNextItemReady = () => { };
58
+ let nextItemReady = new Promise((resolve) => {
59
+ resolveNextItemReady = resolve;
60
+ });
61
+ let writerClosed = false;
62
+ let readerClosed = false;
63
+ const readable = new ReadableStream({
64
+ async pull(controller) {
65
+ let retriesLeft = 3;
66
+ while (retriesLeft > 0) {
67
+ if (writerClosed) {
68
+ controller.close();
69
+ return;
70
+ }
71
+ retriesLeft--;
72
+ if (queue.length > 0) {
73
+ controller.enqueue(queue.shift());
74
+ if (queue.length === 0) {
75
+ nextItemReady = new Promise((resolve) => {
76
+ resolveNextItemReady = resolve;
77
+ });
78
+ }
79
+ return;
80
+ }
81
+ else {
82
+ await nextItemReady;
83
+ }
84
+ }
85
+ throw new Error("Should only use one retry to get next item in queue.");
86
+ },
87
+ cancel(reason) {
88
+ console.log("Manually closing reader");
89
+ readerClosed = true;
90
+ },
91
+ });
92
+ const writable = new WritableStream({
93
+ write(chunk, controller) {
94
+ if (readerClosed) {
95
+ console.log("Reader closed, not writing chunk", chunk);
96
+ throw new Error("Reader closed, not writing chunk");
97
+ }
98
+ queue.push(chunk);
99
+ if (queue.length === 1) {
100
+ // make sure that await write resolves before corresponding read
101
+ process.nextTick(() => resolveNextItemReady());
102
+ }
103
+ },
104
+ abort(reason) {
105
+ console.log("Manually closing writer");
106
+ writerClosed = true;
107
+ resolveNextItemReady();
108
+ return Promise.resolve();
109
+ },
110
+ });
111
+ return [readable, writable];
112
+ }
113
+ export function shouldNotResolve(promise, ops) {
114
+ return new Promise((resolve, reject) => {
115
+ promise
116
+ .then((v) => reject(new Error("Should not have resolved, but resolved to " +
117
+ JSON.stringify(v))))
118
+ .catch(reject);
119
+ setTimeout(resolve, ops.timeout);
120
+ });
121
+ }
122
+ export function connectedPeers(peer1id, peer2id, { trace = false, peer1role = "peer", peer2role = "peer", } = {}) {
123
+ const [inRx1, inTx1] = newStreamPair();
124
+ const [outRx1, outTx1] = newStreamPair();
125
+ const [inRx2, inTx2] = newStreamPair();
126
+ const [outRx2, outTx2] = newStreamPair();
127
+ void outRx2
128
+ .pipeThrough(new TransformStream({
129
+ transform(chunk, controller) {
130
+ trace && console.log(`${peer2id} -> ${peer1id}`, JSON.stringify(chunk, null, 2));
131
+ controller.enqueue(chunk);
132
+ },
133
+ }))
134
+ .pipeTo(inTx1);
135
+ void outRx1
136
+ .pipeThrough(new TransformStream({
137
+ transform(chunk, controller) {
138
+ trace && console.log(`${peer1id} -> ${peer2id}`, JSON.stringify(chunk, null, 2));
139
+ controller.enqueue(chunk);
140
+ },
141
+ }))
142
+ .pipeTo(inTx2);
143
+ const peer2AsPeer = {
144
+ id: peer2id,
145
+ incoming: inRx1,
146
+ outgoing: outTx1,
147
+ role: peer2role,
148
+ };
149
+ const peer1AsPeer = {
150
+ id: peer1id,
151
+ incoming: inRx2,
152
+ outgoing: outTx2,
153
+ role: peer1role,
154
+ };
155
+ return [peer1AsPeer, peer2AsPeer];
156
+ }
157
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1 @@
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": "src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.0.10",
8
+ "version": "0.0.12",
9
9
  "devDependencies": {
10
10
  "@types/jest": "^29.5.3",
11
11
  "@typescript-eslint/eslint-plugin": "^6.2.1",
@@ -0,0 +1,67 @@
1
+ import { newRandomSessionID } from "./coValue.js";
2
+ import { LocalNode } from "./node.js";
3
+ import { connectedPeers } from "./testUtils.js";
4
+
5
+ test("Can create a node while creating a new account with profile", async () => {
6
+ const { node, accountID, accountSecret, sessionID } =
7
+ LocalNode.withNewlyCreatedAccount("Hermes Puggington");
8
+
9
+ expect(node).not.toBeNull();
10
+ expect(accountID).not.toBeNull();
11
+ expect(accountSecret).not.toBeNull();
12
+ expect(sessionID).not.toBeNull();
13
+
14
+ expect(node.expectProfileLoaded(accountID).get("name")).toEqual(
15
+ "Hermes Puggington"
16
+ );
17
+ expect((await node.loadProfile(accountID)).get("name")).toEqual(
18
+ "Hermes Puggington"
19
+ );
20
+ });
21
+
22
+ test("A node with an account can create teams and and objects within them", async () => {
23
+ const { node, accountID } =
24
+ LocalNode.withNewlyCreatedAccount("Hermes Puggington");
25
+
26
+ const team = await node.createTeam();
27
+ expect(team).not.toBeNull();
28
+
29
+ let map = team.createMap();
30
+ map = map.edit((edit) => {
31
+ edit.set("foo", "bar", "private");
32
+ expect(edit.get("foo")).toEqual("bar");
33
+ });
34
+
35
+ expect(map.get("foo")).toEqual("bar");
36
+
37
+ expect(map.getLastEditor("foo")).toEqual(accountID);
38
+ });
39
+
40
+ test("Can create account with one node, and then load it on another", async () => {
41
+ const { node, accountID, accountSecret } =
42
+ LocalNode.withNewlyCreatedAccount("Hermes Puggington");
43
+
44
+ const team = await node.createTeam();
45
+ expect(team).not.toBeNull();
46
+
47
+ let map = team.createMap();
48
+ map = map.edit((edit) => {
49
+ edit.set("foo", "bar", "private");
50
+ expect(edit.get("foo")).toEqual("bar");
51
+ });
52
+
53
+ const [node1asPeer, node2asPeer] = connectedPeers("node1", "node2", {trace: true, peer1role: "server", peer2role: "client"});
54
+
55
+ node.sync.addPeer(node2asPeer);
56
+
57
+ const node2 = await LocalNode.withLoadedAccount(
58
+ accountID,
59
+ accountSecret,
60
+ newRandomSessionID(accountID),
61
+ [node1asPeer]
62
+ );
63
+
64
+ const map2 = await node2.load(map.id);
65
+
66
+ expect(map2.get("foo")).toEqual("bar");
67
+ });
package/src/account.ts ADDED
@@ -0,0 +1,152 @@
1
+ import { CoValueHeader } from "./coValue.js";
2
+ import { CoID } from "./contentType.js";
3
+ import {
4
+ AgentSecret,
5
+ SealerID,
6
+ SealerSecret,
7
+ SignerID,
8
+ SignerSecret,
9
+ getAgentID,
10
+ getAgentSealerID,
11
+ getAgentSealerSecret,
12
+ getAgentSignerID,
13
+ getAgentSignerSecret,
14
+ } from "./crypto.js";
15
+ import { AgentID } from "./ids.js";
16
+ import { CoMap, LocalNode } from "./index.js";
17
+ import { Team, TeamContent } from "./permissions.js";
18
+
19
+ export function accountHeaderForInitialAgentSecret(
20
+ agentSecret: AgentSecret
21
+ ): CoValueHeader {
22
+ const agent = getAgentID(agentSecret);
23
+ return {
24
+ type: "comap",
25
+ ruleset: { type: "team", initialAdmin: agent },
26
+ meta: {
27
+ type: "account",
28
+ },
29
+ createdAt: null,
30
+ uniqueness: null,
31
+ };
32
+ }
33
+
34
+ export class Account extends Team {
35
+ get id(): AccountID {
36
+ return this.teamMap.id as AccountID;
37
+ }
38
+
39
+ getCurrentAgentID(): AgentID {
40
+ const agents = this.teamMap
41
+ .keys()
42
+ .filter((k): k is AgentID => k.startsWith("sealer_"));
43
+
44
+ if (agents.length !== 1) {
45
+ throw new Error(
46
+ "Expected exactly one agent in account, got " + agents.length
47
+ );
48
+ }
49
+
50
+ return agents[0]!;
51
+ }
52
+ }
53
+
54
+ export interface GeneralizedControlledAccount {
55
+ id: AccountIDOrAgentID;
56
+ agentSecret: AgentSecret;
57
+
58
+ currentAgentID: () => AgentID;
59
+ currentSignerID: () => SignerID;
60
+ currentSignerSecret: () => SignerSecret;
61
+ currentSealerID: () => SealerID;
62
+ currentSealerSecret: () => SealerSecret;
63
+ }
64
+
65
+ export class ControlledAccount
66
+ extends Account
67
+ implements GeneralizedControlledAccount
68
+ {
69
+ agentSecret: AgentSecret;
70
+
71
+ constructor(
72
+ agentSecret: AgentSecret,
73
+ teamMap: CoMap<AccountContent, AccountMeta>,
74
+ node: LocalNode
75
+ ) {
76
+ super(teamMap, node);
77
+
78
+ this.agentSecret = agentSecret;
79
+ }
80
+
81
+ currentAgentID(): AgentID {
82
+ return getAgentID(this.agentSecret);
83
+ }
84
+
85
+ currentSignerID(): SignerID {
86
+ return getAgentSignerID(this.currentAgentID());
87
+ }
88
+
89
+ currentSignerSecret(): SignerSecret {
90
+ return getAgentSignerSecret(this.agentSecret);
91
+ }
92
+
93
+ currentSealerID(): SealerID {
94
+ return getAgentSealerID(this.currentAgentID());
95
+ }
96
+
97
+ currentSealerSecret(): SealerSecret {
98
+ return getAgentSealerSecret(this.agentSecret);
99
+ }
100
+ }
101
+
102
+ export class AnonymousControlledAccount
103
+ implements GeneralizedControlledAccount
104
+ {
105
+ agentSecret: AgentSecret;
106
+
107
+ constructor(agentSecret: AgentSecret) {
108
+ this.agentSecret = agentSecret;
109
+ }
110
+
111
+ get id(): AgentID {
112
+ return getAgentID(this.agentSecret);
113
+ }
114
+
115
+ currentAgentID(): AgentID {
116
+ return getAgentID(this.agentSecret);
117
+ }
118
+
119
+ currentSignerID(): SignerID {
120
+ return getAgentSignerID(this.currentAgentID());
121
+ }
122
+
123
+ currentSignerSecret(): SignerSecret {
124
+ return getAgentSignerSecret(this.agentSecret);
125
+ }
126
+
127
+ currentSealerID(): SealerID {
128
+ return getAgentSealerID(this.currentAgentID());
129
+ }
130
+
131
+ currentSealerSecret(): SealerSecret {
132
+ return getAgentSealerSecret(this.agentSecret);
133
+ }
134
+ }
135
+
136
+ export type AccountContent = TeamContent & { profile: CoID<Profile> };
137
+ export type AccountMeta = { type: "account" };
138
+ export type AccountID = CoID<CoMap<AccountContent, AccountMeta>>;
139
+
140
+ export type AccountIDOrAgentID = AgentID | AccountID;
141
+ export type AccountOrAgentID = AgentID | Account;
142
+ export type AccountOrAgentSecret = AgentSecret | Account;
143
+
144
+ export function isAccountID(id: AccountIDOrAgentID): id is AccountID {
145
+ return id.startsWith("co_");
146
+ }
147
+
148
+ export type ProfileContent = {
149
+ name: string;
150
+ };
151
+ export type ProfileMeta = { type: "profile" };
152
+ export type Profile = CoMap<ProfileContent, ProfileMeta>;