cojson 0.13.17 → 0.13.20

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 (180) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/dist/PeerState.d.ts +4 -1
  4. package/dist/PeerState.d.ts.map +1 -1
  5. package/dist/PeerState.js +16 -36
  6. package/dist/PeerState.js.map +1 -1
  7. package/dist/SyncStateManager.d.ts.map +1 -1
  8. package/dist/SyncStateManager.js +2 -3
  9. package/dist/SyncStateManager.js.map +1 -1
  10. package/dist/coValue.d.ts +4 -4
  11. package/dist/coValue.d.ts.map +1 -1
  12. package/dist/coValue.js +4 -4
  13. package/dist/coValue.js.map +1 -1
  14. package/dist/coValueCore/coValueCore.d.ts +143 -0
  15. package/dist/coValueCore/coValueCore.d.ts.map +1 -0
  16. package/dist/{coValueCore.js → coValueCore/coValueCore.js} +325 -253
  17. package/dist/coValueCore/coValueCore.js.map +1 -0
  18. package/dist/coValueCore/verifiedState.d.ts +65 -0
  19. package/dist/coValueCore/verifiedState.d.ts.map +1 -0
  20. package/dist/coValueCore/verifiedState.js +210 -0
  21. package/dist/coValueCore/verifiedState.js.map +1 -0
  22. package/dist/coValues/account.d.ts +8 -10
  23. package/dist/coValues/account.d.ts.map +1 -1
  24. package/dist/coValues/account.js +12 -13
  25. package/dist/coValues/account.js.map +1 -1
  26. package/dist/coValues/coList.d.ts +3 -3
  27. package/dist/coValues/coList.d.ts.map +1 -1
  28. package/dist/coValues/coList.js +6 -3
  29. package/dist/coValues/coList.js.map +1 -1
  30. package/dist/coValues/coMap.d.ts +3 -3
  31. package/dist/coValues/coMap.d.ts.map +1 -1
  32. package/dist/coValues/coMap.js +3 -3
  33. package/dist/coValues/coMap.js.map +1 -1
  34. package/dist/coValues/coPlainText.d.ts +2 -2
  35. package/dist/coValues/coPlainText.d.ts.map +1 -1
  36. package/dist/coValues/coPlainText.js +4 -4
  37. package/dist/coValues/coPlainText.js.map +1 -1
  38. package/dist/coValues/coStream.d.ts +3 -3
  39. package/dist/coValues/coStream.d.ts.map +1 -1
  40. package/dist/coValues/coStream.js +3 -3
  41. package/dist/coValues/coStream.js.map +1 -1
  42. package/dist/coValues/group.d.ts +7 -2
  43. package/dist/coValues/group.d.ts.map +1 -1
  44. package/dist/coValues/group.js +29 -26
  45. package/dist/coValues/group.js.map +1 -1
  46. package/dist/coreToCoValue.d.ts +2 -2
  47. package/dist/coreToCoValue.d.ts.map +1 -1
  48. package/dist/coreToCoValue.js +10 -14
  49. package/dist/coreToCoValue.js.map +1 -1
  50. package/dist/exports.d.ts +6 -5
  51. package/dist/exports.d.ts.map +1 -1
  52. package/dist/exports.js +3 -4
  53. package/dist/exports.js.map +1 -1
  54. package/dist/localNode.d.ts +30 -24
  55. package/dist/localNode.d.ts.map +1 -1
  56. package/dist/localNode.js +147 -173
  57. package/dist/localNode.js.map +1 -1
  58. package/dist/permissions.d.ts +2 -1
  59. package/dist/permissions.d.ts.map +1 -1
  60. package/dist/permissions.js +15 -11
  61. package/dist/permissions.js.map +1 -1
  62. package/dist/priority.d.ts +1 -1
  63. package/dist/priority.d.ts.map +1 -1
  64. package/dist/streamUtils.d.ts +5 -5
  65. package/dist/streamUtils.d.ts.map +1 -1
  66. package/dist/streamUtils.js +5 -20
  67. package/dist/streamUtils.js.map +1 -1
  68. package/dist/sync.d.ts +8 -6
  69. package/dist/sync.d.ts.map +1 -1
  70. package/dist/sync.js +121 -74
  71. package/dist/sync.js.map +1 -1
  72. package/dist/tests/PeerState.test.js +0 -31
  73. package/dist/tests/PeerState.test.js.map +1 -1
  74. package/dist/tests/SyncStateManager.test.js +41 -6
  75. package/dist/tests/SyncStateManager.test.js.map +1 -1
  76. package/dist/tests/account.test.js +16 -0
  77. package/dist/tests/account.test.js.map +1 -1
  78. package/dist/tests/coList.test.js +19 -16
  79. package/dist/tests/coList.test.js.map +1 -1
  80. package/dist/tests/coMap.test.js +12 -13
  81. package/dist/tests/coMap.test.js.map +1 -1
  82. package/dist/tests/coPlainText.test.js +9 -10
  83. package/dist/tests/coPlainText.test.js.map +1 -1
  84. package/dist/tests/coStream.test.js +22 -17
  85. package/dist/tests/coStream.test.js.map +1 -1
  86. package/dist/tests/coValueCore.test.js +22 -28
  87. package/dist/tests/coValueCore.test.js.map +1 -1
  88. package/dist/tests/coValueCoreLoadingState.test.d.ts +2 -0
  89. package/dist/tests/coValueCoreLoadingState.test.d.ts.map +1 -0
  90. package/dist/tests/{coValueState.test.js → coValueCoreLoadingState.test.js} +62 -46
  91. package/dist/tests/coValueCoreLoadingState.test.js.map +1 -0
  92. package/dist/tests/group.test.js +42 -43
  93. package/dist/tests/group.test.js.map +1 -1
  94. package/dist/tests/messagesTestUtils.d.ts +2 -2
  95. package/dist/tests/messagesTestUtils.d.ts.map +1 -1
  96. package/dist/tests/messagesTestUtils.js +1 -1
  97. package/dist/tests/messagesTestUtils.js.map +1 -1
  98. package/dist/tests/permissions.test.js +224 -292
  99. package/dist/tests/permissions.test.js.map +1 -1
  100. package/dist/tests/priority.test.js +13 -14
  101. package/dist/tests/priority.test.js.map +1 -1
  102. package/dist/tests/sync.auth.test.d.ts +2 -0
  103. package/dist/tests/sync.auth.test.d.ts.map +1 -0
  104. package/dist/tests/sync.auth.test.js +190 -0
  105. package/dist/tests/sync.auth.test.js.map +1 -0
  106. package/dist/tests/sync.load.test.js +6 -6
  107. package/dist/tests/sync.load.test.js.map +1 -1
  108. package/dist/tests/sync.mesh.test.js +25 -12
  109. package/dist/tests/sync.mesh.test.js.map +1 -1
  110. package/dist/tests/sync.peerReconciliation.test.js +19 -19
  111. package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
  112. package/dist/tests/sync.storage.test.js +20 -13
  113. package/dist/tests/sync.storage.test.js.map +1 -1
  114. package/dist/tests/sync.test.js +32 -39
  115. package/dist/tests/sync.test.js.map +1 -1
  116. package/dist/tests/sync.upload.test.js +126 -37
  117. package/dist/tests/sync.upload.test.js.map +1 -1
  118. package/dist/tests/testUtils.d.ts +35 -17
  119. package/dist/tests/testUtils.d.ts.map +1 -1
  120. package/dist/tests/testUtils.js +103 -79
  121. package/dist/tests/testUtils.js.map +1 -1
  122. package/dist/typeUtils/expectGroup.js +1 -1
  123. package/dist/typeUtils/expectGroup.js.map +1 -1
  124. package/package.json +1 -1
  125. package/src/PeerState.ts +19 -40
  126. package/src/SyncStateManager.ts +2 -3
  127. package/src/coValue.ts +11 -8
  128. package/src/{coValueCore.ts → coValueCore/coValueCore.ts} +478 -422
  129. package/src/coValueCore/verifiedState.ts +376 -0
  130. package/src/coValues/account.ts +20 -25
  131. package/src/coValues/coList.ts +12 -6
  132. package/src/coValues/coMap.ts +9 -6
  133. package/src/coValues/coPlainText.ts +9 -6
  134. package/src/coValues/coStream.ts +9 -6
  135. package/src/coValues/group.ts +50 -28
  136. package/src/coreToCoValue.ts +14 -15
  137. package/src/exports.ts +9 -7
  138. package/src/localNode.ts +236 -275
  139. package/src/permissions.ts +18 -12
  140. package/src/priority.ts +1 -1
  141. package/src/streamUtils.ts +7 -34
  142. package/src/sync.ts +146 -84
  143. package/src/tests/PeerState.test.ts +0 -37
  144. package/src/tests/SyncStateManager.test.ts +56 -6
  145. package/src/tests/account.test.ts +24 -0
  146. package/src/tests/coList.test.ts +21 -15
  147. package/src/tests/coMap.test.ts +12 -13
  148. package/src/tests/coPlainText.test.ts +12 -9
  149. package/src/tests/coStream.test.ts +25 -16
  150. package/src/tests/coValueCore.test.ts +30 -27
  151. package/src/tests/{coValueState.test.ts → coValueCoreLoadingState.test.ts} +67 -57
  152. package/src/tests/group.test.ts +44 -69
  153. package/src/tests/messagesTestUtils.ts +3 -8
  154. package/src/tests/permissions.test.ts +283 -449
  155. package/src/tests/priority.test.ts +17 -13
  156. package/src/tests/sync.auth.test.ts +246 -0
  157. package/src/tests/sync.load.test.ts +7 -6
  158. package/src/tests/sync.mesh.test.ts +25 -12
  159. package/src/tests/sync.peerReconciliation.test.ts +25 -25
  160. package/src/tests/sync.storage.test.ts +20 -13
  161. package/src/tests/sync.test.ts +43 -43
  162. package/src/tests/sync.upload.test.ts +157 -37
  163. package/src/tests/testUtils.ts +143 -96
  164. package/src/typeUtils/expectGroup.ts +1 -1
  165. package/dist/CoValuesStore.d.ts +0 -14
  166. package/dist/CoValuesStore.d.ts.map +0 -1
  167. package/dist/CoValuesStore.js +0 -32
  168. package/dist/CoValuesStore.js.map +0 -1
  169. package/dist/coValueCore.d.ts +0 -142
  170. package/dist/coValueCore.d.ts.map +0 -1
  171. package/dist/coValueCore.js.map +0 -1
  172. package/dist/coValueState.d.ts +0 -34
  173. package/dist/coValueState.d.ts.map +0 -1
  174. package/dist/coValueState.js +0 -190
  175. package/dist/coValueState.js.map +0 -1
  176. package/dist/tests/coValueState.test.d.ts +0 -2
  177. package/dist/tests/coValueState.test.d.ts.map +0 -1
  178. package/dist/tests/coValueState.test.js.map +0 -1
  179. package/src/CoValuesStore.ts +0 -41
  180. package/src/coValueState.ts +0 -245
