@dxos/echo-db 2.29.1 → 2.29.2-dev.f64f2a6f

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 (84) hide show
  1. package/dist/src/api/database.d.ts +11 -7
  2. package/dist/src/api/database.d.ts.map +1 -1
  3. package/dist/src/api/database.js +20 -23
  4. package/dist/src/api/database.js.map +1 -1
  5. package/dist/src/api/database.test.js +13 -13
  6. package/dist/src/api/database.test.js.map +1 -1
  7. package/dist/src/api/item.d.ts.map +1 -1
  8. package/dist/src/api/item.js +1 -1
  9. package/dist/src/api/item.js.map +1 -1
  10. package/dist/src/api/result-set.d.ts.map +1 -1
  11. package/dist/src/api/result-set.js +1 -0
  12. package/dist/src/api/result-set.js.map +1 -1
  13. package/dist/src/api/selection/index.d.ts +5 -0
  14. package/dist/src/api/selection/index.d.ts.map +1 -0
  15. package/dist/src/api/selection/index.js +20 -0
  16. package/dist/src/api/selection/index.js.map +1 -0
  17. package/dist/src/api/selection/queries.d.ts +51 -0
  18. package/dist/src/api/selection/queries.d.ts.map +1 -0
  19. package/dist/src/api/selection/queries.js +70 -0
  20. package/dist/src/api/selection/queries.js.map +1 -0
  21. package/dist/src/api/selection/result.d.ts +50 -0
  22. package/dist/src/api/selection/result.d.ts.map +1 -0
  23. package/dist/src/api/selection/result.js +91 -0
  24. package/dist/src/api/selection/result.js.map +1 -0
  25. package/dist/src/api/selection/selection.d.ts +96 -0
  26. package/dist/src/api/selection/selection.d.ts.map +1 -0
  27. package/dist/src/api/selection/selection.js +164 -0
  28. package/dist/src/api/selection/selection.js.map +1 -0
  29. package/dist/src/api/{selection.test.d.ts → selection/selection.test.d.ts} +0 -0
  30. package/dist/src/api/selection/selection.test.d.ts.map +1 -0
  31. package/dist/src/api/{selection.test.js → selection/selection.test.js} +46 -44
  32. package/dist/src/api/selection/selection.test.js.map +1 -0
  33. package/dist/src/api/selection/util.d.ts +7 -0
  34. package/dist/src/api/selection/util.d.ts.map +1 -0
  35. package/dist/src/api/selection/util.js +25 -0
  36. package/dist/src/api/selection/util.js.map +1 -0
  37. package/dist/src/echo.test.js +20 -20
  38. package/dist/src/echo.test.js.map +1 -1
  39. package/dist/src/halo/contact-manager.js +2 -2
  40. package/dist/src/halo/contact-manager.js.map +1 -1
  41. package/dist/src/halo/preferences.js +6 -6
  42. package/dist/src/halo/preferences.js.map +1 -1
  43. package/dist/src/parties/party-core.test.js +3 -3
  44. package/dist/src/parties/party-core.test.js.map +1 -1
  45. package/dist/src/parties/party-factory.d.ts.map +1 -1
  46. package/dist/src/parties/party-factory.js +3 -3
  47. package/dist/src/parties/party-factory.js.map +1 -1
  48. package/dist/src/parties/party-internal.js +3 -3
  49. package/dist/src/parties/party-internal.js.map +1 -1
  50. package/dist/src/parties/party-manager.js +1 -1
  51. package/dist/src/parties/party-manager.js.map +1 -1
  52. package/dist/src/parties/party-manager.test.js +8 -10
  53. package/dist/src/parties/party-manager.test.js.map +1 -1
  54. package/dist/src/testing/testing-factories.d.ts +2 -2
  55. package/dist/src/testing/testing-factories.d.ts.map +1 -1
  56. package/dist/src/testing/testing-factories.js +1 -1
  57. package/dist/src/testing/testing-factories.js.map +1 -1
  58. package/dist/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +27 -27
  60. package/src/api/database.test.ts +13 -13
  61. package/src/api/database.ts +28 -29
  62. package/src/api/item.ts +2 -2
  63. package/src/api/result-set.ts +1 -0
  64. package/src/api/selection/index.ts +8 -0
  65. package/src/api/selection/queries.ts +108 -0
  66. package/src/api/selection/result.ts +112 -0
  67. package/src/api/{selection.test.ts → selection/selection.test.ts} +50 -48
  68. package/src/api/{selection.ts → selection/selection.ts} +30 -231
  69. package/src/api/selection/util.ts +27 -0
  70. package/src/echo.test.ts +20 -20
  71. package/src/halo/contact-manager.ts +2 -2
  72. package/src/halo/preferences.ts +6 -6
  73. package/src/parties/party-core.test.ts +3 -3
  74. package/src/parties/party-factory.ts +3 -4
  75. package/src/parties/party-internal.ts +3 -3
  76. package/src/parties/party-manager.test.ts +8 -10
  77. package/src/parties/party-manager.ts +1 -1
  78. package/src/testing/testing-factories.ts +3 -3
  79. package/dist/src/api/selection.d.ts +0 -183
  80. package/dist/src/api/selection.d.ts.map +0 -1
  81. package/dist/src/api/selection.js +0 -308
  82. package/dist/src/api/selection.js.map +0 -1
  83. package/dist/src/api/selection.test.d.ts.map +0 -1
  84. package/dist/src/api/selection.test.js.map +0 -1
