@party-stack/foundry-ontology 0.3.1 → 0.4.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.
Files changed (86) hide show
  1. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
  2. package/lib/adapter/convertLoadSubsetOptions.js +21 -6
  3. package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
  4. package/lib/adapter/convertLoadSubsetOptions.test.js +11 -1
  5. package/lib/adapter/convertLoadSubsetOptions.test.js.map +1 -1
  6. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +14 -0
  7. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +1 -0
  8. package/lib/adapter/createFoundryOntologyBackendAdapter.js +251 -0
  9. package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +1 -0
  10. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts +2 -0
  11. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts.map +1 -0
  12. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js +175 -0
  13. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js.map +1 -0
  14. package/lib/adapter/foundryCodec.d.ts +5 -1
  15. package/lib/adapter/foundryCodec.d.ts.map +1 -1
  16. package/lib/adapter/foundryCodec.js +24 -3
  17. package/lib/adapter/foundryCodec.js.map +1 -1
  18. package/lib/adapter/foundryCodec.test.js +23 -15
  19. package/lib/adapter/foundryCodec.test.js.map +1 -1
  20. package/lib/adapter/foundryMediaId.d.ts +11 -0
  21. package/lib/adapter/foundryMediaId.d.ts.map +1 -0
  22. package/lib/adapter/foundryMediaId.js +39 -0
  23. package/lib/adapter/foundryMediaId.js.map +1 -0
  24. package/lib/adapter/foundryMediaId.test.d.ts +2 -0
  25. package/lib/adapter/foundryMediaId.test.d.ts.map +1 -0
  26. package/lib/adapter/foundryMediaId.test.js +23 -0
  27. package/lib/adapter/foundryMediaId.test.js.map +1 -0
  28. package/lib/adapter/index.d.ts +1 -1
  29. package/lib/adapter/index.d.ts.map +1 -1
  30. package/lib/adapter/index.js +1 -1
  31. package/lib/adapter/index.js.map +1 -1
  32. package/lib/adapter/objectCollectionOptions.d.ts +1 -0
  33. package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
  34. package/lib/adapter/objectCollectionOptions.js +256 -40
  35. package/lib/adapter/objectCollectionOptions.js.map +1 -1
  36. package/lib/adapter/objectCollectionOptions.test.js +460 -6
  37. package/lib/adapter/objectCollectionOptions.test.js.map +1 -1
  38. package/lib/config/index.js +2 -2
  39. package/lib/config/index.js.map +1 -1
  40. package/lib/index.d.ts +1 -0
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +1 -0
  43. package/lib/index.js.map +1 -1
  44. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  45. package/lib/meta/convertMetaActionType.js +9 -4
  46. package/lib/meta/convertMetaActionType.js.map +1 -1
  47. package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -0
  48. package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -0
  49. package/lib/meta/convertMetaQueryFunctionType.js +109 -0
  50. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -0
  51. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +7 -0
  52. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +1 -0
  53. package/lib/meta/{createFoundryMetaOntologyAdapter.js → createFoundryMetaOntologyBackendAdapter.js} +8 -2
  54. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +1 -0
  55. package/lib/meta/index.d.ts +1 -1
  56. package/lib/meta/index.d.ts.map +1 -1
  57. package/lib/meta/index.js +1 -1
  58. package/lib/meta/index.js.map +1 -1
  59. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +9 -0
  60. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -0
  61. package/lib/meta/queryFunctionTypeCollectionOptions.js +60 -0
  62. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -0
  63. package/lib/stagedWrites.d.ts +40 -0
  64. package/lib/stagedWrites.d.ts.map +1 -0
  65. package/lib/stagedWrites.js +74 -0
  66. package/lib/stagedWrites.js.map +1 -0
  67. package/lib/stagedWrites.test.d.ts +2 -0
  68. package/lib/stagedWrites.test.d.ts.map +1 -0
  69. package/lib/stagedWrites.test.js +71 -0
  70. package/lib/stagedWrites.test.js.map +1 -0
  71. package/package.json +9 -8
  72. package/lib/adapter/createFoundryOntologyAdapter.d.ts +0 -7
  73. package/lib/adapter/createFoundryOntologyAdapter.d.ts.map +0 -1
  74. package/lib/adapter/createFoundryOntologyAdapter.js +0 -177
  75. package/lib/adapter/createFoundryOntologyAdapter.js.map +0 -1
  76. package/lib/adapter/sync.d.ts +0 -14
  77. package/lib/adapter/sync.d.ts.map +0 -1
  78. package/lib/adapter/sync.js +0 -238
  79. package/lib/adapter/sync.js.map +0 -1
  80. package/lib/adapter/sync.test.d.ts +0 -2
  81. package/lib/adapter/sync.test.d.ts.map +0 -1
  82. package/lib/adapter/sync.test.js +0 -245
  83. package/lib/adapter/sync.test.js.map +0 -1
  84. package/lib/meta/createFoundryMetaOntologyAdapter.d.ts +0 -7
  85. package/lib/meta/createFoundryMetaOntologyAdapter.d.ts.map +0 -1
  86. package/lib/meta/createFoundryMetaOntologyAdapter.js.map +0 -1
