@powerhousedao/reactor 5.0.1-staging.15 → 5.0.1-staging.17

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 (130) hide show
  1. package/dist/src/client/reactor-client.d.ts +5 -3
  2. package/dist/src/client/reactor-client.d.ts.map +1 -1
  3. package/dist/src/client/reactor-client.js +142 -37
  4. package/dist/src/client/reactor-client.js.map +1 -1
  5. package/dist/src/core/builder.d.ts +15 -2
  6. package/dist/src/core/builder.d.ts.map +1 -1
  7. package/dist/src/core/builder.js +48 -7
  8. package/dist/src/core/builder.js.map +1 -1
  9. package/dist/src/core/reactor-builder.d.ts +8 -0
  10. package/dist/src/core/reactor-builder.d.ts.map +1 -1
  11. package/dist/src/core/reactor-builder.js +26 -7
  12. package/dist/src/core/reactor-builder.js.map +1 -1
  13. package/dist/src/core/reactor.d.ts +14 -3
  14. package/dist/src/core/reactor.d.ts.map +1 -1
  15. package/dist/src/core/reactor.js +96 -95
  16. package/dist/src/core/reactor.js.map +1 -1
  17. package/dist/src/core/types.d.ts +22 -3
  18. package/dist/src/core/types.d.ts.map +1 -1
  19. package/dist/src/core/utils.d.ts +0 -4
  20. package/dist/src/core/utils.d.ts.map +1 -1
  21. package/dist/src/core/utils.js +0 -9
  22. package/dist/src/core/utils.js.map +1 -1
  23. package/dist/src/events/types.d.ts +28 -0
  24. package/dist/src/events/types.d.ts.map +1 -1
  25. package/dist/src/events/types.js +2 -0
  26. package/dist/src/events/types.js.map +1 -1
  27. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  28. package/dist/src/executor/simple-job-executor-manager.js +19 -3
  29. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  30. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  31. package/dist/src/executor/simple-job-executor.js +21 -7
  32. package/dist/src/executor/simple-job-executor.js.map +1 -1
  33. package/dist/src/index.d.ts +3 -1
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +4 -1
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +11 -2
  38. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
  39. package/dist/src/job-tracker/in-memory-job-tracker.js +54 -26
  40. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -1
  41. package/dist/src/job-tracker/interfaces.d.ts +6 -9
  42. package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
  43. package/dist/src/read-models/coordinator.d.ts.map +1 -1
  44. package/dist/src/read-models/coordinator.js +11 -0
  45. package/dist/src/read-models/coordinator.js.map +1 -1
  46. package/dist/src/read-models/document-view.d.ts +1 -0
  47. package/dist/src/read-models/document-view.d.ts.map +1 -1
  48. package/dist/src/read-models/document-view.js +72 -2
  49. package/dist/src/read-models/document-view.js.map +1 -1
  50. package/dist/src/shared/awaiter.d.ts +11 -8
  51. package/dist/src/shared/awaiter.d.ts.map +1 -1
  52. package/dist/src/shared/awaiter.js +66 -75
  53. package/dist/src/shared/awaiter.js.map +1 -1
  54. package/dist/src/shared/types.d.ts +4 -2
  55. package/dist/src/shared/types.d.ts.map +1 -1
  56. package/dist/src/shared/types.js +4 -2
  57. package/dist/src/shared/types.js.map +1 -1
  58. package/dist/src/storage/index.d.ts +4 -0
  59. package/dist/src/storage/index.d.ts.map +1 -0
  60. package/dist/src/storage/index.js +3 -0
  61. package/dist/src/storage/index.js.map +1 -0
  62. package/dist/src/storage/interfaces.d.ts +79 -0
  63. package/dist/src/storage/interfaces.d.ts.map +1 -1
  64. package/dist/src/storage/interfaces.js.map +1 -1
  65. package/dist/src/storage/kysely/sync-cursor-storage.d.ts +13 -0
  66. package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +1 -0
  67. package/dist/src/storage/kysely/sync-cursor-storage.js +93 -0
  68. package/dist/src/storage/kysely/sync-cursor-storage.js.map +1 -0
  69. package/dist/src/storage/kysely/sync-remote-storage.d.ts +13 -0
  70. package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +1 -0
  71. package/dist/src/storage/kysely/sync-remote-storage.js +134 -0
  72. package/dist/src/storage/kysely/sync-remote-storage.js.map +1 -0
  73. package/dist/src/storage/kysely/types.d.ts +35 -0
  74. package/dist/src/storage/kysely/types.d.ts.map +1 -1
  75. package/dist/src/storage/migrations/010_create_sync_tables.d.ts +3 -0
  76. package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +1 -0
  77. package/dist/src/storage/migrations/010_create_sync_tables.js +43 -0
  78. package/dist/src/storage/migrations/010_create_sync_tables.js.map +1 -0
  79. package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
  80. package/dist/src/storage/migrations/migrator.js +2 -0
  81. package/dist/src/storage/migrations/migrator.js.map +1 -1
  82. package/dist/src/sync/channels/index.d.ts +3 -0
  83. package/dist/src/sync/channels/index.d.ts.map +1 -0
  84. package/dist/src/sync/channels/index.js +3 -0
  85. package/dist/src/sync/channels/index.js.map +1 -0
  86. package/dist/src/sync/channels/internal-channel.d.ts +57 -0
  87. package/dist/src/sync/channels/internal-channel.d.ts.map +1 -0
  88. package/dist/src/sync/channels/internal-channel.js +106 -0
  89. package/dist/src/sync/channels/internal-channel.js.map +1 -0
  90. package/dist/src/sync/channels/utils.d.ts +15 -0
  91. package/dist/src/sync/channels/utils.d.ts.map +1 -0
  92. package/dist/src/sync/channels/utils.js +26 -0
  93. package/dist/src/sync/channels/utils.js.map +1 -0
  94. package/dist/src/sync/errors.d.ts +10 -0
  95. package/dist/src/sync/errors.d.ts.map +1 -0
  96. package/dist/src/sync/errors.js +17 -0
  97. package/dist/src/sync/errors.js.map +1 -0
  98. package/dist/src/sync/index.d.ts +12 -0
  99. package/dist/src/sync/index.d.ts.map +1 -0
  100. package/dist/src/sync/index.js +9 -0
  101. package/dist/src/sync/index.js.map +1 -0
  102. package/dist/src/sync/interfaces.d.ts +150 -0
  103. package/dist/src/sync/interfaces.d.ts.map +1 -0
  104. package/dist/src/sync/interfaces.js +2 -0
  105. package/dist/src/sync/interfaces.js.map +1 -0
  106. package/dist/src/sync/mailbox.d.ts +21 -0
  107. package/dist/src/sync/mailbox.d.ts.map +1 -0
  108. package/dist/src/sync/mailbox.js +59 -0
  109. package/dist/src/sync/mailbox.js.map +1 -0
  110. package/dist/src/sync/sync-builder.d.ts +17 -0
  111. package/dist/src/sync/sync-builder.d.ts.map +1 -0
  112. package/dist/src/sync/sync-builder.js +29 -0
  113. package/dist/src/sync/sync-builder.js.map +1 -0
  114. package/dist/src/sync/sync-manager.d.ts +33 -0
  115. package/dist/src/sync/sync-manager.d.ts.map +1 -0
  116. package/dist/src/sync/sync-manager.js +197 -0
  117. package/dist/src/sync/sync-manager.js.map +1 -0
  118. package/dist/src/sync/sync-operation.d.ts +28 -0
  119. package/dist/src/sync/sync-operation.d.ts.map +1 -0
  120. package/dist/src/sync/sync-operation.js +63 -0
  121. package/dist/src/sync/sync-operation.js.map +1 -0
  122. package/dist/src/sync/types.d.ts +61 -0
  123. package/dist/src/sync/types.d.ts.map +1 -0
  124. package/dist/src/sync/types.js +16 -0
  125. package/dist/src/sync/types.js.map +1 -0
  126. package/dist/src/sync/utils.d.ts +17 -0
  127. package/dist/src/sync/utils.d.ts.map +1 -0
  128. package/dist/src/sync/utils.js +34 -0
  129. package/dist/src/sync/utils.js.map +1 -0
  130. package/package.json +4 -3
