@reventlessdev/reventless-aws 3.0.0-alpha.388 → 3.0.0-alpha.389
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 +18 -0
- package/package.json +6 -6
- package/src/Platform.res +1 -1
- package/src/Platform.res.mjs +2 -2
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res +1 -1
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda_Ops.res +7 -7
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda_Ops.res.mjs +5 -5
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +12 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +12 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +12 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +12 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +12 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +12 -2
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +6 -1
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +6 -1
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +6 -1
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +2 -2
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +6 -1
- package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res +6 -1
- package/src/adapter/StateTopic/StateTopic_AppSync.res +1 -1
- package/src/plugin/runtime/PluginRuntime_Builder.res +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
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.389 (2026-10-21)
|
|
7
|
+
|
|
8
|
+
* feat!: a state view's row key is module Id ([08c9726](https://github.com/ReventlessDev/reventless-core/commit/08c972659a3d689a39fd5e2f2026597155e92210))
|
|
9
|
+
* feat!: a plugin structure's component definitions are read-side and write-side defs ([ea2ab69](https://github.com/ReventlessDev/reventless-core/commit/ea2ab69e928ba16d7e640e4c66ab0e9ba034fe5c))
|
|
10
|
+
|
|
11
|
+
### BREAKING CHANGES
|
|
12
|
+
|
|
13
|
+
* a state view spec declares its row key as module Id. A
|
|
14
|
+
hand-written module Key in a spec under StateView/ or StateViewStream/
|
|
15
|
+
fails the build with "A state view's row key is `module Id`, not
|
|
16
|
+
`module Key`".
|
|
17
|
+
* Plugin.queryableDef, Plugin.writableDef, their schemas,
|
|
18
|
+
isPublicQueryable and encodeQueryableDef no longer exist; a reader names
|
|
19
|
+
readSideDef, writeSideDef, isPublicReadSide and encodeReadSideDef. There
|
|
20
|
+
are no aliases, so the compiler lists every reader.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
# 3.0.0-alpha.388 (2026-10-21)
|
|
7
25
|
|
|
8
26
|
* feat!: the write-side logic module is called the decision, and a codemod moves an app over ([cb573ff](https://github.com/ReventlessDev/reventless-core/commit/cb573ff5b928c7d7f3e75988dfaa65066f8c95eb))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.389",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -24,17 +24,17 @@
|
|
|
24
24
|
"yaml": "^2.8.3",
|
|
25
25
|
"@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.33",
|
|
26
26
|
"@reventlessdev/rescript-effect": "1.0.0-alpha.1",
|
|
27
|
+
"@reventlessdev/rescript-node": "2.0.0-alpha.23",
|
|
27
28
|
"@reventlessdev/rescript-jest": "1.0.0-alpha.13",
|
|
28
29
|
"@reventlessdev/rescript-pulumi-aws": "3.0.0-alpha.31",
|
|
29
|
-
"@reventlessdev/rescript-node": "2.0.0-alpha.23",
|
|
30
30
|
"@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
|
|
31
31
|
"@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
|
|
32
|
-
"@reventlessdev/reventless-core": "3.0.0-alpha.301",
|
|
33
32
|
"@reventlessdev/rescript-web": "1.0.0-alpha.8",
|
|
34
|
-
"@reventlessdev/reventless-infra": "3.0.0-alpha.
|
|
35
|
-
"@reventlessdev/reventless-postgres": "3.0.0-alpha.165",
|
|
33
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.199",
|
|
36
34
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.42",
|
|
37
|
-
"@reventlessdev/reventless-
|
|
35
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.166",
|
|
36
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.171",
|
|
37
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.302"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"rescript": "12.3.1",
|
package/src/Platform.res
CHANGED
|
@@ -964,7 +964,7 @@ module MakeWithConfig = (
|
|
|
964
964
|
allQueryDbs->Dict.forEachWithKey((_queryDbOutputs, readModelName) => {
|
|
965
965
|
if QueryDbStorage_DynamoDbStream.streamRegistry->Set.has(readModelName) {
|
|
966
966
|
// Channel root MUST equal what the host-shell subscribes to. The
|
|
967
|
-
// AutoUI manifest sets
|
|
967
|
+
// AutoUI manifest sets readSideDef.queryField = listFieldName
|
|
968
968
|
// (plural, e.g. "Catalog_Products") and AutoLive subscribes on that.
|
|
969
969
|
// Publishing on the singular returnTypeName ("Catalog_Product")
|
|
970
970
|
// would land descriptors on a channel no client listens to.
|
package/src/Platform.res.mjs
CHANGED
|
@@ -506,7 +506,7 @@ function MakeWithConfig(Config) {
|
|
|
506
506
|
name: UiFragments$ReventlessCore.name,
|
|
507
507
|
moduleUrl: UiFragments$ReventlessCore.moduleUrl,
|
|
508
508
|
stateSchema: UiFragments$ReventlessCore.stateSchema,
|
|
509
|
-
|
|
509
|
+
Id: {
|
|
510
510
|
schema: Id$Reventless.StringPure.schema,
|
|
511
511
|
make: prim => prim,
|
|
512
512
|
makeFromString: prim => prim,
|
|
@@ -1923,7 +1923,7 @@ function Make($star) {
|
|
|
1923
1923
|
name: UiFragments$ReventlessCore.name,
|
|
1924
1924
|
moduleUrl: UiFragments$ReventlessCore.moduleUrl,
|
|
1925
1925
|
stateSchema: UiFragments$ReventlessCore.stateSchema,
|
|
1926
|
-
|
|
1926
|
+
Id: {
|
|
1927
1927
|
schema: Id$Reventless.StringPure.schema,
|
|
1928
1928
|
make: prim => prim,
|
|
1929
1929
|
makeFromString: prim => prim,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// handler wraps each persisted structure with `pluginId` without decoding.
|
|
9
9
|
// One caveat: the persisted structure is PRE-filter — it still carries Internal
|
|
10
10
|
// ReadModels / StateViewSlices for developer tooling. The handler re-applies the
|
|
11
|
-
// `
|
|
11
|
+
// `isPublicReadSide` filter (mirroring `encodePluginStructureEntry`) so Internal
|
|
12
12
|
// components stay out of the deployed AutoUI, matching the in-memory adapter.
|
|
13
13
|
|
|
14
14
|
open PulumiAws
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
// Scans the Plugin read model for Connected plugins carrying a `structure`,
|
|
8
8
|
// collapses to the highest version per plugin name, re-applies the
|
|
9
|
-
// `
|
|
9
|
+
// `isPublicReadSide` filter (the persisted structure is PRE-filter — it still
|
|
10
10
|
// carries Internal ReadModels / StateViewSlices for developer tooling), and
|
|
11
11
|
// prepends the built-in Platform_Admin entry. The persisted structure is
|
|
12
12
|
// sury-encoded with the same shape as the in-memory adapter's
|
|
@@ -128,9 +128,9 @@ let healStructure = (structure: dict<JSON.t>): dict<JSON.t> => {
|
|
|
128
128
|
out
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
// Mirror ReventlessCore.Platform_ComponentDefinitionsApi.
|
|
131
|
+
// Mirror ReventlessCore.Platform_ComponentDefinitionsApi.isPublicReadSide on
|
|
132
132
|
// the read path: a component is public unless its visibility is "Internal".
|
|
133
|
-
let
|
|
133
|
+
let isPublicReadSide = (q: JSON.t): bool =>
|
|
134
134
|
switch q
|
|
135
135
|
->JSON.Decode.object
|
|
136
136
|
->Option.flatMap(o => o->Dict.get("visibility"))
|
|
@@ -154,15 +154,15 @@ let filterStructure = (structure: dict<JSON.t>): dict<JSON.t> => {
|
|
|
154
154
|
let arrAt = key => out->Dict.get(key)->Option.flatMap(JSON.Decode.array)->Option.getOr([])
|
|
155
155
|
let readModels = arrAt("readModels")
|
|
156
156
|
let stateViewSlices = arrAt("stateViewSlices")
|
|
157
|
-
out->Dict.set("readModels", readModels->Array.filter(
|
|
157
|
+
out->Dict.set("readModels", readModels->Array.filter(isPublicReadSide)->JSON.Encode.array)
|
|
158
158
|
out->Dict.set(
|
|
159
159
|
"stateViewSlices",
|
|
160
|
-
stateViewSlices->Array.filter(
|
|
160
|
+
stateViewSlices->Array.filter(isPublicReadSide)->JSON.Encode.array,
|
|
161
161
|
)
|
|
162
162
|
out->Dict.set(
|
|
163
163
|
"internalQueryables",
|
|
164
164
|
Array.concat(readModels, stateViewSlices)
|
|
165
|
-
->Array.filter(q => !
|
|
165
|
+
->Array.filter(q => !isPublicReadSide(q))
|
|
166
166
|
->JSON.Encode.array,
|
|
167
167
|
)
|
|
168
168
|
out
|
|
@@ -173,7 +173,7 @@ let filterStructure = (structure: dict<JSON.t>): dict<JSON.t> => {
|
|
|
173
173
|
// no decodable structure (former `!item.structure`).
|
|
174
174
|
//
|
|
175
175
|
// `~filter` is what separates the two fields this handler serves: AutoUI
|
|
176
|
-
// (`Platform_ComponentDefinitions`) gets the public-
|
|
176
|
+
// (`Platform_ComponentDefinitions`) gets the public read-side subset, developer
|
|
177
177
|
// tooling (`Platform_PluginStructures`) gets the structure exactly as persisted,
|
|
178
178
|
// including Internal components and the producer-side `extensionPoints` that the
|
|
179
179
|
// AutoUI entry type does not declare. Both are healed first — the SDL's non-null
|
|
@@ -182,7 +182,7 @@ function healStructure(structure) {
|
|
|
182
182
|
return out;
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
function
|
|
185
|
+
function isPublicReadSide(q) {
|
|
186
186
|
let match = Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_JSON.Decode.object(q), o => o["visibility"]), Stdlib_JSON.Decode.string);
|
|
187
187
|
if (match !== undefined) {
|
|
188
188
|
return match !== "Internal";
|
|
@@ -196,9 +196,9 @@ function filterStructure(structure) {
|
|
|
196
196
|
let arrAt = key => Stdlib_Option.getOr(Stdlib_Option.flatMap(out[key], Stdlib_JSON.Decode.array), []);
|
|
197
197
|
let readModels = arrAt("readModels");
|
|
198
198
|
let stateViewSlices = arrAt("stateViewSlices");
|
|
199
|
-
out["readModels"] = readModels.filter(
|
|
200
|
-
out["stateViewSlices"] = stateViewSlices.filter(
|
|
201
|
-
out["internalQueryables"] = readModels.concat(stateViewSlices).filter(q => !
|
|
199
|
+
out["readModels"] = readModels.filter(isPublicReadSide);
|
|
200
|
+
out["stateViewSlices"] = stateViewSlices.filter(isPublicReadSide);
|
|
201
|
+
out["internalQueryables"] = readModels.concat(stateViewSlices).filter(q => !isPublicReadSide(q));
|
|
202
202
|
return out;
|
|
203
203
|
}
|
|
204
204
|
|
|
@@ -644,7 +644,7 @@ export {
|
|
|
644
644
|
fillLifecycleField,
|
|
645
645
|
readSideCollections,
|
|
646
646
|
healStructure,
|
|
647
|
-
|
|
647
|
+
isPublicReadSide,
|
|
648
648
|
filterStructure,
|
|
649
649
|
toEntryWith,
|
|
650
650
|
adminEntry,
|
|
@@ -95,7 +95,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
98
|
-
ReventlessCore.Runtime.
|
|
98
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
99
|
+
CommandTopicChannel.callbackEvent,
|
|
100
|
+
context,
|
|
101
|
+
unit,
|
|
102
|
+
string,
|
|
103
|
+
>,
|
|
99
104
|
runtimeParts,
|
|
100
105
|
ReventlessCore.CommandTopic.component<'op>,
|
|
101
106
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -126,7 +131,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
129
|
-
ReventlessCore.Runtime.
|
|
134
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
135
|
+
EventCollectorChannel.callbackEvent,
|
|
136
|
+
context,
|
|
137
|
+
unit,
|
|
138
|
+
string,
|
|
139
|
+
>,
|
|
130
140
|
ReventlessCore.EventCollector.component,
|
|
131
141
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=2048, ~timeout=180, eventCollector) => {
|
|
132
142
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -99,7 +99,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
102
|
-
ReventlessCore.Runtime.
|
|
102
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
103
|
+
CommandTopicChannel.callbackEvent,
|
|
104
|
+
context,
|
|
105
|
+
unit,
|
|
106
|
+
string,
|
|
107
|
+
>,
|
|
103
108
|
runtimeParts,
|
|
104
109
|
ReventlessCore.CommandTopic.component<'op>,
|
|
105
110
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -132,7 +137,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
132
137
|
}
|
|
133
138
|
|
|
134
139
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
135
|
-
ReventlessCore.Runtime.
|
|
140
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
141
|
+
EventCollectorChannel.callbackEvent,
|
|
142
|
+
context,
|
|
143
|
+
unit,
|
|
144
|
+
string,
|
|
145
|
+
>,
|
|
136
146
|
ReventlessCore.EventCollector.component,
|
|
137
147
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=2048, ~timeout=180, eventCollector) => {
|
|
138
148
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -80,7 +80,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
83
|
-
ReventlessCore.Runtime.
|
|
83
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
84
|
+
CommandTopicChannel.callbackEvent,
|
|
85
|
+
context,
|
|
86
|
+
unit,
|
|
87
|
+
string,
|
|
88
|
+
>,
|
|
84
89
|
runtimeParts,
|
|
85
90
|
ReventlessCore.CommandTopic.component<'op>,
|
|
86
91
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -113,7 +118,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
113
118
|
}
|
|
114
119
|
|
|
115
120
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
116
|
-
ReventlessCore.Runtime.
|
|
121
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
122
|
+
EventCollectorChannel.callbackEvent,
|
|
123
|
+
context,
|
|
124
|
+
unit,
|
|
125
|
+
string,
|
|
126
|
+
>,
|
|
117
127
|
ReventlessCore.EventCollector.component,
|
|
118
128
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
119
129
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -84,7 +84,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
87
|
-
ReventlessCore.Runtime.
|
|
87
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
88
|
+
CommandTopicChannel.callbackEvent,
|
|
89
|
+
context,
|
|
90
|
+
unit,
|
|
91
|
+
string,
|
|
92
|
+
>,
|
|
88
93
|
runtimeParts,
|
|
89
94
|
ReventlessCore.CommandTopic.component<'op>,
|
|
90
95
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -117,7 +122,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
120
|
-
ReventlessCore.Runtime.
|
|
125
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
126
|
+
EventCollectorChannel.callbackEvent,
|
|
127
|
+
context,
|
|
128
|
+
unit,
|
|
129
|
+
string,
|
|
130
|
+
>,
|
|
121
131
|
ReventlessCore.EventCollector.component,
|
|
122
132
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
123
133
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -102,7 +102,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
105
|
-
ReventlessCore.Runtime.
|
|
105
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
106
|
+
CommandTopicChannel.callbackEvent,
|
|
107
|
+
context,
|
|
108
|
+
unit,
|
|
109
|
+
string,
|
|
110
|
+
>,
|
|
106
111
|
runtimeParts,
|
|
107
112
|
ReventlessCore.CommandTopic.component<'op>,
|
|
108
113
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -136,7 +141,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
139
|
-
ReventlessCore.Runtime.
|
|
144
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
145
|
+
EventCollectorChannel.callbackEvent,
|
|
146
|
+
context,
|
|
147
|
+
unit,
|
|
148
|
+
string,
|
|
149
|
+
>,
|
|
140
150
|
ReventlessCore.EventCollector.component,
|
|
141
151
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
142
152
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -91,7 +91,12 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
94
|
-
ReventlessCore.Runtime.
|
|
94
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
95
|
+
CommandTopicChannel.callbackEvent,
|
|
96
|
+
context,
|
|
97
|
+
unit,
|
|
98
|
+
string,
|
|
99
|
+
>,
|
|
95
100
|
runtimeParts,
|
|
96
101
|
ReventlessCore.CommandTopic.component<'op>,
|
|
97
102
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
|
|
@@ -125,7 +130,12 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
|
125
130
|
}
|
|
126
131
|
|
|
127
132
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
128
|
-
ReventlessCore.Runtime.
|
|
133
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
134
|
+
EventCollectorChannel.callbackEvent,
|
|
135
|
+
context,
|
|
136
|
+
unit,
|
|
137
|
+
string,
|
|
138
|
+
>,
|
|
129
139
|
ReventlessCore.EventCollector.component,
|
|
130
140
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
131
141
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -138,7 +138,12 @@ let storedSpecs: array<storedSpec> = []
|
|
|
138
138
|
let grandParent = ref(None)
|
|
139
139
|
|
|
140
140
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
141
|
-
ReventlessCore.Runtime.
|
|
141
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
142
|
+
EventCollectorChannel.callbackEvent,
|
|
143
|
+
context,
|
|
144
|
+
unit,
|
|
145
|
+
string,
|
|
146
|
+
>,
|
|
142
147
|
ReventlessCore.EventCollector.component,
|
|
143
148
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
144
149
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -18,7 +18,12 @@ let registerReadModel = (~readModelName, ~specModulePath, ~mappingsModulePath, ~
|
|
|
18
18
|
readModelInfos->Dict.set(readModelName, {specModulePath, mappingsModulePath, queryDbTableName})
|
|
19
19
|
|
|
20
20
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
21
|
-
ReventlessCore.Runtime.
|
|
21
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
22
|
+
EventCollectorChannel.callbackEvent,
|
|
23
|
+
context,
|
|
24
|
+
unit,
|
|
25
|
+
string,
|
|
26
|
+
>,
|
|
22
27
|
ReventlessCore.EventCollector.component,
|
|
23
28
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
24
29
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -66,7 +66,12 @@ let storedSpecs: array<storedSpec> = []
|
|
|
66
66
|
let grandParent = ref(None)
|
|
67
67
|
|
|
68
68
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
69
|
-
ReventlessCore.Runtime.
|
|
69
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
70
|
+
EventCollectorChannel.callbackEvent,
|
|
71
|
+
context,
|
|
72
|
+
unit,
|
|
73
|
+
string,
|
|
74
|
+
>,
|
|
70
75
|
ReventlessCore.EventCollector.component,
|
|
71
76
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
72
77
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -447,9 +447,9 @@ let extractRetryCount = (event: event) =>
|
|
|
447
447
|
->Option.flatMap(attrs => attrs.approximateReceiveCount)
|
|
448
448
|
->Option.flatMap(Int.fromString(_))
|
|
449
449
|
|
|
450
|
-
external asEventHandler: 'a => ReventlessCore.Runtime.
|
|
450
|
+
external asEventHandler: 'a => ReventlessCore.Runtime.invocationHandler<event, context, 'result> =
|
|
451
451
|
"%identity"
|
|
452
|
-
external asEffectHandler: 'a => ReventlessCore.Runtime.
|
|
452
|
+
external asEffectHandler: 'a => ReventlessCore.Runtime.effectInvocationHandler<
|
|
453
453
|
event,
|
|
454
454
|
context,
|
|
455
455
|
'result,
|
|
@@ -41,7 +41,12 @@ let storedSpecs: array<storedSpec> = []
|
|
|
41
41
|
let grandParent = ref(None)
|
|
42
42
|
|
|
43
43
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
44
|
-
ReventlessCore.Runtime.
|
|
44
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
45
|
+
EventCollectorChannel.callbackEvent,
|
|
46
|
+
context,
|
|
47
|
+
unit,
|
|
48
|
+
string,
|
|
49
|
+
>,
|
|
45
50
|
ReventlessCore.EventCollector.component,
|
|
46
51
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
47
52
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -93,7 +93,12 @@ let storedSpecs: array<storedSpec> = []
|
|
|
93
93
|
let grandParent = ref(None)
|
|
94
94
|
|
|
95
95
|
let forEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
96
|
-
ReventlessCore.Runtime.
|
|
96
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
97
|
+
EventCollectorChannel.callbackEvent,
|
|
98
|
+
context,
|
|
99
|
+
unit,
|
|
100
|
+
string,
|
|
101
|
+
>,
|
|
97
102
|
ReventlessCore.EventCollector.component,
|
|
98
103
|
> = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
|
|
99
104
|
let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
//
|
|
11
11
|
// Channel layout: /default/{topicName}/{pathSegment(entityKey)}
|
|
12
12
|
// topicName = plugin-prefixed query LIST field name (e.g. "Catalog-Products").
|
|
13
|
-
// MUST match the AutoUI manifest's
|
|
13
|
+
// MUST match the AutoUI manifest's readSideDef.queryField,
|
|
14
14
|
// which the host-shell's AutoLive subscribes on. Using the
|
|
15
15
|
// singular return type here would orphan the channel.
|
|
16
16
|
// entityKey = the table's primary-key value(s) extracted from record.Keys.
|
|
@@ -338,7 +338,7 @@ module Make = (
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
let forPluginEventCollector: ReventlessCore.Runtime.forEventCollector<
|
|
341
|
-
ReventlessCore.Runtime.
|
|
341
|
+
ReventlessCore.Runtime.effectInvocationHandler<
|
|
342
342
|
EventCollectorChannel.callbackEvent,
|
|
343
343
|
context,
|
|
344
344
|
unit,
|
|
@@ -873,7 +873,7 @@ module Make = (
|
|
|
873
873
|
}
|
|
874
874
|
|
|
875
875
|
let forPluginHeartbeat: ReventlessCore.Runtime.forComponent<
|
|
876
|
-
ReventlessCore.Runtime.
|
|
876
|
+
ReventlessCore.Runtime.invocationHandler<unit, context, unit>,
|
|
877
877
|
runtimeParts,
|
|
878
878
|
ReventlessCore.Heartbeat.component,
|
|
879
879
|
> = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, heartbeat) => {
|
|
@@ -922,7 +922,7 @@ module Make = (
|
|
|
922
922
|
// here). Merges slice module paths: auto-registered (from moduleUrl) + manually
|
|
923
923
|
// registered (from registerDcbConfig).
|
|
924
924
|
let forDcbCommandTopic: ReventlessCore.Runtime.forComponent<
|
|
925
|
-
ReventlessCore.Runtime.
|
|
925
|
+
ReventlessCore.Runtime.effectInvocationHandler<'callbackEvent, context, unit, string>,
|
|
926
926
|
runtimeParts,
|
|
927
927
|
ReventlessCore.CommandTopic.component<'op>,
|
|
928
928
|
// `~memorySize`/`~timeout` carry the per-component runtime floor (max across
|