cojson 0.13.10 → 0.13.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +15 -0
  3. package/dist/CoValuesStore.d.ts +3 -1
  4. package/dist/CoValuesStore.d.ts.map +1 -1
  5. package/dist/CoValuesStore.js +7 -6
  6. package/dist/CoValuesStore.js.map +1 -1
  7. package/dist/PeerKnownStates.d.ts +5 -25
  8. package/dist/PeerKnownStates.d.ts.map +1 -1
  9. package/dist/PeerKnownStates.js +7 -20
  10. package/dist/PeerKnownStates.js.map +1 -1
  11. package/dist/PeerState.d.ts +14 -9
  12. package/dist/PeerState.d.ts.map +1 -1
  13. package/dist/PeerState.js +51 -8
  14. package/dist/PeerState.js.map +1 -1
  15. package/dist/SyncStateManager.js +2 -2
  16. package/dist/SyncStateManager.js.map +1 -1
  17. package/dist/coValueCore.js +2 -2
  18. package/dist/coValueCore.js.map +1 -1
  19. package/dist/coValueState.d.ts +21 -46
  20. package/dist/coValueState.d.ts.map +1 -1
  21. package/dist/coValueState.js +174 -246
  22. package/dist/coValueState.js.map +1 -1
  23. package/dist/coValues/coList.d.ts +13 -2
  24. package/dist/coValues/coList.d.ts.map +1 -1
  25. package/dist/coValues/coList.js +60 -34
  26. package/dist/coValues/coList.js.map +1 -1
  27. package/dist/coValues/coPlainText.d.ts +45 -0
  28. package/dist/coValues/coPlainText.d.ts.map +1 -1
  29. package/dist/coValues/coPlainText.js +61 -11
  30. package/dist/coValues/coPlainText.js.map +1 -1
  31. package/dist/coValues/group.js +2 -2
  32. package/dist/coValues/group.js.map +1 -1
  33. package/dist/exports.d.ts +2 -4
  34. package/dist/exports.d.ts.map +1 -1
  35. package/dist/exports.js +1 -2
  36. package/dist/exports.js.map +1 -1
  37. package/dist/localNode.d.ts.map +1 -1
  38. package/dist/localNode.js +20 -16
  39. package/dist/localNode.js.map +1 -1
  40. package/dist/sync.d.ts.map +1 -1
  41. package/dist/sync.js +40 -92
  42. package/dist/sync.js.map +1 -1
  43. package/dist/tests/PeerKnownStates.test.js +9 -14
  44. package/dist/tests/PeerKnownStates.test.js.map +1 -1
  45. package/dist/tests/PeerState.test.js +22 -34
  46. package/dist/tests/PeerState.test.js.map +1 -1
  47. package/dist/tests/coList.test.js +63 -0
  48. package/dist/tests/coList.test.js.map +1 -1
  49. package/dist/tests/coPlainText.test.js +66 -11
  50. package/dist/tests/coPlainText.test.js.map +1 -1
  51. package/dist/tests/coValueState.test.js +57 -104
  52. package/dist/tests/coValueState.test.js.map +1 -1
  53. package/dist/tests/group.test.js +1 -2
  54. package/dist/tests/group.test.js.map +1 -1
  55. package/dist/tests/messagesTestUtils.d.ts +4 -1
  56. package/dist/tests/messagesTestUtils.d.ts.map +1 -1
  57. package/dist/tests/messagesTestUtils.js +10 -0
  58. package/dist/tests/messagesTestUtils.js.map +1 -1
  59. package/dist/tests/sync.mesh.test.js +65 -3
  60. package/dist/tests/sync.mesh.test.js.map +1 -1
  61. package/dist/tests/sync.peerReconciliation.test.js +8 -8
  62. package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
  63. package/dist/tests/sync.test.js +6 -4
  64. package/dist/tests/sync.test.js.map +1 -1
  65. package/package.json +1 -1
  66. package/src/CoValuesStore.ts +9 -6
  67. package/src/PeerKnownStates.ts +19 -56
  68. package/src/PeerState.ts +69 -13
  69. package/src/SyncStateManager.ts +2 -2
  70. package/src/coValueCore.ts +2 -2
  71. package/src/coValueState.ts +197 -317
  72. package/src/coValues/coList.ts +84 -44
  73. package/src/coValues/coPlainText.ts +75 -11
  74. package/src/coValues/group.ts +2 -2
  75. package/src/exports.ts +0 -6
  76. package/src/localNode.ts +30 -21
  77. package/src/sync.ts +46 -95
  78. package/src/tests/PeerKnownStates.test.ts +9 -14
  79. package/src/tests/PeerState.test.ts +27 -40
  80. package/src/tests/coList.test.ts +83 -0
  81. package/src/tests/coPlainText.test.ts +81 -11
  82. package/src/tests/coValueState.test.ts +55 -106
  83. package/src/tests/group.test.ts +2 -2
  84. package/src/tests/messagesTestUtils.ts +12 -1
  85. package/src/tests/sync.mesh.test.ts +81 -3
  86. package/src/tests/sync.peerReconciliation.test.ts +8 -8
  87. package/src/tests/sync.test.ts +8 -23
  88. package/dist/storage/FileSystem.d.ts +0 -37
  89. package/dist/storage/FileSystem.d.ts.map +0 -1
  90. package/dist/storage/FileSystem.js +0 -48
  91. package/dist/storage/FileSystem.js.map +0 -1
  92. package/dist/storage/chunksAndKnownStates.d.ts +0 -7
  93. package/dist/storage/chunksAndKnownStates.d.ts.map +0 -1
  94. package/dist/storage/chunksAndKnownStates.js +0 -98
  95. package/dist/storage/chunksAndKnownStates.js.map +0 -1
  96. package/dist/storage/index.d.ts +0 -52
  97. package/dist/storage/index.d.ts.map +0 -1
  98. package/dist/storage/index.js +0 -335
  99. package/dist/storage/index.js.map +0 -1
  100. package/src/storage/FileSystem.ts +0 -113
  101. package/src/storage/chunksAndKnownStates.ts +0 -137
  102. package/src/storage/index.ts +0 -531
