cojson 0.20.7 → 0.20.9

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 (209) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/dist/SyncStateManager.d.ts.map +1 -1
  4. package/dist/SyncStateManager.js +0 -2
  5. package/dist/SyncStateManager.js.map +1 -1
  6. package/dist/base64url.d.ts +15 -0
  7. package/dist/base64url.d.ts.map +1 -1
  8. package/dist/base64url.js +101 -5
  9. package/dist/base64url.js.map +1 -1
  10. package/dist/base64url.test.js +76 -1
  11. package/dist/base64url.test.js.map +1 -1
  12. package/dist/coValue.d.ts +2 -1
  13. package/dist/coValue.d.ts.map +1 -1
  14. package/dist/coValue.js.map +1 -1
  15. package/dist/coValueCore/coValueCore.d.ts +9 -11
  16. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  17. package/dist/coValueCore/coValueCore.js +92 -65
  18. package/dist/coValueCore/coValueCore.js.map +1 -1
  19. package/dist/coValueCore/verifiedState.d.ts +38 -7
  20. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  21. package/dist/coValueCore/verifiedState.js +226 -30
  22. package/dist/coValueCore/verifiedState.js.map +1 -1
  23. package/dist/coValues/binaryCoStream.d.ts +63 -0
  24. package/dist/coValues/binaryCoStream.d.ts.map +1 -0
  25. package/dist/coValues/binaryCoStream.js +125 -0
  26. package/dist/coValues/binaryCoStream.js.map +1 -0
  27. package/dist/coValues/coList.d.ts +3 -1
  28. package/dist/coValues/coList.d.ts.map +1 -1
  29. package/dist/coValues/coList.js +15 -6
  30. package/dist/coValues/coList.js.map +1 -1
  31. package/dist/coValues/coMap.d.ts +1 -1
  32. package/dist/coValues/coMap.d.ts.map +1 -1
  33. package/dist/coValues/coMap.js +2 -2
  34. package/dist/coValues/coMap.js.map +1 -1
  35. package/dist/coValues/coStream.d.ts +0 -38
  36. package/dist/coValues/coStream.d.ts.map +1 -1
  37. package/dist/coValues/coStream.js +0 -86
  38. package/dist/coValues/coStream.js.map +1 -1
  39. package/dist/coValues/group.d.ts +44 -6
  40. package/dist/coValues/group.d.ts.map +1 -1
  41. package/dist/coValues/group.js +198 -17
  42. package/dist/coValues/group.js.map +1 -1
  43. package/dist/coreToCoValue.d.ts +2 -1
  44. package/dist/coreToCoValue.d.ts.map +1 -1
  45. package/dist/coreToCoValue.js +2 -1
  46. package/dist/coreToCoValue.js.map +1 -1
  47. package/dist/crypto/NapiCrypto.d.ts +18 -24
  48. package/dist/crypto/NapiCrypto.d.ts.map +1 -1
  49. package/dist/crypto/NapiCrypto.js +98 -60
  50. package/dist/crypto/NapiCrypto.js.map +1 -1
  51. package/dist/crypto/RNCrypto.d.ts +16 -3
  52. package/dist/crypto/RNCrypto.d.ts.map +1 -1
  53. package/dist/crypto/RNCrypto.js +117 -54
  54. package/dist/crypto/RNCrypto.js.map +1 -1
  55. package/dist/crypto/WasmCrypto.d.ts +18 -24
  56. package/dist/crypto/WasmCrypto.d.ts.map +1 -1
  57. package/dist/crypto/WasmCrypto.js +100 -61
  58. package/dist/crypto/WasmCrypto.js.map +1 -1
  59. package/dist/crypto/crypto.d.ts +55 -19
  60. package/dist/crypto/crypto.d.ts.map +1 -1
  61. package/dist/crypto/crypto.js +14 -3
  62. package/dist/crypto/crypto.js.map +1 -1
  63. package/dist/exports.d.ts +7 -3
  64. package/dist/exports.d.ts.map +1 -1
  65. package/dist/exports.js +4 -2
  66. package/dist/exports.js.map +1 -1
  67. package/dist/localNode.d.ts +3 -1
  68. package/dist/localNode.d.ts.map +1 -1
  69. package/dist/localNode.js +10 -3
  70. package/dist/localNode.js.map +1 -1
  71. package/dist/media.d.ts +1 -1
  72. package/dist/media.d.ts.map +1 -1
  73. package/dist/permissions.d.ts +2 -1
  74. package/dist/permissions.d.ts.map +1 -1
  75. package/dist/permissions.js +19 -3
  76. package/dist/permissions.js.map +1 -1
  77. package/dist/storage/sqliteAsync/client.d.ts +24 -12
  78. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  79. package/dist/storage/sqliteAsync/client.js +70 -58
  80. package/dist/storage/sqliteAsync/client.js.map +1 -1
  81. package/dist/storage/sqliteAsync/types.d.ts +1 -1
  82. package/dist/storage/sqliteAsync/types.d.ts.map +1 -1
  83. package/dist/storage/types.d.ts +1 -0
  84. package/dist/storage/types.d.ts.map +1 -1
  85. package/dist/sync.d.ts.map +1 -1
  86. package/dist/sync.js +7 -1
  87. package/dist/sync.js.map +1 -1
  88. package/dist/tests/CojsonMessageChannel.test.js +2 -2
  89. package/dist/tests/SQLiteClientAsync.test.d.ts +2 -0
  90. package/dist/tests/SQLiteClientAsync.test.d.ts.map +1 -0
  91. package/dist/tests/SQLiteClientAsync.test.js +64 -0
  92. package/dist/tests/SQLiteClientAsync.test.js.map +1 -0
  93. package/dist/tests/StorageApiAsync.test.js +2 -8
  94. package/dist/tests/StorageApiAsync.test.js.map +1 -1
  95. package/dist/tests/SyncStateManager.test.js +2 -2
  96. package/dist/tests/WasmCrypto.test.js +1 -15
  97. package/dist/tests/WasmCrypto.test.js.map +1 -1
  98. package/dist/tests/coList.test.js +24 -5
  99. package/dist/tests/coList.test.js.map +1 -1
  100. package/dist/tests/coStream.test.js +4 -3
  101. package/dist/tests/coStream.test.js.map +1 -1
  102. package/dist/tests/coValueCore.initTransaction.test.d.ts +2 -0
  103. package/dist/tests/coValueCore.initTransaction.test.d.ts.map +1 -0
  104. package/dist/tests/coValueCore.initTransaction.test.js +438 -0
  105. package/dist/tests/coValueCore.initTransaction.test.js.map +1 -0
  106. package/dist/tests/coValueCore.test.js +11 -19
  107. package/dist/tests/coValueCore.test.js.map +1 -1
  108. package/dist/tests/crypto.test.js +83 -0
  109. package/dist/tests/crypto.test.js.map +1 -1
  110. package/dist/tests/deleteCoValue.test.js +5 -5
  111. package/dist/tests/deleteCoValue.test.js.map +1 -1
  112. package/dist/tests/group.inheritance.test.js +11 -0
  113. package/dist/tests/group.inheritance.test.js.map +1 -1
  114. package/dist/tests/group.test.js +24 -1
  115. package/dist/tests/group.test.js.map +1 -1
  116. package/dist/tests/groupSealer.test.d.ts +2 -0
  117. package/dist/tests/groupSealer.test.d.ts.map +1 -0
  118. package/dist/tests/groupSealer.test.js +913 -0
  119. package/dist/tests/groupSealer.test.js.map +1 -0
  120. package/dist/tests/setup.js +5 -0
  121. package/dist/tests/setup.js.map +1 -1
  122. package/dist/tests/sync.auth.test.js +10 -10
  123. package/dist/tests/sync.concurrentLoad.test.js +12 -12
  124. package/dist/tests/sync.deleted.test.js +8 -8
  125. package/dist/tests/sync.garbageCollection.test.js +10 -10
  126. package/dist/tests/sync.invite.test.js +12 -12
  127. package/dist/tests/sync.known.test.js +2 -2
  128. package/dist/tests/sync.load.test.js +107 -107
  129. package/dist/tests/sync.mesh.test.js +164 -46
  130. package/dist/tests/sync.mesh.test.js.map +1 -1
  131. package/dist/tests/sync.multipleServers.test.js +43 -43
  132. package/dist/tests/sync.peerReconciliation.test.js +29 -29
  133. package/dist/tests/sync.sharding.test.js +3 -3
  134. package/dist/tests/sync.storage.test.js +104 -104
  135. package/dist/tests/sync.storage.test.js.map +1 -1
  136. package/dist/tests/sync.storageAsync.test.js +56 -56
  137. package/dist/tests/sync.upload.test.js +22 -22
  138. package/dist/tests/testStorage.d.ts +2 -0
  139. package/dist/tests/testStorage.d.ts.map +1 -1
  140. package/dist/tests/testStorage.js +30 -6
  141. package/dist/tests/testStorage.js.map +1 -1
  142. package/dist/typeUtils/isCoValue.js +1 -1
  143. package/dist/typeUtils/isCoValue.js.map +1 -1
  144. package/package.json +4 -4
  145. package/src/SyncStateManager.ts +0 -2
  146. package/src/base64url.test.ts +89 -1
  147. package/src/base64url.ts +134 -6
  148. package/src/coValue.ts +2 -1
  149. package/src/coValueCore/coValueCore.ts +126 -84
  150. package/src/coValueCore/verifiedState.ts +335 -53
  151. package/src/coValues/binaryCoStream.ts +217 -0
  152. package/src/coValues/coList.ts +21 -8
  153. package/src/coValues/coMap.ts +3 -0
  154. package/src/coValues/coStream.ts +0 -170
  155. package/src/coValues/group.ts +270 -21
  156. package/src/coreToCoValue.ts +2 -1
  157. package/src/crypto/NapiCrypto.ts +198 -95
  158. package/src/crypto/RNCrypto.ts +229 -102
  159. package/src/crypto/WasmCrypto.ts +201 -95
  160. package/src/crypto/crypto.ts +118 -45
  161. package/src/exports.ts +11 -5
  162. package/src/localNode.ts +17 -1
  163. package/src/media.ts +1 -1
  164. package/src/permissions.ts +30 -7
  165. package/src/storage/sqliteAsync/client.ts +136 -115
  166. package/src/storage/sqliteAsync/types.ts +3 -1
  167. package/src/storage/types.ts +4 -0
  168. package/src/sync.ts +10 -1
  169. package/src/tests/CojsonMessageChannel.test.ts +2 -2
  170. package/src/tests/SQLiteClientAsync.test.ts +75 -0
  171. package/src/tests/StorageApiAsync.test.ts +4 -9
  172. package/src/tests/SyncStateManager.test.ts +2 -2
  173. package/src/tests/WasmCrypto.test.ts +1 -25
  174. package/src/tests/coList.test.ts +39 -5
  175. package/src/tests/coStream.test.ts +4 -5
  176. package/src/tests/coValueCore.initTransaction.test.ts +836 -0
  177. package/src/tests/coValueCore.test.ts +11 -22
  178. package/src/tests/crypto.test.ts +107 -0
  179. package/src/tests/deleteCoValue.test.ts +5 -5
  180. package/src/tests/group.inheritance.test.ts +16 -0
  181. package/src/tests/group.test.ts +29 -1
  182. package/src/tests/groupSealer.test.ts +1473 -0
  183. package/src/tests/setup.ts +6 -0
  184. package/src/tests/sync.auth.test.ts +10 -10
  185. package/src/tests/sync.concurrentLoad.test.ts +12 -12
  186. package/src/tests/sync.deleted.test.ts +8 -8
  187. package/src/tests/sync.garbageCollection.test.ts +10 -10
  188. package/src/tests/sync.invite.test.ts +12 -12
  189. package/src/tests/sync.known.test.ts +2 -2
  190. package/src/tests/sync.load.test.ts +107 -107
  191. package/src/tests/sync.mesh.test.ts +189 -46
  192. package/src/tests/sync.multipleServers.test.ts +43 -43
  193. package/src/tests/sync.peerReconciliation.test.ts +29 -29
  194. package/src/tests/sync.sharding.test.ts +3 -3
  195. package/src/tests/sync.storage.test.ts +104 -104
  196. package/src/tests/sync.storageAsync.test.ts +56 -56
  197. package/src/tests/sync.upload.test.ts +22 -22
  198. package/src/tests/testStorage.ts +39 -9
  199. package/src/typeUtils/isCoValue.ts +1 -1
  200. package/dist/coValueCore/SessionMap.d.ts +0 -55
  201. package/dist/coValueCore/SessionMap.d.ts.map +0 -1
  202. package/dist/coValueCore/SessionMap.js +0 -206
  203. package/dist/coValueCore/SessionMap.js.map +0 -1
  204. package/dist/tests/coreWasm.test.d.ts +0 -2
  205. package/dist/tests/coreWasm.test.d.ts.map +0 -1
  206. package/dist/tests/coreWasm.test.js +0 -203
  207. package/dist/tests/coreWasm.test.js.map +0 -1
  208. package/src/coValueCore/SessionMap.ts +0 -394
  209. package/src/tests/coreWasm.test.ts +0 -452
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- var _CoValueCore_instances, _CoValueCore_lastKnownStateSource, _CoValueCore_lastKnownState, _CoValueCore_isDeleteTransaction, _CoValueCore_markAsDeleted, _CoValueCore_getDeleteMarker, _CoValueCore_canAuthorDeleteCoValueAtTime, _CoValueCore_isNotificationScheduled, _CoValueCore_batchedUpdates, _CoValueCore_isNotifyUpdatePaused;
12
+ var _CoValueCore_instances, _CoValueCore_lastKnownStateSource, _CoValueCore_lastKnownState, _CoValueCore_isDeleteTransaction, _CoValueCore_markAsDeleted, _CoValueCore_getDeleteMarker, _CoValueCore_canAuthorDeleteCoValueAtTime, _CoValueCore_isNotificationScheduled, _CoValueCore_batchedUpdates, _CoValueCore_isContentRebuildScheduled, _CoValueCore_isNotifyUpdatePaused, _CoValueCore_fwwWinners;
13
13
  import { ValueType, metrics } from "@opentelemetry/api";
