@powerhousedao/reactor 6.0.0-dev.105 → 6.0.0-dev.107

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 (242) hide show
  1. package/dist/index.d.ts +4306 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +9433 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +16 -18
  6. package/dist/src/actions/index.d.ts +0 -24
  7. package/dist/src/actions/index.d.ts.map +0 -1
  8. package/dist/src/admin/document-integrity-service.d.ts +0 -17
  9. package/dist/src/admin/document-integrity-service.d.ts.map +0 -1
  10. package/dist/src/admin/types.d.ts +0 -30
  11. package/dist/src/admin/types.d.ts.map +0 -1
  12. package/dist/src/cache/buffer/ring-buffer.d.ts +0 -37
  13. package/dist/src/cache/buffer/ring-buffer.d.ts.map +0 -1
  14. package/dist/src/cache/collection-membership-cache.d.ts +0 -14
  15. package/dist/src/cache/collection-membership-cache.d.ts.map +0 -1
  16. package/dist/src/cache/document-meta-cache-types.d.ts +0 -114
  17. package/dist/src/cache/document-meta-cache-types.d.ts.map +0 -1
  18. package/dist/src/cache/document-meta-cache.d.ts +0 -31
  19. package/dist/src/cache/document-meta-cache.d.ts.map +0 -1
  20. package/dist/src/cache/index.d.ts +0 -3
  21. package/dist/src/cache/index.d.ts.map +0 -1
  22. package/dist/src/cache/kysely-operation-index.d.ts +0 -24
  23. package/dist/src/cache/kysely-operation-index.d.ts.map +0 -1
  24. package/dist/src/cache/kysely-write-cache.d.ts +0 -142
  25. package/dist/src/cache/kysely-write-cache.d.ts.map +0 -1
  26. package/dist/src/cache/lru/lru-tracker.d.ts +0 -15
  27. package/dist/src/cache/lru/lru-tracker.d.ts.map +0 -1
  28. package/dist/src/cache/operation-index-types.d.ts +0 -64
  29. package/dist/src/cache/operation-index-types.d.ts.map +0 -1
  30. package/dist/src/cache/write/interfaces.d.ts +0 -88
  31. package/dist/src/cache/write/interfaces.d.ts.map +0 -1
  32. package/dist/src/cache/write-cache-types.d.ts +0 -42
  33. package/dist/src/cache/write-cache-types.d.ts.map +0 -1
  34. package/dist/src/client/reactor-client.d.ts +0 -121
  35. package/dist/src/client/reactor-client.d.ts.map +0 -1
  36. package/dist/src/client/types.d.ts +0 -260
  37. package/dist/src/client/types.d.ts.map +0 -1
  38. package/dist/src/core/reactor-builder.d.ts +0 -60
  39. package/dist/src/core/reactor-builder.d.ts.map +0 -1
  40. package/dist/src/core/reactor-client-builder.d.ts +0 -53
  41. package/dist/src/core/reactor-client-builder.d.ts.map +0 -1
  42. package/dist/src/core/reactor.d.ts +0 -56
  43. package/dist/src/core/reactor.d.ts.map +0 -1
  44. package/dist/src/core/types.d.ts +0 -312
  45. package/dist/src/core/types.d.ts.map +0 -1
  46. package/dist/src/core/utils.d.ts +0 -95
  47. package/dist/src/core/utils.d.ts.map +0 -1
  48. package/dist/src/events/event-bus.d.ts +0 -8
  49. package/dist/src/events/event-bus.d.ts.map +0 -1
  50. package/dist/src/events/interfaces.d.ts +0 -27
  51. package/dist/src/events/interfaces.d.ts.map +0 -1
  52. package/dist/src/events/types.d.ts +0 -92
  53. package/dist/src/events/types.d.ts.map +0 -1
  54. package/dist/src/executor/document-action-handler.d.ts +0 -30
  55. package/dist/src/executor/document-action-handler.d.ts.map +0 -1
  56. package/dist/src/executor/execution-scope.d.ts +0 -44
  57. package/dist/src/executor/execution-scope.d.ts.map +0 -1
  58. package/dist/src/executor/interfaces.d.ts +0 -49
  59. package/dist/src/executor/interfaces.d.ts.map +0 -1
  60. package/dist/src/executor/signature-verifier.d.ts +0 -9
  61. package/dist/src/executor/signature-verifier.d.ts.map +0 -1
  62. package/dist/src/executor/simple-job-executor-manager.d.ts +0 -40
  63. package/dist/src/executor/simple-job-executor-manager.d.ts.map +0 -1
  64. package/dist/src/executor/simple-job-executor.d.ts +0 -42
  65. package/dist/src/executor/simple-job-executor.d.ts.map +0 -1
  66. package/dist/src/executor/types.d.ts +0 -91
  67. package/dist/src/executor/types.d.ts.map +0 -1
  68. package/dist/src/executor/util.d.ts +0 -84
  69. package/dist/src/executor/util.d.ts.map +0 -1
  70. package/dist/src/index.d.ts +0 -56
  71. package/dist/src/index.d.ts.map +0 -1
  72. package/dist/src/index.js +0 -20714
  73. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -26
  74. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +0 -1
  75. package/dist/src/job-tracker/index.d.ts +0 -3
  76. package/dist/src/job-tracker/index.d.ts.map +0 -1
  77. package/dist/src/job-tracker/interfaces.d.ts +0 -41
  78. package/dist/src/job-tracker/interfaces.d.ts.map +0 -1
  79. package/dist/src/logging/console.d.ts +0 -2
  80. package/dist/src/logging/console.d.ts.map +0 -1
  81. package/dist/src/logging/types.d.ts +0 -2
  82. package/dist/src/logging/types.d.ts.map +0 -1
  83. package/dist/src/processors/index.d.ts +0 -2
  84. package/dist/src/processors/index.d.ts.map +0 -1
  85. package/dist/src/processors/processor-manager.d.ts +0 -51
  86. package/dist/src/processors/processor-manager.d.ts.map +0 -1
  87. package/dist/src/processors/utils.d.ts +0 -11
  88. package/dist/src/processors/utils.d.ts.map +0 -1
  89. package/dist/src/queue/interfaces.d.ts +0 -103
  90. package/dist/src/queue/interfaces.d.ts.map +0 -1
  91. package/dist/src/queue/job-execution-handle.d.ts +0 -28
  92. package/dist/src/queue/job-execution-handle.d.ts.map +0 -1
  93. package/dist/src/queue/queue.d.ts +0 -110
  94. package/dist/src/queue/queue.d.ts.map +0 -1
  95. package/dist/src/queue/types.d.ts +0 -74
  96. package/dist/src/queue/types.d.ts.map +0 -1
  97. package/dist/src/read-models/base-read-model.d.ts +0 -62
  98. package/dist/src/read-models/base-read-model.d.ts.map +0 -1
  99. package/dist/src/read-models/coordinator.d.ts +0 -39
  100. package/dist/src/read-models/coordinator.d.ts.map +0 -1
  101. package/dist/src/read-models/document-view.d.ts +0 -27
  102. package/dist/src/read-models/document-view.d.ts.map +0 -1
  103. package/dist/src/read-models/interfaces.d.ts +0 -29
  104. package/dist/src/read-models/interfaces.d.ts.map +0 -1
  105. package/dist/src/read-models/types.d.ts +0 -63
  106. package/dist/src/read-models/types.d.ts.map +0 -1
  107. package/dist/src/registry/document-model-resolver.d.ts +0 -29
  108. package/dist/src/registry/document-model-resolver.d.ts.map +0 -1
  109. package/dist/src/registry/implementation.d.ts +0 -74
  110. package/dist/src/registry/implementation.d.ts.map +0 -1
  111. package/dist/src/registry/index.d.ts +0 -5
  112. package/dist/src/registry/index.d.ts.map +0 -1
  113. package/dist/src/registry/interfaces.d.ts +0 -108
  114. package/dist/src/registry/interfaces.d.ts.map +0 -1
  115. package/dist/src/shared/awaiter.d.ts +0 -35
  116. package/dist/src/shared/awaiter.d.ts.map +0 -1
  117. package/dist/src/shared/collect-all-pages.d.ts +0 -7
  118. package/dist/src/shared/collect-all-pages.d.ts.map +0 -1
  119. package/dist/src/shared/consistency-tracker.d.ts +0 -48
  120. package/dist/src/shared/consistency-tracker.d.ts.map +0 -1
  121. package/dist/src/shared/drive-url.d.ts +0 -15
  122. package/dist/src/shared/drive-url.d.ts.map +0 -1
  123. package/dist/src/shared/errors.d.ts +0 -50
  124. package/dist/src/shared/errors.d.ts.map +0 -1
  125. package/dist/src/shared/factories.d.ts +0 -20
  126. package/dist/src/shared/factories.d.ts.map +0 -1
  127. package/dist/src/shared/types.d.ts +0 -161
  128. package/dist/src/shared/types.d.ts.map +0 -1
  129. package/dist/src/shared/utils.d.ts +0 -3
  130. package/dist/src/shared/utils.d.ts.map +0 -1
  131. package/dist/src/signer/passthrough-signer.d.ts +0 -12
  132. package/dist/src/signer/passthrough-signer.d.ts.map +0 -1
  133. package/dist/src/signer/types.d.ts +0 -17
  134. package/dist/src/signer/types.d.ts.map +0 -1
  135. package/dist/src/storage/index.d.ts +0 -4
  136. package/dist/src/storage/index.d.ts.map +0 -1
  137. package/dist/src/storage/interfaces.d.ts +0 -574
  138. package/dist/src/storage/interfaces.d.ts.map +0 -1
  139. package/dist/src/storage/kysely/document-indexer.d.ts +0 -27
  140. package/dist/src/storage/kysely/document-indexer.d.ts.map +0 -1
  141. package/dist/src/storage/kysely/keyframe-store.d.ts +0 -24
  142. package/dist/src/storage/kysely/keyframe-store.d.ts.map +0 -1
  143. package/dist/src/storage/kysely/store.d.ts +0 -21
  144. package/dist/src/storage/kysely/store.d.ts.map +0 -1
  145. package/dist/src/storage/kysely/sync-cursor-storage.d.ts +0 -13
  146. package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +0 -1
  147. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts +0 -18
  148. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.map +0 -1
  149. package/dist/src/storage/kysely/sync-remote-storage.d.ts +0 -13
  150. package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +0 -1
  151. package/dist/src/storage/kysely/types.d.ts +0 -157
  152. package/dist/src/storage/kysely/types.d.ts.map +0 -1
  153. package/dist/src/storage/migrations/001_create_operation_table.d.ts +0 -3
  154. package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +0 -1
  155. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts +0 -3
  156. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.map +0 -1
  157. package/dist/src/storage/migrations/003_create_document_table.d.ts +0 -3
  158. package/dist/src/storage/migrations/003_create_document_table.d.ts.map +0 -1
  159. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts +0 -3
  160. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.map +0 -1
  161. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts +0 -3
  162. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.map +0 -1
  163. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts +0 -3
  164. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.map +0 -1
  165. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts +0 -3
  166. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.map +0 -1
  167. package/dist/src/storage/migrations/008_create_view_state_table.d.ts +0 -3
  168. package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +0 -1
  169. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts +0 -3
  170. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.map +0 -1
  171. package/dist/src/storage/migrations/010_create_sync_tables.d.ts +0 -3
  172. package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +0 -1
  173. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts +0 -3
  174. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +0 -1
  175. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +0 -3
  176. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +0 -1
  177. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +0 -3
  178. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +0 -1
  179. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts +0 -3
  180. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts.map +0 -1
  181. package/dist/src/storage/migrations/index.d.ts +0 -3
  182. package/dist/src/storage/migrations/index.d.ts.map +0 -1
  183. package/dist/src/storage/migrations/migrator.d.ts +0 -6
  184. package/dist/src/storage/migrations/migrator.d.ts.map +0 -1
  185. package/dist/src/storage/migrations/run-migrations.d.ts +0 -2
  186. package/dist/src/storage/migrations/run-migrations.d.ts.map +0 -1
  187. package/dist/src/storage/migrations/types.d.ts +0 -9
  188. package/dist/src/storage/migrations/types.d.ts.map +0 -1
  189. package/dist/src/storage/txn.d.ts +0 -15
  190. package/dist/src/storage/txn.d.ts.map +0 -1
  191. package/dist/src/subs/default-error-handler.d.ts +0 -13
  192. package/dist/src/subs/default-error-handler.d.ts.map +0 -1
  193. package/dist/src/subs/react-subscription-manager.d.ts +0 -45
  194. package/dist/src/subs/react-subscription-manager.d.ts.map +0 -1
  195. package/dist/src/subs/subscription-notification-read-model.d.ts +0 -18
  196. package/dist/src/subs/subscription-notification-read-model.d.ts.map +0 -1
  197. package/dist/src/subs/types.d.ts +0 -64
  198. package/dist/src/subs/types.d.ts.map +0 -1
  199. package/dist/src/sync/batch-aggregator.d.ts +0 -25
  200. package/dist/src/sync/batch-aggregator.d.ts.map +0 -1
  201. package/dist/src/sync/buffered-mailbox.d.ts +0 -37
  202. package/dist/src/sync/buffered-mailbox.d.ts.map +0 -1
  203. package/dist/src/sync/channels/gql-req-channel.d.ts +0 -133
  204. package/dist/src/sync/channels/gql-req-channel.d.ts.map +0 -1
  205. package/dist/src/sync/channels/gql-request-channel-factory.d.ts +0 -32
  206. package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +0 -1
  207. package/dist/src/sync/channels/gql-res-channel.d.ts +0 -31
  208. package/dist/src/sync/channels/gql-res-channel.d.ts.map +0 -1
  209. package/dist/src/sync/channels/gql-response-channel-factory.d.ts +0 -13
  210. package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +0 -1
  211. package/dist/src/sync/channels/index.d.ts +0 -8
  212. package/dist/src/sync/channels/index.d.ts.map +0 -1
  213. package/dist/src/sync/channels/interval-poll-timer.d.ts +0 -40
  214. package/dist/src/sync/channels/interval-poll-timer.d.ts.map +0 -1
  215. package/dist/src/sync/channels/poll-timer.d.ts +0 -14
  216. package/dist/src/sync/channels/poll-timer.d.ts.map +0 -1
  217. package/dist/src/sync/channels/utils.d.ts +0 -44
  218. package/dist/src/sync/channels/utils.d.ts.map +0 -1
  219. package/dist/src/sync/errors.d.ts +0 -16
  220. package/dist/src/sync/errors.d.ts.map +0 -1
  221. package/dist/src/sync/index.d.ts +0 -16
  222. package/dist/src/sync/index.d.ts.map +0 -1
  223. package/dist/src/sync/interfaces.d.ts +0 -203
  224. package/dist/src/sync/interfaces.d.ts.map +0 -1
  225. package/dist/src/sync/mailbox.d.ts +0 -62
  226. package/dist/src/sync/mailbox.d.ts.map +0 -1
  227. package/dist/src/sync/sync-awaiter.d.ts +0 -34
  228. package/dist/src/sync/sync-awaiter.d.ts.map +0 -1
  229. package/dist/src/sync/sync-builder.d.ts +0 -23
  230. package/dist/src/sync/sync-builder.d.ts.map +0 -1
  231. package/dist/src/sync/sync-manager.d.ts +0 -51
  232. package/dist/src/sync/sync-manager.d.ts.map +0 -1
  233. package/dist/src/sync/sync-operation.d.ts +0 -30
  234. package/dist/src/sync/sync-operation.d.ts.map +0 -1
  235. package/dist/src/sync/sync-status-tracker.d.ts +0 -31
  236. package/dist/src/sync/sync-status-tracker.d.ts.map +0 -1
  237. package/dist/src/sync/types.d.ts +0 -165
  238. package/dist/src/sync/types.d.ts.map +0 -1
  239. package/dist/src/sync/utils.d.ts +0 -71
  240. package/dist/src/sync/utils.d.ts.map +0 -1
  241. package/dist/src/utils/reshuffle.d.ts +0 -47
  242. package/dist/src/utils/reshuffle.d.ts.map +0 -1
