@powerhousedao/reactor 4.1.0-dev.8 → 4.1.0-dev.81
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/client/reactor-client.d.ts +103 -0
- package/dist/src/client/reactor-client.d.ts.map +1 -0
- package/dist/src/client/reactor-client.js +184 -0
- package/dist/src/client/reactor-client.js.map +1 -0
- package/dist/src/client/types.d.ts +213 -0
- package/dist/src/client/types.d.ts.map +1 -0
- package/dist/src/client/types.js +14 -0
- package/dist/src/client/types.js.map +1 -0
- package/dist/src/core/builder.d.ts +20 -0
- package/dist/src/core/builder.d.ts.map +1 -0
- package/dist/src/core/builder.js +47 -0
- package/dist/src/core/builder.js.map +1 -0
- package/dist/src/core/reactor.d.ts +92 -0
- package/dist/src/core/reactor.d.ts.map +1 -0
- package/dist/src/core/reactor.js +647 -0
- package/dist/src/core/reactor.js.map +1 -0
- package/dist/src/core/types.d.ts +121 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/utils.d.ts +11 -0
- package/dist/src/core/utils.d.ts.map +1 -0
- package/dist/src/core/utils.js +31 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +3 -3
- package/dist/src/events/event-bus.d.ts.map +1 -1
- package/dist/src/events/event-bus.js.map +1 -1
- package/dist/src/events/interfaces.d.ts +1 -1
- package/dist/src/events/interfaces.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +15 -1
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +6 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/executor/interfaces.d.ts +31 -54
- package/dist/src/executor/interfaces.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +30 -0
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor-manager.js +178 -0
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
- package/dist/src/executor/simple-job-executor.d.ts +60 -0
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor.js +537 -0
- package/dist/src/executor/simple-job-executor.js.map +1 -0
- package/dist/src/executor/types.d.ts +24 -8
- 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 +26 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +33 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
- package/dist/src/job-tracker/index.d.ts +3 -0
- package/dist/src/job-tracker/index.d.ts.map +1 -0
- package/dist/src/job-tracker/index.js +2 -0
- package/dist/src/job-tracker/index.js.map +1 -0
- package/dist/src/job-tracker/interfaces.d.ts +41 -0
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
- package/dist/src/job-tracker/interfaces.js +2 -0
- package/dist/src/job-tracker/interfaces.js.map +1 -0
- package/dist/src/queue/interfaces.d.ts +45 -5
- package/dist/src/queue/interfaces.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +24 -0
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
- package/dist/src/queue/job-execution-handle.js +62 -0
- package/dist/src/queue/job-execution-handle.js.map +1 -0
- package/dist/src/queue/queue.d.ts +54 -5
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/queue.js +265 -36
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/types.d.ts +30 -5
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js +12 -0
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +38 -0
- package/dist/src/read-models/coordinator.d.ts.map +1 -0
- package/dist/src/read-models/coordinator.js +62 -0
- package/dist/src/read-models/coordinator.js.map +1 -0
- package/dist/src/read-models/document-view.d.ts +20 -0
- package/dist/src/read-models/document-view.d.ts.map +1 -0
- package/dist/src/read-models/document-view.js +363 -0
- package/dist/src/read-models/document-view.js.map +1 -0
- package/dist/src/read-models/interfaces.d.ts +29 -0
- package/dist/src/read-models/interfaces.d.ts.map +1 -0
- package/dist/src/read-models/interfaces.js +2 -0
- package/dist/src/read-models/interfaces.js.map +1 -0
- package/dist/src/read-models/types.d.ts +46 -0
- package/dist/src/read-models/types.d.ts.map +1 -0
- package/dist/src/read-models/types.js +2 -0
- package/dist/src/read-models/types.js.map +1 -0
- package/dist/src/registry/implementation.d.ts +62 -0
- package/dist/src/registry/implementation.d.ts.map +1 -0
- package/dist/src/registry/implementation.js +96 -0
- package/dist/src/registry/implementation.js.map +1 -0
- package/dist/src/registry/index.d.ts +3 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/index.js +2 -0
- package/dist/src/registry/index.js.map +1 -0
- package/dist/src/registry/interfaces.d.ts +39 -0
- package/dist/src/registry/interfaces.d.ts.map +1 -0
- package/dist/src/registry/interfaces.js +2 -0
- package/dist/src/registry/interfaces.js.map +1 -0
- package/dist/src/shared/awaiter.d.ts +32 -0
- package/dist/src/shared/awaiter.d.ts.map +1 -0
- package/dist/src/shared/awaiter.js +132 -0
- package/dist/src/shared/awaiter.js.map +1 -0
- package/dist/src/shared/errors.d.ts +9 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +18 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/factories.d.ts +16 -0
- package/dist/src/shared/factories.d.ts.map +1 -0
- package/dist/src/shared/factories.js +33 -0
- package/dist/src/shared/factories.js.map +1 -0
- package/dist/src/shared/types.d.ts +91 -19
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +35 -1
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/shared/utils.d.ts +3 -0
- package/dist/src/shared/utils.d.ts.map +1 -0
- package/dist/src/shared/utils.js +8 -0
- package/dist/src/shared/utils.js.map +1 -0
- package/dist/src/signer/passthrough-signer.d.ts +6 -0
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
- package/dist/src/signer/passthrough-signer.js +6 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -0
- package/dist/src/signer/types.d.ts +15 -0
- package/dist/src/signer/types.d.ts.map +1 -0
- package/dist/src/signer/types.js +2 -0
- package/dist/src/signer/types.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +108 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +19 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/kysely/store.d.ts +15 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -0
- package/dist/src/storage/kysely/store.js +197 -0
- package/dist/src/storage/kysely/store.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +26 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.js +2 -0
- package/dist/src/storage/kysely/types.js.map +1 -0
- package/dist/src/storage/txn.d.ts +15 -0
- package/dist/src/storage/txn.d.ts.map +1 -0
- package/dist/src/storage/txn.js +42 -0
- package/dist/src/storage/txn.js.map +1 -0
- package/dist/src/subs/default-error-handler.d.ts +13 -0
- package/dist/src/subs/default-error-handler.d.ts.map +1 -0
- package/dist/src/subs/default-error-handler.js +27 -0
- package/dist/src/subs/default-error-handler.js.map +1 -0
- package/dist/src/subs/react-subscription-manager.d.ts +45 -0
- package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
- package/dist/src/subs/react-subscription-manager.js +185 -0
- package/dist/src/subs/react-subscription-manager.js.map +1 -0
- package/dist/src/subs/types.d.ts +64 -0
- package/dist/src/subs/types.d.ts.map +1 -0
- package/dist/src/subs/types.js +2 -0
- package/dist/src/subs/types.js.map +1 -0
- package/dist/src/utils/reshuffle.d.ts +30 -0
- package/dist/src/utils/reshuffle.d.ts.map +1 -0
- package/dist/src/utils/reshuffle.js +47 -0
- package/dist/src/utils/reshuffle.js.map +1 -0
- package/package.json +15 -6
- package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
- package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
- package/dist/bench/end-to-end-flow.bench.js +0 -256
- package/dist/bench/end-to-end-flow.bench.js.map +0 -1
- package/dist/bench/event-bus.bench.d.ts +0 -2
- package/dist/bench/event-bus.bench.d.ts.map +0 -1
- package/dist/bench/event-bus.bench.js +0 -238
- package/dist/bench/event-bus.bench.js.map +0 -1
- package/dist/bench/queue-only.bench.d.ts +0 -2
- package/dist/bench/queue-only.bench.d.ts.map +0 -1
- package/dist/bench/queue-only.bench.js +0 -40
- package/dist/bench/queue-only.bench.js.map +0 -1
- package/dist/bench/reactor-throughput.bench.d.ts +0 -2
- package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
- package/dist/bench/reactor-throughput.bench.js +0 -137
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/src/executor/job-executor.d.ts +0 -62
- package/dist/src/executor/job-executor.d.ts.map +0 -1
- package/dist/src/executor/job-executor.js +0 -325
- package/dist/src/executor/job-executor.js.map +0 -1
- package/dist/test/event-bus.test.d.ts +0 -2
- package/dist/test/event-bus.test.d.ts.map +0 -1
- package/dist/test/event-bus.test.js +0 -532
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/job-executor.test.d.ts +0 -2
- package/dist/test/job-executor.test.d.ts.map +0 -1
- package/dist/test/job-executor.test.js +0 -581
- package/dist/test/job-executor.test.js.map +0 -1
- package/dist/test/queue.test.d.ts +0 -2
- package/dist/test/queue.test.d.ts.map +0 -1
- package/dist/test/queue.test.js +0 -396
- package/dist/test/queue.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Operation } from "document-model";
|
|
2
|
+
import type { Job } from "../queue/types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Represents the result of a job execution
|
|
4
5
|
*/
|
|
@@ -7,12 +8,14 @@ export type JobResult = {
|
|
|
7
8
|
job: Job;
|
|
8
9
|
/** Whether the job executed successfully */
|
|
9
10
|
success: boolean;
|
|
10
|
-
/** Error
|
|
11
|
-
error?:
|
|
11
|
+
/** Error if the job failed */
|
|
12
|
+
error?: Error;
|
|
13
|
+
/** The operations generated from the actions (if successful) */
|
|
14
|
+
operations?: Operation[];
|
|
12
15
|
/** Timestamp when the job execution completed */
|
|
13
|
-
completedAt
|
|
16
|
+
completedAt?: string;
|
|
14
17
|
/** Duration of job execution in milliseconds */
|
|
15
|
-
duration
|
|
18
|
+
duration?: number;
|
|
16
19
|
/** Any additional metadata from the execution */
|
|
17
20
|
metadata?: Record<string, any>;
|
|
18
21
|
};
|
|
@@ -23,11 +26,11 @@ export type JobExecutorConfig = {
|
|
|
23
26
|
/** Maximum number of concurrent jobs to execute */
|
|
24
27
|
maxConcurrency?: number;
|
|
25
28
|
/** Maximum time in milliseconds a job can run before being considered timed out */
|
|
26
|
-
|
|
29
|
+
jobTimeoutMs?: number;
|
|
27
30
|
/** Base delay in milliseconds for exponential backoff retries */
|
|
28
|
-
|
|
31
|
+
retryBaseDelayMs?: number;
|
|
29
32
|
/** Maximum delay in milliseconds for exponential backoff retries */
|
|
30
|
-
|
|
33
|
+
retryMaxDelayMs?: number;
|
|
31
34
|
};
|
|
32
35
|
/**
|
|
33
36
|
* Event types for the job executor
|
|
@@ -64,4 +67,17 @@ export type ExecutorStoppedEvent = {
|
|
|
64
67
|
stoppedAt: string;
|
|
65
68
|
graceful: boolean;
|
|
66
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Status information for the job executor manager
|
|
72
|
+
*/
|
|
73
|
+
export type ExecutorManagerStatus = {
|
|
74
|
+
/** Whether the manager is currently running */
|
|
75
|
+
isRunning: boolean;
|
|
76
|
+
/** Number of executor instances managed */
|
|
77
|
+
numExecutors: number;
|
|
78
|
+
/** Number of jobs currently being processed */
|
|
79
|
+
activeJobs: number;
|
|
80
|
+
/** Total number of jobs processed since start */
|
|
81
|
+
totalJobsProcessed: number;
|
|
82
|
+
};
|
|
67
83
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,gCAAgC;IAChC,GAAG,EAAE,GAAG,CAAC;IAET,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAEzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;CAMxB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IAEnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"AA8CA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;CACf,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,9 +1,32 @@
|
|
|
1
|
+
export { ReactorClient } from "./client/reactor-client.js";
|
|
2
|
+
export { type IReactorClient } from "./client/types.js";
|
|
3
|
+
export { ReactorClientBuilder } from "./core/builder.js";
|
|
4
|
+
export { Reactor } from "./core/reactor.js";
|
|
5
|
+
export { type IReactor } from "./core/types.js";
|
|
6
|
+
export { JobAwaiter, type IJobAwaiter } from "./shared/awaiter.js";
|
|
7
|
+
export { createMutableShutdownStatus } from "./shared/factories.js";
|
|
8
|
+
export { JobStatus, PropagationMode, RelationshipChangeType, type JobInfo, type PagedResults, type PagingOptions, type SearchFilter, type ShutdownStatus, type ViewFilter, } from "./shared/types.js";
|
|
9
|
+
export { DefaultSubscriptionErrorHandler } from "./subs/default-error-handler.js";
|
|
10
|
+
export { ReactorSubscriptionManager } from "./subs/react-subscription-manager.js";
|
|
11
|
+
export { type IReactorSubscriptionManager, type ISubscriptionErrorHandler, type SubscriptionErrorContext, } from "./subs/types.js";
|
|
1
12
|
export { EventBus } from "./events/event-bus.js";
|
|
2
13
|
export { type IEventBus } from "./events/interfaces.js";
|
|
3
|
-
export { EventBusAggregateError, type Unsubscribe } from "./events/types.js";
|
|
14
|
+
export { EventBusAggregateError, OperationEventTypes, type OperationWrittenEvent, type Unsubscribe, } from "./events/types.js";
|
|
4
15
|
export { type IQueue } from "./queue/interfaces.js";
|
|
5
16
|
export { InMemoryQueue } from "./queue/queue.js";
|
|
6
17
|
export { QueueEventTypes, type Job, type JobAvailableEvent, } from "./queue/types.js";
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
18
|
+
export { type IJobTracker } from "./job-tracker/interfaces.js";
|
|
19
|
+
export { InMemoryJobTracker } from "./job-tracker/in-memory-job-tracker.js";
|
|
20
|
+
export { type IJobExecutor, type IJobExecutorManager, } from "./executor/interfaces.js";
|
|
21
|
+
export { SimpleJobExecutorManager, type JobExecutorFactory, } from "./executor/simple-job-executor-manager.js";
|
|
22
|
+
export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
|
|
23
|
+
export { JobExecutorEventTypes, type ExecutorStartedEvent, type ExecutorStoppedEvent, type JobCompletedEvent, type JobExecutorConfig, type JobFailedEvent, type JobResult, type JobStartedEvent, } from "./executor/types.js";
|
|
24
|
+
export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, ModuleNotFoundError, type IDocumentModelRegistry, } from "./registry/index.js";
|
|
25
|
+
export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, type AtomicTxn, type DocumentRevisions, type DocumentSnapshot, type IDocumentView, type IOperationStore, type OperationContext, type OperationWithContext, } from "./storage/interfaces.js";
|
|
26
|
+
export { KyselyOperationStore } from "./storage/kysely/store.js";
|
|
27
|
+
export type { Database, OperationTable } from "./storage/kysely/types.js";
|
|
28
|
+
export { type IReadModel, type IReadModelCoordinator, } from "./read-models/interfaces.js";
|
|
29
|
+
export { ReadModelCoordinator } from "./read-models/coordinator.js";
|
|
30
|
+
export { KyselyDocumentView } from "./read-models/document-view.js";
|
|
31
|
+
export type { DocumentViewDatabase, InsertableDocumentSnapshot, } from "./read-models/types.js";
|
|
9
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,39 @@
|
|
|
1
|
+
// Reactor Interface and Implementation
|
|
2
|
+
export { ReactorClient } from "./client/reactor-client.js";
|
|
3
|
+
export {} from "./client/types.js";
|
|
4
|
+
export { ReactorClientBuilder } from "./core/builder.js";
|
|
5
|
+
export { Reactor } from "./core/reactor.js";
|
|
6
|
+
export {} from "./core/types.js";
|
|
7
|
+
export { JobAwaiter } from "./shared/awaiter.js";
|
|
8
|
+
export { createMutableShutdownStatus } from "./shared/factories.js";
|
|
9
|
+
export { JobStatus, PropagationMode, RelationshipChangeType, } from "./shared/types.js";
|
|
10
|
+
// Subscription Manager
|
|
11
|
+
export { DefaultSubscriptionErrorHandler } from "./subs/default-error-handler.js";
|
|
12
|
+
export { ReactorSubscriptionManager } from "./subs/react-subscription-manager.js";
|
|
13
|
+
export {} from "./subs/types.js";
|
|
1
14
|
// Event Bus
|
|
2
15
|
export { EventBus } from "./events/event-bus.js";
|
|
3
|
-
export {
|
|
16
|
+
export {} from "./events/interfaces.js";
|
|
17
|
+
export { EventBusAggregateError, OperationEventTypes, } from "./events/types.js";
|
|
18
|
+
// Queue
|
|
19
|
+
export {} from "./queue/interfaces.js";
|
|
4
20
|
export { InMemoryQueue } from "./queue/queue.js";
|
|
5
21
|
export { QueueEventTypes, } from "./queue/types.js";
|
|
22
|
+
// Job Tracker
|
|
23
|
+
export {} from "./job-tracker/interfaces.js";
|
|
24
|
+
export { InMemoryJobTracker } from "./job-tracker/in-memory-job-tracker.js";
|
|
6
25
|
// Job Executor
|
|
7
|
-
export {
|
|
26
|
+
export {} from "./executor/interfaces.js";
|
|
27
|
+
export { SimpleJobExecutorManager, } from "./executor/simple-job-executor-manager.js";
|
|
28
|
+
export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
|
|
29
|
+
export { JobExecutorEventTypes, } from "./executor/types.js";
|
|
30
|
+
// Document Model Registry
|
|
31
|
+
export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, ModuleNotFoundError, } from "./registry/index.js";
|
|
32
|
+
// Storage
|
|
33
|
+
export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, } from "./storage/interfaces.js";
|
|
34
|
+
export { KyselyOperationStore } from "./storage/kysely/store.js";
|
|
35
|
+
// Read Models
|
|
36
|
+
export {} from "./read-models/interfaces.js";
|
|
37
|
+
export { ReadModelCoordinator } from "./read-models/coordinator.js";
|
|
38
|
+
export { KyselyDocumentView } from "./read-models/document-view.js";
|
|
8
39
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,SAAS,EACT,eAAe,EACf,sBAAsB,GAOvB,MAAM,mBAAmB,CAAC;AAE3B,uBAAuB;AACvB,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAIN,MAAM,iBAAiB,CAAC;AAEzB,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EAAoB,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,eAAe;AACf,OAAO,EAGN,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EACxC,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,GAQtB,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAE7B,UAAU;AACV,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GAQtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,cAAc;AACd,OAAO,EAGN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type JobInfo } from "../shared/types.js";
|
|
2
|
+
import type { IJobTracker } from "./interfaces.js";
|
|
3
|
+
/**
|
|
4
|
+
* In-memory implementation of IJobTracker.
|
|
5
|
+
* Maintains job status in a Map for synchronous access.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InMemoryJobTracker implements IJobTracker {
|
|
8
|
+
private jobs;
|
|
9
|
+
registerJob(jobInfo: JobInfo): void;
|
|
10
|
+
markRunning(jobId: string): void;
|
|
11
|
+
markCompleted(jobId: string, result?: any): void;
|
|
12
|
+
markFailed(jobId: string, error: string): void;
|
|
13
|
+
getJobStatus(jobId: string): JobInfo | null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=in-memory-job-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-job-tracker.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,IAAI,CAA8B;IAE1C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBhC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAyBhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAuB9C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAI5C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { JobStatus } from "../shared/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* In-memory implementation of IJobTracker.
|
|
4
|
+
* Maintains job status in a Map for synchronous access.
|
|
5
|
+
*/
|
|
6
|
+
export class InMemoryJobTracker {
|
|
7
|
+
jobs = new Map();
|
|
8
|
+
registerJob(jobInfo) {
|
|
9
|
+
this.jobs.set(jobInfo.id, { ...jobInfo });
|
|
10
|
+
}
|
|
11
|
+
markRunning(jobId) {
|
|
12
|
+
const job = this.jobs.get(jobId);
|
|
13
|
+
if (!job) {
|
|
14
|
+
// Job not found - might have been registered elsewhere
|
|
15
|
+
// Create minimal job entry
|
|
16
|
+
this.jobs.set(jobId, {
|
|
17
|
+
id: jobId,
|
|
18
|
+
status: JobStatus.RUNNING,
|
|
19
|
+
createdAtUtcIso: new Date().toISOString(),
|
|
20
|
+
});
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Update existing job
|
|
24
|
+
this.jobs.set(jobId, {
|
|
25
|
+
...job,
|
|
26
|
+
status: JobStatus.RUNNING,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
markCompleted(jobId, result) {
|
|
30
|
+
const job = this.jobs.get(jobId);
|
|
31
|
+
if (!job) {
|
|
32
|
+
// Job not found - create minimal completed entry
|
|
33
|
+
this.jobs.set(jobId, {
|
|
34
|
+
id: jobId,
|
|
35
|
+
status: JobStatus.COMPLETED,
|
|
36
|
+
createdAtUtcIso: new Date().toISOString(),
|
|
37
|
+
completedAtUtcIso: new Date().toISOString(),
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
39
|
+
result,
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Update existing job
|
|
44
|
+
this.jobs.set(jobId, {
|
|
45
|
+
...job,
|
|
46
|
+
status: JobStatus.COMPLETED,
|
|
47
|
+
completedAtUtcIso: new Date().toISOString(),
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
49
|
+
result,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
markFailed(jobId, error) {
|
|
53
|
+
const job = this.jobs.get(jobId);
|
|
54
|
+
if (!job) {
|
|
55
|
+
// Job not found - create minimal failed entry
|
|
56
|
+
this.jobs.set(jobId, {
|
|
57
|
+
id: jobId,
|
|
58
|
+
status: JobStatus.FAILED,
|
|
59
|
+
createdAtUtcIso: new Date().toISOString(),
|
|
60
|
+
completedAtUtcIso: new Date().toISOString(),
|
|
61
|
+
error,
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Update existing job
|
|
66
|
+
this.jobs.set(jobId, {
|
|
67
|
+
...job,
|
|
68
|
+
status: JobStatus.FAILED,
|
|
69
|
+
completedAtUtcIso: new Date().toISOString(),
|
|
70
|
+
error,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
getJobStatus(jobId) {
|
|
74
|
+
const job = this.jobs.get(jobId);
|
|
75
|
+
return job ? { ...job } : null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=in-memory-job-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-job-tracker.js","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/job-tracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { JobInfo } from "../shared/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for tracking job lifecycle status.
|
|
4
|
+
* Maintains job state throughout execution: PENDING → RUNNING → COMPLETED/FAILED.
|
|
5
|
+
*/
|
|
6
|
+
export interface IJobTracker {
|
|
7
|
+
/**
|
|
8
|
+
* Register a new job with PENDING status.
|
|
9
|
+
*
|
|
10
|
+
* @param jobInfo - The job information to register
|
|
11
|
+
*/
|
|
12
|
+
registerJob(jobInfo: JobInfo): void;
|
|
13
|
+
/**
|
|
14
|
+
* Update a job's status to RUNNING.
|
|
15
|
+
*
|
|
16
|
+
* @param jobId - The job ID to mark as running
|
|
17
|
+
*/
|
|
18
|
+
markRunning(jobId: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Mark a job as completed successfully.
|
|
21
|
+
*
|
|
22
|
+
* @param jobId - The job ID to mark as completed
|
|
23
|
+
* @param result - Optional result data from the job execution
|
|
24
|
+
*/
|
|
25
|
+
markCompleted(jobId: string, result?: any): void;
|
|
26
|
+
/**
|
|
27
|
+
* Mark a job as failed.
|
|
28
|
+
*
|
|
29
|
+
* @param jobId - The job ID to mark as failed
|
|
30
|
+
* @param error - Error message describing the failure
|
|
31
|
+
*/
|
|
32
|
+
markFailed(jobId: string, error: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Retrieve the current status of a job.
|
|
35
|
+
*
|
|
36
|
+
* @param jobId - The job ID to query
|
|
37
|
+
* @returns The job information, or null if the job is not found
|
|
38
|
+
*/
|
|
39
|
+
getJobStatus(jobId: string): JobInfo | null;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Job } from "./types.js";
|
|
1
|
+
import type { IJobExecutionHandle, Job } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Interface for a job queue that manages write operations.
|
|
4
4
|
* Internally organizes jobs by documentId, scope, and branch to ensure proper ordering.
|
|
@@ -18,14 +18,16 @@ export interface IQueue {
|
|
|
18
18
|
* @param documentId - The document ID to get jobs for
|
|
19
19
|
* @param scope - The scope to get jobs for
|
|
20
20
|
* @param branch - The branch to get jobs for
|
|
21
|
-
* @
|
|
21
|
+
* @param signal - Optional abort signal to cancel the request
|
|
22
|
+
* @returns Promise that resolves to the next job execution handle or null if no jobs available
|
|
22
23
|
*/
|
|
23
|
-
dequeue(documentId: string, scope: string, branch: string): Promise<
|
|
24
|
+
dequeue(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
24
25
|
/**
|
|
25
26
|
* Get the next available job from any queue.
|
|
26
|
-
* @
|
|
27
|
+
* @param signal - Optional abort signal to cancel the request
|
|
28
|
+
* @returns Promise that resolves to the next job execution handle or null if no jobs available
|
|
27
29
|
*/
|
|
28
|
-
dequeueNext(): Promise<
|
|
30
|
+
dequeueNext(signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
29
31
|
/**
|
|
30
32
|
* Get the current size of the queue for a specific document/scope/branch.
|
|
31
33
|
* @param documentId - The document ID
|
|
@@ -58,5 +60,43 @@ export interface IQueue {
|
|
|
58
60
|
* @returns Promise that resolves when all queues are cleared
|
|
59
61
|
*/
|
|
60
62
|
clearAll(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if there are any jobs in the queue.
|
|
65
|
+
* @returns Promise that resolves to true if there are jobs, false otherwise
|
|
66
|
+
*/
|
|
67
|
+
hasJobs(): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Mark a job as completed.
|
|
70
|
+
* @param jobId - The ID of the job to mark as completed
|
|
71
|
+
* @returns Promise that resolves when the job is marked as completed
|
|
72
|
+
*/
|
|
73
|
+
completeJob(jobId: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Mark a job as failed.
|
|
76
|
+
* @param jobId - The ID of the job to mark as failed
|
|
77
|
+
* @param error - Optional error message
|
|
78
|
+
* @returns Promise that resolves when the job is marked as failed
|
|
79
|
+
*/
|
|
80
|
+
failJob(jobId: string, error?: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Retry a failed job.
|
|
83
|
+
* @param jobId - The ID of the job to retry
|
|
84
|
+
* @param error - Optional error message from the failure
|
|
85
|
+
* @returns Promise that resolves when the job is requeued for retry
|
|
86
|
+
*/
|
|
87
|
+
retryJob(jobId: string, error?: string): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Returns true if and only if all jobs have been resolved.
|
|
90
|
+
*/
|
|
91
|
+
get isDrained(): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Blocks the queue from accepting new jobs.
|
|
94
|
+
* @param onDrained - Optional callback to call when the queue is drained
|
|
95
|
+
*/
|
|
96
|
+
block(onDrained?: () => void): void;
|
|
97
|
+
/**
|
|
98
|
+
* Unblocks the queue from accepting new jobs.
|
|
99
|
+
*/
|
|
100
|
+
unblock(): void;
|
|
61
101
|
}
|
|
62
102
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/queue/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/queue/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAEvC;;;;OAIG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAEvE;;;;;;OAMG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzE;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAAC;IAEzB;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { IJobExecutionHandle, Job } from "./types.js";
|
|
2
|
+
import { JobQueueState } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of the IJobExecutionHandle interface
|
|
5
|
+
*/
|
|
6
|
+
export declare class JobExecutionHandle implements IJobExecutionHandle {
|
|
7
|
+
private _state;
|
|
8
|
+
private _job;
|
|
9
|
+
private onStart?;
|
|
10
|
+
private onComplete?;
|
|
11
|
+
private onFail?;
|
|
12
|
+
private getStateName;
|
|
13
|
+
constructor(job: Job, initialState: JobQueueState, callbacks?: {
|
|
14
|
+
onStart?: () => void;
|
|
15
|
+
onComplete?: () => void;
|
|
16
|
+
onFail?: (reason: string) => void;
|
|
17
|
+
});
|
|
18
|
+
get job(): Job;
|
|
19
|
+
get state(): JobQueueState;
|
|
20
|
+
start(): void;
|
|
21
|
+
complete(): void;
|
|
22
|
+
fail(reason: string): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=job-execution-handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-execution-handle.d.ts","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAC,CAA2B;IAE1C,OAAO,CAAC,YAAY;gBAkBlB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,aAAa,EAC3B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC;IASH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,KAAK,IAAI,IAAI;IAUb,QAAQ,IAAI,IAAI;IAUhB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAS3B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { JobQueueState } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Implementation of the IJobExecutionHandle interface
|
|
4
|
+
*/
|
|
5
|
+
export class JobExecutionHandle {
|
|
6
|
+
_state;
|
|
7
|
+
_job;
|
|
8
|
+
onStart;
|
|
9
|
+
onComplete;
|
|
10
|
+
onFail;
|
|
11
|
+
getStateName(state) {
|
|
12
|
+
switch (state) {
|
|
13
|
+
case JobQueueState.PREPROCESSING:
|
|
14
|
+
return "PREPROCESSING";
|
|
15
|
+
case JobQueueState.PENDING:
|
|
16
|
+
return "PENDING";
|
|
17
|
+
case JobQueueState.READY:
|
|
18
|
+
return "READY";
|
|
19
|
+
case JobQueueState.RUNNING:
|
|
20
|
+
return "RUNNING";
|
|
21
|
+
case JobQueueState.RESOLVED:
|
|
22
|
+
return "RESOLVED";
|
|
23
|
+
default:
|
|
24
|
+
return `UNKNOWN`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
constructor(job, initialState, callbacks) {
|
|
28
|
+
this._job = job;
|
|
29
|
+
this._state = initialState;
|
|
30
|
+
this.onStart = callbacks?.onStart;
|
|
31
|
+
this.onComplete = callbacks?.onComplete;
|
|
32
|
+
this.onFail = callbacks?.onFail;
|
|
33
|
+
}
|
|
34
|
+
get job() {
|
|
35
|
+
return this._job;
|
|
36
|
+
}
|
|
37
|
+
get state() {
|
|
38
|
+
return this._state;
|
|
39
|
+
}
|
|
40
|
+
start() {
|
|
41
|
+
if (this._state !== JobQueueState.READY) {
|
|
42
|
+
throw new Error(`Cannot start job in state ${this.getStateName(this._state)}`);
|
|
43
|
+
}
|
|
44
|
+
this._state = JobQueueState.RUNNING;
|
|
45
|
+
this.onStart?.();
|
|
46
|
+
}
|
|
47
|
+
complete() {
|
|
48
|
+
if (this._state !== JobQueueState.RUNNING) {
|
|
49
|
+
throw new Error(`Cannot complete job in state ${this.getStateName(this._state)}`);
|
|
50
|
+
}
|
|
51
|
+
this._state = JobQueueState.RESOLVED;
|
|
52
|
+
this.onComplete?.();
|
|
53
|
+
}
|
|
54
|
+
fail(reason) {
|
|
55
|
+
if (this._state !== JobQueueState.RUNNING) {
|
|
56
|
+
throw new Error(`Cannot fail job in state ${this.getStateName(this._state)}`);
|
|
57
|
+
}
|
|
58
|
+
this._state = JobQueueState.RESOLVED;
|
|
59
|
+
this.onFail?.(reason);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=job-execution-handle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-execution-handle.js","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAgB;IACtB,IAAI,CAAM;IACV,OAAO,CAAc;IACrB,UAAU,CAAc;IACxB,MAAM,CAA4B;IAElC,YAAY,CAAC,KAAoB;QACvC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,aAAa,CAAC,aAAa;gBAC9B,OAAO,eAAe,CAAC;YACzB,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,SAAS,CAAC;YACnB,KAAK,aAAa,CAAC,KAAK;gBACtB,OAAO,OAAO,CAAC;YACjB,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,SAAS,CAAC;YACnB,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO,UAAU,CAAC;YACpB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,YACE,GAAQ,EACR,YAA2B,EAC3B,SAIC;QAED,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,UAAU,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,gCAAgC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
import { IEventBus } from "../events/interfaces.js";
|
|
2
|
-
import { IQueue } from "./interfaces.js";
|
|
3
|
-
import { Job } from "./types.js";
|
|
1
|
+
import type { IEventBus } from "../events/interfaces.js";
|
|
2
|
+
import type { IQueue } from "./interfaces.js";
|
|
3
|
+
import type { IJobExecutionHandle, Job } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* In-memory implementation of the IQueue interface.
|
|
6
6
|
* Organizes jobs by documentId, scope, and branch to ensure proper ordering.
|
|
7
|
+
* Ensures serial execution per document by tracking executing jobs.
|
|
8
|
+
* Implements dependency management through queue hints.
|
|
7
9
|
*/
|
|
8
10
|
export declare class InMemoryQueue implements IQueue {
|
|
9
11
|
private eventBus;
|
|
10
12
|
private queues;
|
|
13
|
+
private jobIdToQueueKey;
|
|
14
|
+
private docIdToJobId;
|
|
15
|
+
private jobIdToDocId;
|
|
16
|
+
private completedJobs;
|
|
11
17
|
private jobIndex;
|
|
18
|
+
private isBlocked;
|
|
19
|
+
private onDrainedCallback?;
|
|
12
20
|
constructor(eventBus: IEventBus);
|
|
13
21
|
/**
|
|
14
22
|
* Creates a unique key for a document/scope/branch combination
|
|
@@ -18,13 +26,54 @@ export declare class InMemoryQueue implements IQueue {
|
|
|
18
26
|
* Gets or creates a queue for the given key
|
|
19
27
|
*/
|
|
20
28
|
private getQueue;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a document has any jobs currently executing
|
|
31
|
+
*/
|
|
32
|
+
private isDocumentExecuting;
|
|
33
|
+
/**
|
|
34
|
+
* Mark a job as executing for its document
|
|
35
|
+
*/
|
|
36
|
+
private markJobExecuting;
|
|
37
|
+
/**
|
|
38
|
+
* Mark a job as no longer executing for its document
|
|
39
|
+
*/
|
|
40
|
+
private markJobComplete;
|
|
41
|
+
/**
|
|
42
|
+
* Check if all dependencies for a job have been completed
|
|
43
|
+
*/
|
|
44
|
+
private areDependenciesMet;
|
|
45
|
+
/**
|
|
46
|
+
* Get the next job that has all its dependencies met
|
|
47
|
+
*/
|
|
48
|
+
private getNextJobWithMetDependencies;
|
|
21
49
|
enqueue(job: Job): Promise<void>;
|
|
22
|
-
dequeue(documentId: string, scope: string, branch: string): Promise<
|
|
23
|
-
dequeueNext(): Promise<
|
|
50
|
+
dequeue(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
51
|
+
dequeueNext(signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
24
52
|
size(documentId: string, scope: string, branch: string): Promise<number>;
|
|
25
53
|
totalSize(): Promise<number>;
|
|
26
54
|
remove(jobId: string): Promise<boolean>;
|
|
27
55
|
clear(documentId: string, scope: string, branch: string): Promise<void>;
|
|
28
56
|
clearAll(): Promise<void>;
|
|
57
|
+
hasJobs(): Promise<boolean>;
|
|
58
|
+
completeJob(jobId: string): Promise<void>;
|
|
59
|
+
failJob(jobId: string, error?: string): Promise<void>;
|
|
60
|
+
retryJob(jobId: string, error?: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Check if the queue is drained and call the callback if it is
|
|
63
|
+
*/
|
|
64
|
+
private checkDrained;
|
|
65
|
+
/**
|
|
66
|
+
* Returns true if and only if all jobs have been resolved.
|
|
67
|
+
*/
|
|
68
|
+
get isDrained(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Blocks the queue from accepting new jobs.
|
|
71
|
+
* @param onDrained - Optional callback to call when the queue is drained
|
|
72
|
+
*/
|
|
73
|
+
block(onDrained?: () => void): void;
|
|
74
|
+
/**
|
|
75
|
+
* Unblocks the queue from accepting new jobs.
|
|
76
|
+
*/
|
|
77
|
+
unblock(): void;
|
|
29
78
|
}
|
|
30
79
|
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AAG9E;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,MAAM;IAU9B,OAAO,CAAC,QAAQ;IAT5B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAa;gBAEnB,QAAQ,EAAE,SAAS;IAEvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAS/B,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtC,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAiDtC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAqDtE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqCvC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAOrB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAUvB;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQnC;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|