@verdant-web/store 3.3.2 → 3.4.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 +8 -8
- package/dist/bundle/index.js.map +4 -4
- package/dist/esm/BackoffScheduler.js.map +1 -1
- package/dist/esm/IDBService.js.map +1 -1
- package/dist/esm/UndoHistory.js.map +1 -1
- package/dist/esm/__tests__/documents.test.js.map +1 -1
- package/dist/esm/__tests__/queries.test.js.map +1 -1
- package/dist/esm/backup.js.map +1 -1
- package/dist/esm/client/Client.d.ts +2 -24
- package/dist/esm/client/Client.js +7 -0
- package/dist/esm/client/Client.js.map +1 -1
- package/dist/esm/client/ClientDescriptor.js.map +1 -1
- package/dist/esm/entities/Entity.js.map +1 -1
- package/dist/esm/entities/EntityCache.js.map +1 -1
- package/dist/esm/entities/EntityMetadata.d.ts +2 -2
- package/dist/esm/entities/EntityMetadata.js.map +1 -1
- package/dist/esm/entities/EntityStore.d.ts +1 -0
- package/dist/esm/entities/EntityStore.js.map +1 -1
- package/dist/esm/entities/OperationBatcher.js.map +1 -1
- package/dist/esm/files/EntityFile.js.map +1 -1
- package/dist/esm/files/FileManager.d.ts +1 -0
- package/dist/esm/files/FileManager.js +3 -0
- package/dist/esm/files/FileManager.js.map +1 -1
- package/dist/esm/files/FileStorage.js.map +1 -1
- package/dist/esm/files/utils.js.map +1 -1
- package/dist/esm/idb.js.map +1 -1
- package/dist/esm/metadata/AckInfoStore.js.map +1 -1
- package/dist/esm/metadata/BaselinesStore.d.ts +4 -4
- package/dist/esm/metadata/LocalReplicaStore.js.map +1 -1
- package/dist/esm/metadata/MessageCreator.js.map +1 -1
- package/dist/esm/metadata/Metadata.d.ts +1 -1
- package/dist/esm/metadata/Metadata.js.map +1 -1
- package/dist/esm/metadata/OperationsStore.js.map +1 -1
- package/dist/esm/metadata/SchemaStore.js.map +1 -1
- package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
- package/dist/esm/migration/db.js.map +1 -1
- package/dist/esm/migration/openDatabase.js.map +1 -1
- package/dist/esm/migration/paths.js.map +1 -1
- package/dist/esm/queries/BaseQuery.js.map +1 -1
- package/dist/esm/queries/QueryCache.js.map +1 -1
- package/dist/esm/queries/QueryableStorage.js.map +1 -1
- package/dist/esm/queries/dbQueries.js.map +1 -1
- package/dist/esm/queries/keys.js.map +1 -1
- package/dist/esm/queries/ranges.js.map +1 -1
- package/dist/esm/queries/utils.js.map +1 -1
- package/dist/esm/sync/FileSync.js.map +1 -1
- package/dist/esm/sync/Heartbeat.js.map +1 -1
- package/dist/esm/sync/PresenceManager.js.map +1 -1
- package/dist/esm/sync/PushPullSync.js.map +1 -1
- package/dist/esm/sync/ServerSyncEndpointProvider.js.map +1 -1
- package/dist/esm/sync/Sync.d.ts +1 -1
- package/dist/esm/sync/Sync.js.map +1 -1
- package/dist/esm/sync/WebSocketSync.js.map +1 -1
- package/package.json +9 -10
- package/src/client/Client.ts +8 -1
- package/src/files/FileManager.ts +4 -0
- package/src/sync/Sync.ts +2 -2
- package/dist/cjs/BackoffScheduler.d.ts +0 -19
- package/dist/cjs/BackoffScheduler.js +0 -45
- package/dist/cjs/BackoffScheduler.js.map +0 -1
- package/dist/cjs/DocumentManager.d.ts +0 -28
- package/dist/cjs/DocumentManager.js +0 -45
- package/dist/cjs/DocumentManager.js.map +0 -1
- package/dist/cjs/FakeWeakRef.d.ts +0 -11
- package/dist/cjs/FakeWeakRef.js +0 -19
- package/dist/cjs/FakeWeakRef.js.map +0 -1
- package/dist/cjs/IDBService.d.ts +0 -30
- package/dist/cjs/IDBService.js +0 -101
- package/dist/cjs/IDBService.js.map +0 -1
- package/dist/cjs/UndoHistory.d.ts +0 -16
- package/dist/cjs/UndoHistory.js +0 -55
- package/dist/cjs/UndoHistory.js.map +0 -1
- package/dist/cjs/__tests__/batching.test.d.ts +0 -1
- package/dist/cjs/__tests__/batching.test.js +0 -47
- package/dist/cjs/__tests__/batching.test.js.map +0 -1
- package/dist/cjs/__tests__/documents.test.d.ts +0 -1
- package/dist/cjs/__tests__/documents.test.js +0 -468
- package/dist/cjs/__tests__/documents.test.js.map +0 -1
- package/dist/cjs/__tests__/fixtures/testStorage.d.ts +0 -76
- package/dist/cjs/__tests__/fixtures/testStorage.js +0 -96
- package/dist/cjs/__tests__/fixtures/testStorage.js.map +0 -1
- package/dist/cjs/__tests__/legacyOids.test.d.ts +0 -1
- package/dist/cjs/__tests__/legacyOids.test.js +0 -354
- package/dist/cjs/__tests__/legacyOids.test.js.map +0 -1
- package/dist/cjs/__tests__/mutations.test.d.ts +0 -1
- package/dist/cjs/__tests__/mutations.test.js +0 -48
- package/dist/cjs/__tests__/mutations.test.js.map +0 -1
- package/dist/cjs/__tests__/queries.test.d.ts +0 -1
- package/dist/cjs/__tests__/queries.test.js +0 -323
- package/dist/cjs/__tests__/queries.test.js.map +0 -1
- package/dist/cjs/__tests__/setup/indexedDB.d.ts +0 -1
- package/dist/cjs/__tests__/setup/indexedDB.js +0 -16
- package/dist/cjs/__tests__/setup/indexedDB.js.map +0 -1
- package/dist/cjs/__tests__/undo.test.d.ts +0 -1
- package/dist/cjs/__tests__/undo.test.js +0 -94
- package/dist/cjs/__tests__/undo.test.js.map +0 -1
- package/dist/cjs/backup.d.ts +0 -10
- package/dist/cjs/backup.js +0 -58
- package/dist/cjs/backup.js.map +0 -1
- package/dist/cjs/client/Client.d.ts +0 -120
- package/dist/cjs/client/Client.js +0 -300
- package/dist/cjs/client/Client.js.map +0 -1
- package/dist/cjs/client/ClientDescriptor.d.ts +0 -76
- package/dist/cjs/client/ClientDescriptor.js +0 -213
- package/dist/cjs/client/ClientDescriptor.js.map +0 -1
- package/dist/cjs/client/constants.d.ts +0 -1
- package/dist/cjs/client/constants.js +0 -5
- package/dist/cjs/client/constants.js.map +0 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +0 -5
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/context.d.ts +0 -38
- package/dist/cjs/context.js +0 -3
- package/dist/cjs/context.js.map +0 -1
- package/dist/cjs/entities/Entity.d.ts +0 -148
- package/dist/cjs/entities/Entity.js +0 -711
- package/dist/cjs/entities/Entity.js.map +0 -1
- package/dist/cjs/entities/Entity.test.d.ts +0 -1
- package/dist/cjs/entities/Entity.test.js +0 -194
- package/dist/cjs/entities/Entity.test.js.map +0 -1
- package/dist/cjs/entities/EntityCache.d.ts +0 -15
- package/dist/cjs/entities/EntityCache.js +0 -39
- package/dist/cjs/entities/EntityCache.js.map +0 -1
- package/dist/cjs/entities/EntityMetadata.d.ts +0 -68
- package/dist/cjs/entities/EntityMetadata.js +0 -261
- package/dist/cjs/entities/EntityMetadata.js.map +0 -1
- package/dist/cjs/entities/EntityStore.d.ts +0 -80
- package/dist/cjs/entities/EntityStore.js +0 -352
- package/dist/cjs/entities/EntityStore.js.map +0 -1
- package/dist/cjs/entities/OperationBatcher.d.ts +0 -52
- package/dist/cjs/entities/OperationBatcher.js +0 -165
- package/dist/cjs/entities/OperationBatcher.js.map +0 -1
- package/dist/cjs/entities/types.d.ts +0 -103
- package/dist/cjs/entities/types.js +0 -3
- package/dist/cjs/entities/types.js.map +0 -1
- package/dist/cjs/files/EntityFile.d.ts +0 -35
- package/dist/cjs/files/EntityFile.js +0 -81
- package/dist/cjs/files/EntityFile.js.map +0 -1
- package/dist/cjs/files/FileManager.d.ts +0 -46
- package/dist/cjs/files/FileManager.js +0 -174
- package/dist/cjs/files/FileManager.js.map +0 -1
- package/dist/cjs/files/FileStorage.d.ts +0 -39
- package/dist/cjs/files/FileStorage.js +0 -110
- package/dist/cjs/files/FileStorage.js.map +0 -1
- package/dist/cjs/files/utils.d.ts +0 -10
- package/dist/cjs/files/utils.js +0 -62
- package/dist/cjs/files/utils.js.map +0 -1
- package/dist/cjs/files/utils.test.d.ts +0 -1
- package/dist/cjs/files/utils.test.js +0 -81
- package/dist/cjs/files/utils.test.js.map +0 -1
- package/dist/cjs/idb.d.ts +0 -13
- package/dist/cjs/idb.js +0 -158
- package/dist/cjs/idb.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -23
- package/dist/cjs/index.js +0 -25
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/metadata/AckInfoStore.d.ts +0 -10
- package/dist/cjs/metadata/AckInfoStore.js +0 -26
- package/dist/cjs/metadata/AckInfoStore.js.map +0 -1
- package/dist/cjs/metadata/BaselinesStore.d.ts +0 -40
- package/dist/cjs/metadata/BaselinesStore.js +0 -106
- package/dist/cjs/metadata/BaselinesStore.js.map +0 -1
- package/dist/cjs/metadata/LocalReplicaStore.d.ts +0 -18
- package/dist/cjs/metadata/LocalReplicaStore.js +0 -62
- package/dist/cjs/metadata/LocalReplicaStore.js.map +0 -1
- package/dist/cjs/metadata/MessageCreator.d.ts +0 -19
- package/dist/cjs/metadata/MessageCreator.js +0 -128
- package/dist/cjs/metadata/MessageCreator.js.map +0 -1
- package/dist/cjs/metadata/Metadata.d.ts +0 -135
- package/dist/cjs/metadata/Metadata.js +0 -408
- package/dist/cjs/metadata/Metadata.js.map +0 -1
- package/dist/cjs/metadata/OperationsStore.d.ts +0 -62
- package/dist/cjs/metadata/OperationsStore.js +0 -179
- package/dist/cjs/metadata/OperationsStore.js.map +0 -1
- package/dist/cjs/metadata/SchemaStore.d.ts +0 -9
- package/dist/cjs/metadata/SchemaStore.js +0 -39
- package/dist/cjs/metadata/SchemaStore.js.map +0 -1
- package/dist/cjs/metadata/openMetadataDatabase.d.ts +0 -19
- package/dist/cjs/metadata/openMetadataDatabase.js +0 -220
- package/dist/cjs/metadata/openMetadataDatabase.js.map +0 -1
- package/dist/cjs/migration/db.d.ts +0 -8
- package/dist/cjs/migration/db.js +0 -112
- package/dist/cjs/migration/db.js.map +0 -1
- package/dist/cjs/migration/errors.d.ts +0 -5
- package/dist/cjs/migration/errors.js +0 -12
- package/dist/cjs/migration/errors.js.map +0 -1
- package/dist/cjs/migration/openDatabase.d.ts +0 -20
- package/dist/cjs/migration/openDatabase.js +0 -468
- package/dist/cjs/migration/openDatabase.js.map +0 -1
- package/dist/cjs/migration/paths.d.ts +0 -6
- package/dist/cjs/migration/paths.js +0 -53
- package/dist/cjs/migration/paths.js.map +0 -1
- package/dist/cjs/migration/paths.test.d.ts +0 -1
- package/dist/cjs/migration/paths.test.js +0 -91
- package/dist/cjs/migration/paths.test.js.map +0 -1
- package/dist/cjs/queries/BaseQuery.d.ts +0 -53
- package/dist/cjs/queries/BaseQuery.js +0 -148
- package/dist/cjs/queries/BaseQuery.js.map +0 -1
- package/dist/cjs/queries/CollectionQueries.d.ts +0 -55
- package/dist/cjs/queries/CollectionQueries.js +0 -92
- package/dist/cjs/queries/CollectionQueries.js.map +0 -1
- package/dist/cjs/queries/FindAllQuery.d.ts +0 -12
- package/dist/cjs/queries/FindAllQuery.js +0 -44
- package/dist/cjs/queries/FindAllQuery.js.map +0 -1
- package/dist/cjs/queries/FindInfiniteQuery.d.ts +0 -19
- package/dist/cjs/queries/FindInfiniteQuery.js +0 -70
- package/dist/cjs/queries/FindInfiniteQuery.js.map +0 -1
- package/dist/cjs/queries/FindOneQuery.d.ts +0 -12
- package/dist/cjs/queries/FindOneQuery.js +0 -43
- package/dist/cjs/queries/FindOneQuery.js.map +0 -1
- package/dist/cjs/queries/FindPageQuery.d.ts +0 -24
- package/dist/cjs/queries/FindPageQuery.js +0 -77
- package/dist/cjs/queries/FindPageQuery.js.map +0 -1
- package/dist/cjs/queries/GetQuery.d.ts +0 -10
- package/dist/cjs/queries/GetQuery.js +0 -30
- package/dist/cjs/queries/GetQuery.js.map +0 -1
- package/dist/cjs/queries/QueryCache.d.ts +0 -17
- package/dist/cjs/queries/QueryCache.js +0 -46
- package/dist/cjs/queries/QueryCache.js.map +0 -1
- package/dist/cjs/queries/QueryableStorage.d.ts +0 -20
- package/dist/cjs/queries/QueryableStorage.js +0 -94
- package/dist/cjs/queries/QueryableStorage.js.map +0 -1
- package/dist/cjs/queries/dbQueries.d.ts +0 -22
- package/dist/cjs/queries/dbQueries.js +0 -136
- package/dist/cjs/queries/dbQueries.js.map +0 -1
- package/dist/cjs/queries/keys.d.ts +0 -10
- package/dist/cjs/queries/keys.js +0 -34
- package/dist/cjs/queries/keys.js.map +0 -1
- package/dist/cjs/queries/ranges.d.ts +0 -2
- package/dist/cjs/queries/ranges.js +0 -70
- package/dist/cjs/queries/ranges.js.map +0 -1
- package/dist/cjs/queries/types.d.ts +0 -6
- package/dist/cjs/queries/types.js +0 -3
- package/dist/cjs/queries/types.js.map +0 -1
- package/dist/cjs/queries/utils.d.ts +0 -3
- package/dist/cjs/queries/utils.js +0 -25
- package/dist/cjs/queries/utils.js.map +0 -1
- package/dist/cjs/sync/FileSync.d.ts +0 -24
- package/dist/cjs/sync/FileSync.js +0 -87
- package/dist/cjs/sync/FileSync.js.map +0 -1
- package/dist/cjs/sync/Heartbeat.d.ts +0 -25
- package/dist/cjs/sync/Heartbeat.js +0 -64
- package/dist/cjs/sync/Heartbeat.js.map +0 -1
- package/dist/cjs/sync/PresenceManager.d.ts +0 -55
- package/dist/cjs/sync/PresenceManager.js +0 -126
- package/dist/cjs/sync/PresenceManager.js.map +0 -1
- package/dist/cjs/sync/PushPullSync.d.ts +0 -39
- package/dist/cjs/sync/PushPullSync.js +0 -159
- package/dist/cjs/sync/PushPullSync.js.map +0 -1
- package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +0 -34
- package/dist/cjs/sync/ServerSyncEndpointProvider.js +0 -69
- package/dist/cjs/sync/ServerSyncEndpointProvider.js.map +0 -1
- package/dist/cjs/sync/Sync.d.ts +0 -160
- package/dist/cjs/sync/Sync.js +0 -293
- package/dist/cjs/sync/Sync.js.map +0 -1
- package/dist/cjs/sync/WebSocketSync.d.ts +0 -44
- package/dist/cjs/sync/WebSocketSync.js +0 -221
- package/dist/cjs/sync/WebSocketSync.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -12
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils/Disposable.d.ts +0 -6
- package/dist/cjs/utils/Disposable.js +0 -19
- package/dist/cjs/utils/Disposable.js.map +0 -1
- package/dist/cjs/utils/Resolvable.d.ts +0 -8
- package/dist/cjs/utils/Resolvable.js +0 -23
- package/dist/cjs/utils/Resolvable.js.map +0 -1
- package/dist/cjs/vanilla.d.ts +0 -1
- package/dist/cjs/vanilla.js +0 -28
- package/dist/cjs/vanilla.js.map +0 -1
- package/dist/tsconfig-cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMetadata.js","sourceRoot":"","sources":["../../../src/entities/EntityMetadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { DocumentBaseline, ObjectIdentifier, Operation } from '@verdant-web/common';
|
|
2
|
-
import { Context } from '../context.js';
|
|
3
|
-
import { Metadata } from '../metadata/Metadata.js';
|
|
4
|
-
import { Entity } from './Entity.js';
|
|
5
|
-
import { Disposable } from '../utils/Disposable.js';
|
|
6
|
-
import { FileManager } from '../files/FileManager.js';
|
|
7
|
-
import { WeakEvent } from 'weak-event';
|
|
8
|
-
import { abort } from 'process';
|
|
9
|
-
export type EntityStoreEventData = {
|
|
10
|
-
oid: ObjectIdentifier;
|
|
11
|
-
operations?: Record<string, Operation[]>;
|
|
12
|
-
baselines?: DocumentBaseline[];
|
|
13
|
-
isLocal: boolean;
|
|
14
|
-
};
|
|
15
|
-
export type EntityStoreEvents = {
|
|
16
|
-
add: WeakEvent<EntityStore, EntityStoreEventData>;
|
|
17
|
-
replace: WeakEvent<EntityStore, EntityStoreEventData>;
|
|
18
|
-
resetAll: WeakEvent<EntityStore, void>;
|
|
19
|
-
};
|
|
20
|
-
type IncomingData = {
|
|
21
|
-
operations?: Operation[];
|
|
22
|
-
baselines?: DocumentBaseline[];
|
|
23
|
-
reset?: boolean;
|
|
24
|
-
isLocal?: boolean;
|
|
25
|
-
};
|
|
26
|
-
export declare class EntityStore extends Disposable {
|
|
27
|
-
private ctx;
|
|
28
|
-
private meta;
|
|
29
|
-
private files;
|
|
30
|
-
private batcher;
|
|
31
|
-
private queryableStorage;
|
|
32
|
-
private events;
|
|
33
|
-
private cache;
|
|
34
|
-
private pendingEntityPromises;
|
|
35
|
-
private abortDataQueueController;
|
|
36
|
-
private ongoingResetPromise;
|
|
37
|
-
private entityFinalizationRegistry;
|
|
38
|
-
constructor({ ctx, meta, files, }: {
|
|
39
|
-
ctx: Context;
|
|
40
|
-
meta: Metadata;
|
|
41
|
-
files: FileManager;
|
|
42
|
-
});
|
|
43
|
-
get batch(): ({ undoable, batchName, max, timeout, }?: {
|
|
44
|
-
undoable?: boolean | undefined;
|
|
45
|
-
batchName?: string | undefined;
|
|
46
|
-
max?: number | null | undefined;
|
|
47
|
-
timeout?: number | null | undefined;
|
|
48
|
-
}) => import("./OperationBatcher.js").OperationBatch;
|
|
49
|
-
get flushAllBatches(): () => Promise<any[]>;
|
|
50
|
-
addData: (data: IncomingData) => Promise<void>;
|
|
51
|
-
private resetData;
|
|
52
|
-
private processData;
|
|
53
|
-
hydrate: (oid: string, opts?: {
|
|
54
|
-
abort: AbortSignal;
|
|
55
|
-
}) => Promise<Entity | null>;
|
|
56
|
-
destroy: () => Promise<void>;
|
|
57
|
-
/**
|
|
58
|
-
* Creates a new Entity with the given initial data.
|
|
59
|
-
*/
|
|
60
|
-
create: (initial: any, oid: ObjectIdentifier, { undoable }?: {
|
|
61
|
-
undoable?: boolean | undefined;
|
|
62
|
-
}) => Promise<Entity<any, any, any>>;
|
|
63
|
-
deleteAll: (oids: ObjectIdentifier[], options?: {
|
|
64
|
-
undoable?: boolean;
|
|
65
|
-
}) => Promise<void>;
|
|
66
|
-
delete: (oid: ObjectIdentifier, options?: {
|
|
67
|
-
undoable?: boolean;
|
|
68
|
-
}) => Promise<void>;
|
|
69
|
-
private getCollectionSchema;
|
|
70
|
-
/**
|
|
71
|
-
* Constructs an entity from an OID, but does not load it.
|
|
72
|
-
*/
|
|
73
|
-
private constructEntity;
|
|
74
|
-
private onPendingOperations;
|
|
75
|
-
/**
|
|
76
|
-
* Loads initial Entity data from storage
|
|
77
|
-
*/
|
|
78
|
-
private loadEntity;
|
|
79
|
-
}
|
|
80
|
-
export {};
|
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityStore = void 0;
|
|
4
|
-
const common_1 = require("@verdant-web/common");
|
|
5
|
-
const Entity_js_1 = require("./Entity.js");
|
|
6
|
-
const Disposable_js_1 = require("../utils/Disposable.js");
|
|
7
|
-
const EntityMetadata_js_1 = require("./EntityMetadata.js");
|
|
8
|
-
const OperationBatcher_js_1 = require("./OperationBatcher.js");
|
|
9
|
-
const QueryableStorage_js_1 = require("../queries/QueryableStorage.js");
|
|
10
|
-
const weak_event_1 = require("weak-event");
|
|
11
|
-
const utils_js_1 = require("../files/utils.js");
|
|
12
|
-
var AbortReason;
|
|
13
|
-
(function (AbortReason) {
|
|
14
|
-
AbortReason[AbortReason["Reset"] = 0] = "Reset";
|
|
15
|
-
})(AbortReason || (AbortReason = {}));
|
|
16
|
-
class EntityStore extends Disposable_js_1.Disposable {
|
|
17
|
-
constructor({ ctx, meta, files, }) {
|
|
18
|
-
super();
|
|
19
|
-
this.events = {
|
|
20
|
-
add: new weak_event_1.WeakEvent(),
|
|
21
|
-
replace: new weak_event_1.WeakEvent(),
|
|
22
|
-
resetAll: new weak_event_1.WeakEvent(),
|
|
23
|
-
};
|
|
24
|
-
this.cache = new Map();
|
|
25
|
-
this.pendingEntityPromises = new Map();
|
|
26
|
-
// halts the current data queue processing
|
|
27
|
-
this.abortDataQueueController = new AbortController();
|
|
28
|
-
this.ongoingResetPromise = null;
|
|
29
|
-
this.entityFinalizationRegistry = new FinalizationRegistry((oid) => {
|
|
30
|
-
this.ctx.log('debug', 'Entity GC', oid);
|
|
31
|
-
});
|
|
32
|
-
// internal-ish API to load remote / stored data
|
|
33
|
-
this.addData = async (data) => {
|
|
34
|
-
if (this.disposed) {
|
|
35
|
-
this.ctx.log('warn', 'EntityStore is disposed, not adding incoming data');
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
// for resets - abort any other changes, reset everything,
|
|
39
|
-
// then proceed
|
|
40
|
-
if (data.reset) {
|
|
41
|
-
this.ctx.log('info', 'Resetting local store to replicate remote synced data - dropping any current transactions');
|
|
42
|
-
// cancel any other ongoing data - it will all
|
|
43
|
-
// be replaced by the reset
|
|
44
|
-
this.abortDataQueueController.abort(AbortReason.Reset);
|
|
45
|
-
this.abortDataQueueController = new AbortController();
|
|
46
|
-
this.ongoingResetPromise = this.resetData().finally(() => {
|
|
47
|
-
this.ongoingResetPromise = null;
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
// await either the reset we just started, or any that was
|
|
51
|
-
// in progress when this data came in.
|
|
52
|
-
if (this.ongoingResetPromise) {
|
|
53
|
-
this.ctx.log('debug', 'Waiting for ongoing reset to complete');
|
|
54
|
-
await this.ongoingResetPromise;
|
|
55
|
-
this.ctx.log('debug', 'Ongoing reset complete');
|
|
56
|
-
}
|
|
57
|
-
await this.processData(data);
|
|
58
|
-
};
|
|
59
|
-
this.resetData = async () => {
|
|
60
|
-
if (this.disposed) {
|
|
61
|
-
this.ctx.log('warn', 'EntityStore is disposed, not resetting local data');
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
await this.meta.reset();
|
|
65
|
-
await this.queryableStorage.reset();
|
|
66
|
-
this.events.resetAll.invoke(this);
|
|
67
|
-
};
|
|
68
|
-
this.processData = async (data) => {
|
|
69
|
-
var _a, _b, _c;
|
|
70
|
-
if (this.disposed) {
|
|
71
|
-
this.ctx.log('warn', 'EntityStore is disposed, not processing incoming data');
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const baselines = (_a = data === null || data === void 0 ? void 0 : data.baselines) !== null && _a !== void 0 ? _a : [];
|
|
75
|
-
const operations = (_b = data === null || data === void 0 ? void 0 : data.operations) !== null && _b !== void 0 ? _b : [];
|
|
76
|
-
this.ctx.log('debug', 'Processing incoming data', {
|
|
77
|
-
operations: operations.length,
|
|
78
|
-
baselines: baselines.length,
|
|
79
|
-
reset: !!data.reset,
|
|
80
|
-
});
|
|
81
|
-
const allDocumentOids = Array.from(new Set(baselines
|
|
82
|
-
.map((b) => (0, common_1.getOidRoot)(b.oid))
|
|
83
|
-
.concat(operations.map((o) => (0, common_1.getOidRoot)(o.oid)))));
|
|
84
|
-
const baselinesGroupedByOid = (0, common_1.groupBaselinesByRootOid)(baselines);
|
|
85
|
-
const operationsGroupedByOid = (0, common_1.groupPatchesByRootOid)(operations);
|
|
86
|
-
this.ctx.log('debug', 'Applying data to live entities');
|
|
87
|
-
// synchronously add/replace data in any open entities via eventing
|
|
88
|
-
for (const oid of allDocumentOids) {
|
|
89
|
-
const baselines = baselinesGroupedByOid[oid];
|
|
90
|
-
const operations = (_c = operationsGroupedByOid[oid]) !== null && _c !== void 0 ? _c : [];
|
|
91
|
-
const groupedOperations = (0, common_1.groupPatchesByOid)(operations);
|
|
92
|
-
// what happens if an entity is being hydrated
|
|
93
|
-
// while this is happening? - we wait for the hydration promise
|
|
94
|
-
// to complete, then invoke the event
|
|
95
|
-
const event = data.reset ? this.events.replace : this.events.add;
|
|
96
|
-
const hydrationPromise = this.pendingEntityPromises.get(oid);
|
|
97
|
-
if (hydrationPromise) {
|
|
98
|
-
hydrationPromise.then(() => {
|
|
99
|
-
event.invoke(this, {
|
|
100
|
-
oid,
|
|
101
|
-
baselines,
|
|
102
|
-
operations: groupedOperations,
|
|
103
|
-
isLocal: false,
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
if (this.cache.has(oid)) {
|
|
109
|
-
this.ctx.log('debug', 'Cache has', oid, ', an event should follow.');
|
|
110
|
-
}
|
|
111
|
-
event.invoke(this, {
|
|
112
|
-
oid,
|
|
113
|
-
baselines,
|
|
114
|
-
operations: groupedOperations,
|
|
115
|
-
isLocal: false,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
const abortOptions = {
|
|
120
|
-
abort: this.abortDataQueueController.signal,
|
|
121
|
-
};
|
|
122
|
-
// then, asynchronously add to the database
|
|
123
|
-
await this.meta.insertData(data, abortOptions);
|
|
124
|
-
// FIXME: entities hydrated here are not seeing
|
|
125
|
-
// the operations just inserted above!!
|
|
126
|
-
// IDEA: can we coordinate here with hydrate promises
|
|
127
|
-
// based on affected OIDs?
|
|
128
|
-
// recompute all affected documents for querying
|
|
129
|
-
const entities = await Promise.all(allDocumentOids.map(async (oid) => {
|
|
130
|
-
const entity = await this.hydrate(oid, abortOptions);
|
|
131
|
-
// if the entity is not found, we return a stub that
|
|
132
|
-
// indicates it's deleted and should be cleared
|
|
133
|
-
return (entity !== null && entity !== void 0 ? entity : {
|
|
134
|
-
oid,
|
|
135
|
-
getSnapshot() {
|
|
136
|
-
return null;
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
}));
|
|
140
|
-
try {
|
|
141
|
-
await this.queryableStorage.saveEntities(entities, abortOptions);
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
if (this.disposed) {
|
|
145
|
-
this.ctx.log('warn', 'Error saving entities to queryable storage - EntityStore is disposed', err);
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
this.ctx.log('error', 'Error saving entities to queryable storage', err);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
// internal-ish API for creating Entities from OIDs
|
|
153
|
-
// when query results come in
|
|
154
|
-
this.hydrate = async (oid, opts) => {
|
|
155
|
-
if (!(0, common_1.isRootOid)(oid)) {
|
|
156
|
-
throw new Error('Cannot hydrate non-root entity');
|
|
157
|
-
}
|
|
158
|
-
if (this.cache.has(oid)) {
|
|
159
|
-
this.ctx.log('debug', 'Hydrating entity from cache', oid);
|
|
160
|
-
const cached = this.cache.get(oid);
|
|
161
|
-
if (cached) {
|
|
162
|
-
const entity = cached.deref();
|
|
163
|
-
if (entity) {
|
|
164
|
-
if (entity.deleted) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
return entity;
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.ctx.log('debug', "Removing GC'd entity from cache", oid);
|
|
171
|
-
this.cache.delete(oid);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// we don't want to hydrate two entities in parallel, so
|
|
176
|
-
// we use a promise to ensure that only one is ever
|
|
177
|
-
// constructed at a time
|
|
178
|
-
const pendingPromise = this.pendingEntityPromises.get(oid);
|
|
179
|
-
if (!pendingPromise) {
|
|
180
|
-
this.ctx.log('debug', 'Hydrating entity from storage', oid);
|
|
181
|
-
const entity = this.constructEntity(oid);
|
|
182
|
-
if (!entity) {
|
|
183
|
-
return null;
|
|
184
|
-
}
|
|
185
|
-
const pendingPromise = this.loadEntity(entity, opts);
|
|
186
|
-
pendingPromise.finally(() => {
|
|
187
|
-
this.pendingEntityPromises.delete(oid);
|
|
188
|
-
});
|
|
189
|
-
this.pendingEntityPromises.set(oid, pendingPromise);
|
|
190
|
-
return pendingPromise;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
this.ctx.log('debug', 'Waiting for entity hydration', oid);
|
|
194
|
-
return pendingPromise;
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
this.destroy = async () => {
|
|
198
|
-
this.dispose();
|
|
199
|
-
await this.batcher.flushAll();
|
|
200
|
-
};
|
|
201
|
-
// public APIs for manipulating entities
|
|
202
|
-
/**
|
|
203
|
-
* Creates a new Entity with the given initial data.
|
|
204
|
-
*/
|
|
205
|
-
this.create = async (initial, oid, { undoable = true } = {}) => {
|
|
206
|
-
this.ctx.log('debug', 'Creating new entity', oid);
|
|
207
|
-
const { collection } = (0, common_1.decomposeOid)(oid);
|
|
208
|
-
// remove any OID associations from the initial data
|
|
209
|
-
(0, common_1.removeOidsFromAllSubObjects)(initial);
|
|
210
|
-
// grab files and replace them with refs
|
|
211
|
-
const processed = (0, utils_js_1.processValueFiles)(initial, this.files.add);
|
|
212
|
-
(0, common_1.assignOid)(processed, oid);
|
|
213
|
-
// creating a new Entity with no data, then preloading the operations
|
|
214
|
-
const entity = this.constructEntity(oid);
|
|
215
|
-
if (!entity) {
|
|
216
|
-
throw new Error(`Could not put new document: no schema exists for collection ${collection}`);
|
|
217
|
-
}
|
|
218
|
-
const operations = this.meta.patchCreator.createInitialize(processed, oid);
|
|
219
|
-
await this.batcher.commitOperations(operations, {
|
|
220
|
-
undoable: !!undoable,
|
|
221
|
-
source: entity,
|
|
222
|
-
});
|
|
223
|
-
// TODO: what happens if you create an entity with an OID that already
|
|
224
|
-
// exists?
|
|
225
|
-
// we still need to synchronously add the initial operations to the Entity
|
|
226
|
-
// even though they are flowing through the system
|
|
227
|
-
// TODO: this could be better aligned to avoid grouping here
|
|
228
|
-
const operationsGroupedByOid = (0, common_1.groupPatchesByOid)(operations);
|
|
229
|
-
this.events.add.invoke(this, {
|
|
230
|
-
operations: operationsGroupedByOid,
|
|
231
|
-
isLocal: true,
|
|
232
|
-
oid,
|
|
233
|
-
});
|
|
234
|
-
this.cache.set(oid, this.ctx.weakRef(entity));
|
|
235
|
-
return entity;
|
|
236
|
-
};
|
|
237
|
-
this.deleteAll = async (oids, options) => {
|
|
238
|
-
this.ctx.log('info', 'Deleting documents', oids);
|
|
239
|
-
(0, common_1.assert)(oids.every((oid) => oid === (0, common_1.getOidRoot)(oid)), 'Only root documents may be deleted via client methods');
|
|
240
|
-
const allOids = await Promise.all(oids.flatMap(async (oid) => {
|
|
241
|
-
var _a;
|
|
242
|
-
const entity = await this.hydrate(oid);
|
|
243
|
-
return (_a = entity === null || entity === void 0 ? void 0 : entity.__getFamilyOids__()) !== null && _a !== void 0 ? _a : [];
|
|
244
|
-
}));
|
|
245
|
-
// remove the entities from cache
|
|
246
|
-
oids.forEach((oid) => {
|
|
247
|
-
this.cache.delete(oid);
|
|
248
|
-
this.ctx.log('debug', 'Deleted document from cache', oid);
|
|
249
|
-
});
|
|
250
|
-
// create the delete patches and wait for them to be applied
|
|
251
|
-
const operations = this.meta.patchCreator.createDeleteAll(allOids.flat());
|
|
252
|
-
await this.batcher.commitOperations(operations, {
|
|
253
|
-
undoable: (options === null || options === void 0 ? void 0 : options.undoable) === undefined ? true : options.undoable,
|
|
254
|
-
});
|
|
255
|
-
};
|
|
256
|
-
this.delete = async (oid, options) => {
|
|
257
|
-
return this.deleteAll([oid], options);
|
|
258
|
-
};
|
|
259
|
-
this.getCollectionSchema = (collectionName) => {
|
|
260
|
-
const schema = this.ctx.schema.collections[collectionName];
|
|
261
|
-
if (!schema) {
|
|
262
|
-
this.ctx.log('warn', `Missing schema for collection: ${collectionName}`);
|
|
263
|
-
return {
|
|
264
|
-
schema: null,
|
|
265
|
-
readonlyKeys: [],
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
return {
|
|
269
|
-
// convert to object schema for compatibility
|
|
270
|
-
schema: {
|
|
271
|
-
type: 'object',
|
|
272
|
-
nullable: false,
|
|
273
|
-
properties: schema.fields,
|
|
274
|
-
},
|
|
275
|
-
readonlyKeys: [schema.primaryKey],
|
|
276
|
-
};
|
|
277
|
-
};
|
|
278
|
-
/**
|
|
279
|
-
* Constructs an entity from an OID, but does not load it.
|
|
280
|
-
*/
|
|
281
|
-
this.constructEntity = (oid) => {
|
|
282
|
-
const { collection } = (0, common_1.decomposeOid)(oid);
|
|
283
|
-
const { schema, readonlyKeys } = this.getCollectionSchema(collection);
|
|
284
|
-
if (!schema) {
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
if (this.disposed) {
|
|
288
|
-
throw new Error('Cannot hydrate entity after store has been disposed');
|
|
289
|
-
}
|
|
290
|
-
const metadataFamily = new EntityMetadata_js_1.EntityFamilyMetadata({
|
|
291
|
-
ctx: this.ctx,
|
|
292
|
-
onPendingOperations: this.onPendingOperations,
|
|
293
|
-
rootOid: oid,
|
|
294
|
-
});
|
|
295
|
-
// this is created synchronously so it's immediately available
|
|
296
|
-
// to begin capturing incoming data.
|
|
297
|
-
return new Entity_js_1.Entity({
|
|
298
|
-
ctx: this.ctx,
|
|
299
|
-
oid,
|
|
300
|
-
schema,
|
|
301
|
-
readonlyKeys,
|
|
302
|
-
files: this.files,
|
|
303
|
-
metadataFamily: metadataFamily,
|
|
304
|
-
patchCreator: this.meta.patchCreator,
|
|
305
|
-
events: this.events,
|
|
306
|
-
});
|
|
307
|
-
};
|
|
308
|
-
this.onPendingOperations = (operations) => {
|
|
309
|
-
this.batcher.addOperations(operations);
|
|
310
|
-
};
|
|
311
|
-
/**
|
|
312
|
-
* Loads initial Entity data from storage
|
|
313
|
-
*/
|
|
314
|
-
this.loadEntity = async (entity, opts) => {
|
|
315
|
-
const { operations, baselines } = await this.meta.getDocumentData(entity.oid, opts);
|
|
316
|
-
if (!baselines.length && !Object.keys(operations).length) {
|
|
317
|
-
this.ctx.log('debug', 'No data found for entity', entity.oid);
|
|
318
|
-
return null;
|
|
319
|
-
}
|
|
320
|
-
this.ctx.log('debug', 'Loaded entity from storage', entity.oid);
|
|
321
|
-
this.events.replace.invoke(this, {
|
|
322
|
-
oid: entity.oid,
|
|
323
|
-
baselines,
|
|
324
|
-
operations,
|
|
325
|
-
isLocal: false,
|
|
326
|
-
});
|
|
327
|
-
// only set the cache after loading.
|
|
328
|
-
// TODO: is this cache/promise stuff redundant?
|
|
329
|
-
this.cache.set(entity.oid, this.ctx.weakRef(entity));
|
|
330
|
-
this.entityFinalizationRegistry.register(entity, entity.oid);
|
|
331
|
-
return entity;
|
|
332
|
-
};
|
|
333
|
-
this.ctx = ctx;
|
|
334
|
-
this.meta = meta;
|
|
335
|
-
this.files = files;
|
|
336
|
-
this.queryableStorage = new QueryableStorage_js_1.QueryableStorage({ ctx });
|
|
337
|
-
this.batcher = new OperationBatcher_js_1.OperationBatcher({
|
|
338
|
-
ctx,
|
|
339
|
-
meta,
|
|
340
|
-
entities: this,
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
// expose batch APIs
|
|
344
|
-
get batch() {
|
|
345
|
-
return this.batcher.batch;
|
|
346
|
-
}
|
|
347
|
-
get flushAllBatches() {
|
|
348
|
-
return this.batcher.flushAll;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
exports.EntityStore = EntityStore;
|
|
352
|
-
//# sourceMappingURL=EntityStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":";;;AAAA,gDAe6B;AAG7B,2CAAqC;AACrC,0DAAoD;AACpD,2DAA2D;AAE3D,+DAAyD;AACzD,wEAAkE;AAClE,2CAAuC;AACvC,gDAAsD;AAGtD,IAAK,WAEJ;AAFD,WAAK,WAAW;IACf,+CAAK,CAAA;AACN,CAAC,EAFI,WAAW,KAAX,WAAW,QAEf;AAsBD,MAAa,WAAY,SAAQ,0BAAU;IAyB1C,YAAY,EACX,GAAG,EACH,IAAI,EACJ,KAAK,GAKL;QACA,KAAK,EAAE,CAAC;QA5BD,WAAM,GAAsB;YACnC,GAAG,EAAE,IAAI,sBAAS,EAAE;YACpB,OAAO,EAAE,IAAI,sBAAS,EAAE;YACxB,QAAQ,EAAE,IAAI,sBAAS,EAAE;SACzB,CAAC;QACM,UAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;QACrD,0BAAqB,GAAG,IAAI,GAAG,EAGpC,CAAC;QACJ,0CAA0C;QAClC,6BAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,wBAAmB,GAAyB,IAAI,CAAC;QACjD,+BAA0B,GAAG,IAAI,oBAAoB,CAC5D,CAAC,GAAqB,EAAE,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC,CACD,CAAC;QAgCF,gDAAgD;QAChD,YAAO,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAC;gBAC1E,OAAO;aACP;YACD,0DAA0D;YAC1D,eAAe;YACf,IAAI,IAAI,CAAC,KAAK,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,MAAM,EACN,2FAA2F,CAC3F,CAAC;gBACF,8CAA8C;gBAC9C,2BAA2B;gBAC3B,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,wBAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;gBACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;oBACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBACjC,CAAC,CAAC,CAAC;aACH;YAED,0DAA0D;YAC1D,sCAAsC;YACtC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;aAChD;YAED,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEM,cAAS,GAAG,KAAK,IAAI,EAAE;YAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAC;gBAC1E,OAAO;aACP;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;QAEM,gBAAW,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;;YAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,MAAM,EACN,uDAAuD,CACvD,CAAC;gBACF,OAAO;aACP;YAED,MAAM,SAAS,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,EAAE,CAAC;YAE1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE;gBACjD,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,SAAS,EAAE,SAAS,CAAC,MAAM;gBAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;aACnB,CAAC,CAAC;YAEH,MAAM,eAAe,GAAuB,KAAK,CAAC,IAAI,CACrD,IAAI,GAAG,CACN,SAAS;iBACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAU,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAU,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAClD,CACD,CAAC;YACF,MAAM,qBAAqB,GAAG,IAAA,gCAAuB,EAAC,SAAS,CAAC,CAAC;YACjE,MAAM,sBAAsB,GAAG,IAAA,8BAAqB,EAAC,UAAU,CAAC,CAAC;YAEjE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;YACxD,mEAAmE;YACnE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;gBAClC,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,MAAA,sBAAsB,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;gBACrD,MAAM,iBAAiB,GAAG,IAAA,0BAAiB,EAAC,UAAU,CAAC,CAAC;gBACxD,8CAA8C;gBAC9C,+DAA+D;gBAC/D,qCAAqC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,gBAAgB,EAAE;oBACrB,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC1B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;4BAClB,GAAG;4BACH,SAAS;4BACT,UAAU,EAAE,iBAAiB;4BAC7B,OAAO,EAAE,KAAK;yBACd,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACH;qBAAM;oBACN,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC;qBACrE;oBACD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;wBAClB,GAAG;wBACH,SAAS;wBACT,UAAU,EAAE,iBAAiB;wBAC7B,OAAO,EAAE,KAAK;qBACd,CAAC,CAAC;iBACH;aACD;YAED,MAAM,YAAY,GAAG;gBACpB,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAM;aAC3C,CAAC;YAEF,2CAA2C;YAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAE/C,+CAA+C;YAC/C,uCAAuC;YACvC,qDAAqD;YACrD,0BAA0B;YAE1B,gDAAgD;YAChD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBACrD,oDAAoD;gBACpD,+CAA+C;gBAC/C,OAAO,CACN,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI;oBACT,GAAG;oBACH,WAAW;wBACV,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD,CACD,CAAC;YACH,CAAC,CAAC,CACF,CAAC;YACF,IAAI;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;aACjE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,MAAM,EACN,sEAAsE,EACtE,GAAG,CACH,CAAC;iBACF;qBAAM;oBACN,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,OAAO,EACP,4CAA4C,EAC5C,GAAG,CACH,CAAC;iBACF;aACD;QACF,CAAC,CAAC;QAEF,mDAAmD;QACnD,6BAA6B;QAC7B,YAAO,GAAG,KAAK,EACd,GAAW,EACX,IAA6B,EACJ,EAAE;YAC3B,IAAI,CAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aAClD;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,MAAM,EAAE;oBACX,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9B,IAAI,MAAM,EAAE;wBACX,IAAI,MAAM,CAAC,OAAO,EAAE;4BACnB,OAAO,IAAI,CAAC;yBACZ;wBACD,OAAO,MAAM,CAAC;qBACd;yBAAM;wBACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;wBAC9D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;qBACvB;iBACD;aACD;YAED,wDAAwD;YACxD,mDAAmD;YACnD,wBAAwB;YACxB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,EAAE;oBACZ,OAAO,IAAI,CAAC;iBACZ;gBACD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACrD,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBACpD,OAAO,cAAc,CAAC;aACtB;iBAAM;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC;gBAC3D,OAAO,cAAc,CAAC;aACtB;QACF,CAAC,CAAC;QAEF,YAAO,GAAG,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEF,wCAAwC;QAExC;;WAEG;QACH,WAAM,GAAG,KAAK,EACb,OAAY,EACZ,GAAqB,EACrB,EAAE,QAAQ,GAAG,IAAI,KAA6B,EAAE,EAC/C,EAAE;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,CAAC;YACzC,oDAAoD;YACpD,IAAA,oCAA2B,EAAC,OAAO,CAAC,CAAC;YACrC,wCAAwC;YACxC,MAAM,SAAS,GAAG,IAAA,4BAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7D,IAAA,kBAAS,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAE1B,qEAAqE;YACrE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,IAAI,KAAK,CACd,+DAA+D,UAAU,EAAE,CAC3E,CAAC;aACF;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,sEAAsE;YACtE,UAAU;YAEV,0EAA0E;YAC1E,kDAAkD;YAClD,4DAA4D;YAC5D,MAAM,sBAAsB,GAAG,IAAA,0BAAiB,EAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC5B,UAAU,EAAE,sBAAsB;gBAClC,OAAO,EAAE,IAAI;gBACb,GAAG;aACH,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAE9C,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,cAAS,GAAG,KAAK,EAChB,IAAwB,EACxB,OAAgC,EAC/B,EAAE;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;YACjD,IAAA,eAAM,EACL,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAA,mBAAU,EAAC,GAAG,CAAC,CAAC,EAC5C,uDAAuD,CACvD,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;;gBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,mCAAI,EAAE,CAAC;YAC1C,CAAC,CAAC,CACF,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,4DAA4D;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBAC/C,QAAQ,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;aACnE,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,WAAM,GAAG,KAAK,EAAE,GAAqB,EAAE,OAAgC,EAAE,EAAE;YAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAC7B,cAAsB,EAIrB,EAAE;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,kCAAkC,cAAc,EAAE,CAAC,CAAC;gBACzE,OAAO;oBACN,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,EAAE;iBAChB,CAAC;aACF;YACD,OAAO;gBACN,6CAA6C;gBAC7C,MAAM,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,MAAM,CAAC,MAAa;iBAChC;gBACD,YAAY,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;aACjC,CAAC;QACH,CAAC,CAAC;QAEF;;WAEG;QACK,oBAAe,GAAG,CAAC,GAAW,EAAiB,EAAE;YACxD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,CAAC;YACzC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEtE,IAAI,CAAC,MAAM,EAAE;gBACZ,OAAO,IAAI,CAAC;aACZ;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACvE;YAED,MAAM,cAAc,GAAG,IAAI,wCAAoB,CAAC;gBAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,OAAO,EAAE,GAAG;aACZ,CAAC,CAAC;YAEH,8DAA8D;YAC9D,oCAAoC;YACpC,OAAO,IAAI,kBAAM,CAAC;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG;gBACH,MAAM;gBACN,YAAY;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,cAAc;gBAC9B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,UAAuB,EAAE,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF;;WAEG;QACK,eAAU,GAAG,KAAK,EACzB,MAAc,EACd,IAA6B,EACJ,EAAE;YAC3B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAChE,MAAM,CAAC,GAAG,EACV,IAAI,CACJ,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;gBACzD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;aACZ;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,SAAS;gBACT,UAAU;gBACV,OAAO,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,oCAAoC;YACpC,+CAA+C;YAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAE7D,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QApZD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,sCAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,sCAAgB,CAAC;YACnC,GAAG;YACH,IAAI;YACJ,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9B,CAAC;CAoYD;AAzbD,kCAybC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Operation } from '@verdant-web/common';
|
|
2
|
-
import { Metadata } from '../metadata/Metadata.js';
|
|
3
|
-
import { Context } from '../context.js';
|
|
4
|
-
import type { EntityStore } from './EntityStore.js';
|
|
5
|
-
import { Entity } from './Entity.js';
|
|
6
|
-
export interface OperationBatch {
|
|
7
|
-
run: (fn: () => void) => this;
|
|
8
|
-
/** @deprecated - use commit() */
|
|
9
|
-
flush: () => Promise<void>;
|
|
10
|
-
commit: () => Promise<void>;
|
|
11
|
-
discard: () => void;
|
|
12
|
-
}
|
|
13
|
-
export declare class OperationBatcher {
|
|
14
|
-
private batcher;
|
|
15
|
-
private currentBatchKey;
|
|
16
|
-
private defaultBatchTimeout;
|
|
17
|
-
private meta;
|
|
18
|
-
private ctx;
|
|
19
|
-
private entities;
|
|
20
|
-
constructor({ batchTimeout, meta, ctx, entities, }: {
|
|
21
|
-
batchTimeout?: number;
|
|
22
|
-
meta: Metadata;
|
|
23
|
-
ctx: Context;
|
|
24
|
-
entities: EntityStore;
|
|
25
|
-
});
|
|
26
|
-
get isDefaultBatch(): boolean;
|
|
27
|
-
private flushOperations;
|
|
28
|
-
/**
|
|
29
|
-
* Immediately flushes operations to storage / sync.
|
|
30
|
-
* Providing source to second arg skips hydrating related
|
|
31
|
-
* Entity from storage, which is useful when that Entity
|
|
32
|
-
* isn't in storage (i.e. still creating) or just to speed
|
|
33
|
-
* up the commit.
|
|
34
|
-
*/
|
|
35
|
-
commitOperations: (operations: Operation[], meta: {
|
|
36
|
-
undoable?: boolean;
|
|
37
|
-
source?: Entity;
|
|
38
|
-
}) => Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Adds operations to the active batch.
|
|
41
|
-
*/
|
|
42
|
-
addOperations: (operations: Operation[]) => void;
|
|
43
|
-
batch: ({ undoable, batchName, max, timeout, }?: {
|
|
44
|
-
undoable?: boolean | undefined;
|
|
45
|
-
batchName?: string | undefined;
|
|
46
|
-
max?: number | null | undefined;
|
|
47
|
-
timeout?: number | null | undefined;
|
|
48
|
-
}) => OperationBatch;
|
|
49
|
-
flushAll: () => Promise<any[]>;
|
|
50
|
-
private createUndo;
|
|
51
|
-
private getInverseOperations;
|
|
52
|
-
}
|