@powerhousedao/reactor 5.1.0-dev.32 → 5.1.0-dev.34
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/src/actions/index.d.ts +24 -0
- package/dist/src/actions/index.d.ts.map +1 -0
- package/dist/src/actions/index.js +77 -0
- package/dist/src/actions/index.js.map +1 -0
- package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
- package/dist/src/cache/kysely-operation-index.js +0 -1
- package/dist/src/cache/kysely-operation-index.js.map +1 -1
- package/dist/src/cache/kysely-write-cache.js +1 -1
- package/dist/src/cache/kysely-write-cache.js.map +1 -1
- package/dist/src/client/reactor-client.d.ts +15 -2
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js +97 -3
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/client/types.d.ts +22 -3
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +3 -0
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.js +16 -3
- package/dist/src/core/reactor-builder.js.map +1 -1
- package/dist/src/core/reactor-client-builder.d.ts +9 -1
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-client-builder.js +15 -1
- package/dist/src/core/reactor-client-builder.js.map +1 -1
- package/dist/src/core/reactor.d.ts +3 -1
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +43 -66
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +49 -6
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/executor/types.d.ts +2 -0
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/types.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/logging/console.d.ts +11 -1
- package/dist/src/logging/console.d.ts.map +1 -1
- package/dist/src/logging/console.js +45 -14
- package/dist/src/logging/console.js.map +1 -1
- package/dist/src/logging/types.d.ts +1 -0
- package/dist/src/logging/types.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +3 -4
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.js +11 -13
- package/dist/src/read-models/coordinator.js.map +1 -1
- package/dist/src/storage/interfaces.d.ts +16 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.d.ts +1 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.js +40 -0
- package/dist/src/storage/kysely/store.js.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +3 -2
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.js +15 -4
- package/dist/src/subs/subscription-notification-read-model.js.map +1 -1
- package/dist/src/sync/channels/gql-channel.d.ts.map +1 -1
- package/dist/src/sync/channels/gql-channel.js +6 -4
- package/dist/src/sync/channels/gql-channel.js.map +1 -1
- package/dist/src/sync/channels/polling-channel.d.ts.map +1 -1
- package/dist/src/sync/channels/polling-channel.js +6 -4
- package/dist/src/sync/channels/polling-channel.js.map +1 -1
- package/dist/src/sync/channels/utils.d.ts +13 -0
- package/dist/src/sync/channels/utils.d.ts.map +1 -1
- package/dist/src/sync/channels/utils.js +24 -0
- package/dist/src/sync/channels/utils.js.map +1 -1
- package/dist/src/sync/sync-builder.d.ts +3 -2
- package/dist/src/sync/sync-builder.d.ts.map +1 -1
- package/dist/src/sync/sync-builder.js +4 -4
- package/dist/src/sync/sync-builder.js.map +1 -1
- package/dist/src/sync/sync-manager.d.ts +3 -1
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.js +15 -6
- package/dist/src/sync/sync-manager.js.map +1 -1
- package/dist/src/sync/utils.d.ts +19 -0
- package/dist/src/sync/utils.d.ts.map +1 -1
- package/dist/src/sync/utils.js +44 -0
- package/dist/src/sync/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -42,11 +42,18 @@ export interface IReactorClient {
|
|
|
42
42
|
* @param signal - Optional abort signal to cancel the request
|
|
43
43
|
* @returns List of document model modules
|
|
44
44
|
*/
|
|
45
|
-
|
|
45
|
+
getDocumentModelModules(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
|
|
46
46
|
/**
|
|
47
|
-
* Retrieves a specific
|
|
47
|
+
* Retrieves a specific document model module by document type.
|
|
48
48
|
*
|
|
49
|
-
* @param
|
|
49
|
+
* @param documentType - The document type identifier
|
|
50
|
+
* @returns The document model module
|
|
51
|
+
*/
|
|
52
|
+
getDocumentModelModule(documentType: string): Promise<DocumentModelModule<any>>;
|
|
53
|
+
/**
|
|
54
|
+
* Retrieves a specific document by identifier (either id or slug).
|
|
55
|
+
*
|
|
56
|
+
* @param identifier - Required, this is the document id or slug
|
|
50
57
|
* @param view - Optional filter containing branch and scopes information
|
|
51
58
|
* @param signal - Optional abort signal to cancel the request
|
|
52
59
|
* @returns The up-to-date PHDocument with scopes and list of child document ids
|
|
@@ -102,6 +109,18 @@ export interface IReactorClient {
|
|
|
102
109
|
* @param signal - Optional abort signal to cancel the request
|
|
103
110
|
*/
|
|
104
111
|
createEmpty<TDocument extends PHDocument>(documentType: string, parentIdentifier?: string, signal?: AbortSignal): Promise<TDocument>;
|
|
112
|
+
/**
|
|
113
|
+
* Creates an empty document in a drive as a single batched operation.
|
|
114
|
+
* This is more efficient than createEmpty + addFile as it batches all
|
|
115
|
+
* actions into dependent jobs and waits for them to complete together.
|
|
116
|
+
*
|
|
117
|
+
* @param driveId - The drive document id or slug
|
|
118
|
+
* @param document - The document to create
|
|
119
|
+
* @param parentFolder - Optional folder id within the drive
|
|
120
|
+
* @param signal - Optional abort signal to cancel the request
|
|
121
|
+
* @returns The created document
|
|
122
|
+
*/
|
|
123
|
+
createDocumentInDrive<TDocument extends PHDocument>(driveId: string, document: PHDocument, parentFolder?: string, signal?: AbortSignal): Promise<TDocument>;
|
|
105
124
|
/**
|
|
106
125
|
* Applies a list of actions to a document and waits for completion
|
|
107
126
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,EACZ,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@ import type { IReadModel, IReadModelCoordinator } from "../read-models/interface
|
|
|
5
5
|
import type { SyncBuilder } from "../sync/sync-builder.js";
|
|
6
6
|
import type { Database, ExecutorConfig, IReactor, ReactorFeatures, ReactorModule } from "./types.js";
|
|
7
7
|
import type { IJobExecutorManager } from "#executor/interfaces.js";
|
|
8
|
+
import type { ILogger } from "#logging/types.js";
|
|
8
9
|
import { Kysely } from "kysely";
|
|
9
10
|
import type { IEventBus } from "../events/interfaces.js";
|
|
10
11
|
import type { SignatureVerificationHandler } from "../signer/types.js";
|
|
11
12
|
import type { MigrationStrategy } from "../storage/migrations/types.js";
|
|
12
13
|
export declare class ReactorBuilder {
|
|
14
|
+
private logger?;
|
|
13
15
|
private documentModels;
|
|
14
16
|
private upgradeManifests;
|
|
15
17
|
private storage?;
|
|
@@ -25,6 +27,7 @@ export declare class ReactorBuilder {
|
|
|
25
27
|
private readModelCoordinator?;
|
|
26
28
|
private signatureVerifier?;
|
|
27
29
|
private kyselyInstance?;
|
|
30
|
+
withLogger(logger: ILogger): this;
|
|
28
31
|
withDocumentModels(models: DocumentModelModule[]): this;
|
|
29
32
|
withUpgradeManifests(manifests: UpgradeManifest<readonly number[]>[]): this;
|
|
30
33
|
withLegacyStorage(storage: IDocumentStorage & IDocumentOperationStorage): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAe,EACf,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"reactor-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAe,EACf,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAKxE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,OAAO,CAAC,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAwB;IACrD,OAAO,CAAC,iBAAiB,CAAC,CAA+B;IACzD,OAAO,CAAC,cAAc,CAAC,CAAmB;IAE1C,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjC,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAKvD,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAK3E,iBAAiB,CACf,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,GACpD,IAAI;IAKP,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAK7C,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAK1C,wBAAwB,CAAC,oBAAoB,EAAE,qBAAqB,GAAG,IAAI;IAK3E,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAKjD,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK7D,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKxD,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAKxC,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAKvC,qBAAqB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI;IAKnE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKpC,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAK1B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;CAuM5C"}
|
|
@@ -15,6 +15,7 @@ import { KyselyDocumentIndexer } from "../storage/kysely/document-indexer.js";
|
|
|
15
15
|
import { KyselyKeyframeStore } from "../storage/kysely/keyframe-store.js";
|
|
16
16
|
import { KyselyOperationStore } from "../storage/kysely/store.js";
|
|
17
17
|
import { Reactor } from "./reactor.js";
|
|
18
|
+
import { ConsoleLogger } from "#logging/console.js";
|
|
18
19
|
import { PGlite } from "@electric-sql/pglite";
|
|
19
20
|
import { Kysely } from "kysely";
|
|
20
21
|
import { PGliteDialect } from "kysely-pglite-dialect";
|
|
@@ -22,7 +23,9 @@ import { ConsistencyAwareLegacyStorage } from "../storage/consistency-aware-lega
|
|
|
22
23
|
import { runMigrations } from "../storage/migrations/migrator.js";
|
|
23
24
|
import { DefaultSubscriptionErrorHandler } from "../subs/default-error-handler.js";
|
|
24
25
|
import { ReactorSubscriptionManager } from "../subs/react-subscription-manager.js";
|
|
26
|
+
import { SubscriptionNotificationReadModel } from "../subs/subscription-notification-read-model.js";
|
|
25
27
|
export class ReactorBuilder {
|
|
28
|
+
logger;
|
|
26
29
|
documentModels = [];
|
|
27
30
|
upgradeManifests = [];
|
|
28
31
|
storage;
|
|
@@ -38,6 +41,10 @@ export class ReactorBuilder {
|
|
|
38
41
|
readModelCoordinator;
|
|
39
42
|
signatureVerifier;
|
|
40
43
|
kyselyInstance;
|
|
44
|
+
withLogger(logger) {
|
|
45
|
+
this.logger = logger;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
41
48
|
withDocumentModels(models) {
|
|
42
49
|
this.documentModels = models;
|
|
43
50
|
return this;
|
|
@@ -99,6 +106,9 @@ export class ReactorBuilder {
|
|
|
99
106
|
return module.reactor;
|
|
100
107
|
}
|
|
101
108
|
async buildModule() {
|
|
109
|
+
if (!this.logger) {
|
|
110
|
+
this.logger = new ConsoleLogger(["reactor"]);
|
|
111
|
+
}
|
|
102
112
|
const storage = this.storage || new MemoryStorage();
|
|
103
113
|
const documentModelRegistry = new DocumentModelRegistry();
|
|
104
114
|
if (this.upgradeManifests.length > 0) {
|
|
@@ -169,13 +179,16 @@ export class ReactorBuilder {
|
|
|
169
179
|
readModelInstances.push(documentIndexer);
|
|
170
180
|
this.documentIndexer = documentIndexer;
|
|
171
181
|
const subscriptionManager = new ReactorSubscriptionManager(new DefaultSubscriptionErrorHandler());
|
|
182
|
+
const subscriptionNotificationReadModel = new SubscriptionNotificationReadModel(subscriptionManager, documentView);
|
|
172
183
|
const readModelCoordinator = this.readModelCoordinator
|
|
173
184
|
? this.readModelCoordinator
|
|
174
|
-
: new ReadModelCoordinator(eventBus, readModelInstances,
|
|
175
|
-
|
|
185
|
+
: new ReadModelCoordinator(eventBus, readModelInstances, [
|
|
186
|
+
subscriptionNotificationReadModel,
|
|
187
|
+
]);
|
|
188
|
+
const reactor = new Reactor(this.logger, driveServer, consistencyAwareStorage, queue, jobTracker, readModelCoordinator, this.features, documentView, documentIndexer, operationStore);
|
|
176
189
|
let syncModule = undefined;
|
|
177
190
|
if (this.syncBuilder) {
|
|
178
|
-
syncModule = this.syncBuilder.buildModule(reactor, operationIndex, eventBus, database);
|
|
191
|
+
syncModule = this.syncBuilder.buildModule(reactor, this.logger, operationIndex, eventBus, database);
|
|
179
192
|
await syncModule.syncManager.startup();
|
|
180
193
|
}
|
|
181
194
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,IAAI,mBAAmB,EACrC,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"reactor-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ISigner } from "document-model";
|
|
2
1
|
import type { IEventBus } from "#events/interfaces.js";
|
|
2
|
+
import type { ILogger } from "#logging/types.js";
|
|
3
|
+
import type { ISigner } from "document-model";
|
|
3
4
|
import { ReactorClient } from "../client/reactor-client.js";
|
|
4
5
|
import { type IJobAwaiter } from "../shared/awaiter.js";
|
|
5
6
|
import type { SignerConfig } from "../signer/types.js";
|
|
@@ -11,6 +12,7 @@ import type { IReactor, ReactorClientModule } from "./types.js";
|
|
|
11
12
|
* Builder class for constructing ReactorClient instances with proper configuration
|
|
12
13
|
*/
|
|
13
14
|
export declare class ReactorClientBuilder {
|
|
15
|
+
private logger?;
|
|
14
16
|
private reactorBuilder?;
|
|
15
17
|
private reactor?;
|
|
16
18
|
private eventBus?;
|
|
@@ -19,6 +21,12 @@ export declare class ReactorClientBuilder {
|
|
|
19
21
|
private signatureVerifier?;
|
|
20
22
|
private subscriptionManager?;
|
|
21
23
|
private jobAwaiter?;
|
|
24
|
+
/**
|
|
25
|
+
* Sets the logger for the ReactorClient.
|
|
26
|
+
* @param logger - The logger to use.
|
|
27
|
+
* @returns The ReactorClientBuilder instance.
|
|
28
|
+
*/
|
|
29
|
+
withLogger(logger: ILogger): this;
|
|
22
30
|
/**
|
|
23
31
|
* Either this or withReactor must be set.
|
|
24
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-client-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-client-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reactor-client-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-client-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAiB,MAAM,YAAY,CAAC;AAE/E;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAC,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAC,CAA8B;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAc;IAEjC;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKxC;;OAEG;IACI,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAS/D;;OAEG;IACI,WAAW,CAChB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,gBAAgB,GAChC,IAAI;IAWP;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAUhD,uBAAuB,CAC5B,mBAAmB,EAAE,2BAA2B,GAC/C,IAAI;IAKA,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAKvC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;IAK/B,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;CA8DzD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ConsoleLogger } from "#logging/console.js";
|
|
1
2
|
import { ReactorClient } from "../client/reactor-client.js";
|
|
2
3
|
import { JobAwaiter } from "../shared/awaiter.js";
|
|
3
4
|
import { PassthroughSigner } from "../signer/passthrough-signer.js";
|
|
@@ -7,6 +8,7 @@ import { ReactorSubscriptionManager } from "../subs/react-subscription-manager.j
|
|
|
7
8
|
* Builder class for constructing ReactorClient instances with proper configuration
|
|
8
9
|
*/
|
|
9
10
|
export class ReactorClientBuilder {
|
|
11
|
+
logger;
|
|
10
12
|
reactorBuilder;
|
|
11
13
|
reactor;
|
|
12
14
|
eventBus;
|
|
@@ -15,6 +17,15 @@ export class ReactorClientBuilder {
|
|
|
15
17
|
signatureVerifier;
|
|
16
18
|
subscriptionManager;
|
|
17
19
|
jobAwaiter;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the logger for the ReactorClient.
|
|
22
|
+
* @param logger - The logger to use.
|
|
23
|
+
* @returns The ReactorClientBuilder instance.
|
|
24
|
+
*/
|
|
25
|
+
withLogger(logger) {
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
18
29
|
/**
|
|
19
30
|
* Either this or withReactor must be set.
|
|
20
31
|
*/
|
|
@@ -65,6 +76,9 @@ export class ReactorClientBuilder {
|
|
|
65
76
|
return module.client;
|
|
66
77
|
}
|
|
67
78
|
async buildModule() {
|
|
79
|
+
if (!this.logger) {
|
|
80
|
+
this.logger = new ConsoleLogger(["reactor-client"]);
|
|
81
|
+
}
|
|
68
82
|
let reactor;
|
|
69
83
|
let eventBus;
|
|
70
84
|
let documentIndexer;
|
|
@@ -93,7 +107,7 @@ export class ReactorClientBuilder {
|
|
|
93
107
|
new ReactorSubscriptionManager(new DefaultSubscriptionErrorHandler());
|
|
94
108
|
const jobAwaiter = this.jobAwaiter ??
|
|
95
109
|
new JobAwaiter(eventBus, (jobId, signal) => reactor.getJobStatus(jobId, signal));
|
|
96
|
-
const client = new ReactorClient(reactor, signer, subscriptionManager, jobAwaiter, documentIndexer);
|
|
110
|
+
const client = new ReactorClient(this.logger, reactor, signer, subscriptionManager, jobAwaiter, documentIndexer);
|
|
97
111
|
return {
|
|
98
112
|
client,
|
|
99
113
|
reactor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-client-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-client-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reactor-client-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-client-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ILogger } from "#logging/types.js";
|
|
1
2
|
import type { BaseDocumentDriveServer } from "document-drive";
|
|
2
3
|
import type { Action, DocumentModelModule, ISigner, Operation, PHDocument } from "document-model";
|
|
3
4
|
import type { IJobTracker } from "../job-tracker/interfaces.js";
|
|
@@ -11,6 +12,7 @@ import type { BatchExecutionRequest, BatchExecutionResult, IReactor, ReactorFeat
|
|
|
11
12
|
* for the new Reactor architecture.
|
|
12
13
|
*/
|
|
13
14
|
export declare class Reactor implements IReactor {
|
|
15
|
+
private logger;
|
|
14
16
|
private driveServer;
|
|
15
17
|
private documentStorage;
|
|
16
18
|
private shutdownStatus;
|
|
@@ -22,7 +24,7 @@ export declare class Reactor implements IReactor {
|
|
|
22
24
|
private documentView;
|
|
23
25
|
private _documentIndexer;
|
|
24
26
|
private operationStore;
|
|
25
|
-
constructor(driveServer: BaseDocumentDriveServer, documentStorage: IConsistencyAwareStorage, queue: IQueue, jobTracker: IJobTracker, readModelCoordinator: IReadModelCoordinator, features: ReactorFeatures, documentView: IDocumentView, documentIndexer: IDocumentIndexer, operationStore: IOperationStore);
|
|
27
|
+
constructor(logger: ILogger, driveServer: BaseDocumentDriveServer, documentStorage: IConsistencyAwareStorage, queue: IQueue, jobTracker: IJobTracker, readModelCoordinator: IReadModelCoordinator, features: ReactorFeatures, documentView: IDocumentView, documentIndexer: IDocumentIndexer, operationStore: IOperationStore);
|
|
26
28
|
/**
|
|
27
29
|
* Signals that the reactor should shutdown.
|
|
28
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/reactor.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { addRelationshipAction, createDocumentAction, deleteDocumentAction, removeRelationshipAction, upgradeDocumentAction, } from "#actions/index.js";
|
|
1
2
|
import { AbortError } from "document-drive";
|
|
2
3
|
import { v4 as uuidv4 } from "uuid";
|
|
3
4
|
import { createMutableShutdownStatus } from "../shared/factories.js";
|
|
@@ -9,6 +10,7 @@ import { filterByType, getSharedScope, signAction, signActions, toErrorInfo, top
|
|
|
9
10
|
* for the new Reactor architecture.
|
|
10
11
|
*/
|
|
11
12
|
export class Reactor {
|
|
13
|
+
logger;
|
|
12
14
|
driveServer;
|
|
13
15
|
documentStorage;
|
|
14
16
|
shutdownStatus;
|
|
@@ -20,8 +22,9 @@ export class Reactor {
|
|
|
20
22
|
documentView;
|
|
21
23
|
_documentIndexer;
|
|
22
24
|
operationStore;
|
|
23
|
-
constructor(driveServer, documentStorage, queue, jobTracker, readModelCoordinator, features, documentView, documentIndexer, operationStore) {
|
|
25
|
+
constructor(logger, driveServer, documentStorage, queue, jobTracker, readModelCoordinator, features, documentView, documentIndexer, operationStore) {
|
|
24
26
|
// Store required dependencies
|
|
27
|
+
this.logger = logger;
|
|
25
28
|
this.driveServer = driveServer;
|
|
26
29
|
this.documentStorage = documentStorage;
|
|
27
30
|
this.queue = queue;
|
|
@@ -35,12 +38,14 @@ export class Reactor {
|
|
|
35
38
|
const [status, setter] = createMutableShutdownStatus(false);
|
|
36
39
|
this.shutdownStatus = status;
|
|
37
40
|
this.setShutdown = setter;
|
|
41
|
+
this.logger.verbose("Reactor({ legacyStorage: @legacy })", features.legacyStorageEnabled);
|
|
38
42
|
this.readModelCoordinator.start();
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
41
45
|
* Signals that the reactor should shutdown.
|
|
42
46
|
*/
|
|
43
47
|
kill() {
|
|
48
|
+
this.logger.verbose("kill()");
|
|
44
49
|
// Mark the reactor as shutdown
|
|
45
50
|
this.setShutdown(true);
|
|
46
51
|
// Stop the read model coordinator
|
|
@@ -53,6 +58,7 @@ export class Reactor {
|
|
|
53
58
|
* Retrieves a list of document model specifications
|
|
54
59
|
*/
|
|
55
60
|
getDocumentModels(namespace, paging, signal) {
|
|
61
|
+
this.logger.verbose("getDocumentModels(@namespace, @paging)", namespace, paging);
|
|
56
62
|
// Get document model modules from the drive server + filter
|
|
57
63
|
const modules = this.driveServer.getDocumentModelModules();
|
|
58
64
|
const filteredModels = modules.filter((module) => !namespace || module.documentModel.global.id.startsWith(namespace));
|
|
@@ -80,6 +86,7 @@ export class Reactor {
|
|
|
80
86
|
* Retrieves a specific PHDocument by id
|
|
81
87
|
*/
|
|
82
88
|
async get(id, view, consistencyToken, signal) {
|
|
89
|
+
this.logger.verbose("get(@id, @view)", id, view);
|
|
83
90
|
if (this.features.legacyStorageEnabled) {
|
|
84
91
|
const document = await this.documentStorage.get(id, consistencyToken, signal);
|
|
85
92
|
if (signal?.aborted) {
|
|
@@ -119,6 +126,7 @@ export class Reactor {
|
|
|
119
126
|
* Retrieves a specific PHDocument by slug
|
|
120
127
|
*/
|
|
121
128
|
async getBySlug(slug, view, consistencyToken, signal) {
|
|
129
|
+
this.logger.verbose("getBySlug(@slug, @view)", slug, view);
|
|
122
130
|
if (this.features.legacyStorageEnabled) {
|
|
123
131
|
let ids;
|
|
124
132
|
try {
|
|
@@ -147,6 +155,7 @@ export class Reactor {
|
|
|
147
155
|
* Retrieves a specific PHDocument by identifier (either id or slug)
|
|
148
156
|
*/
|
|
149
157
|
async getByIdOrSlug(identifier, view, consistencyToken, signal) {
|
|
158
|
+
this.logger.verbose("getByIdOrSlug(@identifier, @view)", identifier, view);
|
|
150
159
|
if (this.features.legacyStorageEnabled) {
|
|
151
160
|
try {
|
|
152
161
|
return await this.get(identifier, view, consistencyToken, signal);
|
|
@@ -184,6 +193,7 @@ export class Reactor {
|
|
|
184
193
|
* Retrieves the operations for a document
|
|
185
194
|
*/
|
|
186
195
|
async getOperations(documentId, view, paging, consistencyToken, signal) {
|
|
196
|
+
this.logger.verbose("getOperations(@documentId, @view, @paging)", documentId, view, paging);
|
|
187
197
|
if (this.features.legacyStorageEnabled) {
|
|
188
198
|
// Use storage directly to get the document
|
|
189
199
|
const document = await this.documentStorage.get(documentId, consistencyToken, signal);
|
|
@@ -257,6 +267,7 @@ export class Reactor {
|
|
|
257
267
|
* Filters documents by criteria and returns a list of them
|
|
258
268
|
*/
|
|
259
269
|
async find(search, view, paging, consistencyToken, signal) {
|
|
270
|
+
this.logger.verbose("find(@search, @view, @paging)", search, view, paging);
|
|
260
271
|
let results;
|
|
261
272
|
if (search.ids) {
|
|
262
273
|
if (search.slugs && search.slugs.length > 0) {
|
|
@@ -294,51 +305,35 @@ export class Reactor {
|
|
|
294
305
|
* Creates a document
|
|
295
306
|
*/
|
|
296
307
|
async create(document, signer, signal, meta) {
|
|
308
|
+
this.logger.verbose("create(@id, @type, @slug)", document.header.id, document.header.documentType, document.header.slug);
|
|
297
309
|
const createdAtUtcIso = new Date().toISOString();
|
|
298
310
|
if (signal?.aborted) {
|
|
299
311
|
throw new AbortError();
|
|
300
312
|
}
|
|
301
|
-
|
|
302
|
-
const input = {
|
|
313
|
+
const createInput = {
|
|
303
314
|
model: document.header.documentType,
|
|
304
315
|
version: 0,
|
|
305
316
|
documentId: document.header.id,
|
|
317
|
+
signing: {
|
|
318
|
+
signature: document.header.id,
|
|
319
|
+
publicKey: document.header.sig.publicKey,
|
|
320
|
+
nonce: document.header.sig.nonce,
|
|
321
|
+
createdAtUtcIso: document.header.createdAtUtcIso,
|
|
322
|
+
documentType: document.header.documentType,
|
|
323
|
+
},
|
|
324
|
+
slug: document.header.slug,
|
|
325
|
+
name: document.header.name,
|
|
326
|
+
branch: document.header.branch,
|
|
327
|
+
meta: document.header.meta,
|
|
306
328
|
};
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
publicKey: document.header.sig.publicKey,
|
|
311
|
-
nonce: document.header.sig.nonce,
|
|
312
|
-
createdAtUtcIso: document.header.createdAtUtcIso,
|
|
313
|
-
documentType: document.header.documentType,
|
|
314
|
-
};
|
|
315
|
-
// Add optional mutable header fields (always include even if empty/undefined)
|
|
316
|
-
input.slug = document.header.slug;
|
|
317
|
-
input.name = document.header.name;
|
|
318
|
-
input.branch = document.header.branch;
|
|
319
|
-
input.meta = document.header.meta;
|
|
320
|
-
const createAction = {
|
|
321
|
-
id: `${document.header.id}-create`,
|
|
322
|
-
type: "CREATE_DOCUMENT",
|
|
323
|
-
scope: "document",
|
|
324
|
-
timestampUtcMs: new Date().toISOString(),
|
|
325
|
-
input,
|
|
326
|
-
};
|
|
327
|
-
// Create an UPGRADE_DOCUMENT action to set the initial state
|
|
328
|
-
const upgradeInput = {
|
|
329
|
+
const createAction = createDocumentAction(createInput);
|
|
330
|
+
const upgradeAction = upgradeDocumentAction({
|
|
331
|
+
documentId: document.header.id,
|
|
329
332
|
model: document.header.documentType,
|
|
330
333
|
fromVersion: 0,
|
|
331
334
|
toVersion: 1,
|
|
332
|
-
documentId: document.header.id,
|
|
333
335
|
initialState: document.state,
|
|
334
|
-
};
|
|
335
|
-
const upgradeAction = {
|
|
336
|
-
id: `${document.header.id}-upgrade`,
|
|
337
|
-
type: "UPGRADE_DOCUMENT",
|
|
338
|
-
scope: "document",
|
|
339
|
-
timestampUtcMs: new Date().toISOString(),
|
|
340
|
-
input: upgradeInput,
|
|
341
|
-
};
|
|
336
|
+
});
|
|
342
337
|
// Sign actions if signer is provided
|
|
343
338
|
let actions = [createAction, upgradeAction];
|
|
344
339
|
if (signer) {
|
|
@@ -380,20 +375,12 @@ export class Reactor {
|
|
|
380
375
|
* Deletes a document
|
|
381
376
|
*/
|
|
382
377
|
async deleteDocument(id, signer, signal, meta) {
|
|
378
|
+
this.logger.verbose("deleteDocument(@id)", id);
|
|
383
379
|
const createdAtUtcIso = new Date().toISOString();
|
|
384
380
|
if (signal?.aborted) {
|
|
385
381
|
throw new AbortError();
|
|
386
382
|
}
|
|
387
|
-
|
|
388
|
-
documentId: id,
|
|
389
|
-
};
|
|
390
|
-
let action = {
|
|
391
|
-
id: `${id}-delete`,
|
|
392
|
-
type: "DELETE_DOCUMENT",
|
|
393
|
-
scope: "document",
|
|
394
|
-
timestampUtcMs: new Date().toISOString(),
|
|
395
|
-
input: deleteInput,
|
|
396
|
-
};
|
|
383
|
+
let action = deleteDocumentAction(id);
|
|
397
384
|
// Sign action if signer is provided
|
|
398
385
|
if (signer) {
|
|
399
386
|
action = await signAction(action, signer, signal);
|
|
@@ -431,6 +418,7 @@ export class Reactor {
|
|
|
431
418
|
* Applies a list of actions to a document
|
|
432
419
|
*/
|
|
433
420
|
async execute(docId, branch, actions, signal, meta) {
|
|
421
|
+
this.logger.verbose("execute(@docId, @branch, @actions)", docId, branch, actions);
|
|
434
422
|
if (signal?.aborted) {
|
|
435
423
|
throw new AbortError();
|
|
436
424
|
}
|
|
@@ -478,6 +466,7 @@ export class Reactor {
|
|
|
478
466
|
* operations.
|
|
479
467
|
*/
|
|
480
468
|
async load(docId, branch, operations, signal, meta) {
|
|
469
|
+
this.logger.verbose("load(@docId, @branch, @count, @operations)", docId, branch, operations.length, operations);
|
|
481
470
|
if (signal?.aborted) {
|
|
482
471
|
throw new AbortError();
|
|
483
472
|
}
|
|
@@ -528,6 +517,7 @@ export class Reactor {
|
|
|
528
517
|
* Applies multiple mutations across documents with dependency management
|
|
529
518
|
*/
|
|
530
519
|
async executeBatch(request, signal, meta) {
|
|
520
|
+
this.logger.verbose("executeBatch(@count jobs)", request.jobs.length);
|
|
531
521
|
if (signal?.aborted) {
|
|
532
522
|
throw new AbortError();
|
|
533
523
|
}
|
|
@@ -609,20 +599,11 @@ export class Reactor {
|
|
|
609
599
|
* Adds multiple documents as children to another
|
|
610
600
|
*/
|
|
611
601
|
async addChildren(parentId, documentIds, branch = "main", signer, signal) {
|
|
602
|
+
this.logger.verbose("addChildren(@parentId, @count children, @branch)", parentId, documentIds.length, branch);
|
|
612
603
|
if (signal?.aborted) {
|
|
613
604
|
throw new AbortError();
|
|
614
605
|
}
|
|
615
|
-
let actions = documentIds.map((childId) => (
|
|
616
|
-
id: uuidv4(),
|
|
617
|
-
type: "ADD_RELATIONSHIP",
|
|
618
|
-
scope: "document",
|
|
619
|
-
timestampUtcMs: new Date().toISOString(),
|
|
620
|
-
input: {
|
|
621
|
-
sourceId: parentId,
|
|
622
|
-
targetId: childId,
|
|
623
|
-
relationshipType: "child",
|
|
624
|
-
},
|
|
625
|
-
}));
|
|
606
|
+
let actions = documentIds.map((childId) => addRelationshipAction(parentId, childId, "child"));
|
|
626
607
|
// Sign actions if signer is provided
|
|
627
608
|
if (signer) {
|
|
628
609
|
actions = await signActions(actions, signer, signal);
|
|
@@ -633,20 +614,11 @@ export class Reactor {
|
|
|
633
614
|
* Removes multiple documents as children from another
|
|
634
615
|
*/
|
|
635
616
|
async removeChildren(parentId, documentIds, branch = "main", signer, signal) {
|
|
617
|
+
this.logger.verbose("removeChildren(@parentId, @count children, @branch)", parentId, documentIds.length, branch);
|
|
636
618
|
if (signal?.aborted) {
|
|
637
619
|
throw new AbortError();
|
|
638
620
|
}
|
|
639
|
-
let actions = documentIds.map((childId) => (
|
|
640
|
-
id: uuidv4(),
|
|
641
|
-
type: "REMOVE_RELATIONSHIP",
|
|
642
|
-
scope: "document",
|
|
643
|
-
timestampUtcMs: new Date().toISOString(),
|
|
644
|
-
input: {
|
|
645
|
-
sourceId: parentId,
|
|
646
|
-
targetId: childId,
|
|
647
|
-
relationshipType: "child",
|
|
648
|
-
},
|
|
649
|
-
}));
|
|
621
|
+
let actions = documentIds.map((childId) => removeRelationshipAction(parentId, childId, "child"));
|
|
650
622
|
// Sign actions if signer is provided
|
|
651
623
|
if (signer) {
|
|
652
624
|
actions = await signActions(actions, signer, signal);
|
|
@@ -657,6 +629,7 @@ export class Reactor {
|
|
|
657
629
|
* Retrieves the status of a job
|
|
658
630
|
*/
|
|
659
631
|
getJobStatus(jobId, signal) {
|
|
632
|
+
this.logger.verbose("getJobStatus(@jobId)", jobId);
|
|
660
633
|
if (signal?.aborted) {
|
|
661
634
|
throw new AbortError();
|
|
662
635
|
}
|
|
@@ -683,6 +656,7 @@ export class Reactor {
|
|
|
683
656
|
* Finds documents by their IDs
|
|
684
657
|
*/
|
|
685
658
|
async findByIds(ids, view, paging, consistencyToken, signal) {
|
|
659
|
+
this.logger.verbose("findByIds(@count ids)", ids.length);
|
|
686
660
|
if (consistencyToken) {
|
|
687
661
|
await this.documentView.waitForConsistency(consistencyToken, undefined, signal);
|
|
688
662
|
}
|
|
@@ -770,6 +744,7 @@ export class Reactor {
|
|
|
770
744
|
* Finds documents by their slugs
|
|
771
745
|
*/
|
|
772
746
|
async findBySlugs(slugs, view, paging, consistencyToken, signal) {
|
|
747
|
+
this.logger.verbose("findBySlugs(@count slugs)", slugs.length);
|
|
773
748
|
if (consistencyToken) {
|
|
774
749
|
await this.documentView.waitForConsistency(consistencyToken, undefined, signal);
|
|
775
750
|
}
|
|
@@ -878,6 +853,7 @@ export class Reactor {
|
|
|
878
853
|
* Finds documents by parent ID
|
|
879
854
|
*/
|
|
880
855
|
async findByParentId(parentId, view, paging, signal) {
|
|
856
|
+
this.logger.verbose("findByParentId(@parentId)", parentId);
|
|
881
857
|
// Get child relationships from indexer
|
|
882
858
|
const relationships = await this._documentIndexer.getOutgoing(parentId, ["child"], undefined, signal);
|
|
883
859
|
if (signal?.aborted) {
|
|
@@ -933,6 +909,7 @@ export class Reactor {
|
|
|
933
909
|
* Finds documents by type
|
|
934
910
|
*/
|
|
935
911
|
async findByType(type, view, paging, consistencyToken, signal) {
|
|
912
|
+
this.logger.verbose("findByType(@type)", type);
|
|
936
913
|
if (consistencyToken) {
|
|
937
914
|
await this.documentView.waitForConsistency(consistencyToken, undefined, signal);
|
|
938
915
|
}
|