@@ -1,308 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SelectionResult = exports.Selection = exports.createItemSelector = exports.createSelector = exports.ItemFilterDeleted = void 0;
10
- const assert_1 = __importDefault(require("assert"));
11
- const async_1 = require("@dxos/async");
12
- const item_1 = require("./item");
13
- /**
14
- * Controls how deleted items are filtered.
15
- */
16
- var ItemFilterDeleted;
17
- (function (ItemFilterDeleted) {
18
- /**
19
- * Do not return deleted items. Default behaviour.
20
- */
21
- ItemFilterDeleted[ItemFilterDeleted["HIDE_DELETED"] = 0] = "HIDE_DELETED";
22
- /**
23
- * Return deleted and regular items.
24
- */
25
- ItemFilterDeleted[ItemFilterDeleted["SHOW_DELETED"] = 1] = "SHOW_DELETED";
26
- /**
27
- * Return only deleted items.
28
- */
29
- ItemFilterDeleted[ItemFilterDeleted["SHOW_DELETED_ONLY"] = 2] = "SHOW_DELETED_ONLY";
30
- })(ItemFilterDeleted = exports.ItemFilterDeleted || (exports.ItemFilterDeleted = {}));
31
- /**
32
- * Factory for selector that provides a root set of items.
33
- * @param itemsProvider
34
- * @param updateEventProvider
35
- * @param root
36
- * @param filter
37
- * @param value Initial reducer value.
38
- */
39
- const createSelector = (
40
- // Provider is called each time the query is executed.
41
- itemsProvider,
42
- // TODO(burdon): Replace with direct event handler.
43
- updateEventProvider, root, filter, value) => {
44
- const predicate = filter ? filterToPredicate(filter) : () => true;
45
- const visitor = (options) => {
46
- const items = itemsProvider()
47
- .filter(createQueryOptionsFilter(options))
48
- .filter(predicate);
49
- return [items, value];
50
- };
51
- return new Selection(visitor, updateEventProvider(), root, value !== undefined);
52
- };
53
- exports.createSelector = createSelector;
54
- /**
55
- * Factory for specific item selector.
56
- * @param root
57
- * @param update
58
- * @param value Initial reducer value.
59
- */
60
- const createItemSelector = (root, update, value) => new Selection(() => [[root], value], update, root, value !== undefined);
61
- exports.createItemSelector = createItemSelector;
62
- /**
63
- * Selections are used to construct database subscriptions.
64
- * They are [monads](https://www.quora.com/What-are-monads-in-computer-science) that support
65
- * the functional composition of predicates to traverse the graph.
66
- * Additionally, selections may be used to create reducers that compute an aggregated value over the traversal.
67
- *
68
- * Implementation:
69
- * Each Selection contains a visitor
70
- */
71
- class Selection {
72
- /**
73
- * @param _visitor Executes the query.
74
- * @param _update The unfiltered update event.
75
- * @param _root The root of the selection. Must be a stable reference.
76
- * @param _reducer
77
- */
78
- constructor(_visitor, _update, _root, _reducer = false) {
79
- this._visitor = _visitor;
80
- this._update = _update;
81
- this._root = _root;
82
- this._reducer = _reducer;
83
- }
84
- /**
85
- * Creates a derrived selection by aplying a mapping function to the result of the current selection.
86
- */
87
- _createSubSelection(map) {
88
- return new Selection(options => map(this._visitor(options), options), this._update, this._root, this._reducer);
89
- }
90
- /**
91
- * Finish the selection and return the result.
92
- */
93
- // TODO(burdon): Rename exec.
94
- query(options = {}) {
95
- return new SelectionResult(() => this._visitor(options), this._update, this._root, this._reducer);
96
- }
97
- /**
98
- * The root of the selection. Either a database or an item. Must be a stable reference.
99
- */
100
- get root() {
101
- return this._root;
102
- }
103
- /**
104
- * Visitor.
105
- * @param visitor
106
- */
107
- call(visitor) {
108
- return this._createSubSelection(([items, result]) => [items, visitor(items, result)]);
109
- }
110
- filter(filter) {
111
- const predicate = filterToPredicate(filter);
112
- return this._createSubSelection(([items, result]) => [items.filter(predicate), result]);
113
- }
114
- /**
115
- * Select children of the items in this selection.
116
- */
117
- children(filter) {
118
- const predicate = filter ? filterToPredicate(filter) : Boolean;
119
- return this._createSubSelection(([items, result], options) => [
120
- items.flatMap(item => Array.from(item._children.values())
121
- .filter(createQueryOptionsFilter(options))
122
- .filter(predicate)),
123
- result
124
- ]);
125
- }
126
- /**
127
- * Select parent of the items in this selection.
128
- */
129
- parent() {
130
- return this._createSubSelection(([items, result], options) => [
131
- items.flatMap(item => item.parent ? [item.parent].filter(createQueryOptionsFilter(options)) : []),
132
- result
133
- ]);
134
- }
135
- /**
136
- * Select links sourcing from the items in this selection.
137
- */
138
- links(filter = {}) {
139
- const predicate = linkFilterToPredicate(filter);
140
- return this._createSubSelection(([items, result], options) => [
141
- items.flatMap(item => item.links.filter(predicate).filter(createQueryOptionsFilter(options))),
142
- result
143
- ]);
144
- }
145
- /**
146
- * Select links pointing to items in this selection.
147
- */
148
- refs(filter = {}) {
149
- const predicate = linkFilterToPredicate(filter);
150
- return this._createSubSelection(([items, result], options) => [
151
- items.flatMap(item => item.refs.filter(predicate).filter(createQueryOptionsFilter(options))),
152
- result
153
- ]);
154
- }
155
- /**
156
- * Select targets of links in this selection.
157
- */
158
- target(filter = {}) {
159
- const predicate = filterToPredicate(filter);
160
- return this._createSubSelection(([links, result], options) => [
161
- links.flatMap(link => link.target).filter(predicate).filter(createQueryOptionsFilter(options)),
162
- result
163
- ]);
164
- }
165
- /**
166
- * Select sources of links in this selection.
167
- */
168
- source(filter = {}) {
169
- const predicate = filterToPredicate(filter);
170
- return this._createSubSelection(([links, result], options) => [
171
- links.flatMap(link => link.source).filter(predicate).filter(createQueryOptionsFilter(options)),
172
- result
173
- ]);
174
- }
175
- }
176
- exports.Selection = Selection;
177
- /**
178
- * Query subscription.
179
- * Represents a live-query (subscription) that can notify about future updates to the relevant subset of items.
180
- */
181
- class SelectionResult {
182
- constructor(_execute, _update, _root, _reducer) {
183
- this._execute = _execute;
184
- this._update = _update;
185
- this._root = _root;
186
- this._reducer = _reducer;
187
- /**
188
- * Fired when there are updates in the selection.
189
- * Only update that are relevant to the selection cause the update.
190
- */
191
- this.update = new async_1.Event(); // TODO(burdon): Result result object.
192
- this._lastResult = [[]];
193
- this.refresh();
194
- // Re-run if deps change.
195
- this.update.addEffect(() => _update.on(currentEntities => {
196
- const [previousEntities] = this._lastResult;
197
- this.refresh();
198
- // Filters mutation events only if selection (since we can't reason about deps of call methods).
199
- const set = new Set([...previousEntities, ...this._lastResult[0]]);
200
- if (this._reducer || currentEntities.some(entity => set.has(entity))) {
201
- this.update.emit(this);
202
- }
203
- }));
204
- }
205
- /**
206
- * Re-run query.
207
- */
208
- refresh() {
209
- const [entities, result] = this._execute();
210
- this._lastResult = [dedupe(entities), result];
211
- return this;
212
- }
213
- /**
214
- * The root of the selection. Either a database or an item. Must be a stable reference.
215
- */
216
- get root() {
217
- return this._root;
218
- }
219
- /**
220
- * @deprecated
221
- */
222
- // TODO(burdon): Remove.
223
- // get result () {
224
- // return this.entities;
225
- // }
226
- /**
227
- * Get the result of this selection.
228
- */
229
- get entities() {
230
- if (!this._lastResult) {
231
- this.refresh();
232
- }
233
- const [entities] = this._lastResult;
234
- return entities;
235
- }
236
- /**
237
- * Returns the selection or reducer result.
238
- */
239
- get value() {
240
- if (!this._lastResult) {
241
- this.refresh();
242
- }
243
- const [entities, value] = this._lastResult;
244
- return (this._reducer ? value : entities);
245
- }
246
- /**
247
- * Return the first element if the set has exactly one element.
248
- */
249
- expectOne() {
250
- const entities = this.entities;
251
- (0, assert_1.default)(entities.length === 1, `Expected one result; got ${entities.length}`);
252
- return entities[0];
253
- }
254
- }
255
- exports.SelectionResult = SelectionResult;
256
- //
257
- // Utils
258
- //
259
- const dedupe = (values) => Array.from(new Set(values));
260
- const coerceToId = (item) => {
261
- if (typeof item === 'string') {
262
- return item;
263
- }
264
- return item.id;
265
- };
266
- const testOneOrMultiple = (expected, value) => {
267
- if (Array.isArray(expected)) {
268
- return expected.includes(value);
269
- }
270
- else {
271
- return expected === value;
272
- }
273
- };
274
- const filterToPredicate = (filter) => {
275
- if (typeof filter === 'function') {
276
- return filter;
277
- }
278
- return itemFilterToPredicate(filter);
279
- };
280
- const itemFilterToPredicate = (filter) => {
281
- if ('id' in filter) {
282
- return item => item.id === filter.id;
283
- }
284
- else {
285
- return item => {
286
- var _a;
287
- return (!filter.type || testOneOrMultiple(filter.type, item.type)) &&
288
- (!filter.parent || ((_a = item.parent) === null || _a === void 0 ? void 0 : _a.id) === coerceToId(filter.parent));
289
- };
290
- }
291
- };
292
- const linkFilterToPredicate = (filter) => link => (!filter.type || testOneOrMultiple(filter.type, link.type));
293
- const createQueryOptionsFilter = ({ deleted = ItemFilterDeleted.HIDE_DELETED }) => {
294
- return entity => {
295
- if (entity.model === null) {
296
- return false;
297
- }
298
- switch (deleted) {
299
- case ItemFilterDeleted.HIDE_DELETED:
300
- return !(entity instanceof item_1.Item) || !entity.deleted;
301
- case ItemFilterDeleted.SHOW_DELETED:
302
- return true;
303
- case ItemFilterDeleted.SHOW_DELETED_ONLY:
304
- return entity instanceof item_1.Item && entity.deleted;
305
- }
306
- };
307
- };
308
- //# sourceMappingURL=selection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/api/selection.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection.test.d.ts","sourceRoot":"","sources":["../../../src/api/selection.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection.test.js","sourceRoot":"","sources":["../../../src/api/selection.test.ts"],"names":[],"mappings":"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"}