@powerhousedao/reactor 5.0.0-staging.8 → 5.0.1-staging.1

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 (248) hide show
  1. package/dist/src/cache/buffer/ring-buffer.d.ts +37 -0
  2. package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
  3. package/dist/src/cache/buffer/ring-buffer.js +69 -0
  4. package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
  5. package/dist/src/cache/kysely-write-cache.d.ts +133 -0
  6. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
  7. package/dist/src/cache/kysely-write-cache.js +375 -0
  8. package/dist/src/cache/kysely-write-cache.js.map +1 -0
  9. package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
  10. package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
  11. package/dist/src/cache/lru/lru-tracker.js +96 -0
  12. package/dist/src/cache/lru/lru-tracker.js.map +1 -0
  13. package/dist/src/cache/types.d.ts +42 -0
  14. package/dist/src/cache/types.d.ts.map +1 -0
  15. package/dist/src/cache/types.js +2 -0
  16. package/dist/src/cache/types.js.map +1 -0
  17. package/dist/src/cache/write/interfaces.d.ts +83 -0
  18. package/dist/src/cache/write/interfaces.d.ts.map +1 -0
  19. package/dist/src/cache/write/interfaces.js +2 -0
  20. package/dist/src/cache/write/interfaces.js.map +1 -0
  21. package/dist/src/client/reactor-client.d.ts +103 -0
  22. package/dist/src/client/reactor-client.d.ts.map +1 -0
  23. package/dist/src/client/reactor-client.js +184 -0
  24. package/dist/src/client/reactor-client.js.map +1 -0
  25. package/dist/src/client/types.d.ts +213 -0
  26. package/dist/src/client/types.d.ts.map +1 -0
  27. package/dist/src/client/types.js +14 -0
  28. package/dist/src/client/types.js.map +1 -0
  29. package/dist/src/core/builder.d.ts +20 -0
  30. package/dist/src/core/builder.d.ts.map +1 -0
  31. package/dist/src/core/builder.js +47 -0
  32. package/dist/src/core/builder.js.map +1 -0
  33. package/dist/src/{reactor.d.ts → core/reactor.d.ts} +13 -30
  34. package/dist/src/core/reactor.d.ts.map +1 -0
  35. package/dist/src/{reactor.js → core/reactor.js} +147 -111
  36. package/dist/src/core/reactor.js.map +1 -0
  37. package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
  38. package/dist/src/core/types.d.ts.map +1 -0
  39. package/dist/src/core/types.js +2 -0
  40. package/dist/src/core/types.js.map +1 -0
  41. package/dist/src/{utils.d.ts → core/utils.d.ts} +2 -2
  42. package/dist/src/core/utils.d.ts.map +1 -0
  43. package/dist/src/core/utils.js.map +1 -0
  44. package/dist/src/events/event-bus.d.ts +2 -2
  45. package/dist/src/events/event-bus.d.ts.map +1 -1
  46. package/dist/src/events/event-bus.js +1 -1
  47. package/dist/src/events/event-bus.js.map +1 -1
  48. package/dist/src/events/interfaces.d.ts +1 -1
  49. package/dist/src/events/interfaces.d.ts.map +1 -1
  50. package/dist/src/events/types.d.ts +14 -0
  51. package/dist/src/events/types.d.ts.map +1 -1
  52. package/dist/src/events/types.js +6 -0
  53. package/dist/src/events/types.js.map +1 -1
  54. package/dist/src/executor/interfaces.d.ts +2 -2
  55. package/dist/src/executor/interfaces.d.ts.map +1 -1
  56. package/dist/src/executor/simple-job-executor-manager.d.ts +5 -1
  57. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  58. package/dist/src/executor/simple-job-executor-manager.js +98 -36
  59. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  60. package/dist/src/executor/simple-job-executor.d.ts +32 -3
  61. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  62. package/dist/src/executor/simple-job-executor.js +436 -17
  63. package/dist/src/executor/simple-job-executor.js.map +1 -1
  64. package/dist/src/executor/types.d.ts +10 -3
  65. package/dist/src/executor/types.d.ts.map +1 -1
  66. package/dist/src/executor/types.js.map +1 -1
  67. package/dist/src/executor/util.d.ts +47 -0
  68. package/dist/src/executor/util.d.ts.map +1 -0
  69. package/dist/src/executor/util.js +113 -0
  70. package/dist/src/executor/util.js.map +1 -0
  71. package/dist/src/index.d.ts +23 -3
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/index.js +30 -2
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
  76. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  77. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  78. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  79. package/dist/src/job-tracker/index.d.ts +3 -0
  80. package/dist/src/job-tracker/index.d.ts.map +1 -0
  81. package/dist/src/job-tracker/index.js +2 -0
  82. package/dist/src/job-tracker/index.js.map +1 -0
  83. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  84. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  85. package/dist/src/job-tracker/interfaces.js +2 -0
  86. package/dist/src/job-tracker/interfaces.js.map +1 -0
  87. package/dist/src/queue/interfaces.d.ts +1 -1
  88. package/dist/src/queue/interfaces.d.ts.map +1 -1
  89. package/dist/src/queue/job-execution-handle.d.ts +2 -1
  90. package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
  91. package/dist/src/queue/job-execution-handle.js.map +1 -1
  92. package/dist/src/queue/queue.d.ts +3 -3
  93. package/dist/src/queue/queue.d.ts.map +1 -1
  94. package/dist/src/queue/queue.js +47 -25
  95. package/dist/src/queue/queue.js.map +1 -1
  96. package/dist/src/queue/types.d.ts +7 -5
  97. package/dist/src/queue/types.d.ts.map +1 -1
  98. package/dist/src/queue/types.js.map +1 -1
  99. package/dist/src/read-models/coordinator.d.ts +38 -0
  100. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  101. package/dist/src/read-models/coordinator.js +62 -0
  102. package/dist/src/read-models/coordinator.js.map +1 -0
  103. package/dist/src/read-models/document-view.d.ts +20 -0
  104. package/dist/src/read-models/document-view.d.ts.map +1 -0
  105. package/dist/src/read-models/document-view.js +365 -0
  106. package/dist/src/read-models/document-view.js.map +1 -0
  107. package/dist/src/read-models/interfaces.d.ts +29 -0
  108. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  109. package/dist/src/read-models/interfaces.js +2 -0
  110. package/dist/src/read-models/interfaces.js.map +1 -0
  111. package/dist/src/read-models/types.d.ts +46 -0
  112. package/dist/src/read-models/types.d.ts.map +1 -0
  113. package/dist/src/read-models/types.js +2 -0
  114. package/dist/src/read-models/types.js.map +1 -0
  115. package/dist/src/registry/implementation.js +1 -1
  116. package/dist/src/registry/implementation.js.map +1 -1
  117. package/dist/src/shared/awaiter.d.ts +32 -0
  118. package/dist/src/shared/awaiter.d.ts.map +1 -0
  119. package/dist/src/shared/awaiter.js +132 -0
  120. package/dist/src/shared/awaiter.js.map +1 -0
  121. package/dist/src/shared/errors.d.ts +17 -0
  122. package/dist/src/shared/errors.d.ts.map +1 -0
  123. package/dist/src/shared/errors.js +33 -0
  124. package/dist/src/shared/errors.js.map +1 -0
  125. package/dist/src/shared/factories.d.ts +1 -1
  126. package/dist/src/shared/factories.d.ts.map +1 -1
  127. package/dist/src/shared/types.d.ts +8 -0
  128. package/dist/src/shared/types.d.ts.map +1 -1
  129. package/dist/src/shared/types.js +5 -0
  130. package/dist/src/shared/types.js.map +1 -1
  131. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  132. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  133. package/dist/src/signer/passthrough-signer.js +6 -0
  134. package/dist/src/signer/passthrough-signer.js.map +1 -0
  135. package/dist/src/signer/types.d.ts +15 -0
  136. package/dist/src/signer/types.d.ts.map +1 -0
  137. package/dist/src/signer/types.js +2 -0
  138. package/dist/src/signer/types.js.map +1 -0
  139. package/dist/src/storage/interfaces.d.ts +121 -0
  140. package/dist/src/storage/interfaces.d.ts.map +1 -0
  141. package/dist/src/storage/interfaces.js +19 -0
  142. package/dist/src/storage/interfaces.js.map +1 -0
  143. package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
  144. package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
  145. package/dist/src/storage/kysely/keyframe-store.js +71 -0
  146. package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
  147. package/dist/src/storage/kysely/store.d.ts +15 -0
  148. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  149. package/dist/src/storage/kysely/store.js +196 -0
  150. package/dist/src/storage/kysely/store.js.map +1 -0
  151. package/dist/src/storage/kysely/types.d.ts +39 -0
  152. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  153. package/dist/src/storage/kysely/types.js +2 -0
  154. package/dist/src/storage/kysely/types.js.map +1 -0
  155. package/dist/src/storage/txn.d.ts +15 -0
  156. package/dist/src/storage/txn.d.ts.map +1 -0
  157. package/dist/src/storage/txn.js +41 -0
  158. package/dist/src/storage/txn.js.map +1 -0
  159. package/dist/src/subs/default-error-handler.d.ts +13 -0
  160. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  161. package/dist/src/subs/default-error-handler.js +27 -0
  162. package/dist/src/subs/default-error-handler.js.map +1 -0
  163. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  164. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  165. package/dist/src/subs/react-subscription-manager.js +185 -0
  166. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  167. package/dist/src/subs/types.d.ts +64 -0
  168. package/dist/src/subs/types.d.ts.map +1 -0
  169. package/dist/src/subs/types.js +2 -0
  170. package/dist/src/subs/types.js.map +1 -0
  171. package/dist/src/utils/reshuffle.d.ts +30 -0
  172. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  173. package/dist/src/utils/reshuffle.js +47 -0
  174. package/dist/src/utils/reshuffle.js.map +1 -0
  175. package/package.json +15 -9
  176. package/dist/bench/event-bus.bench.d.ts +0 -2
  177. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  178. package/dist/bench/event-bus.bench.js +0 -228
  179. package/dist/bench/event-bus.bench.js.map +0 -1
  180. package/dist/bench/queue-only.bench.d.ts +0 -2
  181. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  182. package/dist/bench/queue-only.bench.js +0 -46
  183. package/dist/bench/queue-only.bench.js.map +0 -1
  184. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  185. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  186. package/dist/bench/reactor-throughput.bench.js +0 -144
  187. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  188. package/dist/src/interfaces/reactor.d.ts.map +0 -1
  189. package/dist/src/interfaces/reactor.js +0 -2
  190. package/dist/src/interfaces/reactor.js.map +0 -1
  191. package/dist/src/reactor.d.ts.map +0 -1
  192. package/dist/src/reactor.js.map +0 -1
  193. package/dist/src/utils.d.ts.map +0 -1
  194. package/dist/src/utils.js.map +0 -1
  195. package/dist/test/event-bus.test.d.ts +0 -2
  196. package/dist/test/event-bus.test.d.ts.map +0 -1
  197. package/dist/test/event-bus.test.js +0 -541
  198. package/dist/test/event-bus.test.js.map +0 -1
  199. package/dist/test/executor/executor-integration.test.d.ts +0 -2
  200. package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
  201. package/dist/test/executor/executor-integration.test.js +0 -287
  202. package/dist/test/executor/executor-integration.test.js.map +0 -1
  203. package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
  204. package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
  205. package/dist/test/executor/job-execution-handle.test.js +0 -272
  206. package/dist/test/executor/job-execution-handle.test.js.map +0 -1
  207. package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
  208. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
  209. package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
  210. package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
  211. package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
  212. package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
  213. package/dist/test/executor/simple-job-executor.test.js +0 -139
  214. package/dist/test/executor/simple-job-executor.test.js.map +0 -1
  215. package/dist/test/factories.d.ts +0 -122
  216. package/dist/test/factories.d.ts.map +0 -1
  217. package/dist/test/factories.js +0 -319
  218. package/dist/test/factories.js.map +0 -1
  219. package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
  220. package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
  221. package/dist/test/integration/document-drive-integration.test.js +0 -1102
  222. package/dist/test/integration/document-drive-integration.test.js.map +0 -1
  223. package/dist/test/integration/reactor-read.test.d.ts +0 -2
  224. package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
  225. package/dist/test/integration/reactor-read.test.js +0 -300
  226. package/dist/test/integration/reactor-read.test.js.map +0 -1
  227. package/dist/test/queue/queue-integration.test.d.ts +0 -2
  228. package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
  229. package/dist/test/queue/queue-integration.test.js +0 -322
  230. package/dist/test/queue/queue-integration.test.js.map +0 -1
  231. package/dist/test/queue/queue.test.d.ts +0 -2
  232. package/dist/test/queue/queue.test.d.ts.map +0 -1
  233. package/dist/test/queue/queue.test.js +0 -770
  234. package/dist/test/queue/queue.test.js.map +0 -1
  235. package/dist/test/registry/registry.test.d.ts +0 -2
  236. package/dist/test/registry/registry.test.d.ts.map +0 -1
  237. package/dist/test/registry/registry.test.js +0 -182
  238. package/dist/test/registry/registry.test.js.map +0 -1
  239. package/dist/test/utils.test.d.ts +0 -2
  240. package/dist/test/utils.test.d.ts.map +0 -1
  241. package/dist/test/utils.test.js +0 -66
  242. package/dist/test/utils.test.js.map +0 -1
  243. package/dist/tsconfig.tsbuildinfo +0 -1
  244. package/dist/vitest.config.d.ts +0 -3
  245. package/dist/vitest.config.d.ts.map +0 -1
  246. package/dist/vitest.config.js +0 -11
  247. package/dist/vitest.config.js.map +0 -1
  248. /package/dist/src/{utils.js → core/utils.js} +0 -0