@@ -1,10 +1,11 @@
1
1
  import type { Action, DocumentModelModule, PHDocument } from "document-model";
2
2
  import type { IReactor } from "../core/types.js";
3
3
  import { type IJobAwaiter } from "../shared/awaiter.js";
4
- import { type JobInfo, type PagedResults, type PagingOptions, type PropagationMode, type SearchFilter, type ViewFilter } from "../shared/types.js";
4
+ import { PropagationMode, type JobInfo, type PagedResults, type PagingOptions, type SearchFilter, type ViewFilter } from "../shared/types.js";
5
5
  import type { ISigner } from "../signer/types.js";
6
+ import type { IDocumentIndexer } from "../storage/interfaces.js";
6
7
  import type { IReactorSubscriptionManager } from "../subs/types.js";
7
- import type { DocumentChangeEvent, IReactorClient } from "./types.js";
8
+ import { type DocumentChangeEvent, type IReactorClient } from "./types.js";
8
9
  /**
9
10
  * ReactorClient implementation that wraps lower-level APIs to provide
10
11
  * a simpler interface for document operations.
@@ -20,7 +21,8 @@ export declare class ReactorClient implements IReactorClient {
20
21
  private signer;
21
22
  private subscriptionManager;
22
23
  private jobAwaiter;
23
- constructor(reactor: IReactor, signer: ISigner, subscriptionManager: IReactorSubscriptionManager, jobAwaiter: IJobAwaiter);
24
+ private documentIndexer;
25
+ constructor(reactor: IReactor, signer: ISigner, subscriptionManager: IReactorSubscriptionManager, jobAwaiter: IJobAwaiter, documentIndexer: IDocumentIndexer);
24
26
  /**
25
27
  * Retrieves a list of document model modules.
26
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { actions } from "document-model";
1
2
  import {} from "../shared/awaiter.js";
2
- import {} from "../shared/types.js";
3
+ import { PropagationMode, RelationshipChangeType, } from "../shared/types.js";
4
+ import { DocumentChangeType, } from "./types.js";
3
5
  /**
4
6
  * ReactorClient implementation that wraps lower-level APIs to provide
5
7
  * a simpler interface for document operations.
@@ -15,11 +17,13 @@ export class ReactorClient {
15
17
  signer;
16
18
  subscriptionManager;
17
19
  jobAwaiter;
18
- constructor(reactor, signer, subscriptionManager, jobAwaiter) {
20
+ documentIndexer;
21
+ constructor(reactor, signer, subscriptionManager, jobAwaiter, documentIndexer) {
19
22
  this.reactor = reactor;
20
23
  this.signer = signer;
21
24
  this.subscriptionManager = subscriptionManager;
22
25
  this.jobAwaiter = jobAwaiter;
26
+ this.documentIndexer = documentIndexer;
23
27
  }
24
28
  /**
25
29
  * Retrieves a list of document model modules.
@@ -31,26 +35,39 @@ export class ReactorClient {
31
35
  * Retrieves a specific PHDocument
32
36
  */
