@reventlessdev/reventless-core 3.0.0-alpha.164 → 3.0.0-alpha.165
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/CHANGELOG.md +8 -0
- package/package.json +5 -5
- package/src/admin/Platform_Admin.res +6 -13
- package/src/admin/Platform_Admin.res.mjs +2 -11
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.165 (2026-07-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @reventlessdev/reventless-core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# 3.0.0-alpha.164 (2026-07-13)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @reventlessdev/reventless-core
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.165",
|
|
4
4
|
"description": "Core package for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
"sury": "11.0.0-alpha.4",
|
|
30
30
|
"uuid": "^13.0.0",
|
|
31
31
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
32
|
-
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
33
32
|
"@reventlessdev/rescript-fast-csv": "1.2.0-alpha.12",
|
|
34
33
|
"@reventlessdev/rescript-hash-object": "1.2.0-alpha.11",
|
|
34
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
35
35
|
"@reventlessdev/rescript-node-streams": "1.1.0-alpha.11",
|
|
36
36
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
37
|
+
"@reventlessdev/rescript-ssh2": "1.1.0-alpha.12",
|
|
37
38
|
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
38
39
|
"@reventlessdev/reventless-infra": "3.0.0-alpha.98",
|
|
39
|
-
"@reventlessdev/
|
|
40
|
-
"@reventlessdev/reventless-interop": "3.0.0-alpha.26"
|
|
41
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
40
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.76",
|
|
41
|
+
"@reventlessdev/reventless-interop": "3.0.0-alpha.26"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"rescript": "^12.3.0",
|
|
@@ -387,20 +387,13 @@ module Make = (
|
|
|
387
387
|
->Array.reduce(Belt.Set.String.empty, (acc, names) => acc->Belt.Set.String.union(names))
|
|
388
388
|
|
|
389
389
|
let aggregatesOutputs = addEventMappers(allEventTopics, queryEngine)
|
|
390
|
+
// The admin EventCollector subscribes only to the aggregate event topics
|
|
391
|
+
// filtered by its extension-point aggregate names. It is NOT a reader of the
|
|
392
|
+
// admin DcbEventLog stream: ApiFragmentRegistry is now a singleton aggregate
|
|
393
|
+
// (its reactive push is the ApiSchemaPush SideEffect on the aggregate event
|
|
394
|
+
// topic), and the remaining DcbEventLog slice (UiFragmentRegistry) is consumed
|
|
395
|
+
// by the AllStateViewSlices projection, not here.
|
|
390
396
|
let eventTopics = aggregatesOutputs->Aggregate.filterEventTopics(aggregateNames)
|
|
391
|
-
// 2e: also subscribe the admin EventCollector to the admin DcbEventLog's
|
|
392
|
-
// event topic (a DynamoDB stream on AWS) so the reactive ApiFragmentRegistry
|
|
393
|
-
// single writer receives ApiFragment* events. The EventCollector channel
|
|
394
|
-
// already provisions the stream subscription + read IAM for stream-backed
|
|
395
|
-
// event-topic resources. Copy the filtered dict so the shared aggregate
|
|
396
|
-
// outputs stay untouched.
|
|
397
|
-
let eventTopics = switch dcbResult.dcbEventLogOutputs {
|
|
398
|
-
| Some(dcbOutputs) =>
|
|
399
|
-
let augmented = eventTopics->Dict.copy
|
|
400
|
-
augmented->Dict.set(name ++ "DcbEventLog", dcbOutputs.eventTopic)
|
|
401
|
-
augmented
|
|
402
|
-
| None => eventTopics
|
|
403
|
-
}
|
|
404
397
|
|
|
405
398
|
module EventCollectorHelper = MakeEventCollectorHelper(
|
|
406
399
|
RuntimeEnvironment,
|
|
@@ -172,15 +172,6 @@ function Make(RuntimeEnvironment) {
|
|
|
172
172
|
let aggregateNames = Stdlib_Array.reduce(extensionPointsOutputs.map(extensionPointOutputs => Belt_SetString.fromArray(extensionPointOutputs.aggregateNames)), undefined, Belt_SetString.union);
|
|
173
173
|
let aggregatesOutputs = Builder_Helpers$ReventlessCore.addEventMappers(aggregateEventTopics, queryEngine);
|
|
174
174
|
let eventTopics = Aggregate$ReventlessCore.filterEventTopics(aggregatesOutputs, aggregateNames);
|
|
175
|
-
let dcbOutputs = dcbResult.dcbEventLogOutputs;
|
|
176
|
-
let eventTopics$1;
|
|
177
|
-
if (dcbOutputs !== undefined) {
|
|
178
|
-
let augmented = Object.assign({}, eventTopics);
|
|
179
|
-
augmented[name + "DcbEventLog"] = dcbOutputs.eventTopic;
|
|
180
|
-
eventTopics$1 = augmented;
|
|
181
|
-
} else {
|
|
182
|
-
eventTopics$1 = eventTopics;
|
|
183
|
-
}
|
|
184
175
|
let AdminEventCollector = EventCollector_Builder$ReventlessCore.Make(RuntimeEnvironment)(EventCollectorChannel);
|
|
185
176
|
let make = (name, eventTopics, opts) => {
|
|
186
177
|
let eventCollector = AdminEventCollector.make(name, eventTopics, opts);
|
|
@@ -215,9 +206,9 @@ function Make(RuntimeEnvironment) {
|
|
|
215
206
|
AdminRuntimeBuilder.forPluginEventCollector(handler, eventTopics, resources, undefined, undefined, eventCollector);
|
|
216
207
|
});
|
|
217
208
|
};
|
|
218
|
-
let match$1 = make(name, eventTopics
|
|
209
|
+
let match$1 = make(name, eventTopics, opts);
|
|
219
210
|
let eventCollector = match$1[0];
|
|
220
|
-
Output$Pulumi.flatMap(Pulumi.all(match[1]), extensionPointsOutgoingJsonEventsHandlers => connect(eventCollector, eventTopics
|
|
211
|
+
Output$Pulumi.flatMap(Pulumi.all(match[1]), extensionPointsOutgoingJsonEventsHandlers => connect(eventCollector, eventTopics, extensionPointsOutputs, extensionPointsOutgoingJsonEventsHandlers));
|
|
221
212
|
Stdlib_Option.forEach(dcbResult.dcbRuntimeSetup, dcbRuntimeSetup => dcbRuntimeSetup());
|
|
222
213
|
return extensionPointsOutputs;
|
|
223
214
|
});
|