@powerhousedao/reactor 4.1.0-dev.8 → 4.1.0-dev.80

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 (198) 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 +92 -0
  14. package/dist/src/core/reactor.d.ts.map +1 -0
  15. package/dist/src/core/reactor.js +647 -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 +15 -1
  31. package/dist/src/events/types.d.ts.map +1 -1
  32. package/dist/src/events/types.js +6 -0
  33. package/dist/src/events/types.js.map +1 -1
  34. package/dist/src/executor/interfaces.d.ts +31 -54
  35. package/dist/src/executor/interfaces.d.ts.map +1 -1
  36. package/dist/src/executor/simple-job-executor-manager.d.ts +30 -0
  37. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  38. package/dist/src/executor/simple-job-executor-manager.js +178 -0
  39. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  40. package/dist/src/executor/simple-job-executor.d.ts +60 -0
  41. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  42. package/dist/src/executor/simple-job-executor.js +537 -0
  43. package/dist/src/executor/simple-job-executor.js.map +1 -0
  44. package/dist/src/executor/types.d.ts +24 -8
  45. package/dist/src/executor/types.d.ts.map +1 -1
  46. package/dist/src/executor/types.js.map +1 -1
  47. package/dist/src/index.d.ts +26 -3
  48. package/dist/src/index.d.ts.map +1 -1
  49. package/dist/src/index.js +33 -2
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
  52. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  53. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  54. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  55. package/dist/src/job-tracker/index.d.ts +3 -0
  56. package/dist/src/job-tracker/index.d.ts.map +1 -0
  57. package/dist/src/job-tracker/index.js +2 -0
  58. package/dist/src/job-tracker/index.js.map +1 -0
  59. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  60. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  61. package/dist/src/job-tracker/interfaces.js +2 -0
  62. package/dist/src/job-tracker/interfaces.js.map +1 -0
  63. package/dist/src/queue/interfaces.d.ts +45 -5
  64. package/dist/src/queue/interfaces.d.ts.map +1 -1
  65. package/dist/src/queue/job-execution-handle.d.ts +24 -0
  66. package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
  67. package/dist/src/queue/job-execution-handle.js +62 -0
  68. package/dist/src/queue/job-execution-handle.js.map +1 -0
  69. package/dist/src/queue/queue.d.ts +54 -5
  70. package/dist/src/queue/queue.d.ts.map +1 -1
  71. package/dist/src/queue/queue.js +265 -36
  72. package/dist/src/queue/queue.js.map +1 -1
  73. package/dist/src/queue/types.d.ts +30 -5
  74. package/dist/src/queue/types.d.ts.map +1 -1
  75. package/dist/src/queue/types.js +12 -0
  76. package/dist/src/queue/types.js.map +1 -1
  77. package/dist/src/read-models/coordinator.d.ts +38 -0
  78. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  79. package/dist/src/read-models/coordinator.js +62 -0
  80. package/dist/src/read-models/coordinator.js.map +1 -0
  81. package/dist/src/read-models/document-view.d.ts +20 -0
  82. package/dist/src/read-models/document-view.d.ts.map +1 -0
  83. package/dist/src/read-models/document-view.js +363 -0
  84. package/dist/src/read-models/document-view.js.map +1 -0
  85. package/dist/src/read-models/interfaces.d.ts +29 -0
  86. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  87. package/dist/src/read-models/interfaces.js +2 -0
  88. package/dist/src/read-models/interfaces.js.map +1 -0
  89. package/dist/src/read-models/types.d.ts +46 -0
  90. package/dist/src/read-models/types.d.ts.map +1 -0
  91. package/dist/src/read-models/types.js +2 -0
  92. package/dist/src/read-models/types.js.map +1 -0
  93. package/dist/src/registry/implementation.d.ts +62 -0
  94. package/dist/src/registry/implementation.d.ts.map +1 -0
  95. package/dist/src/registry/implementation.js +96 -0
  96. package/dist/src/registry/implementation.js.map +1 -0
  97. package/dist/src/registry/index.d.ts +3 -0
  98. package/dist/src/registry/index.d.ts.map +1 -0
  99. package/dist/src/registry/index.js +2 -0
  100. package/dist/src/registry/index.js.map +1 -0
  101. package/dist/src/registry/interfaces.d.ts +39 -0
  102. package/dist/src/registry/interfaces.d.ts.map +1 -0
  103. package/dist/src/registry/interfaces.js +2 -0
  104. package/dist/src/registry/interfaces.js.map +1 -0
  105. package/dist/src/shared/awaiter.d.ts +32 -0
  106. package/dist/src/shared/awaiter.d.ts.map +1 -0
  107. package/dist/src/shared/awaiter.js +132 -0
  108. package/dist/src/shared/awaiter.js.map +1 -0
  109. package/dist/src/shared/errors.d.ts +9 -0
  110. package/dist/src/shared/errors.d.ts.map +1 -0
  111. package/dist/src/shared/errors.js +18 -0
  112. package/dist/src/shared/errors.js.map +1 -0
  113. package/dist/src/shared/factories.d.ts +16 -0
  114. package/dist/src/shared/factories.d.ts.map +1 -0
  115. package/dist/src/shared/factories.js +33 -0
  116. package/dist/src/shared/factories.js.map +1 -0
  117. package/dist/src/shared/types.d.ts +91 -19
  118. package/dist/src/shared/types.d.ts.map +1 -1
  119. package/dist/src/shared/types.js +35 -1
  120. package/dist/src/shared/types.js.map +1 -1
  121. package/dist/src/shared/utils.d.ts +3 -0
  122. package/dist/src/shared/utils.d.ts.map +1 -0
  123. package/dist/src/shared/utils.js +8 -0
  124. package/dist/src/shared/utils.js.map +1 -0
  125. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  126. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  127. package/dist/src/signer/passthrough-signer.js +6 -0
  128. package/dist/src/signer/passthrough-signer.js.map +1 -0
  129. package/dist/src/signer/types.d.ts +15 -0
  130. package/dist/src/signer/types.d.ts.map +1 -0
  131. package/dist/src/signer/types.js +2 -0
  132. package/dist/src/signer/types.js.map +1 -0
  133. package/dist/src/storage/interfaces.d.ts +108 -0
  134. package/dist/src/storage/interfaces.d.ts.map +1 -0
  135. package/dist/src/storage/interfaces.js +19 -0
  136. package/dist/src/storage/interfaces.js.map +1 -0
  137. package/dist/src/storage/kysely/store.d.ts +15 -0
  138. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  139. package/dist/src/storage/kysely/store.js +197 -0
  140. package/dist/src/storage/kysely/store.js.map +1 -0
  141. package/dist/src/storage/kysely/types.d.ts +26 -0
  142. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  143. package/dist/src/storage/kysely/types.js +2 -0
  144. package/dist/src/storage/kysely/types.js.map +1 -0
  145. package/dist/src/storage/txn.d.ts +15 -0
  146. package/dist/src/storage/txn.d.ts.map +1 -0
  147. package/dist/src/storage/txn.js +42 -0
  148. package/dist/src/storage/txn.js.map +1 -0
  149. package/dist/src/subs/default-error-handler.d.ts +13 -0
  150. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  151. package/dist/src/subs/default-error-handler.js +27 -0
  152. package/dist/src/subs/default-error-handler.js.map +1 -0
  153. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  154. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  155. package/dist/src/subs/react-subscription-manager.js +185 -0
  156. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  157. package/dist/src/subs/types.d.ts +64 -0
  158. package/dist/src/subs/types.d.ts.map +1 -0
  159. package/dist/src/subs/types.js +2 -0
  160. package/dist/src/subs/types.js.map +1 -0
  161. package/dist/src/utils/reshuffle.d.ts +30 -0
  162. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  163. package/dist/src/utils/reshuffle.js +47 -0
  164. package/dist/src/utils/reshuffle.js.map +1 -0
  165. package/package.json +15 -6
  166. package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
  167. package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
  168. package/dist/bench/end-to-end-flow.bench.js +0 -256
  169. package/dist/bench/end-to-end-flow.bench.js.map +0 -1
  170. package/dist/bench/event-bus.bench.d.ts +0 -2
  171. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  172. package/dist/bench/event-bus.bench.js +0 -238
  173. package/dist/bench/event-bus.bench.js.map +0 -1
  174. package/dist/bench/queue-only.bench.d.ts +0 -2
  175. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  176. package/dist/bench/queue-only.bench.js +0 -40
  177. package/dist/bench/queue-only.bench.js.map +0 -1
  178. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  179. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  180. package/dist/bench/reactor-throughput.bench.js +0 -137
  181. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  182. package/dist/src/executor/job-executor.d.ts +0 -62
  183. package/dist/src/executor/job-executor.d.ts.map +0 -1
  184. package/dist/src/executor/job-executor.js +0 -325
  185. package/dist/src/executor/job-executor.js.map +0 -1
  186. package/dist/test/event-bus.test.d.ts +0 -2
  187. package/dist/test/event-bus.test.d.ts.map +0 -1
  188. package/dist/test/event-bus.test.js +0 -532
  189. package/dist/test/event-bus.test.js.map +0 -1
  190. package/dist/test/job-executor.test.d.ts +0 -2
  191. package/dist/test/job-executor.test.d.ts.map +0 -1
  192. package/dist/test/job-executor.test.js +0 -581
  193. package/dist/test/job-executor.test.js.map +0 -1
  194. package/dist/test/queue.test.d.ts +0 -2
  195. package/dist/test/queue.test.d.ts.map +0 -1
  196. package/dist/test/queue.test.js +0 -396
  197. package/dist/test/queue.test.js.map +0 -1
  198. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,92 @@
