@powerhousedao/reactor 5.0.0-staging.8 → 5.0.1-staging.1
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/cache/buffer/ring-buffer.d.ts +37 -0
- package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
- package/dist/src/cache/buffer/ring-buffer.js +69 -0
- package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
- package/dist/src/cache/kysely-write-cache.d.ts +133 -0
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
- package/dist/src/cache/kysely-write-cache.js +375 -0
- package/dist/src/cache/kysely-write-cache.js.map +1 -0
- package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
- package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
- package/dist/src/cache/lru/lru-tracker.js +96 -0
- package/dist/src/cache/lru/lru-tracker.js.map +1 -0
- package/dist/src/cache/types.d.ts +42 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +2 -0
- package/dist/src/cache/types.js.map +1 -0
- package/dist/src/cache/write/interfaces.d.ts +83 -0
- package/dist/src/cache/write/interfaces.d.ts.map +1 -0
- package/dist/src/cache/write/interfaces.js +2 -0
- package/dist/src/cache/write/interfaces.js.map +1 -0
- 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/{reactor.d.ts → core/reactor.d.ts} +13 -30
- package/dist/src/core/reactor.d.ts.map +1 -0
- package/dist/src/{reactor.js → core/reactor.js} +147 -111
- package/dist/src/core/reactor.js.map +1 -0
- package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
- 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/{utils.d.ts → core/utils.d.ts} +2 -2
- package/dist/src/core/utils.d.ts.map +1 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +2 -2
- package/dist/src/events/event-bus.d.ts.map +1 -1
- package/dist/src/events/event-bus.js +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 +14 -0
- 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 +2 -2
- package/dist/src/executor/interfaces.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +5 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +98 -36
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +32 -3
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +436 -17
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/executor/types.d.ts +10 -3
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/types.js.map +1 -1
- package/dist/src/executor/util.d.ts +47 -0
- package/dist/src/executor/util.d.ts.map +1 -0
- package/dist/src/executor/util.js +113 -0
- package/dist/src/executor/util.js.map +1 -0
- package/dist/src/index.d.ts +23 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +30 -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 +1 -1
- package/dist/src/queue/interfaces.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +2 -1
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.js.map +1 -1
- package/dist/src/queue/queue.d.ts +3 -3
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/queue.js +47 -25
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/types.d.ts +7 -5
- package/dist/src/queue/types.d.ts.map +1 -1
- 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 +365 -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.js +1 -1
- package/dist/src/registry/implementation.js.map +1 -1
- 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 +17 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +33 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/factories.d.ts +1 -1
- package/dist/src/shared/factories.d.ts.map +1 -1
- package/dist/src/shared/types.d.ts +8 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +5 -0
- package/dist/src/shared/types.js.map +1 -1
- 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 +121 -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/keyframe-store.d.ts +15 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.js +71 -0
- package/dist/src/storage/kysely/keyframe-store.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 +196 -0
- package/dist/src/storage/kysely/store.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +39 -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 +41 -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 -9
- 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 -228
- 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 -46
- 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 -144
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/src/interfaces/reactor.d.ts.map +0 -1
- package/dist/src/interfaces/reactor.js +0 -2
- package/dist/src/interfaces/reactor.js.map +0 -1
- package/dist/src/reactor.d.ts.map +0 -1
- package/dist/src/reactor.js.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.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 -541
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/executor/executor-integration.test.d.ts +0 -2
- package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
- package/dist/test/executor/executor-integration.test.js +0 -287
- package/dist/test/executor/executor-integration.test.js.map +0 -1
- package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
- package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
- package/dist/test/executor/job-execution-handle.test.js +0 -272
- package/dist/test/executor/job-execution-handle.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
- package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor.test.js +0 -139
- package/dist/test/executor/simple-job-executor.test.js.map +0 -1
- package/dist/test/factories.d.ts +0 -122
- package/dist/test/factories.d.ts.map +0 -1
- package/dist/test/factories.js +0 -319
- package/dist/test/factories.js.map +0 -1
- package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
- package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
- package/dist/test/integration/document-drive-integration.test.js +0 -1102
- package/dist/test/integration/document-drive-integration.test.js.map +0 -1
- package/dist/test/integration/reactor-read.test.d.ts +0 -2
- package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
- package/dist/test/integration/reactor-read.test.js +0 -300
- package/dist/test/integration/reactor-read.test.js.map +0 -1
- package/dist/test/queue/queue-integration.test.d.ts +0 -2
- package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
- package/dist/test/queue/queue-integration.test.js +0 -322
- package/dist/test/queue/queue-integration.test.js.map +0 -1
- package/dist/test/queue/queue.test.d.ts +0 -2
- package/dist/test/queue/queue.test.d.ts.map +0 -1
- package/dist/test/queue/queue.test.js +0 -770
- package/dist/test/queue/queue.test.js.map +0 -1
- package/dist/test/registry/registry.test.d.ts +0 -2
- package/dist/test/registry/registry.test.d.ts.map +0 -1
- package/dist/test/registry/registry.test.js +0 -182
- package/dist/test/registry/registry.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -66
- package/dist/test/utils.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -11
- package/dist/vitest.config.js.map +0 -1
- /package/dist/src/{utils.js → core/utils.js} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { createPresignedHeader, defaultBaseState } from "document-model/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a PHDocument from a CREATE_DOCUMENT action input.
|
|
4
|
+
* Reconstructs the document header and initializes the base state.
|
|
5
|
+
*
|
|
6
|
+
* @param action - The CREATE_DOCUMENT action containing the document parameters
|
|
7
|
+
* @returns A newly constructed PHDocument with initialized header and base state
|
|
8
|
+
*/
|
|
9
|
+
export function createDocumentFromAction(action) {
|
|
10
|
+
const input = action.input;
|
|
11
|
+
// Reconstruct the document from CreateDocumentActionInput
|
|
12
|
+
const header = createPresignedHeader();
|
|
13
|
+
header.id = input.documentId;
|
|
14
|
+
header.documentType = input.model;
|
|
15
|
+
// If signing info is present, populate the header signature fields
|
|
16
|
+
if (input.signing) {
|
|
17
|
+
header.createdAtUtcIso = input.signing.createdAtUtcIso;
|
|
18
|
+
header.lastModifiedAtUtcIso = input.signing.createdAtUtcIso;
|
|
19
|
+
header.sig = {
|
|
20
|
+
publicKey: input.signing.publicKey,
|
|
21
|
+
nonce: input.signing.nonce,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// Populate optional mutable header fields
|
|
25
|
+
if (input.slug !== undefined) {
|
|
26
|
+
header.slug = input.slug;
|
|
27
|
+
}
|
|
28
|
+
// Default slug to document ID if empty (matching legacy behavior)
|
|
29
|
+
if (!header.slug) {
|
|
30
|
+
header.slug = input.documentId;
|
|
31
|
+
}
|
|
32
|
+
if (input.name !== undefined) {
|
|
33
|
+
header.name = input.name;
|
|
34
|
+
}
|
|
35
|
+
if (input.branch !== undefined) {
|
|
36
|
+
header.branch = input.branch;
|
|
37
|
+
}
|
|
38
|
+
if (input.meta !== undefined) {
|
|
39
|
+
header.meta = input.meta;
|
|
40
|
+
}
|
|
41
|
+
// Construct the document with default base state (UPGRADE_DOCUMENT will set the full state)
|
|
42
|
+
const baseState = defaultBaseState();
|
|
43
|
+
const document = {
|
|
44
|
+
header,
|
|
45
|
+
operations: {},
|
|
46
|
+
state: baseState,
|
|
47
|
+
initialState: baseState,
|
|
48
|
+
clipboard: [],
|
|
49
|
+
};
|
|
50
|
+
return document;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Applies an UPGRADE_DOCUMENT action to a document.
|
|
54
|
+
* Merges the initialState from the action with the existing document state,
|
|
55
|
+
* preserving auth and document scopes while adding model-specific scopes.
|
|
56
|
+
*
|
|
57
|
+
* @param document - The document to upgrade
|
|
58
|
+
* @param action - The UPGRADE_DOCUMENT action
|
|
59
|
+
* @returns The upgraded document (mutates in place and returns for convenience)
|
|
60
|
+
*/
|
|
61
|
+
export function applyUpgradeDocumentAction(document, action) {
|
|
62
|
+
const input = action.input;
|
|
63
|
+
const newState = input.initialState || input.state;
|
|
64
|
+
if (newState) {
|
|
65
|
+
document.state = {
|
|
66
|
+
...document.state,
|
|
67
|
+
...newState,
|
|
68
|
+
};
|
|
69
|
+
document.initialState = document.state;
|
|
70
|
+
}
|
|
71
|
+
return document;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Applies a DELETE_DOCUMENT action to a document.
|
|
75
|
+
* Marks the document as deleted in the document scope state.
|
|
76
|
+
*
|
|
77
|
+
* @param document - The document to mark as deleted
|
|
78
|
+
* @param action - The DELETE_DOCUMENT action
|
|
79
|
+
* @returns The updated document (mutates in place and returns for convenience)
|
|
80
|
+
*/
|
|
81
|
+
export function applyDeleteDocumentAction(document, action) {
|
|
82
|
+
const deletedAt = action.timestampUtcMs || new Date().toISOString();
|
|
83
|
+
document.state = {
|
|
84
|
+
...document.state,
|
|
85
|
+
document: {
|
|
86
|
+
...document.state.document,
|
|
87
|
+
isDeleted: true,
|
|
88
|
+
deletedAtUtcIso: deletedAt,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
return document;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Calculate the next operation index for a specific scope.
|
|
95
|
+
* Each scope maintains its own independent index sequence.
|
|
96
|
+
*
|
|
97
|
+
* Per-scope indexing means:
|
|
98
|
+
* - Each scope (document, global, local, etc.) has independent indexes
|
|
99
|
+
* - Indexes start at 0 for each scope
|
|
100
|
+
* - Different scopes can have operations with the same index value
|
|
101
|
+
*
|
|
102
|
+
* This function uses header.revision which is populated by the cache/storage layer
|
|
103
|
+
* and contains the next available index for each scope. This design avoids requiring
|
|
104
|
+
* the full operation history to be loaded, which is crucial for snapshot-based caching.
|
|
105
|
+
*
|
|
106
|
+
* @param document - The document whose header.revision to inspect
|
|
107
|
+
* @param scope - The scope to calculate the next index for
|
|
108
|
+
* @returns The next available index in the specified scope
|
|
109
|
+
*/
|
|
110
|
+
export const getNextIndexForScope = (document, scope) => {
|
|
111
|
+
return document.header.revision?.[scope] || 0;
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/executor/util.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,16 +1,36 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
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";
|
|
3
7
|
export { createMutableShutdownStatus } from "./shared/factories.js";
|
|
4
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";
|
|
5
12
|
export { EventBus } from "./events/event-bus.js";
|
|
6
13
|
export { type IEventBus } from "./events/interfaces.js";
|
|
7
|
-
export { EventBusAggregateError, type Unsubscribe } from "./events/types.js";
|
|
14
|
+
export { EventBusAggregateError, OperationEventTypes, type OperationWrittenEvent, type Unsubscribe, } from "./events/types.js";
|
|
8
15
|
export { type IQueue } from "./queue/interfaces.js";
|
|
9
16
|
export { InMemoryQueue } from "./queue/queue.js";
|
|
10
17
|
export { QueueEventTypes, type Job, type JobAvailableEvent, } from "./queue/types.js";
|
|
18
|
+
export { InMemoryJobTracker } from "./job-tracker/in-memory-job-tracker.js";
|
|
19
|
+
export { type IJobTracker } from "./job-tracker/interfaces.js";
|
|
11
20
|
export { type IJobExecutor, type IJobExecutorManager, } from "./executor/interfaces.js";
|
|
12
21
|
export { SimpleJobExecutorManager, type JobExecutorFactory, } from "./executor/simple-job-executor-manager.js";
|
|
13
22
|
export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
|
|
14
23
|
export { JobExecutorEventTypes, type ExecutorStartedEvent, type ExecutorStoppedEvent, type JobCompletedEvent, type JobExecutorConfig, type JobFailedEvent, type JobResult, type JobStartedEvent, } from "./executor/types.js";
|
|
15
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 IKeyframeStore, type IOperationStore, type OperationContext, type OperationWithContext, } from "./storage/interfaces.js";
|
|
26
|
+
export { KyselyOperationStore } from "./storage/kysely/store.js";
|
|
27
|
+
export { KyselyKeyframeStore } from "./storage/kysely/keyframe-store.js";
|
|
28
|
+
export type { Database, OperationTable } from "./storage/kysely/types.js";
|
|
29
|
+
export { ReadModelCoordinator } from "./read-models/coordinator.js";
|
|
30
|
+
export { KyselyDocumentView } from "./read-models/document-view.js";
|
|
31
|
+
export { type IReadModel, type IReadModelCoordinator, } from "./read-models/interfaces.js";
|
|
32
|
+
export type { DocumentViewDatabase, InsertableDocumentSnapshot, } from "./read-models/types.js";
|
|
33
|
+
export type { CachedSnapshot, DocumentStreamKey, KeyframeSnapshot, WriteCacheConfig, } from "./cache/types.js";
|
|
34
|
+
export { type IWriteCache } from "./cache/write/interfaces.js";
|
|
35
|
+
export { KyselyWriteCache } from "./cache/kysely-write-cache.js";
|
|
16
36
|
//# 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,KAAK,
|
|
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,14 +1,42 @@
|
|
|
1
|
-
|
|
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";
|
|
2
8
|
export { createMutableShutdownStatus } from "./shared/factories.js";
|
|
3
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";
|
|
4
14
|
// Event Bus
|
|
5
15
|
export { EventBus } from "./events/event-bus.js";
|
|
6
|
-
export {
|
|
16
|
+
export {} from "./events/interfaces.js";
|
|
17
|
+
export { EventBusAggregateError, OperationEventTypes, } from "./events/types.js";
|
|
18
|
+
// Queue
|
|
19
|
+
export {} from "./queue/interfaces.js";
|
|
7
20
|
export { InMemoryQueue } from "./queue/queue.js";
|
|
8
21
|
export { QueueEventTypes, } from "./queue/types.js";
|
|
22
|
+
// Job Tracker
|
|
23
|
+
export { InMemoryJobTracker } from "./job-tracker/in-memory-job-tracker.js";
|
|
24
|
+
export {} from "./job-tracker/interfaces.js";
|
|
25
|
+
// Job Executor
|
|
26
|
+
export {} from "./executor/interfaces.js";
|
|
9
27
|
export { SimpleJobExecutorManager, } from "./executor/simple-job-executor-manager.js";
|
|
10
28
|
export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
|
|
11
29
|
export { JobExecutorEventTypes, } from "./executor/types.js";
|
|
12
30
|
// Document Model Registry
|
|
13
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
|
+
export { KyselyKeyframeStore } from "./storage/kysely/keyframe-store.js";
|
|
36
|
+
// Read Models
|
|
37
|
+
export { ReadModelCoordinator } from "./read-models/coordinator.js";
|
|
38
|
+
export { KyselyDocumentView } from "./read-models/document-view.js";
|
|
39
|
+
export {} from "./read-models/interfaces.js";
|
|
40
|
+
export {} from "./cache/write/interfaces.js";
|
|
41
|
+
export { KyselyWriteCache } from "./cache/kysely-write-cache.js";
|
|
14
42
|
//# 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":"
|
|
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,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAoB,MAAM,6BAA6B,CAAC;AAE/D,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,GAStB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,cAAc;AACd,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAGN,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAAoB,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,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 {
|
|
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.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/queue/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-execution-handle.d.ts","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-execution-handle.js","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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;IA4BrD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC5D;;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"}
|