@@ -1,69 +1,17 @@
1
1
  import { ValueType } from "@opentelemetry/api";
2
2
  import { metrics } from "@opentelemetry/api";
3
3
  import { logger } from "./logger.js";
4
+ import { emptyKnownState } from "./sync.js";
4
5
  export const CO_VALUE_LOADING_CONFIG = {
5
6
  MAX_RETRIES: 2,
6
7
  TIMEOUT: 30000,
7
8
  };
8
- export class CoValueUnknownState {
9
- constructor() {
10
- this.type = "unknown";
11
- }
12
- }
13
- export class CoValueLoadingState {
14
- constructor(peersIds) {
15
- this.type = "loading";
16
- this.peers = new Map();
17
- this.peers = new Map();
18
- for (const peerId of peersIds) {
19
- this.peers.set(peerId, createResolvablePromise());
20
- }
21
- const { resolve, promise } = createResolvablePromise();
22
- this.result = promise;
23
- this.resolveResult = resolve;
24
- }
25
- markAsUnavailable(peerId) {
26
- const entry = this.peers.get(peerId);
27
- if (entry) {
28
- entry.resolve();
29
- }
30
- this.peers.delete(peerId);
31
- // If none of the peers have the coValue, we resolve to unavailable
32
- if (this.peers.size === 0) {
33
- this.resolve("unavailable");
34
- }
35
- }
36
- resolve(value) {
37
- this.resolveResult(value);
38
- for (const entry of this.peers.values()) {
39
- entry.resolve();
40
- }
41
- this.peers.clear();
42
- }
43
- // Wait for a specific peer to have a known state
44
- waitForPeer(peerId) {
45
- const entry = this.peers.get(peerId);
46
- if (!entry) {
47
- return Promise.resolve();
48
- }
49
- return entry.promise;
50
- }
51
- }
52
- export class CoValueAvailableState {
53
- constructor(coValue) {
54
- this.coValue = coValue;
55
- this.type = "available";
56
- }
57
- }
58
- export class CoValueUnavailableState {
59
- constructor() {
60
- this.type = "unavailable";
61
- }
62
- }
63
9
  export class CoValueState {
64
- constructor(id, state) {
10
+ constructor(id) {
11
+ this.peers = new Map();
12
+ this.core = null;
13
+ this.listeners = new Set();
65
14
  this.id = id;
66
- this.state = state;
67
15
  this.counter = metrics
68
16
  .getMeter("cojson")
69
17
  .createUpDownCounter("jazz.covalues.loaded", {
@@ -71,204 +19,200 @@ export class CoValueState {
71
19
  unit: "covalue",
72
20
  valueType: ValueType.INT,
73
21
  });
74
- this.counter.add(1, {
75
- state: this.state.type,
76
- });
22
+ this.updateCounter(null);
77
23
  }
78
- static Unknown(id) {
79
- return new CoValueState(id, new CoValueUnknownState());
24
+ get highLevelState() {
25
+ if (this.core) {
26
+ return "available";
27
+ }
28
+ else {
29
+ if (this.peers.size === 0) {
30
+ return "unknown";
31
+ }
32
+ else if (this.peers
33
+ .values()
34
+ .every((p) => p.type === "unavailable" || p.type === "errored")) {
35
+ return "unavailable";
36
+ }
37
+ else if (this.peers.values().some((p) => p.type === "pending")) {
38
+ return "loading";
39
+ }
40
+ else {
41
+ return "unknown";
42
+ }
43
+ }
80
44
  }
81
- static Loading(id, peersIds) {
82
- return new CoValueState(id, new CoValueLoadingState(peersIds));
45
+ isErroredInPeer(peerId) {
46
+ return this.peers.get(peerId)?.type === "errored";
83
47
  }
84
- static Available(coValue) {
85
- return new CoValueState(coValue.id, new CoValueAvailableState(coValue));
48
+ isAvailable() {
49
+ return !!this.core;
86
50
  }
87
- static Unavailable(id) {
88
- return new CoValueState(id, new CoValueUnavailableState());
51
+ addListener(listener) {
52
+ this.listeners.add(listener);
53
+ listener(this);
89
54
  }
90
- async getCoValue() {
91
- if (this.state.type === "available") {
92
- return this.state.coValue;
55
+ removeListener(listener) {
56
+ this.listeners.delete(listener);
57
+ }
58
+ notifyListeners() {
59
+ for (const listener of this.listeners) {
60
+ listener(this);
93
61
  }
94
- if (this.state.type === "unavailable") {
62
+ }
63
+ async getCoValue() {
64
+ if (this.highLevelState === "unavailable") {
95
65
  return "unavailable";
96
66
  }
97
- // If we don't have a resolved state we return a new promise
98
- // that will be resolved when the state will move to available or unavailable
99
- if (!this.promise) {
100
- const { promise, resolve } = createResolvablePromise();
101
- this.promise = promise;
102
- this.resolve = resolve;
103
- }
104
- return this.promise;
105
- }
106
- moveToState(value) {
107
- this.counter.add(-1, {
108
- state: this.state.type,
109
- });
110
- this.state = value;
111
- this.counter.add(1, {
112
- state: this.state.type,
67
+ return new Promise((resolve) => {
68
+ const listener = (state) => {
69
+ if (state.core) {
70
+ resolve(state.core);
71
+ this.removeListener(listener);
72
+ }
73
+ };
74
+ this.addListener(listener);
113
75
  });
114
- if (!this.resolve) {
115
- return;
116
- }
117
- // If the state is available we resolve the promise
118
- // and clear it to handle the possible transition from unavailable to available
119
- if (value.type === "available") {
120
- this.resolve(value.coValue);
121
- this.clearPromise();
122
- }
123
- else if (value.type === "unavailable") {
124
- this.resolve("unavailable");
125
- this.clearPromise();
126
- }
127
- }
128
- clearPromise() {
129
- this.promise = undefined;
130
- this.resolve = undefined;
131
76
  }
132
77
  async loadFromPeers(peers) {
133
- const state = this.state;
134
- if (state.type === "loading" || state.type === "available") {
135
- return;
136
- }
137
78
  if (peers.length === 0) {
138
- this.moveToState(new CoValueUnavailableState());
139
79
  return;
140
80
  }
141
- const doLoad = async (peersToLoadFrom) => {
142
- const peersWithoutErrors = getPeersWithoutErrors(peersToLoadFrom, this.id);
143
- // If we are in the loading state we move to a new loading state
144
- // to reset all the loading promises
145
- if (this.state.type === "loading" ||
146
- this.state.type === "unknown" ||
147
- this.state.type === "unavailable") {
148
- this.moveToState(new CoValueLoadingState(peersWithoutErrors.map((p) => p.id)));
81
+ const loadAttempt = async (peersToLoadFrom) => {
82
+ const peersToActuallyLoadFrom = [];
83
+ for (const peer of peersToLoadFrom) {
84
+ const currentState = this.peers.get(peer.id);
85
+ if (currentState?.type === "available") {
86
+ continue;
87
+ }
88
+ if (currentState?.type === "errored") {
89
+ continue;
90
+ }
91
+ if (currentState?.type === "unavailable" ||
92
+ currentState?.type === "pending") {
93
+ if (peer.shouldRetryUnavailableCoValues()) {
94
+ this.markPending(peer.id);
95
+ peersToActuallyLoadFrom.push(peer);
96
+ }
97
+ continue;
98
+ }
99
+ if (!currentState || currentState?.type === "unknown") {
100
+ this.markPending(peer.id);
101
+ peersToActuallyLoadFrom.push(peer);
102
+ }
149
103
  }
150
- // Assign the current state to a variable to not depend on the state changes
151
- // that may happen while we wait for loadCoValueFromPeers to complete
152
- const currentState = this.state;
153
- // If we entered successfully the loading state, we load the coValue from the peers
154
- //
155
- // We may not enter the loading state if the coValue has become available in between
156
- // of the retries
157
- if (currentState.type === "loading") {
158
- await loadCoValueFromPeers(this, peersWithoutErrors);
159
- const result = await currentState.result;
160
- return result !== "unavailable";
104
+ for (const peer of peersToActuallyLoadFrom) {
105
+ if (peer.closed) {
106
+ this.markNotFoundInPeer(peer.id);
107
+ continue;
108
+ }
109
+ peer
110
+ .pushOutgoingMessage({
111
+ action: "load",
112
+ ...(this.core ? this.core.knownState() : emptyKnownState(this.id)),
113
+ })
114
+ .catch((err) => {
115
+ logger.warn(`Failed to push load message to peer ${peer.id}`, {
116
+ err,
117
+ });
118
+ });
119
+ /**
120
+ * Use a very long timeout for storage peers, because under pressure
121
+ * they may take a long time to consume the messages queue
122
+ *
123
+ * TODO: Track errors on storage and do not rely on timeout
124
+ */
125
+ const timeoutDuration = peer.role === "storage"
126
+ ? CO_VALUE_LOADING_CONFIG.TIMEOUT * 10
127
+ : CO_VALUE_LOADING_CONFIG.TIMEOUT;
128
+ const waitingForPeer = new Promise((resolve) => {
129
+ const markNotFound = () => {
130
+ if (this.peers.get(peer.id)?.type === "pending") {
131
+ this.markNotFoundInPeer(peer.id);
132
+ }
133
+ };
134
+ const timeout = setTimeout(markNotFound, timeoutDuration);
135
+ const removeCloseListener = peer.addCloseListener(markNotFound);
136
+ const listener = (state) => {
137
+ const peerState = state.peers.get(peer.id);
138
+ if (state.isAvailable() || // might have become available from another peer e.g. through handleNewContent
139
+ peerState?.type === "available" ||
140
+ peerState?.type === "errored" ||
141
+ peerState?.type === "unavailable") {
142
+ state.removeListener(listener);
143
+ removeCloseListener();
144
+ clearTimeout(timeout);
145
+ resolve();
146
+ }
147
+ };
148
+ this.addListener(listener);
149
+ });
150
+ await waitingForPeer;
161
151
  }
162
- return currentState.type === "available";
163
152
  };
164
- await doLoad(peers);
153
+ await loadAttempt(peers);
154
+ if (this.isAvailable()) {
155
+ return;
156
+ }
165
157
  // Retry loading from peers that have the retry flag enabled
166
158
  const peersWithRetry = peers.filter((p) => p.shouldRetryUnavailableCoValues());
167
159
  if (peersWithRetry.length > 0) {
160
+ const waitingForCoValue = new Promise((resolve) => {
161
+ const listener = (state) => {
162
+ if (state.isAvailable()) {
163
+ resolve();
164
+ this.removeListener(listener);
165
+ }
166
+ };
167
+ this.addListener(listener);
168
+ });
168
169
  // We want to exit early if the coValue becomes available in between the retries
169
170
  await Promise.race([
170
- this.getCoValue(),
171
- runWithRetry(() => doLoad(peersWithRetry), CO_VALUE_LOADING_CONFIG.MAX_RETRIES),
171
+ waitingForCoValue,
172
+ runWithRetry(() => loadAttempt(peersWithRetry), CO_VALUE_LOADING_CONFIG.MAX_RETRIES),
172
173
  ]);
173
174
  }
174
- // If after the retries the coValue is still loading, we consider the load failed
175
- if (this.state.type === "loading") {
176
- this.moveToState(new CoValueUnavailableState());
177
- }
178
- }
179
- dispatch(action) {
180
- const currentState = this.state;
181
- switch (action.type) {
182
- case "available":
183
- if (currentState.type === "loading") {
184
- currentState.resolve(action.coValue);
185
- }
186
- // It should be always possible to move to the available state
187
- this.moveToState(new CoValueAvailableState(action.coValue));
188
- break;
189
- case "not-found-in-peer":
190
- if (currentState.type === "loading") {
191
- currentState.markAsUnavailable(action.peerId);
192
- }
193
- break;
194
- }
195
175
  }
196
- }
197
- async function loadCoValueFromPeers(coValueEntry, peers) {
198
- for (const peer of peers) {
199
- if (peer.closed) {
200
- coValueEntry.dispatch({
201
- type: "not-found-in-peer",
202
- peerId: peer.id,
203
- });
204
- continue;
205
- }
206
- if (coValueEntry.state.type === "available") {
207
- /**
208
- * We don't need to wait for the message to be delivered here.
209
- *
210
- * This way when the coValue becomes available because it's cached we don't wait for the server
211
- * peer to consume the messages queue before moving forward.
212
- */
213
- peer
214
- .pushOutgoingMessage({
215
- action: "load",
216
- ...coValueEntry.state.coValue.knownState(),
217
- })
218
- .catch((err) => {
219
- logger.warn(`Failed to push load message to peer ${peer.id}`, {
220
- err,
221
- });
222
- });
223
- }
224
- else {
225
- /**
226
- * We only wait for the load state to be resolved.
227
- */
228
- peer
229
- .pushOutgoingMessage({
230
- action: "load",
231
- id: coValueEntry.id,
232
- header: false,
233
- sessions: {},
234
- })
235
- .catch((err) => {
236
- logger.warn(`Failed to push load message to peer ${peer.id}`, {
237
- err,
238
- });
239
- });
240
- }
241
- if (coValueEntry.state.type === "loading") {
242
- const { promise, resolve } = createResolvablePromise();
243
- /**
244
- * Use a very long timeout for storage peers, because under pressure
245
- * they may take a long time to consume the messages queue
246
- *
247
- * TODO: Track errors on storage and do not rely on timeout
248
- */
249
- const timeoutDuration = peer.role === "storage"
250
- ? CO_VALUE_LOADING_CONFIG.TIMEOUT * 10
251
- : CO_VALUE_LOADING_CONFIG.TIMEOUT;
252
- const handleTimeoutOrClose = () => {
253
- if (coValueEntry.state.type === "loading") {
254
- logger.warn("Failed to load coValue from peer", {
255
- coValueId: coValueEntry.id,
256
- peerId: peer.id,
257
- peerRole: peer.role,
258
- });
259
- coValueEntry.dispatch({
260
- type: "not-found-in-peer",
261
- peerId: peer.id,
262
- });
263
- resolve();
264
- }
265
- };
266
- const timeout = setTimeout(handleTimeoutOrClose, timeoutDuration);
267
- const closeListener = peer.addCloseListener(handleTimeoutOrClose);
268
- await Promise.race([promise, coValueEntry.state.waitForPeer(peer.id)]);
269
- clearTimeout(timeout);
270
- closeListener();
271
- }
176
+ updateCounter(previousState) {
177
+ const newState = this.highLevelState;
178
+ if (previousState !== newState) {
179
+ if (previousState) {
180
+ this.counter.add(-1, { state: previousState });
181
+ }
182
+ this.counter.add(1, { state: newState });
183
+ }
184
+ }
185
+ markNotFoundInPeer(peerId) {
186
+ const previousState = this.highLevelState;
187
+ this.peers.set(peerId, { type: "unavailable" });
188
+ this.updateCounter(previousState);
189
+ this.notifyListeners();
190
+ }
191
+ // TODO: rename to "provided"
192
+ markAvailable(coValue, fromPeerId) {
193
+ const previousState = this.highLevelState;
194
+ this.core = coValue;
195
+ this.peers.set(fromPeerId, { type: "available" });
196
+ this.updateCounter(previousState);
197
+ this.notifyListeners();
198
+ }
199
+ internalMarkMagicallyAvailable(coValue) {
200
+ const previousState = this.highLevelState;
201
+ this.core = coValue;
202
+ this.updateCounter(previousState);
203
+ this.notifyListeners();
204
+ }
205
+ markErrored(peerId, error) {
206
+ const previousState = this.highLevelState;
207
+ this.peers.set(peerId, { type: "errored", error });
208
+ this.updateCounter(previousState);
209
+ this.notifyListeners();
210
+ }
211
+ markPending(peerId) {
212
+ const previousState = this.highLevelState;
213
+ this.peers.set(peerId, { type: "pending" });
214
+ this.updateCounter(previousState);
215
+ this.notifyListeners();
272
216
  }
273
217
  }
274
218
  async function runWithRetry(fn, maxRetries) {
@@ -289,23 +233,7 @@ async function runWithRetry(fn, maxRetries) {
289
233
  retries++;
290
234
  }
291
235
  }
292
- function createResolvablePromise() {
293
- let resolve;
294
- const promise = new Promise((res) => {
295
- resolve = res;
296
- });
297
- return { promise, resolve };
298
- }
299
236
  function sleep(ms) {
300
237
  return new Promise((resolve) => setTimeout(resolve, ms));
301
238
  }
302
- function getPeersWithoutErrors(peers, coValueId) {
303
- return peers.filter((p) => {
304
- if (p.erroredCoValues.has(coValueId)) {
305
- logger.warn(`Skipping load on errored coValue ${coValueId} from peer ${p.id}`);
306
- return false;
307
- }
308
- return true;
309
- });
310
- }
311
239
  //# sourceMappingURL=coValueState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coValueState.js","sourceRoot":"","sources":["../src/coValueState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,KAAM;CAChB,CAAC;AAEF,MAAM,OAAO,mBAAmB;IAAhC;QACE,SAAI,GAAG,SAAkB,CAAC;IAC5B,CAAC;CAAA;AAED,MAAM,OAAO,mBAAmB;IAU9B,YAAY,QAA0B;QATtC,SAAI,GAAG,SAAkB,CAAC;QAClB,UAAK,GAAG,IAAI,GAAG,EAGpB,CAAC;QAMF,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAEjD,CAAC;QAEJ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1B,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAkC;QACxC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,iDAAiD;IACjD,WAAW,CAAC,MAAc;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAGhC,YAAmB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAFvC,SAAI,GAAG,WAAoB,CAAC;IAEc,CAAC;CAC5C;AAED,MAAM,OAAO,uBAAuB;IAApC;QACE,SAAI,GAAG,aAAsB,CAAC;IAChC,CAAC;CAAA;AAsBD,MAAM,OAAO,YAAY;IAKvB,YACS,EAAW,EACX,KAAuB;QADvB,OAAE,GAAF,EAAE,CAAS;QACX,UAAK,GAAL,KAAK,CAAkB;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO;aACnB,QAAQ,CAAC,QAAQ,CAAC;aAClB,mBAAmB,CAAC,sBAAsB,EAAE;YAC3C,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,EAAW;QACxB,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,EAAW,EAAE,QAA0B;QACpD,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAoB;QACnC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,EAAW;QAC5B,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,4DAA4D;QAC5D,6EAA6E;QAC7E,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAEjD,CAAC;YAEJ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,WAAW,CAAC,KAAuB;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,+EAA+E;QAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAkB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,EAAE,eAA4B,EAAE,EAAE;YACpD,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,eAAe,EACf,IAAI,CAAC,EAAE,CACR,CAAC;YAEF,gEAAgE;YAChE,oCAAoC;YACpC,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;gBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;gBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EACjC,CAAC;gBACD,IAAI,CAAC,WAAW,CACd,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC7D,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,qEAAqE;YACrE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAEhC,mFAAmF;YACnF,EAAE;YACF,oFAAoF;YACpF,iBAAiB;YACjB,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBAErD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;gBACzC,OAAO,MAAM,KAAK,aAAa,CAAC;YAClC,CAAC;YAED,OAAO,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC;QAC3C,CAAC,CAAC;QAEF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,4DAA4D;QAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,8BAA8B,EAAE,CACnC,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,gFAAgF;YAChF,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,CAAC,UAAU,EAAE;gBACjB,YAAY,CACV,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAC5B,uBAAuB,CAAC,WAAW,CACpC;aACF,CAAC,CAAC;QACL,CAAC;QAED,iFAAiF;QACjF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAA0B;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAED,8DAA8D;gBAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAE5D,MAAM;YACR,KAAK,mBAAmB;gBACtB,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;gBAED,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAED,KAAK,UAAU,oBAAoB,CACjC,YAA0B,EAC1B,KAAkB;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,YAAY,CAAC,QAAQ,CAAC;gBACpB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5C;;;;;eAKG;YACH,IAAI;iBACD,mBAAmB,CAAC;gBACnB,MAAM,EAAE,MAAM;gBACd,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;aAC3C,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,EAAE,EAAE,EAAE;oBAC5D,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACN;;eAEG;YACH,IAAI;iBACD,mBAAmB,CAAC;gBACnB,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACb,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,EAAE,EAAE,EAAE;oBAC5D,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAAQ,CAAC;YAE7D;;;;;eAKG;YACH,MAAM,eAAe,GACnB,IAAI,CAAC,IAAI,KAAK,SAAS;gBACrB,CAAC,CAAC,uBAAuB,CAAC,OAAO,GAAG,EAAE;gBACtC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC;YAEtC,MAAM,oBAAoB,GAAG,GAAG,EAAE;gBAChC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;wBAC9C,SAAS,EAAE,YAAY,CAAC,EAAE;wBAC1B,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;qBACpB,CAAC,CAAC;oBACH,YAAY,CAAC,QAAQ,CAAC;wBACpB,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,IAAI,CAAC,EAAE;qBAChB,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAElE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAI,EAAoB,EAAE,UAAkB;IACrE,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;QAC5B;;;;;;WAMG;QACH,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,OAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,EAAE;QACrC,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkB,EAAE,SAAkB;IACnE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CACT,oCAAoC,SAAS,cAAc,CAAC,CAAC,EAAE,EAAE,CAClE,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"coValueState.js","sourceRoot":"","sources":["../src/coValueState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAU,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,KAAM;CAChB,CAAC;AAEF,MAAM,OAAO,YAAY;IAgBvB,YAAY,EAAW;QAff,UAAK,GAAG,IAAI,GAAG,EAOpB,CAAC;QAEJ,SAAI,GAAuB,IAAI,CAAC;QAGxB,cAAS,GAAuC,IAAI,GAAG,EAAE,CAAC;QAIhE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,CAAC,OAAO,GAAG,OAAO;aACnB,QAAQ,CAAC,QAAQ,CAAC;aAClB,mBAAmB,CAAC,sBAAsB,EAAE;YAC3C,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;iBAAM,IACL,IAAI,CAAC,KAAK;iBACP,MAAM,EAAE;iBACR,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EACjE,CAAC;gBACD,OAAO,aAAa,CAAC;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBACjE,OAAO,SAAS,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,SAAS,CAAC;IACpD,CAAC;IAED,WAAW;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,QAAuC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,QAAuC;QACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,eAAe;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;gBACvC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAkB;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,EAAE,eAA4B,EAAE,EAAE;YACzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE7C,IAAI,YAAY,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBAED,IAAI,YAAY,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,IACE,YAAY,EAAE,IAAI,KAAK,aAAa;oBACpC,YAAY,EAAE,IAAI,KAAK,SAAS,EAChC,CAAC;oBACD,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE,CAAC;wBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC1B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrC,CAAC;oBAED,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjC,SAAS;gBACX,CAAC;gBAED,IAAI;qBACD,mBAAmB,CAAC;oBACnB,MAAM,EAAE,MAAM;oBACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACnE,CAAC;qBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,EAAE,EAAE,EAAE;wBAC5D,GAAG;qBACJ,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEL;;;;;mBAKG;gBACH,MAAM,eAAe,GACnB,IAAI,CAAC,IAAI,KAAK,SAAS;oBACrB,CAAC,CAAC,uBAAuB,CAAC,OAAO,GAAG,EAAE;oBACtC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC;gBAEtC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnD,MAAM,YAAY,GAAG,GAAG,EAAE;wBACxB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;4BAChD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC,CAAC;oBAEF,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;oBAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;oBAEhE,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;wBACvC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC3C,IACE,KAAK,CAAC,WAAW,EAAE,IAAI,8EAA8E;4BACrG,SAAS,EAAE,IAAI,KAAK,WAAW;4BAC/B,SAAS,EAAE,IAAI,KAAK,SAAS;4BAC7B,SAAS,EAAE,IAAI,KAAK,aAAa,EACjC,CAAC;4BACD,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;4BAC/B,mBAAmB,EAAE,CAAC;4BACtB,YAAY,CAAC,OAAO,CAAC,CAAC;4BACtB,OAAO,EAAE,CAAC;wBACZ,CAAC;oBACH,CAAC,CAAC;oBAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBAEH,MAAM,cAAc,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,4DAA4D;QAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,8BAA8B,EAAE,CACnC,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACtD,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;oBACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,OAAO,EAAE,CAAC;wBACV,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,gFAAgF;YAChF,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,iBAAiB;gBACjB,YAAY,CACV,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EACjC,uBAAuB,CAAC,WAAW,CACpC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,aAA4B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QAErC,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,6BAA6B;IAC7B,aAAa,CAAC,OAAoB,EAAE,UAAkB;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,8BAA8B,CAAC,OAAoB;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,KAA8B;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;CACF;AAED,KAAK,UAAU,YAAY,CAAI,EAAoB,EAAE,UAAkB;IACrE,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;QAC5B;;;;;;WAMG;QACH,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -2,6 +2,7 @@ import { CoID, RawCoValue } from "../coValue.js";
2
2
  import { CoValueCore } from "../coValueCore.js";
3
3
  import { AgentID, SessionID, TransactionID } from "../ids.js";
4
4
  import { JsonObject, JsonValue } from "../jsonValue.js";
5
+ import { CoValueKnownState } from "../sync.js";
5
6
  import { RawAccountID } from "./account.js";
6
7
  import { RawGroup } from "./group.js";
7
8
  export type OpID = TransactionID & {
@@ -66,7 +67,10 @@ export declare class RawCoListView<Item extends JsonValue = JsonValue, Meta exte
66
67
  opID: OpID;
67
68
  }[];
68
69
  /** @internal */
70
+ knownTransactions: CoValueKnownState["sessions"];
71
+ /** @internal */
69
72
  constructor(core: CoValueCore);
73
+ processNewTransactions(): void;
70
74
  /** @category 6. Meta */
71
75
  get headerMeta(): Meta;
72
76
  /** @category 6. Meta */
@@ -135,6 +139,15 @@ export declare class RawCoList<Item extends JsonValue = JsonValue, Meta extends
135
139
  * @category 2. Editing
136
140
  **/
137
141
  append(item: Item, after?: number, privacy?: "private" | "trusting"): void;
142
+ /**
143
+ * Appends `items` to the list at index `after`. If `after` is negative, it is treated as `0`.
144
+ *
145
+ * If `privacy` is `"private"` **(default)**, `items` are encrypted in the transaction, only readable by other members of the group this `CoList` belongs to. Not even sync servers can see the content in plaintext.
146
+ *
147
+ * If `privacy` is `"trusting"`, `items` are stored in plaintext in the transaction, visible to everyone who gets a hold of it, including sync servers.
148
+ *
149
+ * @category 2. Editing
150
+ */
138
151
  appendItems(items: Item[], after?: number, privacy?: "private" | "trusting"): void;
139
152
  /**
140
153
  * Prepends `item` before the item currently at index `before`.
@@ -156,8 +169,6 @@ export declare class RawCoList<Item extends JsonValue = JsonValue, Meta extends
156
169
  **/
157
170
  delete(at: number, privacy?: "private" | "trusting"): void;
158
171
  replace(at: number, newItem: Item, privacy?: "private" | "trusting"): void;
159
- /** @internal */
160
- rebuildFromCore(): void;
161
172
  }
162
173
  export {};
163
174
  //# sourceMappingURL=coList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}