33
37
  async get(identifier, view, signal) {
34
- // First try to get by ID
35
- try {
36
- return await this.reactor.get(identifier, view, undefined, signal);
37
- }
38
- catch (error) {
39
- // If failed, try to get by slug
40
- return await this.reactor.getBySlug(identifier, view, undefined, signal);
41
- }
38
+ return await this.reactor.getByIdOrSlug(identifier, view, undefined, signal);
42
39
  }
43
40
  /**
44
41
  * Retrieves children of a document
45
42
  */
46
43
  async getChildren(parentIdentifier, view, paging, signal) {
47
- throw new Error("Method not implemented.");
44
+ const parentDoc = await this.reactor.getByIdOrSlug(parentIdentifier, view, undefined, signal);
45
+ const parentId = parentDoc.document.header.id;
46
+ const relationships = await this.documentIndexer.getOutgoing(parentId, undefined, undefined, signal);
47
+ const childIds = relationships.map((rel) => rel.targetId);
48
+ if (childIds.length === 0) {
49
+ return {
50
+ results: [],
51
+ options: paging || { cursor: "0", limit: 0 },
52
+ };
53
+ }
54
+ return this.reactor.find({ ids: childIds }, view, paging, undefined, signal);
48
55
  }
49
56
  /**
50
57
  * Retrieves parents of a document
51
58
  */
52
59
  async getParents(childIdentifier, view, paging, signal) {
53
- throw new Error("Method not implemented.");
60
+ const childDoc = await this.reactor.getByIdOrSlug(childIdentifier, view, undefined, signal);
61
+ const childId = childDoc.document.header.id;
62
+ const relationships = await this.documentIndexer.getIncoming(childId, undefined, undefined, signal);
63
+ const parentIds = relationships.map((rel) => rel.sourceId);
64
+ if (parentIds.length === 0) {
65
+ return {
66
+ results: [],
67
+ options: paging || { cursor: "0", limit: 0 },
68
+ };
69
+ }
70
+ return this.reactor.find({ ids: parentIds }, view, paging, undefined, signal);
54
71
  }
55
72
  /**
56
73
  * Filters documents by criteria and returns a list of them
@@ -62,23 +79,36 @@ export class ReactorClient {
62
79
  * Creates a document and waits for completion
63
80
  */
64
81
  async create(document, parentIdentifier, signal) {
65
- throw new Error("Method not implemented.");
82
+ const jobInfo = await this.reactor.create(document, signal);
83
+ const completedJob = await this.waitForJob(jobInfo, signal);
84
+ const documentId = document.header.id;
85
+ const result = await this.reactor.get(documentId, undefined, completedJob.consistencyToken, signal);
86
+ if (parentIdentifier) {
87
+ await this.addChildren(parentIdentifier, [documentId], undefined, signal);
88
+ }
89
+ return result.document;
66
90
  }
67
91
  /**
68
92
  * Creates an empty document and waits for completion
69
93
  */
70
94
  async createEmpty(documentType, parentIdentifier, signal) {
71
- throw new Error("Method not implemented.");
95
+ const modulesResult = await this.reactor.getDocumentModels(undefined, undefined, signal);
96
+ const module = modulesResult.results.find((m) => m.documentModel.global.id === documentType);
97
+ if (!module) {
98
+ throw new Error(`Document model not found for type: ${documentType}`);
99
+ }
100
+ const document = module.utils.createDocument();
101
+ return this.create(document, parentIdentifier, signal);
72
102
  }
73
103
  /**
74
104
  * Applies a list of actions to a document and waits for completion
75
105
  */
76
106
  async mutate(documentIdentifier, branch, actions, signal) {
77
107
  const jobInfo = await this.reactor.mutate(documentIdentifier, branch, actions, signal);
78
- await this.waitForJob(jobInfo, signal);
108
+ const completedJob = await this.waitForJob(jobInfo, signal);
79
109
  const view = { branch };
80
- const document = await this.get(documentIdentifier, view, signal);
81
- return document.document;
110
+ const result = await this.reactor.getByIdOrSlug(documentIdentifier, view, completedJob.consistencyToken, signal);
111
+ return result.document;
82
112
  }
83
113
  /**
84
114
  * Submits a list of actions to a document
@@ -112,54 +142,83 @@ export class ReactorClient {
112
142
  * Renames a document and waits for completion
113
143
  */
