@dxos/echo-db 2.28.6-dev.ca9d0e33 → 2.28.7-dev.1dc18bee
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/src/api/link.d.ts.map +1 -1
- package/dist/src/api/link.js +1 -0
- package/dist/src/api/link.js.map +1 -1
- package/dist/src/database/data-service-host.d.ts.map +1 -1
- package/dist/src/database/data-service-host.js +14 -3
- package/dist/src/database/data-service-host.js.map +1 -1
- package/dist/src/database/item-demuxer.d.ts +8 -3
- package/dist/src/database/item-demuxer.d.ts.map +1 -1
- package/dist/src/database/item-demuxer.js +39 -10
- package/dist/src/database/item-demuxer.js.map +1 -1
- package/dist/src/database/item-manager.d.ts +3 -11
- package/dist/src/database/item-manager.d.ts.map +1 -1
- package/dist/src/database/item-manager.js +5 -12
- package/dist/src/database/item-manager.js.map +1 -1
- package/dist/src/snapshots/snapshot-store.test.js +2 -1
- package/dist/src/snapshots/snapshot-store.test.js.map +1 -1
- package/dist/src/snapshots/snapshot.test.js +66 -10
- package/dist/src/snapshots/snapshot.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -20
- package/src/api/link.ts +3 -1
- package/src/database/data-service-host.ts +12 -2
- package/src/database/item-demuxer.ts +46 -11
- package/src/database/item-manager.ts +7 -14
- package/src/snapshots/snapshot-store.test.ts +2 -1
- package/src/snapshots/snapshot.test.ts +78 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/api/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;CACnB;AAED;;GAEG;
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/api/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;CACnB;AAED;;GAEG;AAEH,qBAAa,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CACtG,SAAQ,MAAM,CAAC,CAAC,CAAC;gBAOf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAC1C,IAAI,EAAE,QAAQ;IAWhB,IAAI,MAAM,IAAK,IAAI,CAElB;IAED,IAAI,QAAQ,IAAK,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAK,MAAM,CAEtB;IAED,IAAI,MAAM,IAAK,IAAI,CAAC,CAAC,CAAC,CAGrB;IAED,IAAI,MAAM,IAAK,IAAI,CAAC,CAAC,CAAC,CAGrB;CAQF"}
|
package/dist/src/api/link.js
CHANGED
|
@@ -12,6 +12,7 @@ const entity_1 = require("./entity");
|
|
|
12
12
|
/**
|
|
13
13
|
* Link variant of an item. Link two objects together. Can hold a custom model.
|
|
14
14
|
*/
|
|
15
|
+
// TODO(burdon): All links are ObjectModel?
|
|
15
16
|
class Link extends entity_1.Entity {
|
|
16
17
|
constructor(itemManager, itemId, itemType, stateManager, link) {
|
|
17
18
|
super(itemManager, itemId, itemType, stateManager);
|
package/dist/src/api/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/api/link.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAM5B,qCAAkC;AAUlC;;GAEG;AACH,MAAa,
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/api/link.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAM5B,qCAAkC;AAUlC;;GAEG;AACH,2CAA2C;AAC3C,MAAa,IACX,SAAQ,eAAS;IAMjB,YACE,WAAwB,EACxB,MAAc,EACd,QAA8B,EAC9B,YAA0C,EAC1C,IAAc;QAEd,KAAK,CACH,WAAW,EACX,MAAM,EACN,QAAQ,EACR,YAAY,CACb,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,IAAA,gBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,IAAA,gBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAClD,CAAC;CACF;AAnDD,oBAmDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service-host.d.ts","sourceRoot":"","sources":["../../../src/database/data-service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAFb,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,WAAW,EACzB,YAAY,CAAC,sCAA0B;IAG1D;;OAEG;IACH,kBAAkB,IAAK,MAAM,CAAC,0BAA0B,CAAC;IAmDzD;;;;;OAKG;IACH,qBAAqB,CAAE,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAAC,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"data-service-host.d.ts","sourceRoot":"","sources":["../../../src/database/data-service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAFb,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,WAAW,EACzB,YAAY,CAAC,sCAA0B;IAG1D;;OAEG;IACH,kBAAkB,IAAK,MAAM,CAAC,0BAA0B,CAAC;IAmDzD;;;;;OAKG;IACH,qBAAqB,CAAE,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAAC,6BAA6B,CAAC;IAwC9F,KAAK,CAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAK9D"}
|
|
@@ -82,10 +82,21 @@ class DataServiceHost {
|
|
|
82
82
|
*/
|
|
83
83
|
subscribeEntityStream(request) {
|
|
84
84
|
return new codec_protobuf_1.Stream(({ next }) => {
|
|
85
|
-
var _a;
|
|
86
85
|
(0, assert_1.default)(request.itemId);
|
|
87
|
-
const
|
|
88
|
-
|
|
86
|
+
const entityItem = this._itemManager.items.find(item => item.id === request.itemId);
|
|
87
|
+
let snapshot;
|
|
88
|
+
if (entityItem) {
|
|
89
|
+
snapshot = this._itemDemuxer.createItemSnapshot(entityItem);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const entityLink = this._itemManager.links.find(link => link.id === request.itemId);
|
|
93
|
+
if (entityLink) {
|
|
94
|
+
snapshot = this._itemDemuxer.createLinkSnapshot(entityLink);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
(0, debug_2.raise)(new errors_1.EntityNotFoundError(request.itemId));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
89
100
|
log(`Entity stream ${request.itemId}: ${JSON.stringify({ snapshot })}`);
|
|
90
101
|
next({ snapshot });
|
|
91
102
|
return this._itemDemuxer.mutation.on(mutation => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service-host.js","sourceRoot":"","sources":["../../../src/database/data-service-host.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data-service-host.js","sourceRoot":"","sources":["../../../src/database/data-service-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Event } from '@dxos/async';
|
|
3
|
-
import { DatabaseSnapshot, IEchoStream, ItemSnapshot } from '@dxos/echo-protocol';
|
|
3
|
+
import { DatabaseSnapshot, IEchoStream, ItemSnapshot, LinkSnapshot } from '@dxos/echo-protocol';
|
|
4
4
|
import { Model, ModelFactory } from '@dxos/model-factory';
|
|
5
|
-
import {
|
|
5
|
+
import { Item, Link } from '../api';
|
|
6
6
|
import { ItemManager } from './item-manager';
|
|
7
7
|
export interface ItemDemuxerOptions {
|
|
8
8
|
snapshots?: boolean;
|
|
@@ -19,8 +19,13 @@ export declare class ItemDemuxer {
|
|
|
19
19
|
constructor(_itemManager: ItemManager, _modelFactory: ModelFactory, _options?: ItemDemuxerOptions);
|
|
20
20
|
open(): NodeJS.WritableStream;
|
|
21
21
|
createSnapshot(): DatabaseSnapshot;
|
|
22
|
-
|
|
22
|
+
createItemSnapshot(item: Item<Model<any>>): ItemSnapshot;
|
|
23
|
+
createLinkSnapshot(link: Link<Model<any>>): LinkSnapshot;
|
|
23
24
|
restoreFromSnapshot(snapshot: DatabaseSnapshot): Promise<void>;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Sort based on parents.
|
|
28
|
+
* @param items
|
|
29
|
+
*/
|
|
25
30
|
export declare function sortItemsTopologically(items: ItemSnapshot[]): ItemSnapshot[];
|
|
26
31
|
//# sourceMappingURL=item-demuxer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-demuxer.d.ts","sourceRoot":"","sources":["../../../src/database/item-demuxer.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"item-demuxer.d.ts","sourceRoot":"","sources":["../../../src/database/item-demuxer.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAU,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAU,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAC;AAIvE,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,QAAQ,CAAC,QAAQ,qBAA4B;gBAG1B,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,YAAY,EAC3B,QAAQ,GAAE,kBAAuB;IAGpD,IAAI,IAAK,MAAM,CAAC,cAAc;IAgF9B,cAAc,IAAK,gBAAgB;IAQnC,kBAAkB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;IAYzD,kBAAkB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;IAanD,mBAAmB,CAAE,QAAQ,EAAE,gBAAgB;CAkCtD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAmB7E"}
|
|
@@ -13,7 +13,6 @@ const async_1 = require("@dxos/async");
|
|
|
13
13
|
const debug_2 = require("@dxos/debug");
|
|
14
14
|
const feed_store_1 = require("@dxos/feed-store");
|
|
15
15
|
const util_1 = require("@dxos/util");
|
|
16
|
-
const api_1 = require("../api");
|
|
17
16
|
const log = (0, debug_1.default)('dxos:echo-db:item-demuxer');
|
|
18
17
|
/**
|
|
19
18
|
* Creates a stream that consumes `IEchoStream` messages and routes them to the associated items.
|
|
@@ -34,6 +33,7 @@ class ItemDemuxer {
|
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
});
|
|
36
|
+
// TODO(burdon): Factor out.
|
|
37
37
|
// TODO(burdon): Should this implement some "back-pressure" (hints) to the PartyProcessor?
|
|
38
38
|
return (0, feed_store_1.createWritable)(async (message) => {
|
|
39
39
|
var _a, _b, _c;
|
|
@@ -98,23 +98,34 @@ class ItemDemuxer {
|
|
|
98
98
|
createSnapshot() {
|
|
99
99
|
(0, assert_1.default)(this._options.snapshots, 'Snapshots are disabled');
|
|
100
100
|
return {
|
|
101
|
-
items:
|
|
101
|
+
items: this._itemManager.items.map(item => this.createItemSnapshot(item)),
|
|
102
|
+
links: this._itemManager.links.map(link => this.createLinkSnapshot(link))
|
|
102
103
|
};
|
|
103
104
|
}
|
|
104
|
-
|
|
105
|
+
createItemSnapshot(item) {
|
|
105
106
|
var _a;
|
|
106
|
-
const model =
|
|
107
|
+
const model = item._stateManager.createSnapshot();
|
|
107
108
|
return {
|
|
108
|
-
itemId:
|
|
109
|
-
itemType:
|
|
110
|
-
modelType:
|
|
111
|
-
parentId: (
|
|
109
|
+
itemId: item.id,
|
|
110
|
+
itemType: item.type,
|
|
111
|
+
modelType: item.modelMeta.type,
|
|
112
|
+
parentId: (_a = item.parent) === null || _a === void 0 ? void 0 : _a.id,
|
|
113
|
+
model
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
createLinkSnapshot(link) {
|
|
117
|
+
const model = link._stateManager.createSnapshot();
|
|
118
|
+
return {
|
|
119
|
+
linkId: link.id,
|
|
120
|
+
linkType: link.type,
|
|
121
|
+
modelType: link.modelMeta.type,
|
|
122
|
+
source: link.source.id,
|
|
123
|
+
target: link.target.id,
|
|
112
124
|
model
|
|
113
125
|
};
|
|
114
126
|
}
|
|
115
127
|
async restoreFromSnapshot(snapshot) {
|
|
116
|
-
|
|
117
|
-
const items = (_a = snapshot.items) !== null && _a !== void 0 ? _a : [];
|
|
128
|
+
const { items = [], links = [] } = snapshot;
|
|
118
129
|
log(`Restoring ${items.length} items from snapshot.`);
|
|
119
130
|
for (const item of sortItemsTopologically(items)) {
|
|
120
131
|
(0, assert_1.default)(item.itemId);
|
|
@@ -128,9 +139,27 @@ class ItemDemuxer {
|
|
|
128
139
|
snapshot: item.model
|
|
129
140
|
});
|
|
130
141
|
}
|
|
142
|
+
log(`Restoring ${links.length} links from snapshot.`);
|
|
143
|
+
for (const link of links) {
|
|
144
|
+
(0, assert_1.default)(link.linkId);
|
|
145
|
+
(0, assert_1.default)(link.modelType);
|
|
146
|
+
(0, assert_1.default)(link.model);
|
|
147
|
+
await this._itemManager.constructLink({
|
|
148
|
+
itemId: link.linkId,
|
|
149
|
+
itemType: link.linkType,
|
|
150
|
+
modelType: link.modelType,
|
|
151
|
+
source: link.source,
|
|
152
|
+
target: link.target,
|
|
153
|
+
snapshot: link.model
|
|
154
|
+
});
|
|
155
|
+
}
|
|
131
156
|
}
|
|
132
157
|
}
|
|
133
158
|
exports.ItemDemuxer = ItemDemuxer;
|
|
159
|
+
/**
|
|
160
|
+
* Sort based on parents.
|
|
161
|
+
* @param items
|
|
162
|
+
*/
|
|
134
163
|
function sortItemsTopologically(items) {
|
|
135
164
|
const snapshots = [];
|
|
136
165
|
const seenIds = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-demuxer.js","sourceRoot":"","sources":["../../../src/database/item-demuxer.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,uCAAoC;AACpC,uCAA4C;AAE5C,iDAAkD;AAElD,qCAA0C;
|
|
1
|
+
{"version":3,"file":"item-demuxer.js","sourceRoot":"","sources":["../../../src/database/item-demuxer.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,uCAAoC;AACpC,uCAA4C;AAE5C,iDAAkD;AAElD,qCAA0C;AAK1C,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,2BAA2B,CAAC,CAAC;AAM/C;;;GAGG;AACH,MAAa,WAAW;IAGtB,YACmB,YAAyB,EACzB,aAA2B,EAC3B,WAA+B,EAAE;QAFjC,iBAAY,GAAZ,YAAY,CAAa;QACzB,kBAAa,GAAb,aAAa,CAAc;QAC3B,aAAQ,GAAR,QAAQ,CAAyB;QAL3C,aAAQ,GAAG,IAAI,aAAK,EAAe,CAAC;IAM1C,CAAC;IAEJ,IAAI;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE;gBAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBACpD,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAClD;aACF;QACH,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,0FAA0F;QAC1F,OAAO,IAAA,2BAAc,EAAc,KAAK,EAAE,OAAoB,EAAE,EAAE;;YAChE,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAY,CAAC,CAAC,CAAC;YACvD,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YACtF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC;YAEf,EAAE;YACF,YAAY;YACZ,EAAE;YACF,IAAI,OAAO,EAAE;gBACX,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;gBACxC,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;gBAElB,MAAM,SAAS,GAA6B;oBAC1C,MAAM;oBACN,SAAS,EAAE,SAAS;oBACpB,QAAQ,EAAE;wBACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;qBACvD;iBACF,CAAC;gBAEF,IAAI,MAAmB,CAAC;gBACxB,IAAI,OAAO,CAAC,IAAI,EAAE;oBAChB,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;wBAC7C,GAAG,SAAS;wBACZ,QAAQ;wBACR,MAAM,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,mCAAI,IAAA,qBAAa,GAAE;wBAC9C,MAAM,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,mCAAI,IAAA,qBAAa,GAAE;qBAC/C,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;wBAC7C,GAAG,SAAS;wBACZ,QAAQ,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ;wBAChC,QAAQ;qBACT,CAAC,CAAC;iBACJ;gBAED,IAAA,gBAAM,EAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;aAC9B;YAED,EAAE;YACF,8BAA8B;YAC9B,EAAE;YACF,IAAI,YAAY,EAAE;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;gBAEb,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5F;YAED,EAAE;YACF,mBAAmB;YACnB,EAAE;YACF,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE;gBACxB,IAAA,gBAAM,EAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,MAAM,YAAY,GAA6B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAElE,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;aACnE;YAED,IAAI,QAAQ,EAAE;gBACZ,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAI,IAAA,qBAAa,GAAE,CAAC;gBACzE,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAA,gBAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAE,IAAsB;;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAElD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YAC9B,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,EAAE;YACzB,KAAK;SACN,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAE,IAAsB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAElD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACtB,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAE,QAA0B;QACnD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;QAE5C,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE;YAChD,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,IAAA,gBAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,IAAA,gBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,KAAK;aACrB,CAAC,CAAC;SACJ;QAED,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,IAAA,gBAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,IAAA,gBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,KAAK;aACrB,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AA5JD,kCA4JC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAE,KAAqB;IAC3D,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,OAAO,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;QACxC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACtF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1B;SACF;QACD,IAAI,UAAU,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC5F;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAnBD,wDAmBC"}
|
|
@@ -69,21 +69,13 @@ export declare class ItemManager {
|
|
|
69
69
|
private _addEntity;
|
|
70
70
|
/**
|
|
71
71
|
* Constructs an item with the appropriate model.
|
|
72
|
-
* @param itemId
|
|
73
|
-
* @param modelType
|
|
74
|
-
* @param itemType
|
|
75
|
-
* @param readStream - Inbound mutation stream (from multiplexer).
|
|
76
|
-
* @param [parentId] - ItemID of the parent of this Item (optional).
|
|
77
|
-
* @param initialMutations
|
|
78
|
-
* @param modelSnapshot
|
|
79
72
|
*/
|
|
80
|
-
constructItem({ itemId,
|
|
73
|
+
constructItem({ itemId, itemType, modelType, parentId, snapshot }: ItemConstructionOptions): Promise<Item<any>>;
|
|
81
74
|
/**
|
|
82
75
|
* Constructs an item with the appropriate model.
|
|
83
|
-
* @param readStream - Inbound mutation stream (from multiplexer).
|
|
84
|
-
* @param parentId - ItemID of the parent of this Item (optional).
|
|
85
76
|
*/
|
|
86
|
-
constructLink({ itemId,
|
|
77
|
+
constructLink({ itemId, // TODO(burdon): linkId?
|
|
78
|
+
itemType, modelType, snapshot, source, target }: LinkConstructionOptions): Promise<Link<any>>;
|
|
87
79
|
/**
|
|
88
80
|
* Process a message directed to a specific model.
|
|
89
81
|
* @param itemId Id of the item containing the model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-manager.d.ts","sourceRoot":"","sources":["../../../src/database/item-manager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAY,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAgB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK5C,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,WAAW;IA+BpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAhChC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,iCAA8B;IAE7C;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAA0C;IAEnF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoD;IAElF;;;OAGG;gBAEgB,aAAa,EAAE,YAAY,EAC3B,UAAU,EAAE,SAAS,EACrB,YAAY,CAAC,sCAA0B;IAG1D,IAAI,QAAQ,yCAEX;IAED,IAAI,KAAK,IAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAExB;IAED,IAAI,KAAK,IAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAExB;IAED;;;;;;OAMG;IAEG,UAAU,CACd,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,QAAQ,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IA2C1B,UAAU,CACd,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GACpG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YA0CjB,eAAe;
|
|
1
|
+
{"version":3,"file":"item-manager.d.ts","sourceRoot":"","sources":["../../../src/database/item-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ class ItemManager {
|
|
|
74
74
|
*/
|
|
75
75
|
async createItem(modelType, itemType, parentId, initProps // TODO(burdon): Remove/change to array of mutations.
|
|
76
76
|
) {
|
|
77
|
-
(0, assert_1.default)(this._writeStream);
|
|
77
|
+
(0, assert_1.default)(this._writeStream); // TODO(burdon): Throw ReadOnlyError();
|
|
78
78
|
(0, assert_1.default)(modelType);
|
|
79
79
|
if (!this._modelFactory.hasModel(modelType)) {
|
|
80
80
|
throw new errors_1.UnknownModelError(modelType);
|
|
@@ -152,6 +152,7 @@ class ItemManager {
|
|
|
152
152
|
/**
|
|
153
153
|
* Adds new entity to the tracked set. Sets up events and notifies any listeners waiting for this entity to be constructed.
|
|
154
154
|
*/
|
|
155
|
+
// TODO(burdon): Parent not used.
|
|
155
156
|
_addEntity(entity, parent) {
|
|
156
157
|
var _a;
|
|
157
158
|
(0, assert_1.default)(!this._entities.has(entity.id));
|
|
@@ -169,15 +170,8 @@ class ItemManager {
|
|
|
169
170
|
}
|
|
170
171
|
/**
|
|
171
172
|
* Constructs an item with the appropriate model.
|
|
172
|
-
* @param itemId
|
|
173
|
-
* @param modelType
|
|
174
|
-
* @param itemType
|
|
175
|
-
* @param readStream - Inbound mutation stream (from multiplexer).
|
|
176
|
-
* @param [parentId] - ItemID of the parent of this Item (optional).
|
|
177
|
-
* @param initialMutations
|
|
178
|
-
* @param modelSnapshot
|
|
179
173
|
*/
|
|
180
|
-
async constructItem({ itemId,
|
|
174
|
+
async constructItem({ itemId, itemType, modelType, parentId, snapshot }) {
|
|
181
175
|
(0, assert_1.default)(itemId);
|
|
182
176
|
(0, assert_1.default)(modelType);
|
|
183
177
|
const parent = parentId ? this._entities.get(parentId) : null;
|
|
@@ -199,10 +193,9 @@ class ItemManager {
|
|
|
199
193
|
}
|
|
200
194
|
/**
|
|
201
195
|
* Constructs an item with the appropriate model.
|
|
202
|
-
* @param readStream - Inbound mutation stream (from multiplexer).
|
|
203
|
-
* @param parentId - ItemID of the parent of this Item (optional).
|
|
204
196
|
*/
|
|
205
|
-
async constructLink({ itemId,
|
|
197
|
+
async constructLink({ itemId, // TODO(burdon): linkId?
|
|
198
|
+
itemType, modelType, snapshot, source, target }) {
|
|
206
199
|
(0, assert_1.default)(itemId);
|
|
207
200
|
(0, assert_1.default)(modelType);
|
|
208
201
|
const model = await this._constructModel({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-manager.js","sourceRoot":"","sources":["../../../src/database/item-manager.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,uCAA6C;AAC7C,yCAAmD;AACnD,uCAAoC;AACpC,uDAA+G;AAG/G,gCAA4C;AAC5C,sCAA8C;AAE9C,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,2BAA2B,CAAC,CAAC;AAmB/C;;GAEG;AACH,MAAa,WAAW;IA0BtB;;;OAGG;IACH,YACmB,aAA2B,EAC3B,UAAqB,EACrB,YAAuC;QAFvC,kBAAa,GAAb,aAAa,CAAc;QAC3B,eAAU,GAAV,UAAU,CAAW;QACrB,iBAAY,GAAZ,YAAY,CAA2B;QAhC1D;;;;WAIG;QACM,WAAM,GAAG,IAAI,aAAK,EAAiB,CAAC;QAE7C;;;WAGG;QACM,oBAAe,GAAoB,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnF;;;WAGG;QACc,cAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;QAE9D;;;WAGG;QACc,kBAAa,GAAG,IAAI,GAAG,EAAyC,CAAC;IAU/E,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAyB,EAAE,CAAC,MAAM,YAAY,UAAI,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAyB,EAAE,CAAC,MAAM,YAAY,UAAI,CAAC,CAAC;IAC/G,CAAC;IAED;;;;;;OAMG;IAEH,KAAK,CAAC,UAAU,CACd,SAAoB,EACpB,QAAmB,EACnB,QAAiB,EACjB,SAAe,CAAC,qDAAqD;;QAErE,IAAA,gBAAM,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"item-manager.js","sourceRoot":"","sources":["../../../src/database/item-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-store.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,yCAAkE;AAGlE,kCAA2C;AAC3C,qDAAiD;AAEjD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,CAAC,SAAS,CAAC,CAAC;AAExE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,UAAI,EAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAA,uBAAgB,GAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAE/B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAE/C,MAAM,QAAQ,GAAkB;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAC;wBACN,MAAM,EAAE,IAAA,iBAAQ,GAAE;wBAClB,QAAQ,EAAE,cAAc;qBACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot-store.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,yCAAkE;AAGlE,kCAA2C;AAC3C,qDAAiD;AAEjD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,CAAC,SAAS,CAAC,CAAC;AAExE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,UAAI,EAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAA,uBAAgB,GAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAE/B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAE/C,MAAM,QAAQ,GAAkB;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAC;wBACN,MAAM,EAAE,IAAA,iBAAQ,GAAE;wBAClB,QAAQ,EAAE,cAAc;qBACzB,CAAC;gBACF,KAAK,EAAE,EAAE;aACV;SACF,CAAC;QAEF,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -17,6 +17,7 @@ const object_model_1 = require("@dxos/object-model");
|
|
|
17
17
|
const database_1 = require("../database");
|
|
18
18
|
const testing_1 = require("../testing");
|
|
19
19
|
const log = (0, debug_1.default)('dxos:snapshot:test');
|
|
20
|
+
debug_1.default.enable('dxos:echo-db:*');
|
|
20
21
|
// TODO(burdon): Remove "foo", etc from tests.
|
|
21
22
|
describe('snapshot', () => {
|
|
22
23
|
mocha_1.it.skip('loading large party', async () => {
|
|
@@ -49,29 +50,84 @@ describe('snapshot', () => {
|
|
|
49
50
|
(0, expect_1.default)(echo.isOpen).toBe(false);
|
|
50
51
|
});
|
|
51
52
|
(0, mocha_1.it)('produce & serialize a snapshot', async () => {
|
|
52
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
53
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
53
54
|
const echo = await (0, testing_1.createTestInstance)({ initialize: true });
|
|
54
55
|
const party = await echo.createParty();
|
|
55
|
-
const
|
|
56
|
-
await
|
|
56
|
+
const item1 = await party.database.createItem({ model: object_model_1.ObjectModel, props: { title: 'Item1 - Creation' } });
|
|
57
|
+
await item1.model.setProperty('title', 'Item1 - Modified');
|
|
58
|
+
const item2 = await party.database.createItem({ model: object_model_1.ObjectModel, props: { title: 'Item2 - Creation' } });
|
|
59
|
+
await item2.model.setProperty('title', 'Item2 - Modified');
|
|
60
|
+
const link = await party.database.createLink({ source: item1, target: item2 });
|
|
57
61
|
const snapshot = party.createSnapshot();
|
|
58
|
-
(0, expect_1.default)((_a = snapshot.database) === null || _a === void 0 ? void 0 : _a.items).toHaveLength(
|
|
59
|
-
(0, expect_1.default)((
|
|
62
|
+
(0, expect_1.default)((_a = snapshot.database) === null || _a === void 0 ? void 0 : _a.items).toHaveLength(3); // 1 party + 2 items
|
|
63
|
+
(0, expect_1.default)((_b = snapshot.database) === null || _b === void 0 ? void 0 : _b.links).toHaveLength(1); // 1 link
|
|
64
|
+
(0, expect_1.default)((_f = (_e = (_d = (_c = snapshot.database) === null || _c === void 0 ? void 0 : _c.items) === null || _d === void 0 ? void 0 : _d.find(i => i.itemId === item1.id)) === null || _e === void 0 ? void 0 : _e.model) === null || _f === void 0 ? void 0 : _f.snapshot).toBeDefined();
|
|
65
|
+
(0, expect_1.default)((_k = (_j = (_h = (_g = snapshot.database) === null || _g === void 0 ? void 0 : _g.items) === null || _h === void 0 ? void 0 : _h.find(i => i.itemId === item2.id)) === null || _j === void 0 ? void 0 : _j.model) === null || _k === void 0 ? void 0 : _k.snapshot).toBeDefined();
|
|
66
|
+
(0, expect_1.default)((_o = (_m = (_l = snapshot.database) === null || _l === void 0 ? void 0 : _l.links) === null || _m === void 0 ? void 0 : _m.find(l => l.linkId === link.id)) === null || _o === void 0 ? void 0 : _o.linkId).toBeDefined();
|
|
60
67
|
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
61
|
-
const
|
|
62
|
-
(0, expect_1.default)(
|
|
63
|
-
|
|
64
|
-
(0
|
|
68
|
+
const modelSnapshot1 = (_p = object_model_1.ObjectModel.meta.snapshotCodec) === null || _p === void 0 ? void 0 : _p.decode((_t = (_s = (_r = (_q = snapshot.database) === null || _q === void 0 ? void 0 : _q.items) === null || _r === void 0 ? void 0 : _r.find(i => i.itemId === item1.id)) === null || _s === void 0 ? void 0 : _s.model) === null || _t === void 0 ? void 0 : _t.snapshot);
|
|
69
|
+
(0, expect_1.default)(modelSnapshot1).toEqual({ root: object_model_1.ValueUtil.createMessage({ title: 'Item1 - Modified' }) });
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
71
|
+
const modelSnapshot2 = (_u = object_model_1.ObjectModel.meta.snapshotCodec) === null || _u === void 0 ? void 0 : _u.decode((_y = (_x = (_w = (_v = snapshot.database) === null || _v === void 0 ? void 0 : _v.items) === null || _w === void 0 ? void 0 : _w.find(i => i.itemId === item2.id)) === null || _x === void 0 ? void 0 : _x.model) === null || _y === void 0 ? void 0 : _y.snapshot);
|
|
72
|
+
(0, expect_1.default)(modelSnapshot2).toEqual({ root: object_model_1.ValueUtil.createMessage({ title: 'Item2 - Modified' }) });
|
|
73
|
+
(0, expect_1.default)(((_z = snapshot.halo) === null || _z === void 0 ? void 0 : _z.messages) && ((_1 = (_0 = snapshot.halo) === null || _0 === void 0 ? void 0 : _0.messages) === null || _1 === void 0 ? void 0 : _1.length) > 0).toBeTruthy();
|
|
74
|
+
(0, expect_1.default)((_2 = snapshot.timeframe) === null || _2 === void 0 ? void 0 : _2.size()).toBe(1);
|
|
65
75
|
const serialized = echo_protocol_1.schema.getCodecForType('dxos.echo.snapshot.PartySnapshot').encode(snapshot);
|
|
66
76
|
(0, expect_1.default)(serialized instanceof Uint8Array).toBeTruthy();
|
|
67
77
|
await echo.close();
|
|
68
78
|
(0, expect_1.default)(echo.isOpen).toBe(false);
|
|
69
79
|
});
|
|
80
|
+
(0, mocha_1.it)('restore from snapshot', async () => {
|
|
81
|
+
const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
|
|
82
|
+
let data;
|
|
83
|
+
{
|
|
84
|
+
const itemManager = new database_1.ItemManager(modelFactory, crypto_1.PublicKey.random(), new echo_protocol_1.MockFeedWriter());
|
|
85
|
+
const itemDemuxer = new database_1.ItemDemuxer(itemManager, modelFactory, { snapshots: true });
|
|
86
|
+
await itemManager.constructItem({
|
|
87
|
+
itemId: 'item-1',
|
|
88
|
+
itemType: 'test-item-type',
|
|
89
|
+
modelType: object_model_1.ObjectModel.meta.type,
|
|
90
|
+
snapshot: {}
|
|
91
|
+
});
|
|
92
|
+
await itemManager.constructItem({
|
|
93
|
+
itemId: 'item-2',
|
|
94
|
+
itemType: 'test-item-type',
|
|
95
|
+
modelType: object_model_1.ObjectModel.meta.type,
|
|
96
|
+
snapshot: {}
|
|
97
|
+
});
|
|
98
|
+
await itemManager.constructLink({
|
|
99
|
+
itemId: 'link-1',
|
|
100
|
+
itemType: 'test-link-type',
|
|
101
|
+
modelType: object_model_1.ObjectModel.meta.type,
|
|
102
|
+
source: 'item-1',
|
|
103
|
+
target: 'item-2',
|
|
104
|
+
snapshot: {}
|
|
105
|
+
});
|
|
106
|
+
// Create snapshot.
|
|
107
|
+
console.log('encoding...');
|
|
108
|
+
const snapshot = itemDemuxer.createSnapshot();
|
|
109
|
+
data = echo_protocol_1.schema.getCodecForType('dxos.echo.snapshot.DatabaseSnapshot').encode(snapshot);
|
|
110
|
+
}
|
|
111
|
+
{
|
|
112
|
+
const itemManager = new database_1.ItemManager(modelFactory, crypto_1.PublicKey.random());
|
|
113
|
+
const itemDemuxer = new database_1.ItemDemuxer(itemManager, modelFactory, { snapshots: true });
|
|
114
|
+
// Decode snapshot.
|
|
115
|
+
console.log('decoding...');
|
|
116
|
+
const snapshot = echo_protocol_1.schema.getCodecForType('dxos.echo.snapshot.DatabaseSnapshot').decode(data);
|
|
117
|
+
await itemDemuxer.restoreFromSnapshot(snapshot);
|
|
118
|
+
(0, expect_1.default)(itemManager.items).toHaveLength(2);
|
|
119
|
+
(0, expect_1.default)(itemManager.links).toHaveLength(1);
|
|
120
|
+
const [item1, item2] = itemManager.items;
|
|
121
|
+
const [link] = itemManager.links;
|
|
122
|
+
(0, expect_1.default)(link.source.id).toBe(item1.id);
|
|
123
|
+
(0, expect_1.default)(link.target.id).toBe(item2.id);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
70
126
|
(0, mocha_1.it)('restore from empty snapshot', async () => {
|
|
71
127
|
const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
|
|
72
128
|
const itemManager = new database_1.ItemManager(modelFactory, crypto_1.PublicKey.random());
|
|
73
129
|
const itemDemuxer = new database_1.ItemDemuxer(itemManager, modelFactory);
|
|
74
|
-
// TODO(burdon):
|
|
130
|
+
// TODO(burdon): Do actual test.
|
|
75
131
|
await itemDemuxer.restoreFromSnapshot({});
|
|
76
132
|
(0, expect_1.default)(true).toBeTruthy();
|
|
77
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,kDAA0B;AAC1B,oDAA4B;AAC5B,iCAAmC;AAEnC,uCAA+C;AAC/C,yCAAyC;AACzC,uDAA+
|
|
1
|
+
{"version":3,"file":"snapshot.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot.test.ts"],"names":[],"mappings":"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"}
|