@verdant-web/common 3.0.0 → 3.2.0
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.
- package/dist/esm/operation.js +12 -10
- package/dist/esm/operation.js.map +1 -1
- package/dist/esm/protocol.d.ts +7 -3
- package/package.json +1 -1
- package/src/operation.ts +18 -16
- package/src/protocol.ts +9 -3
package/dist/esm/operation.js
CHANGED
|
@@ -85,9 +85,11 @@ export function groupBaselinesByRootOid(baselines) {
|
|
|
85
85
|
}
|
|
86
86
|
return grouped;
|
|
87
87
|
}
|
|
88
|
-
function listCheck(obj) {
|
|
88
|
+
function listCheck(obj, patch) {
|
|
89
89
|
if (!Array.isArray(obj)) {
|
|
90
|
-
|
|
90
|
+
if (obj === undefined) {
|
|
91
|
+
console.error(`Cannot apply list patch; expected array, received ${JSON.stringify(obj)}. This suggests your data is changing from a list to an object over time. (OID: ${maybeGetOid(obj)})\nPatch that was not applied: ${JSON.stringify(patch)}`);
|
|
92
|
+
}
|
|
91
93
|
return false;
|
|
92
94
|
}
|
|
93
95
|
else {
|
|
@@ -134,30 +136,30 @@ deletedRefs) {
|
|
|
134
136
|
delete baseAsAny[patch.name];
|
|
135
137
|
break;
|
|
136
138
|
case 'list-set':
|
|
137
|
-
if (listCheck(base)) {
|
|
139
|
+
if (listCheck(base, patch)) {
|
|
138
140
|
checkRef(base[patch.index]);
|
|
139
141
|
base[patch.index] = patch.value;
|
|
140
142
|
}
|
|
141
143
|
break;
|
|
142
144
|
case 'list-push':
|
|
143
|
-
if (listCheck(base)) {
|
|
145
|
+
if (listCheck(base, patch)) {
|
|
144
146
|
base.push(patch.value);
|
|
145
147
|
}
|
|
146
148
|
break;
|
|
147
149
|
case 'list-delete':
|
|
148
|
-
if (listCheck(base)) {
|
|
150
|
+
if (listCheck(base, patch)) {
|
|
149
151
|
checkRef(base[patch.index]);
|
|
150
152
|
base.splice(patch.index, patch.count);
|
|
151
153
|
}
|
|
152
154
|
break;
|
|
153
155
|
case 'list-move-by-index':
|
|
154
|
-
if (listCheck(base)) {
|
|
156
|
+
if (listCheck(base, patch)) {
|
|
155
157
|
spliceResult = base.splice(patch.from, 1);
|
|
156
158
|
base.splice(patch.to, 0, spliceResult[0]);
|
|
157
159
|
}
|
|
158
160
|
break;
|
|
159
161
|
case 'list-remove':
|
|
160
|
-
if (listCheck(base)) {
|
|
162
|
+
if (listCheck(base, patch)) {
|
|
161
163
|
do {
|
|
162
164
|
const valueToRemove = patch.value;
|
|
163
165
|
if (patch.only === 'last') {
|
|
@@ -184,7 +186,7 @@ deletedRefs) {
|
|
|
184
186
|
}
|
|
185
187
|
break;
|
|
186
188
|
case 'list-add':
|
|
187
|
-
if (listCheck(base)) {
|
|
189
|
+
if (listCheck(base, patch)) {
|
|
188
190
|
const alreadyHas = base.some((item) => {
|
|
189
191
|
if (isObjectRef(item) && isObjectRef(patch.value)) {
|
|
190
192
|
return item.id === patch.value.id;
|
|
@@ -199,14 +201,14 @@ deletedRefs) {
|
|
|
199
201
|
}
|
|
200
202
|
break;
|
|
201
203
|
case 'list-move-by-ref':
|
|
202
|
-
if (listCheck(base)) {
|
|
204
|
+
if (listCheck(base, patch)) {
|
|
203
205
|
index = base.findIndex((v) => compareRefs(v, patch.value));
|
|
204
206
|
spliceResult = base.splice(index, 1);
|
|
205
207
|
base.splice(patch.index, 0, spliceResult[0]);
|
|
206
208
|
}
|
|
207
209
|
break;
|
|
208
210
|
case 'list-insert':
|
|
209
|
-
if (listCheck(base)) {
|
|
211
|
+
if (listCheck(base, patch)) {
|
|
210
212
|
if (!patch.value && !patch.values) {
|
|
211
213
|
throw new Error(`Cannot apply list insert patch; expected value or values, received ${JSON.stringify(patch)}`);
|
|
212
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/protocol.d.ts
CHANGED
|
@@ -110,6 +110,12 @@ export type PresenceUpdateMessage = {
|
|
|
110
110
|
/** presence that is internal to verdant */
|
|
111
111
|
internal?: VerdantInternalPresence;
|
|
112
112
|
};
|
|
113
|
+
/** Can't be relied on, but helpful to have */
|
|
114
|
+
export type DisconnectingMessage = {
|
|
115
|
+
type: 'disconnecting';
|
|
116
|
+
replicaId: string;
|
|
117
|
+
reason?: string;
|
|
118
|
+
};
|
|
113
119
|
export type PresenceChangedMessage = {
|
|
114
120
|
type: 'presence-changed';
|
|
115
121
|
/** The client's replica ID */
|
|
@@ -123,8 +129,6 @@ export type PresenceChangedMessage = {
|
|
|
123
129
|
export type PresenceOfflineMessage = {
|
|
124
130
|
type: 'presence-offline';
|
|
125
131
|
userId: string;
|
|
126
|
-
/** The last replicaID seen by the server before the user was offline */
|
|
127
|
-
replicaId: string;
|
|
128
132
|
};
|
|
129
133
|
export type GlobalAckMessage = {
|
|
130
134
|
type: 'global-ack';
|
|
@@ -141,5 +145,5 @@ export type ServerNeedSinceMessage = {
|
|
|
141
145
|
type: 'need-since';
|
|
142
146
|
since: string | null;
|
|
143
147
|
};
|
|
144
|
-
export type ClientMessage = HeartbeatMessage | SyncMessage | OperationMessage | AckMessage | SyncAckMessage | PresenceUpdateMessage;
|
|
148
|
+
export type ClientMessage = HeartbeatMessage | SyncMessage | OperationMessage | AckMessage | SyncAckMessage | PresenceUpdateMessage | DisconnectingMessage;
|
|
145
149
|
export type ServerMessage = HeartbeatResponseMessage | SyncResponseMessage | OperationRebroadcastMessage | PresenceChangedMessage | PresenceOfflineMessage | GlobalAckMessage | ForbiddenMessage | ServerAckMessage | ServerNeedSinceMessage;
|
package/package.json
CHANGED
package/src/operation.ts
CHANGED
|
@@ -257,15 +257,17 @@ export type NormalizedObject =
|
|
|
257
257
|
}
|
|
258
258
|
| Array<PropertyValue>;
|
|
259
259
|
|
|
260
|
-
function listCheck(obj: any): obj is Array<unknown> {
|
|
260
|
+
function listCheck(obj: any, patch: OperationPatch): obj is Array<unknown> {
|
|
261
261
|
if (!Array.isArray(obj)) {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
262
|
+
if (obj === undefined) {
|
|
263
|
+
console.error(
|
|
264
|
+
`Cannot apply list patch; expected array, received ${JSON.stringify(
|
|
265
|
+
obj,
|
|
266
|
+
)}. This suggests your data is changing from a list to an object over time. (OID: ${maybeGetOid(
|
|
267
|
+
obj,
|
|
268
|
+
)})\nPatch that was not applied: ${JSON.stringify(patch)}`,
|
|
269
|
+
);
|
|
270
|
+
}
|
|
269
271
|
return false;
|
|
270
272
|
} else {
|
|
271
273
|
return true;
|
|
@@ -316,30 +318,30 @@ export function applyPatch<T extends NormalizedObject>(
|
|
|
316
318
|
delete baseAsAny[patch.name];
|
|
317
319
|
break;
|
|
318
320
|
case 'list-set':
|
|
319
|
-
if (listCheck(base)) {
|
|
321
|
+
if (listCheck(base, patch)) {
|
|
320
322
|
checkRef(base[patch.index]);
|
|
321
323
|
base[patch.index] = patch.value;
|
|
322
324
|
}
|
|
323
325
|
break;
|
|
324
326
|
case 'list-push':
|
|
325
|
-
if (listCheck(base)) {
|
|
327
|
+
if (listCheck(base, patch)) {
|
|
326
328
|
base.push(patch.value);
|
|
327
329
|
}
|
|
328
330
|
break;
|
|
329
331
|
case 'list-delete':
|
|
330
|
-
if (listCheck(base)) {
|
|
332
|
+
if (listCheck(base, patch)) {
|
|
331
333
|
checkRef(base[patch.index]);
|
|
332
334
|
base.splice(patch.index, patch.count);
|
|
333
335
|
}
|
|
334
336
|
break;
|
|
335
337
|
case 'list-move-by-index':
|
|
336
|
-
if (listCheck(base)) {
|
|
338
|
+
if (listCheck(base, patch)) {
|
|
337
339
|
spliceResult = base.splice(patch.from, 1);
|
|
338
340
|
base.splice(patch.to, 0, spliceResult[0]);
|
|
339
341
|
}
|
|
340
342
|
break;
|
|
341
343
|
case 'list-remove':
|
|
342
|
-
if (listCheck(base)) {
|
|
344
|
+
if (listCheck(base, patch)) {
|
|
343
345
|
do {
|
|
344
346
|
const valueToRemove = patch.value;
|
|
345
347
|
if (patch.only === 'last') {
|
|
@@ -368,7 +370,7 @@ export function applyPatch<T extends NormalizedObject>(
|
|
|
368
370
|
}
|
|
369
371
|
break;
|
|
370
372
|
case 'list-add':
|
|
371
|
-
if (listCheck(base)) {
|
|
373
|
+
if (listCheck(base, patch)) {
|
|
372
374
|
const alreadyHas = base.some((item: any) => {
|
|
373
375
|
if (isObjectRef(item) && isObjectRef(patch.value)) {
|
|
374
376
|
return item.id === patch.value.id;
|
|
@@ -382,14 +384,14 @@ export function applyPatch<T extends NormalizedObject>(
|
|
|
382
384
|
}
|
|
383
385
|
break;
|
|
384
386
|
case 'list-move-by-ref':
|
|
385
|
-
if (listCheck(base)) {
|
|
387
|
+
if (listCheck(base, patch)) {
|
|
386
388
|
index = base.findIndex((v) => compareRefs(v, patch.value));
|
|
387
389
|
spliceResult = base.splice(index, 1);
|
|
388
390
|
base.splice(patch.index, 0, spliceResult[0]);
|
|
389
391
|
}
|
|
390
392
|
break;
|
|
391
393
|
case 'list-insert':
|
|
392
|
-
if (listCheck(base)) {
|
|
394
|
+
if (listCheck(base, patch)) {
|
|
393
395
|
if (!patch.value && !patch.values) {
|
|
394
396
|
throw new Error(
|
|
395
397
|
`Cannot apply list insert patch; expected value or values, received ${JSON.stringify(
|
package/src/protocol.ts
CHANGED
|
@@ -127,6 +127,13 @@ export type PresenceUpdateMessage = {
|
|
|
127
127
|
internal?: VerdantInternalPresence;
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
+
/** Can't be relied on, but helpful to have */
|
|
131
|
+
export type DisconnectingMessage = {
|
|
132
|
+
type: 'disconnecting';
|
|
133
|
+
replicaId: string;
|
|
134
|
+
reason?: string;
|
|
135
|
+
};
|
|
136
|
+
|
|
130
137
|
export type PresenceChangedMessage = {
|
|
131
138
|
type: 'presence-changed';
|
|
132
139
|
/** The client's replica ID */
|
|
@@ -142,8 +149,6 @@ export type PresenceChangedMessage = {
|
|
|
142
149
|
export type PresenceOfflineMessage = {
|
|
143
150
|
type: 'presence-offline';
|
|
144
151
|
userId: string;
|
|
145
|
-
/** The last replicaID seen by the server before the user was offline */
|
|
146
|
-
replicaId: string;
|
|
147
152
|
};
|
|
148
153
|
|
|
149
154
|
export type GlobalAckMessage = {
|
|
@@ -171,7 +176,8 @@ export type ClientMessage =
|
|
|
171
176
|
| OperationMessage
|
|
172
177
|
| AckMessage
|
|
173
178
|
| SyncAckMessage
|
|
174
|
-
| PresenceUpdateMessage
|
|
179
|
+
| PresenceUpdateMessage
|
|
180
|
+
| DisconnectingMessage;
|
|
175
181
|
export type ServerMessage =
|
|
176
182
|
| HeartbeatResponseMessage
|
|
177
183
|
| SyncResponseMessage
|