@powerhousedao/reactor 4.1.0-dev.5 → 4.1.0-dev.50

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 (148) hide show
  1. package/dist/bench/event-bus.bench.js +18 -28
  2. package/dist/bench/event-bus.bench.js.map +1 -1
  3. package/dist/bench/queue-only.bench.js +9 -3
  4. package/dist/bench/queue-only.bench.js.map +1 -1
  5. package/dist/bench/reactor-throughput.bench.js +42 -35
  6. package/dist/bench/reactor-throughput.bench.js.map +1 -1
  7. package/dist/src/events/event-bus.d.ts +3 -3
  8. package/dist/src/events/event-bus.d.ts.map +1 -1
  9. package/dist/src/events/event-bus.js +1 -1
  10. package/dist/src/events/event-bus.js.map +1 -1
  11. package/dist/src/events/interfaces.d.ts +1 -1
  12. package/dist/src/events/interfaces.d.ts.map +1 -1
  13. package/dist/src/events/types.d.ts +1 -1
  14. package/dist/src/events/types.d.ts.map +1 -1
  15. package/dist/src/events/types.js.map +1 -1
  16. package/dist/src/executor/interfaces.d.ts +31 -54
  17. package/dist/src/executor/interfaces.d.ts.map +1 -1
  18. package/dist/src/executor/simple-job-executor-manager.d.ts +27 -0
  19. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  20. package/dist/src/executor/simple-job-executor-manager.js +128 -0
  21. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  22. package/dist/src/executor/simple-job-executor.d.ts +19 -0
  23. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  24. package/dist/src/executor/simple-job-executor.js +69 -0
  25. package/dist/src/executor/simple-job-executor.js.map +1 -0
  26. package/dist/src/executor/types.d.ts +23 -8
  27. package/dist/src/executor/types.d.ts.map +1 -1
  28. package/dist/src/executor/types.js.map +1 -1
  29. package/dist/src/index.d.ts +9 -2
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +8 -2
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/interfaces/reactor.d.ts +121 -0
  34. package/dist/src/interfaces/reactor.d.ts.map +1 -0
  35. package/dist/src/interfaces/reactor.js +2 -0
  36. package/dist/src/interfaces/reactor.js.map +1 -0
  37. package/dist/src/queue/interfaces.d.ts +45 -5
  38. package/dist/src/queue/interfaces.d.ts.map +1 -1
  39. package/dist/src/queue/job-execution-handle.d.ts +23 -0
  40. package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
  41. package/dist/src/queue/job-execution-handle.js +62 -0
  42. package/dist/src/queue/job-execution-handle.js.map +1 -0
  43. package/dist/src/queue/queue.d.ts +54 -5
  44. package/dist/src/queue/queue.d.ts.map +1 -1
  45. package/dist/src/queue/queue.js +237 -23
  46. package/dist/src/queue/queue.js.map +1 -1
  47. package/dist/src/queue/types.d.ts +26 -1
  48. package/dist/src/queue/types.d.ts.map +1 -1
  49. package/dist/src/queue/types.js +12 -0
  50. package/dist/src/queue/types.js.map +1 -1
  51. package/dist/src/reactor.d.ts +109 -0
  52. package/dist/src/reactor.d.ts.map +1 -0
  53. package/dist/src/reactor.js +610 -0
  54. package/dist/src/reactor.js.map +1 -0
  55. package/dist/src/registry/implementation.d.ts +62 -0
  56. package/dist/src/registry/implementation.d.ts.map +1 -0
  57. package/dist/src/registry/implementation.js +96 -0
  58. package/dist/src/registry/implementation.js.map +1 -0
  59. package/dist/src/registry/index.d.ts +3 -0
  60. package/dist/src/registry/index.d.ts.map +1 -0
  61. package/dist/src/registry/index.js +2 -0
  62. package/dist/src/registry/index.js.map +1 -0
  63. package/dist/src/registry/interfaces.d.ts +39 -0
  64. package/dist/src/registry/interfaces.d.ts.map +1 -0
  65. package/dist/src/registry/interfaces.js +2 -0
  66. package/dist/src/registry/interfaces.js.map +1 -0
  67. package/dist/src/shared/factories.d.ts +16 -0
  68. package/dist/src/shared/factories.d.ts.map +1 -0
  69. package/dist/src/shared/factories.js +33 -0
  70. package/dist/src/shared/factories.js.map +1 -0
  71. package/dist/src/shared/types.d.ts +83 -19
  72. package/dist/src/shared/types.d.ts.map +1 -1
  73. package/dist/src/shared/types.js +30 -1
  74. package/dist/src/shared/types.js.map +1 -1
  75. package/dist/src/shared/utils.d.ts +3 -0
  76. package/dist/src/shared/utils.d.ts.map +1 -0
  77. package/dist/src/shared/utils.js +8 -0
  78. package/dist/src/shared/utils.js.map +1 -0
  79. package/dist/src/utils.d.ts +11 -0
  80. package/dist/src/utils.d.ts.map +1 -0
  81. package/dist/src/utils.js +31 -0
  82. package/dist/src/utils.js.map +1 -0
  83. package/dist/test/event-bus.test.js +23 -14
  84. package/dist/test/event-bus.test.js.map +1 -1
  85. package/dist/test/executor/executor-integration.test.d.ts +2 -0
  86. package/dist/test/executor/executor-integration.test.d.ts.map +1 -0
  87. package/dist/test/executor/executor-integration.test.js +287 -0
  88. package/dist/test/executor/executor-integration.test.js.map +1 -0
  89. package/dist/test/executor/job-execution-handle.test.d.ts +2 -0
  90. package/dist/test/executor/job-execution-handle.test.d.ts.map +1 -0
  91. package/dist/test/executor/job-execution-handle.test.js +272 -0
  92. package/dist/test/executor/job-execution-handle.test.js.map +1 -0
  93. package/dist/test/executor/simple-job-executor-manager.test.d.ts +2 -0
  94. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +1 -0
  95. package/dist/test/executor/simple-job-executor-manager.test.js +132 -0
  96. package/dist/test/executor/simple-job-executor-manager.test.js.map +1 -0
  97. package/dist/test/executor/simple-job-executor.test.d.ts +2 -0
  98. package/dist/test/executor/simple-job-executor.test.d.ts.map +1 -0
  99. package/dist/test/executor/simple-job-executor.test.js +139 -0
  100. package/dist/test/executor/simple-job-executor.test.js.map +1 -0
  101. package/dist/test/factories.d.ts +122 -0
  102. package/dist/test/factories.d.ts.map +1 -0
  103. package/dist/test/factories.js +319 -0
  104. package/dist/test/factories.js.map +1 -0
  105. package/dist/test/integration/document-drive-integration.test.d.ts +2 -0
  106. package/dist/test/integration/document-drive-integration.test.d.ts.map +1 -0
  107. package/dist/test/integration/document-drive-integration.test.js +1102 -0
  108. package/dist/test/integration/document-drive-integration.test.js.map +1 -0
  109. package/dist/test/integration/reactor-read.test.d.ts +2 -0
  110. package/dist/test/integration/reactor-read.test.d.ts.map +1 -0
  111. package/dist/test/integration/reactor-read.test.js +300 -0
  112. package/dist/test/integration/reactor-read.test.js.map +1 -0
  113. package/dist/test/queue/queue-integration.test.d.ts +2 -0
  114. package/dist/test/queue/queue-integration.test.d.ts.map +1 -0
  115. package/dist/test/queue/queue-integration.test.js +322 -0
  116. package/dist/test/queue/queue-integration.test.js.map +1 -0
  117. package/dist/test/{queue.test.d.ts.map → queue/queue.test.d.ts.map} +1 -1
  118. package/dist/test/queue/queue.test.js +770 -0
  119. package/dist/test/queue/queue.test.js.map +1 -0
  120. package/dist/test/registry/registry.test.d.ts +2 -0
  121. package/dist/test/registry/registry.test.d.ts.map +1 -0
  122. package/dist/test/registry/registry.test.js +182 -0
  123. package/dist/test/registry/registry.test.js.map +1 -0
  124. package/dist/test/utils.test.d.ts +2 -0
  125. package/dist/test/utils.test.d.ts.map +1 -0
  126. package/dist/test/utils.test.js +66 -0
  127. package/dist/test/utils.test.js.map +1 -0
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/dist/vitest.config.d.ts +3 -0
  130. package/dist/vitest.config.d.ts.map +1 -0
  131. package/dist/vitest.config.js +11 -0
  132. package/dist/vitest.config.js.map +1 -0
  133. package/package.json +6 -1
  134. package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
  135. package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
  136. package/dist/bench/end-to-end-flow.bench.js +0 -256
  137. package/dist/bench/end-to-end-flow.bench.js.map +0 -1
  138. package/dist/src/executor/job-executor.d.ts +0 -62
  139. package/dist/src/executor/job-executor.d.ts.map +0 -1
  140. package/dist/src/executor/job-executor.js +0 -325
  141. package/dist/src/executor/job-executor.js.map +0 -1
  142. package/dist/test/job-executor.test.d.ts +0 -2
  143. package/dist/test/job-executor.test.d.ts.map +0 -1
  144. package/dist/test/job-executor.test.js +0 -581
  145. package/dist/test/job-executor.test.js.map +0 -1
  146. package/dist/test/queue.test.js +0 -396
  147. package/dist/test/queue.test.js.map +0 -1
  148. /package/dist/test/{queue.test.d.ts → queue/queue.test.d.ts} +0 -0
