@verdant-web/store 2.5.8 → 2.7.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/bundle/index.js +15 -10
- package/dist/bundle/index.js.map +4 -4
- package/dist/cjs/{entities/FakeWeakRef.d.ts → FakeWeakRef.d.ts} +2 -2
- package/dist/cjs/{entities/FakeWeakRef.js → FakeWeakRef.js} +4 -4
- package/dist/cjs/FakeWeakRef.js.map +1 -0
- package/dist/cjs/IDBService.d.ts +1 -1
- package/dist/cjs/IDBService.js +18 -1
- package/dist/cjs/IDBService.js.map +1 -1
- package/dist/cjs/__tests__/documents.test.js +17 -0
- package/dist/cjs/__tests__/documents.test.js.map +1 -1
- package/dist/cjs/__tests__/fixtures/testStorage.d.ts +1 -1
- package/dist/cjs/__tests__/fixtures/testStorage.js +3 -2
- package/dist/cjs/__tests__/fixtures/testStorage.js.map +1 -1
- package/dist/cjs/__tests__/mutations.test.d.ts +1 -0
- package/dist/cjs/__tests__/mutations.test.js +42 -0
- package/dist/cjs/__tests__/mutations.test.js.map +1 -0
- package/dist/cjs/__tests__/queries.test.js +2 -0
- package/dist/cjs/__tests__/queries.test.js.map +1 -1
- package/dist/cjs/client/Client.d.ts +6 -4
- package/dist/cjs/client/Client.js +24 -16
- package/dist/cjs/client/Client.js.map +1 -1
- package/dist/cjs/client/ClientDescriptor.d.ts +15 -4
- package/dist/cjs/client/ClientDescriptor.js +117 -36
- package/dist/cjs/client/ClientDescriptor.js.map +1 -1
- package/dist/cjs/context.d.ts +1 -0
- package/dist/cjs/entities/DocumentFamiliyCache.d.ts +22 -2
- package/dist/cjs/entities/DocumentFamiliyCache.js +39 -21
- package/dist/cjs/entities/DocumentFamiliyCache.js.map +1 -1
- package/dist/cjs/entities/Entity.d.ts +7 -2
- package/dist/cjs/entities/Entity.js +33 -3
- package/dist/cjs/entities/Entity.js.map +1 -1
- package/dist/cjs/entities/EntityStore.d.ts +2 -1
- package/dist/cjs/entities/EntityStore.js +50 -20
- package/dist/cjs/entities/EntityStore.js.map +1 -1
- package/dist/cjs/idb.d.ts +2 -0
- package/dist/cjs/idb.js +9 -1
- package/dist/cjs/idb.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/metadata/BaselinesStore.js +15 -5
- package/dist/cjs/metadata/BaselinesStore.js.map +1 -1
- package/dist/cjs/metadata/openMetadataDatabase.d.ts +11 -2
- package/dist/cjs/metadata/openMetadataDatabase.js +56 -3
- package/dist/cjs/metadata/openMetadataDatabase.js.map +1 -1
- package/dist/cjs/migration/db.d.ts +1 -1
- package/dist/cjs/migration/db.js +5 -2
- package/dist/cjs/migration/db.js.map +1 -1
- package/dist/cjs/migration/openDatabase.d.ts +8 -0
- package/dist/cjs/migration/openDatabase.js +217 -165
- package/dist/cjs/migration/openDatabase.js.map +1 -1
- package/dist/cjs/queries/BaseQuery.js +12 -1
- package/dist/cjs/queries/BaseQuery.js.map +1 -1
- package/dist/cjs/sync/Sync.d.ts +6 -5
- package/dist/cjs/sync/Sync.js.map +1 -1
- package/dist/cjs/sync/WebSocketSync.js +4 -3
- package/dist/cjs/sync/WebSocketSync.js.map +1 -1
- package/dist/esm/{entities/FakeWeakRef.d.ts → FakeWeakRef.d.ts} +2 -2
- package/dist/esm/{entities/FakeWeakRef.js → FakeWeakRef.js} +2 -2
- package/dist/esm/FakeWeakRef.js.map +1 -0
- package/dist/esm/IDBService.d.ts +1 -1
- package/dist/esm/IDBService.js +18 -1
- package/dist/esm/IDBService.js.map +1 -1
- package/dist/esm/__tests__/documents.test.js +17 -0
- package/dist/esm/__tests__/documents.test.js.map +1 -1
- package/dist/esm/__tests__/fixtures/testStorage.d.ts +1 -1
- package/dist/esm/__tests__/fixtures/testStorage.js +4 -3
- package/dist/esm/__tests__/fixtures/testStorage.js.map +1 -1
- package/dist/esm/__tests__/mutations.test.d.ts +1 -0
- package/dist/esm/__tests__/mutations.test.js +40 -0
- package/dist/esm/__tests__/mutations.test.js.map +1 -0
- package/dist/esm/__tests__/queries.test.js +2 -0
- package/dist/esm/__tests__/queries.test.js.map +1 -1
- package/dist/esm/client/Client.d.ts +6 -4
- package/dist/esm/client/Client.js +25 -17
- package/dist/esm/client/Client.js.map +1 -1
- package/dist/esm/client/ClientDescriptor.d.ts +15 -4
- package/dist/esm/client/ClientDescriptor.js +121 -40
- package/dist/esm/client/ClientDescriptor.js.map +1 -1
- package/dist/esm/context.d.ts +1 -0
- package/dist/esm/entities/DocumentFamiliyCache.d.ts +22 -2
- package/dist/esm/entities/DocumentFamiliyCache.js +39 -21
- package/dist/esm/entities/DocumentFamiliyCache.js.map +1 -1
- package/dist/esm/entities/Entity.d.ts +7 -2
- package/dist/esm/entities/Entity.js +33 -3
- package/dist/esm/entities/Entity.js.map +1 -1
- package/dist/esm/entities/EntityStore.d.ts +2 -1
- package/dist/esm/entities/EntityStore.js +51 -21
- package/dist/esm/entities/EntityStore.js.map +1 -1
- package/dist/esm/idb.d.ts +2 -0
- package/dist/esm/idb.js +6 -0
- package/dist/esm/idb.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metadata/BaselinesStore.js +16 -6
- package/dist/esm/metadata/BaselinesStore.js.map +1 -1
- package/dist/esm/metadata/openMetadataDatabase.d.ts +11 -2
- package/dist/esm/metadata/openMetadataDatabase.js +54 -2
- package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
- package/dist/esm/migration/db.d.ts +1 -1
- package/dist/esm/migration/db.js +5 -2
- package/dist/esm/migration/db.js.map +1 -1
- package/dist/esm/migration/openDatabase.d.ts +8 -0
- package/dist/esm/migration/openDatabase.js +215 -164
- package/dist/esm/migration/openDatabase.js.map +1 -1
- package/dist/esm/queries/BaseQuery.js +12 -1
- package/dist/esm/queries/BaseQuery.js.map +1 -1
- package/dist/esm/sync/Sync.d.ts +6 -5
- package/dist/esm/sync/Sync.js.map +1 -1
- package/dist/esm/sync/WebSocketSync.js +4 -3
- 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 +9 -4
- package/src/{entities/FakeWeakRef.ts → FakeWeakRef.ts} +2 -2
- package/src/IDBService.ts +20 -2
- package/src/__tests__/documents.test.ts +19 -0
- package/src/__tests__/fixtures/testStorage.ts +4 -7
- package/src/__tests__/mutations.test.ts +51 -0
- package/src/__tests__/queries.test.ts +3 -0
- package/src/client/Client.ts +29 -21
- package/src/client/ClientDescriptor.ts +176 -53
- package/src/context.ts +1 -0
- package/src/entities/DocumentFamiliyCache.ts +66 -21
- package/src/entities/Entity.ts +41 -6
- package/src/entities/EntityStore.ts +68 -21
- package/src/idb.ts +10 -0
- package/src/index.ts +1 -0
- package/src/metadata/BaselinesStore.ts +17 -6
- package/src/metadata/openMetadataDatabase.ts +96 -13
- package/src/migration/db.ts +14 -1
- package/src/migration/openDatabase.ts +350 -219
- package/src/queries/BaseQuery.ts +14 -1
- package/src/sync/Sync.ts +13 -9
- package/src/sync/WebSocketSync.ts +1 -0
- package/dist/cjs/entities/FakeWeakRef.js.map +0 -1
- package/dist/cjs/indexes.d.ts +0 -3
- package/dist/cjs/indexes.js +0 -20
- package/dist/cjs/indexes.js.map +0 -1
- package/dist/esm/entities/FakeWeakRef.js.map +0 -1
- package/dist/esm/indexes.d.ts +0 -3
- package/dist/esm/indexes.js +0 -15
- package/dist/esm/indexes.js.map +0 -1
- package/src/indexes.ts +0 -31
package/src/queries/BaseQuery.ts
CHANGED
|
@@ -182,7 +182,20 @@ export abstract class BaseQuery<T> extends Disposable {
|
|
|
182
182
|
}
|
|
183
183
|
// no status change needed if already in a 'running' status.
|
|
184
184
|
|
|
185
|
-
this._executionPromise = this.run()
|
|
185
|
+
this._executionPromise = this.run()
|
|
186
|
+
.then(() => this._value)
|
|
187
|
+
.catch((err) => {
|
|
188
|
+
if (err instanceof Error) {
|
|
189
|
+
if (
|
|
190
|
+
err.name === 'InvalidStateError' ||
|
|
191
|
+
err.name === 'InvalidAccessError'
|
|
192
|
+
) {
|
|
193
|
+
// possibly accessing db while it's closed. not much we can do.
|
|
194
|
+
return this._value;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
throw err;
|
|
198
|
+
});
|
|
186
199
|
return this._executionPromise;
|
|
187
200
|
};
|
|
188
201
|
protected abstract run(): Promise<void>;
|
package/src/sync/Sync.ts
CHANGED
|
@@ -48,15 +48,19 @@ export interface SyncTransport {
|
|
|
48
48
|
readonly status: 'active' | 'paused';
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export interface Sync extends SyncTransport {
|
|
51
|
+
export interface Sync<Presence = any, Profile = any> extends SyncTransport {
|
|
52
52
|
setMode(mode: SyncTransportMode): void;
|
|
53
53
|
setPullInterval(interval: number): void;
|
|
54
54
|
readonly pullInterval: number;
|
|
55
55
|
uploadFile(data: FileData): Promise<FileUploadResult>;
|
|
56
56
|
getFile(fileId: string): Promise<FilePullResult>;
|
|
57
|
+
readonly presence: PresenceManager<Profile, Presence>;
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
export class NoSync
|
|
60
|
+
export class NoSync<Presence = any, Profile = any>
|
|
61
|
+
extends EventSubscriber<SyncEvents>
|
|
62
|
+
implements Sync<Presence, Profile>
|
|
63
|
+
{
|
|
60
64
|
readonly mode = 'pull';
|
|
61
65
|
|
|
62
66
|
public send(): void {}
|
|
@@ -76,9 +80,9 @@ export class NoSync extends EventSubscriber<SyncEvents> implements Sync {
|
|
|
76
80
|
public readonly status = 'paused';
|
|
77
81
|
public readonly pullInterval = 0;
|
|
78
82
|
|
|
79
|
-
public readonly presence = new PresenceManager({
|
|
80
|
-
initialPresence: {},
|
|
81
|
-
defaultProfile: {},
|
|
83
|
+
public readonly presence = new PresenceManager<Profile, Presence>({
|
|
84
|
+
initialPresence: {} as any,
|
|
85
|
+
defaultProfile: {} as any,
|
|
82
86
|
});
|
|
83
87
|
|
|
84
88
|
uploadFile = async () => {
|
|
@@ -152,11 +156,11 @@ export interface ServerSyncOptions<Profile = any, Presence = any>
|
|
|
152
156
|
useBroadcastChannel?: boolean;
|
|
153
157
|
}
|
|
154
158
|
|
|
155
|
-
export class ServerSync<
|
|
159
|
+
export class ServerSync<Presence = any, Profile = any>
|
|
156
160
|
extends EventSubscriber<
|
|
157
161
|
SyncEvents & { syncingChange: (syncing: boolean) => void }
|
|
158
162
|
>
|
|
159
|
-
implements Sync
|
|
163
|
+
implements Sync<Presence, Profile>
|
|
160
164
|
{
|
|
161
165
|
private webSocketSync: WebSocketSync;
|
|
162
166
|
private pushPullSync: PushPullSync;
|
|
@@ -173,7 +177,7 @@ export class ServerSync<Profile = any, Presence = any>
|
|
|
173
177
|
|
|
174
178
|
private meta: Metadata;
|
|
175
179
|
|
|
176
|
-
readonly presence
|
|
180
|
+
readonly presence: PresenceManager<Profile, Presence>;
|
|
177
181
|
|
|
178
182
|
private log;
|
|
179
183
|
|
|
@@ -208,7 +212,7 @@ export class ServerSync<Profile = any, Presence = any>
|
|
|
208
212
|
this.meta = meta;
|
|
209
213
|
this.onData = onData;
|
|
210
214
|
this.log = log || (() => {});
|
|
211
|
-
this.presence = new PresenceManager
|
|
215
|
+
this.presence = new PresenceManager({
|
|
212
216
|
initialPresence,
|
|
213
217
|
defaultProfile,
|
|
214
218
|
updateBatchTimeout: presenceUpdateBatchTimeout,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeWeakRef.js","sourceRoot":"","sources":["../../../src/entities/FakeWeakRef.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,MAAa,OAAO;IACnB,YAAY,KAAQ;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAID,KAAK;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD;AAVD,0BAUC"}
|
package/dist/cjs/indexes.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { StorageCollectionSchema } from '@verdant-web/common';
|
|
2
|
-
export declare function computeSynthetics(schema: StorageCollectionSchema, obj: any): Record<string, any>;
|
|
3
|
-
export declare function computeCompoundIndices(schema: StorageCollectionSchema<any, any, any>, doc: any): any;
|
package/dist/cjs/indexes.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.computeCompoundIndices = exports.computeSynthetics = void 0;
|
|
4
|
-
const common_1 = require("@verdant-web/common");
|
|
5
|
-
function computeSynthetics(schema, obj) {
|
|
6
|
-
const result = {};
|
|
7
|
-
for (const [name, property] of Object.entries(schema.synthetics || {})) {
|
|
8
|
-
result[name] = property.compute(obj);
|
|
9
|
-
}
|
|
10
|
-
return result;
|
|
11
|
-
}
|
|
12
|
-
exports.computeSynthetics = computeSynthetics;
|
|
13
|
-
function computeCompoundIndices(schema, doc) {
|
|
14
|
-
return Object.entries(schema.compounds || {}).reduce((acc, [indexKey, index]) => {
|
|
15
|
-
acc[indexKey] = (0, common_1.createCompoundIndexValue)(...index.of.map((key) => doc[key]));
|
|
16
|
-
return acc;
|
|
17
|
-
}, {});
|
|
18
|
-
}
|
|
19
|
-
exports.computeCompoundIndices = computeCompoundIndices;
|
|
20
|
-
//# sourceMappingURL=indexes.js.map
|
package/dist/cjs/indexes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":";;;AAAA,gDAM6B;AAE7B,SAAgB,iBAAiB,CAAC,MAA+B,EAAE,GAAQ;IAC1E,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;QACvE,MAAM,CAAC,IAAI,CAAC,GAAI,QAA6C,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC3E;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAND,8CAMC;AAED,SAAgB,sBAAsB,CACrC,MAA8C,EAC9C,GAAQ;IAER,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAElD,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5B,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAA,iCAAwB,EACvC,GAAI,KAA2C,CAAC,EAAE,CAAC,GAAG,CACrD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAoB,CACpC,CACD,CAAC;QACF,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAwC,CAAC,CAAC;AAC9C,CAAC;AAdD,wDAcC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeWeakRef.js","sourceRoot":"","sources":["../../../src/entities/FakeWeakRef.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,OAAO;IACnB,YAAY,KAAQ;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAID,KAAK;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD"}
|
package/dist/esm/indexes.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { StorageCollectionSchema } from '@verdant-web/common';
|
|
2
|
-
export declare function computeSynthetics(schema: StorageCollectionSchema, obj: any): Record<string, any>;
|
|
3
|
-
export declare function computeCompoundIndices(schema: StorageCollectionSchema<any, any, any>, doc: any): any;
|
package/dist/esm/indexes.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { createCompoundIndexValue, } from '@verdant-web/common';
|
|
2
|
-
export function computeSynthetics(schema, obj) {
|
|
3
|
-
const result = {};
|
|
4
|
-
for (const [name, property] of Object.entries(schema.synthetics || {})) {
|
|
5
|
-
result[name] = property.compute(obj);
|
|
6
|
-
}
|
|
7
|
-
return result;
|
|
8
|
-
}
|
|
9
|
-
export function computeCompoundIndices(schema, doc) {
|
|
10
|
-
return Object.entries(schema.compounds || {}).reduce((acc, [indexKey, index]) => {
|
|
11
|
-
acc[indexKey] = createCompoundIndexValue(...index.of.map((key) => doc[key]));
|
|
12
|
-
return acc;
|
|
13
|
-
}, {});
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=indexes.js.map
|
package/dist/esm/indexes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,wBAAwB,GAGxB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,iBAAiB,CAAC,MAA+B,EAAE,GAAQ;IAC1E,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;QACvE,MAAM,CAAC,IAAI,CAAC,GAAI,QAA6C,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC3E;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,MAA8C,EAC9C,GAAQ;IAER,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAElD,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5B,GAAG,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CACvC,GAAI,KAA2C,CAAC,EAAE,CAAC,GAAG,CACrD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAoB,CACpC,CACD,CAAC;QACF,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAwC,CAAC,CAAC;AAC9C,CAAC"}
|
package/src/indexes.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CollectionCompoundIndex,
|
|
3
|
-
CompoundIndexValue,
|
|
4
|
-
createCompoundIndexValue,
|
|
5
|
-
StorageCollectionSchema,
|
|
6
|
-
StorageSyntheticIndexSchema,
|
|
7
|
-
} from '@verdant-web/common';
|
|
8
|
-
|
|
9
|
-
export function computeSynthetics(schema: StorageCollectionSchema, obj: any) {
|
|
10
|
-
const result: Record<string, any> = {};
|
|
11
|
-
for (const [name, property] of Object.entries(schema.synthetics || {})) {
|
|
12
|
-
result[name] = (property as StorageSyntheticIndexSchema<any>).compute(obj);
|
|
13
|
-
}
|
|
14
|
-
return result;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function computeCompoundIndices(
|
|
18
|
-
schema: StorageCollectionSchema<any, any, any>,
|
|
19
|
-
doc: any,
|
|
20
|
-
): any {
|
|
21
|
-
return Object.entries(schema.compounds || {}).reduce<
|
|
22
|
-
Record<string, CompoundIndexValue>
|
|
23
|
-
>((acc, [indexKey, index]) => {
|
|
24
|
-
acc[indexKey] = createCompoundIndexValue(
|
|
25
|
-
...(index as CollectionCompoundIndex<any, any>).of.map(
|
|
26
|
-
(key) => doc[key] as string | number,
|
|
27
|
-
),
|
|
28
|
-
);
|
|
29
|
-
return acc;
|
|
30
|
-
}, {} as Record<string, CompoundIndexValue>);
|
|
31
|
-
}
|