@powerhousedao/reactor 4.1.0-dev.73 → 4.1.0-dev.75

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.
Files changed (52) hide show
  1. package/dist/src/core/reactor.d.ts +6 -12
  2. package/dist/src/core/reactor.d.ts.map +1 -1
  3. package/dist/src/core/reactor.js +127 -79
  4. package/dist/src/core/reactor.js.map +1 -1
  5. package/dist/src/events/types.d.ts +14 -0
  6. package/dist/src/events/types.d.ts.map +1 -1
  7. package/dist/src/events/types.js +6 -0
  8. package/dist/src/events/types.js.map +1 -1
  9. package/dist/src/executor/simple-job-executor-manager.d.ts +4 -1
  10. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  11. package/dist/src/executor/simple-job-executor-manager.js +86 -36
  12. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  13. package/dist/src/executor/simple-job-executor.d.ts +12 -7
  14. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  15. package/dist/src/executor/simple-job-executor.js +281 -62
  16. package/dist/src/executor/simple-job-executor.js.map +1 -1
  17. package/dist/src/executor/types.d.ts +3 -2
  18. package/dist/src/executor/types.d.ts.map +1 -1
  19. package/dist/src/executor/types.js.map +1 -1
  20. package/dist/src/index.d.ts +8 -2
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +8 -1
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
  25. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  26. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  27. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  28. package/dist/src/job-tracker/index.d.ts +3 -0
  29. package/dist/src/job-tracker/index.d.ts.map +1 -0
  30. package/dist/src/job-tracker/index.js +2 -0
  31. package/dist/src/job-tracker/index.js.map +1 -0
  32. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  33. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  34. package/dist/src/job-tracker/interfaces.js +2 -0
  35. package/dist/src/job-tracker/interfaces.js.map +1 -0
  36. package/dist/src/queue/types.d.ts +4 -4
  37. package/dist/src/queue/types.d.ts.map +1 -1
  38. package/dist/src/read-models/coordinator.d.ts +38 -0
  39. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  40. package/dist/src/read-models/coordinator.js +62 -0
  41. package/dist/src/read-models/coordinator.js.map +1 -0
  42. package/dist/src/read-models/document-view.d.ts +4 -5
  43. package/dist/src/read-models/document-view.d.ts.map +1 -1
  44. package/dist/src/read-models/document-view.js +170 -119
  45. package/dist/src/read-models/document-view.js.map +1 -1
  46. package/dist/src/read-models/interfaces.d.ts +29 -0
  47. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  48. package/dist/src/read-models/interfaces.js +2 -0
  49. package/dist/src/read-models/interfaces.js.map +1 -0
  50. package/dist/src/storage/interfaces.d.ts +5 -20
  51. package/dist/src/storage/interfaces.d.ts.map +1 -1
  52. package/package.json +3 -3
@@ -1,3 +1,6 @@
1
+ import { createPresignedHeader, defaultBaseState } from "document-model/core";
2
+ import { OperationEventTypes } from "../events/types.js";
3
+ import { DocumentDeletedError } from "../shared/errors.js";
1
4
  /**
2
5
  * Simple job executor that processes a job by applying actions through document model reducers.
3
6
  */