@@ -0,0 +1,213 @@
1
+ import type { Action, DocumentModelModule, PHDocument } from "document-model";
2
+ import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ViewFilter } from "../shared/types.js";
3
+ /**
4
+ * Describes the types of document changes that can occur.
5
+ */
6
+ export declare enum DocumentChangeType {
7
+ Created = "created",
8
+ Deleted = "deleted",
9
+ Updated = "updated",
10
+ ParentAdded = "parent_added",
11
+ ParentRemoved = "parent_removed",
12
+ ChildAdded = "child_added",
13
+ ChildRemoved = "child_removed"
14
+ }
15
+ /**
16
+ * Represents a change event for documents.
17
+ */
18
+ export type DocumentChangeEvent = {
19
+ type: DocumentChangeType;
20
+ documents: PHDocument[];
21
+ context?: {
22
+ parentId?: string;
23
+ childId?: string;
24
+ };
25
+ };
26
+ /**
27
+ * The ReactorClient interface that wraps lower-level APIs to provide
28
+ * a simpler interface for document operations.
29
+ *
30
+ * Features:
31
+ * - Wraps Jobs with Promises for easier async handling
32
+ * - Manages signing of submitted Action objects
33
+ * - Provides quality-of-life functions for common tasks
34
+ * - Wraps subscription interface with ViewFilters
35
+ */
36
+ export interface IReactorClient {
37
+ /**
38
+ * Retrieves a list of document model modules.
39
+ *
40
+ * @param namespace - Optional namespace like "powerhouse" or "sky", defaults to ""
41
+ * @param paging - Optional pagination options
42
+ * @param signal - Optional abort signal to cancel the request
43
+ * @returns List of document model modules
44
+ */
45
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
46
+ /**
47
+ * Retrieves a specific PHDocument
48
+ *
49
+ * @param identifier - Required, this is either a document "id" field or a "slug"
50
+ * @param view - Optional filter containing branch and scopes information
51
+ * @param signal - Optional abort signal to cancel the request
52
+ * @returns The up-to-date PHDocument with scopes and list of child document ids
53
+ */
54
+ get<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
55
+ document: TDocument;
56
+ childIds: string[];
57
+ }>;
58
+ /**
59
+ * Retrieves children of a document.
60
+ *
61
+ * @param parentIdentifier - Required, this is either a document "id" field or a "slug"
62
+ * @param view - Optional filter containing branch and scopes information
63
+ * @param paging - Optional pagination options
64
+ * @param signal - Optional abort signal to cancel the request
65
+ * @returns The up-to-date PHDocument and paging cursor
66
+ */
67
+ getChildren(parentIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
68
+ /**
69
+ * Retrieves parents of a document.
70
+ *
71
+ * @param childIdentifier - Required, this is either a document "id" field or a "slug"
72
+ * @param view - Optional filter containing branch and scopes information
73
+ * @param paging - Optional pagination options
74
+ * @param signal - Optional abort signal to cancel the request
75
+ * @returns The up-to-date PHDocument and paging cursor
76
+ */
77
+ getParents(childIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
78
+ /**
79
+ * Filters documents by criteria and returns a list of them
80
+ *
81
+ * @param search - Search filter options (type, parentId, identifiers)
82
+ * @param view - Optional filter containing branch and scopes information
83
+ * @param paging - Optional pagination options
84
+ * @param signal - Optional abort signal to cancel the request
85
+ * @returns List of documents matching criteria and pagination cursor
86
+ */
87
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
88
+ /**
89
+ * Creates a document and waits for completion
90
+ *
91
+ * @param document - Document with optional id, slug, parent, model type, and initial state
92
+ * @param parentIdentifier - Optional "id" or "slug" of parent document
93
+ * @param signal - Optional abort signal to cancel the request
94
+ * @returns The created document
95
+ */
96
+ create(document: PHDocument, parentIdentifier?: string, signal?: AbortSignal): Promise<PHDocument>;
97
+ /**
98
+ * Creates an empty document and waits for completion
99
+ *
100
+ * @param documentType - Type of document to create.
101
+ * @param parentIdentifier - Optional "id" or "slug" of parent document
102
+ * @param signal - Optional abort signal to cancel the request
103
+ */
104
+ createEmpty<TDocument extends PHDocument>(documentType: string, parentIdentifier?: string, signal?: AbortSignal): Promise<TDocument>;
105
+ /**
106
+ * Applies a list of actions to a document and waits for completion
107
+ *
108
+ * @param documentIdentifier - Target document id or slug
109
+ * @param actions - List of actions to apply
110
+ * @param view - Optional filter containing branch and scopes information
111
+ * @param signal - Optional abort signal to cancel the request
112
+ * @returns The updated document
113
+ */
114
+ mutate<TDocument extends PHDocument>(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<TDocument>;
115
+ /**
116
+ * Submits a list of actions to a document
117
+ *
118
+ * @param documentIdentifier - Target document id or slug
119
+ * @param actions - List of actions to apply
120
+ * @param view - Optional filter containing branch and scopes information
121
+ * @param signal - Optional abort signal to cancel the request
122
+ * @returns The job
123
+ */
124
+ mutateAsync(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
125
+ /**
126
+ * Renames a document and waits for completion
127
+ *
128
+ * @param documentIdentifier - Target document id or slug
129
+ * @param name - The new name of the document
130
+ * @param view - Optional filter
131
+ * @param signal - Optional abort signal to cancel the request
132
+ * @returns The updated document.
133
+ */
134
+ rename(documentIdentifier: string, name: string, view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
135
+ /**
136
+ * Adds multiple documents as children to another and waits for completion
137
+ *
138
+ * @param parentIdentifier - Parent document id or slug
139
+ * @param documentIdentifiers - List of document identifiers to add as children
140
+ * @param view - Optional filter containing branch and scopes information
141
+ * @param signal - Optional abort signal to cancel the request
142
+ * @returns The updated parent document
143
+ */
144
+ addChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
145
+ /**
146
+ * Removes multiple documents as children from another and waits for completion
147
+ *
148
+ * @param parentIdentifier - Parent document identifiers
149
+ * @param documentIdentifiers - List of document ids to remove as children
150
+ * @param view - Optional filter containing branch and scopes information
151
+ * @param signal - Optional abort signal to cancel the request
152
+ * @returns The updated parent document
153
+ */
154
+ removeChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
155
+ /**
156
+ * Moves multiple documents from one parent to another and waits for completion
157
+ *
158
+ * @param sourceParentIdentifier - Source parent document id or slug
159
+ * @param targetParentIdentifier - Target parent document id or slug
160
+ * @param documentIdentifiers - List of document identifiers to move
161
+ * @param view - Optional filter containing branch and scopes information
162
+ * @param signal - Optional abort signal to cancel the request
163
+ * @returns The updated source and target documents
164
+ */
165
+ moveChildren(sourceParentIdentifier: string, targetParentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<{
166
+ source: PHDocument;
167
+ target: PHDocument;
168
+ }>;
169
+ /**
170
+ * Deletes a document and waits for completion
171
+ *
172
+ * @param identifier - Document identifier (id or slug)
173
+ * @param propagate - Optional mode for handling children, CASCADE deletes child documents
174
+ * @param signal - Optional abort signal to cancel the request
175
+ * @returns a promise, resolving on deletion confirmation
176
+ */
177
+ deleteDocument(identifier: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
178
+ /**
179
+ * Deletes documents and waits for completion
180
+ *
181
+ * @param identifiers - Document identifiers (ids or slugs)
182
+ * @param propagate - Optional mode for handling children, CASCADE deletes child documents
183
+ * @param signal - Optional abort signal to cancel the request
184
+ * @returns a promise, resolving on deletion confirmation
185
+ */
186
+ deleteDocuments(identifiers: string[], propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
187
+ /**
188
+ * Retrieves the status of a job
189
+ *
190
+ * @param jobId - The job id
191
+ * @param signal - Optional abort signal to cancel the request
192
+ * @returns The job status
193
+ */
194
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
195
+ /**
196
+ * Waits for a job to complete
197
+ *
198
+ * @param jobId - The job id or job object
199
+ * @param signal - Optional abort signal to cancel the request
200
+ * @returns The result of the job
201
+ */
202
+ waitForJob(jobId: string | JobInfo, signal?: AbortSignal): Promise<JobInfo>;
203
+ /**
204
+ * Subscribes to changes for documents matching specified filters
205
+ *
206
+ * @param search - Search filter options (type, parentId, identifiers)
207
+ * @param callback - Function called when documents change with the change event details
208
+ * @param view - Optional filter containing branch and scopes information
209
+ * @returns A function that unsubscribes from the changes
210
+ */
211
+ subscribe(search: SearchFilter, callback: (event: DocumentChangeEvent) => void, view?: ViewFilter): () => void;
212
+ }
213
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Describes the types of document changes that can occur.
3
+ */
4
+ export var DocumentChangeType;
5
+ (function (DocumentChangeType) {
6
+ DocumentChangeType["Created"] = "created";
7
+ DocumentChangeType["Deleted"] = "deleted";
8
+ DocumentChangeType["Updated"] = "updated";
9
+ DocumentChangeType["ParentAdded"] = "parent_added";
10
+ DocumentChangeType["ParentRemoved"] = "parent_removed";
11
+ DocumentChangeType["ChildAdded"] = "child_added";
12
+ DocumentChangeType["ChildRemoved"] = "child_removed";
13
+ })(DocumentChangeType || (DocumentChangeType = {}));
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAN,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,kDAA4B,CAAA;IAC5B,sDAAgC,CAAA;IAChC,gDAA0B,CAAA;IAC1B,oDAA8B,CAAA;AAChC,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B"}
@@ -0,0 +1,20 @@
1
+ import { ReactorClient } from "../client/reactor-client.js";
2
+ import { type IJobAwaiter } from "../shared/awaiter.js";
3
+ import type { ISigner } from "../signer/types.js";
4
+ import type { IReactorSubscriptionManager } from "../subs/types.js";
5
+ import type { IReactor } from "./types.js";
6
+ /**
7
+ * Builder class for constructing ReactorClient instances with proper configuration
8
+ */
9
+ export declare class ReactorClientBuilder {
10
+ private reactor?;
11
+ private signer?;
12
+ private subscriptionManager?;
13
+ private jobAwaiter?;
14
+ withReactor(reactor: IReactor): this;
15
+ withSigner(signer: ISigner): this;
16
+ withSubscriptionManager(subscriptionManager: IReactorSubscriptionManager): this;
17
+ withJobAwaiter(jobAwaiter: IJobAwaiter): this;
18
+ build(): ReactorClient;
19
+ }
20
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAC,CAA8B;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAc;IAE1B,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAKpC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjC,uBAAuB,CAC5B,mBAAmB,EAAE,2BAA2B,GAC/C,IAAI;IAKA,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAK7C,KAAK,IAAI,aAAa;CA6B9B"}
@@ -0,0 +1,47 @@
1
+ import { ReactorClient } from "../client/reactor-client.js";
2
+ import { JobAwaiter } from "../shared/awaiter.js";
3
+ import { PassthroughSigner } from "../signer/passthrough-signer.js";
4
+ import { DefaultSubscriptionErrorHandler } from "../subs/default-error-handler.js";
5
+ import { ReactorSubscriptionManager } from "../subs/react-subscription-manager.js";
6
+ /**
7
+ * Builder class for constructing ReactorClient instances with proper configuration
8
+ */
9
+ export class ReactorClientBuilder {
10
+ reactor;
11
+ signer;
12
+ subscriptionManager;
13
+ jobAwaiter;
14
+ withReactor(reactor) {
15
+ this.reactor = reactor;
16
+ return this;
17
+ }
18
+ withSigner(signer) {
19
+ this.signer = signer;
20
+ return this;
21
+ }
22
+ withSubscriptionManager(subscriptionManager) {
23
+ this.subscriptionManager = subscriptionManager;
24
+ return this;
25
+ }
26
+ withJobAwaiter(jobAwaiter) {
27
+ this.jobAwaiter = jobAwaiter;
28
+ return this;
29
+ }
30
+ build() {
31
+ if (!this.reactor) {
32
+ throw new Error("Reactor is required to build ReactorClient");
33
+ }
34
+ if (!this.signer) {
35
+ this.signer = new PassthroughSigner();
36
+ }
37
+ // Use default SubscriptionManager with default error handler if not provided
38
+ if (!this.subscriptionManager) {
39
+ this.subscriptionManager = new ReactorSubscriptionManager(new DefaultSubscriptionErrorHandler());
40
+ }
41
+ if (!this.jobAwaiter) {
42
+ this.jobAwaiter = new JobAwaiter((jobId, signal) => this.reactor.getJobStatus(jobId, signal));
43
+ }
44
+ return new ReactorClient(this.reactor, this.signer, this.subscriptionManager, this.jobAwaiter);
45
+ }
46
+ }
47
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAInF;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,OAAO,CAAY;IACnB,MAAM,CAAW;IACjB,mBAAmB,CAA+B;IAClD,UAAU,CAAe;IAE1B,WAAW,CAAC,OAAiB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,MAAe;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uBAAuB,CAC5B,mBAAgD;QAEhD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,UAAuB;QAC3C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,0BAA0B,CACvD,IAAI,+BAA+B,EAAE,CACtC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACjD,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF"}
@@ -1,35 +1,23 @@
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";
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";
9
8
  /**
10
- * The Reactor facade implementation.
11
- *
12
9
  * 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
10
+ * for the new Reactor architecture.
22
11
  */
23
12
  export declare class Reactor implements IReactor {
24
13
  private driveServer;
25
14
  private documentStorage;
26
15
  private shutdownStatus;
27
16
  private setShutdown;
28
- private eventBus;
29
17
  private queue;
30
- private jobExecutor;
31
- private jobExecutorStarted;
32
- constructor(driveServer: BaseDocumentDriveServer, documentStorage: IDocumentStorage, eventBus: IEventBus, queue: IQueue, jobExecutor: IJobExecutor);
18
+ private jobTracker;
19
+ private readModelCoordinator;
20
+ constructor(driveServer: BaseDocumentDriveServer, documentStorage: IDocumentStorage, queue: IQueue, jobTracker: IJobTracker, readModelCoordinator: IReadModelCoordinator);
33
21
  /**
34
22
  * Signals that the reactor should shutdown.
35
23
  */
@@ -37,7 +25,7 @@ export declare class Reactor implements IReactor {
37
25
  /**
38
26
  * Retrieves a list of document model specifications
39
27
  */
40
- getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelState>>;
28
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
41
29
  /**
42
30
  * Retrieves a specific PHDocument by id
43
31
  */
@@ -63,7 +51,7 @@ export declare class Reactor implements IReactor {
63
51
  /**
64
52
  * Creates a document
65
53
  */
66
- create(document: PHDocument, signal?: AbortSignal): Promise<JobStatus>;
54
+ create(document: PHDocument, signal?: AbortSignal): Promise<JobInfo>;
67
55
  /**
68
56
  * Deletes a document
69
57
  */
@@ -84,11 +72,6 @@ export declare class Reactor implements IReactor {
84
72
  * Retrieves the status of a job
85
73
  */
86
74
  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
75
  /**
93
76
  * Finds documents by their IDs
94
77
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"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"}