1
+ import type { BaseDocumentDriveServer, IDocumentStorage } from "document-drive";
2
+ import type { Action, DocumentModelModule, Operation, PHDocument } from "document-model";
3
+ import type { IJobTracker } from "../job-tracker/interfaces.js";
4
+ import type { IQueue } from "../queue/interfaces.js";
5
+ import type { IReadModelCoordinator } from "../read-models/interfaces.js";
6
+ import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ShutdownStatus, ViewFilter } from "../shared/types.js";
7
+ import type { IReactor } from "./types.js";
8
+ /**
9
+ * This class implements the IReactor interface and serves as the main entry point
10
+ * for the new Reactor architecture.
11
+ */
12
+ export declare class Reactor implements IReactor {
13
+ private driveServer;
14
+ private documentStorage;
15
+ private shutdownStatus;
16
+ private setShutdown;
17
+ private queue;
18
+ private jobTracker;
19
+ private readModelCoordinator;
20
+ constructor(driveServer: BaseDocumentDriveServer, documentStorage: IDocumentStorage, queue: IQueue, jobTracker: IJobTracker, readModelCoordinator: IReadModelCoordinator);
21
+ /**
22
+ * Signals that the reactor should shutdown.
23
+ */
24
+ kill(): ShutdownStatus;
25
+ /**
26
+ * Retrieves a list of document model specifications
27
+ */
28
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
29
+ /**
30
+ * Retrieves a specific PHDocument by id
31
+ */
32
+ get<TDocument extends PHDocument>(id: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
33
+ document: TDocument;
34
+ childIds: string[];
35
+ }>;
36
+ /**
37
+ * Retrieves a specific PHDocument by slug
38
+ */
39
+ getBySlug<TDocument extends PHDocument>(slug: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
40
+ document: TDocument;
41
+ childIds: string[];
42
+ }>;
43
+ /**
44
+ * Retrieves the operations for a document
45
+ */
46
+ getOperations(documentId: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<Record<string, PagedResults<Operation>>>;
47
+ /**
48
+ * Filters documents by criteria and returns a list of them
49
+ */
50
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
51
+ /**
52
+ * Creates a document
53
+ */
54
+ create(document: PHDocument, signal?: AbortSignal): Promise<JobInfo>;
55
+ /**
56
+ * Deletes a document
57
+ */
58
+ deleteDocument(id: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<JobInfo>;
59
+ /**
60
+ * Applies a list of actions to a document
61
+ */
62
+ mutate(id: string, actions: Action[]): Promise<JobInfo>;
63
+ /**
64
+ * Adds multiple documents as children to another
65
+ */
66
+ addChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
67
+ /**
68
+ * Removes multiple documents as children from another
69
+ */
70
+ removeChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
71
+ /**
72
+ * Retrieves the status of a job
73
+ */
74
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
75
+ /**
76
+ * Finds documents by their IDs
77
+ */
78
+ private findByIds;
79
+ /**
80
+ * Finds documents by their slugs
81
+ */
82
+ private findBySlugs;
83
+ /**
84
+ * Finds documents by parent ID
85
+ */
86
+ private findByParentId;
87
+ /**
88
+ * Finds documents by type
89
+ */
90
+ private findByType;
91
+ }
92
+ //# sourceMappingURL=reactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"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"}