@@ -5,130 +8,307 @@ export class SimpleJobExecutor {
5
8
  registry;
6
9
  documentStorage;
7
10
  operationStorage;
8
- constructor(registry, documentStorage, operationStorage) {
11
+ operationStore;
12
+ eventBus;
13
+ constructor(registry, documentStorage, operationStorage, operationStore, eventBus) {
9
14
  this.registry = registry;
10
15
  this.documentStorage = documentStorage;
11
16
  this.operationStorage = operationStorage;
17
+ this.operationStore = operationStore;
18
+ this.eventBus = eventBus;
12
19
  }
13
20
  /**
14
- * Execute a single job by applying its action through the appropriate reducer.
21
+ * Execute a single job by applying all its operations through the appropriate reducers.
22
+ * Operations are processed sequentially in order.
15
23
  */
16
24
  async executeJob(job) {
17
25
  const startTime = Date.now();
18
- // Handle system actions specially (CREATE_DOCUMENT, DELETE_DOCUMENT, etc.)
19
- if (job.operation.action.type === "CREATE_DOCUMENT") {
20
- return this.executeCreateDocument(job, startTime);
26
+ const generatedOperations = [];
27
+ const operationsWithContext = [];
28
+ // Process each operation in the job sequentially
29
+ for (const operation of job.operations) {
30
+ // Handle system actions specially (CREATE_DOCUMENT, DELETE_DOCUMENT, etc.)
31
+ if (operation.action.type === "CREATE_DOCUMENT") {
32
+ const result = await this.executeCreateDocumentOperation(job, operation, startTime);
33
+ if (!result.success) {
34
+ return result;
35
+ }
36
+ if (result.operations && result.operations.length > 0) {
37
+ generatedOperations.push(...result.operations);
38
+ }
39
+ if (result.operationsWithContext) {
40
+ operationsWithContext.push(...result.operationsWithContext);
41
+ }
42
+ continue;
43
+ }
44
+ if (operation.action.type === "DELETE_DOCUMENT") {
45
+ const result = await this.executeDeleteDocumentOperation(job, operation, startTime);
46
+ if (!result.success) {
47
+ return result;
48
+ }
49
+ if (result.operations && result.operations.length > 0) {
50
+ generatedOperations.push(...result.operations);
51
+ }
52
+ if (result.operationsWithContext) {
53
+ operationsWithContext.push(...result.operationsWithContext);
54
+ }
55
+ continue;
56
+ }
57
+ // For regular actions, load the document and apply through reducer
58
+ let document;
59
+ try {
60
+ document = await this.documentStorage.get(job.documentId);
61
+ }
62
+ catch (error) {
63
+ return {
64
+ job,
65
+ success: false,
66
+ error: error instanceof Error ? error : new Error(String(error)),
67
+ duration: Date.now() - startTime,
68
+ };
69
+ }
70
+ // Check if document is deleted
71
+ const documentState = document.state.document;
72
+ if (documentState.isDeleted) {
73
+ return {
74
+ job,
75
+ success: false,
76
+ error: new DocumentDeletedError(job.documentId, documentState.deletedAtUtcIso),
77
+ duration: Date.now() - startTime,
78
+ };
79
+ }
80
+ let module;
81
+ try {
82
+ module = this.registry.getModule(document.header.documentType);
83
+ }
84
+ catch (error) {
85
+ return {
86
+ job,
87
+ success: false,
88
+ error: error instanceof Error ? error : new Error(String(error)),
89
+ duration: Date.now() - startTime,
90
+ };
91
+ }
92
+ const updatedDocument = module.reducer(document, operation.action);
93
+ const scope = job.scope;
94
+ const operations = updatedDocument.operations[scope];
95
+ if (operations.length === 0) {
96
+ throw new Error("No operation generated from action");
97
+ }
98
+ const newOperation = operations[operations.length - 1];
99
+ generatedOperations.push(newOperation);
100
+ // Write the operation to legacy storage
101
+ try {
102
+ await this.operationStorage.addDocumentOperations(job.documentId, [newOperation], updatedDocument);
103
+ }
104
+ catch (error) {
105
+ return {
106
+ job,
107
+ success: false,
108
+ error: error instanceof Error ? error : new Error(String(error)),
109
+ duration: Date.now() - startTime,
110
+ };
111
+ }
112
+ // Populate resultingState with the updated document's state for read model indexing
113
+ // Always include header and document scopes, plus the scope that was modified
114
+ const resultingState = {
115
+ header: updatedDocument.header,
116
+ document: updatedDocument.state.document,
117
+ };
118
+ // Add the modified scope (cast to Record to satisfy TypeScript)
119
+ const state = updatedDocument.state;
120
+ resultingState[scope] = state[scope];
121
+ newOperation.resultingState = JSON.stringify(resultingState);
122
+ // Write the operation to new IOperationStore (dual-writing)
123
+ try {
124
+ await this.operationStore.apply(job.documentId, document.header.documentType, scope, job.branch, newOperation.index, (txn) => {
125
+ txn.addOperations(newOperation);
126
+ });
127
+ }
128
+ catch (error) {
129
+ return {
130
+ job,
131
+ success: false,
132
+ error: new Error(`Failed to write operation to IOperationStore: ${error instanceof Error ? error.message : String(error)}`),
133
+ duration: Date.now() - startTime,
134
+ };
135
+ }
136
+ operationsWithContext.push({
137
+ operation: newOperation,
138
+ context: {
139
+ documentId: job.documentId,
140
+ scope,
141
+ branch: job.branch,
142
+ documentType: document.header.documentType,
143
+ },
144
+ });
21
145
  }
22
- if (job.operation.action.type === "DELETE_DOCUMENT") {
23
- return this.executeDeleteDocument(job, startTime);
146
+ // Emit event for read models with all operations - fire and forget, don't block
147
+ // Read model indexing happens asynchronously
148
+ if (operationsWithContext.length > 0) {
149
+ this.eventBus
150
+ .emit(OperationEventTypes.OPERATION_WRITTEN, {
151
+ operations: operationsWithContext,
152
+ })
153
+ .catch(() => {
154
+ // Swallow error - read models are eventually consistent
155
+ });
24
156
  }
25
- let document;
157
+ return {
158
+ job,
159
+ success: true,
160
+ operations: generatedOperations,
161
+ duration: Date.now() - startTime,
162
+ };
163
+ }
164
+ /**
165
+ * Execute a CREATE_DOCUMENT system action for a single operation.
166
+ * This creates a new document in storage along with its initial operations.
167
+ */
168
+ async executeCreateDocumentOperation(job, operation, startTime) {
169
+ const action = operation.action;
170
+ const input = action.input;
171
+ // Reconstruct the document from CreateDocumentActionInput
172
+ const header = createPresignedHeader();
173
+ header.id = input.documentId;
174
+ header.documentType = input.model;
175
+ // If signing info is present, populate the header signature fields
176
+ if (input.signing) {
177
+ header.createdAtUtcIso = input.signing.createdAtUtcIso;
178
+ header.lastModifiedAtUtcIso = input.signing.createdAtUtcIso;
179
+ header.sig = {
180
+ publicKey: input.signing.publicKey,
181
+ nonce: input.signing.nonce,
182
+ };
183
+ }
184
+ // Populate optional mutable header fields
185
+ if (input.slug !== undefined) {
186
+ header.slug = input.slug;
187
+ }
188
+ // Default slug to document ID if empty (matching legacy behavior)
189
+ if (!header.slug) {
190
+ header.slug = input.documentId;
191
+ }
192
+ if (input.name !== undefined) {
193
+ header.name = input.name;
194
+ }
195
+ if (input.branch !== undefined) {
196
+ header.branch = input.branch;
197
+ }
198
+ if (input.meta !== undefined) {
199
+ header.meta = input.meta;
200
+ }
201
+ // Construct the document with default base state (UPGRADE_DOCUMENT will set the full state)
202
+ const baseState = defaultBaseState();
203
+ const document = {
204
+ header,
205
+ operations: {},
206
+ state: baseState,
207
+ initialState: baseState,
208
+ clipboard: [],
209
+ };
210
+ // Legacy: Store the document in storage
26
211
  try {
27
- document = await this.documentStorage.get(job.documentId);
212
+ await this.documentStorage.create(document);
28
213
  }
29
214
  catch (error) {
30
215
  return {
31
216
  job,
32
217
  success: false,
33
- error: error instanceof Error ? error : new Error(String(error)),
218
+ error: new Error(`Failed to create document in storage: ${error instanceof Error ? error.message : String(error)}`),
34
219
  duration: Date.now() - startTime,
35
220
  };
36
221
  }
37
- let module;
222
+ // Legacy: Write the CREATE_DOCUMENT operation to legacy storage
38
223
  try {
39
- module = this.registry.getModule(document.header.documentType);
224
+ await this.operationStorage.addDocumentOperations(document.header.id, [operation], document);
40
225
  }
41
226
  catch (error) {
42
227
  return {
43
228
  job,
44
229
  success: false,
45
- error: error instanceof Error ? error : new Error(String(error)),
230
+ error: new Error(`Failed to write CREATE_DOCUMENT operation to legacy storage: ${error instanceof Error ? error.message : String(error)}`),
46
231
  duration: Date.now() - startTime,
47
232
  };
48
233
  }
49
- const updatedDocument = module.reducer(document, job.operation.action);
50
- const scope = job.scope || "global";
51
- const operations = updatedDocument.operations[scope];
52
- if (operations.length === 0) {
53
- throw new Error("No operation generated from action");
54
- }
55
- const newOperation = operations[operations.length - 1];
56
- // Write the operation to legacy storage
234
+ // Populate resultingState with the document's state for read model indexing
235
+ // Include header and all scopes present in the document state (auth, document, etc.)
236
+ // but not global/local which aren't initialized by CREATE_DOCUMENT
237
+ const resultingState = {
238
+ header: document.header,
239
+ ...document.state,
240
+ };
241
+ operation.resultingState = JSON.stringify(resultingState);
242
+ // Write the operation to new IOperationStore (dual-writing)
57
243
  try {
58
- await this.operationStorage.addDocumentOperations(job.documentId, [newOperation], updatedDocument);
244
+ await this.operationStore.apply(document.header.id, document.header.documentType, job.scope, job.branch, operation.index, (txn) => {
245
+ txn.addOperations(operation);
246
+ });
59
247
  }
60
248
  catch (error) {
61
249
  return {
62
250
  job,
63
251
  success: false,
64
- error: error instanceof Error ? error : new Error(String(error)),
252
+ error: new Error(`Failed to write CREATE_DOCUMENT operation to IOperationStore: ${error instanceof Error ? error.message : String(error)}`),
65
253
  duration: Date.now() - startTime,
66
254
  };
67
255
  }
68
256
  return {
69
257
  job,
70
258
  success: true,
71
- operation: newOperation,
259
+ operations: [operation],
260
+ operationsWithContext: [
261
+ {
262
+ operation,
263
+ context: {
264
+ documentId: document.header.id,
265
+ scope: job.scope,
266
+ branch: job.branch,
267
+ documentType: document.header.documentType,
268
+ },
269
+ },
270
+ ],
72
271
  duration: Date.now() - startTime,
73
272
  };
74
273
  }
75
274
  /**
76
- * Execute a CREATE_DOCUMENT system action.
77
- * This creates a new document in storage along with its initial operations.
275
+ * Execute a DELETE_DOCUMENT system action for a single operation.
276
+ * This deletes a document from legacy storage and writes the operation to IOperationStore.
78
277
  */
79
- async executeCreateDocument(job, startTime) {
80
- const action = job.operation.action;
278
+ async executeDeleteDocumentOperation(job, operation, startTime) {
279
+ const action = operation.action;
81
280
  const input = action.input;
82
- const document = input.document;
83
- // Store the document in storage
84
- try {
85
- await this.documentStorage.create(document);
86
- }
87
- catch (error) {
281
+ if (!input.documentId) {
88
282
  return {
89
283
  job,
90
284
  success: false,
91
- error: new Error(`Failed to create document in storage: ${error instanceof Error ? error.message : String(error)}`),
285
+ error: new Error("DELETE_DOCUMENT action requires a documentId in input"),
92
286
  duration: Date.now() - startTime,
93
287
  };
94
288
  }
95
- // Create the operation from the job
96
- const operation = job.operation;
97
- // Write the CREATE_DOCUMENT operation to storage
289
+ const documentId = input.documentId;
290
+ let document;
98
291
  try {
99
- await this.operationStorage.addDocumentOperations(document.header.id, [operation], document);
292
+ document = await this.documentStorage.get(documentId);
100
293
  }
101
294
  catch (error) {
102
295
  return {
103
296
  job,
104
297
  success: false,
105
- error: new Error(`Failed to write CREATE_DOCUMENT operation to storage: ${error instanceof Error ? error.message : String(error)}`),
298
+ error: new Error(`Failed to fetch document before deletion: ${error instanceof Error ? error.message : String(error)}`),
106
299
  duration: Date.now() - startTime,
107
300
  };
108
301
  }
109
- return {
110
- job,
111
- success: true,
112
- operation,
113
- duration: Date.now() - startTime,
114
- };
115
- }
116
- /**
117
- * Execute a DELETE_DOCUMENT system action.
118
- * This deletes a document from storage.
119
- */
120
- async executeDeleteDocument(job, startTime) {
121
- const action = job.operation.action;
122
- const input = action.input;
123
- if (!input.documentId) {
302
+ // Check if document is already deleted
303
+ const documentState = document.state.document;
304
+ if (documentState.isDeleted) {
124
305
  return {
125
306
  job,
126
307
  success: false,
127
- error: new Error("DELETE_DOCUMENT action requires a documentId in input"),
308
+ error: new DocumentDeletedError(documentId, documentState.deletedAtUtcIso),
128
309
  duration: Date.now() - startTime,
129
310
  };
130
311
  }
131
- const documentId = input.documentId;
132
312
  try {
133
313
  await this.documentStorage.delete(documentId);
134
314
  }
@@ -136,17 +316,56 @@ export class SimpleJobExecutor {
136
316
  return {
137
317
  job,
138
318
  success: false,
139
- error: new Error(`Failed to delete document from storage: ${error instanceof Error ? error.message : String(error)}`),
319
+ error: new Error(`Failed to delete document from legacy storage: ${error instanceof Error ? error.message : String(error)}`),
320
+ duration: Date.now() - startTime,
321
+ };
322
+ }
323
+ // Mark the document as deleted in the state for read model indexing
324
+ const deletedAt = new Date().toISOString();
325
+ const updatedState = {
326
+ ...document.state,
327
+ document: {
328
+ ...document.state.document,
329
+ isDeleted: true,
330
+ deletedAtUtcIso: deletedAt,
331
+ },
332
+ };
333
+ // Populate resultingState with the deleted document state
334
+ // DELETE_DOCUMENT only affects header and document scopes
335
+ const resultingState = {
336
+ header: document.header,
337
+ document: updatedState.document,
338
+ };
339
+ operation.resultingState = JSON.stringify(resultingState);
340
+ // Write the DELETE_DOCUMENT operation to IOperationStore
341
+ try {
342
+ await this.operationStore.apply(documentId, document.header.documentType, job.scope, job.branch, operation.index, (txn) => {
343
+ txn.addOperations(operation);
344
+ });
345
+ }
346
+ catch (error) {
347
+ return {
348
+ job,
349
+ success: false,
350
+ error: new Error(`Failed to write DELETE_DOCUMENT operation to IOperationStore: ${error instanceof Error ? error.message : String(error)}`),
140
351
  duration: Date.now() - startTime,
141
352
  };
142
353
  }
143
- const operation = job.operation;
144
- // NOTE: Legacy storage does not support adding operations for deleted documents.
145
- // DELETE_DOCUMENT operations will be written to storage once IOperationStore is used.
146
354
  return {
147
355
  job,
148
356
  success: true,
149
- operation,
357
+ operations: [operation],
358
+ operationsWithContext: [
359
+ {
360
+ operation,
361
+ context: {
362
+ documentId,
363
+ scope: job.scope,
364
+ branch: job.branch,
365
+ documentType: document.header.documentType,
366
+ },
367
+ },
368
+ ],
150
369
  duration: Date.now() - startTime,
151
370
  };
152
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"simple-job-executor.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-job-executor.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Operation } from "document-model";
1
2
  import type { Job } from "../queue/types.js";
2
3
  /**
3
4
  * Represents the result of a job execution
@@ -9,8 +10,8 @@ export type JobResult = {
9
10
  success: boolean;
10
11
  /** Error if the job failed */
11
12
  error?: Error;
12
- /** The operation generated from the action (if successful) */
13
- operation?: any;
13
+ /** The operations generated from the actions (if successful) */
14
+ operations?: Operation[];
14
15
  /** Timestamp when the job execution completed */
15
16
  completedAt?: string;
16
17
  /** Duration of job execution in milliseconds */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"AAAA,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,8DAA8D;IAC9D,SAAS,CAAC,EAAE,GAAG,CAAC;IAEhB,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
+ {"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":"AA6CA;;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"}
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"}
@@ -11,16 +11,22 @@ export { ReactorSubscriptionManager } from "./subs/react-subscription-manager.js
11
11
  export { type IReactorSubscriptionManager, type ISubscriptionErrorHandler, type SubscriptionErrorContext, } from "./subs/types.js";
12
12
  export { EventBus } from "./events/event-bus.js";
13
13
  export { type IEventBus } from "./events/interfaces.js";
14
- export { EventBusAggregateError, type Unsubscribe } from "./events/types.js";
14
+ export { EventBusAggregateError, OperationEventTypes, type OperationWrittenEvent, type Unsubscribe, } from "./events/types.js";
15
15
  export { type IQueue } from "./queue/interfaces.js";
16
16
  export { InMemoryQueue } from "./queue/queue.js";
17
17
  export { QueueEventTypes, type Job, type JobAvailableEvent, } from "./queue/types.js";
18
+ export { type IJobTracker } from "./job-tracker/interfaces.js";
19
+ export { InMemoryJobTracker } from "./job-tracker/in-memory-job-tracker.js";
18
20
  export { type IJobExecutor, type IJobExecutorManager, } from "./executor/interfaces.js";
19
21
  export { SimpleJobExecutorManager, type JobExecutorFactory, } from "./executor/simple-job-executor-manager.js";
20
22
  export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
21
23
  export { JobExecutorEventTypes, type ExecutorStartedEvent, type ExecutorStoppedEvent, type JobCompletedEvent, type JobExecutorConfig, type JobFailedEvent, type JobResult, type JobStartedEvent, } from "./executor/types.js";
22
24
  export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, ModuleNotFoundError, type IDocumentModelRegistry, } from "./registry/index.js";
23
- export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, type AtomicTxn, type IOperationStore, } from "./storage/interfaces.js";
25
+ export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, type AtomicTxn, type DocumentRevisions, type DocumentSnapshot, type IDocumentView, type IOperationStore, type OperationContext, type OperationWithContext, } from "./storage/interfaces.js";
24
26
  export { KyselyOperationStore } from "./storage/kysely/store.js";
25
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";
26
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,KAAK,GAAG,EACR,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,GACxB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EACxC,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -14,11 +14,14 @@ export {} from "./subs/types.js";
14
14
  // Event Bus
15
15
  export { EventBus } from "./events/event-bus.js";
16
16
  export {} from "./events/interfaces.js";
17
- export { EventBusAggregateError } from "./events/types.js";
17
+ export { EventBusAggregateError, OperationEventTypes, } from "./events/types.js";
18
18
  // Queue
19
19
  export {} from "./queue/interfaces.js";
20
20
  export { InMemoryQueue } from "./queue/queue.js";
21
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";
22
25
  // Job Executor
23
26
  export {} from "./executor/interfaces.js";
24
27
  export { SimpleJobExecutorManager, } from "./executor/simple-job-executor-manager.js";
@@ -29,4 +32,8 @@ export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, Module
29
32
  // Storage
30
33
  export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, } from "./storage/interfaces.js";
31
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";
32
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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,EAAE,sBAAsB,EAAoB,MAAM,mBAAmB,CAAC;AAE7E,QAAQ;AACR,OAAO,EAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAE1B,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,GAGtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,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"}