@powerhousedao/reactor 4.1.0-dev.7 → 4.1.0-dev.71

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 (173) hide show
  1. package/dist/src/client/reactor-client.d.ts +103 -0
  2. package/dist/src/client/reactor-client.d.ts.map +1 -0
  3. package/dist/src/client/reactor-client.js +184 -0
  4. package/dist/src/client/reactor-client.js.map +1 -0
  5. package/dist/src/client/types.d.ts +213 -0
  6. package/dist/src/client/types.d.ts.map +1 -0
  7. package/dist/src/client/types.js +14 -0
  8. package/dist/src/client/types.js.map +1 -0
  9. package/dist/src/core/builder.d.ts +20 -0
  10. package/dist/src/core/builder.d.ts.map +1 -0
  11. package/dist/src/core/builder.js +47 -0
  12. package/dist/src/core/builder.js.map +1 -0
  13. package/dist/src/core/reactor.d.ts +98 -0
  14. package/dist/src/core/reactor.d.ts.map +1 -0
  15. package/dist/src/core/reactor.js +630 -0
  16. package/dist/src/core/reactor.js.map +1 -0
  17. package/dist/src/core/types.d.ts +121 -0
  18. package/dist/src/core/types.d.ts.map +1 -0
  19. package/dist/src/core/types.js +2 -0
  20. package/dist/src/core/types.js.map +1 -0
  21. package/dist/src/core/utils.d.ts +11 -0
  22. package/dist/src/core/utils.d.ts.map +1 -0
  23. package/dist/src/core/utils.js +31 -0
  24. package/dist/src/core/utils.js.map +1 -0
  25. package/dist/src/events/event-bus.d.ts +3 -3
  26. package/dist/src/events/event-bus.d.ts.map +1 -1
  27. package/dist/src/events/event-bus.js.map +1 -1
  28. package/dist/src/events/interfaces.d.ts +1 -1
  29. package/dist/src/events/interfaces.d.ts.map +1 -1
  30. package/dist/src/events/types.d.ts +1 -1
  31. package/dist/src/events/types.d.ts.map +1 -1
  32. package/dist/src/events/types.js.map +1 -1
  33. package/dist/src/executor/interfaces.d.ts +31 -54
  34. package/dist/src/executor/interfaces.d.ts.map +1 -1
  35. package/dist/src/executor/simple-job-executor-manager.d.ts +27 -0
  36. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  37. package/dist/src/executor/simple-job-executor-manager.js +128 -0
  38. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  39. package/dist/src/executor/simple-job-executor.d.ts +29 -0
  40. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  41. package/dist/src/executor/simple-job-executor.js +154 -0
  42. package/dist/src/executor/simple-job-executor.js.map +1 -0
  43. package/dist/src/executor/types.d.ts +23 -8
  44. package/dist/src/executor/types.d.ts.map +1 -1
  45. package/dist/src/executor/types.js.map +1 -1
  46. package/dist/src/index.d.ts +19 -2
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/dist/src/index.js +25 -1
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/queue/interfaces.d.ts +45 -5
  51. package/dist/src/queue/interfaces.d.ts.map +1 -1
  52. package/dist/src/queue/job-execution-handle.d.ts +24 -0
  53. package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
  54. package/dist/src/queue/job-execution-handle.js +62 -0
  55. package/dist/src/queue/job-execution-handle.js.map +1 -0
  56. package/dist/src/queue/queue.d.ts +54 -5
  57. package/dist/src/queue/queue.d.ts.map +1 -1
  58. package/dist/src/queue/queue.js +265 -36
  59. package/dist/src/queue/queue.js.map +1 -1
  60. package/dist/src/queue/types.d.ts +26 -1
  61. package/dist/src/queue/types.d.ts.map +1 -1
  62. package/dist/src/queue/types.js +12 -0
  63. package/dist/src/queue/types.js.map +1 -1
  64. package/dist/src/read-models/document-view.d.ts +21 -0
  65. package/dist/src/read-models/document-view.d.ts.map +1 -0
  66. package/dist/src/read-models/document-view.js +285 -0
  67. package/dist/src/read-models/document-view.js.map +1 -0
  68. package/dist/src/read-models/types.d.ts +46 -0
  69. package/dist/src/read-models/types.d.ts.map +1 -0
  70. package/dist/src/read-models/types.js +2 -0
  71. package/dist/src/read-models/types.js.map +1 -0
  72. package/dist/src/registry/implementation.d.ts +62 -0
  73. package/dist/src/registry/implementation.d.ts.map +1 -0
  74. package/dist/src/registry/implementation.js +96 -0
  75. package/dist/src/registry/implementation.js.map +1 -0
  76. package/dist/src/registry/index.d.ts +3 -0
  77. package/dist/src/registry/index.d.ts.map +1 -0
  78. package/dist/src/registry/index.js +2 -0
  79. package/dist/src/registry/index.js.map +1 -0
  80. package/dist/src/registry/interfaces.d.ts +39 -0
  81. package/dist/src/registry/interfaces.d.ts.map +1 -0
  82. package/dist/src/registry/interfaces.js +2 -0
  83. package/dist/src/registry/interfaces.js.map +1 -0
  84. package/dist/src/shared/awaiter.d.ts +32 -0
  85. package/dist/src/shared/awaiter.d.ts.map +1 -0
  86. package/dist/src/shared/awaiter.js +132 -0
  87. package/dist/src/shared/awaiter.js.map +1 -0
  88. package/dist/src/shared/errors.d.ts +9 -0
  89. package/dist/src/shared/errors.d.ts.map +1 -0
  90. package/dist/src/shared/errors.js +18 -0
  91. package/dist/src/shared/errors.js.map +1 -0
  92. package/dist/src/shared/factories.d.ts +16 -0
  93. package/dist/src/shared/factories.d.ts.map +1 -0
  94. package/dist/src/shared/factories.js +33 -0
  95. package/dist/src/shared/factories.js.map +1 -0
  96. package/dist/src/shared/types.d.ts +91 -19
  97. package/dist/src/shared/types.d.ts.map +1 -1
  98. package/dist/src/shared/types.js +35 -1
  99. package/dist/src/shared/types.js.map +1 -1
  100. package/dist/src/shared/utils.d.ts +3 -0
  101. package/dist/src/shared/utils.d.ts.map +1 -0
  102. package/dist/src/shared/utils.js +8 -0
  103. package/dist/src/shared/utils.js.map +1 -0
  104. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  105. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  106. package/dist/src/signer/passthrough-signer.js +6 -0
  107. package/dist/src/signer/passthrough-signer.js.map +1 -0
  108. package/dist/src/signer/types.d.ts +15 -0
  109. package/dist/src/signer/types.d.ts.map +1 -0
  110. package/dist/src/signer/types.js +2 -0
  111. package/dist/src/signer/types.js.map +1 -0
  112. package/dist/src/storage/interfaces.d.ts +125 -0
  113. package/dist/src/storage/interfaces.d.ts.map +1 -0
  114. package/dist/src/storage/interfaces.js +19 -0
  115. package/dist/src/storage/interfaces.js.map +1 -0
  116. package/dist/src/storage/kysely/store.d.ts +15 -0
  117. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  118. package/dist/src/storage/kysely/store.js +173 -0
  119. package/dist/src/storage/kysely/store.js.map +1 -0
  120. package/dist/src/storage/kysely/types.d.ts +26 -0
  121. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  122. package/dist/src/storage/kysely/types.js +2 -0
  123. package/dist/src/storage/kysely/types.js.map +1 -0
  124. package/dist/src/storage/txn.d.ts +15 -0
  125. package/dist/src/storage/txn.d.ts.map +1 -0
  126. package/dist/src/storage/txn.js +42 -0
  127. package/dist/src/storage/txn.js.map +1 -0
  128. package/dist/src/subs/default-error-handler.d.ts +13 -0
  129. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  130. package/dist/src/subs/default-error-handler.js +27 -0
  131. package/dist/src/subs/default-error-handler.js.map +1 -0
  132. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  133. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  134. package/dist/src/subs/react-subscription-manager.js +185 -0
  135. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  136. package/dist/src/subs/types.d.ts +64 -0
  137. package/dist/src/subs/types.d.ts.map +1 -0
  138. package/dist/src/subs/types.js +2 -0
  139. package/dist/src/subs/types.js.map +1 -0
  140. package/package.json +13 -5
  141. package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
  142. package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
  143. package/dist/bench/end-to-end-flow.bench.js +0 -256
  144. package/dist/bench/end-to-end-flow.bench.js.map +0 -1
  145. package/dist/bench/event-bus.bench.d.ts +0 -2
  146. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  147. package/dist/bench/event-bus.bench.js +0 -238
  148. package/dist/bench/event-bus.bench.js.map +0 -1
  149. package/dist/bench/queue-only.bench.d.ts +0 -2
  150. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  151. package/dist/bench/queue-only.bench.js +0 -40
  152. package/dist/bench/queue-only.bench.js.map +0 -1
  153. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  154. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  155. package/dist/bench/reactor-throughput.bench.js +0 -137
  156. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  157. package/dist/src/executor/job-executor.d.ts +0 -62
  158. package/dist/src/executor/job-executor.d.ts.map +0 -1
  159. package/dist/src/executor/job-executor.js +0 -325
  160. package/dist/src/executor/job-executor.js.map +0 -1
  161. package/dist/test/event-bus.test.d.ts +0 -2
  162. package/dist/test/event-bus.test.d.ts.map +0 -1
  163. package/dist/test/event-bus.test.js +0 -532
  164. package/dist/test/event-bus.test.js.map +0 -1
  165. package/dist/test/job-executor.test.d.ts +0 -2
  166. package/dist/test/job-executor.test.d.ts.map +0 -1
  167. package/dist/test/job-executor.test.js +0 -581
  168. package/dist/test/job-executor.test.js.map +0 -1
  169. package/dist/test/queue.test.d.ts +0 -2
  170. package/dist/test/queue.test.d.ts.map +0 -1
  171. package/dist/test/queue.test.js +0 -396
  172. package/dist/test/queue.test.js.map +0 -1
  173. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Simple job executor that processes a job by applying actions through document model reducers.