@@ -21,16 +21,59 @@ class ObjectCollectionSyncAbortedError extends Error {
21
21
  // Edit history helpers
22
22
  // ---------------------------------------------------------------------------
23
23
  const EDIT_HISTORY_PAGE_SIZE = 1_000;
24
+ const EDIT_HISTORY_CURSOR_METADATA_KEY = "foundry.editHistoryCursor";
25
+ const EDIT_HISTORY_CURSOR_VERSION = 1;
24
26
  function createEditHistoryCursor(timestamp = new Date().toISOString()) {
25
27
  return { timestamp, seenEntryKeysAtTimestamp: new Set() };
26
28
  }
29
+ function cloneEditHistoryCursor(cursor) {
30
+ return {
31
+ timestamp: cursor.timestamp,
32
+ seenEntryKeysAtTimestamp: new Set(cursor.seenEntryKeysAtTimestamp),
33
+ };
34
+ }
35
+ function serializeEditHistoryCursor(cursor) {
36
+ return {
37
+ version: EDIT_HISTORY_CURSOR_VERSION,
38
+ timestamp: cursor.timestamp,
39
+ seenEntryKeysAtTimestamp: [...cursor.seenEntryKeysAtTimestamp].sort(),
40
+ };
41
+ }
42
+ function deserializeEditHistoryCursor(value) {
43
+ if (!isPlainObject(value) ||
44
+ value.version !== EDIT_HISTORY_CURSOR_VERSION ||
45
+ typeof value.timestamp !== "string" ||
46
+ !Array.isArray(value.seenEntryKeysAtTimestamp) ||
47
+ !value.seenEntryKeysAtTimestamp.every((key) => typeof key === "string")) {
48
+ return undefined;
49
+ }
50
+ return {
51
+ timestamp: value.timestamp,
52
+ seenEntryKeysAtTimestamp: new Set(value.seenEntryKeysAtTimestamp),
53
+ };
54
+ }
55
+ function editHistoryCursorsEqual(left, right) {
56
+ return (left.timestamp === right.timestamp &&
57
+ left.seenEntryKeysAtTimestamp.size === right.seenEntryKeysAtTimestamp.size &&
58
+ [...left.seenEntryKeysAtTimestamp].every((key) => right.seenEntryKeysAtTimestamp.has(key)));
59
+ }
60
+ function canonicalizeJsonValue(value) {
61
+ if (Array.isArray(value))
62
+ return value.map(canonicalizeJsonValue);
63
+ if (isPlainObject(value)) {
64
+ return Object.fromEntries(Object.keys(value)
65
+ .sort()
66
+ .map((key) => [key, canonicalizeJsonValue(value[key])]));
67
+ }
68
+ return value;
69
+ }
27
70
  function getEditHistoryEntryKey(entry) {
28
- return JSON.stringify({
71
+ return JSON.stringify(canonicalizeJsonValue({
29
72
  objectPrimaryKey: entry.objectPrimaryKey,
30
73
  operationId: entry.operationId,
31
74
  timestamp: entry.timestamp,
32
75
  edit: entry.edit,
33
- });
76
+ }));
34
77
  }
35
78
  function shouldProcessEditHistoryEntry(cursor, entry) {
36
79
  if (entry.timestamp < cursor.timestamp)
@@ -115,7 +158,11 @@ function normalizeEditPropertyValue(value) {
115
158
  // ---------------------------------------------------------------------------
116
159
  // Foundry object fetching
117
160
  // ---------------------------------------------------------------------------
118
- async function fetchFoundryObjects(client, objectType, opts, decodeObject = (object) => object) {
161
+ async function fetchFoundryObjects(client, objectType, selectedProperties, opts, decodeObject = (object) => object) {
162
+ const offset = Math.max(0, Math.trunc(opts.offset ?? 0));
163
+ const limit = opts.limit === undefined ? undefined : Math.max(0, Math.trunc(opts.limit));
164
+ if (limit === 0)
165
+ return [];
119
166
  let where = convertLoadSubsetFilter(opts.where);
120
167
  if (isAlwaysFalseFilter(where) || (where?.type === "in" && where.value.length === 0)) {
121
168
  return [];
@@ -133,17 +180,22 @@ async function fetchFoundryObjects(client, objectType, opts, decodeObject = (obj
133
180
  snapshot: true,
134
181
  where,
135
182
  excludeRid: true,
136
- select: [],
183
+ select: selectedProperties,
137
184
  selectV2: [],
138
185
  pageSize,
139
186
  pageToken,
140
187
  orderBy: convertLoadSubsetOrderBy(opts.orderBy),
141
- }), (page) => page.nextPageToken, (page) => page.data, 10_000, opts.limit));
142
- return results.map(decodeObject);
188
+ }), (page) => page.nextPageToken, (page) => page.data, 10_000, limit === undefined ? undefined : offset + limit));
189
+ return results
190
+ .slice(offset, limit === undefined ? undefined : offset + limit)
191
+ .map(decodeObject);
143
192
  }
