@verdant-web/store 2.1.0 → 2.3.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 (105) hide show
  1. package/dist/cjs/DocumentManager.js +4 -4
  2. package/dist/cjs/DocumentManager.js.map +1 -1
  3. package/dist/cjs/client/Client.js +4 -16
  4. package/dist/cjs/client/Client.js.map +1 -1
  5. package/dist/cjs/client/ClientDescriptor.d.ts +1 -0
  6. package/dist/cjs/client/ClientDescriptor.js +7 -3
  7. package/dist/cjs/client/ClientDescriptor.js.map +1 -1
  8. package/dist/cjs/files/utils.js +1 -1
  9. package/dist/cjs/files/utils.js.map +1 -1
  10. package/dist/cjs/idb.d.ts +1 -0
  11. package/dist/cjs/idb.js +17 -1
  12. package/dist/cjs/idb.js.map +1 -1
  13. package/dist/cjs/index.d.ts +1 -0
  14. package/dist/cjs/index.js +3 -1
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/migration/db.d.ts +8 -0
  17. package/dist/cjs/migration/db.js +109 -0
  18. package/dist/cjs/migration/db.js.map +1 -0
  19. package/dist/cjs/migration/errors.d.ts +5 -0
  20. package/dist/cjs/migration/errors.js +12 -0
  21. package/dist/cjs/migration/errors.js.map +1 -0
  22. package/dist/cjs/{openDocumentDatabase.d.ts → migration/openDatabase.d.ts} +2 -2
  23. package/dist/cjs/{openDocumentDatabase.js → migration/openDatabase.js} +52 -155
  24. package/dist/cjs/migration/openDatabase.js.map +1 -0
  25. package/dist/cjs/migration/paths.d.ts +6 -0
  26. package/dist/cjs/migration/paths.js +53 -0
  27. package/dist/cjs/migration/paths.js.map +1 -0
  28. package/dist/cjs/migration/paths.test.d.ts +1 -0
  29. package/dist/cjs/migration/paths.test.js +91 -0
  30. package/dist/cjs/migration/paths.test.js.map +1 -0
  31. package/dist/cjs/queries2/GetQuery.js +1 -1
  32. package/dist/cjs/queries2/GetQuery.js.map +1 -1
  33. package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +5 -1
  34. package/dist/cjs/reactives/DocumentFamiliyCache.js +11 -7
  35. package/dist/cjs/reactives/DocumentFamiliyCache.js.map +1 -1
  36. package/dist/cjs/reactives/Entity.d.ts +0 -1
  37. package/dist/cjs/reactives/Entity.js +4 -6
  38. package/dist/cjs/reactives/Entity.js.map +1 -1
  39. package/dist/cjs/sync/Heartbeat.js +1 -1
  40. package/dist/cjs/sync/Heartbeat.js.map +1 -1
  41. package/dist/cjs/sync/WebSocketSync.js +6 -0
  42. package/dist/cjs/sync/WebSocketSync.js.map +1 -1
  43. package/dist/esm/DocumentManager.js +4 -4
  44. package/dist/esm/DocumentManager.js.map +1 -1
  45. package/dist/esm/client/Client.js +3 -15
  46. package/dist/esm/client/Client.js.map +1 -1
  47. package/dist/esm/client/ClientDescriptor.d.ts +1 -0
  48. package/dist/esm/client/ClientDescriptor.js +6 -2
  49. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  50. package/dist/esm/files/utils.js +1 -1
  51. package/dist/esm/files/utils.js.map +1 -1
  52. package/dist/esm/idb.d.ts +1 -0
  53. package/dist/esm/idb.js +15 -0
  54. package/dist/esm/idb.js.map +1 -1
  55. package/dist/esm/index.d.ts +1 -0
  56. package/dist/esm/index.js +1 -0
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/migration/db.d.ts +8 -0
  59. package/dist/esm/migration/db.js +101 -0
  60. package/dist/esm/migration/db.js.map +1 -0
  61. package/dist/esm/migration/errors.d.ts +5 -0
  62. package/dist/esm/migration/errors.js +8 -0
  63. package/dist/esm/migration/errors.js.map +1 -0
  64. package/dist/esm/{openDocumentDatabase.d.ts → migration/openDatabase.d.ts} +2 -2
  65. package/dist/esm/{openDocumentDatabase.js → migration/openDatabase.js} +44 -147
  66. package/dist/esm/migration/openDatabase.js.map +1 -0
  67. package/dist/esm/migration/paths.d.ts +6 -0
  68. package/dist/esm/migration/paths.js +49 -0
  69. package/dist/esm/migration/paths.js.map +1 -0
  70. package/dist/esm/migration/paths.test.d.ts +1 -0
  71. package/dist/esm/migration/paths.test.js +89 -0
  72. package/dist/esm/migration/paths.test.js.map +1 -0
  73. package/dist/esm/queries2/GetQuery.js +1 -1
  74. package/dist/esm/queries2/GetQuery.js.map +1 -1
  75. package/dist/esm/reactives/DocumentFamiliyCache.d.ts +5 -1
  76. package/dist/esm/reactives/DocumentFamiliyCache.js +11 -7
  77. package/dist/esm/reactives/DocumentFamiliyCache.js.map +1 -1
  78. package/dist/esm/reactives/Entity.d.ts +0 -1
  79. package/dist/esm/reactives/Entity.js +4 -6
  80. package/dist/esm/reactives/Entity.js.map +1 -1
  81. package/dist/esm/sync/Heartbeat.js +1 -1
  82. package/dist/esm/sync/Heartbeat.js.map +1 -1
  83. package/dist/esm/sync/WebSocketSync.js +6 -0
  84. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  85. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  86. package/dist/tsconfig.tsbuildinfo +1 -1
  87. package/package.json +2 -2
  88. package/src/DocumentManager.ts +4 -6
  89. package/src/client/Client.ts +7 -17
  90. package/src/client/ClientDescriptor.ts +7 -3
  91. package/src/files/utils.ts +1 -1
  92. package/src/idb.ts +19 -0
  93. package/src/index.ts +1 -0
  94. package/src/migration/db.ts +147 -0
  95. package/src/migration/errors.ts +7 -0
  96. package/src/{openDocumentDatabase.ts → migration/openDatabase.ts} +73 -206
  97. package/src/migration/paths.test.ts +93 -0
  98. package/src/migration/paths.ts +73 -0
  99. package/src/queries2/GetQuery.ts +1 -1
  100. package/src/reactives/DocumentFamiliyCache.ts +31 -9
  101. package/src/reactives/Entity.ts +2 -9
  102. package/src/sync/Heartbeat.ts +1 -1
  103. package/src/sync/WebSocketSync.ts +9 -0
  104. package/dist/cjs/openDocumentDatabase.js.map +0 -1
  105. package/dist/esm/openDocumentDatabase.js.map +0 -1