3
+ */
4
+ export class SimpleJobExecutor {
5
+ registry;
6
+ documentStorage;
7
+ operationStorage;
8
+ constructor(registry, documentStorage, operationStorage) {
9
+ this.registry = registry;
10
+ this.documentStorage = documentStorage;
11
+ this.operationStorage = operationStorage;
12
+ }
13
+ /**
14
+ * Execute a single job by applying its action through the appropriate reducer.
15
+ */
16
+ async executeJob(job) {
17
+ 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);
21
+ }
22
+ if (job.operation.action.type === "DELETE_DOCUMENT") {
23
+ return this.executeDeleteDocument(job, startTime);
24
+ }
25
+ let document;
26
+ try {
27
+ document = await this.documentStorage.get(job.documentId);
28
+ }
29
+ catch (error) {
30
+ return {
31
+ job,
32
+ success: false,
33
+ error: error instanceof Error ? error : new Error(String(error)),
34
+ duration: Date.now() - startTime,
35
+ };
36
+ }
37
+ let module;
38
+ try {
39
+ module = this.registry.getModule(document.header.documentType);
40
+ }
41
+ catch (error) {
42
+ return {
43
+ job,
44
+ success: false,
45
+ error: error instanceof Error ? error : new Error(String(error)),
46
+ duration: Date.now() - startTime,
47
+ };
48
+ }
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
57
+ try {
58
+ await this.operationStorage.addDocumentOperations(job.documentId, [newOperation], updatedDocument);
59
+ }
60
+ catch (error) {
61
+ return {
62
+ job,
63
+ success: false,
64
+ error: error instanceof Error ? error : new Error(String(error)),
65
+ duration: Date.now() - startTime,
66
+ };
67
+ }
68
+ return {
69
+ job,
70
+ success: true,
71
+ operation: newOperation,
72
+ duration: Date.now() - startTime,
73
+ };
74
+ }
75
+ /**
76
+ * Execute a CREATE_DOCUMENT system action.
77
+ * This creates a new document in storage along with its initial operations.
78
+ */
79
+ async executeCreateDocument(job, startTime) {
80
+ const action = job.operation.action;
81
+ 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) {
88
+ return {
89
+ job,
90
+ success: false,
91
+ error: new Error(`Failed to create document in storage: ${error instanceof Error ? error.message : String(error)}`),
92
+ duration: Date.now() - startTime,
93
+ };
94
+ }
95
+ // Create the operation from the job
96
+ const operation = job.operation;
97
+ // Write the CREATE_DOCUMENT operation to storage
98
+ try {
99
+ await this.operationStorage.addDocumentOperations(document.header.id, [operation], document);
100
+ }
101
+ catch (error) {
102
+ return {
103
+ job,
104
+ success: false,
105
+ error: new Error(`Failed to write CREATE_DOCUMENT operation to storage: ${error instanceof Error ? error.message : String(error)}`),
106
+ duration: Date.now() - startTime,
107
+ };
108
+ }
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) {
124
+ return {
125
+ job,
126
+ success: false,
127
+ error: new Error("DELETE_DOCUMENT action requires a documentId in input"),
128
+ duration: Date.now() - startTime,
129
+ };
130
+ }
131
+ const documentId = input.documentId;
132
+ try {
133
+ await this.documentStorage.delete(documentId);
134
+ }
135
+ catch (error) {
136
+ return {
137
+ job,
138
+ success: false,
139
+ error: new Error(`Failed to delete document from storage: ${error instanceof Error ? error.message : String(error)}`),
140
+ duration: Date.now() - startTime,
141
+ };
142
+ }
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
+ return {
147
+ job,
148
+ success: true,
149
+ operation,
150
+ duration: Date.now() - startTime,
151
+ };
152
+ }
153
+ }
154
+ //# sourceMappingURL=simple-job-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-job-executor.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Job } from "../queue/types.js";
1
+ import type { Job } from "../queue/types.js";
2
2
  /**
3
3
  * Represents the result of a job execution
4
4
  */