144
- function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject = (object) => object) {
193
+ function createSyncConfig(client, objectType, primaryKeyProperty, selectedProperties, decodeObject = (object) => object) {
145
194
  const seenOperationIds = new Store(new Set());
146
195
  const syncDisposed = new Store(false);
196
+ const directWebsocketSyncVersion = new Store(0);
197
+ let editHistoryUnavailable = false;
198
+ let requestFullRefresh;
147
199
  let requestEditHistoryCatchUp;
148
200
  const awaitOperationId = async (operationId, timeout = COLLECTION_SYNC_TIMEOUT_MS) => {
149
201
  if (typeof operationId !== "string" || operationId.length === 0) {
@@ -155,11 +207,13 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
155
207
  if (syncDisposed.state) {
156
208
  throw new ObjectCollectionSyncAbortedError(objectType);
157
209
  }
210
+ const directSyncVersionAtStart = directWebsocketSyncVersion.state;
158
211
  requestEditHistoryCatchUp?.();
159
212
  return new Promise((resolve, reject) => {
160
213
  const cleanup = () => {
161
214
  clearTimeout(timeoutId);
162
215
  seenOperationIdsSubscription.unsubscribe();
216
+ directWebsocketSyncVersionSubscription.unsubscribe();
163
217
  disposedSubscription.unsubscribe();
164
218
  };
165
219
  const timeoutId = setTimeout(() => {
@@ -172,6 +226,14 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
172
226
  resolve(true);
173
227
  }
174
228
  });
229
+ const directWebsocketSyncVersionSubscription = directWebsocketSyncVersion.subscribe(() => {
230
+ if (editHistoryUnavailable &&
231
+ directWebsocketSyncVersion.state >
232
+ directSyncVersionAtStart) {
233
+ cleanup();
234
+ resolve(true);
235
+ }
236
+ });
175
237
  const disposedSubscription = syncDisposed.subscribe(() => {
176
238
  if (syncDisposed.state) {
177
239
  cleanup();
@@ -183,24 +245,48 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
183
245
  const utils = { awaitOperationId };
184
246
  const sync = {
185
247
  sync: (params) => {
186
- const { begin, write, commit, markReady } = params;
248
+ const { begin, write, commit, markReady, truncate, } = params;
249
+ const collectionMetadata = params.metadata?.collection;
187
250
  syncDisposed.setState(() => false);
188
- const syncedKeys = new Set(params.collection.keys());
189
251
  let disposed = false;
190
- const editHistoryCursor = createEditHistoryCursor();
252
+ const restoredEditHistoryCursor = deserializeEditHistoryCursor(collectionMetadata?.get(EDIT_HISTORY_CURSOR_METADATA_KEY));
253
+ let editHistoryCursor = restoredEditHistoryCursor ?? createEditHistoryCursor();
254
+ if (!restoredEditHistoryCursor) {
255
+ if (collectionMetadata) {
256
+ begin();
257
+ collectionMetadata.set(EDIT_HISTORY_CURSOR_METADATA_KEY, serializeEditHistoryCursor(editHistoryCursor));
258
+ commit();
259
+ }
260
+ }
191
261
  let catchUpRequested = false;
192
262
  let catchUpTask;
263
+ let pendingDirectWatcherUpdates = [];
264
+ let fullRefreshRequested = false;
265
+ let fullRefreshTask;
193
266
  const getObjectKey = (object) => object[primaryKeyProperty];
267
+ const getWatcherObjectKey = (object) => {
268
+ const key = object[primaryKeyProperty] ?? object.__primaryKey;
269
+ if (typeof key !== "string" && typeof key !== "number") {
270
+ throw new Error(`Foundry websocket update for ${objectType} did not include a supported primary key.`);
271
+ }
272
+ return key;
273
+ };
194
274
  const upsertObject = (object) => {
195
275
  const key = getObjectKey(object);
196
- write({ type: syncedKeys.has(key) ? "update" : "insert", value: object });
197
- syncedKeys.add(key);
276
+ const exists = params.collection.has(key);
277
+ const existing = exists ? params.collection.get(key) : undefined;
278
+ write({
279
+ type: exists ? "update" : "insert",
280
+ value: existing
281
+ ? {
282
+ ...existing,
283
+ ...object,
284
+ }
285
+ : object,
286
+ });
198
287
  };
199
288
  const deleteObjectByKey = (key) => {
200
- if (!syncedKeys.has(key))
201
- return false;
202
289
  write({ type: "delete", key });
203
- syncedKeys.delete(key);
204
290
  return true;
205
291
  };
206
292
  const fetchEditHistoryPage = (body) => ObjectTypesV2.getEditsHistory(client, client.ontologyRid, objectType, body,
@@ -216,13 +302,73 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
216
302
  ])),
217
303
  [primaryKeyProperty]: primaryKey,
218
304
  });
305
+ const decodeWatcherObject = (object, primaryKey) => decodeObject({
306
+ ...object,
307
+ [primaryKeyProperty]: primaryKey,
308
+ });
309
+ const applyDirectWatcherUpdates = (updates) => {
310
+ const pendingMutations = new Map();
311
+ let observedObjectUpdate = false;
312
+ for (const update of updates) {
313
+ if (update.type !== "object")
314
+ continue;
315
+ observedObjectUpdate = true;
316
+ const object = update.object;
317
+ const primaryKey = getWatcherObjectKey(object);
318
+ switch (update.state) {
319
+ case "ADDED_OR_UPDATED":
320
+ pendingMutations.set(primaryKey, {
321
+ type: "upsert",
322
+ object: decodeWatcherObject(object, primaryKey),
323
+ });
324
+ break;
325
+ case "REMOVED":
326
+ pendingMutations.set(primaryKey, { type: "delete" });
327
+ break;
328
+ }
329
+ }
330
+ let transactionStarted = false;
331
+ for (const [primaryKey, mutation] of pendingMutations) {
332
+ if (!transactionStarted) {
333
+ begin();
334
+ transactionStarted = true;
335
+ }
336
+ if (mutation.type === "delete") {
337
+ deleteObjectByKey(primaryKey);
338
+ }
339
+ else {
340
+ upsertObject(mutation.object);
341
+ }
342
+ }
343
+ if (transactionStarted) {
344
+ commit();
345
+ }
346
+ if (observedObjectUpdate) {
347
+ directWebsocketSyncVersion.setState((version) => version + 1);
348
+ }
349
+ };
350
+ const switchToDirectWebsocketMode = (error) => {
351
+ if (!editHistoryUnavailable) {
352
+ const errorMessage = error instanceof Error ? error.message : error;
353
+ console.warn(`Edit history catch-up failed for ${objectType}; falling back to direct websocket updates.`, errorMessage);
354
+ editHistoryUnavailable = true;
355
+ }
356
+ if (pendingDirectWatcherUpdates.length >
357
+ 0) {
358
+ const updates = pendingDirectWatcherUpdates;
359
+ pendingDirectWatcherUpdates = [];
360
+ applyDirectWatcherUpdates(updates);
361
+ }
362
+ requestFullRefresh?.();
363
+ };
219
364
  const catchUpFromEditHistory = async () => {
365
+ const nextEditHistoryCursor = cloneEditHistoryCursor(editHistoryCursor);
220
366
  const pendingMutations = new Map();
221
367
  const newOperationIds = new Set();
222
368
  for await (const entry of AsyncIterable.fromPagination((pageSize, pageToken) => fetchEditHistoryPage({
223
369
  filters: {
224
370
  type: "timestampFilter",
225
- startTime: editHistoryCursor.timestamp,
371
+ startTime: nextEditHistoryCursor.timestamp,
226
372
  },
227
373
  includeAllPreviousProperties: true,
228
374
  pageSize,
@@ -231,9 +377,9 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
231
377
  }), (page) => page.nextPageToken, (page) => page.data, EDIT_HISTORY_PAGE_SIZE)) {
232
378
  if (disposed)
233
379
  break;
234
- if (!shouldProcessEditHistoryEntry(editHistoryCursor, entry))
380
+ if (!shouldProcessEditHistoryEntry(nextEditHistoryCursor, entry))
235
381
  continue;
236
- advanceEditHistoryCursor(editHistoryCursor, entry);
382
+ advanceEditHistoryCursor(nextEditHistoryCursor, entry);
237
383
  newOperationIds.add(entry.operationId);
238
384
  const primaryKey = getPrimaryKeyValue(entry.objectPrimaryKey);
239
385
  switch (entry.edit.type) {
@@ -251,16 +397,16 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
251
397
  }
252
398
  if (disposed)
253
399
  return;
400
+ const checkpointChanged = !editHistoryCursorsEqual(editHistoryCursor, nextEditHistoryCursor);
254
401
  let transactionStarted = false;
402
+ const ensureTransaction = () => {
403
+ if (transactionStarted)
404
+ return;
405
+ begin();
406
+ transactionStarted = true;
407
+ };
255
408
  for (const [primaryKey, mutation] of pendingMutations) {
256
- if (mutation.type === "delete") {
257
- if (!syncedKeys.has(primaryKey))
258
- continue;
259
- }
260
- if (!transactionStarted) {
261
- begin({ immediate: true });
262
- transactionStarted = true;
263
- }
409
+ ensureTransaction();
264
410
  if (mutation.type === "delete") {
265
411
  deleteObjectByKey(primaryKey);
266
412
  }
@@ -268,20 +414,68 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
268
414
  upsertObject(mutation.object);
269
415
  }
270
416
  }
417
+ if (checkpointChanged && collectionMetadata) {
418
+ ensureTransaction();
419
+ collectionMetadata.set(EDIT_HISTORY_CURSOR_METADATA_KEY, serializeEditHistoryCursor(nextEditHistoryCursor));
420
+ }
271
421
  if (transactionStarted) {
272
422
  commit();
273
423
  }
424
+ if (checkpointChanged) {
425
+ editHistoryCursor = nextEditHistoryCursor;
426
+ }
274
427
  if (newOperationIds.size > 0) {
275
- seenOperationIds.setState((current) => {
276
- const next = new Set(current);
277
- for (const operationId of newOperationIds) {
278
- next.add(operationId);
279
- }
280
- return next;
428
+ seenOperationIds.setState((current) => new Set([
429
+ ...current,
430
+ ...newOperationIds,
431
+ ]));
432
+ }
433
+ pendingDirectWatcherUpdates = [];
434
+ };
435
+ const refreshAllFromSource = async () => {
436
+ const objects = await fetchFoundryObjects(client, objectType, selectedProperties, {}, decodeObject);
437
+ if (disposed)
438
+ return;
439
+ begin();
440
+ truncate();
441
+ for (const object of objects) {
442
+ write({
443
+ type: "insert",
444
+ value: object,
281
445
  });
282
446
  }
447
+ commit();
448
+ if (pendingDirectWatcherUpdates.length > 0) {
449
+ const updates = pendingDirectWatcherUpdates;
450
+ pendingDirectWatcherUpdates = [];
451
+ applyDirectWatcherUpdates(updates);
452
+ }
453
+ directWebsocketSyncVersion.setState((version) => version + 1);
454
+ };
455
+ requestFullRefresh = () => {
456
+ fullRefreshRequested = true;
457
+ if (fullRefreshTask)
458
+ return;
459
+ fullRefreshTask = (async () => {
460
+ while (fullRefreshRequested && !disposed) {
461
+ fullRefreshRequested = false;
462
+ await refreshAllFromSource();
463
+ }
464
+ })()
465
+ .catch((error) => {
466
+ console.warn(`Failed full Foundry refresh for ${objectType}.`, error);
467
+ })
468
+ .finally(() => {
469
+ fullRefreshTask = undefined;
470
+ if (fullRefreshRequested && !disposed) {
471
+ requestFullRefresh?.();
472
+ }
473
+ });
283
474
  };
284
475
  requestEditHistoryCatchUp = () => {
476
+ if (editHistoryUnavailable) {
477
+ return;
478
+ }
285
479
  catchUpRequested = true;
286
480
  if (catchUpTask)
287
481
  return;
@@ -292,7 +486,7 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
292
486
  }
293
487
  })()
294
488
  .catch((error) => {
295
- console.error("Error during edit history catch-up", error);
489
+ switchToDirectWebsocketMode(error);
296
490
  })
297
491
  .finally(() => {
298
492
  catchUpTask = undefined;
@@ -302,9 +496,9 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
302
496
  });
303
497
  };
304
498
  const loadSubset = async (opts) => {
305
- const objects = await fetchFoundryObjects(client, objectType, opts, decodeObject);
499
+ const objects = await fetchFoundryObjects(client, objectType, selectedProperties, opts, decodeObject);
306
500
  if (objects.length > 0) {
307
- begin({ immediate: true });
501
+ begin();
308
502
  for (const object of objects) {
309
503
  upsertObject(object);
310
504
  }
@@ -316,16 +510,37 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
316
510
  const unsubscribe = objectSetWatcherManager.subscribe({ type: "base", objectType }, (message) => {
317
511
  switch (message.type) {
318
512
  case "change": {
319
- requestEditHistoryCatchUp?.();
513
+ if (editHistoryUnavailable) {
514
+ if (fullRefreshTask) {
515
+ pendingDirectWatcherUpdates.push(...message.updates);
516
+ }
517
+ else {
518
+ applyDirectWatcherUpdates(message.updates);
519
+ }
520
+ }
521
+ else {
522
+ pendingDirectWatcherUpdates.push(...message.updates);
523
+ requestEditHistoryCatchUp?.();
524
+ }
320
525
  break;
321
526
  }
322
527
  case "refresh": {
323
- requestEditHistoryCatchUp?.();
528
+ if (editHistoryUnavailable) {
529
+ requestFullRefresh?.();
530
+ }
531
+ else {
532
+ requestEditHistoryCatchUp?.();
533
+ }
324
534
  break;
325
535
  }
326
536
  case "state": {
327
537
  if (message.status === "open") {
328
- requestEditHistoryCatchUp?.();
538
+ if (editHistoryUnavailable) {
539
+ requestFullRefresh?.();
540
+ }
541
+ else {
542
+ requestEditHistoryCatchUp?.();
543
+ }
329
544
  }
330
545
  break;
331
546
  }
@@ -341,6 +556,7 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
341
556
  cleanup: () => {
342
557
  disposed = true;
343
558
  requestEditHistoryCatchUp = undefined;
559
+ requestFullRefresh = undefined;
344
560
  syncDisposed.setState(() => true);
345
561
  unsubscribe();
346
562
  loadSubsetDedupe.reset();
@@ -352,8 +568,8 @@ function createSyncConfig(client, objectType, primaryKeyProperty, decodeObject =
352
568
  }
353
569
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
354
570
  export function objectCollectionOptions(config) {
355
- const { client, objectType, primaryKeyProperty, decodeObject, schema, ...rest } = config;
356
- const { sync, utils } = createSyncConfig(client, objectType, primaryKeyProperty, decodeObject);
571
+ const { client, objectType, primaryKeyProperty, selectedProperties, decodeObject, schema, ...rest } = config;
572
+ const { sync, utils } = createSyncConfig(client, objectType, primaryKeyProperty, selectedProperties, decodeObject);
357
573
  if (schema === undefined) {
358
574
  return { syncMode: "on-demand", sync, utils };
359
575
  }
@@ -1 +1 @@
1
- {"version":3,"file":"objectCollectionOptions.js","sourceRoot":"","sources":["../../src/adapter/objectCollectionOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectCollectionOptions.js","sourceRoot":"","sources":["../../src/adapter/objectCollectionOptions.ts"],"names":[],"mappings":"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"}