@@ -1,26 +0,0 @@
1
- import type { IEventBus } from "../events/interfaces.js";
2
- import type { Job } from "../queue/types.js";
3
- import type { ErrorInfo } from "../shared/types.js";
4
- import { type JobInfo } from "../shared/types.js";
5
- import type { IJobTracker } from "./interfaces.js";
6
- /**
7
- * In-memory implementation of IJobTracker.
8
- * Maintains job status in a Map for synchronous access.
9
- * Subscribes to operation events to update job states.
10
- */
11
- export declare class InMemoryJobTracker implements IJobTracker {
12
- private eventBus;
13
- private jobs;
14
- private unsubscribers;
15
- constructor(eventBus: IEventBus);
16
- private subscribeToEvents;
17
- private handleWriteReady;
18
- private handleReadReady;
19
- private handleJobFailed;
20
- shutdown(): void;
21
- registerJob(jobInfo: JobInfo): void;
22
- markRunning(jobId: string): void;
23
- markFailed(jobId: string, error: ErrorInfo, job?: Job): void;
24
- getJobStatus(jobId: string): JobInfo | null;
25
- }
26
- //# sourceMappingURL=in-memory-job-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-job-tracker.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIxC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,aAAa,CAAqB;gBAEtB,QAAQ,EAAE,SAAS;IAIvC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAWvB,QAAQ,IAAI,IAAI;IAOhB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBhC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI;IA0B5D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAI5C"}
@@ -1,3 +0,0 @@
1
- export { InMemoryJobTracker } from "./in-memory-job-tracker.js";
2
- export type { IJobTracker } from "./interfaces.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,41 +0,0 @@
1
- import type { Job } from "../queue/types.js";
2
- import type { ErrorInfo, JobInfo } from "../shared/types.js";
3
- /**
4
- * Interface for tracking job lifecycle status.
5
- * Maintains job state throughout execution: PENDING → RUNNING → COMPLETED/FAILED.
6
- */
7
- export interface IJobTracker {
8
- /**
9
- * Register a new job with PENDING status.
10
- *
11
- * @param jobInfo - The job information to register
12
- */
13
- registerJob(jobInfo: JobInfo): void;
14
- /**
15
- * Update a job's status to RUNNING.
16
- *
17
- * @param jobId - The job ID to mark as running
18
- */
19
- markRunning(jobId: string): void;
20
- /**
21
- * Mark a job as failed.
22
- *
23
- * @param jobId - The job ID to mark as failed
24
- * @param error - Error information including message and stack trace
25
- * @param job - Optional full job object for debugging purposes
26
- */
27
- markFailed(jobId: string, error: ErrorInfo, job?: Job): void;
28
- /**
29
- * Retrieve the current status of a job.
30
- *
31
- * @param jobId - The job ID to query
32
- * @returns The job information, or null if the job is not found
33
- */
34
- getJobStatus(jobId: string): JobInfo | null;
35
- /**
36
- * Shutdown the job tracker and clean up resources.
37
- * Unsubscribes from all event bus subscriptions.
38
- */
39
- shutdown(): void;
40
- }
41
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;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;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7D;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB"}
@@ -1,2 +0,0 @@
1
- export { ConsoleLogger } from "document-model/core";
2
- //# sourceMappingURL=console.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/logging/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,2 +0,0 @@
1
- export type { ILogger, LoggerErrorHandler } from "document-model/core";
2
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { ProcessorManager } from "./processor-manager.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,51 +0,0 @@
1
- import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
- import type { IProcessorManager, ProcessorFactory, TrackedProcessor } from "@powerhousedao/shared/processors";
3
- import type { Kysely } from "kysely";
4
- import type { IOperationIndex } from "../cache/operation-index-types.js";
5
- import type { IWriteCache } from "../cache/write/interfaces.js";
6
- import type { ILogger } from "../logging/types.js";
7
- import { BaseReadModel } from "../read-models/base-read-model.js";
8
- import type { DocumentViewDatabase } from "../read-models/types.js";
9
- import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
10
- /**
11
- * Manages processor lifecycle based on operations.
12
- * Extends BaseReadModel to receive operations from ReadModelCoordinator.
13
- *
14
- * Responsibilities:
15
- * 1. Detect drive creation from CREATE_DOCUMENT operations
16
- * 2. Create processors for each drive using registered factories
17
- * 3. Route operations to matching processors based on filters
18
- * 4. Clean up processors when drives are deleted or factories are unregistered
19
- * 5. Track per-processor cursors for failure recovery and backfill
20
- */
21
- export declare class ProcessorManager extends BaseReadModel implements IProcessorManager {
22
- private factoryRegistry;
23
- private processorsByDrive;
24
- private factoryToProcessors;
25
- private knownDriveIds;
26
- private cursorCache;
27
- private logger;
28
- constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, logger: ILogger);
29
- init(): Promise<void>;
30
- protected commitOperations(items: OperationWithContext[]): Promise<void>;
31
- registerFactory(identifier: string, factory: ProcessorFactory): Promise<void>;
32
- unregisterFactory(identifier: string): Promise<void>;
33
- get(processorId: string): TrackedProcessor | undefined;
34
- getAll(): TrackedProcessor[];
35
- private allTrackedProcessors;
36
- private detectAndRegisterNewDrives;
37
- private detectAndCleanupDeletedDrives;
38
- private discoverExistingDrives;
39
- private isDeletedDocumentADrive;
40
- private createProcessorsForDrive;
41
- private backfillProcessor;
42
- private retryProcessor;
43
- private cleanupDriveProcessors;
44
- private safeDisconnect;
45
- private routeOperationsToProcessors;
46
- private loadAllCursors;
47
- private safeSaveProcessorCursor;
48
- private saveProcessorCursor;
49
- private deleteProcessorCursors;
50
- }
51
- //# sourceMappingURL=processor-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor-manager.d.ts","sourceRoot":"","sources":["../../../src/processors/processor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EAEhB,gBAAgB,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAW5E;;;;;;;;;;GAUG;AACH,qBAAa,gBACX,SAAQ,aACR,YAAW,iBAAiB;IAE5B,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,mBAAmB,CACf;IACZ,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,MAAM,CAAU;gBAGtB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAChC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB,EACvC,MAAM,EAAE,OAAO;IASF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAMX,gBAAgB,CACvC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAMV,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAmBV,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAOtD,MAAM,IAAI,gBAAgB,EAAE;IAI5B,OAAO,CAAE,oBAAoB;YAMf,0BAA0B;YAyB1B,6BAA6B;YAgB7B,sBAAsB;IAapC,OAAO,CAAC,uBAAuB;YAIjB,wBAAwB;YAwGxB,iBAAiB;YAsCjB,cAAc;YASd,sBAAsB;YAiBtB,cAAc;YAQd,2BAA2B;YA0C3B,cAAc;YAWd,uBAAuB;YAcvB,mBAAmB;YAuCnB,sBAAsB;CAqBrC"}
@@ -1,11 +0,0 @@
1
- import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
- import type { ProcessorFilter } from "@powerhousedao/shared/processors";
3
- import type { PHDocumentHeader } from "document-model";
4
- export declare const DRIVE_DOCUMENT_TYPE = "powerhouse/document-drive";
5
- export declare function isDriveCreation(op: OperationWithContext): boolean;
6
- export declare function isDriveDeletion(op: OperationWithContext): boolean;
7
- export declare function extractDriveHeader(op: OperationWithContext): PHDocumentHeader | undefined;
8
- export declare function extractDeletedDocumentId(op: OperationWithContext): string | undefined;
9
- export declare function createMinimalDriveHeader(driveId: string): PHDocumentHeader;
10
- export declare function matchesFilter(op: OperationWithContext, filter: ProcessorFilter): boolean;
11
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/processors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAKjE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAEjE;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,oBAAoB,GACvB,gBAAgB,GAAG,SAAS,CAQ9B;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,oBAAoB,GACvB,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAe1E;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CA2BT"}
@@ -1,103 +0,0 @@
1
- import type { ErrorInfo } from "../shared/types.js";
2
- import type { IJobExecutionHandle, Job } from "./types.js";
3
- /**
4
- * Interface for a job queue that manages write operations.
5
- * Internally organizes jobs by documentId, scope, and branch to ensure proper ordering.
6
- * Emits events to the event bus when new jobs are available for consumption.
7
- */
8
- export interface IQueue {
9
- /**
10
- * Add a new job to the queue.
11
- * Jobs are automatically organized by documentId, scope, and branch internally.
12
- * Emits a 'jobAvailable' event to the event bus when the job is queued.
13
- * @param job - The job to add to the queue
14
- * @returns Promise that resolves when the job is queued
15
- */
16
- enqueue(job: Job): Promise<void>;
17
- /**
18
- * Get the next job to execute for a specific document/scope/branch combination.
19
- * @param documentId - The document ID to get jobs for
20
- * @param scope - The scope to get jobs for
21
- * @param branch - The branch to get jobs for
22
- * @param signal - Optional abort signal to cancel the request
23
- * @returns Promise that resolves to the next job execution handle or null if no jobs available
24
- */
25
- dequeue(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
26
- /**
27
- * Get the next available job from any queue.
28
- * @param signal - Optional abort signal to cancel the request
29
- * @returns Promise that resolves to the next job execution handle or null if no jobs available
30
- */
31
- dequeueNext(signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
32
- /**
33
- * Get the current size of the queue for a specific document/scope/branch.
34
- * @param documentId - The document ID
35
- * @param scope - The scope
36
- * @param branch - The branch
37
- * @returns Promise that resolves to the number of jobs in the queue
38
- */
39
- size(documentId: string, scope: string, branch: string): Promise<number>;
40
- /**
41
- * Get the total size of all queues.
42
- * @returns Promise that resolves to the total number of jobs across all queues
43
- */
44
- totalSize(): Promise<number>;
45
- /**
46
- * Remove a specific job from the queue.
47
- * @param jobId - The ID of the job to remove
48
- * @returns Promise that resolves to true if job was removed, false if not found
49
- */
50
- remove(jobId: string): Promise<boolean>;
51
- /**
52
- * Clear all jobs for a specific document/scope/branch combination.
53
- * @param documentId - The document ID
54
- * @param scope - The scope
55
- * @param branch - The branch
56
- * @returns Promise that resolves when the queue is cleared
57
- */
58
- clear(documentId: string, scope: string, branch: string): Promise<void>;
59
- /**
60
- * Clear all jobs from all queues.
61
- * @returns Promise that resolves when all queues are cleared
62
- */
63
- clearAll(): Promise<void>;
64
- /**
65
- * Check if there are any jobs in the queue.
66
- * @returns Promise that resolves to true if there are jobs, false otherwise
67
- */
68
- hasJobs(): Promise<boolean>;
69
- /**
70
- * Mark a job as completed.
71
- * @param jobId - The ID of the job to mark as completed
72
- * @returns Promise that resolves when the job is marked as completed
73
- */
74
- completeJob(jobId: string): Promise<void>;
75
- /**
76
- * Mark a job as failed.
77
- * @param jobId - The ID of the job to mark as failed
78
- * @param error - Optional error information
79
- * @returns Promise that resolves when the job is marked as failed
80
- */
81
- failJob(jobId: string, error?: ErrorInfo): Promise<void>;
82
- /**
83
- * Retry a failed job.
84
- * @param jobId - The ID of the job to retry
85
- * @param error - Optional error information from the failure
86
- * @returns Promise that resolves when the job is requeued for retry
87
- */
88
- retryJob(jobId: string, error?: ErrorInfo): Promise<void>;
89
- /**
90
- * Returns true if and only if all jobs have been resolved.
91
- */
92
- get isDrained(): boolean;
93
- /**
94
- * Blocks the queue from accepting new jobs.
95
- * @param onDrained - Optional callback to call when the queue is drained
96
- */
97
- block(onDrained?: () => void): void;
98
- /**
99
- * Unblocks the queue from accepting new jobs.
100
- */
101
- unblock(): void;
102
- }
103
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/queue/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,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,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;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,28 +0,0 @@
1
- import type { ErrorInfo } from "../shared/types.js";
2
- import type { IJobExecutionHandle, Job } from "./types.js";
3
- import { JobQueueState } from "./types.js";
4
- /**
5
- * Implementation of the IJobExecutionHandle interface
6
- */
7
- export declare class JobExecutionHandle implements IJobExecutionHandle {
8
- private _state;
9
- private _job;
10
- private onStart?;
11
- private onComplete?;
12
- private onFail?;
13
- private onDefer?;
14
- private getStateName;
15
- constructor(job: Job, initialState: JobQueueState, callbacks?: {
16
- onStart?: () => void;
17
- onComplete?: () => void;
18
- onFail?: (error: ErrorInfo) => void;
19
- onDefer?: () => void;
20
- });
21
- get job(): Job;
22
- get state(): JobQueueState;
23
- start(): void;
24
- complete(): void;
25
- fail(error: ErrorInfo): void;
26
- defer(): void;
27
- }
28
- //# sourceMappingURL=job-execution-handle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-execution-handle.d.ts","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,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,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,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,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB;IAUH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,KAAK,IAAI,IAAI;IAUb,QAAQ,IAAI,IAAI;IAUhB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAU5B,KAAK,IAAI,IAAI;CASd"}
@@ -1,110 +0,0 @@
1
- import type { IEventBus } from "../events/interfaces.js";
2
- import type { IDocumentModelResolver } from "../registry/document-model-resolver.js";
3
- import type { ErrorInfo } from "../shared/types.js";
4
- import type { IQueue } from "./interfaces.js";
5
- import type { IJobExecutionHandle, Job } from "./types.js";
6
- /**
7
- * In-memory implementation of the IQueue interface.
8
- * Organizes jobs by documentId, scope, and branch to ensure proper ordering.
9
- * Ensures serial execution per document by tracking executing jobs.
10
- * Implements dependency management through queue hints.
11
- */
12
- export declare class InMemoryQueue implements IQueue {
13
- private eventBus;
14
- private resolver;
15
- private queues;
16
- private jobIdToQueueKey;
17
- private docIdToJobId;
18
- private jobIdToDocId;
19
- private completedJobs;
20
- private jobIndex;
21
- private isBlocked;
22
- private onDrainedCallback?;
23
- private isPausedFlag;
24
- constructor(eventBus: IEventBus, resolver: IDocumentModelResolver);
25
- private toErrorInfo;
26
- /**
27
- * Creates a unique key for a document/scope/branch combination
28
- */
29
- private createQueueKey;
30
- /**
31
- * Gets or creates a queue for the given key
32
- */
33
- private getQueue;
34
- /**
35
- * Check if a document has any jobs currently executing
36
- */
37
- private isDocumentExecuting;
38
- /**
39
- * Mark a job as executing for its document
40
- */
41
- private markJobExecuting;
42
- /**
43
- * Mark a job as no longer executing for its document
44
- */
45
- private markJobComplete;
46
- /**
47
- * Check if all dependencies for a job have been completed
48
- */
49
- private areDependenciesMet;
50
- /**
51
- * Get the next job that has all its dependencies met
52
- */
53
- private getNextJobWithMetDependencies;
54
- private getCreateDocumentType;
55
- enqueue(job: Job): Promise<void>;
56
- dequeue(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
57
- dequeueNext(signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
58
- size(documentId: string, scope: string, branch: string): Promise<number>;
59
- totalSize(): Promise<number>;
60
- remove(jobId: string): Promise<boolean>;
61
- clear(documentId: string, scope: string, branch: string): Promise<void>;
62
- clearAll(): Promise<void>;
63
- hasJobs(): Promise<boolean>;
64
- completeJob(jobId: string): Promise<void>;
65
- failJob(jobId: string, error?: ErrorInfo): Promise<void>;
66
- deferJob(jobId: string): void;
67
- retryJob(jobId: string, error?: ErrorInfo): Promise<void>;
68
- /**
69
- * Check if the queue is drained and call the callback if it is
70
- */
71
- private checkDrained;
72
- /**
73
- * Returns true if and only if all jobs have been resolved.
74
- */
75
- get isDrained(): boolean;
76
- /**
77
- * Blocks the queue from accepting new jobs.
78
- * @param onDrained - Optional callback to call when the queue is drained
79
- */
80
- block(onDrained?: () => void): void;
81
- /**
82
- * Unblocks the queue from accepting new jobs.
83
- */
84
- unblock(): void;
85
- /**
86
- * Pauses job dequeuing. Jobs can still be enqueued but dequeueNext() will return null.
87
- */
88
- pause(): void;
89
- /**
90
- * Resumes job dequeuing and emits JOB_AVAILABLE events for pending jobs to wake up executors.
91
- */
92
- resume(): Promise<void>;
93
- /**
94
- * Returns whether job dequeuing is paused.
95
- */
96
- get paused(): boolean;
97
- /**
98
- * Returns all pending jobs across all queues.
99
- */
100
- getPendingJobs(): Job[];
101
- /**
102
- * Returns a map of document IDs to sets of executing job IDs.
103
- */
104
- getExecutingJobIds(): Map<string, Set<string>>;
105
- /**
106
- * Returns a job by ID from the job index.
107
- */
108
- getJob(jobId: string): Job | undefined;
109
- }
110
- //# sourceMappingURL=queue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- import type { Action, Operation } from "document-model";
2
- import type { ErrorInfo, JobMeta } from "../shared/types.js";
3
- export type JobKind = "mutation" | "load";
4
- /**
5
- * State of a job in the queue
6
- */
7
- export declare enum JobQueueState {
8
- UNKNOWN = -1,
9
- PREPROCESSING = 0,
10
- PENDING = 1,
11
- READY = 2,
12
- RUNNING = 3,
13
- RESOLVED = 4
14
- }
15
- /**
16
- * Interface for a job execution handle
17
- */
18
- export interface IJobExecutionHandle {
19
- readonly job: Job;
20
- readonly state: JobQueueState;
21
- start(): void;
22
- complete(): void;
23
- fail(error: ErrorInfo): void;
24
- defer(): void;
25
- }
26
- /**
27
- * Represents a job to be executed by the job executor
28
- */
29
- export type Job = {
30
- /** Unique identifier for the job */
31
- id: string;
32
- /** Classification of the job so executors can switch behavior */
33
- kind: JobKind;
34
- /** The document ID this job operates on */
35
- documentId: string;
36
- /** The scope of the operations */
37
- scope: string;
38
- /** The branch of the operations */
39
- branch: string;
40
- /** The actions to be executed (processed sequentially) */
41
- actions: Action[];
42
- /** Pre-existing operations to import (used for load jobs) */
43
- operations: Operation[];
44
- /** Timestamp when the job was created */
45
- createdAt: string;
46
- /** The hint for the queue to use for ordering the job */
47
- queueHint: string[];
48
- /** Number of retry attempts */
49
- retryCount?: number;
50
- /** Maximum number of retries allowed */
51
- maxRetries?: number;
52
- /** Last error if job failed */
53
- lastError?: ErrorInfo;
54
- /** History of all errors from each attempt (ordered) */
55
- errorHistory: ErrorInfo[];
56
- /** Metadata that flows through the job lifecycle */
57
- meta: JobMeta;
58
- };
59
- /**
60
- * Event types for the queue system
61
- */
62
- export declare const QueueEventTypes: {
63
- readonly JOB_AVAILABLE: 10000;
64
- };
65
- /**
66
- * Event data for job available events
67
- */
68
- export type JobAvailableEvent = {
69
- documentId: string;
70
- scope: string;
71
- branch: string;
72
- jobId: string;
73
- };
74
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,KAAK;IACZ,aAAa,IAAI;IACjB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,OAAO,IAAI;IACX,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,IAAI,CAAC;IACjB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IAEX,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IAEd,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,6DAA6D;IAC7D,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,wDAAwD;IACxD,YAAY,EAAE,SAAS,EAAE,CAAC;IAE1B,oDAAoD;IACpD,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;CAElB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -1,62 +0,0 @@
1
- import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
- import type { Kysely, Transaction } from "kysely";
3
- import type { IOperationIndex } from "../cache/operation-index-types.js";
4
- import type { IWriteCache } from "../cache/write/interfaces.js";
5
- import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
6
- import type { ConsistencyToken } from "../shared/types.js";
7
- import type { IReadModel } from "./interfaces.js";
8
- import type { DocumentViewDatabase } from "./types.js";
9
- export type BaseReadModelConfig = {
10
- readModelId: string;
11
- rebuildStateOnInit: boolean;
12
- };
13
- /**
14
- * Base class for read models that provides catch-up/rewind functionality.
15
- * Handles initialization, state tracking via ViewState table, and consistency tracking.
16
- * Subclasses override commitOperations() with their specific domain logic.
17
- */
18
- export declare class BaseReadModel implements IReadModel {
19
- protected db: Kysely<DocumentViewDatabase>;
20
- protected operationIndex: IOperationIndex;
21
- protected writeCache: IWriteCache;
22
- protected consistencyTracker: IConsistencyTracker;
23
- protected config: BaseReadModelConfig;
24
- protected lastOrdinal: number;
25
- constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, config: BaseReadModelConfig);
26
- /**
27
- * Initializes the read model by loading state and catching up on missed operations.
28
- */
29
- init(): Promise<void>;
30
- /**
31
- * Template method: runs domain-specific commitOperations, then persists
32
- * state and updates consistency tracking.
33
- */
34
- indexOperations(items: OperationWithContext[]): Promise<void>;
35
- /**
36
- * Waits for the read model to reach the specified consistency level.
37
- */
38
- waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
39
- protected commitOperations(items: OperationWithContext[]): Promise<void>;
40
- /**
41
- * Rebuilds document state for each operation using the write cache.
42
- */
43
- protected rebuildStateForOperations(operations: OperationWithContext[]): Promise<OperationWithContext[]>;
44
- /**
45
- * Loads the last processed ordinal from the ViewState table.
46
- * Returns undefined if no state exists for this read model.
47
- */
48
- protected loadState(): Promise<number | undefined>;
49
- /**
50
- * Initializes the ViewState row for this read model.
51
- */
52
- protected initializeState(): Promise<void>;
53
- /**
54
- * Saves the last processed ordinal to the ViewState table.
55
- */
56
- protected saveState(trx: Transaction<DocumentViewDatabase>, items: OperationWithContext[]): Promise<void>;
57
- /**
58
- * Updates the consistency tracker with the processed operations.
59
- */
60
- protected updateConsistencyTracker(items: OperationWithContext[]): void;
61
- }
62
- //# sourceMappingURL=base-read-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-read-model.d.ts","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAc,YAAW,UAAU;IAI5C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAC1C,SAAS,CAAC,cAAc,EAAE,eAAe;IACzC,SAAS,CAAC,UAAU,EAAE,WAAW;IACjC,SAAS,CAAC,kBAAkB,EAAE,mBAAmB;IACjD,SAAS,CAAC,MAAM,EAAE,mBAAmB;IAPvC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;gBAGtB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAChC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB,EACvC,MAAM,EAAE,mBAAmB;IAGvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B;;;OAGG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;cAQA,gBAAgB,CAE9B,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;cACa,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0BlC;;;OAGG;cACa,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWxD;;OAEG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;OAEG;cACa,SAAS,CACvB,GAAG,EAAE,WAAW,CAAC,oBAAoB,CAAC,EACtC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI;CAexE"}
@@ -1,39 +0,0 @@
1
- import type { IEventBus } from "../events/interfaces.js";
2
- import type { IReadModel, IReadModelCoordinator } from "./interfaces.js";
3
- /**
4
- * Coordinates read model synchronization by listening to operation write events
5
- * and updating all registered read models in parallel.
6
- *
7
- * This coordinator is responsible for:
8
- * - Subscribing to OPERATION_WRITTEN events from the event bus
9
- * - Distributing operation updates to all registered read models
10
- * - Managing the lifecycle of read model subscriptions
11
- *
12
- * Read models are updated asynchronously and in parallel to avoid blocking
13
- * the write path. Errors in read model updates are propagated through the
14
- * event bus but do not affect the write operation success.
15
- */
16
- export declare class ReadModelCoordinator implements IReadModelCoordinator {
17
- private eventBus;
18
- readonly preReady: IReadModel[];
19
- readonly postReady: IReadModel[];
20
- private unsubscribe?;
21
- private isRunning;
22
- constructor(eventBus: IEventBus, preReady: IReadModel[], postReady: IReadModel[]);
23
- /**
24
- * Start listening for operation events and updating read models.
25
- * Can be called multiple times safely (subsequent calls are no-ops).
26
- */
27
- start(): void;
28
- /**
29
- * Stop listening and clean up subscriptions.
30
- * Can be called multiple times safely (subsequent calls are no-ops).
31
- */
32
- stop(): void;
33
- /**
34
- * Handle write ready events by updating all read models in parallel.
35
- * Errors from individual read models are collected and re-thrown as an aggregate.
36
- */
37
- private handleWriteReady;
38
- }
39
- //# sourceMappingURL=coordinator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAK9D,OAAO,CAAC,QAAQ;aACA,QAAQ,EAAE,UAAU,EAAE;aACtB,SAAS,EAAE,UAAU,EAAE;IANzC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAS;gBAGhB,QAAQ,EAAE,SAAS,EACX,QAAQ,EAAE,UAAU,EAAE,EACtB,SAAS,EAAE,UAAU,EAAE;IAKzC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgBb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAaZ;;;OAGG;YACW,gBAAgB;CAsB/B"}