@@ -0,0 +1,109 @@
1
+ import type { BaseDocumentDriveServer } from "document-drive";
2
+ import type { IDocumentStorage } from "document-drive/storage/types";
3
+ import type { Action, DocumentModelState, Operation, PHDocument } from "document-model";
4
+ import type { IEventBus } from "./events/interfaces.js";
5
+ import type { IJobExecutor } from "./executor/interfaces.js";
6
+ import type { IReactor } from "./interfaces/reactor.js";
7
+ import type { IQueue } from "./queue/interfaces.js";
8
+ import { JobStatus, type JobInfo, type PagedResults, type PagingOptions, type PropagationMode, type SearchFilter, type ShutdownStatus, type ViewFilter } from "./shared/types.js";
9
+ /**
10
+ * The Reactor facade implementation.
11
+ *
12
+ * This class implements the IReactor interface and serves as the main entry point
13
+ * for the new Reactor architecture. In Phase 2 of the refactoring plan, it acts
14
+ * as a facade over the existing BaseDocumentDriveServer while we incrementally
15
+ * migrate to the new architecture.
16
+ *
17
+ * The facade pattern allows us to:
18
+ * 1. Present the new IReactor API to clients immediately
19
+ * 2. Internally delegate to the refactored BaseDocumentDriveServer (post Phase 1)
20
+ * 3. Incrementally replace internal implementations without breaking clients
21
+ * 4. Validate the new architecture alongside the existing system
22
+ */
23
+ export declare class Reactor implements IReactor {
24
+ private driveServer;
25
+ private documentStorage;
26
+ private shutdownStatus;
27
+ private setShutdown;
28
+ private eventBus;
29
+ private queue;
30
+ private jobExecutor;
31
+ private jobExecutorStarted;
32
+ constructor(driveServer: BaseDocumentDriveServer, documentStorage: IDocumentStorage, eventBus: IEventBus, queue: IQueue, jobExecutor: IJobExecutor);
33
+ /**
34
+ * Signals that the reactor should shutdown.
35
+ */
36
+ kill(): ShutdownStatus;
37
+ /**
38
+ * Retrieves a list of document model specifications
39
+ */
40
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelState>>;
41
+ /**
42
+ * Retrieves a specific PHDocument by id
43
+ */
44
+ get<TDocument extends PHDocument>(id: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
45
+ document: TDocument;
46
+ childIds: string[];
47
+ }>;
48
+ /**
49
+ * Retrieves a specific PHDocument by slug
50
+ */
51
+ getBySlug<TDocument extends PHDocument>(slug: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
52
+ document: TDocument;
53
+ childIds: string[];
54
+ }>;
55
+ /**
56
+ * Retrieves the operations for a document
57
+ */
58
+ getOperations(documentId: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<Record<string, PagedResults<Operation>>>;
59
+ /**
60
+ * Filters documents by criteria and returns a list of them
61
+ */
62
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
63
+ /**
64
+ * Creates a document
65
+ */
66
+ create(document: PHDocument, signal?: AbortSignal): Promise<JobStatus>;
67
+ /**
68
+ * Deletes a document
69
+ */
70
+ deleteDocument(id: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<JobInfo>;
71
+ /**
72
+ * Applies a list of actions to a document
73
+ */
74
+ mutate(id: string, actions: Action[]): Promise<JobInfo>;
75
+ /**
76
+ * Adds multiple documents as children to another
77
+ */
78
+ addChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
79
+ /**
80
+ * Removes multiple documents as children from another
81
+ */
82
+ removeChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
83
+ /**
84
+ * Retrieves the status of a job
85
+ */
86
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
87
+ /**
88
+ * Starts the job executor if not already running.
89
+ * Called automatically when the first job is enqueued.
90
+ */
91
+ private ensureJobExecutorRunning;
92
+ /**
93
+ * Finds documents by their IDs
94
+ */
95
+ private findByIds;
96
+ /**
97
+ * Finds documents by their slugs
98
+ */
99
+ private findBySlugs;
100
+ /**
101
+ * Finds documents by parent ID
102
+ */
103
+ private findByParentId;
104
+ /**
105
+ * Finds documents by type
106
+ */
107
+ private findByType;
108
+ }
109
+ //# sourceMappingURL=reactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/reactor.ts"],"names":[],"mappings":"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"}