@@ -7,12 +7,14 @@ export type JobResult = {
7
7
  job: Job;
8
8
  /** Whether the job executed successfully */
9
9
  success: boolean;
10
- /** Error message if the job failed */
11
- error?: string;
10
+ /** Error if the job failed */
11
+ error?: Error;
12
+ /** The operation generated from the action (if successful) */
13
+ operation?: any;
12
14
  /** Timestamp when the job execution completed */
13
- completedAt: string;
15
+ completedAt?: string;
14
16
  /** Duration of job execution in milliseconds */
15
- duration: number;
17
+ duration?: number;
16
18
  /** Any additional metadata from the execution */
17
19
  metadata?: Record<string, any>;
18
20
  };
@@ -23,11 +25,11 @@ export type JobExecutorConfig = {
23
25
  /** Maximum number of concurrent jobs to execute */
24
26
  maxConcurrency?: number;
25
27
  /** Maximum time in milliseconds a job can run before being considered timed out */
26
- jobTimeout?: number;
28
+ jobTimeoutMs?: number;
27
29
  /** Base delay in milliseconds for exponential backoff retries */
28
- retryBaseDelay?: number;
30
+ retryBaseDelayMs?: number;
29
31
  /** Maximum delay in milliseconds for exponential backoff retries */
30
- retryMaxDelay?: number;
32
+ retryMaxDelayMs?: number;
31
33
  };
