@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.
- package/dist/src/client/reactor-client.d.ts +5 -3
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js +142 -37
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/core/builder.d.ts +15 -2
- package/dist/src/core/builder.d.ts.map +1 -1
- package/dist/src/core/builder.js +48 -7
- package/dist/src/core/builder.js.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +8 -0
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.js +26 -7
- package/dist/src/core/reactor-builder.js.map +1 -1
- package/dist/src/core/reactor.d.ts +14 -3
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +96 -95
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/core/types.d.ts +22 -3
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +0 -4
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/core/utils.js +0 -9
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/events/types.d.ts +28 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +2 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +19 -3
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +21 -7
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +11 -2
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.js +54 -26
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -1
- package/dist/src/job-tracker/interfaces.d.ts +6 -9
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.js +11 -0
- package/dist/src/read-models/coordinator.js.map +1 -1
- package/dist/src/read-models/document-view.d.ts +1 -0
- package/dist/src/read-models/document-view.d.ts.map +1 -1
- package/dist/src/read-models/document-view.js +72 -2
- package/dist/src/read-models/document-view.js.map +1 -1
- package/dist/src/shared/awaiter.d.ts +11 -8
- package/dist/src/shared/awaiter.d.ts.map +1 -1
- package/dist/src/shared/awaiter.js +66 -75
- package/dist/src/shared/awaiter.js.map +1 -1
- package/dist/src/shared/types.d.ts +4 -2
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +4 -2
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/storage/index.d.ts +4 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +3 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +79 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/interfaces.js.map +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts +13 -0
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +1 -0
- package/dist/src/storage/kysely/sync-cursor-storage.js +93 -0
- package/dist/src/storage/kysely/sync-cursor-storage.js.map +1 -0
- package/dist/src/storage/kysely/sync-remote-storage.d.ts +13 -0
- package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +1 -0
- package/dist/src/storage/kysely/sync-remote-storage.js +134 -0
- package/dist/src/storage/kysely/sync-remote-storage.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +35 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -1
- package/dist/src/storage/migrations/010_create_sync_tables.d.ts +3 -0
- package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +1 -0
- package/dist/src/storage/migrations/010_create_sync_tables.js +43 -0
- package/dist/src/storage/migrations/010_create_sync_tables.js.map +1 -0
- package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
- package/dist/src/storage/migrations/migrator.js +2 -0
- package/dist/src/storage/migrations/migrator.js.map +1 -1
- package/dist/src/sync/channels/index.d.ts +3 -0
- package/dist/src/sync/channels/index.d.ts.map +1 -0
- package/dist/src/sync/channels/index.js +3 -0
- package/dist/src/sync/channels/index.js.map +1 -0
- package/dist/src/sync/channels/internal-channel.d.ts +57 -0
- package/dist/src/sync/channels/internal-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/internal-channel.js +106 -0
- package/dist/src/sync/channels/internal-channel.js.map +1 -0
- package/dist/src/sync/channels/utils.d.ts +15 -0
- package/dist/src/sync/channels/utils.d.ts.map +1 -0
- package/dist/src/sync/channels/utils.js +26 -0
- package/dist/src/sync/channels/utils.js.map +1 -0
- package/dist/src/sync/errors.d.ts +10 -0
- package/dist/src/sync/errors.d.ts.map +1 -0
- package/dist/src/sync/errors.js +17 -0
- package/dist/src/sync/errors.js.map +1 -0
- package/dist/src/sync/index.d.ts +12 -0
- package/dist/src/sync/index.d.ts.map +1 -0
- package/dist/src/sync/index.js +9 -0
- package/dist/src/sync/index.js.map +1 -0
- package/dist/src/sync/interfaces.d.ts +150 -0
- package/dist/src/sync/interfaces.d.ts.map +1 -0
- package/dist/src/sync/interfaces.js +2 -0
- package/dist/src/sync/interfaces.js.map +1 -0
- package/dist/src/sync/mailbox.d.ts +21 -0
- package/dist/src/sync/mailbox.d.ts.map +1 -0
- package/dist/src/sync/mailbox.js +59 -0
- package/dist/src/sync/mailbox.js.map +1 -0
- package/dist/src/sync/sync-builder.d.ts +17 -0
- package/dist/src/sync/sync-builder.d.ts.map +1 -0
- package/dist/src/sync/sync-builder.js +29 -0
- package/dist/src/sync/sync-builder.js.map +1 -0
- package/dist/src/sync/sync-manager.d.ts +33 -0
- package/dist/src/sync/sync-manager.d.ts.map +1 -0
- package/dist/src/sync/sync-manager.js +197 -0
- package/dist/src/sync/sync-manager.js.map +1 -0
- package/dist/src/sync/sync-operation.d.ts +28 -0
- package/dist/src/sync/sync-operation.d.ts.map +1 -0
- package/dist/src/sync/sync-operation.js +63 -0
- package/dist/src/sync/sync-operation.js.map +1 -0
- package/dist/src/sync/types.d.ts +61 -0
- package/dist/src/sync/types.d.ts.map +1 -0
- package/dist/src/sync/types.js +16 -0
- package/dist/src/sync/types.js.map +1 -0
- package/dist/src/sync/utils.d.ts +17 -0
- package/dist/src/sync/utils.d.ts.map +1 -0
- package/dist/src/sync/utils.js +34 -0
- package/dist/src/sync/utils.js.map +1 -0
- 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
|
|
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
|
|
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
|
-
|
|
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":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
81
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
await this.
|
|
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
|
-
|
|
136
|
-
await this.
|
|
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
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
package/dist/src/core/builder.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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) =>
|
|
83
|
+
this.jobAwaiter = new JobAwaiter(eventBus, (jobId, signal) => reactor.getJobStatus(jobId, signal));
|
|
43
84
|
}
|
|
44
|
-
return new ReactorClient(
|
|
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":"
|
|
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;
|
|
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
|
-
|
|
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.
|
|
119
|
-
|
|
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":"AAKA,OAAO,EACL,cAAc,IAAI,mBAAmB,EACrC,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"reactor-builder.js","sourceRoot":"","sources":["../../../src/core/reactor-builder.ts"],"names":[],"mappings":"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"}
|