@@ -1,14 +1,16 @@
1
- import { addFieldDefaults, assignIndexValues, assignOidPropertiesToAllSubObjects, assignOidsToAllSubObjects, cloneDeep, createOid, decomposeOid, diffToPatches, initialToPatches, migrationRange, removeOidPropertiesFromAllSubObjects, removeOidsFromAllSubObjects, } from '@verdant-web/common';
2
- import { findAllOids, findOneOid } from './queries2/dbQueries.js';
1
+ import { addFieldDefaults, assert, assignIndexValues, assignOidPropertiesToAllSubObjects, assignOidsToAllSubObjects, cloneDeep, createOid, decomposeOid, diffToPatches, hasOid, initialToPatches, removeOidPropertiesFromAllSubObjects, } from '@verdant-web/common';
2
+ import { findAllOids, findOneOid } from '../queries2/dbQueries.js';
3
+ import { acquireLock, closeDatabase, getDatabaseVersion, openDatabase, upgradeDatabase, } from './db.js';
4
+ import { getMigrationPath } from './paths.js';
3
5
  const globalIDB = typeof window !== 'undefined' ? window.indexedDB : undefined;
4
6
  export async function openDocumentDatabase({ version, indexedDB = globalIDB, migrations, meta, context, }) {
5
7
  const currentVersion = await getDatabaseVersion(indexedDB, context.namespace, version, context.log);
6
8
  context.log('Current database version:', currentVersion, 'target version:', version);
7
- const toRunVersions = migrationRange(currentVersion, version);
8
- const toRun = toRunVersions.map((ver) => migrations.find((m) => m.version === ver));
9
- if (toRun.some((m) => !m)) {
10
- throw new Error(`No migration found for version(s) ${toRunVersions}`);
11
- }
9
+ const toRun = getMigrationPath({
10
+ currentVersion,
11
+ targetVersion: version,
12
+ migrations,
13
+ });
12
14
  if (toRun.length > 0) {
13
15
  await acquireLock(context.namespace, async () => {
14
16
  // now the fun part
@@ -77,7 +79,7 @@ export async function openDocumentDatabase({ version, indexedDB = globalIDB, mig
77
79
  const readStore = documentReadTransaction.objectStore(collection);
78
80
  const keys = await getAllKeys(readStore);
79
81
  // map the keys to OIDs
80
- const oids = keys.map((key) => createOid(collection, `${key}`, []));
82
+ const oids = keys.map((key) => createOid(collection, `${key}`));
81
83
  oids.push(...engine.newOids.filter((oid) => {
82
84
  return decomposeOid(oid).collection === collection;
83
85
  }));
@@ -140,59 +142,6 @@ export async function openDocumentDatabase({ version, indexedDB = globalIDB, mig
140
142
  return openDatabase(indexedDB, context.namespace, version);
141
143
  }
142
144
  }
143
- async function getDatabaseVersion(indexedDB, namespace, version, log) {
144
- function openAndGetVersion(resolve, reject) {
145
- let currentVersion;
146
- let database;
147
- const request = indexedDB.open([namespace, 'collections'].join('_'), version);
148
- request.onupgradeneeded = async (event) => {
149
- currentVersion = event.oldVersion;
150
- const transaction = request.transaction;
151
- database = request.result;
152
- transaction.abort();
153
- };
154
- request.onsuccess = (event) => {
155
- resolve([request.result.version, request.result]);
156
- };
157
- request.onblocked = (event) => {
158
- // retry if blocked
159
- log === null || log === void 0 ? void 0 : log('Database blocked, waiting...');
160
- // setTimeout(() => {
161
- // openAndGetVersion(resolve, reject);
162
- // }, 200);
163
- };
164
- request.onerror = (event) => {
165
- // FIXME: this fails if the code is older than the local database
166
- resolve([currentVersion, database]);
167
- };
168
- }
169
- const [currentVersion, db] = await new Promise(openAndGetVersion);
170
- await closeDatabase(db);
171
- return currentVersion;
172
- }
173
- async function openDatabase(indexedDb, namespace, version) {
174
- const db = await new Promise((resolve, reject) => {
175
- const request = indexedDb.open([namespace, 'collections'].join('_'), version);
176
- request.onupgradeneeded = async (event) => {
177
- const transaction = request.transaction;
178
- transaction.abort();
179
- reject(new Error('Migration error: database version changed while migrating'));
180
- };
181
- request.onsuccess = (event) => {
182
- resolve(request.result);
183
- };
184
- request.onblocked = (event) => {
185
- reject(new Error('Migration error: database blocked'));
186
- };
187
- request.onerror = (event) => {
188
- reject(new Error('Migration error: database error'));
189
- };
190
- });
191
- db.addEventListener('versionchange', (event) => {
192
- db.close();
193
- });
194
- return db;
195
- }
196
145
  function getMigrationMutations({ migration, meta, getMigrationNow, newOids, }) {
197
146
  return migration.allCollections.reduce((acc, collectionName) => {
198
147
  acc[collectionName] = {
@@ -200,13 +149,13 @@ function getMigrationMutations({ migration, meta, getMigrationNow, newOids, }) {
200
149
  // add defaults
201
150
  addFieldDefaults(migration.newSchema.collections[collectionName], doc);
202
151
  const primaryKey = doc[migration.newSchema.collections[collectionName].primaryKey];
203
- const oid = createOid(collectionName, primaryKey, []);
152
+ const oid = createOid(collectionName, primaryKey);
204
153
  newOids.push(oid);
205
154
  await meta.insertLocalOperation(initialToPatches(doc, oid, getMigrationNow));
206
155
  return doc;
207
156
  },
208
157
  delete: (id) => {
209
- const oid = createOid(collectionName, id, []);
158
+ const oid = createOid(collectionName, id);
210
159
  return meta.insertLocalOperation([
211
160
  {
212
161
  oid,
@@ -219,17 +168,13 @@ function getMigrationMutations({ migration, meta, getMigrationNow, newOids, }) {
219
168
  return acc;
220
169
  }, {});
221
170
  }
222
- function getMigrationEngine({ meta, migration, context, }) {
223
- function getMigrationNow() {
224
- return meta.time.zero(migration.version);
225
- }
226
- const newOids = new Array();
227
- const queries = migration.oldCollections.reduce((acc, collectionName) => {
171
+ function getMigrationQueries({ migration, context, meta, }) {
172
+ return migration.oldCollections.reduce((acc, collectionName) => {
228
173
  acc[collectionName] = {
229
174
  get: async (id) => {
230
- const oid = createOid(collectionName, id, []);
175
+ const oid = createOid(collectionName, id);
231
176
  const doc = await meta.getDocumentSnapshot(oid);
232
- removeOidsFromAllSubObjects(doc);
177
+ // removeOidsFromAllSubObjects(doc);
233
178
  return doc;
234
179
  },
235
180
  findOne: async (filter) => {
@@ -241,7 +186,7 @@ function getMigrationEngine({ meta, migration, context, }) {
241
186
  if (!oid)
242
187
  return null;
243
188
  const doc = await meta.getDocumentSnapshot(oid);
244
- removeOidsFromAllSubObjects(doc);
189
+ // removeOidsFromAllSubObjects(doc);
245
190
  return doc;
246
191
  },
247
192
  findAll: async (filter) => {
@@ -251,12 +196,23 @@ function getMigrationEngine({ meta, migration, context, }) {
251
196
  context,
252
197
  });
253
198
  const docs = await Promise.all(oids.map((oid) => meta.getDocumentSnapshot(oid)));
254
- docs.forEach((doc) => removeOidsFromAllSubObjects(doc));
199
+ // docs.forEach((doc) => removeOidsFromAllSubObjects(doc));
255
200
  return docs;
256
201
  },
257
202
  };
258
203
  return acc;
259
204
  }, {});
205
+ }
206
+ function getMigrationEngine({ meta, migration, context, }) {
207
+ function getMigrationNow() {
208
+ return meta.time.zero(migration.version);
209
+ }
210
+ const newOids = new Array();
211
+ const queries = getMigrationQueries({
212
+ migration,
213
+ context,
214
+ meta,
215
+ });
260
216
  const mutations = getMigrationMutations({
261
217
  migration,
262
218
  getMigrationNow,
@@ -265,38 +221,22 @@ function getMigrationEngine({ meta, migration, context, }) {
265
221
  });
266
222
  const awaitables = new Array();
267
223
  const engine = {
224
+ log: context.log,
268
225
  newOids,
269
226
  migrate: async (collection, strategy) => {
270
- const docs = await new Promise((resolve, reject) => {
271
- const transaction = context.documentDb.transaction(collection, 'readonly');
272
- const store = transaction.objectStore(collection);
273
- const cursorReq = store.openCursor();
274
- const documentsToMigrate = [];
275
- cursorReq.onsuccess = async (event) => {
276
- const cursor = cursorReq.result;
277
- if (cursor) {
278
- documentsToMigrate.push(cursor.value);
279
- cursor.continue();
280
- }
281
- else {
282
- resolve(documentsToMigrate);
283
- }
284
- };
285
- cursorReq.onerror = (event) => {
286
- reject(cursorReq.error);
287
- };
288
- });
227
+ const docs = await queries[collection].findAll();
289
228
  await Promise.all(docs.map(async (doc) => {
229
+ assert(hasOid(doc), `Document is missing an OID: ${JSON.stringify(doc)}`);
290
230
  const original = cloneDeep(doc);
291
231
  // remove any indexes before computing the diff
292
- const collectionSpec = migration.oldSchema.collections[collection];
293
- const indexKeys = [
294
- ...Object.keys(collectionSpec.synthetics || {}),
295
- ...Object.keys(collectionSpec.compounds || {}),
296
- ];
297
- indexKeys.forEach((key) => {
298
- delete doc[key];
299
- });
232
+ // const collectionSpec = migration.oldSchema.collections[collection];
233
+ // const indexKeys = [
234
+ // ...Object.keys(collectionSpec.synthetics || {}),
235
+ // ...Object.keys(collectionSpec.compounds || {}),
236
+ // ];
237
+ // indexKeys.forEach((key) => {
238
+ // delete doc[key];
239
+ // });
300
240
  // @ts-ignore - excessive type resolution
301
241
  const newValue = await strategy(doc);
302
242
  if (newValue) {
@@ -306,7 +246,7 @@ function getMigrationEngine({ meta, migration, context, }) {
306
246
  removeOidPropertiesFromAllSubObjects(original);
307
247
  removeOidPropertiesFromAllSubObjects(newValue);
308
248
  assignOidsToAllSubObjects(newValue);
309
- const patches = diffToPatches(original, newValue, getMigrationNow, [], undefined, [], {
249
+ const patches = diffToPatches(original, newValue, getMigrationNow, undefined, [], {
310
250
  mergeUnknownObjects: true,
311
251
  });
312
252
  if (patches.length > 0) {
@@ -321,7 +261,7 @@ function getMigrationEngine({ meta, migration, context, }) {
321
261
  };
322
262
  return engine;
323
263
  }
324
- function getVersion1MigrationEngine({ meta, migration, }) {
264
+ function getVersion1MigrationEngine({ meta, migration, context, }) {
325
265
  function getMigrationNow() {
326
266
  return meta.time.zero(migration.version);
327
267
  }
@@ -338,6 +278,7 @@ function getVersion1MigrationEngine({ meta, migration, }) {
338
278
  meta,
339
279
  });
340
280
  const engine = {
281
+ log: context.log,
341
282
  newOids,
342
283
  migrate: (collection, strategy) => {
343
284
  throw new Error('Calling migrate() in version 1 migrations is not supported! Use version 1 migrations to seed initial data using mutations.');
@@ -348,41 +289,6 @@ function getVersion1MigrationEngine({ meta, migration, }) {
348
289
  };
349
290
  return engine;
350
291
  }
351
- async function closeDatabase(db) {
352
- db.close();
353
- // FIXME: this isn't right!!!!
354
- await new Promise((resolve) => resolve());
355
- }
356
- async function upgradeDatabase(indexedDb, namespace, version, upgrader, log) {
357
- function openAndUpgrade(resolve, reject) {
358
- const request = indexedDb.open([namespace, 'collections'].join('_'), version);
359
- let wasUpgraded = false;
360
- request.onupgradeneeded = (event) => {
361
- const transaction = request.transaction;
362
- upgrader(transaction, request.result, event);
363
- wasUpgraded = true;
364
- };
365
- request.onsuccess = (event) => {
366
- request.result.close();
367
- if (wasUpgraded) {
368
- resolve();
369
- }
370
- else {
371
- reject(new Error('Database was not upgraded when a version change was expected'));
372
- }
373
- };
374
- request.onerror = (event) => {
375
- reject(request.error || new Error('Unknown error'));
376
- };
377
- request.onblocked = (event) => {
378
- log === null || log === void 0 ? void 0 : log('Database upgrade blocked, waiting...');
379
- // setTimeout(() => {
380
- // openAndUpgrade(resolve, reject);
381
- // }, 200);
382
- };
383
- }
384
- return new Promise(openAndUpgrade);
385
- }
386
292
  async function getAllKeys(store) {
387
293
  return new Promise((resolve, reject) => {
388
294
  const request = store.getAllKeys();
@@ -416,13 +322,4 @@ async function putView(store, view) {
416
322
  };
417
323
  });
418
324
  }
419
- async function acquireLock(namespace, procedure) {
420
- if (typeof navigator !== 'undefined' && navigator.locks) {
421
- await navigator.locks.request(`lo-fi_migration_${namespace}`, procedure);
422
- }
423
- else {
424
- // TODO: is there a fallback?
425
- await procedure();
426
- }
427
- }
428
- //# sourceMappingURL=openDocumentDatabase.js.map
325
+ //# sourceMappingURL=openDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openDatabase.js","sourceRoot":"","sources":["../../../src/migration/openDatabase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from '@verdant-web/common';
2
+ export declare function getMigrationPath({ currentVersion, targetVersion, migrations, }: {
3
+ currentVersion: number;
4
+ targetVersion: number;
5
+ migrations: Migration[];
6
+ }): Migration<any, any>[];
@@ -0,0 +1,49 @@
1
+ import { MigrationPathError } from './errors.js';
2
+ export function getMigrationPath({ currentVersion, targetVersion, migrations, }) {
3
+ const path = getNextPathStep({
4
+ currentVersion,
5
+ targetVersion,
6
+ migrations,
7
+ });
8
+ if (!path) {
9
+ throw new MigrationPathError(`No migration path found from ${currentVersion} to ${targetVersion}! This is a bug. If you're seeing this, contact the developer and provide them with the full contents of this message.`);
10
+ }
11
+ return path;
12
+ }
13
+ function getNextPathStep({ currentVersion, targetVersion, migrations, }) {
14
+ if (currentVersion === targetVersion) {
15
+ return [];
16
+ }
17
+ const fromHere = migrations
18
+ .filter((m) => m.oldSchema.version === currentVersion)
19
+ .sort((a, b) => b.newSchema.version - a.newSchema.version);
20
+ // keep trying next steps, starting from the largest step,
21
+ // until we find one that leads to the target version down the line
22
+ while (fromHere.length > 0) {
23
+ const next = fromHere.shift();
24
+ // this one goes too far (probably never relevant, but still)
25
+ if (next.newSchema.version > targetVersion) {
26
+ return null;
27
+ }
28
+ // exact match - we're done, return the path
29
+ if (next.newSchema.version === targetVersion) {
30
+ return [next];
31
+ }
32
+ // look ahead a down the line. do we reach the target? if so,
33
+ // we choose this path.
34
+ const nextPath = getNextPathStep({
35
+ currentVersion: next.newSchema.version,
36
+ targetVersion,
37
+ migrations,
38
+ });
39
+ if (nextPath) {
40
+ return [next, ...nextPath];
41
+ }
42
+ // otherwise, try the next one with a smaller increment
43
+ }
44
+ // no paths from here match at all! if another layer is calling this one,
45
+ // it will fallback to its next longest step. otherwise there may
46
+ // be no paths at all...
47
+ return null;
48
+ }
49
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/migration/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,EAChC,cAAc,EACd,aAAa,EACb,UAAU,GAKV;IACA,MAAM,IAAI,GAAG,eAAe,CAAC;QAC5B,cAAc;QACd,aAAa;QACb,UAAU;KACV,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE;QACV,MAAM,IAAI,kBAAkB,CAC3B,gCAAgC,cAAc,OAAO,aAAa,wHAAwH,CAC1L,CAAC;KACF;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,EACxB,cAAc,EACd,aAAa,EACb,UAAU,GAKV;IACA,IAAI,cAAc,KAAK,aAAa,EAAE;QACrC,OAAO,EAAE,CAAC;KACV;IAED,MAAM,QAAQ,GAAG,UAAU;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,cAAc,CAAC;SACrD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5D,0DAA0D;IAC1D,mEAAmE;IACnE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAG,CAAC;QAC/B,6DAA6D;QAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,aAAa,EAAE;YAC3C,OAAO,IAAI,CAAC;SACZ;QACD,4CAA4C;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;SACd;QACD,6DAA6D;QAC7D,uBAAuB;QACvB,MAAM,QAAQ,GAAG,eAAe,CAAC;YAChC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;YACtC,aAAa;YACb,UAAU;SACV,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE;YACb,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;SAC3B;QAED,uDAAuD;KACvD;IAED,yEAAyE;IACzE,iEAAiE;IACjE,wBAAwB;IACxB,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { getMigrationPath } from './paths.js';
3
+ function mockMigration(from, to) {
4
+ return {
5
+ oldSchema: {
6
+ version: from,
7
+ },
8
+ newSchema: {
9
+ version: to,
10
+ },
11
+ };
12
+ }
13
+ describe('migration pathfinding', () => {
14
+ it('should follow a linear chain', () => {
15
+ const migrations = [
16
+ mockMigration(0, 1),
17
+ mockMigration(1, 2),
18
+ mockMigration(2, 3),
19
+ mockMigration(3, 4),
20
+ mockMigration(4, 5),
21
+ ];
22
+ const path = getMigrationPath({
23
+ currentVersion: 0,
24
+ targetVersion: 5,
25
+ migrations,
26
+ });
27
+ expect(path).toEqual(migrations);
28
+ });
29
+ it('should choose the shortest path', () => {
30
+ const migrations = [
31
+ mockMigration(0, 1),
32
+ mockMigration(1, 2),
33
+ mockMigration(2, 3),
34
+ mockMigration(3, 4),
35
+ mockMigration(4, 5),
36
+ mockMigration(0, 5),
37
+ ];
38
+ const path = getMigrationPath({
39
+ currentVersion: 0,
40
+ targetVersion: 5,
41
+ migrations,
42
+ });
43
+ expect(path).toEqual([mockMigration(0, 5)]);
44
+ });
45
+ it('should be resilient to dead ends', () => {
46
+ const migrations = [
47
+ mockMigration(0, 1),
48
+ mockMigration(1, 2),
49
+ mockMigration(4, 5),
50
+ mockMigration(5, 6),
51
+ mockMigration(1, 4),
52
+ ];
53
+ const path = getMigrationPath({
54
+ currentVersion: 0,
55
+ targetVersion: 6,
56
+ migrations,
57
+ });
58
+ expect(path).toEqual([
59
+ mockMigration(0, 1),
60
+ mockMigration(1, 4),
61
+ mockMigration(4, 5),
62
+ mockMigration(5, 6),
63
+ ]);
64
+ });
65
+ it('should error when no path exists to target', () => {
66
+ const migrations = [
67
+ mockMigration(0, 1),
68
+ mockMigration(2, 3),
69
+ mockMigration(3, 4),
70
+ mockMigration(4, 5),
71
+ mockMigration(5, 6),
72
+ ];
73
+ expect(() => {
74
+ getMigrationPath({
75
+ currentVersion: 0,
76
+ targetVersion: 6,
77
+ migrations,
78
+ });
79
+ }).toThrow();
80
+ });
81
+ it('should return empty when versions are the same', () => {
82
+ expect(getMigrationPath({
83
+ currentVersion: 1,
84
+ targetVersion: 1,
85
+ migrations: [],
86
+ })).toEqual([]);
87
+ });
88
+ });
89
+ //# sourceMappingURL=paths.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/migration/paths.test.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export class GetQuery extends BaseQuery {
19
19
  const value = await this.hydrate(this.oid);
20
20
  this.setValue(value);
21
21
  };
22
- this.oid = createOid(rest.collection, id, []);
22
+ this.oid = createOid(rest.collection, id);
23
23
  this.hydrate = hydrate;
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GetQuery.js","sourceRoot":"","sources":["../../../src/queries2/GetQuery.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAE7D,MAAM,OAAO,QAAY,SAAQ,SAAmB;IAInD,YAAY,EAOmC;YAPnC,EACX,EAAE,EACF,OAAO,OAKuC,EAJ3C,IAAI,cAHI,iBAIX,CADO;QAKP,KAAK,iBACJ,OAAO,EAAE,IAAI,IACV,IAAI,EACN,CAAC;QAKM,QAAG,GAAG,KAAK,IAAI,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QAPD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CAMD"}
1
+ {"version":3,"file":"GetQuery.js","sourceRoot":"","sources":["../../../src/queries2/GetQuery.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAE7D,MAAM,OAAO,QAAY,SAAQ,SAAmB;IAInD,YAAY,EAOmC;YAPnC,EACX,EAAE,EACF,OAAO,OAKuC,EAJ3C,IAAI,cAHI,iBAIX,CADO;QAKP,KAAK,iBACJ,OAAO,EAAE,IAAI,IACV,IAAI,EACN,CAAC;QAKM,QAAG,GAAG,KAAK,IAAI,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QAPD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CAMD"}
@@ -42,7 +42,11 @@ export declare class DocumentFamilyCache extends EventSubscriber<Record<`change:
42
42
  deleted: boolean;
43
43
  lastTimestamp: number | null;
44
44
  };
45
- computeConfirmedView: (oid: ObjectIdentifier) => any;
45
+ computeConfirmedView: (oid: ObjectIdentifier) => {
46
+ view: any;
47
+ deleted: boolean;
48
+ empty: boolean;
49
+ };
46
50
  getLastTimestamp: (oid: ObjectIdentifier) => number | null;
47
51
  getEntity: (oid: ObjectIdentifier, schema: StorageFieldSchema, parent?: Entity) => Entity;
48
52
  hasOid: (oid: ObjectIdentifier) => boolean;
@@ -115,11 +115,15 @@ export class DocumentFamilyCache extends EventSubscriber {
115
115
  }
116
116
  }
117
117
  }
118
- return { view, deleted };
118
+ return { view, deleted, empty: !view && !operations.length };
119
119
  };
120
120
  this.computeView = (oid) => {
121
121
  const confirmed = this.computeConfirmedView(oid);
122
122
  const unconfirmedOperations = this.unconfirmedOperationsMap.get(oid) || [];
123
+ if (confirmed.empty && !unconfirmedOperations.length) {
124
+ this.context.log('debug', `Entity ${oid} accessed with no local data at all`);
125
+ return { view: null, deleted: true, lastTimestamp: null };
126
+ }
123
127
  let { view, deleted } = this.applyOperations(confirmed.view, confirmed.deleted, unconfirmedOperations);
124
128
  if (view) {
125
129
  assignOid(view, oid);
@@ -129,15 +133,15 @@ export class DocumentFamilyCache extends EventSubscriber {
129
133
  this.computeConfirmedView = (oid) => {
130
134
  const baseline = this.baselinesMap.get(oid);
131
135
  const operations = this.operationsMap.get(oid) || [];
132
- let view = cloneDeep((baseline === null || baseline === void 0 ? void 0 : baseline.snapshot) || undefined);
133
- view = this.applyOperations(view, !view, operations, baseline === null || baseline === void 0 ? void 0 : baseline.timestamp);
134
- if (view) {
135
- assignOid(view, oid);
136
+ const snapshot = cloneDeep((baseline === null || baseline === void 0 ? void 0 : baseline.snapshot) || undefined);
137
+ const result = this.applyOperations(snapshot, !snapshot, operations, baseline === null || baseline === void 0 ? void 0 : baseline.timestamp);
138
+ if (result.view) {
139
+ assignOid(result.view, oid);
136
140
  }
137
- if (!baseline && !operations.length) {
141
+ if (result.empty) {
138
142
  this.context.log('debug', `Entity ${oid} accessed with no confirmed data`);
139
143
  }
140
- return view;
144
+ return result;
141
145
  };
142
146
  this.getLastTimestamp = (oid) => {
143
147
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentFamiliyCache.js","sourceRoot":"","sources":["../../../src/reactives/DocumentFamiliyCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentFamiliyCache.js","sourceRoot":"","sources":["../../../src/reactives/DocumentFamiliyCache.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,6 @@ export declare class Entity<Init = any, KeyValue extends BaseEntityValue = any,
52
52
  readonly collection: string;
53
53
  protected readonly store: StoreTools;
54
54
  protected readonly fieldSchema: StorageFieldSchema | StorageFieldsSchema;
55
- protected readonly keyPath: import("@verdant-web/common").KeyPath;
56
55
  protected readonly cache: CacheTools;
57
56
  protected _deleted: boolean;
58
57
  protected parent: WeakRef<Entity<any, any>> | undefined;
@@ -254,7 +254,7 @@ export class Entity {
254
254
  return Object.values(this.getAll());
255
255
  };
256
256
  this.set = (key, value) => {
257
- this.addPatches(this.store.patchCreator.createSet(this.oid, key, this.processInputValue(value, key), this.keyPath));
257
+ this.addPatches(this.store.patchCreator.createSet(this.oid, key, this.processInputValue(value, key)));
258
258
  };
259
259
  this.delete = (key) => {
260
260
  if (Array.isArray(this.value)) {
@@ -270,7 +270,7 @@ export class Entity {
270
270
  this.addPatches(this.store.patchCreator.createRemove(this.oid, key));
271
271
  }
272
272
  else {
273
- this.addPatches(this.store.patchCreator.createSet(this.oid, key, null, this.keyPath));
273
+ this.addPatches(this.store.patchCreator.createSet(this.oid, key, null));
274
274
  }
275
275
  }
276
276
  };
@@ -324,7 +324,7 @@ export class Entity {
324
324
  }
325
325
  }
326
326
  const withoutFiles = processValueFiles(value, this.store.addFile);
327
- this.addPatches(this.store.patchCreator.createDiff(this.getSnapshot(), assignOid(withoutFiles, this.oid), this.keyPath, {
327
+ this.addPatches(this.store.patchCreator.createDiff(this.getSnapshot(), assignOid(withoutFiles, this.oid), {
328
328
  mergeUnknownObjects: !replaceSubObjects,
329
329
  defaultUndefined: merge,
330
330
  }));
@@ -413,13 +413,11 @@ export class Entity {
413
413
  this.getAsWrapped().forEach(callback);
414
414
  };
415
415
  this.oid = oid;
416
- const { collection, keyPath } = decomposeOid(oid);
416
+ const { collection } = decomposeOid(oid);
417
417
  this.collection = collection;
418
418
  this.parent = parent && new WeakRef(parent);
419
419
  this.store = store;
420
420
  this.fieldSchema = fieldSchema;
421
- // TODO: remove, this is not safe
422
- this.keyPath = keyPath;
423
421
  this.cache = cache;
424
422
  const { view, deleted, lastTimestamp } = this.cache.computeView(oid);
425
423
  this._current = view;