32
34
  /**
33
35
  * Event types for the job executor
@@ -64,4 +66,17 @@ export type ExecutorStoppedEvent = {
64
66
  stoppedAt: string;
65
67
  graceful: boolean;
66
68
  };
69
+ /**
70
+ * Status information for the job executor manager
71
+ */
72
+ export type ExecutorManagerStatus = {
73
+ /** Whether the manager is currently running */
74
+ isRunning: boolean;
75
+ /** Number of executor instances managed */
76
+ numExecutors: number;
77
+ /** Number of jobs currently being processed */
78
+ activeJobs: number;
79
+ /** Total number of jobs processed since start */
80
+ totalJobsProcessed: number;
81
+ };
67
82
  //# 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;AAExC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,gCAAgC;IAChC,GAAG,EAAE,GAAG,CAAC;IAET,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IAEjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IAEjB,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,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,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"}
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 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/types.ts"],"names":[],"mappings":"AA0CA;;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":"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,9 +1,26 @@
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
14
  export { EventBusAggregateError, 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 { InMemoryJobExecutor, JobExecutorEventTypes, type ExecutorStartedEvent, type ExecutorStoppedEvent, type IJobExecutor, type JobCompletedEvent, type JobExecutorConfig, type JobFailedEvent, type JobResult, type JobStartedEvent, } from "./executor/job-executor.js";
8
- export { type Operation } from "./shared/types.js";
18
+ export { type IJobExecutor, type IJobExecutorManager, } from "./executor/interfaces.js";
19
+ export { SimpleJobExecutorManager, type JobExecutorFactory, } from "./executor/simple-job-executor-manager.js";
20
+ export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
21
+ export { JobExecutorEventTypes, type ExecutorStartedEvent, type ExecutorStoppedEvent, type JobCompletedEvent, type JobExecutorConfig, type JobFailedEvent, type JobResult, type JobStartedEvent, } from "./executor/types.js";
22
+ export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, ModuleNotFoundError, type IDocumentModelRegistry, } from "./registry/index.js";
23
+ export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, type AtomicTxn, type IOperationStore, } from "./storage/interfaces.js";
24
+ export { KyselyOperationStore } from "./storage/kysely/store.js";
25
+ export type { Database, OperationTable } from "./storage/kysely/types.js";
9
26
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
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"}
package/dist/src/index.js CHANGED
@@ -1,8 +1,32 @@
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";
16
+ export {} from "./events/interfaces.js";
3
17
  export { EventBusAggregateError } 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";
