@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.
- package/dist/cjs/DocumentManager.js +4 -4
- package/dist/cjs/DocumentManager.js.map +1 -1
- package/dist/cjs/client/Client.js +4 -16
- package/dist/cjs/client/Client.js.map +1 -1
- package/dist/cjs/client/ClientDescriptor.d.ts +1 -0
- package/dist/cjs/client/ClientDescriptor.js +7 -3
- package/dist/cjs/client/ClientDescriptor.js.map +1 -1
- package/dist/cjs/files/utils.js +1 -1
- package/dist/cjs/files/utils.js.map +1 -1
- package/dist/cjs/idb.d.ts +1 -0
- package/dist/cjs/idb.js +17 -1
- package/dist/cjs/idb.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/migration/db.d.ts +8 -0
- package/dist/cjs/migration/db.js +109 -0
- package/dist/cjs/migration/db.js.map +1 -0
- package/dist/cjs/migration/errors.d.ts +5 -0
- package/dist/cjs/migration/errors.js +12 -0
- package/dist/cjs/migration/errors.js.map +1 -0
- package/dist/cjs/{openDocumentDatabase.d.ts → migration/openDatabase.d.ts} +2 -2
- package/dist/cjs/{openDocumentDatabase.js → migration/openDatabase.js} +52 -155
- package/dist/cjs/migration/openDatabase.js.map +1 -0
- package/dist/cjs/migration/paths.d.ts +6 -0
- package/dist/cjs/migration/paths.js +53 -0
- package/dist/cjs/migration/paths.js.map +1 -0
- package/dist/cjs/migration/paths.test.d.ts +1 -0
- package/dist/cjs/migration/paths.test.js +91 -0
- package/dist/cjs/migration/paths.test.js.map +1 -0
- package/dist/cjs/queries2/GetQuery.js +1 -1
- package/dist/cjs/queries2/GetQuery.js.map +1 -1
- package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +5 -1
- package/dist/cjs/reactives/DocumentFamiliyCache.js +11 -7
- package/dist/cjs/reactives/DocumentFamiliyCache.js.map +1 -1
- package/dist/cjs/reactives/Entity.d.ts +0 -1
- package/dist/cjs/reactives/Entity.js +4 -6
- package/dist/cjs/reactives/Entity.js.map +1 -1
- package/dist/cjs/sync/Heartbeat.js +1 -1
- package/dist/cjs/sync/Heartbeat.js.map +1 -1
- package/dist/cjs/sync/WebSocketSync.js +6 -0
- package/dist/cjs/sync/WebSocketSync.js.map +1 -1
- package/dist/esm/DocumentManager.js +4 -4
- package/dist/esm/DocumentManager.js.map +1 -1
- package/dist/esm/client/Client.js +3 -15
- package/dist/esm/client/Client.js.map +1 -1
- package/dist/esm/client/ClientDescriptor.d.ts +1 -0
- package/dist/esm/client/ClientDescriptor.js +6 -2
- package/dist/esm/client/ClientDescriptor.js.map +1 -1
- package/dist/esm/files/utils.js +1 -1
- package/dist/esm/files/utils.js.map +1 -1
- package/dist/esm/idb.d.ts +1 -0
- package/dist/esm/idb.js +15 -0
- package/dist/esm/idb.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/migration/db.d.ts +8 -0
- package/dist/esm/migration/db.js +101 -0
- package/dist/esm/migration/db.js.map +1 -0
- package/dist/esm/migration/errors.d.ts +5 -0
- package/dist/esm/migration/errors.js +8 -0
- package/dist/esm/migration/errors.js.map +1 -0
- package/dist/esm/{openDocumentDatabase.d.ts → migration/openDatabase.d.ts} +2 -2
- package/dist/esm/{openDocumentDatabase.js → migration/openDatabase.js} +44 -147
- package/dist/esm/migration/openDatabase.js.map +1 -0
- package/dist/esm/migration/paths.d.ts +6 -0
- package/dist/esm/migration/paths.js +49 -0
- package/dist/esm/migration/paths.js.map +1 -0
- package/dist/esm/migration/paths.test.d.ts +1 -0
- package/dist/esm/migration/paths.test.js +89 -0
- package/dist/esm/migration/paths.test.js.map +1 -0
- package/dist/esm/queries2/GetQuery.js +1 -1
- package/dist/esm/queries2/GetQuery.js.map +1 -1
- package/dist/esm/reactives/DocumentFamiliyCache.d.ts +5 -1
- package/dist/esm/reactives/DocumentFamiliyCache.js +11 -7
- package/dist/esm/reactives/DocumentFamiliyCache.js.map +1 -1
- package/dist/esm/reactives/Entity.d.ts +0 -1
- package/dist/esm/reactives/Entity.js +4 -6
- package/dist/esm/reactives/Entity.js.map +1 -1
- package/dist/esm/sync/Heartbeat.js +1 -1
- package/dist/esm/sync/Heartbeat.js.map +1 -1
- package/dist/esm/sync/WebSocketSync.js +6 -0
- package/dist/esm/sync/WebSocketSync.js.map +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/DocumentManager.ts +4 -6
- package/src/client/Client.ts +7 -17
- package/src/client/ClientDescriptor.ts +7 -3
- package/src/files/utils.ts +1 -1
- package/src/idb.ts +19 -0
- package/src/index.ts +1 -0
- package/src/migration/db.ts +147 -0
- package/src/migration/errors.ts +7 -0
- package/src/{openDocumentDatabase.ts → migration/openDatabase.ts} +73 -206
- package/src/migration/paths.test.ts +93 -0
- package/src/migration/paths.ts +73 -0
- package/src/queries2/GetQuery.ts +1 -1
- package/src/reactives/DocumentFamiliyCache.ts +31 -9
- package/src/reactives/Entity.ts +2 -9
- package/src/sync/Heartbeat.ts +1 -1
- package/src/sync/WebSocketSync.ts +9 -0
- package/dist/cjs/openDocumentDatabase.js.map +0 -1
- package/dist/esm/openDocumentDatabase.js.map +0 -1
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { addFieldDefaults, assignIndexValues, assignOidPropertiesToAllSubObjects, assignOidsToAllSubObjects, cloneDeep, createOid, decomposeOid, diffToPatches,
|
|
2
|
-
import { findAllOids, findOneOid } from '
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
223
|
-
|
|
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
|
|
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
|
-
|
|
295
|
-
|
|
296
|
-
];
|
|
297
|
-
indexKeys.forEach((key) => {
|
|
298
|
-
|
|
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,
|
|
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
|
-
|
|
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,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":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,SAAS,aAAa,CAAC,IAAY,EAAE,EAAU;IAC9C,OAAO;QACN,SAAS,EAAE;YACV,OAAO,EAAE,IAAI;SACb;QACD,SAAS,EAAE;YACV,OAAO,EAAE,EAAE;SACX;KACmB,CAAC;AACvB,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG;YAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,gBAAgB,CAAC;YAC7B,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,UAAU;SACV,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC1C,MAAM,UAAU,GAAG;YAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,gBAAgB,CAAC;YAC7B,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,UAAU;SACV,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,UAAU,GAAG;YAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,gBAAgB,CAAC;YAC7B,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,UAAU;SACV,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACpB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,UAAU,GAAG;YAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAC;QACF,MAAM,CAAC,GAAG,EAAE;YACX,gBAAgB,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;gBAChB,UAAU;aACV,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,MAAM,CACL,gBAAgB,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,EAAE;SACd,CAAC,CACF,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -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,
|
|
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) =>
|
|
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
|
-
|
|
133
|
-
|
|
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 (
|
|
141
|
+
if (result.empty) {
|
|
138
142
|
this.context.log('debug', `Entity ${oid} accessed with no confirmed data`);
|
|
139
143
|
}
|
|
140
|
-
return
|
|
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)
|
|
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
|
|
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),
|
|
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
|
|
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;
|