package/dist/localNode.js CHANGED
@@ -1,11 +1,12 @@
1
- import { ResultAsync, err, ok, okAsync } from "neverthrow";
2
- import { CoValuesStore } from "./CoValuesStore.js";
3
- import { CoValueCore, } from "./coValueCore.js";
4
- import { ControlledAgent, RawControlledAccount, accountHeaderForInitialAgentSecret, } from "./coValues/account.js";
1
+ import { err, ok } from "neverthrow";
2
+ import { CoValueCore, idforHeader, } from "./coValueCore/coValueCore.js";
3
+ import { VerifiedState, } from "./coValueCore/verifiedState.js";
4
+ import { ControlledAccount, ControlledAgent, accountHeaderForInitialAgentSecret, expectAccount, } from "./coValues/account.js";
5
5
  import { secretSeedFromInviteSecret, } from "./coValues/group.js";
6
6
  import { isAgentID } from "./ids.js";
7
7
  import { logger } from "./logger.js";
8
8
  import { SyncManager } from "./sync.js";
9
+ import { accountOrAgentIDfromSessionID } from "./typeUtils/accountOrAgentIDfromSessionID.js";
9
10
  import { expectGroup } from "./typeUtils/expectGroup.js";
10
11
  /** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
11
12
 
@@ -20,94 +21,133 @@ const { localNode } = useJazz();
20
21
  */