6
22
  // Job Executor
7
- export { InMemoryJobExecutor, JobExecutorEventTypes, } from "./executor/job-executor.js";
23
+ export {} from "./executor/interfaces.js";
24
+ export { SimpleJobExecutorManager, } from "./executor/simple-job-executor-manager.js";
25
+ export { SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, } from "./executor/simple-job-executor.js";
26
+ export { JobExecutorEventTypes, } from "./executor/types.js";
27
+ // Document Model Registry
28
+ export { DocumentModelRegistry, DuplicateModuleError, InvalidModuleError, ModuleNotFoundError, } from "./registry/index.js";
29
+ // Storage
30
+ export { DuplicateOperationError, OptimisticLockError, RevisionMismatchError, } from "./storage/interfaces.js";
31
+ export { KyselyOperationStore } from "./storage/kysely/store.js";
8
32
  //# sourceMappingURL=index.js.map
@@ -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;AAEjD,OAAO,EAAE,sBAAsB,EAAoB,MAAM,mBAAmB,CAAC;AAI7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAStB,MAAM,4BAA4B,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,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,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
- * @returns Promise that resolves to the next job or null if no jobs available
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<Job | null>;
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
- * @returns Promise that resolves to the next job or null if no jobs available
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<Job | null>;
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;AAEjC;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;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;CAC3B"}
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<Job | null>;
23
- dequeueNext(): Promise<Job | null>;
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;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAsC,MAAM,YAAY,CAAC;AAErE;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;IAI9B,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA6B;gBAEzB,QAAQ,EAAE,SAAS;IAEvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,QAAQ;IASV,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBhC,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAsBhB,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAqBlC,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAMZ,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCvC,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAeV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
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"}