114
144
  async rename(documentIdentifier, name, view, signal) {
115
- throw new Error("Method not implemented.");
145
+ const branch = view?.branch || "main";
146
+ return this.mutate(documentIdentifier, branch, [actions.setName(name)], signal);
116
147
  }
117
148
  /**
118
149
  * Adds multiple documents as children to another and waits for completion
119
150
  */
120
151
  async addChildren(parentIdentifier, documentIdentifiers, view, signal) {
121
- // Call reactor.addChildren to get JobInfo
122
152
  const jobInfo = await this.reactor.addChildren(parentIdentifier, documentIdentifiers, view, signal);
123
- // Wait for job completion
124
- await this.waitForJob(jobInfo, signal);
125
- // Fetch and return updated parent document
126
- const result = await this.get(parentIdentifier, view, signal);
153
+ const completedJob = await this.waitForJob(jobInfo, signal);
154
+ const result = await this.reactor.getByIdOrSlug(parentIdentifier, view, completedJob.consistencyToken, signal);
127
155
  return result.document;
128
156
  }
129
157
  /**
130
158
  * Removes multiple documents as children from another and waits for completion
131
159
  */
132
160
  async removeChildren(parentIdentifier, documentIdentifiers, view, signal) {
133
- // Call reactor.removeChildren to get JobInfo
134
161
  const jobInfo = await this.reactor.removeChildren(parentIdentifier, documentIdentifiers, view, signal);
135
- // Wait for job completion
136
- await this.waitForJob(jobInfo, signal);
137
- // Fetch and return updated parent document
138
- const result = await this.get(parentIdentifier, view, signal);
162
+ const completedJob = await this.waitForJob(jobInfo, signal);
163
+ const result = await this.reactor.getByIdOrSlug(parentIdentifier, view, completedJob.consistencyToken, signal);
139
164
  return result.document;
140
165
  }
141
166
  /**
142
167
  * Moves multiple documents from one parent to another and waits for completion
143
168
  */
144
169
  async moveChildren(sourceParentIdentifier, targetParentIdentifier, documentIdentifiers, view, signal) {
145
- throw new Error("Method not implemented.");
170
+ const removeJobInfo = await this.reactor.removeChildren(sourceParentIdentifier, documentIdentifiers, view, signal);
171
+ const removeCompletedJob = await this.waitForJob(removeJobInfo, signal);
172
+ const addJobInfo = await this.reactor.addChildren(targetParentIdentifier, documentIdentifiers, view, signal);
173
+ const addCompletedJob = await this.waitForJob(addJobInfo, signal);
174
+ const sourceResult = await this.reactor.getByIdOrSlug(sourceParentIdentifier, view, removeCompletedJob.consistencyToken, signal);
175
+ const targetResult = await this.reactor.getByIdOrSlug(targetParentIdentifier, view, addCompletedJob.consistencyToken, signal);
176
+ return {
177
+ source: sourceResult.document,
178
+ target: targetResult.document,
179
+ };
146
180
  }
147
181
  /**
148
182
  * Deletes a document and waits for completion
149
183
  */
150
184
  async deleteDocument(identifier, propagate, signal) {
151
- // Call reactor.deleteDocument to get JobInfo
152
- const jobInfo = await this.reactor.deleteDocument(identifier, propagate, signal);
153
- // Wait for job completion
154
- await this.waitForJob(jobInfo, signal);
155
- // Return void
156
- return;
185
+ const jobs = [];
186
+ if (propagate === PropagationMode.Cascade) {
187
+ const descendants = [];
188
+ const queue = [identifier];
189
+ const visited = new Set();
190
+ while (queue.length > 0) {
191
+ const currentId = queue.shift();
192
+ if (visited.has(currentId)) {
193
+ continue;
194
+ }
195
+ visited.add(currentId);
196
+ if (signal?.aborted) {
197
+ throw new Error("Operation aborted");
198
+ }
199
+ const relationships = await this.documentIndexer.getOutgoing(currentId, ["child"], undefined, signal);
200
+ for (const rel of relationships) {
201
+ if (!visited.has(rel.targetId)) {
202
+ descendants.push(rel.targetId);
203
+ queue.push(rel.targetId);
204
+ }
205
+ }
206
+ }
207
+ for (const descendantId of descendants) {
208
+ const jobInfo = await this.reactor.deleteDocument(descendantId, signal);
209
+ jobs.push(jobInfo);
210
+ }
211
+ }
212
+ const jobInfo = await this.reactor.deleteDocument(identifier, signal);
213
+ jobs.push(jobInfo);
214
+ await Promise.all(jobs.map((job) => this.waitForJob(job, signal)));
157
215
  }
158
216
  /**
159
217
  * Deletes documents and waits for completion
160
218
  */
161
219
  async deleteDocuments(identifiers, propagate, signal) {
162
- throw new Error("Method not implemented.");
220
+ const deletePromises = identifiers.map((identifier) => this.deleteDocument(identifier, propagate, signal));
221
+ await Promise.all(deletePromises);
163
222
  }
164
223
  /**
165
224
  * Retrieves the status of a job
@@ -178,7 +237,53 @@ export class ReactorClient {
178
237
  * Subscribes to changes for documents matching specified filters
179
238
  */
