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.
Files changed (76) hide show
  1. package/dist/account.d.ts +6 -3
  2. package/dist/account.js +4 -2
  3. package/dist/account.js.map +1 -1
  4. package/dist/coValue.d.ts +44 -80
  5. package/dist/coValue.js +4 -348
  6. package/dist/coValue.js.map +1 -1
  7. package/dist/coValueCore.d.ts +84 -0
  8. package/dist/coValueCore.js +356 -0
  9. package/dist/coValueCore.js.map +1 -0
  10. package/dist/coValues/coList.d.ts +114 -0
  11. package/dist/{contentTypes → coValues}/coList.js +59 -19
  12. package/dist/coValues/coList.js.map +1 -0
  13. package/dist/{contentTypes → coValues}/coMap.d.ts +25 -7
  14. package/dist/{contentTypes → coValues}/coMap.js +34 -15
  15. package/dist/coValues/coMap.js.map +1 -0
  16. package/dist/coValues/coStream.d.ts +69 -0
  17. package/dist/coValues/coStream.js +131 -0
  18. package/dist/coValues/coStream.js.map +1 -0
  19. package/dist/coValues/static.d.ts +14 -0
  20. package/dist/coValues/static.js +20 -0
  21. package/dist/coValues/static.js.map +1 -0
  22. package/dist/group.d.ts +57 -9
  23. package/dist/group.js +94 -28
  24. package/dist/group.js.map +1 -1
  25. package/dist/index.d.ts +19 -10
  26. package/dist/index.js +7 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/node.d.ts +59 -5
  29. package/dist/node.js +36 -15
  30. package/dist/node.js.map +1 -1
  31. package/dist/permissions.d.ts +2 -2
  32. package/dist/permissions.js +1 -1
  33. package/dist/permissions.js.map +1 -1
  34. package/dist/sync.d.ts +3 -3
  35. package/dist/sync.js +2 -2
  36. package/dist/sync.js.map +1 -1
  37. package/dist/testUtils.d.ts +2 -2
  38. package/dist/testUtils.js +1 -1
  39. package/dist/testUtils.js.map +1 -1
  40. package/package.json +2 -2
  41. package/src/account.test.ts +1 -1
  42. package/src/account.ts +8 -5
  43. package/src/coValue.test.ts +335 -129
  44. package/src/coValue.ts +52 -576
  45. package/src/coValueCore.test.ts +180 -0
  46. package/src/coValueCore.ts +592 -0
  47. package/src/{contentTypes → coValues}/coList.ts +91 -42
  48. package/src/{contentTypes → coValues}/coMap.ts +40 -20
  49. package/src/coValues/coStream.ts +249 -0
  50. package/src/coValues/static.ts +31 -0
  51. package/src/group.test.ts +47 -0
  52. package/src/group.ts +120 -50
  53. package/src/index.ts +43 -28
  54. package/src/node.ts +48 -27
  55. package/src/permissions.test.ts +32 -32
  56. package/src/permissions.ts +5 -5
  57. package/src/sync.test.ts +77 -77
  58. package/src/sync.ts +5 -5
  59. package/src/testUtils.ts +1 -1
  60. package/tsconfig.json +1 -2
  61. package/dist/contentType.d.ts +0 -15
  62. package/dist/contentType.js +0 -7
  63. package/dist/contentType.js.map +0 -1
  64. package/dist/contentTypes/coList.d.ts +0 -77
  65. package/dist/contentTypes/coList.js.map +0 -1
  66. package/dist/contentTypes/coMap.js.map +0 -1
  67. package/dist/contentTypes/coStream.d.ts +0 -11
  68. package/dist/contentTypes/coStream.js +0 -16
  69. package/dist/contentTypes/coStream.js.map +0 -1
  70. package/dist/contentTypes/static.d.ts +0 -11
  71. package/dist/contentTypes/static.js +0 -14
  72. package/dist/contentTypes/static.js.map +0 -1
  73. package/src/contentType.test.ts +0 -284
  74. package/src/contentType.ts +0 -26
  75. package/src/contentTypes/coStream.ts +0 -24
  76. 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