21
22
  export class LocalNode {
22
23
  /** @category 3. Low-level */
23
- constructor(account, currentSessionID, crypto) {
24
+ constructor(agentSecret, currentSessionID, crypto) {
24
25
  /** @internal */
25
- this.coValuesStore = new CoValuesStore();
26
+ this.coValues = new Map();
26
27
  /** @category 3. Low-level */
27
28
  this.syncManager = new SyncManager(this);
28
29
  this.crashed = undefined;
29
- this.account = account;
30
+ this.agentSecret = agentSecret;
30
31
  this.currentSessionID = currentSessionID;
31
32
  this.crypto = crypto;
32
33
  }
34
+ getCoValue(id) {
35
+ let entry = this.coValues.get(id);
36
+ if (!entry) {
37
+ entry = CoValueCore.fromID(id, this);
38
+ this.coValues.set(id, entry);
39
+ }
40
+ return entry;
41
+ }
42
+ allCoValues() {
43
+ return this.coValues.values();
44
+ }
45
+ putCoValue(id, verified, { forceOverwrite = false } = {}) {
46
+ const entry = this.getCoValue(id);
47
+ entry.internalMarkMagicallyAvailable(verified, { forceOverwrite });
48
+ return entry;
49
+ }
50
+ internalDeleteCoValue(id) {
51
+ this.coValues.delete(id);
52
+ }
53
+ getCurrentAgent() {
54
+ const accountOrAgent = accountOrAgentIDfromSessionID(this.currentSessionID);
55
+ if (isAgentID(accountOrAgent)) {
56
+ return new ControlledAgent(this.agentSecret, this.crypto);
57
+ }
58
+ return new ControlledAccount(expectAccount(this.expectCoValueLoaded(accountOrAgent).getCurrentContent()), this.agentSecret);
59
+ }
60
+ expectCurrentAccountID(reason) {
61
+ const accountOrAgent = accountOrAgentIDfromSessionID(this.currentSessionID);
62
+ if (isAgentID(accountOrAgent)) {
63
+ throw new Error("Current account is an agent, but expected an account: " + reason);
64
+ }
65
+ return accountOrAgent;
66
+ }
67
+ expectCurrentAccount(reason) {
68
+ const accountID = this.expectCurrentAccountID(reason);
69
+ return expectAccount(this.expectCoValueLoaded(accountID).getCurrentContent());
70
+ }
71
+ static internalCreateAccount(opts) {
72
+ const { crypto, initialAgentSecret = crypto.newRandomAgentSecret(), peersToLoadFrom = [], } = opts;
73
+ const accountHeader = accountHeaderForInitialAgentSecret(initialAgentSecret, crypto);
74
+ const accountID = idforHeader(accountHeader, crypto);
75
+ const node = new LocalNode(initialAgentSecret, crypto.newRandomSessionID(accountID), crypto);
76
+ for (const peer of peersToLoadFrom) {
77
+ node.syncManager.addPeer(peer);
78
+ }
79
+ const accountAgentID = crypto.getAgentID(initialAgentSecret);
80
+ const rawAccount = expectGroup(node.createCoValue(accountHeader).getCurrentContent());
81
+ rawAccount.set(accountAgentID, "admin", "trusting");
82
+ const readKey = crypto.newRandomKeySecret();
83
+ const sealed = crypto.seal({
84
+ message: readKey.secret,
85
+ from: crypto.getAgentSealerSecret(initialAgentSecret),
86
+ to: crypto.getAgentSealerID(accountAgentID),
87
+ nOnceMaterial: {
88
+ in: rawAccount.id,
89
+ tx: rawAccount.core.nextTransactionID(),
90
+ },
91
+ });
92
+ rawAccount.set(`${readKey.id}_for_${accountAgentID}`, sealed, "trusting");
93
+ rawAccount.set("readKey", readKey.id, "trusting");
94
+ return node.expectCurrentAccount("after creation");
95
+ }
33
96
  /** @category 2. Node Creation */
34
97
  static async withNewlyCreatedAccount({ creationProps, peersToLoadFrom, migration, crypto, initialAgentSecret = crypto.newRandomAgentSecret(), }) {
35
- const throwawayAgent = crypto.newRandomAgentSecret();
36
- const setupNode = new LocalNode(new ControlledAgent(throwawayAgent, crypto), crypto.newRandomSessionID(crypto.getAgentID(throwawayAgent)), crypto);
37
- const account = setupNode.createAccount(initialAgentSecret);
38
- const nodeWithAccount = account.core.node.testWithDifferentAccount(account, crypto.newRandomSessionID(account.id));
39
- const accountOnNodeWithAccount = nodeWithAccount.account;
40
- if (peersToLoadFrom) {
41
- for (const peer of peersToLoadFrom) {
42
- nodeWithAccount.syncManager.addPeer(peer);
43
- }
44
- }
98
+ const account = LocalNode.internalCreateAccount({
99
+ crypto,
100
+ initialAgentSecret,
101
+ peersToLoadFrom,
102
+ });
103
+ const node = account.core.node;
45
104
  if (migration) {
46
- await migration(accountOnNodeWithAccount, nodeWithAccount, creationProps);
105
+ await migration(account, node, creationProps);
47
106
  }
48
107
  else {
49
- const profileGroup = accountOnNodeWithAccount.createGroup();
108
+ const profileGroup = node.createGroup();
50
109
  profileGroup.addMember("everyone", "reader");
51
110
  const profile = profileGroup.createMap({
52
111
  name: creationProps.name,
53
112
  });
54
- accountOnNodeWithAccount.set("profile", profile.id, "trusting");
113
+ account.set("profile", profile.id, "trusting");
55
114
  }
56
- const controlledAccount = new RawControlledAccount(accountOnNodeWithAccount.core, accountOnNodeWithAccount.agentSecret);
57
- nodeWithAccount.account = controlledAccount;
58
- nodeWithAccount.coValuesStore.internalMarkMagicallyAvailable(controlledAccount.id, controlledAccount.core);
59
- controlledAccount.core._cachedContent = undefined;
60
- if (!controlledAccount.get("profile")) {
115
+ const profileId = account.get("profile");
116
+ if (!profileId) {
61
117
  throw new Error("Must set account profile in initial migration");
62
118
  }
63
- // we shouldn't need this, but it fixes account data not syncing for new accounts
64
- function syncAllCoValuesAfterCreateAccount() {
65
- for (const coValueEntry of nodeWithAccount.coValuesStore.getValues()) {
66
- if (coValueEntry.isAvailable()) {
67
- void nodeWithAccount.syncManager.requestCoValueSync(coValueEntry.core);
68
- }
69
- }
119
+ if (node.syncManager.hasStoragePeers()) {
120
+ await Promise.all([
121
+ node.syncManager.waitForStorageSync(account.id),
122
+ node.syncManager.waitForStorageSync(profileId),
123
+ ]);
70
124
  }
71
- syncAllCoValuesAfterCreateAccount();
72
- setTimeout(syncAllCoValuesAfterCreateAccount, 500);
73
125
  return {
74
- node: nodeWithAccount,
75
- accountID: accountOnNodeWithAccount.id,
76
- accountSecret: accountOnNodeWithAccount.agentSecret,
77
- sessionID: nodeWithAccount.currentSessionID,
126
+ node,
127
+ accountID: account.id,
128
+ accountSecret: initialAgentSecret,
129
+ sessionID: node.currentSessionID,
78
130
  };
79
131
  }
80
132
  /** @category 2. Node Creation */
81
133
  static async withLoadedAccount({ accountID, accountSecret, sessionID, peersToLoadFrom, crypto, migration, }) {
82
134
  try {
83
- const loadingNode = new LocalNode(new ControlledAgent(accountSecret, crypto), crypto.newRandomSessionID(accountID), crypto);
135
+ const node = new LocalNode(accountSecret, sessionID || crypto.newRandomSessionID(accountID), crypto);
84
136
  for (const peer of peersToLoadFrom) {
85
- loadingNode.syncManager.addPeer(peer);
137
+ node.syncManager.addPeer(peer);
86
138
  }
87
- const accountPromise = loadingNode.load(accountID);
88
- const account = await accountPromise;
139
+ const account = await node.load(accountID);
89
140
  if (account === "unavailable") {
90
141
  throw new Error("Account unavailable from all peers");
91
142
  }
92
- const controlledAccount = new RawControlledAccount(account.core, accountSecret);
93
- // since this is all synchronous, we can just swap out nodes for the SyncManager
94
- const node = loadingNode.testWithDifferentAccount(controlledAccount, sessionID || crypto.newRandomSessionID(accountID));
95
- node.syncManager = loadingNode.syncManager;
96
- node.syncManager.local = node;
97
- controlledAccount.core.node = node;
98
- node.coValuesStore.internalMarkMagicallyAvailable(accountID, controlledAccount.core);
99
- controlledAccount.core._cachedContent = undefined;
100
143
  const profileID = account.get("profile");
101
144
  if (!profileID) {
102
145
  throw new Error("Account has no profile");
103
146
  }
104
- const profile = await node.load(profileID);
105
- if (profile === "unavailable") {
106
- throw new Error("Profile unavailable from all peers");
107
- }
147
+ // Preload the profile
148
+ await node.load(profileID);
108
149
  if (migration) {
109
- await migration(controlledAccount, node);
110
- node.account = new RawControlledAccount(controlledAccount.core, controlledAccount.agentSecret);
150
+ await migration(account, node);
111
151
  }
112
152
  return node;
113
153
  }
@@ -123,8 +163,8 @@ export class LocalNode {
123
163
  cause: this.crashed,
124
164
  });
125
165
  }
126
- const coValue = new CoValueCore(header, this);
127
- this.coValuesStore.internalMarkMagicallyAvailable(coValue.id, coValue);
166
+ const id = idforHeader(header, this.crypto);
167
+ const coValue = this.putCoValue(id, new VerifiedState(id, this.crypto, header, new Map()));
128
168
  void this.syncManager.requestCoValueSync(coValue);
129
169
  return coValue;
130
170
  }
@@ -137,22 +177,22 @@ export class LocalNode {
137
177
  }
138
178
  let retries = 0;
139
179
  while (true) {
140
- const entry = this.coValuesStore.get(id);
141
- if (entry.highLevelState === "unknown" ||
142
- entry.highLevelState === "unavailable") {
180
+ const coValue = this.getCoValue(id);
181
+ if (coValue.loadingState === "unknown" ||
182
+ coValue.loadingState === "unavailable") {
143
183
  const peers = this.syncManager.getServerAndStoragePeers(skipLoadingFromPeer);
144
184
  if (peers.length === 0) {
145
- return "unavailable";
185
+ return coValue;
146
186
  }
147
- entry.loadFromPeers(peers).catch((e) => {
187
+ coValue.loadFromPeers(peers).catch((e) => {
148
188
  logger.error("Error loading from peers", {
149
189
  id,
150
190
  err: e,
151
191
  });
152
192
  });
153
193
  }
154
- const result = await entry.getCoValue();
155
- if (result !== "unavailable" || retries >= 1) {
194
+ const result = await coValue.waitForAvailableOrUnavailable();
195
+ if (result.isAvailable() || retries >= 1) {
156
196
  return result;
157
197
  }
158
198
  await new Promise((resolve) => setTimeout(resolve, 300));
@@ -174,15 +214,15 @@ export class LocalNode {
174
214
  throw new Error(`Trying to load CoValue with invalid id ${id}`);
175
215
  }
176
216
  const core = await this.loadCoValueCore(id);
177
- if (core === "unavailable") {
217
+ if (!core.isAvailable()) {
178
218
  return "unavailable";
179
219
  }
180
220
  return core.getCurrentContent();
181
221
  }
182
222
  getLoaded(id) {
183
- const entry = this.coValuesStore.get(id);
184
- if (entry.isAvailable()) {
185
- return entry.core.getCurrentContent();
223
+ const coValue = this.getCoValue(id);
224
+ if (coValue.isAvailable()) {
225
+ return coValue.getCurrentContent();
186
226
  }
187
227
  return undefined;
188
228
  }
@@ -212,16 +252,15 @@ export class LocalNode {
212
252
  unsubscribe?.();
213
253
  };
214
254
  }
215
- /** @deprecated Use Account.acceptInvite instead */
216
255
  async acceptInvite(groupOrOwnedValueID, inviteSecret) {
217
256
  const groupOrOwnedValue = await this.load(groupOrOwnedValueID);
218
257
  if (groupOrOwnedValue === "unavailable") {
219
258
  throw new Error("Trying to accept invite: Group/owned value unavailable from all peers");
220
259
  }
221
- if (groupOrOwnedValue.core.header.ruleset.type === "ownedByGroup") {
222
- return this.acceptInvite(groupOrOwnedValue.core.header.ruleset.group, inviteSecret);
260
+ if (groupOrOwnedValue.core.verified.header.ruleset.type === "ownedByGroup") {
261
+ return this.acceptInvite(groupOrOwnedValue.core.verified.header.ruleset.group, inviteSecret);
223
262
  }
224
- else if (groupOrOwnedValue.core.header.ruleset.type !== "group") {
263
+ else if (groupOrOwnedValue.core.verified.header.ruleset.type !== "group") {
225
264
  throw new Error("Can only accept invites to groups");
226
265
  }
227
266
  const group = expectGroup(groupOrOwnedValue);
@@ -239,7 +278,8 @@ export class LocalNode {
239
278
  if (!inviteRole) {
240
279
  throw new Error("No invite found");
241
280
  }
242
- const existingRole = group.get(this.account.id);
281
+ const account = this.getCurrentAgent();
282
+ const existingRole = group.get(account.id);
243
283
  if (existingRole === "admin" ||
244
284
  (existingRole === "writer" && inviteRole === "writerInvite") ||
245
285
  (existingRole === "writer" && inviteRole === "reader") ||
@@ -248,29 +288,25 @@ export class LocalNode {
248
288
  logger.debug("Not accepting invite that would replace or downgrade role");
249
289
  return;
250
290
  }
251
- const groupAsInvite = expectGroup(group.core
252
- .testWithDifferentAccount(new ControlledAgent(inviteAgentSecret, this.crypto), this.crypto.newRandomSessionID(inviteAgentID))
253
- .getCurrentContent());
254
- groupAsInvite.addMemberInternal(this.account, inviteRole === "adminInvite"
291
+ const groupAsInvite = expectGroup(group.core.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteAgentSecret, this.crypto)));
292
+ groupAsInvite.addMemberInternal(account, inviteRole === "adminInvite"
255
293
  ? "admin"
256
294
  : inviteRole === "writerInvite"
257
295
  ? "writer"
258
296
  : inviteRole === "writeOnlyInvite"
259
297
  ? "writeOnly"
260
298
  : "reader");
261
- group.core._sessionLogs = groupAsInvite.core.sessionLogs;
262
- group.core._cachedContent = undefined;
263
- for (const groupListener of group.core.listeners) {
264
- groupListener(group.core.getCurrentContent());
265
- }
299
+ group.core.internalShamefullyCloneVerifiedStateFrom(groupAsInvite.core.verified, { forceOverwrite: true });
300
+ group.core.internalShamefullyResetCachedContent();
301
+ group.core.notifyUpdate("immediate");
266
302
  }
267
303
  /** @internal */
268
304
  expectCoValueLoaded(id, expectation) {
269
- const entry = this.coValuesStore.get(id);
270
- if (!entry.isAvailable()) {
271
- throw new Error(`${expectation ? expectation + ": " : ""}CoValue ${id} not yet loaded. Current state: ${JSON.stringify(entry)}`);
305
+ const coValue = this.getCoValue(id);
306
+ if (!coValue.isAvailable()) {
307
+ throw new Error(`${expectation ? expectation + ": " : ""}CoValue ${id} not yet loaded. Current state: ${JSON.stringify(coValue)}`);
272
308
  }
273
- return entry.core;
309
+ return coValue;
274
310
  }
275
311
  /** @internal */
276
312
  expectProfileLoaded(id, expectation) {
@@ -282,30 +318,6 @@ export class LocalNode {
282
318
  return this.expectCoValueLoaded(profileID, expectation).getCurrentContent();
283
319
  }
284
320
  /** @internal */
285
- createAccount(agentSecret = this.crypto.newRandomAgentSecret()) {
286
- const accountAgentID = this.crypto.getAgentID(agentSecret);
287
- const account = expectGroup(this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret, this.crypto))
288
- .testWithDifferentAccount(new ControlledAgent(agentSecret, this.crypto), this.crypto.newRandomSessionID(accountAgentID))
289
- .getCurrentContent());
290
- account.set(accountAgentID, "admin", "trusting");
291
- const readKey = this.crypto.newRandomKeySecret();
292
- const sealed = this.crypto.seal({
293
- message: readKey.secret,
294
- from: this.crypto.getAgentSealerSecret(agentSecret),
295
- to: this.crypto.getAgentSealerID(accountAgentID),
296
- nOnceMaterial: {
297
- in: account.id,
298
- tx: account.core.nextTransactionID(),
299
- },
300
- });
301
- account.set(`${readKey.id}_for_${accountAgentID}`, sealed, "trusting");
302
- account.set("readKey", readKey.id, "trusting");
303
- const accountOnThisNode = this.expectCoValueLoaded(account.id);
304
- accountOnThisNode._sessionLogs = new Map(account.core.sessionLogs);
305
- accountOnThisNode._cachedContent = undefined;
306
- return new RawControlledAccount(accountOnThisNode, agentSecret);
307
- }
308
- /** @internal */
309
321
  resolveAccountAgent(id, expectation) {
310
322
  if (isAgentID(id)) {
311
323
  return ok(id);
@@ -322,11 +334,11 @@ export class LocalNode {
322
334
  error: e,
323
335
  });
324
336
  }
325
- if (coValue.header.type !== "comap" ||
326
- coValue.header.ruleset.type !== "group" ||
327
- !coValue.header.meta ||
328
- !("type" in coValue.header.meta) ||
329
- coValue.header.meta.type !== "account") {
337
+ if (coValue.verified.header.type !== "comap" ||
338
+ coValue.verified.header.ruleset.type !== "group" ||
339
+ !coValue.verified.header.meta ||
340
+ !("type" in coValue.verified.header.meta) ||
341
+ coValue.verified.header.meta.type !== "account") {
330
342
  return err({
331
343
  type: "UnexpectedlyNotAccount",
332
344
  expectation,
@@ -335,54 +347,21 @@ export class LocalNode {
335
347
  }
336
348
  return ok(coValue.getCurrentContent().currentAgentID());
337
349
  }
338
- resolveAccountAgentAsync(id, expectation) {
339
- if (isAgentID(id)) {
340
- return okAsync(id);
341
- }
342
- return ResultAsync.fromPromise(this.loadCoValueCore(id), (e) => ({
343
- type: "ErrorLoadingCoValueCore",
344
- expectation,
345
- id,
346
- error: e,
347
- })).andThen((coValue) => {
348
- if (coValue === "unavailable") {
349
- return err({
350
- type: "AccountUnavailableFromAllPeers",
351
- expectation,
352
- id,
353
- });
354
- }
355
- if (coValue.header.type !== "comap" ||
356
- coValue.header.ruleset.type !== "group" ||
357
- !coValue.header.meta ||
358
- !("type" in coValue.header.meta) ||
359
- coValue.header.meta.type !== "account") {
360
- return err({
361
- type: "UnexpectedlyNotAccount",
362
- expectation,
363
- id,
364
- });
365
- }
366
- return ok(coValue.getCurrentContent().currentAgentID());
367
- });
368
- }
369
- /**
370
- * @deprecated use Account.createGroup() instead
371
- */
372
350
  createGroup(uniqueness = this.crypto.createdNowUnique()) {
351
+ const account = this.getCurrentAgent();
373
352
  const groupCoValue = this.createCoValue({
374
353
  type: "comap",
375
- ruleset: { type: "group", initialAdmin: this.account.id },
354
+ ruleset: { type: "group", initialAdmin: account.id },
376
355
  meta: null,
377
356
  ...uniqueness,
378
357
  });
379
358
  const group = expectGroup(groupCoValue.getCurrentContent());
380
- group.set(this.account.id, "admin", "trusting");
359
+ group.set(account.id, "admin", "trusting");
381
360
  const readKey = this.crypto.newRandomKeySecret();
382
- group.set(`${readKey.id}_for_${this.account.id}`, this.crypto.seal({
361
+ group.set(`${readKey.id}_for_${account.id}`, this.crypto.seal({
383
362
  message: readKey.secret,
384
- from: this.account.currentSealerSecret(),
385
- to: this.account.currentSealerID(),
363
+ from: account.currentSealerSecret(),
364
+ to: account.currentSealerID(),
386
365
  nOnceMaterial: {
387
366
  in: groupCoValue.id,
388
367
  tx: groupCoValue.nextTransactionID(),
@@ -392,38 +371,33 @@ export class LocalNode {
392
371
  return group;
393
372
  }
394
373
  /** @internal */
395
- testWithDifferentAccount(account, currentSessionID) {
396
- const newNode = new LocalNode(account, currentSessionID, this.crypto);
397
- const coValuesToCopy = Array.from(this.coValuesStore.getEntries());
374
+ cloneWithDifferentAccount(controlledAccountOrAgent) {
375
+ const newNode = new LocalNode(controlledAccountOrAgent.agentSecret, this.crypto.newRandomSessionID(controlledAccountOrAgent.id), this.crypto);
376
+ newNode.cloneVerifiedStateFrom(this);
377
+ return newNode;
378
+ }
379
+ /** @internal */
380
+ cloneVerifiedStateFrom(otherNode) {
381
+ const coValuesToCopy = Array.from(otherNode.coValues.entries());
398
382
  while (coValuesToCopy.length > 0) {
399
- const [coValueID, entry] = coValuesToCopy[coValuesToCopy.length - 1];
400
- if (!entry.isAvailable()) {
383
+ const [coValueID, coValue] = coValuesToCopy[coValuesToCopy.length - 1];
384
+ if (!coValue.isAvailable()) {
401
385
  coValuesToCopy.pop();
402
386
  continue;
403
387
  }
404
388
  else {
405
- const allDepsCopied = entry.core
389
+ const allDepsCopied = coValue
406
390
  .getDependedOnCoValues()
407
- .every((dep) => newNode.coValuesStore.get(dep).isAvailable());
391
+ .every((dep) => this.coValues.get(dep)?.isAvailable());
408
392
  if (!allDepsCopied) {
409
393
  // move to end of queue
410
394
  coValuesToCopy.unshift(coValuesToCopy.pop());
411
395
  continue;
412
396
  }
413
- const newCoValue = new CoValueCore(entry.core.header, newNode, new Map(entry.core.sessionLogs));
414
- newNode.coValuesStore.internalMarkMagicallyAvailable(coValueID, newCoValue);
397
+ this.putCoValue(coValueID, coValue.verified);
415
398
  coValuesToCopy.pop();
416
399
  }
417
400
  }
418
- if (account instanceof RawControlledAccount) {
419
- // To make sure that when we edit the account, we're modifying the correct sessions
420
- const accountInNode = new RawControlledAccount(newNode.expectCoValueLoaded(account.id), account.agentSecret);
421
- if (accountInNode.core.node !== newNode) {
422
- throw new Error("Account's node is not the new node");
423
- }
424
- newNode.account = accountInNode;
425
- }
426
- return newNode;
427
401
  }
428
402
  gracefulShutdown() {
429
403
  this.syncManager.gracefulShutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"localNode.js","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACL,WAAW,GAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,eAAe,EAMf,oBAAoB,EAEpB,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAA+B,SAAS,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;;;;;;;;;EAUE;AACF,MAAM,OAAO,SAAS;IAcpB,6BAA6B;IAC7B,YACE,OAAiC,EACjC,gBAA2B,EAC3B,MAAsB;QAfxB,gBAAgB;QAChB,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAKpC,6BAA6B;QAC7B,gBAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAEpC,YAAO,GAAsB,SAAS,CAAC;QAQrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAyC,EAC3E,aAAa,EACb,eAAe,EACf,SAAS,EACT,MAAM,EACN,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,EAAE,GAOnD;QAMC,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B,IAAI,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,EAC3C,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAC5D,MAAM,CACP,CAAC;QAEF,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAE5D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAChE,OAAO,EACP,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CACtC,CAAC;QAEF,MAAM,wBAAwB,GAC5B,eAAe,CAAC,OAAqC,CAAC;QAExD,IAAI,eAAe,EAAE,CAAC;YACpB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,CAAC,wBAAwB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC;YAC5D,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAU;gBAC9C,IAAI,EAAE,aAAa,CAAC,IAAI;aACzB,CAAC,CAAC;YACH,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,CAChD,wBAAwB,CAAC,IAAI,EAC7B,wBAAwB,CAAC,WAAW,CACrC,CAAC;QAEF,eAAe,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAC5C,eAAe,CAAC,aAAa,CAAC,8BAA8B,CAC1D,iBAAiB,CAAC,EAAE,EACpB,iBAAiB,CAAC,IAAI,CACvB,CAAC;QACF,iBAAiB,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAElD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,iFAAiF;QACjF,SAAS,iCAAiC;YACxC,KAAK,MAAM,YAAY,IAAI,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;gBACrE,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC/B,KAAK,eAAe,CAAC,WAAW,CAAC,kBAAkB,CACjD,YAAY,CAAC,IAAI,CAClB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC,EAAE,CAAC;QAEpC,UAAU,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,wBAAwB,CAAC,EAAE;YACtC,aAAa,EAAE,wBAAwB,CAAC,WAAW;YACnD,SAAS,EAAE,eAAe,CAAC,gBAAgB;SAC5C,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAyC,EACrE,SAAS,EACT,aAAa,EACb,SAAS,EACT,eAAe,EACf,MAAM,EACN,SAAS,GAQV;QACC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,SAAS,CAC/B,IAAI,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,EAC1C,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EACpC,MAAM,CACP,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;YAErC,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,CAChD,OAAO,CAAC,IAAI,EACZ,aAAa,CACd,CAAC;YAEF,gFAAgF;YAChF,MAAM,IAAI,GAAG,WAAW,CAAC,wBAAwB,CAC/C,iBAAiB,EACjB,SAAS,IAAI,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAClD,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;YAE9B,iBAAiB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAC/C,SAAS,EACT,iBAAiB,CAAC,IAAI,CACvB,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAElD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,iBAA+C,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CACrC,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,WAAW,CAC9B,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,aAAa,CAAC,MAAqB;QACjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,EAAE;gBACjE,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEvE,KAAK,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,eAAe,CACnB,EAAW,EACX,mBAA4B;QAE5B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,EAAE;gBAC/D,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEzC,IACE,KAAK,CAAC,cAAc,KAAK,SAAS;gBAClC,KAAK,CAAC,cAAc,KAAK,aAAa,EACtC,CAAC;gBACD,MAAM,KAAK,GACT,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;gBAEjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,aAAa,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACrC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;wBACvC,EAAE;wBACF,GAAG,EAAE,CAAC;qBACP,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;YAExC,IAAI,MAAM,KAAK,aAAa,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEzD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAuB,EAAW;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,EAAO,CAAC;IACvC,CAAC;IAED,SAAS,CAAuB,EAAW;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAO,CAAC;QAC7C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,6BAA6B;IAC7B,SAAS,CACP,EAAW,EACX,QAA6C;QAE7C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,WAAwB,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBACjC,EAAE;gBACF,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,IAAI,CAAC;YACf,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,YAAY,CAChB,mBAA4B,EAC5B,YAA0B;QAE1B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE/D,IAAI,iBAAiB,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,YAAY,CACtB,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAuB,EAC7D,YAAY,CACb,CAAC;QACJ,CAAC;aAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAC7D,0BAA0B,CAAC,YAAY,CAAC,CACzC,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAC9D,IAAI,CACL,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhD,IACE,YAAY,KAAK,OAAO;YACxB,CAAC,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,cAAc,CAAC;YAC5D,CAAC,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,CAAC;YACtD,CAAC,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,cAAc,CAAC;YAC5D,CAAC,YAAY,IAAI,UAAU,KAAK,iBAAiB,CAAC,EAClD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,CAAC,IAAI;aACP,wBAAwB,CACvB,IAAI,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,EACnD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAC9C;aACA,iBAAiB,EAAE,CACvB,CAAC;QAEF,aAAa,CAAC,iBAAiB,CAC7B,IAAI,CAAC,OAAO,EACZ,UAAU,KAAK,aAAa;YAC1B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,UAAU,KAAK,cAAc;gBAC7B,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,UAAU,KAAK,iBAAiB;oBAChC,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,QAAQ,CACjB,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAEtC,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,mBAAmB,CAAC,EAAW,EAAE,WAAoB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAChH,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,gBAAgB;IAChB,mBAAmB,CAAC,EAAgB,EAAE,WAAoB;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAC7B,SAAS,EACT,WAAW,CACZ,CAAC,iBAAiB,EAAgB,CAAC;IACtC,CAAC;IAED,gBAAgB;IAChB,aAAa,CACX,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;QAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,WAAW,CACzB,IAAI,CAAC,aAAa,CAChB,kCAAkC,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAC7D;aACE,wBAAwB,CACvB,IAAI,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAC7C,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAC/C;aACA,iBAAiB,EAAE,CACvB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC;YACnD,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;YAChD,aAAa,EAAE;gBACb,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,QAAQ,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAEvE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAE/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE/D,iBAAiB,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnE,iBAAiB,CAAC,cAAc,GAAG,SAAS,CAAC;QAE7C,OAAO,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;IAChB,mBAAmB,CACjB,EAA0B,EAC1B,WAAoB;QAEpB,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,OAAoB,CAAC;QAEzB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,WAAW;gBACX,EAAE;gBACF,KAAK,EAAE,CAAC;aACsB,CAAC,CAAC;QACpC,CAAC;QAED,IACE,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;YACvC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;YACpB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EACtC,CAAC;YACD,OAAO,GAAG,CAAC;gBACT,IAAI,EAAE,wBAAwB;gBAC9B,WAAW;gBACX,EAAE;aACmC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,EAAE,CAAE,OAAO,CAAC,iBAAiB,EAAiB,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,wBAAwB,CACtB,EAA0B,EAC1B,WAAoB;QAEpB,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,WAAW,CAAC,WAAW,CAC5B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;YACC,IAAI,EAAE,yBAAyB;YAC/B,WAAW;YACX,EAAE;YACF,KAAK,EAAE,CAAC;SACT,CAAgC,CACpC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,OAAO,GAAG,CAAC;oBACT,IAAI,EAAE,gCAAyC;oBAC/C,WAAW;oBACX,EAAE;iBAC2C,CAAC,CAAC;YACnD,CAAC;YAED,IACE,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;gBACvC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;gBACpB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EACtC,CAAC;gBACD,OAAO,GAAG,CAAC;oBACT,IAAI,EAAE,wBAAiC;oBACvC,WAAW;oBACX,EAAE;iBACmC,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,EAAE,CAAE,OAAO,CAAC,iBAAiB,EAAiB,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,WAAW,CACT,aAAgC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACzD,IAAI,EAAE,IAAI;YACV,GAAG,UAAU;SACd,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAE5D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAEjD,KAAK,CAAC,GAAG,CACP,GAAG,OAAO,CAAC,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACxC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClC,aAAa,EAAE;gBACb,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,EAAE,EAAE,YAAY,CAAC,iBAAiB,EAAE;aACrC;SACF,CAAC,EACF,UAAU,CACX,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,wBAAwB,CACtB,OAAiC,EACjC,gBAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtE,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QAEnE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YAEtE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,cAAc,CAAC,GAAG,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI;qBAC7B,qBAAqB,EAAE;qBACvB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,uBAAuB;oBACvB,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAG,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,WAAW,CAChC,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,OAAO,EACP,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;gBAEF,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAClD,SAAS,EACT,UAAU,CACX,CAAC;gBAEF,cAAc,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,YAAY,oBAAoB,EAAE,CAAC;YAC5C,mFAAmF;YACnF,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAC5C,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,EACvC,OAAO,CAAC,WAAW,CACpB,CAAC;YACF,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;QAClC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"localNode.js","sourceRoot":"","sources":["../src/localNode.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { CoValueCore, Transaction } from "./coValueCore.js";
1
+ import { CoValueCore } from "./coValueCore/coValueCore.js";
2
+ import { Transaction } from "./coValueCore/verifiedState.js";
2
3
  import { RawAccountID } from "./coValues/account.js";
3
4
  import { KeyID } from "./crypto/crypto.js";
4
5
  import { AgentID, RawCoID, TransactionID } from "./ids.js";
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAc,YAAY,EAAc,MAAM,uBAAuB,CAAC;AAS7E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,OAAO,EAEP,OAAO,EAEP,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAI9C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAEtE,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,SAAS,GACT,aAAa,GACb,cAAc,GACd,cAAc,GACd,iBAAiB,CAAC;AAOtB,wBAAgB,uBAAuB,SAEtC;AAaD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,EAAE,CAiF5C;AAqWD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,GACT,EAAE,IAAI,eAAe,YAAY,GAAG,OAAO,EAAE,CAE/C;AAED,wBAAgB,sCAAsC,CACpD,EAAE,EAAE,eAAe,YAAY,GAAG,OAAO,EAAE,GAC1C,YAAY,GAAG,OAAO,CAExB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,KAAK,QAAQ,KAAK,EAAE,CAE1E;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,GACT,EAAE,IAAI,GAAG,KAAK,QAAQ,YAAY,GAAG,OAAO,EAAE,CAMhD"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAc,YAAY,EAAc,MAAM,uBAAuB,CAAC;AAS7E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,OAAO,EAEP,OAAO,EAEP,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAI9C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAEtE,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,SAAS,GACT,aAAa,GACb,cAAc,GACd,cAAc,GACd,iBAAiB,CAAC;AAOtB,wBAAgB,uBAAuB,SAEtC;AAaD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,EAAE,CAqF5C;AAsWD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,GACT,EAAE,IAAI,eAAe,YAAY,GAAG,OAAO,EAAE,CAE/C;AAED,wBAAgB,sCAAsC,CACpD,EAAE,EAAE,eAAe,YAAY,GAAG,OAAO,EAAE,GAC1C,YAAY,GAAG,OAAO,CAExB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,KAAK,QAAQ,KAAK,EAAE,CAE1E;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,GACT,EAAE,IAAI,GAAG,KAAK,QAAQ,YAAY,GAAG,OAAO,EAAE,CAMhD"}