180
239
  subscribe(search, callback, view) {
181
- throw new Error("Method not implemented.");
240
+ const unsubscribeCreated = this.subscriptionManager.onDocumentCreated((result) => {
241
+ void (async () => {
242
+ try {
243
+ const documents = await Promise.all(result.results.map((id) => this.reactor
244
+ .get(id, view, undefined, undefined)
245
+ .then((res) => res.document)));
246
+ callback({
247
+ type: DocumentChangeType.Created,
248
+ documents,
249
+ });
250
+ }
251
+ catch {
252
+ // Silently ignore errors when fetching created documents
253
+ }
254
+ })();
255
+ }, search);
256
+ const unsubscribeDeleted = this.subscriptionManager.onDocumentDeleted((documentIds) => {
257
+ callback({
258
+ type: DocumentChangeType.Deleted,
259
+ documents: [],
260
+ context: { childId: documentIds[0] },
261
+ });
262
+ }, search);
263
+ const unsubscribeUpdated = this.subscriptionManager.onDocumentStateUpdated((result) => {
264
+ callback({
265
+ type: DocumentChangeType.Updated,
266
+ documents: result.results,
267
+ });
268
+ }, search, view);
269
+ const unsubscribeRelationship = this.subscriptionManager.onRelationshipChanged((parentId, childId, changeType) => {
270
+ callback({
271
+ type: changeType === RelationshipChangeType.Added
272
+ ? DocumentChangeType.ChildAdded
273
+ : DocumentChangeType.ChildRemoved,
274
+ documents: [],
275
+ context: {
276
+ parentId,
277
+ childId,
278
+ },
279
+ });
280
+ }, search);
281
+ return () => {
282
+ unsubscribeCreated();
283
+ unsubscribeDeleted();
284
+ unsubscribeUpdated();
285
+ unsubscribeRelationship();
286
+ };
182
287
  }
183
288
  }
184
289
  //# sourceMappingURL=reactor-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor-client.js","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor-client.js","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAoB,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,sBAAsB,GAMvB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,kBAAkB,GAGnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAW;IAClB,MAAM,CAAU;IAChB,mBAAmB,CAA8B;IACjD,UAAU,CAAc;IACxB,eAAe,CAAmB;IAE1C,YACE,OAAiB,EACjB,MAAe,EACf,mBAAgD,EAChD,UAAuB,EACvB,eAAiC;QAEjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,SAAkB,EAClB,MAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,UAAkB,EAClB,IAAiB,EACjB,MAAoB;QAKpB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CACrC,UAAU,EACV,IAAI,EACJ,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,gBAAwB,EACxB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAChD,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAC1D,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,CACP,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,eAAuB,EACvB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC/C,eAAe,EACf,IAAI,EACJ,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAE5C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAC1D,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,CACP,CAAC;QAEF,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,MAAoB,EACpB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAoB,EACpB,gBAAyB,EACzB,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACnC,UAAU,EACV,SAAS,EACT,YAAY,CAAC,gBAAgB,EAC7B,MAAM,CACP,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,gBAAyB,EACzB,MAAoB;QAEpB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACxD,SAAS,EACT,SAAS,EACT,MAAM,CACP,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,YAAY,CAClD,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAE/C,OAAO,IAAI,CAAC,MAAM,CAChB,QAAQ,EACR,gBAAgB,EAChB,MAAM,CACe,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,kBAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvC,kBAAkB,EAClB,MAAM,EACN,OAAO,EACP,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAe,EAAE,MAAM,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7C,kBAAkB,EAClB,IAAI,EACJ,YAAY,CAAC,gBAAgB,EAC7B,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,kBAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,MAAoB;QAEpB,wCAAwC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO;gBACL,GAAG,MAAM;gBACT,OAAO,EAAE;oBACP,GAAG,MAAM,CAAC,OAAO;oBACjB,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;4BACrB,SAAS,EAAE,EAAE;4BACb,OAAO,EAAE,CAAC;yBACX;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,EAAE;4BACR,GAAG,EAAE,EAAE;yBACR;wBACD,UAAU,EAAE,CAAC,SAAS,CAAC;qBACxB;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,kBAA0B,EAC1B,IAAY,EACZ,IAAiB,EACjB,MAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAChB,kBAAkB,EAClB,MAAM,EACN,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACvB,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,gBAAwB,EACxB,mBAA6B,EAC7B,IAAiB,EACjB,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAC5C,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,EACJ,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7C,gBAAgB,EAChB,IAAI,EACJ,YAAY,CAAC,gBAAgB,EAC7B,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,gBAAwB,EACxB,mBAA6B,EAC7B,IAAiB,EACjB,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAC/C,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,EACJ,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7C,gBAAgB,EAChB,IAAI,EACJ,YAAY,CAAC,gBAAgB,EAC7B,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,sBAA8B,EAC9B,sBAA8B,EAC9B,mBAA6B,EAC7B,IAAiB,EACjB,MAAoB;QAKpB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CACrD,sBAAsB,EACtB,mBAAmB,EACnB,IAAI,EACJ,MAAM,CACP,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAC/C,sBAAsB,EACtB,mBAAmB,EACnB,IAAI,EACJ,MAAM,CACP,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CACnD,sBAAsB,EACtB,IAAI,EACJ,kBAAkB,CAAC,gBAAgB,EACnC,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CACnD,sBAAsB,EACtB,IAAI,EACJ,eAAe,CAAC,gBAAgB,EAChC,MAAM,CACP,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,QAAQ;YAC7B,MAAM,EAAE,YAAY,CAAC,QAAQ;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,UAAkB,EAClB,SAA2B,EAC3B,MAAoB;QAEpB,MAAM,IAAI,GAAc,EAAE,CAAC;QAE3B,IAAI,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,MAAM,KAAK,GAAa,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAElC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEvB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAC1D,SAAS,EACT,CAAC,OAAO,CAAC,EACT,SAAS,EACT,MAAM,CACP,CAAC;gBAEF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC/B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,WAAqB,EACrB,SAA2B,EAC3B,MAAoB;QAEpB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACpD,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CACnD,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAoB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,KAAuB,EACvB,MAAoB;QAEpB,MAAM,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,SAAS,CACP,MAAoB,EACpB,QAA8C,EAC9C,IAAiB;QAEjB,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CACnE,CAAC,MAAM,EAAE,EAAE;YACT,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACxB,IAAI,CAAC,OAAO;yBACT,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;yBACnC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC/B,CACF,CAAC;oBAEF,QAAQ,CAAC;wBACP,IAAI,EAAE,kBAAkB,CAAC,OAAO;wBAChC,SAAS;qBACV,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,EACD,MAAM,CACP,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CACnE,CAAC,WAAW,EAAE,EAAE;YACd,QAAQ,CAAC;gBACP,IAAI,EAAE,kBAAkB,CAAC,OAAO;gBAChC,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;aACrC,CAAC,CAAC;QACL,CAAC,EACD,MAAM,CACP,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CACxE,CAAC,MAAM,EAAE,EAAE;YACT,QAAQ,CAAC;gBACP,IAAI,EAAE,kBAAkB,CAAC,OAAO;gBAChC,SAAS,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC,CAAC;QACL,CAAC,EACD,MAAM,EACN,IAAI,CACL,CAAC;QAEF,MAAM,uBAAuB,GAC3B,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAC5C,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;YAChC,QAAQ,CAAC;gBACP,IAAI,EACF,UAAU,KAAK,sBAAsB,CAAC,KAAK;oBACzC,CAAC,CAAC,kBAAkB,CAAC,UAAU;oBAC/B,CAAC,CAAC,kBAAkB,CAAC,YAAY;gBACrC,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE;oBACP,QAAQ;oBACR,OAAO;iBACR;aACF,CAAC,CAAC;QACL,CAAC,EACD,MAAM,CACP,CAAC;QAEJ,OAAO,GAAG,EAAE;YACV,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,CAAC;YACrB,uBAAuB,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,20 +1,33 @@
