@verdant-web/store 2.7.7-next.0 → 2.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BackoffScheduler.d.ts +19 -19
- package/dist/cjs/BackoffScheduler.js +44 -44
- package/dist/cjs/DocumentManager.d.ts +28 -31
- package/dist/cjs/DocumentManager.js +44 -44
- package/dist/cjs/FakeWeakRef.d.ts +11 -11
- package/dist/cjs/FakeWeakRef.js +18 -18
- package/dist/cjs/IDBService.d.ts +9 -9
- package/dist/cjs/IDBService.js +63 -63
- package/dist/cjs/UndoHistory.d.ts +16 -16
- package/dist/cjs/UndoHistory.js +50 -50
- package/dist/cjs/__tests__/batching.test.d.ts +1 -1
- package/dist/cjs/__tests__/batching.test.js +44 -44
- package/dist/cjs/__tests__/documents.test.d.ts +1 -1
- package/dist/cjs/__tests__/documents.test.js +415 -415
- package/dist/cjs/__tests__/fixtures/testStorage.d.ts +123 -123
- package/dist/cjs/__tests__/fixtures/testStorage.js +117 -117
- package/dist/cjs/__tests__/legacyOids.test.d.ts +1 -1
- package/dist/cjs/__tests__/legacyOids.test.js +290 -290
- package/dist/cjs/__tests__/mutations.test.d.ts +1 -1
- package/dist/cjs/__tests__/mutations.test.js +41 -41
- package/dist/cjs/__tests__/queries.test.d.ts +1 -1
- package/dist/cjs/__tests__/queries.test.js +318 -318
- package/dist/cjs/__tests__/setup/indexedDB.d.ts +1 -1
- package/dist/cjs/__tests__/setup/indexedDB.js +3 -3
- package/dist/cjs/__tests__/undo.test.d.ts +1 -1
- package/dist/cjs/__tests__/undo.test.js +86 -86
- package/dist/cjs/client/Client.d.ts +99 -98
- package/dist/cjs/client/Client.js +227 -227
- package/dist/cjs/client/ClientDescriptor.d.ts +76 -76
- package/dist/cjs/client/ClientDescriptor.js +197 -197
- package/dist/cjs/client/constants.d.ts +1 -1
- package/dist/cjs/client/constants.js +4 -4
- package/dist/cjs/constants.d.ts +1 -1
- package/dist/cjs/constants.js +4 -4
- package/dist/cjs/context.d.ts +29 -29
- package/dist/cjs/context.js +2 -2
- package/dist/cjs/entities/DocumentFamiliyCache.d.ts +90 -90
- package/dist/cjs/entities/DocumentFamiliyCache.js +282 -282
- package/dist/cjs/entities/Entity.d.ts +206 -206
- package/dist/cjs/entities/Entity.js +520 -520
- package/dist/cjs/entities/EntityStore.d.ts +85 -85
- package/dist/cjs/entities/EntityStore.js +479 -479
- package/dist/cjs/files/EntityFile.d.ts +31 -31
- package/dist/cjs/files/EntityFile.js +76 -76
- package/dist/cjs/files/FileManager.d.ts +42 -42
- package/dist/cjs/files/FileManager.js +152 -152
- package/dist/cjs/files/FileStorage.d.ts +28 -28
- package/dist/cjs/files/FileStorage.js +104 -104
- package/dist/cjs/files/utils.d.ts +8 -8
- package/dist/cjs/files/utils.js +55 -55
- package/dist/cjs/files/utils.test.d.ts +1 -1
- package/dist/cjs/files/utils.test.js +80 -80
- package/dist/cjs/idb.d.ts +11 -11
- package/dist/cjs/idb.js +111 -111
- package/dist/cjs/index.d.ts +21 -21
- package/dist/cjs/index.js +23 -23
- package/dist/cjs/metadata/AckInfoStore.d.ts +10 -10
- package/dist/cjs/metadata/AckInfoStore.js +25 -25
- package/dist/cjs/metadata/BaselinesStore.d.ts +33 -33
- package/dist/cjs/metadata/BaselinesStore.js +89 -89
- package/dist/cjs/metadata/LocalReplicaStore.d.ts +17 -17
- package/dist/cjs/metadata/LocalReplicaStore.js +47 -47
- package/dist/cjs/metadata/MessageCreator.d.ts +19 -19
- package/dist/cjs/metadata/MessageCreator.js +127 -127
- package/dist/cjs/metadata/Metadata.d.ts +112 -112
- package/dist/cjs/metadata/Metadata.js +352 -352
- package/dist/cjs/metadata/OperationsStore.d.ts +53 -53
- package/dist/cjs/metadata/OperationsStore.js +152 -152
- package/dist/cjs/metadata/SchemaStore.d.ts +9 -9
- package/dist/cjs/metadata/SchemaStore.js +38 -38
- package/dist/cjs/metadata/openMetadataDatabase.d.ts +19 -19
- package/dist/cjs/metadata/openMetadataDatabase.js +219 -219
- package/dist/cjs/migration/db.d.ts +8 -8
- package/dist/cjs/migration/db.js +111 -111
- package/dist/cjs/migration/errors.d.ts +5 -5
- package/dist/cjs/migration/errors.js +11 -11
- package/dist/cjs/migration/openDatabase.d.ts +20 -20
- package/dist/cjs/migration/openDatabase.js +428 -428
- package/dist/cjs/migration/paths.d.ts +6 -6
- package/dist/cjs/migration/paths.js +52 -52
- package/dist/cjs/migration/paths.test.d.ts +1 -1
- package/dist/cjs/migration/paths.test.js +90 -90
- package/dist/cjs/queries/BaseQuery.d.ts +53 -53
- package/dist/cjs/queries/BaseQuery.js +135 -135
- package/dist/cjs/queries/CollectionQueries.d.ts +55 -55
- package/dist/cjs/queries/CollectionQueries.js +91 -91
- package/dist/cjs/queries/FindAllQuery.d.ts +12 -12
- package/dist/cjs/queries/FindAllQuery.js +42 -42
- package/dist/cjs/queries/FindInfiniteQuery.d.ts +19 -19
- package/dist/cjs/queries/FindInfiniteQuery.js +69 -69
- package/dist/cjs/queries/FindOneQuery.d.ts +12 -12
- package/dist/cjs/queries/FindOneQuery.js +42 -42
- package/dist/cjs/queries/FindPageQuery.d.ts +24 -24
- package/dist/cjs/queries/FindPageQuery.js +76 -76
- package/dist/cjs/queries/GetQuery.d.ts +10 -10
- package/dist/cjs/queries/GetQuery.js +29 -29
- package/dist/cjs/queries/QueryCache.d.ts +16 -16
- package/dist/cjs/queries/QueryCache.js +41 -41
- package/dist/cjs/queries/dbQueries.d.ts +22 -22
- package/dist/cjs/queries/dbQueries.js +125 -125
- package/dist/cjs/queries/keys.d.ts +10 -10
- package/dist/cjs/queries/keys.js +33 -33
- package/dist/cjs/queries/ranges.d.ts +2 -2
- package/dist/cjs/queries/ranges.js +69 -69
- package/dist/cjs/queries/types.d.ts +6 -6
- package/dist/cjs/queries/types.js +2 -2
- package/dist/cjs/queries/utils.d.ts +3 -3
- package/dist/cjs/queries/utils.js +24 -24
- package/dist/cjs/sync/FileSync.d.ts +23 -23
- package/dist/cjs/sync/FileSync.js +84 -84
- package/dist/cjs/sync/Heartbeat.d.ts +25 -25
- package/dist/cjs/sync/Heartbeat.js +63 -63
- package/dist/cjs/sync/PresenceManager.d.ts +43 -43
- package/dist/cjs/sync/PresenceManager.js +119 -119
- package/dist/cjs/sync/PushPullSync.d.ts +36 -36
- package/dist/cjs/sync/PushPullSync.js +143 -143
- package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +27 -27
- package/dist/cjs/sync/ServerSyncEndpointProvider.js +64 -64
- package/dist/cjs/sync/Sync.d.ts +146 -146
- package/dist/cjs/sync/Sync.js +270 -270
- package/dist/cjs/sync/WebSocketSync.d.ts +41 -41
- package/dist/cjs/sync/WebSocketSync.js +190 -190
- package/dist/cjs/types.d.ts +12 -12
- package/dist/cjs/types.js +2 -2
- package/dist/cjs/utils/Disposable.d.ts +6 -6
- package/dist/cjs/utils/Disposable.js +18 -18
- package/dist/cjs/utils/Resolvable.d.ts +8 -8
- package/dist/cjs/utils/Resolvable.js +22 -22
- package/dist/cjs/vanilla.d.ts +1 -1
- package/dist/cjs/vanilla.js +27 -27
- package/dist/esm/BackoffScheduler.d.ts +19 -19
- package/dist/esm/BackoffScheduler.js +39 -39
- package/dist/esm/DocumentManager.d.ts +28 -28
- package/dist/esm/DocumentManager.js +40 -40
- package/dist/esm/FakeWeakRef.d.ts +11 -11
- package/dist/esm/FakeWeakRef.js +14 -14
- package/dist/esm/IDBService.d.ts +9 -9
- package/dist/esm/IDBService.js +59 -59
- package/dist/esm/UndoHistory.d.ts +16 -16
- package/dist/esm/UndoHistory.js +46 -46
- package/dist/esm/__tests__/batching.test.d.ts +1 -1
- package/dist/esm/__tests__/batching.test.js +42 -42
- package/dist/esm/__tests__/documents.test.d.ts +1 -1
- package/dist/esm/__tests__/documents.test.js +413 -413
- package/dist/esm/__tests__/fixtures/testStorage.d.ts +123 -123
- package/dist/esm/__tests__/fixtures/testStorage.js +113 -113
- package/dist/esm/__tests__/legacyOids.test.d.ts +1 -1
- package/dist/esm/__tests__/legacyOids.test.js +288 -288
- package/dist/esm/__tests__/mutations.test.d.ts +1 -1
- package/dist/esm/__tests__/mutations.test.js +39 -39
- package/dist/esm/__tests__/queries.test.d.ts +1 -1
- package/dist/esm/__tests__/queries.test.js +316 -316
- package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -1
- package/dist/esm/__tests__/setup/indexedDB.js +1 -1
- package/dist/esm/__tests__/undo.test.d.ts +1 -1
- package/dist/esm/__tests__/undo.test.js +84 -84
- package/dist/esm/client/Client.d.ts +99 -99
- package/dist/esm/client/Client.js +223 -223
- package/dist/esm/client/ClientDescriptor.d.ts +76 -76
- package/dist/esm/client/ClientDescriptor.js +193 -193
- package/dist/esm/client/constants.d.ts +1 -1
- package/dist/esm/client/constants.js +1 -1
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/context.d.ts +29 -29
- package/dist/esm/context.js +1 -1
- package/dist/esm/entities/DocumentFamiliyCache.d.ts +90 -90
- package/dist/esm/entities/DocumentFamiliyCache.js +278 -278
- package/dist/esm/entities/Entity.d.ts +206 -206
- package/dist/esm/entities/Entity.js +515 -515
- package/dist/esm/entities/EntityStore.d.ts +85 -85
- package/dist/esm/entities/EntityStore.js +475 -475
- package/dist/esm/files/EntityFile.d.ts +31 -31
- package/dist/esm/files/EntityFile.js +72 -72
- package/dist/esm/files/FileManager.d.ts +42 -42
- package/dist/esm/files/FileManager.js +148 -148
- package/dist/esm/files/FileStorage.d.ts +28 -28
- package/dist/esm/files/FileStorage.js +99 -99
- package/dist/esm/files/utils.d.ts +8 -8
- package/dist/esm/files/utils.js +46 -46
- package/dist/esm/files/utils.test.d.ts +1 -1
- package/dist/esm/files/utils.test.js +78 -78
- package/dist/esm/idb.d.ts +11 -11
- package/dist/esm/idb.js +100 -100
- package/dist/esm/index.d.ts +21 -21
- package/dist/esm/index.js +12 -12
- package/dist/esm/metadata/AckInfoStore.d.ts +10 -10
- package/dist/esm/metadata/AckInfoStore.js +21 -21
- package/dist/esm/metadata/BaselinesStore.d.ts +33 -33
- package/dist/esm/metadata/BaselinesStore.js +85 -85
- package/dist/esm/metadata/LocalReplicaStore.d.ts +17 -17
- package/dist/esm/metadata/LocalReplicaStore.js +40 -40
- package/dist/esm/metadata/MessageCreator.d.ts +19 -19
- package/dist/esm/metadata/MessageCreator.js +123 -123
- package/dist/esm/metadata/Metadata.d.ts +112 -112
- package/dist/esm/metadata/Metadata.js +348 -348
- package/dist/esm/metadata/OperationsStore.d.ts +53 -53
- package/dist/esm/metadata/OperationsStore.js +148 -148
- package/dist/esm/metadata/SchemaStore.d.ts +9 -9
- package/dist/esm/metadata/SchemaStore.js +34 -34
- package/dist/esm/metadata/openMetadataDatabase.d.ts +19 -19
- package/dist/esm/metadata/openMetadataDatabase.js +214 -214
- package/dist/esm/migration/db.d.ts +8 -8
- package/dist/esm/migration/db.js +103 -103
- package/dist/esm/migration/errors.d.ts +5 -5
- package/dist/esm/migration/errors.js +7 -7
- package/dist/esm/migration/openDatabase.d.ts +20 -20
- package/dist/esm/migration/openDatabase.js +423 -423
- package/dist/esm/migration/paths.d.ts +6 -6
- package/dist/esm/migration/paths.js +48 -48
- package/dist/esm/migration/paths.test.d.ts +1 -1
- package/dist/esm/migration/paths.test.js +88 -88
- package/dist/esm/queries/BaseQuery.d.ts +53 -53
- package/dist/esm/queries/BaseQuery.js +131 -131
- package/dist/esm/queries/CollectionQueries.d.ts +55 -55
- package/dist/esm/queries/CollectionQueries.js +87 -87
- package/dist/esm/queries/FindAllQuery.d.ts +12 -12
- package/dist/esm/queries/FindAllQuery.js +38 -38
- package/dist/esm/queries/FindInfiniteQuery.d.ts +19 -19
- package/dist/esm/queries/FindInfiniteQuery.js +65 -65
- package/dist/esm/queries/FindOneQuery.d.ts +12 -12
- package/dist/esm/queries/FindOneQuery.js +38 -38
- package/dist/esm/queries/FindPageQuery.d.ts +24 -24
- package/dist/esm/queries/FindPageQuery.js +72 -72
- package/dist/esm/queries/GetQuery.d.ts +10 -10
- package/dist/esm/queries/GetQuery.js +25 -25
- package/dist/esm/queries/QueryCache.d.ts +16 -16
- package/dist/esm/queries/QueryCache.js +37 -37
- package/dist/esm/queries/dbQueries.d.ts +22 -22
- package/dist/esm/queries/dbQueries.js +119 -119
- package/dist/esm/queries/keys.d.ts +10 -10
- package/dist/esm/queries/keys.js +29 -29
- package/dist/esm/queries/ranges.d.ts +2 -2
- package/dist/esm/queries/ranges.js +65 -65
- package/dist/esm/queries/types.d.ts +6 -6
- package/dist/esm/queries/types.js +1 -1
- package/dist/esm/queries/utils.d.ts +3 -3
- package/dist/esm/queries/utils.js +19 -19
- package/dist/esm/sync/FileSync.d.ts +23 -23
- package/dist/esm/sync/FileSync.js +80 -80
- package/dist/esm/sync/Heartbeat.d.ts +25 -25
- package/dist/esm/sync/Heartbeat.js +59 -59
- package/dist/esm/sync/PresenceManager.d.ts +43 -43
- package/dist/esm/sync/PresenceManager.js +115 -115
- package/dist/esm/sync/PushPullSync.d.ts +36 -36
- package/dist/esm/sync/PushPullSync.js +139 -139
- package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +27 -27
- package/dist/esm/sync/ServerSyncEndpointProvider.js +57 -57
- package/dist/esm/sync/Sync.d.ts +146 -146
- package/dist/esm/sync/Sync.js +265 -265
- package/dist/esm/sync/{WebsocketSync.d.ts → WebSocketSync.d.ts} +41 -41
- package/dist/esm/sync/{WebsocketSync.js → WebSocketSync.js} +186 -186
- package/dist/esm/types.d.ts +12 -12
- package/dist/esm/types.js +1 -1
- package/dist/esm/utils/Disposable.d.ts +6 -6
- package/dist/esm/utils/Disposable.js +14 -14
- package/dist/esm/utils/Resolvable.d.ts +8 -8
- package/dist/esm/utils/Resolvable.js +18 -18
- package/dist/esm/vanilla.d.ts +1 -1
- package/dist/esm/vanilla.js +2 -2
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/cjs/AckInfoStore.d.ts +0 -10
- package/dist/cjs/AckInfoStore.js +0 -26
- package/dist/cjs/AckInfoStore.js.map +0 -1
- package/dist/cjs/BaselinesStore.d.ts +0 -10
- package/dist/cjs/BaselinesStore.js +0 -36
- package/dist/cjs/BaselinesStore.js.map +0 -1
- package/dist/cjs/Entity.d.ts +0 -96
- package/dist/cjs/Entity.js +0 -345
- package/dist/cjs/Entity.js.map +0 -1
- package/dist/cjs/EntityStore.d.ts +0 -36
- package/dist/cjs/EntityStore.js +0 -172
- package/dist/cjs/EntityStore.js.map +0 -1
- package/dist/cjs/LocalHistoryStore.d.ts +0 -15
- package/dist/cjs/LocalHistoryStore.js +0 -53
- package/dist/cjs/LocalHistoryStore.js.map +0 -1
- package/dist/cjs/LocalReplicaStore.d.ts +0 -13
- package/dist/cjs/LocalReplicaStore.js +0 -49
- package/dist/cjs/LocalReplicaStore.js.map +0 -1
- package/dist/cjs/MessageCreator.d.ts +0 -19
- package/dist/cjs/MessageCreator.js +0 -104
- package/dist/cjs/MessageCreator.js.map +0 -1
- package/dist/cjs/Metadata.d.ts +0 -91
- package/dist/cjs/Metadata.js +0 -250
- package/dist/cjs/Metadata.js.map +0 -1
- package/dist/cjs/OperationsStore.d.ts +0 -38
- package/dist/cjs/OperationsStore.js +0 -146
- package/dist/cjs/OperationsStore.js.map +0 -1
- package/dist/cjs/PresenceManager.d.ts +0 -30
- package/dist/cjs/PresenceManager.js +0 -89
- package/dist/cjs/PresenceManager.js.map +0 -1
- package/dist/cjs/Query.d.ts +0 -26
- package/dist/cjs/Query.js +0 -86
- package/dist/cjs/Query.js.map +0 -1
- package/dist/cjs/QueryMaker.d.ts +0 -18
- package/dist/cjs/QueryMaker.js +0 -98
- package/dist/cjs/QueryMaker.js.map +0 -1
- package/dist/cjs/QueryStore.d.ts +0 -38
- package/dist/cjs/QueryStore.js +0 -146
- package/dist/cjs/QueryStore.js.map +0 -1
- package/dist/cjs/SchemaStore.d.ts +0 -9
- package/dist/cjs/SchemaStore.js +0 -35
- package/dist/cjs/SchemaStore.js.map +0 -1
- package/dist/cjs/Storage.d.ts +0 -147
- package/dist/cjs/Storage.js +0 -346
- package/dist/cjs/Storage.js.map +0 -1
- package/dist/cjs/Sync.d.ts +0 -117
- package/dist/cjs/Sync.js +0 -561
- package/dist/cjs/Sync.js.map +0 -1
- package/dist/cjs/SyncHarness.d.ts +0 -45
- package/dist/cjs/SyncHarness.js +0 -110
- package/dist/cjs/SyncHarness.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/cjs/metadata/LocalHistoryStore.d.ts +0 -15
- package/dist/cjs/metadata/LocalHistoryStore.js +0 -53
- package/dist/cjs/metadata/LocalHistoryStore.js.map +0 -1
- package/dist/cjs/openDocumentDatabase.d.ts +0 -12
- package/dist/cjs/openDocumentDatabase.js +0 -432
- package/dist/cjs/openDocumentDatabase.js.map +0 -1
- package/dist/cjs/queries/LiveQuery.d.ts +0 -28
- package/dist/cjs/queries/LiveQuery.js +0 -96
- package/dist/cjs/queries/LiveQuery.js.map +0 -1
- package/dist/cjs/queries/LiveQueryMaker.d.ts +0 -15
- package/dist/cjs/queries/LiveQueryMaker.js +0 -42
- package/dist/cjs/queries/LiveQueryMaker.js.map +0 -1
- package/dist/cjs/queries/LiveQueryStore.d.ts +0 -33
- package/dist/cjs/queries/LiveQueryStore.js +0 -85
- package/dist/cjs/queries/LiveQueryStore.js.map +0 -1
- package/dist/cjs/queries/Query.d.ts +0 -18
- package/dist/cjs/queries/Query.js +0 -36
- package/dist/cjs/queries/Query.js.map +0 -1
- package/dist/cjs/queries/QueryMaker.d.ts +0 -14
- package/dist/cjs/queries/QueryMaker.js +0 -42
- package/dist/cjs/queries/QueryMaker.js.map +0 -1
- package/dist/cjs/queries/QueryStore.d.ts +0 -35
- package/dist/cjs/queries/QueryStore.js +0 -130
- package/dist/cjs/queries/QueryStore.js.map +0 -1
- package/dist/cjs/queries2/BaseQuery.d.ts +0 -39
- package/dist/cjs/queries2/BaseQuery.js +0 -99
- package/dist/cjs/queries2/BaseQuery.js.map +0 -1
- package/dist/cjs/queries2/CollectionQueries.d.ts +0 -55
- package/dist/cjs/queries2/CollectionQueries.js +0 -83
- package/dist/cjs/queries2/CollectionQueries.js.map +0 -1
- package/dist/cjs/queries2/FindAllQuery.d.ts +0 -11
- package/dist/cjs/queries2/FindAllQuery.js +0 -34
- package/dist/cjs/queries2/FindAllQuery.js.map +0 -1
- package/dist/cjs/queries2/FindInfiniteQuery.d.ts +0 -18
- package/dist/cjs/queries2/FindInfiniteQuery.js +0 -61
- package/dist/cjs/queries2/FindInfiniteQuery.js.map +0 -1
- package/dist/cjs/queries2/FindOneQuery.d.ts +0 -11
- package/dist/cjs/queries2/FindOneQuery.js +0 -34
- package/dist/cjs/queries2/FindOneQuery.js.map +0 -1
- package/dist/cjs/queries2/FindPageQuery.d.ts +0 -23
- package/dist/cjs/queries2/FindPageQuery.js +0 -68
- package/dist/cjs/queries2/FindPageQuery.js.map +0 -1
- package/dist/cjs/queries2/GetQuery.d.ts +0 -10
- package/dist/cjs/queries2/GetQuery.js +0 -30
- package/dist/cjs/queries2/GetQuery.js.map +0 -1
- package/dist/cjs/queries2/QueryCache.d.ts +0 -16
- package/dist/cjs/queries2/QueryCache.js +0 -40
- package/dist/cjs/queries2/QueryCache.js.map +0 -1
- package/dist/cjs/queries2/dbQueries.d.ts +0 -22
- package/dist/cjs/queries2/dbQueries.js +0 -126
- package/dist/cjs/queries2/dbQueries.js.map +0 -1
- package/dist/cjs/queries2/keys.d.ts +0 -10
- package/dist/cjs/queries2/keys.js +0 -34
- package/dist/cjs/queries2/keys.js.map +0 -1
- package/dist/cjs/queries2/ranges.d.ts +0 -2
- package/dist/cjs/queries2/ranges.js +0 -70
- package/dist/cjs/queries2/ranges.js.map +0 -1
- package/dist/cjs/queries2/types.d.ts +0 -6
- package/dist/cjs/queries2/types.js +0 -3
- package/dist/cjs/queries2/types.js.map +0 -1
- package/dist/cjs/queries2/utils.d.ts +0 -1
- package/dist/cjs/queries2/utils.js +0 -20
- package/dist/cjs/queries2/utils.js.map +0 -1
- package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +0 -47
- package/dist/cjs/reactives/DocumentFamiliyCache.js +0 -211
- package/dist/cjs/reactives/DocumentFamiliyCache.js.map +0 -1
- package/dist/cjs/reactives/Entity.d.ts +0 -191
- package/dist/cjs/reactives/Entity.js +0 -463
- package/dist/cjs/reactives/Entity.js.map +0 -1
- package/dist/cjs/reactives/EntityStore.d.ts +0 -84
- package/dist/cjs/reactives/EntityStore.js +0 -422
- package/dist/cjs/reactives/EntityStore.js.map +0 -1
- package/dist/cjs/reactives/FakeWeakRef.d.ts +0 -11
- package/dist/cjs/reactives/FakeWeakRef.js +0 -19
- package/dist/cjs/reactives/FakeWeakRef.js.map +0 -1
- package/dist/cjs/v2/AckInfoStore.d.ts +0 -10
- package/dist/cjs/v2/AckInfoStore.js +0 -26
- package/dist/cjs/v2/AckInfoStore.js.map +0 -1
- package/dist/cjs/v2/BaselinesStore.d.ts +0 -10
- package/dist/cjs/v2/BaselinesStore.js +0 -36
- package/dist/cjs/v2/BaselinesStore.js.map +0 -1
- package/dist/cjs/v2/DocumentManager.d.ts +0 -19
- package/dist/cjs/v2/DocumentManager.js +0 -47
- package/dist/cjs/v2/DocumentManager.js.map +0 -1
- package/dist/cjs/v2/Entity.d.ts +0 -87
- package/dist/cjs/v2/Entity.js +0 -305
- package/dist/cjs/v2/Entity.js.map +0 -1
- package/dist/cjs/v2/EntityStore.d.ts +0 -37
- package/dist/cjs/v2/EntityStore.js +0 -165
- package/dist/cjs/v2/EntityStore.js.map +0 -1
- package/dist/cjs/v2/IDBService.d.ts +0 -7
- package/dist/cjs/v2/IDBService.js +0 -26
- package/dist/cjs/v2/IDBService.js.map +0 -1
- package/dist/cjs/v2/LocalHistoryStore.d.ts +0 -15
- package/dist/cjs/v2/LocalHistoryStore.js +0 -53
- package/dist/cjs/v2/LocalHistoryStore.js.map +0 -1
- package/dist/cjs/v2/LocalReplicaStore.d.ts +0 -14
- package/dist/cjs/v2/LocalReplicaStore.js +0 -49
- package/dist/cjs/v2/LocalReplicaStore.js.map +0 -1
- package/dist/cjs/v2/MessageCreator.d.ts +0 -19
- package/dist/cjs/v2/MessageCreator.js +0 -99
- package/dist/cjs/v2/MessageCreator.js.map +0 -1
- package/dist/cjs/v2/Metadata.d.ts +0 -90
- package/dist/cjs/v2/Metadata.js +0 -251
- package/dist/cjs/v2/Metadata.js.map +0 -1
- package/dist/cjs/v2/OperationsStore.d.ts +0 -38
- package/dist/cjs/v2/OperationsStore.js +0 -146
- package/dist/cjs/v2/OperationsStore.js.map +0 -1
- package/dist/cjs/v2/PresenceManager.d.ts +0 -24
- package/dist/cjs/v2/PresenceManager.js +0 -73
- package/dist/cjs/v2/PresenceManager.js.map +0 -1
- package/dist/cjs/v2/Query.d.ts +0 -24
- package/dist/cjs/v2/Query.js +0 -79
- package/dist/cjs/v2/Query.js.map +0 -1
- package/dist/cjs/v2/QueryMaker.d.ts +0 -16
- package/dist/cjs/v2/QueryMaker.js +0 -84
- package/dist/cjs/v2/QueryMaker.js.map +0 -1
- package/dist/cjs/v2/QueryStore.d.ts +0 -26
- package/dist/cjs/v2/QueryStore.js +0 -136
- package/dist/cjs/v2/QueryStore.js.map +0 -1
- package/dist/cjs/v2/SchemaStore.d.ts +0 -9
- package/dist/cjs/v2/SchemaStore.js +0 -35
- package/dist/cjs/v2/SchemaStore.js.map +0 -1
- package/dist/cjs/v2/Storage.d.ts +0 -80
- package/dist/cjs/v2/Storage.js +0 -154
- package/dist/cjs/v2/Storage.js.map +0 -1
- package/dist/cjs/v2/Sync.d.ts +0 -42
- package/dist/cjs/v2/Sync.js +0 -98
- package/dist/cjs/v2/Sync.js.map +0 -1
- package/dist/cjs/v2/SyncHarness.d.ts +0 -45
- package/dist/cjs/v2/SyncHarness.js +0 -110
- package/dist/cjs/v2/SyncHarness.js.map +0 -1
- package/dist/cjs/v2/__tests__/documents.test.d.ts +0 -1
- package/dist/cjs/v2/__tests__/documents.test.js +0 -185
- package/dist/cjs/v2/__tests__/documents.test.js.map +0 -1
- package/dist/cjs/v2/__tests__/fixtures/testStorage.d.ts +0 -189
- package/dist/cjs/v2/__tests__/fixtures/testStorage.js +0 -93
- package/dist/cjs/v2/__tests__/fixtures/testStorage.js.map +0 -1
- package/dist/cjs/v2/__tests__/queries.test.d.ts +0 -1
- package/dist/cjs/v2/__tests__/queries.test.js +0 -92
- package/dist/cjs/v2/__tests__/queries.test.js.map +0 -1
- package/dist/cjs/v2/__tests__/setup/indexedDB.d.ts +0 -1
- package/dist/cjs/v2/__tests__/setup/indexedDB.js +0 -4
- package/dist/cjs/v2/__tests__/setup/indexedDB.js.map +0 -1
- package/dist/cjs/v2/constants.d.ts +0 -1
- package/dist/cjs/v2/constants.js +0 -5
- package/dist/cjs/v2/constants.js.map +0 -1
- package/dist/cjs/v2/idb.d.ts +0 -6
- package/dist/cjs/v2/idb.js +0 -71
- package/dist/cjs/v2/idb.js.map +0 -1
- package/dist/cjs/v2/index.d.ts +0 -6
- package/dist/cjs/v2/index.js +0 -14
- package/dist/cjs/v2/index.js.map +0 -1
- package/dist/cjs/v2/indexes.d.ts +0 -3
- package/dist/cjs/v2/indexes.js +0 -20
- package/dist/cjs/v2/indexes.js.map +0 -1
- package/dist/cjs/v2/openDocumentDatabase.d.ts +0 -9
- package/dist/cjs/v2/openDocumentDatabase.js +0 -100
- package/dist/cjs/v2/openDocumentDatabase.js.map +0 -1
- package/dist/cjs/v2/types.d.ts +0 -3
- package/dist/cjs/v2/types.js +0 -3
- package/dist/cjs/v2/types.js.map +0 -1
- package/dist/esm/AckInfoStore.d.ts +0 -10
- package/dist/esm/AckInfoStore.js +0 -22
- package/dist/esm/AckInfoStore.js.map +0 -1
- package/dist/esm/BaselinesStore.d.ts +0 -10
- package/dist/esm/BaselinesStore.js +0 -32
- package/dist/esm/BaselinesStore.js.map +0 -1
- package/dist/esm/Entity.d.ts +0 -96
- package/dist/esm/Entity.js +0 -337
- package/dist/esm/Entity.js.map +0 -1
- package/dist/esm/EntityStore.d.ts +0 -36
- package/dist/esm/EntityStore.js +0 -168
- package/dist/esm/EntityStore.js.map +0 -1
- package/dist/esm/LocalHistoryStore.d.ts +0 -15
- package/dist/esm/LocalHistoryStore.js +0 -49
- package/dist/esm/LocalHistoryStore.js.map +0 -1
- package/dist/esm/LocalReplicaStore.d.ts +0 -13
- package/dist/esm/LocalReplicaStore.js +0 -42
- package/dist/esm/LocalReplicaStore.js.map +0 -1
- package/dist/esm/MessageCreator.d.ts +0 -19
- package/dist/esm/MessageCreator.js +0 -97
- package/dist/esm/MessageCreator.js.map +0 -1
- package/dist/esm/Metadata.d.ts +0 -91
- package/dist/esm/Metadata.js +0 -245
- package/dist/esm/Metadata.js.map +0 -1
- package/dist/esm/OperationsStore.d.ts +0 -38
- package/dist/esm/OperationsStore.js +0 -142
- package/dist/esm/OperationsStore.js.map +0 -1
- package/dist/esm/PresenceManager.d.ts +0 -30
- package/dist/esm/PresenceManager.js +0 -85
- package/dist/esm/PresenceManager.js.map +0 -1
- package/dist/esm/Query.d.ts +0 -26
- package/dist/esm/Query.js +0 -82
- package/dist/esm/Query.js.map +0 -1
- package/dist/esm/QueryMaker.d.ts +0 -18
- package/dist/esm/QueryMaker.js +0 -94
- package/dist/esm/QueryMaker.js.map +0 -1
- package/dist/esm/QueryStore.d.ts +0 -38
- package/dist/esm/QueryStore.js +0 -142
- package/dist/esm/QueryStore.js.map +0 -1
- package/dist/esm/SchemaStore.d.ts +0 -9
- package/dist/esm/SchemaStore.js +0 -31
- package/dist/esm/SchemaStore.js.map +0 -1
- package/dist/esm/Storage.d.ts +0 -147
- package/dist/esm/Storage.js +0 -341
- package/dist/esm/Storage.js.map +0 -1
- package/dist/esm/Sync.d.ts +0 -117
- package/dist/esm/Sync.js +0 -553
- package/dist/esm/Sync.js.map +0 -1
- package/dist/esm/SyncHarness.d.ts +0 -45
- package/dist/esm/SyncHarness.js +0 -105
- package/dist/esm/SyncHarness.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/dist/esm/metadata/LocalHistoryStore.d.ts +0 -15
- package/dist/esm/metadata/LocalHistoryStore.js +0 -49
- package/dist/esm/metadata/LocalHistoryStore.js.map +0 -1
- package/dist/esm/openDocumentDatabase.d.ts +0 -12
- package/dist/esm/openDocumentDatabase.js +0 -428
- package/dist/esm/openDocumentDatabase.js.map +0 -1
- package/dist/esm/queries/LiveQuery.d.ts +0 -28
- package/dist/esm/queries/LiveQuery.js +0 -92
- package/dist/esm/queries/LiveQuery.js.map +0 -1
- package/dist/esm/queries/LiveQueryMaker.d.ts +0 -15
- package/dist/esm/queries/LiveQueryMaker.js +0 -38
- package/dist/esm/queries/LiveQueryMaker.js.map +0 -1
- package/dist/esm/queries/LiveQueryStore.d.ts +0 -33
- package/dist/esm/queries/LiveQueryStore.js +0 -81
- package/dist/esm/queries/LiveQueryStore.js.map +0 -1
- package/dist/esm/queries/Query.d.ts +0 -18
- package/dist/esm/queries/Query.js +0 -32
- package/dist/esm/queries/Query.js.map +0 -1
- package/dist/esm/queries/QueryMaker.d.ts +0 -14
- package/dist/esm/queries/QueryMaker.js +0 -38
- package/dist/esm/queries/QueryMaker.js.map +0 -1
- package/dist/esm/queries/QueryStore.d.ts +0 -35
- package/dist/esm/queries/QueryStore.js +0 -126
- package/dist/esm/queries/QueryStore.js.map +0 -1
- package/dist/esm/queries2/BaseQuery.d.ts +0 -39
- package/dist/esm/queries2/BaseQuery.js +0 -95
- package/dist/esm/queries2/BaseQuery.js.map +0 -1
- package/dist/esm/queries2/CollectionQueries.d.ts +0 -55
- package/dist/esm/queries2/CollectionQueries.js +0 -79
- package/dist/esm/queries2/CollectionQueries.js.map +0 -1
- package/dist/esm/queries2/FindAllQuery.d.ts +0 -11
- package/dist/esm/queries2/FindAllQuery.js +0 -30
- package/dist/esm/queries2/FindAllQuery.js.map +0 -1
- package/dist/esm/queries2/FindInfiniteQuery.d.ts +0 -18
- package/dist/esm/queries2/FindInfiniteQuery.js +0 -57
- package/dist/esm/queries2/FindInfiniteQuery.js.map +0 -1
- package/dist/esm/queries2/FindOneQuery.d.ts +0 -11
- package/dist/esm/queries2/FindOneQuery.js +0 -30
- package/dist/esm/queries2/FindOneQuery.js.map +0 -1
- package/dist/esm/queries2/FindPageQuery.d.ts +0 -23
- package/dist/esm/queries2/FindPageQuery.js +0 -64
- package/dist/esm/queries2/FindPageQuery.js.map +0 -1
- package/dist/esm/queries2/GetQuery.d.ts +0 -10
- package/dist/esm/queries2/GetQuery.js +0 -26
- package/dist/esm/queries2/GetQuery.js.map +0 -1
- package/dist/esm/queries2/QueryCache.d.ts +0 -16
- package/dist/esm/queries2/QueryCache.js +0 -36
- package/dist/esm/queries2/QueryCache.js.map +0 -1
- package/dist/esm/queries2/dbQueries.d.ts +0 -22
- package/dist/esm/queries2/dbQueries.js +0 -120
- package/dist/esm/queries2/dbQueries.js.map +0 -1
- package/dist/esm/queries2/keys.d.ts +0 -10
- package/dist/esm/queries2/keys.js +0 -30
- package/dist/esm/queries2/keys.js.map +0 -1
- package/dist/esm/queries2/ranges.d.ts +0 -2
- package/dist/esm/queries2/ranges.js +0 -66
- package/dist/esm/queries2/ranges.js.map +0 -1
- package/dist/esm/queries2/types.d.ts +0 -6
- package/dist/esm/queries2/types.js +0 -2
- package/dist/esm/queries2/types.js.map +0 -1
- package/dist/esm/queries2/utils.d.ts +0 -1
- package/dist/esm/queries2/utils.js +0 -16
- package/dist/esm/queries2/utils.js.map +0 -1
- package/dist/esm/reactives/DocumentFamiliyCache.d.ts +0 -47
- package/dist/esm/reactives/DocumentFamiliyCache.js +0 -207
- package/dist/esm/reactives/DocumentFamiliyCache.js.map +0 -1
- package/dist/esm/reactives/Entity.d.ts +0 -191
- package/dist/esm/reactives/Entity.js +0 -458
- package/dist/esm/reactives/Entity.js.map +0 -1
- package/dist/esm/reactives/EntityStore.d.ts +0 -84
- package/dist/esm/reactives/EntityStore.js +0 -418
- package/dist/esm/reactives/EntityStore.js.map +0 -1
- package/dist/esm/reactives/FakeWeakRef.d.ts +0 -11
- package/dist/esm/reactives/FakeWeakRef.js +0 -15
- package/dist/esm/reactives/FakeWeakRef.js.map +0 -1
- package/dist/esm/v2/AckInfoStore.d.ts +0 -10
- package/dist/esm/v2/AckInfoStore.js +0 -22
- package/dist/esm/v2/AckInfoStore.js.map +0 -1
- package/dist/esm/v2/BaselinesStore.d.ts +0 -10
- package/dist/esm/v2/BaselinesStore.js +0 -32
- package/dist/esm/v2/BaselinesStore.js.map +0 -1
- package/dist/esm/v2/DocumentManager.d.ts +0 -19
- package/dist/esm/v2/DocumentManager.js +0 -43
- package/dist/esm/v2/DocumentManager.js.map +0 -1
- package/dist/esm/v2/Entity.d.ts +0 -91
- package/dist/esm/v2/Entity.js +0 -305
- package/dist/esm/v2/Entity.js.map +0 -1
- package/dist/esm/v2/EntityStore.d.ts +0 -37
- package/dist/esm/v2/EntityStore.js +0 -166
- package/dist/esm/v2/EntityStore.js.map +0 -1
- package/dist/esm/v2/IDBService.d.ts +0 -7
- package/dist/esm/v2/IDBService.js +0 -22
- package/dist/esm/v2/IDBService.js.map +0 -1
- package/dist/esm/v2/LocalHistoryStore.d.ts +0 -15
- package/dist/esm/v2/LocalHistoryStore.js +0 -49
- package/dist/esm/v2/LocalHistoryStore.js.map +0 -1
- package/dist/esm/v2/LocalReplicaStore.d.ts +0 -14
- package/dist/esm/v2/LocalReplicaStore.js +0 -42
- package/dist/esm/v2/LocalReplicaStore.js.map +0 -1
- package/dist/esm/v2/MessageCreator.d.ts +0 -19
- package/dist/esm/v2/MessageCreator.js +0 -92
- package/dist/esm/v2/MessageCreator.js.map +0 -1
- package/dist/esm/v2/Metadata.d.ts +0 -90
- package/dist/esm/v2/Metadata.js +0 -246
- package/dist/esm/v2/Metadata.js.map +0 -1
- package/dist/esm/v2/OperationsStore.d.ts +0 -38
- package/dist/esm/v2/OperationsStore.js +0 -142
- package/dist/esm/v2/OperationsStore.js.map +0 -1
- package/dist/esm/v2/PresenceManager.d.ts +0 -24
- package/dist/esm/v2/PresenceManager.js +0 -69
- package/dist/esm/v2/PresenceManager.js.map +0 -1
- package/dist/esm/v2/Query.d.ts +0 -24
- package/dist/esm/v2/Query.js +0 -75
- package/dist/esm/v2/Query.js.map +0 -1
- package/dist/esm/v2/QueryMaker.d.ts +0 -16
- package/dist/esm/v2/QueryMaker.js +0 -80
- package/dist/esm/v2/QueryMaker.js.map +0 -1
- package/dist/esm/v2/QueryStore.d.ts +0 -26
- package/dist/esm/v2/QueryStore.js +0 -132
- package/dist/esm/v2/QueryStore.js.map +0 -1
- package/dist/esm/v2/SchemaStore.d.ts +0 -9
- package/dist/esm/v2/SchemaStore.js +0 -31
- package/dist/esm/v2/SchemaStore.js.map +0 -1
- package/dist/esm/v2/Storage.d.ts +0 -80
- package/dist/esm/v2/Storage.js +0 -149
- package/dist/esm/v2/Storage.js.map +0 -1
- package/dist/esm/v2/Sync.d.ts +0 -42
- package/dist/esm/v2/Sync.js +0 -94
- package/dist/esm/v2/Sync.js.map +0 -1
- package/dist/esm/v2/SyncHarness.d.ts +0 -45
- package/dist/esm/v2/SyncHarness.js +0 -105
- package/dist/esm/v2/SyncHarness.js.map +0 -1
- package/dist/esm/v2/__tests__/documents.test.d.ts +0 -1
- package/dist/esm/v2/__tests__/documents.test.js +0 -208
- package/dist/esm/v2/__tests__/documents.test.js.map +0 -1
- package/dist/esm/v2/__tests__/fixtures/testStorage.d.ts +0 -223
- package/dist/esm/v2/__tests__/fixtures/testStorage.js +0 -106
- package/dist/esm/v2/__tests__/fixtures/testStorage.js.map +0 -1
- package/dist/esm/v2/__tests__/queries.test.d.ts +0 -1
- package/dist/esm/v2/__tests__/queries.test.js +0 -90
- package/dist/esm/v2/__tests__/queries.test.js.map +0 -1
- package/dist/esm/v2/__tests__/setup/indexedDB.d.ts +0 -1
- package/dist/esm/v2/__tests__/setup/indexedDB.js +0 -2
- package/dist/esm/v2/__tests__/setup/indexedDB.js.map +0 -1
- package/dist/esm/v2/constants.d.ts +0 -1
- package/dist/esm/v2/constants.js +0 -2
- package/dist/esm/v2/constants.js.map +0 -1
- package/dist/esm/v2/idb.d.ts +0 -6
- package/dist/esm/v2/idb.js +0 -65
- package/dist/esm/v2/idb.js.map +0 -1
- package/dist/esm/v2/index.d.ts +0 -6
- package/dist/esm/v2/index.js +0 -5
- package/dist/esm/v2/index.js.map +0 -1
- package/dist/esm/v2/indexes.d.ts +0 -3
- package/dist/esm/v2/indexes.js +0 -15
- package/dist/esm/v2/indexes.js.map +0 -1
- package/dist/esm/v2/openDocumentDatabase.d.ts +0 -9
- package/dist/esm/v2/openDocumentDatabase.js +0 -96
- package/dist/esm/v2/openDocumentDatabase.js.map +0 -1
- package/dist/esm/v2/types.d.ts +0 -3
- package/dist/esm/v2/types.js +0 -2
- package/dist/esm/v2/types.js.map +0 -1
- /package/dist/esm/sync/{WebsocketSync.js.map → WebSocketSync.js.map} +0 -0
|
@@ -1,194 +1,194 @@
|
|
|
1
|
-
import { EventSubscriber, hashObject, } from '@verdant-web/common';
|
|
2
|
-
import { Metadata } from '../metadata/Metadata.js';
|
|
3
|
-
import { openMetadataDatabase, openWIPMetadataDatabase, } from '../metadata/openMetadataDatabase.js';
|
|
4
|
-
import { openDocumentDatabase, openWIPDocumentDatabase, } from '../migration/openDatabase.js';
|
|
5
|
-
import { UndoHistory } from '../UndoHistory.js';
|
|
6
|
-
import { Client } from './Client.js';
|
|
7
|
-
import { deleteAllDatabases, deleteDatabase, getAllDatabaseNamesAndVersions, } from '../idb.js';
|
|
8
|
-
import { FakeWeakRef } from '../FakeWeakRef.js';
|
|
9
|
-
import { METADATA_VERSION_KEY } from './constants.js';
|
|
10
|
-
/**
|
|
11
|
-
* Since storage initialization is async, this class wraps the core
|
|
12
|
-
* Storage creation promise and exposes some metadata which can
|
|
13
|
-
* be useful immediately.
|
|
14
|
-
*/
|
|
15
|
-
export class ClientDescriptor {
|
|
16
|
-
get namespace() {
|
|
17
|
-
return this._namespace;
|
|
18
|
-
}
|
|
19
|
-
constructor(init) {
|
|
20
|
-
this.init = init;
|
|
21
|
-
this._initializing = false;
|
|
22
|
-
this.initialize = async (init) => {
|
|
23
|
-
// if server-side and no alternative IndexedDB implementation was provided,
|
|
24
|
-
// we can't initialize the storage
|
|
25
|
-
if (typeof window === 'undefined' && !init.indexedDb) {
|
|
26
|
-
throw new Error('A verdant client was initialized in an environment without IndexedDB. If you are using verdant in a server-rendered framework, you must enforce that all clients are initialized on the client-side, or you must provide some mock interface of IDBFactory to the ClientDescriptor options.');
|
|
27
|
-
}
|
|
28
|
-
if (this._initializing || this._resolvedValue) {
|
|
29
|
-
return this._readyPromise;
|
|
30
|
-
}
|
|
31
|
-
this._initializing = true;
|
|
32
|
-
try {
|
|
33
|
-
let storage;
|
|
34
|
-
if (init.schema.wip) {
|
|
35
|
-
storage = await this.initializeWIPDatabases(init);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
storage = await this.initializeDatabases(init);
|
|
39
|
-
this.cleanupWIPDatabases(init);
|
|
40
|
-
}
|
|
41
|
-
this.resolveReady(storage);
|
|
42
|
-
this._resolvedValue = storage;
|
|
43
|
-
return storage;
|
|
44
|
-
}
|
|
45
|
-
catch (err) {
|
|
46
|
-
this.rejectReady(err);
|
|
47
|
-
throw err;
|
|
48
|
-
}
|
|
49
|
-
finally {
|
|
50
|
-
this._initializing = false;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
this.initializeDatabases = async (init) => {
|
|
54
|
-
const metadataVersion = init[METADATA_VERSION_KEY];
|
|
55
|
-
const { db: metaDb } = await openMetadataDatabase({
|
|
56
|
-
indexedDB: init.indexedDb,
|
|
57
|
-
log: init.log,
|
|
58
|
-
namespace: init.namespace,
|
|
59
|
-
metadataVersion,
|
|
60
|
-
});
|
|
61
|
-
const context = {
|
|
62
|
-
namespace: this._namespace,
|
|
63
|
-
metaDb,
|
|
64
|
-
schema: init.schema,
|
|
65
|
-
log: init.log || (() => { }),
|
|
66
|
-
undoHistory: init.undoHistory || new UndoHistory(),
|
|
67
|
-
entityEvents: new EventSubscriber(),
|
|
68
|
-
globalEvents: new EventSubscriber(),
|
|
69
|
-
weakRef: (value) => {
|
|
70
|
-
if (init.EXPERIMENTAL_weakRefs) {
|
|
71
|
-
return new WeakRef(value);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
return new FakeWeakRef(value);
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
const meta = new Metadata({
|
|
79
|
-
context,
|
|
80
|
-
disableRebasing: init.disableRebasing,
|
|
81
|
-
});
|
|
82
|
-
// verify schema integrity
|
|
83
|
-
await meta.updateSchema(init.schema, init.overrideSchemaConflict);
|
|
84
|
-
const documentDb = await openDocumentDatabase({
|
|
85
|
-
context,
|
|
86
|
-
version: init.schema.version,
|
|
87
|
-
meta,
|
|
88
|
-
migrations: init.migrations,
|
|
89
|
-
indexedDB: init.indexedDb,
|
|
90
|
-
});
|
|
91
|
-
const fullContext = Object.assign(context, { documentDb });
|
|
92
|
-
const storage = new Client({
|
|
93
|
-
syncConfig: init.sync,
|
|
94
|
-
migrations: init.migrations,
|
|
95
|
-
files: init.files,
|
|
96
|
-
}, fullContext, {
|
|
97
|
-
meta,
|
|
98
|
-
});
|
|
99
|
-
return storage;
|
|
100
|
-
};
|
|
101
|
-
this.initializeWIPDatabases = async (init) => {
|
|
102
|
-
const schemaHash = hashObject(init.schema);
|
|
103
|
-
console.info(`WIP schema in use. Opening database with hash ${schemaHash}`);
|
|
104
|
-
const wipNamespace = `@@wip_${init.namespace}_${schemaHash}`;
|
|
105
|
-
const { db: metaDb } = await openWIPMetadataDatabase({
|
|
106
|
-
indexedDB: init.indexedDb,
|
|
107
|
-
log: init.log,
|
|
108
|
-
namespace: init.namespace,
|
|
109
|
-
wipNamespace: wipNamespace,
|
|
110
|
-
});
|
|
111
|
-
const context = {
|
|
112
|
-
namespace: this._namespace,
|
|
113
|
-
metaDb,
|
|
114
|
-
schema: init.schema,
|
|
115
|
-
log: init.log || (() => { }),
|
|
116
|
-
undoHistory: init.undoHistory || new UndoHistory(),
|
|
117
|
-
entityEvents: new EventSubscriber(),
|
|
118
|
-
globalEvents: new EventSubscriber(),
|
|
119
|
-
weakRef: (value) => {
|
|
120
|
-
if (init.EXPERIMENTAL_weakRefs) {
|
|
121
|
-
return new WeakRef(value);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
return new FakeWeakRef(value);
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
const meta = new Metadata({
|
|
129
|
-
context,
|
|
130
|
-
disableRebasing: init.disableRebasing,
|
|
131
|
-
});
|
|
132
|
-
// verify schema integrity
|
|
133
|
-
await meta.updateSchema(init.schema, init.overrideSchemaConflict);
|
|
134
|
-
const documentDb = await openWIPDocumentDatabase({
|
|
135
|
-
context,
|
|
136
|
-
version: init.schema.version,
|
|
137
|
-
meta,
|
|
138
|
-
migrations: init.migrations,
|
|
139
|
-
indexedDB: init.indexedDb,
|
|
140
|
-
wipNamespace,
|
|
141
|
-
});
|
|
142
|
-
const fullContext = Object.assign(context, { documentDb });
|
|
143
|
-
const storage = new Client({
|
|
144
|
-
syncConfig: init.sync,
|
|
145
|
-
migrations: init.migrations,
|
|
146
|
-
files: init.files,
|
|
147
|
-
}, fullContext, {
|
|
148
|
-
meta,
|
|
149
|
-
});
|
|
150
|
-
return storage;
|
|
151
|
-
};
|
|
152
|
-
this.cleanupWIPDatabases = async (init) => {
|
|
153
|
-
const databaseInfo = await getAllDatabaseNamesAndVersions(init.indexedDb);
|
|
154
|
-
const wipDatabases = databaseInfo
|
|
155
|
-
.filter((db) => { var _a; return (_a = db.name) === null || _a === void 0 ? void 0 : _a.startsWith('@@wip_'); })
|
|
156
|
-
.map((db) => db.name);
|
|
157
|
-
// don't clear a current WIP database.
|
|
158
|
-
const wipDatabasesToDelete = wipDatabases.filter((db) => !db.startsWith(`@@wip_${init.namespace}_${hashObject(init.schema)}`));
|
|
159
|
-
for (const db of wipDatabasesToDelete) {
|
|
160
|
-
await deleteDatabase(db, init.indexedDb);
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
this.open = () => this.initialize(this.init);
|
|
164
|
-
this.close = async () => {
|
|
165
|
-
if (this._resolvedValue) {
|
|
166
|
-
this._resolvedValue.close();
|
|
167
|
-
}
|
|
168
|
-
if (this._initializing) {
|
|
169
|
-
(await this._readyPromise).close();
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
this.__dangerous__resetLocal = async () => {
|
|
173
|
-
await deleteAllDatabases(this.namespace);
|
|
174
|
-
};
|
|
175
|
-
this._readyPromise = new Promise((resolve, reject) => {
|
|
176
|
-
this.resolveReady = resolve;
|
|
177
|
-
this.rejectReady = reject;
|
|
178
|
-
});
|
|
179
|
-
this._namespace = init.namespace;
|
|
180
|
-
}
|
|
181
|
-
get current() {
|
|
182
|
-
// exposing an immediate value if already resolved lets us
|
|
183
|
-
// skip the promise microtask when accessing this externally if
|
|
184
|
-
// the initialization has been completed.
|
|
185
|
-
return this._resolvedValue;
|
|
186
|
-
}
|
|
187
|
-
get readyPromise() {
|
|
188
|
-
return this._readyPromise;
|
|
189
|
-
}
|
|
190
|
-
get schema() {
|
|
191
|
-
return this.init.schema;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
1
|
+
import { EventSubscriber, hashObject, } from '@verdant-web/common';
|
|
2
|
+
import { Metadata } from '../metadata/Metadata.js';
|
|
3
|
+
import { openMetadataDatabase, openWIPMetadataDatabase, } from '../metadata/openMetadataDatabase.js';
|
|
4
|
+
import { openDocumentDatabase, openWIPDocumentDatabase, } from '../migration/openDatabase.js';
|
|
5
|
+
import { UndoHistory } from '../UndoHistory.js';
|
|
6
|
+
import { Client } from './Client.js';
|
|
7
|
+
import { deleteAllDatabases, deleteDatabase, getAllDatabaseNamesAndVersions, } from '../idb.js';
|
|
8
|
+
import { FakeWeakRef } from '../FakeWeakRef.js';
|
|
9
|
+
import { METADATA_VERSION_KEY } from './constants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Since storage initialization is async, this class wraps the core
|
|
12
|
+
* Storage creation promise and exposes some metadata which can
|
|
13
|
+
* be useful immediately.
|
|
14
|
+
*/
|
|
15
|
+
export class ClientDescriptor {
|
|
16
|
+
get namespace() {
|
|
17
|
+
return this._namespace;
|
|
18
|
+
}
|
|
19
|
+
constructor(init) {
|
|
20
|
+
this.init = init;
|
|
21
|
+
this._initializing = false;
|
|
22
|
+
this.initialize = async (init) => {
|
|
23
|
+
// if server-side and no alternative IndexedDB implementation was provided,
|
|
24
|
+
// we can't initialize the storage
|
|
25
|
+
if (typeof window === 'undefined' && !init.indexedDb) {
|
|
26
|
+
throw new Error('A verdant client was initialized in an environment without IndexedDB. If you are using verdant in a server-rendered framework, you must enforce that all clients are initialized on the client-side, or you must provide some mock interface of IDBFactory to the ClientDescriptor options.');
|
|
27
|
+
}
|
|
28
|
+
if (this._initializing || this._resolvedValue) {
|
|
29
|
+
return this._readyPromise;
|
|
30
|
+
}
|
|
31
|
+
this._initializing = true;
|
|
32
|
+
try {
|
|
33
|
+
let storage;
|
|
34
|
+
if (init.schema.wip) {
|
|
35
|
+
storage = await this.initializeWIPDatabases(init);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
storage = await this.initializeDatabases(init);
|
|
39
|
+
this.cleanupWIPDatabases(init);
|
|
40
|
+
}
|
|
41
|
+
this.resolveReady(storage);
|
|
42
|
+
this._resolvedValue = storage;
|
|
43
|
+
return storage;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
this.rejectReady(err);
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
this._initializing = false;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.initializeDatabases = async (init) => {
|
|
54
|
+
const metadataVersion = init[METADATA_VERSION_KEY];
|
|
55
|
+
const { db: metaDb } = await openMetadataDatabase({
|
|
56
|
+
indexedDB: init.indexedDb,
|
|
57
|
+
log: init.log,
|
|
58
|
+
namespace: init.namespace,
|
|
59
|
+
metadataVersion,
|
|
60
|
+
});
|
|
61
|
+
const context = {
|
|
62
|
+
namespace: this._namespace,
|
|
63
|
+
metaDb,
|
|
64
|
+
schema: init.schema,
|
|
65
|
+
log: init.log || (() => { }),
|
|
66
|
+
undoHistory: init.undoHistory || new UndoHistory(),
|
|
67
|
+
entityEvents: new EventSubscriber(),
|
|
68
|
+
globalEvents: new EventSubscriber(),
|
|
69
|
+
weakRef: (value) => {
|
|
70
|
+
if (init.EXPERIMENTAL_weakRefs) {
|
|
71
|
+
return new WeakRef(value);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return new FakeWeakRef(value);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
const meta = new Metadata({
|
|
79
|
+
context,
|
|
80
|
+
disableRebasing: init.disableRebasing,
|
|
81
|
+
});
|
|
82
|
+
// verify schema integrity
|
|
83
|
+
await meta.updateSchema(init.schema, init.overrideSchemaConflict);
|
|
84
|
+
const documentDb = await openDocumentDatabase({
|
|
85
|
+
context,
|
|
86
|
+
version: init.schema.version,
|
|
87
|
+
meta,
|
|
88
|
+
migrations: init.migrations,
|
|
89
|
+
indexedDB: init.indexedDb,
|
|
90
|
+
});
|
|
91
|
+
const fullContext = Object.assign(context, { documentDb });
|
|
92
|
+
const storage = new Client({
|
|
93
|
+
syncConfig: init.sync,
|
|
94
|
+
migrations: init.migrations,
|
|
95
|
+
files: init.files,
|
|
96
|
+
}, fullContext, {
|
|
97
|
+
meta,
|
|
98
|
+
});
|
|
99
|
+
return storage;
|
|
100
|
+
};
|
|
101
|
+
this.initializeWIPDatabases = async (init) => {
|
|
102
|
+
const schemaHash = hashObject(init.schema);
|
|
103
|
+
console.info(`WIP schema in use. Opening database with hash ${schemaHash}`);
|
|
104
|
+
const wipNamespace = `@@wip_${init.namespace}_${schemaHash}`;
|
|
105
|
+
const { db: metaDb } = await openWIPMetadataDatabase({
|
|
106
|
+
indexedDB: init.indexedDb,
|
|
107
|
+
log: init.log,
|
|
108
|
+
namespace: init.namespace,
|
|
109
|
+
wipNamespace: wipNamespace,
|
|
110
|
+
});
|
|
111
|
+
const context = {
|
|
112
|
+
namespace: this._namespace,
|
|
113
|
+
metaDb,
|
|
114
|
+
schema: init.schema,
|
|
115
|
+
log: init.log || (() => { }),
|
|
116
|
+
undoHistory: init.undoHistory || new UndoHistory(),
|
|
117
|
+
entityEvents: new EventSubscriber(),
|
|
118
|
+
globalEvents: new EventSubscriber(),
|
|
119
|
+
weakRef: (value) => {
|
|
120
|
+
if (init.EXPERIMENTAL_weakRefs) {
|
|
121
|
+
return new WeakRef(value);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return new FakeWeakRef(value);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
const meta = new Metadata({
|
|
129
|
+
context,
|
|
130
|
+
disableRebasing: init.disableRebasing,
|
|
131
|
+
});
|
|
132
|
+
// verify schema integrity
|
|
133
|
+
await meta.updateSchema(init.schema, init.overrideSchemaConflict);
|
|
134
|
+
const documentDb = await openWIPDocumentDatabase({
|
|
135
|
+
context,
|
|
136
|
+
version: init.schema.version,
|
|
137
|
+
meta,
|
|
138
|
+
migrations: init.migrations,
|
|
139
|
+
indexedDB: init.indexedDb,
|
|
140
|
+
wipNamespace,
|
|
141
|
+
});
|
|
142
|
+
const fullContext = Object.assign(context, { documentDb });
|
|
143
|
+
const storage = new Client({
|
|
144
|
+
syncConfig: init.sync,
|
|
145
|
+
migrations: init.migrations,
|
|
146
|
+
files: init.files,
|
|
147
|
+
}, fullContext, {
|
|
148
|
+
meta,
|
|
149
|
+
});
|
|
150
|
+
return storage;
|
|
151
|
+
};
|
|
152
|
+
this.cleanupWIPDatabases = async (init) => {
|
|
153
|
+
const databaseInfo = await getAllDatabaseNamesAndVersions(init.indexedDb);
|
|
154
|
+
const wipDatabases = databaseInfo
|
|
155
|
+
.filter((db) => { var _a; return (_a = db.name) === null || _a === void 0 ? void 0 : _a.startsWith('@@wip_'); })
|
|
156
|
+
.map((db) => db.name);
|
|
157
|
+
// don't clear a current WIP database.
|
|
158
|
+
const wipDatabasesToDelete = wipDatabases.filter((db) => !db.startsWith(`@@wip_${init.namespace}_${hashObject(init.schema)}`));
|
|
159
|
+
for (const db of wipDatabasesToDelete) {
|
|
160
|
+
await deleteDatabase(db, init.indexedDb);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
this.open = () => this.initialize(this.init);
|
|
164
|
+
this.close = async () => {
|
|
165
|
+
if (this._resolvedValue) {
|
|
166
|
+
this._resolvedValue.close();
|
|
167
|
+
}
|
|
168
|
+
if (this._initializing) {
|
|
169
|
+
(await this._readyPromise).close();
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
this.__dangerous__resetLocal = async () => {
|
|
173
|
+
await deleteAllDatabases(this.namespace);
|
|
174
|
+
};
|
|
175
|
+
this._readyPromise = new Promise((resolve, reject) => {
|
|
176
|
+
this.resolveReady = resolve;
|
|
177
|
+
this.rejectReady = reject;
|
|
178
|
+
});
|
|
179
|
+
this._namespace = init.namespace;
|
|
180
|
+
}
|
|
181
|
+
get current() {
|
|
182
|
+
// exposing an immediate value if already resolved lets us
|
|
183
|
+
// skip the promise microtask when accessing this externally if
|
|
184
|
+
// the initialization has been completed.
|
|
185
|
+
return this._resolvedValue;
|
|
186
|
+
}
|
|
187
|
+
get readyPromise() {
|
|
188
|
+
return this._readyPromise;
|
|
189
|
+
}
|
|
190
|
+
get schema() {
|
|
191
|
+
return this.init.schema;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
194
|
//# sourceMappingURL=ClientDescriptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const METADATA_VERSION_KEY: unique symbol;
|
|
1
|
+
export declare const METADATA_VERSION_KEY: unique symbol;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const METADATA_VERSION_KEY = Symbol('metadataVersion');
|
|
1
|
+
export const METADATA_VERSION_KEY = Symbol('metadataVersion');
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TEST_API = "__unsafe__test_api__";
|
|
1
|
+
export declare const TEST_API = "__unsafe__test_api__";
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TEST_API = '__unsafe__test_api__';
|
|
1
|
+
export const TEST_API = '__unsafe__test_api__';
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
package/dist/esm/context.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { EventSubscriber, StorageSchema } from '@verdant-web/common';
|
|
2
|
-
import { UndoHistory } from './UndoHistory.js';
|
|
3
|
-
/**
|
|
4
|
-
* Common components utilized across various client
|
|
5
|
-
* services.
|
|
6
|
-
*/
|
|
7
|
-
export interface Context {
|
|
8
|
-
namespace: string;
|
|
9
|
-
metaDb: IDBDatabase;
|
|
10
|
-
documentDb: IDBDatabase;
|
|
11
|
-
undoHistory: UndoHistory;
|
|
12
|
-
schema: StorageSchema;
|
|
13
|
-
log: (...args: any[]) => void;
|
|
14
|
-
entityEvents: EventSubscriber<{
|
|
15
|
-
collectionsChanged: (names: string[]) => void;
|
|
16
|
-
}>;
|
|
17
|
-
globalEvents: EventSubscriber<{
|
|
18
|
-
/**
|
|
19
|
-
* A change from a future version of the application has been
|
|
20
|
-
* witnessed. These changes are not applied but it indicates
|
|
21
|
-
* the app has been updated and we should prompt the user
|
|
22
|
-
* to reload or have their app user manually reload.
|
|
23
|
-
*
|
|
24
|
-
* The parameter is the timestamp of the future change.
|
|
25
|
-
*/
|
|
26
|
-
futureSeen: (timestamp: string) => void;
|
|
27
|
-
}>;
|
|
28
|
-
weakRef<T extends object>(value: T): WeakRef<T>;
|
|
29
|
-
}
|
|
1
|
+
import { EventSubscriber, StorageSchema } from '@verdant-web/common';
|
|
2
|
+
import { UndoHistory } from './UndoHistory.js';
|
|
3
|
+
/**
|
|
4
|
+
* Common components utilized across various client
|
|
5
|
+
* services.
|
|
6
|
+
*/
|
|
7
|
+
export interface Context {
|
|
8
|
+
namespace: string;
|
|
9
|
+
metaDb: IDBDatabase;
|
|
10
|
+
documentDb: IDBDatabase;
|
|
11
|
+
undoHistory: UndoHistory;
|
|
12
|
+
schema: StorageSchema;
|
|
13
|
+
log: (...args: any[]) => void;
|
|
14
|
+
entityEvents: EventSubscriber<{
|
|
15
|
+
collectionsChanged: (names: string[]) => void;
|
|
16
|
+
}>;
|
|
17
|
+
globalEvents: EventSubscriber<{
|
|
18
|
+
/**
|
|
19
|
+
* A change from a future version of the application has been
|
|
20
|
+
* witnessed. These changes are not applied but it indicates
|
|
21
|
+
* the app has been updated and we should prompt the user
|
|
22
|
+
* to reload or have their app user manually reload.
|
|
23
|
+
*
|
|
24
|
+
* The parameter is the timestamp of the future change.
|
|
25
|
+
*/
|
|
26
|
+
futureSeen: (timestamp: string) => void;
|
|
27
|
+
}>;
|
|
28
|
+
weakRef<T extends object>(value: T): WeakRef<T>;
|
|
29
|
+
}
|
package/dist/esm/context.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=context.js.map
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
import { DocumentBaseline, EventSubscriber, ObjectIdentifier, Operation, StorageFieldSchema } from '@verdant-web/common';
|
|
2
|
-
import { Entity } from './Entity.js';
|
|
3
|
-
import type { EntityStore } from './EntityStore.js';
|
|
4
|
-
import { Context } from '../context.js';
|
|
5
|
-
import { TaggedOperation } from '../types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Local operations: operations on this client that haven't
|
|
8
|
-
* yet been synced and are only applied in-memory. These are
|
|
9
|
-
* always applied after all other operations, they are conceptually
|
|
10
|
-
* 'in the future' as they are not yet synced or stored.
|
|
11
|
-
*
|
|
12
|
-
* Confirmed operations: operations that have been synced and
|
|
13
|
-
* stored in the database.
|
|
14
|
-
*
|
|
15
|
-
* Unconfirmed operations: operations received from sync which
|
|
16
|
-
* have not been stored yet and are only in memory. These exist
|
|
17
|
-
* because new incoming operations are synchronously applied to
|
|
18
|
-
* cached entities while storage goes on async.
|
|
19
|
-
*/
|
|
20
|
-
export declare class DocumentFamilyCache extends EventSubscriber<Record<`change:${string}`, () => void> & {
|
|
21
|
-
'change:*': (oid: ObjectIdentifier) => void;
|
|
22
|
-
}> {
|
|
23
|
-
readonly oid: ObjectIdentifier;
|
|
24
|
-
private operationsMap;
|
|
25
|
-
private localOperationsMap;
|
|
26
|
-
private baselinesMap;
|
|
27
|
-
private entities;
|
|
28
|
-
private context;
|
|
29
|
-
private storeTools;
|
|
30
|
-
private _initialized;
|
|
31
|
-
get initializedPromise(): Promise<boolean>;
|
|
32
|
-
setInitialized: () => void;
|
|
33
|
-
constructor({ oid, store, context, }: {
|
|
34
|
-
oid: ObjectIdentifier;
|
|
35
|
-
store: EntityStore;
|
|
36
|
-
context: Context;
|
|
37
|
-
});
|
|
38
|
-
get weakRef(): <T extends object>(value: T) => WeakRef<T>;
|
|
39
|
-
insertLocalOperations: (operations: Operation[]) => void;
|
|
40
|
-
insertOperations: (operations: TaggedOperation[], info: {
|
|
41
|
-
isLocal: boolean;
|
|
42
|
-
affectedOids?: Set<ObjectIdentifier>;
|
|
43
|
-
}) => void;
|
|
44
|
-
/**
|
|
45
|
-
* Insert new baselines for objects in this family.
|
|
46
|
-
* Automatically drops operations before the new baseline.
|
|
47
|
-
*/
|
|
48
|
-
insertBaselines: (baselines: DocumentBaseline[], { affectedOids, }: {
|
|
49
|
-
isLocal: boolean;
|
|
50
|
-
affectedOids?: Set<string> | undefined;
|
|
51
|
-
}) => void;
|
|
52
|
-
addData: ({ operations, baselines, reset, isLocal, }: {
|
|
53
|
-
operations: TaggedOperation[];
|
|
54
|
-
baselines: DocumentBaseline[];
|
|
55
|
-
reset?: boolean | undefined;
|
|
56
|
-
isLocal?: boolean | undefined;
|
|
57
|
-
}) => void;
|
|
58
|
-
private applyOperations;
|
|
59
|
-
computeView: (oid: ObjectIdentifier) => {
|
|
60
|
-
view: any;
|
|
61
|
-
deleted: boolean;
|
|
62
|
-
lastTimestamp: number | null;
|
|
63
|
-
};
|
|
64
|
-
computeConfirmedView: (oid: ObjectIdentifier) => {
|
|
65
|
-
view: any;
|
|
66
|
-
deleted: boolean;
|
|
67
|
-
empty: boolean;
|
|
68
|
-
};
|
|
69
|
-
getLastTimestamp: (oid: ObjectIdentifier) => number | null;
|
|
70
|
-
getEntity: (oid: ObjectIdentifier, schema: StorageFieldSchema, parent?: Entity, readonlyKeys?: string[]) => Entity;
|
|
71
|
-
hasOid: (oid: ObjectIdentifier) => boolean;
|
|
72
|
-
dispose: () => void;
|
|
73
|
-
reset: ({ operations, baselines, dropExistingUnconfirmed: dropUnconfirmed, unconfirmedOperations, dropAll, }: {
|
|
74
|
-
operations: TaggedOperation[];
|
|
75
|
-
unconfirmedOperations?: Operation[] | undefined;
|
|
76
|
-
baselines: DocumentBaseline[];
|
|
77
|
-
/**
|
|
78
|
-
* Whether to drop operations which are only in-memory. Unconfirmed operations
|
|
79
|
-
* will not be restored from storage until they are persisted, so it's not advisable
|
|
80
|
-
* to use this unless the intention is to completely clear the entities.
|
|
81
|
-
*/
|
|
82
|
-
dropExistingUnconfirmed?: boolean | undefined;
|
|
83
|
-
/**
|
|
84
|
-
* Drop unconfirmed and confirmed data before resetting to incoming data.
|
|
85
|
-
* This is dangerous due to race conditions. Only use when a full reset is
|
|
86
|
-
* required.
|
|
87
|
-
*/
|
|
88
|
-
dropAll?: boolean | undefined;
|
|
89
|
-
}) => void;
|
|
90
|
-
}
|
|
1
|
+
import { DocumentBaseline, EventSubscriber, ObjectIdentifier, Operation, StorageFieldSchema } from '@verdant-web/common';
|
|
2
|
+
import { Entity } from './Entity.js';
|
|
3
|
+
import type { EntityStore } from './EntityStore.js';
|
|
4
|
+
import { Context } from '../context.js';
|
|
5
|
+
import { TaggedOperation } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Local operations: operations on this client that haven't
|
|
8
|
+
* yet been synced and are only applied in-memory. These are
|
|
9
|
+
* always applied after all other operations, they are conceptually
|
|
10
|
+
* 'in the future' as they are not yet synced or stored.
|
|
11
|
+
*
|
|
12
|
+
* Confirmed operations: operations that have been synced and
|
|
13
|
+
* stored in the database.
|
|
14
|
+
*
|
|
15
|
+
* Unconfirmed operations: operations received from sync which
|
|
16
|
+
* have not been stored yet and are only in memory. These exist
|
|
17
|
+
* because new incoming operations are synchronously applied to
|
|
18
|
+
* cached entities while storage goes on async.
|
|
19
|
+
*/
|
|
20
|
+
export declare class DocumentFamilyCache extends EventSubscriber<Record<`change:${string}`, () => void> & {
|
|
21
|
+
'change:*': (oid: ObjectIdentifier) => void;
|
|
22
|
+
}> {
|
|
23
|
+
readonly oid: ObjectIdentifier;
|
|
24
|
+
private operationsMap;
|
|
25
|
+
private localOperationsMap;
|
|
26
|
+
private baselinesMap;
|
|
27
|
+
private entities;
|
|
28
|
+
private context;
|
|
29
|
+
private storeTools;
|
|
30
|
+
private _initialized;
|
|
31
|
+
get initializedPromise(): Promise<boolean>;
|
|
32
|
+
setInitialized: () => void;
|
|
33
|
+
constructor({ oid, store, context, }: {
|
|
34
|
+
oid: ObjectIdentifier;
|
|
35
|
+
store: EntityStore;
|
|
36
|
+
context: Context;
|
|
37
|
+
});
|
|
38
|
+
get weakRef(): <T extends object>(value: T) => WeakRef<T>;
|
|
39
|
+
insertLocalOperations: (operations: Operation[]) => void;
|
|
40
|
+
insertOperations: (operations: TaggedOperation[], info: {
|
|
41
|
+
isLocal: boolean;
|
|
42
|
+
affectedOids?: Set<ObjectIdentifier>;
|
|
43
|
+
}) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Insert new baselines for objects in this family.
|
|
46
|
+
* Automatically drops operations before the new baseline.
|
|
47
|
+
*/
|
|
48
|
+
insertBaselines: (baselines: DocumentBaseline[], { affectedOids, }: {
|
|
49
|
+
isLocal: boolean;
|
|
50
|
+
affectedOids?: Set<string> | undefined;
|
|
51
|
+
}) => void;
|
|
52
|
+
addData: ({ operations, baselines, reset, isLocal, }: {
|
|
53
|
+
operations: TaggedOperation[];
|
|
54
|
+
baselines: DocumentBaseline[];
|
|
55
|
+
reset?: boolean | undefined;
|
|
56
|
+
isLocal?: boolean | undefined;
|
|
57
|
+
}) => void;
|
|
58
|
+
private applyOperations;
|
|
59
|
+
computeView: (oid: ObjectIdentifier) => {
|
|
60
|
+
view: any;
|
|
61
|
+
deleted: boolean;
|
|
62
|
+
lastTimestamp: number | null;
|
|
63
|
+
};
|
|
64
|
+
computeConfirmedView: (oid: ObjectIdentifier) => {
|
|
65
|
+
view: any;
|
|
66
|
+
deleted: boolean;
|
|
67
|
+
empty: boolean;
|
|
68
|
+
};
|
|
69
|
+
getLastTimestamp: (oid: ObjectIdentifier) => number | null;
|
|
70
|
+
getEntity: (oid: ObjectIdentifier, schema: StorageFieldSchema, parent?: Entity, readonlyKeys?: string[]) => Entity;
|
|
71
|
+
hasOid: (oid: ObjectIdentifier) => boolean;
|
|
72
|
+
dispose: () => void;
|
|
73
|
+
reset: ({ operations, baselines, dropExistingUnconfirmed: dropUnconfirmed, unconfirmedOperations, dropAll, }: {
|
|
74
|
+
operations: TaggedOperation[];
|
|
75
|
+
unconfirmedOperations?: Operation[] | undefined;
|
|
76
|
+
baselines: DocumentBaseline[];
|
|
77
|
+
/**
|
|
78
|
+
* Whether to drop operations which are only in-memory. Unconfirmed operations
|
|
79
|
+
* will not be restored from storage until they are persisted, so it's not advisable
|
|
80
|
+
* to use this unless the intention is to completely clear the entities.
|
|
81
|
+
*/
|
|
82
|
+
dropExistingUnconfirmed?: boolean | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Drop unconfirmed and confirmed data before resetting to incoming data.
|
|
85
|
+
* This is dangerous due to race conditions. Only use when a full reset is
|
|
86
|
+
* required.
|
|
87
|
+
*/
|
|
88
|
+
dropAll?: boolean | undefined;
|
|
89
|
+
}) => void;
|
|
90
|
+
}
|