document-drive 1.19.1 → 1.20.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/README.md +4 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/src/cache/memory.d.ts +10 -0
- package/dist/src/cache/memory.d.ts.map +1 -0
- package/dist/src/cache/memory.js +26 -0
- package/dist/src/cache/redis.d.ts +14 -0
- package/dist/src/cache/redis.d.ts.map +1 -0
- package/dist/src/cache/redis.js +40 -0
- package/dist/src/cache/types.d.ts +7 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +1 -0
- package/dist/src/drive-document-model/constants.d.ts +2 -0
- package/dist/src/drive-document-model/constants.d.ts.map +1 -0
- package/dist/src/drive-document-model/constants.js +1 -0
- package/dist/src/drive-document-model/gen/actions.d.ts +7 -0
- package/dist/src/drive-document-model/gen/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/actions.js +2 -0
- package/dist/src/drive-document-model/gen/constants.d.ts +7 -0
- package/dist/src/drive-document-model/gen/constants.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/constants.js +16 -0
- package/dist/src/drive-document-model/gen/creators.d.ts +3 -0
- package/dist/src/drive-document-model/gen/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/creators.js +2 -0
- package/dist/src/drive-document-model/gen/document-model.d.ts +3 -0
- package/dist/src/drive-document-model/gen/document-model.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/document-model.js +210 -0
- package/dist/src/drive-document-model/gen/drive/actions.d.ts +12 -0
- package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/actions.js +1 -0
- package/dist/src/drive-document-model/gen/drive/creators.d.ts +11 -0
- package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/creators.js +10 -0
- package/dist/src/drive-document-model/gen/drive/error.d.ts +2 -0
- package/dist/src/drive-document-model/gen/drive/error.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/error.js +1 -0
- package/dist/src/drive-document-model/gen/drive/object.d.ts +14 -0
- package/dist/src/drive-document-model/gen/drive/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/object.js +28 -0
- package/dist/src/drive-document-model/gen/drive/operations.d.ts +14 -0
- package/dist/src/drive-document-model/gen/drive/operations.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/operations.js +1 -0
- package/dist/src/drive-document-model/gen/node/actions.d.ts +11 -0
- package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/actions.js +1 -0
- package/dist/src/drive-document-model/gen/node/creators.d.ts +10 -0
- package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/creators.js +9 -0
- package/dist/src/drive-document-model/gen/node/error.d.ts +2 -0
- package/dist/src/drive-document-model/gen/node/error.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/error.js +1 -0
- package/dist/src/drive-document-model/gen/node/object.d.ts +13 -0
- package/dist/src/drive-document-model/gen/node/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/object.js +25 -0
- package/dist/src/drive-document-model/gen/node/operations.d.ts +13 -0
- package/dist/src/drive-document-model/gen/node/operations.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/operations.js +1 -0
- package/dist/src/drive-document-model/gen/object.d.ts +21 -0
- package/dist/src/drive-document-model/gen/object.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/object.js +28 -0
- package/dist/src/drive-document-model/gen/reducer.d.ts +4 -0
- package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/reducer.js +74 -0
- package/dist/src/drive-document-model/gen/schema/types.d.ts +176 -0
- package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/schema/types.js +1 -0
- package/dist/src/drive-document-model/gen/schema/zod.d.ts +87 -0
- package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/schema/zod.js +203 -0
- package/dist/src/drive-document-model/gen/types.d.ts +9 -0
- package/dist/src/drive-document-model/gen/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/types.js +1 -0
- package/dist/src/drive-document-model/gen/utils.d.ts +10 -0
- package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/utils.js +27 -0
- package/dist/src/drive-document-model/index.d.ts +2 -0
- package/dist/src/drive-document-model/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/index.js +1 -0
- package/dist/src/drive-document-model/module.d.ts +3 -0
- package/dist/src/drive-document-model/module.d.ts.map +1 -0
- package/dist/src/drive-document-model/module.js +12 -0
- package/dist/src/drive-document-model/src/reducers/drive.d.ts +8 -0
- package/dist/src/drive-document-model/src/reducers/drive.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/reducers/drive.js +37 -0
- package/dist/src/drive-document-model/src/reducers/node.d.ts +8 -0
- package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/reducers/node.js +185 -0
- package/dist/src/drive-document-model/src/utils.d.ts +34 -0
- package/dist/src/drive-document-model/src/utils.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/utils.js +146 -0
- package/dist/src/queue/base.d.ts +43 -0
- package/dist/src/queue/base.d.ts.map +1 -0
- package/dist/src/queue/base.js +241 -0
- package/dist/src/queue/redis.d.ts +28 -0
- package/dist/src/queue/redis.d.ts.map +1 -0
- package/dist/src/queue/redis.js +110 -0
- package/dist/src/queue/types.d.ts +55 -0
- package/dist/src/queue/types.d.ts.map +1 -0
- package/dist/src/queue/types.js +6 -0
- package/dist/src/read-mode/errors.d.ts +12 -0
- package/dist/src/read-mode/errors.d.ts.map +1 -0
- package/dist/src/read-mode/errors.js +17 -0
- package/dist/src/read-mode/server.d.ts +4 -0
- package/dist/src/read-mode/server.d.ts.map +1 -0
- package/dist/src/read-mode/server.js +78 -0
- package/dist/src/read-mode/service.d.ts +18 -0
- package/dist/src/read-mode/service.d.ts.map +1 -0
- package/dist/src/read-mode/service.js +112 -0
- package/dist/src/read-mode/types.d.ts +35 -0
- package/dist/src/read-mode/types.d.ts.map +1 -0
- package/dist/src/read-mode/types.js +1 -0
- package/dist/src/server/base-server.d.ts +112 -0
- package/dist/src/server/base-server.d.ts.map +1 -0
- package/dist/src/server/base-server.js +1280 -0
- package/dist/src/server/builder.d.ts +30 -0
- package/dist/src/server/builder.d.ts.map +1 -0
- package/dist/src/server/builder.js +89 -0
- package/dist/src/server/constants.d.ts +2 -0
- package/dist/src/server/constants.d.ts.map +1 -0
- package/dist/src/server/constants.js +1 -0
- package/dist/src/server/error.d.ts +30 -0
- package/dist/src/server/error.d.ts.map +1 -0
- package/dist/src/server/error.js +47 -0
- package/dist/src/server/event-emitter.d.ts +8 -0
- package/dist/src/server/event-emitter.d.ts.map +1 -0
- package/dist/src/server/event-emitter.js +10 -0
- package/dist/src/server/listener/index.d.ts +2 -0
- package/dist/src/server/listener/index.d.ts.map +1 -0
- package/dist/src/server/listener/index.js +1 -0
- package/dist/src/server/listener/listener-manager.d.ts +27 -0
- package/dist/src/server/listener/listener-manager.d.ts.map +1 -0
- package/dist/src/server/listener/listener-manager.js +401 -0
- package/dist/src/server/listener/transmitter/factory.d.ts +8 -0
- package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/factory.js +25 -0
- package/dist/src/server/listener/transmitter/internal.d.ts +34 -0
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/internal.js +87 -0
- package/dist/src/server/listener/transmitter/pull-responder.d.ts +38 -0
- package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/pull-responder.js +256 -0
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts +9 -0
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/switchboard-push.js +77 -0
- package/dist/src/server/listener/transmitter/types.d.ts +20 -0
- package/dist/src/server/listener/transmitter/types.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/types.js +1 -0
- package/dist/src/server/listener/util.d.ts +2 -0
- package/dist/src/server/listener/util.d.ts.map +1 -0
- package/dist/src/server/listener/util.js +22 -0
- package/dist/src/server/sync-manager.d.ts +30 -0
- package/dist/src/server/sync-manager.d.ts.map +1 -0
- package/dist/src/server/sync-manager.js +287 -0
- package/dist/src/server/types.d.ts +308 -0
- package/dist/src/server/types.d.ts.map +1 -0
- package/dist/src/server/types.js +12 -0
- package/dist/src/server/utils.d.ts +8 -0
- package/dist/src/server/utils.d.ts.map +1 -0
- package/dist/src/server/utils.js +47 -0
- package/dist/src/storage/base.d.ts +36 -0
- package/dist/src/storage/base.d.ts.map +1 -0
- package/dist/src/storage/base.js +4 -0
- package/dist/src/storage/browser.d.ts +36 -0
- package/dist/src/storage/browser.d.ts.map +1 -0
- package/dist/src/storage/browser.js +155 -0
- package/dist/src/storage/filesystem.d.ts +33 -0
- package/dist/src/storage/filesystem.d.ts.map +1 -0
- package/dist/src/storage/filesystem.js +197 -0
- package/dist/src/storage/memory.d.ts +33 -0
- package/dist/src/storage/memory.d.ts.map +1 -0
- package/dist/src/storage/memory.js +139 -0
- package/dist/src/storage/prisma.d.ts +67 -0
- package/dist/src/storage/prisma.d.ts.map +1 -0
- package/dist/src/storage/prisma.js +445 -0
- package/dist/src/storage/sequelize.d.ts +32 -0
- package/dist/src/storage/sequelize.d.ts.map +1 -0
- package/dist/src/storage/sequelize.js +373 -0
- package/dist/src/storage/types.d.ts +43 -0
- package/dist/src/storage/types.d.ts.map +1 -0
- package/dist/src/storage/types.js +1 -0
- package/dist/src/utils/default-drives-manager.d.ts +29 -0
- package/dist/src/utils/default-drives-manager.d.ts.map +1 -0
- package/dist/src/utils/default-drives-manager.js +208 -0
- package/dist/src/utils/graphql.d.ts +34 -0
- package/dist/src/utils/graphql.d.ts.map +1 -0
- package/dist/src/utils/graphql.js +183 -0
- package/dist/src/utils/logger.d.ts +27 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +105 -0
- package/dist/src/utils/migrations.d.ts +4 -0
- package/dist/src/utils/migrations.d.ts.map +1 -0
- package/dist/src/utils/migrations.js +41 -0
- package/dist/src/utils/misc.d.ts +11 -0
- package/dist/src/utils/misc.d.ts.map +1 -0
- package/dist/src/utils/misc.js +43 -0
- package/dist/src/utils/run-asap.d.ts +12 -0
- package/dist/src/utils/run-asap.d.ts.map +1 -0
- package/dist/src/utils/run-asap.js +131 -0
- package/dist/test/document-helpers/utils.d.ts +8 -0
- package/dist/test/document-helpers/utils.d.ts.map +1 -0
- package/dist/test/document-helpers/utils.js +21 -0
- package/dist/test/utils.d.ts +48 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +132 -0
- package/dist/test/vitest-setup.d.ts +2 -0
- package/dist/test/vitest-setup.d.ts.map +1 -0
- package/dist/test/vitest-setup.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +20 -0
- package/package.json +20 -38
- package/src/cache/index.ts +0 -2
- package/src/cache/memory.ts +0 -33
- package/src/cache/redis.ts +0 -56
- package/src/cache/types.ts +0 -9
- package/src/index.ts +0 -4
- package/src/queue/base.ts +0 -320
- package/src/queue/index.ts +0 -2
- package/src/queue/redis.ts +0 -144
- package/src/queue/types.ts +0 -79
- package/src/read-mode/errors.ts +0 -19
- package/src/read-mode/index.ts +0 -125
- package/src/read-mode/service.ts +0 -207
- package/src/read-mode/types.ts +0 -108
- package/src/server/error.ts +0 -70
- package/src/server/index.ts +0 -2444
- package/src/server/listener/index.ts +0 -2
- package/src/server/listener/manager.ts +0 -652
- package/src/server/listener/transmitter/index.ts +0 -4
- package/src/server/listener/transmitter/internal.ts +0 -143
- package/src/server/listener/transmitter/pull-responder.ts +0 -462
- package/src/server/listener/transmitter/switchboard-push.ts +0 -125
- package/src/server/listener/transmitter/types.ts +0 -27
- package/src/server/types.ts +0 -596
- package/src/server/utils.ts +0 -82
- package/src/storage/base.ts +0 -81
- package/src/storage/browser.ts +0 -238
- package/src/storage/filesystem.ts +0 -297
- package/src/storage/index.ts +0 -2
- package/src/storage/memory.ts +0 -211
- package/src/storage/prisma.ts +0 -653
- package/src/storage/sequelize.ts +0 -498
- package/src/storage/types.ts +0 -97
- package/src/utils/default-drives-manager.ts +0 -341
- package/src/utils/document-helpers.ts +0 -21
- package/src/utils/graphql.ts +0 -301
- package/src/utils/index.ts +0 -90
- package/src/utils/logger.ts +0 -38
- package/src/utils/migrations.ts +0 -58
- package/src/utils/run-asap.ts +0 -156
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ICache } from "#cache/types";
|
|
2
|
+
import { IQueueManager } from "#queue/types";
|
|
3
|
+
import { IDriveStorage } from "#storage/types";
|
|
4
|
+
import { DocumentModelModule } from "document-model";
|
|
5
|
+
import { DocumentDriveServerOptions, IEventEmitter, IListenerManager, ISynchronizationManager, ITransmitterFactory } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Builder class for constructing Reactor instances with proper configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare class ReactorBuilder {
|
|
10
|
+
private documentModelModules;
|
|
11
|
+
private storage?;
|
|
12
|
+
private cache?;
|
|
13
|
+
private queueManager?;
|
|
14
|
+
private eventEmitter?;
|
|
15
|
+
private options?;
|
|
16
|
+
private synchronizationManager?;
|
|
17
|
+
private listenerManager?;
|
|
18
|
+
private transmitterFactory?;
|
|
19
|
+
constructor(documentModelModules: DocumentModelModule[]);
|
|
20
|
+
withStorage(storage: IDriveStorage): this;
|
|
21
|
+
withCache(cache: ICache): this;
|
|
22
|
+
withQueueManager(queueManager: IQueueManager): this;
|
|
23
|
+
withEventEmitter(eventEmitter: IEventEmitter): this;
|
|
24
|
+
withSynchronizationManager(synchronizationManager: ISynchronizationManager): this;
|
|
25
|
+
withListenerManager(listenerManager: IListenerManager): this;
|
|
26
|
+
withTransmitterFactory(transmitterFactory: ITransmitterFactory): this;
|
|
27
|
+
withOptions(options: DocumentDriveServerOptions): this;
|
|
28
|
+
build(): import("./base-server.js").BaseDocumentDriveServer & import("../read-mode/types.js").IReadModeDriveServer;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/server/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMrD,OAAO,EAEL,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,oBAAoB,CAA6B;IAEzD,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAC,CAA6B;IAC7C,OAAO,CAAC,sBAAsB,CAAC,CAA0B;IACzD,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,kBAAkB,CAAC,CAAsB;gBAErC,oBAAoB,EAAE,mBAAmB,EAAE;IAIhD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,0BAA0B,CAC/B,sBAAsB,EAAE,uBAAuB,GAC9C,IAAI;IAKA,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI;IAK5D,sBAAsB,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,IAAI;IAKrE,WAAW,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAKtD,KAAK;CA0Db"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import InMemoryCache from "#cache/memory";
|
|
2
|
+
import { BaseQueueManager } from "#queue/base";
|
|
3
|
+
import { MemoryStorage } from "#storage/memory";
|
|
4
|
+
import { DocumentDriveServer } from "./base-server.js";
|
|
5
|
+
import { DefaultEventEmitter } from "./event-emitter.js";
|
|
6
|
+
import { ListenerManager } from "./listener/listener-manager.js";
|
|
7
|
+
import TransmitterFactory from "./listener/transmitter/factory.js";
|
|
8
|
+
import SynchronizationManager from "./sync-manager.js";
|
|
9
|
+
import { DefaultListenerManagerOptions, } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Builder class for constructing Reactor instances with proper configuration
|
|
12
|
+
*/
|
|
13
|
+
export class ReactorBuilder {
|
|
14
|
+
documentModelModules = [];
|
|
15
|
+
storage;
|
|
16
|
+
cache;
|
|
17
|
+
queueManager;
|
|
18
|
+
eventEmitter;
|
|
19
|
+
options;
|
|
20
|
+
synchronizationManager;
|
|
21
|
+
listenerManager;
|
|
22
|
+
transmitterFactory;
|
|
23
|
+
constructor(documentModelModules) {
|
|
24
|
+
this.documentModelModules = documentModelModules;
|
|
25
|
+
}
|
|
26
|
+
withStorage(storage) {
|
|
27
|
+
this.storage = storage;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
withCache(cache) {
|
|
31
|
+
this.cache = cache;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
withQueueManager(queueManager) {
|
|
35
|
+
this.queueManager = queueManager;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
withEventEmitter(eventEmitter) {
|
|
39
|
+
this.eventEmitter = eventEmitter;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
withSynchronizationManager(synchronizationManager) {
|
|
43
|
+
this.synchronizationManager = synchronizationManager;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
withListenerManager(listenerManager) {
|
|
47
|
+
this.listenerManager = listenerManager;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
withTransmitterFactory(transmitterFactory) {
|
|
51
|
+
this.transmitterFactory = transmitterFactory;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
withOptions(options) {
|
|
55
|
+
this.options = options;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
build() {
|
|
59
|
+
if (!this.documentModelModules.length) {
|
|
60
|
+
throw new Error("Document models are required to build the server");
|
|
61
|
+
}
|
|
62
|
+
if (!this.storage) {
|
|
63
|
+
this.storage = new MemoryStorage();
|
|
64
|
+
}
|
|
65
|
+
if (!this.cache) {
|
|
66
|
+
this.cache = new InMemoryCache();
|
|
67
|
+
}
|
|
68
|
+
if (!this.queueManager) {
|
|
69
|
+
this.queueManager = new BaseQueueManager();
|
|
70
|
+
}
|
|
71
|
+
if (!this.eventEmitter) {
|
|
72
|
+
this.eventEmitter = new DefaultEventEmitter();
|
|
73
|
+
}
|
|
74
|
+
if (!this.synchronizationManager) {
|
|
75
|
+
this.synchronizationManager = new SynchronizationManager(this.storage, this.cache, this.documentModelModules, this.eventEmitter);
|
|
76
|
+
}
|
|
77
|
+
if (!this.listenerManager) {
|
|
78
|
+
const config = {
|
|
79
|
+
...DefaultListenerManagerOptions,
|
|
80
|
+
...this.options?.listenerManager,
|
|
81
|
+
};
|
|
82
|
+
this.listenerManager = new ListenerManager(this.synchronizationManager, config);
|
|
83
|
+
}
|
|
84
|
+
if (!this.transmitterFactory) {
|
|
85
|
+
this.transmitterFactory = new TransmitterFactory(this.listenerManager);
|
|
86
|
+
}
|
|
87
|
+
return new DocumentDriveServer(this.documentModelModules, this.storage, this.cache, this.queueManager, this.eventEmitter, this.synchronizationManager, this.listenerManager, this.transmitterFactory, this.options);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/server/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const PULL_DRIVE_INTERVAL = 5000;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Operation } from "document-model";
|
|
2
|
+
import { ErrorStatus } from "./types.js";
|
|
3
|
+
export declare class DocumentModelNotFoundError extends Error {
|
|
4
|
+
id: string;
|
|
5
|
+
constructor(id: string, cause?: unknown);
|
|
6
|
+
}
|
|
7
|
+
export declare class OperationError extends Error {
|
|
8
|
+
status: ErrorStatus;
|
|
9
|
+
operation: Operation | undefined;
|
|
10
|
+
constructor(status: ErrorStatus, operation?: Operation, message?: string, cause?: unknown);
|
|
11
|
+
}
|
|
12
|
+
export declare class ConflictOperationError extends OperationError {
|
|
13
|
+
constructor(existingOperation: Operation, newOperation: Operation);
|
|
14
|
+
}
|
|
15
|
+
export declare class MissingOperationError extends OperationError {
|
|
16
|
+
constructor(index: number, operation: Operation);
|
|
17
|
+
}
|
|
18
|
+
export declare class DriveAlreadyExistsError extends Error {
|
|
19
|
+
driveId: string;
|
|
20
|
+
constructor(driveId: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class DriveNotFoundError extends Error {
|
|
23
|
+
driveId: string;
|
|
24
|
+
constructor(driveId: string);
|
|
25
|
+
}
|
|
26
|
+
export declare class SynchronizationUnitNotFoundError extends Error {
|
|
27
|
+
syncUnitId: string;
|
|
28
|
+
constructor(message: string, syncUnitId: string);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/server/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,qBAAa,0BAA2B,SAAQ,KAAK;IAE1C,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO;CAIlB;AACD,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;gBAG/B,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO;CAMlB;AAED,qBAAa,sBAAuB,SAAQ,cAAc;gBAC5C,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;CAQlE;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;CAGhD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,OAAO,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,OAAO,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAIhD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export class DocumentModelNotFoundError extends Error {
|
|
2
|
+
id;
|
|
3
|
+
constructor(id, cause) {
|
|
4
|
+
super(`Document model "${id}" not found`, { cause });
|
|
5
|
+
this.id = id;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class OperationError extends Error {
|
|
9
|
+
status;
|
|
10
|
+
operation;
|
|
11
|
+
constructor(status, operation, message, cause) {
|
|
12
|
+
super(message, { cause: cause ?? operation });
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.operation = operation;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class ConflictOperationError extends OperationError {
|
|
18
|
+
constructor(existingOperation, newOperation) {
|
|
19
|
+
super("CONFLICT", newOperation, `Conflicting operation on index ${newOperation.index}`, { existingOperation, newOperation });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class MissingOperationError extends OperationError {
|
|
23
|
+
constructor(index, operation) {
|
|
24
|
+
super("MISSING", operation, `Missing operation on index ${index}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class DriveAlreadyExistsError extends Error {
|
|
28
|
+
driveId;
|
|
29
|
+
constructor(driveId) {
|
|
30
|
+
super(`Drive already exists. ID: ${driveId}`);
|
|
31
|
+
this.driveId = driveId;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class DriveNotFoundError extends Error {
|
|
35
|
+
driveId;
|
|
36
|
+
constructor(driveId) {
|
|
37
|
+
super(`Drive with id ${driveId} not found`);
|
|
38
|
+
this.driveId = driveId;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class SynchronizationUnitNotFoundError extends Error {
|
|
42
|
+
syncUnitId;
|
|
43
|
+
constructor(message, syncUnitId) {
|
|
44
|
+
super(message);
|
|
45
|
+
this.syncUnitId = syncUnitId;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Unsubscribe } from "nanoevents";
|
|
2
|
+
import { DriveEvents, IEventEmitter } from "./types.js";
|
|
3
|
+
export declare class DefaultEventEmitter implements IEventEmitter {
|
|
4
|
+
private emitter;
|
|
5
|
+
emit<K extends keyof DriveEvents>(event: K, ...args: Parameters<DriveEvents[K]>): void;
|
|
6
|
+
on<K extends keyof DriveEvents>(event: K, cb: DriveEvents[K]): Unsubscribe;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=event-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../src/server/event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,OAAO,CAAmC;IAElD,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,EAC9B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAClC,IAAI;IAIP,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW;CAG3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/listener/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./listener-manager.js";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { StrandUpdateSource } from "#server/listener/transmitter/types";
|
|
2
|
+
import { DriveUpdateErrorHandler, GetStrandsOptions, IListenerManager, ISynchronizationManager, Listener, ListenerManagerOptions, ListenerState, ListenerUpdate, StrandUpdate, SynchronizationUnit, SynchronizationUnitQuery } from "#server/types";
|
|
3
|
+
export declare class ListenerManager implements IListenerManager {
|
|
4
|
+
static LISTENER_UPDATE_DELAY: number;
|
|
5
|
+
protected logger: import("../../utils/logger.js").ConsoleLogger;
|
|
6
|
+
protected syncManager: ISynchronizationManager;
|
|
7
|
+
protected options: ListenerManagerOptions;
|
|
8
|
+
protected listenerStateByDriveId: Map<string, Map<string, ListenerState>>;
|
|
9
|
+
constructor(syncManager: ISynchronizationManager, options?: ListenerManagerOptions);
|
|
10
|
+
initialize(handler: DriveUpdateErrorHandler): Promise<void>;
|
|
11
|
+
driveHasListeners(driveId: string): boolean;
|
|
12
|
+
setListener(driveId: string, listener: Listener): Promise<void>;
|
|
13
|
+
removeListener(driveId: string, listenerId: string): Promise<boolean>;
|
|
14
|
+
removeSyncUnits(driveId: string, syncUnits: Pick<SynchronizationUnit, "syncId">[]): Promise<void>;
|
|
15
|
+
updateSynchronizationRevisions(driveId: string, syncUnits: SynchronizationUnit[], source: StrandUpdateSource, willUpdate?: (listeners: Listener[]) => void, onError?: (error: Error, driveId: string, listener: ListenerState) => void, forceSync?: boolean): Promise<ListenerUpdate[]>;
|
|
16
|
+
updateListenerRevision(listenerId: string, driveId: string, syncId: string, listenerRev: number): Promise<void>;
|
|
17
|
+
triggerUpdate: (immediate: boolean, source: StrandUpdateSource, onError?: ((error: Error, driveId: string, listener: ListenerState) => void) | undefined, maxContinues?: number | undefined) => Promise<ListenerUpdate[]>;
|
|
18
|
+
private _triggerUpdate;
|
|
19
|
+
private _checkFilter;
|
|
20
|
+
getListenerSyncUnits(driveId: string, listenerId: string): never[] | Promise<SynchronizationUnit[]>;
|
|
21
|
+
getListenerSyncUnitIds(driveId: string, listenerId: string): Promise<SynchronizationUnitQuery[]>;
|
|
22
|
+
removeDrive(driveId: string): Promise<void>;
|
|
23
|
+
getStrands(driveId: string, listenerId: string, options?: GetStrandsOptions): Promise<StrandUpdate[]>;
|
|
24
|
+
getListenerState(driveId: string, listenerId: string): ListenerState;
|
|
25
|
+
setListenerState(driveId: string, listenerId: string, listenerState: ListenerState): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=listener-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listener-manager.d.ts","sourceRoot":"","sources":["../../../../src/server/listener/listener-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAEL,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,EACR,sBAAsB,EACtB,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAQvB,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,MAAM,CAAC,qBAAqB,SAAO;IAEnC,SAAS,CAAC,MAAM,gDAGb;IAEH,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC/C,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAG1C,SAAS,CAAC,sBAAsB,0CAG5B;gBAGF,WAAW,EAAE,uBAAuB,EACpC,OAAO,GAAE,sBAAsD;IAQ3D,UAAU,CAAC,OAAO,EAAE,uBAAuB;IAcjD,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAI3B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IA+B/C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAWlD,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IAaV,8BAA8B,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,EAChC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,EAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,EAC1E,SAAS,UAAQ;IA2Cb,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAuBhB,aAAa,sEAOO,KAAK,WAAW,MAAM,YAAY,aAAa,KAAK,IAAI,+EAJ1E;YAEY,cAAc;IA8N5B,OAAO,CAAC,YAAY;IAsBpB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAexD,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAehC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,UAAU,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAoE1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAepD,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa;CAU/B"}
|