1
+ import type { IEventBus } from "#events/interfaces.js";
1
2
  import { ReactorClient } from "../client/reactor-client.js";
2
3
  import { type IJobAwaiter } from "../shared/awaiter.js";
3
4
  import type { ISigner } from "../signer/types.js";
5
+ import type { IDocumentIndexer } from "../storage/interfaces.js";
4
6
  import type { IReactorSubscriptionManager } from "../subs/types.js";
7
+ import type { ReactorBuilder } from "./reactor-builder.js";
5
8
  import type { IReactor } from "./types.js";
6
9
  /**
7
10
  * Builder class for constructing ReactorClient instances with proper configuration
8
11
  */
9
12
  export declare class ReactorClientBuilder {
13
+ private reactorBuilder?;
10
14
  private reactor?;
15
+ private eventBus?;
16
+ private documentIndexer?;
11
17
  private signer?;
12
18
  private subscriptionManager?;
13
19
  private jobAwaiter?;
14
- withReactor(reactor: IReactor): this;
20
+ /**
21
+ * Either this or withReactor must be set.
22
+ */
23
+ withReactorBuilder(reactorBuilder: ReactorBuilder): this;
24
+ /**
25
+ * Either this or withReactorBuilder must be set.
26
+ */
27
+ withReactor(reactor: IReactor, eventBus: IEventBus, documentIndexer: IDocumentIndexer): this;
15
28
  withSigner(signer: ISigner): this;
16
29
  withSubscriptionManager(subscriptionManager: IReactorSubscriptionManager): this;
17
30
  withJobAwaiter(jobAwaiter: IJobAwaiter): this;
18
- build(): ReactorClient;
31
+ build(): Promise<ReactorClient>;
19
32
  }
20
33
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,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;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAC,CAA8B;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAc;IAEjC;;OAEG;IACI,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAS/D;;OAEG;IACI,WAAW,CAChB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,gBAAgB,GAChC,IAAI;IAWA,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjC,uBAAuB,CAC5B,mBAAmB,EAAE,2BAA2B,GAC/C,IAAI;IAKA,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAKvC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;CAwD7C"}
@@ -7,12 +7,33 @@ import { ReactorSubscriptionManager } from "../subs/react-subscription-manager.j
7
7
  * Builder class for constructing ReactorClient instances with proper configuration