- constructor(groupMap, node) {
12
- this.groupMap = groupMap;
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.groupMap.id;
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.groupMap.get(accountID);
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.groupMap = this.groupMap.edit((map) => {
34
- const currentReadKey = this.groupMap.coValue.getCurrentReadKey();
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.groupMap.coValue.node.account.currentSealerSecret(), getAgentSealerID(agent), {
44
- in: this.groupMap.coValue.id,
45
- tx: this.groupMap.coValue.nextTransactionID(),
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
- createInvite(role) {
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.groupMap.keys().filter((key) => {
78
+ const currentlyPermittedReaders = this.underlyingMap
79
+ .keys()
80
+ .filter((key) => {
58
81
  if (key.startsWith("co_") || isAgentID(key)) {
59
- const role = this.groupMap.get(key);
60
- return (role === "admin" || role === "writer" || role === "reader");
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.groupMap.coValue.getCurrentReadKey();
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.groupMap = this.groupMap.edit((map) => {
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.groupMap.coValue.node.account.currentSealerSecret(), getAgentSealerID(reader), {
79
- in: this.groupMap.coValue.id,
80
- tx: this.groupMap.coValue.nextTransactionID(),
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.groupMap = this.groupMap.edit((map) => {
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.groupMap.id,
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.groupMap.id,
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.groupMap.coValue
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":"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"}
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 { CoValue, newRandomSessionID } from "./coValue.js";
1
+ import { CoValueCore, newRandomSessionID } from "./coValueCore.js";
2
2
  import { LocalNode } from "./node.js";
3
- import { CoMap } from "./contentTypes/coMap.js";
4
- import { CoList } from "./contentTypes/coList.js";
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, ContentType } from "./contentType.js";
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, AccountContent, ProfileContent, ProfileMeta, Profile } from "./account.js";
18
+ import type { AccountID, Profile } from "./account.js";
16
19
  import type { InviteSecret } from "./group.js";
17
- type Value = JsonValue | ContentType;
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, CoValue, CoMap, CoList, AnonymousControlledAccount, ControlledAccount, Group };
34
- export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, AgentID, AccountID, Peer, AccountContent, Profile, ProfileContent, ProfileMeta, InviteSecret };
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("./coValue.js").CoValueHeader;
42
- type Transaction = import("./coValue.js").Transaction;
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 { CoValue, newRandomSessionID } from "./coValue.js";
1
+ import { CoValueCore, newRandomSessionID } from "./coValueCore.js";
2
2
  import { LocalNode } from "./node.js";
3
- import { CoMap } from "./contentTypes/coMap.js";
4
- import { CoList } from "./contentTypes/coList.js";
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, CoValue, CoMap, CoList, AnonymousControlledAccount, ControlledAccount, Group };
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,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,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,CAAA;AAkBtD,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,OAAO,EACP,KAAK,EACL,MAAM,EACN,0BAA0B,EAC1B,iBAAiB,EACjB,KAAK,EACR,CAAC"}
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, ContentType } from "./contentType.js";
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
- load<T extends ContentType>(id: CoID<T>): Promise<T>;
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 ContentType>(groupOrOwnedValueID: CoID<T>, inviteSecret: InviteSecret): Promise<void>;
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 { CoValue, newRandomSessionID } from "./coValue.js";
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 CoValue(header, this);
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.coValue.header.ruleset.type === "ownedByGroup") {
74
- return this.acceptInvite(groupOrOwnedValue.coValue.header.ruleset.group, inviteSecret);
93
+ if (groupOrOwnedValue.core.header.ruleset.type === "ownedByGroup") {
94
+ return this.acceptInvite(groupOrOwnedValue.core.header.ruleset.group, inviteSecret);
75
95
  }
76
- else if (groupOrOwnedValue.coValue.header.ruleset.type !== "group") {
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.groupMap.subscribe((groupMap) => {
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.groupMap.get(this.account.id);
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.groupMap.coValue._sessions = groupAsInvite.groupMap.coValue.sessions;
109
- group.groupMap.coValue._cachedContent = undefined;
110
- for (const groupListener of group.groupMap.coValue.listeners) {
111
- groupListener(group.groupMap.coValue.getCurrentContent());
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.groupMap.edit((editable) => {
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.groupMap.edit((editable) => {
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.groupMap.coValue.sessions };
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 CoValue(entry.coValue.header, newNode, { ...entry.coValue.sessions });
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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"}
@@ -1,5 +1,5 @@
1
1
  import { KeyID } from "./crypto.js";
2
- import { CoValue, Transaction } from "./coValue.js";
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: CoValue): {
15
+ export declare function determineValidTransactions(coValue: CoValueCore): {
16
16
  txID: TransactionID;
17
17
  tx: Transaction;
18
18
  }[];
@@ -1,4 +1,4 @@
1
- import { accountOrAgentIDfromSessionID, } from "./coValue.js";
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]) => {