14
14
  import { coreToCoValue } from "../coreToCoValue.js";
15
15
  import { isDeleteSessionID, } from "../ids.js";
@@ -19,39 +19,10 @@ import { accountOrAgentIDfromSessionID } from "../typeUtils/accountOrAgentIDfrom
19
19
  import { expectGroup } from "../typeUtils/expectGroup.js";
20
20
  import { getDependenciesFromContentMessage, getDependenciesFromGroupRawTransactions, getDependenciesFromHeader, } from "./utils.js";
21
21
  import { VerifiedState, } from "./verifiedState.js";
22
- import { SessionMap } from "./SessionMap.js";
23
22
  import { createBranch, getBranchId, getBranchOwnerId, getBranchSource, mergeBranch, } from "./branching.js";
24
23
  import { decryptTransactionChangesAndMeta } from "./decryptTransactionChangesAndMeta.js";
25
24
  import { cloneKnownState, combineKnownStateSessions, emptyKnownState, } from "../knownState.js";
26
25
  import { safeParseJSON } from "../jsonStringify.js";
27
- function validateUniqueness(uniqueness) {
28
- if (typeof uniqueness === "number" && !Number.isInteger(uniqueness)) {
29
- return {
30
- isOk: false,
31
- message: "Uniqueness cannot be a non-integer number, got " + uniqueness,
32
- };
33
- }
34
- if (Array.isArray(uniqueness)) {
35
- return {
36
- isOk: false,
37
- message: "Uniqueness cannot be an array, got " + uniqueness,
38
- };
39
- }
40
- if (typeof uniqueness === "object" && uniqueness !== null) {
41
- for (let [key, value] of Object.entries(uniqueness)) {
42
- if (typeof value !== "string") {
43
- return {
44
- isOk: false,
45
- message: "Uniqueness object values must be a string, got " +
46
- value +
47
- " for key " +
48
- key,
49
- };
50
- }
51
- }
52
- }
53
- return { isOk: true };
54
- }
55
26
  export function idforHeader(header, crypto) {
56
27
  const hash = crypto.shortHash(header);
57
28
  return `co_z${hash.slice("shortHash_z".length)}`;
@@ -62,11 +33,15 @@ export function enablePermissionErrors() {
62
33
  }
63
34
  export class VerifiedTransaction {
64
35
  constructor(coValueId, sessionID, txIndex, tx, branchId, parsingCache, previous, dispatchTransaction) {
65
- this.isValidated = false;
66
36
  // Whether the transaction is valid, as per membership rules
67
37
  this.isValid = false;
68
38
  // The error message that caused the transaction to be invalid
69
39
  this.validationErrorMessage = undefined;
40
+ // Transaction processing stage:
41
+ // - "to-validate": Transaction is pending validation on permissions checks
42
+ // - "validated": Transaction has been validated but not yet applied to content
43
+ // - "processed": Transaction has been validated and applied to content
44
+ this.stage = "to-validate";
70
45
  this.dispatchTransaction = dispatchTransaction;
71
46
  this.author = accountOrAgentIDfromSessionID(sessionID);
72
47
  const txID = branchId
@@ -113,16 +88,23 @@ export class VerifiedTransaction {
113
88
  isValidTransactionWithChanges() {
114
89
  return Boolean(this.isValid && this.changes);
115
90
  }
91
+ isProcessable(includeInvalidMetaTransactions) {
92
+ return Boolean(this.changes && (includeInvalidMetaTransactions || this.isValid));
93
+ }
116
94
  markValid() {
95
+ const validityChanged = this.isValid === false;
117
96
  this.isValid = true;
118
97
  this.validationErrorMessage = undefined;
119
- if (!this.isValidated) {
120
- this.isValidated = true;
98
+ if (this.stage === "to-validate") {
99
+ this.stage = "validated";
100
+ this.dispatchTransaction(this);
101
+ }
102
+ if (this.stage === "processed" && validityChanged) {
121
103
  this.dispatchTransaction(this);
122
104
  }
123
105
  }
124
106
  markInvalid(errorMessage, attributes) {
125
- this.isValidated = true;
107
+ const validityChanged = this.isValid === true;
126
108
  this.isValid = false;
127
109
  this.validationErrorMessage = errorMessage;
128
110
  if (logPermissionErrors === true) {
@@ -133,6 +115,18 @@ export class VerifiedTransaction {
133
115
  ...attributes,
134
116
  });
135
117
  }
118
+ if (this.stage === "processed" && validityChanged) {
119
+ this.dispatchTransaction(this);
120
+ }
121
+ if (this.stage === "to-validate") {
122
+ this.stage = "validated";
123
+ }
124
+ }
125
+ markAsProcessed() {
126
+ this.stage = "processed";
127
+ }
128
+ markAsToValidate() {
129
+ this.stage = "to-validate";
136
130
  }
137
131
  }
138
132
  export class CoValueCore {
@@ -167,6 +161,7 @@ export class CoValueCore {
167
161
  this.newContentQueue = [];
168
162
  _CoValueCore_isNotificationScheduled.set(this, false);
169
163
  _CoValueCore_batchedUpdates.set(this, false);
164
+ _CoValueCore_isContentRebuildScheduled.set(this, false);
170
165
  _CoValueCore_isNotifyUpdatePaused.set(this, false);
171
166
  // The list of merge commits that have been made
172
167
  this.mergeCommits = [];
@@ -182,10 +177,14 @@ export class CoValueCore {
182
177
  this.lastVerifiedTransactionBySessionID = {};
183
178
  this.parsingCache = new Map();
184
179
  this.dispatchTransaction = (transaction) => {
185
- if (!transaction.isValidated) {
180
+ if (transaction.stage === "to-validate") {
186
181
  this.toValidateTransactions.push(transaction);
187
182
  return;
188
183
  }
184
+ if (transaction.stage === "processed") {
185
+ this.scheduleContentRebuild();
186
+ return;
187
+ }
189
188
  if (transaction.changes) {
190
189
  this.toProcessTransactions.push(transaction);
191
190
  }
@@ -196,6 +195,7 @@ export class CoValueCore {
196
195
  this.toParseMetaTransactions.push(transaction);
197
196
  }
198
197
  };
198
+ _CoValueCore_fwwWinners.set(this, new Map());
199
199
  /**
200
200
  * The CoValues that this CoValue depends on.
201
201
  * We currently track dependencies for:
@@ -430,25 +430,24 @@ export class CoValueCore {
430
430
  }
431
431
  }
432
432
  provideHeader(header, streamingKnownState, skipVerify) {
433
- if (!skipVerify) {
434
- const validation = validateUniqueness(header.uniqueness);
435
- if (!validation.isOk) {
436
- logger.error("Invalid uniqueness", {
437
- header,
438
- errorMessage: validation.message,
439
- });
440
- return false;
441
- }
442
- const expectedId = idforHeader(header, this.node.crypto);
443
- if (this.id !== expectedId) {
444
- return false;
445
- }
446
- }
447
- this.addDependencyFromHeader(header);
448
- if (this._verified?.sessions.size) {
433
+ if (this._verified?.sessionCount) {
449
434
  throw new Error("CoValueCore: provideHeader called on coValue with verified sessions present!");
450
435
  }
451
- this._verified = new VerifiedState(this.id, this.node.crypto, header, new SessionMap(this.id, this.node.crypto, streamingKnownState));
436
+ // Create VerifiedState - Rust validates uniqueness and id match unless skipVerify is true
437
+ try {
438
+ this._verified = new VerifiedState(this.id, this.node.crypto, header, streamingKnownState, skipVerify);
439
+ }
440
+ catch (e) {
441
+ // Rust validation failed (invalid uniqueness or id mismatch)
442
+ logger.error("Header validation failed", {
443
+ id: this.id,
444
+ header,
445
+ error: e instanceof Error ? e.message : String(e),
446
+ });
447
+ return false;
448
+ }
449
+ // Only add dependencies after successful validation
450
+ this.addDependencyFromHeader(header);
452
451
  // Clean up if transitioning from garbageCollected/onlyKnownState
453
452
  if (this.isAvailable()) {
454
453
  this.cleanupLastKnownState();
@@ -479,23 +478,19 @@ export class CoValueCore {
479
478
  */
480
479
  knownStateWithStreaming() {
481
480
  if (this.verified) {
482
- return this.verified.immutableKnownStateWithStreaming();
481
+ return this.verified.knownStateWithStreaming();
483
482
  }
484
483
  return this.knownState();
485
484
  }
486
485
  /**
487
486
  * Returns the known state of the CoValue
488
487
  *
489
- * The return value identity is going to be stable as long as the CoValue is not modified.
490
- *
491
- * On change the knownState is invalidated and a new object is returned.
492
- *
493
488
  * For garbageCollected/onlyKnownState CoValues, returns the cached knownState.
494
489
  */
495
490
  knownState() {
496
491
  // 1. If we have verified content in memory, use that (authoritative)
497
492
  if (this.verified) {
498
- return this.verified.immutableKnownState();
493
+ return this.verified.knownState();
499
494
  }
500
495
  // 2. If we have last known state (GC'd or onlyKnownState), use that
501
496
  if (__classPrivateFieldGet(this, _CoValueCore_lastKnownState, "f")) {
@@ -538,7 +533,7 @@ export class CoValueCore {
538
533
  : this.node.currentSessionID;
539
534
  return {
540
535
  sessionID,
541
- txIndex: this.verified.sessions.get(sessionID)?.transactions.length || 0,
536
+ txIndex: this.verified.getTransactionsCount(sessionID) || 0,
542
537
  };
543
538
  }
544
539
  addDependenciesFromContentMessage(newContent) {
@@ -641,6 +636,16 @@ export class CoValueCore {
641
636
  });
642
637
  }
643
638
  }
639
+ scheduleContentRebuild() {
640
+ if (!this._cachedContent || __classPrivateFieldGet(this, _CoValueCore_isContentRebuildScheduled, "f")) {
641
+ return;
642
+ }
643
+ __classPrivateFieldSet(this, _CoValueCore_isContentRebuildScheduled, true, "f");
644
+ queueMicrotask(() => {
645
+ __classPrivateFieldSet(this, _CoValueCore_isContentRebuildScheduled, false, "f");
646
+ this._cachedContent?.rebuildFromCore();
647
+ });
648
+ }
644
649
  pauseNotifyUpdate() {
645
650
  __classPrivateFieldSet(this, _CoValueCore_isNotifyUpdatePaused, true, "f");
646
651
  }
@@ -823,13 +828,14 @@ export class CoValueCore {
823
828
  // Store the validity of the transactions before resetting the parsed transactions
824
829
  const validityBeforeReset = new Array(verifiedTransactions.length);
825
830
  this.verifiedTransactions.forEach((transaction, index) => {
826
- transaction.isValidated = false;
831
+ transaction.markAsToValidate();
827
832
  validityBeforeReset[index] = transaction.isValidTransactionWithChanges();
828
833
  });
829
834
  this.toValidateTransactions = verifiedTransactions.slice();
830
835
  this.toProcessTransactions = [];
831
836
  this.toDecryptTransactions = [];
832
837
  this.toParseMetaTransactions = [];
838
+ __classPrivateFieldGet(this, _CoValueCore_fwwWinners, "f").clear();
833
839
  this.parseNewTransactions(false);
834
840
  // Check if the validity of the transactions has changed after resetting the parsed transactions
835
841
  // If it has, we need to rebuild the content to reflect the new validity
@@ -853,7 +859,7 @@ export class CoValueCore {
853
859
  return;
854
860
  }
855
861
  const isBranched = this.isBranched();
856
- for (const [sessionID, sessionLog] of this.verified.sessions.entries()) {
862
+ for (const [sessionID, sessionLog] of this.verified.sessionEntries()) {
857
863
  const count = this.verifiedTransactionsKnownSessions[sessionID] ?? 0;
858
864
  for (let txIndex = count; txIndex < sessionLog.transactions.length; txIndex++) {
859
865
  const tx = sessionLog.transactions[txIndex];
@@ -917,6 +923,22 @@ export class CoValueCore {
917
923
  const mergeCommit = transaction.meta;
918
924
  this.mergeCommits.push(mergeCommit);
919
925
  }
926
+ if ("fww" in transaction.meta) {
927
+ const fwwKey = transaction.meta.fww;
928
+ const currentWinner = __classPrivateFieldGet(this, _CoValueCore_fwwWinners, "f").get(fwwKey);
929
+ // First-writer-wins: keep the transaction with the smallest madeAt
930
+ // compareTransactions returns < 0 if transaction is earlier than currentWinner
931
+ if (!currentWinner ||
932
+ this.compareTransactions(transaction, currentWinner) < 0) {
933
+ if (currentWinner) {
934
+ currentWinner.markInvalid(`Transaction is not the first writer for fww key "${fwwKey}"`);
935
+ }
936
+ __classPrivateFieldGet(this, _CoValueCore_fwwWinners, "f").set(fwwKey, transaction);
937
+ }
938
+ else {
939
+ transaction.markInvalid(`Transaction is not the first writer for fww key "${fwwKey}"`);
940
+ }
941
+ }
920
942
  // Check if the transaction has been merged from a branch
921
943
  if ("mi" in transaction.meta) {
922
944
  const meta = transaction.meta;
@@ -991,9 +1013,12 @@ export class CoValueCore {
991
1013
  const from = options?.from;
992
1014
  const to = options?.to;
993
1015
  const knownTransactions = options?.knownTransactions?.[this.id] ?? 0;
1016
+ // Include invalid transactions in the result (only transactions invalidated by metadata parsing are included e.g. init transactions)
1017
+ // permission errors are still not included
1018
+ const includeInvalidMetaTransactions = options?.includeInvalidMetaTransactions ?? false;
994
1019
  for (let i = knownTransactions; i < this.toProcessTransactions.length; i++) {
995
1020
  const transaction = this.toProcessTransactions[i];
996
- if (!transaction.isValidTransactionWithChanges()) {
1021
+ if (!transaction.isProcessable(includeInvalidMetaTransactions)) {
997
1022
  continue;
998
1023
  }
999
1024
  // Using the currentTxID to filter the transactions, because the TxID is modified by the merge meta
@@ -1005,6 +1030,7 @@ export class CoValueCore {
1005
1030
  if (fromIdx > txID.txIndex || toIdx < txID.txIndex) {
1006
1031
  continue;
1007
1032
  }
1033
+ transaction.markAsProcessed();
1008
1034
  matchingTransactions.push(transaction);
1009
1035
  }
1010
1036
  if (options?.knownTransactions !== undefined) {
@@ -1013,6 +1039,7 @@ export class CoValueCore {
1013
1039
  // If this is a branch, we load the valid transactions from the source
1014
1040
  if (source && this.branchStart && !options?.skipBranchSource) {
1015
1041
  const sourceTransactions = source.getValidTransactions({
1042
+ includeInvalidMetaTransactions,
1016
1043
  knownTransactions: options?.knownTransactions,
1017
1044
  to: this.branchStart,
1018
1045
  ignorePrivateTransactions: options?.ignorePrivateTransactions ?? false,
@@ -1203,7 +1230,7 @@ export class CoValueCore {
1203
1230
  return group;
1204
1231
  }
1205
1232
  getTx(txID) {
1206
- return this.verified?.sessions.get(txID.sessionID)?.transactions[txID.txIndex];
1233
+ return this.verified?.getSession(txID.sessionID)?.transactions[txID.txIndex];
1207
1234
  }
1208
1235
  getDependedOnCoValues() {
1209
1236
  return this.dependencies;
@@ -1350,7 +1377,7 @@ export class CoValueCore {
1350
1377
  }, true);
1351
1378
  }
1352
1379
  }
1353
- _CoValueCore_lastKnownStateSource = new WeakMap(), _CoValueCore_lastKnownState = new WeakMap(), _CoValueCore_isNotificationScheduled = new WeakMap(), _CoValueCore_batchedUpdates = new WeakMap(), _CoValueCore_isNotifyUpdatePaused = new WeakMap(), _CoValueCore_instances = new WeakSet(), _CoValueCore_isDeleteTransaction = function _CoValueCore_isDeleteTransaction(sessionID, newTransactions, skipVerify) {
1380
+ _CoValueCore_lastKnownStateSource = new WeakMap(), _CoValueCore_lastKnownState = new WeakMap(), _CoValueCore_isNotificationScheduled = new WeakMap(), _CoValueCore_batchedUpdates = new WeakMap(), _CoValueCore_isContentRebuildScheduled = new WeakMap(), _CoValueCore_isNotifyUpdatePaused = new WeakMap(), _CoValueCore_fwwWinners = new WeakMap(), _CoValueCore_instances = new WeakSet(), _CoValueCore_isDeleteTransaction = function _CoValueCore_isDeleteTransaction(sessionID, newTransactions, skipVerify) {
1354
1381
  if (!this.verified) {
1355
1382
  return {
1356
1383
  value: false,
@@ -1363,7 +1390,7 @@ _CoValueCore_lastKnownStateSource = new WeakMap(), _CoValueCore_lastKnownState =
1363
1390
  // - have meta `{ deleted: true }`
1364
1391
  let deleteTransaction = undefined;
1365
1392
  if (isDeleteSessionID(sessionID)) {
1366
- const txCount = this.verified.sessions.get(sessionID)?.transactions.length ?? 0;
1393
+ const txCount = this.verified.getTransactionsCount(sessionID) ?? 0;
1367
1394
  if (txCount > 0 || newTransactions.length > 1) {
1368
1395
  return {
1369
1396
  value: true,
@@ -1 +1 @@
1
- {"version":3,"file":"coValueCore.js","sourceRoot":"","sources":["../../src/coValueCore/coValueCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coValueCore.js","sourceRoot":"","sources":["../../src/coValueCore/coValueCore.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { Stringified } from "../jsonStringify.js";
5
5
  import { JsonObject, JsonValue } from "../jsonValue.js";
6
6
  import { PermissionsDef as RulesetDef } from "../permissions.js";
7
7
  import { NewContentMessage } from "../sync.js";
8
- import { SessionMap } from "./SessionMap.js";
9
8
  import { ControlledAccountOrAgent } from "../coValues/account.js";
10
9
  import { CoValueKnownState, KnownStateSessions } from "../knownState.js";
11
10
  export type CoValueHeader = {
@@ -40,17 +39,47 @@ export type TrustingTransaction = {
40
39
  meta?: Stringified<JsonObject>;
41
40
  };
42
41
  export type Transaction = PrivateTransaction | TrustingTransaction;
42
+ export type SessionLog = {
43
+ signerID?: SignerID;
44
+ transactions: Transaction[];
45
+ lastSignature: Signature | undefined;
46
+ signatureAfter: {
47
+ [txIdx: number]: Signature | undefined;
48
+ };
49
+ sessionID: SessionID;
50
+ };
43
51
  export declare class VerifiedState {
44
52
  readonly id: RawCoID;
45
53
  readonly crypto: CryptoProvider;
46
54
  readonly header: CoValueHeader;
47
- readonly sessions: SessionMap;
55
+ private readonly impl;
48
56
  lastAccessed: number | undefined;
49
57
  branchSourceId?: RawCoID;
50
58
  branchName?: string;
51
59
  private isDeleted;
52
- constructor(id: RawCoID, crypto: CryptoProvider, header: CoValueHeader, sessions?: SessionMap);
53
- clone(): VerifiedState;
60
+ private sessionLogCache;
61
+ private sessionLogCacheValid;
62
+ private cachedKnownState;
63
+ private cachedKnownStateWithStreaming;
64
+ constructor(id: RawCoID, crypto: CryptoProvider, header: CoValueHeader, streamingKnownState?: KnownStateSessions, skipVerify?: boolean);
65
+ private invalidateCache;
66
+ private invalidateKnownStateCache;
67
+ /**
68
+ * Update the session log cache directly when adding transactions.
69
+ * This avoids round-trips to Rust on subsequent reads.
70
+ */
71
+ private updateSessionLogCache;
72
+ /**
73
+ * Update the signatureAfter map with the latest checkpoint signature.
74
+ * Used when updating cache incrementally.
75
+ */
76
+ private updateLastCheckpointSignature;
77
+ /**
78
+ * Build the signatureAfter map for a session by iterating through all checkpoints.
79
+ * Used when building a fresh SessionLog from Rust data.
80
+ */
81
+ private buildSignatureAfterMap;
82
+ private getSessionLog;
54
83
  markAsDeleted(): void;
55
84
  tryAddTransactions(sessionID: SessionID, signerID: SignerID | undefined, newTransactions: Transaction[], newSignature: Signature, skipVerify?: boolean): void;
56
85
  makeNewTrustingTransaction(sessionID: SessionID, signerAgent: ControlledAccountOrAgent, changes: JsonValue[], meta: JsonObject | undefined, madeAt: number): {
@@ -61,13 +90,15 @@ export declare class VerifiedState {
61
90
  signature: Signature;
62
91
  transaction: Transaction;
63
92
  };
64
- getLastSignatureCheckpoint(sessionID: SessionID): number;
65
93
  setStreamingKnownState(streamingKnownState: KnownStateSessions): void;
94
+ getSession(sessionID: SessionID): SessionLog | undefined;
95
+ getTransactionsCount(sessionID: SessionID): number | undefined;
96
+ get sessionCount(): number;
97
+ getSessions(): Map<SessionID, SessionLog>;
98
+ sessionEntries(): IterableIterator<[SessionID, SessionLog]>;
66
99
  newContentSince(knownState: CoValueKnownState | undefined): NewContentMessage[] | undefined;
67
100
  knownState(): CoValueKnownState;
68
101
  knownStateWithStreaming(): CoValueKnownState;
69
- immutableKnownState(): CoValueKnownState;
70
- immutableKnownStateWithStreaming(): CoValueKnownState;
71
102
  isStreaming(): boolean;
72
103
  decryptTransaction(sessionID: SessionID, txIndex: number, keySecret: KeySecret): JsonValue[] | undefined;
73
104
  decryptTransactionMeta(sessionID: SessionID, txIndex: number, keySecret: KeySecret): JsonObject | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"verifiedState.d.ts","sourceRoot":"","sources":["../../src/coValueCore/verifiedState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifiedState.d.ts","sourceRoot":"","sources":["../../src/coValueCore/verifiedState.ts"],"names":[],"mappings":"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"}