8
8
  */
9
9
  export class ReactorClientBuilder {
10
+ reactorBuilder;
10
11
  reactor;
12
+ eventBus;
13
+ documentIndexer;
11
14
  signer;
12
15
  subscriptionManager;
13
16
  jobAwaiter;
14
- withReactor(reactor) {
17
+ /**
18
+ * Either this or withReactor must be set.
19
+ */
20
+ withReactorBuilder(reactorBuilder) {
21
+ if (this.reactor) {
22
+ throw new Error("Reactor is already set");
23
+ }
24
+ this.reactorBuilder = reactorBuilder;
25
+ return this;
26
+ }
27
+ /**
28
+ * Either this or withReactorBuilder must be set.
29
+ */
30
+ withReactor(reactor, eventBus, documentIndexer) {
31
+ if (this.reactorBuilder) {
32
+ throw new Error("ReactorBuilder is already set");
33
+ }
15
34
  this.reactor = reactor;
35
+ this.eventBus = eventBus;
36
+ this.documentIndexer = documentIndexer;
16
37
  return this;
17
38
  }
18
39
  withSigner(signer) {
@@ -27,21 +48,41 @@ export class ReactorClientBuilder {
27
48
  this.jobAwaiter = jobAwaiter;
28
49
  return this;
29
50
  }
30
- build() {
31
- if (!this.reactor) {
32
- throw new Error("Reactor is required to build ReactorClient");
51
+ async build() {
52
+ let reactor;
53
+ let eventBus;
54
+ let documentIndexer;
55
+ if (this.reactorBuilder) {
56
+ reactor = await this.reactorBuilder.build();
57
+ const builderEventBus = this.reactorBuilder.events;
58
+ const builderDocumentIndexer = this.reactorBuilder.documentIndexer;
59
+ if (!builderEventBus) {
60
+ throw new Error("Event bus is required in ReactorBuilder");
61
+ }
62
+ if (!builderDocumentIndexer) {
63
+ throw new Error("DocumentIndexer must be initialized by ReactorBuilder");
64
+ }
65
+ eventBus = builderEventBus;
66
+ documentIndexer = builderDocumentIndexer;
67
+ }
68
+ else if (this.reactor && this.eventBus && this.documentIndexer) {
69
+ reactor = this.reactor;
70
+ eventBus = this.eventBus;
71
+ documentIndexer = this.documentIndexer;
72
+ }
73
+ else {
74
+ throw new Error("Either ReactorBuilder or (Reactor + EventBus + DocumentIndexer) is required");
33
75
  }
34
76
  if (!this.signer) {
35
77
  this.signer = new PassthroughSigner();
36
78
  }
37
- // Use default SubscriptionManager with default error handler if not provided
38
79
  if (!this.subscriptionManager) {
39
80
  this.subscriptionManager = new ReactorSubscriptionManager(new DefaultSubscriptionErrorHandler());
40
81
  }
41
82
  if (!this.jobAwaiter) {
42
- this.jobAwaiter = new JobAwaiter((jobId, signal) => this.reactor.getJobStatus(jobId, signal));
83
+ this.jobAwaiter = new JobAwaiter(eventBus, (jobId, signal) => reactor.getJobStatus(jobId, signal));
43
84
  }
44
- return new ReactorClient(this.reactor, this.signer, this.subscriptionManager, this.jobAwaiter);
85
+ return new ReactorClient(reactor, this.signer, this.subscriptionManager, this.jobAwaiter, documentIndexer);
45
86
  }
46
87
  }
47
88
  //# sourceMappingURL=builder.js.map
@@ -1 +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
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { IDocumentOperationStorage, IDocumentStorage } from "document-drive
2
2
  import type { DocumentModelModule } from "document-model";
3
3
  import type { WriteCacheConfig } from "../cache/write-cache-types.js";
4
4
  import type { IReadModel } from "../read-models/interfaces.js";
5
+ import type { SyncBuilder } from "../sync/sync-builder.js";
5
6
  import type { ExecutorConfig, IReactor, ReactorFeatures } from "./types.js";
6
7
  import type { IJobExecutorManager } from "#executor/interfaces.js";
8
+ import type { IDocumentIndexer } from "#storage/interfaces.js";
7
9
  import type { IEventBus } from "../events/interfaces.js";
8
10
  import type { IReadModelCoordinator } from "../read-models/interfaces.js";
9
11
  import type { MigrationStrategy } from "../storage/migrations/types.js";
@@ -18,6 +20,9 @@ export declare class ReactorBuilder {
18
20
  private writeCacheConfig?;
19
21
  private readModelCoordinatorFactory?;
20
22
  private migrationStrategy;
23
+ private syncBuilder?;
24
+ private eventBus?;
25
+ documentIndexer?: IDocumentIndexer;
21
26
  withDocumentModels(models: DocumentModelModule[]): this;
22
27
  withLegacyStorage(storage: IDocumentStorage & IDocumentOperationStorage): this;
23
28
  withFeatures(features: ReactorFeatures): this;
@@ -27,6 +32,9 @@ export declare class ReactorBuilder {
27
32
  withExecutorConfig(config: Partial<ExecutorConfig>): this;
28
33
  withWriteCacheConfig(config: Partial<WriteCacheConfig>): this;
29
34
  setMigrationStrategy(strategy: MigrationStrategy): this;
35
+ withSync(syncBuilder: SyncBuilder): this;
36
+ withEventBus(eventBus: IEventBus): this;
37
+ get events(): IEventBus | undefined;
30
38
  build(): Promise<IReactor>;
31
39
  }
32
40
  //# sourceMappingURL=reactor-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAQ/D,OAAO,KAAK,EAEV,cAAc,EACd,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,MAAM,4BAA4B,GAAG,CACzC,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EAAE,KACrB,qBAAqB,CAAC;AAE3B,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,OAAO,CAAC,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA4B;IACrD,OAAO,CAAC,2BAA2B,CAAC,CAA+B;IACnE,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAKvD,iBAAiB,CACf,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,GACpD,IAAI;IAKP,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAK7C,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAK1C,+BAA+B,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;IAK5E,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAKjD,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK7D,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKjD,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;CAqHjC"}
1
+ {"version":3,"file":"reactor-builder.d.ts","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAO/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAEV,cAAc,EACd,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,MAAM,4BAA4B,GAAG,CACzC,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EAAE,KACrB,qBAAqB,CAAC;AAE3B,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,OAAO,CAAC,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA4B;IACrD,OAAO,CAAC,2BAA2B,CAAC,CAA+B;IACnE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAY;IACtB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAE1C,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAKvD,iBAAiB,CACf,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,GACpD,IAAI;IAKP,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAK7C,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAK1C,+BAA+B,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;IAK5E,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAKjD,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK7D,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKvD,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAKxC,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAKvC,IAAI,MAAM,IAAI,SAAS,GAAG,SAAS,CAElC;IAEK,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;CAiIjC"}
@@ -27,6 +27,9 @@ export class ReactorBuilder {
27
27
  writeCacheConfig;
28
28
  readModelCoordinatorFactory;
29
29
  migrationStrategy = "auto";
30
+ syncBuilder;
31
+ eventBus;
32
+ documentIndexer;
30
33
  withDocumentModels(models) {
31
34
  this.documentModels = models;
32
35
  return this;
@@ -63,6 +66,17 @@ export class ReactorBuilder {
63
66
  this.migrationStrategy = strategy;
64
67
  return this;
65
68
  }
69
+ withSync(syncBuilder) {
70
+ this.syncBuilder = syncBuilder;
71
+ return this;
72
+ }
73
+ withEventBus(eventBus) {
74
+ this.eventBus = eventBus;
75
+ return this;
76
+ }
77
+ get events() {
78
+ return this.eventBus;
79
+ }
66
80
  async build() {
67
81
  const storage = this.storage || new MemoryStorage();
68
82
  const registry = new DocumentModelRegistry();
@@ -84,9 +98,9 @@ export class ReactorBuilder {
84
98
  }
85
99
  const operationStore = new KyselyOperationStore(db);
86
100
  const keyframeStore = new KyselyKeyframeStore(db);
87
- const eventBus = new EventBus();
101
+ const eventBus = this.eventBus || new EventBus();
88
102
  const queue = new InMemoryQueue(eventBus);
89
- const jobTracker = new InMemoryJobTracker();
103
+ const jobTracker = new InMemoryJobTracker(eventBus);
90
104
  const cacheConfig = {
91
105
  maxDocuments: this.writeCacheConfig?.maxDocuments ?? 100,
92
106
  ringBufferSize: this.writeCacheConfig?.ringBufferSize ?? 10,
@@ -107,16 +121,21 @@ export class ReactorBuilder {
107
121
  await documentView.init();
108
122
  readModelInstances.push(documentView);
109
123
  const documentIndexerConsistencyTracker = new ConsistencyTracker();
110
- const documentIndexer = new KyselyDocumentIndexer(
124
+ this.documentIndexer = new KyselyDocumentIndexer(
111
125
  // @ts-expect-error - Database type is a superset that includes all required tables
112
126
  db, operationStore, documentIndexerConsistencyTracker);
113
- await documentIndexer.init();
114
- readModelInstances.push(documentIndexer);
127
+ await this.documentIndexer.init();
128
+ readModelInstances.push(this.documentIndexer);
115
129
  const readModelCoordinator = this.readModelCoordinatorFactory
116
130
  ? this.readModelCoordinatorFactory(eventBus, readModelInstances)
117
131
  : new ReadModelCoordinator(eventBus, readModelInstances);
118
- readModelCoordinator.start();
119
- return new Reactor(driveServer, storage, queue, jobTracker, readModelCoordinator, this.features, documentView, documentIndexer, operationStore);
132
+ const reactor = new Reactor(driveServer, storage, queue, jobTracker, readModelCoordinator, this.features, documentView, this.documentIndexer, operationStore);
133
+ if (this.syncBuilder) {
134
+ const syncManager = this.syncBuilder.build(reactor, operationIndex, eventBus, db);
135
+ reactor.setSync(syncManager);
136
+ await syncManager.startup();
137
+ }
138
+ return reactor;
120
139
  }
121
140
  }
122
141
  //# sourceMappingURL=reactor-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"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"}