@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 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.388",
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.198",
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-spec": "3.0.0-alpha.170"
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 queryableDef.queryField = listFieldName
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.
@@ -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
- Key: {
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
- Key: {
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
- // `isPublicQueryable` filter (mirroring `encodePluginStructureEntry`) so Internal
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
- // `isPublicQueryable` filter (the persisted structure is PRE-filter — it still
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.isPublicQueryable on
131
+ // Mirror ReventlessCore.Platform_ComponentDefinitionsApi.isPublicReadSide on
132
132
  // the read path: a component is public unless its visibility is "Internal".
133
- let isPublicQueryable = (q: JSON.t): bool =>
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(isPublicQueryable)->JSON.Encode.array)
157
+ out->Dict.set("readModels", readModels->Array.filter(isPublicReadSide)->JSON.Encode.array)
158
158
  out->Dict.set(
159
159
  "stateViewSlices",
160
- stateViewSlices->Array.filter(isPublicQueryable)->JSON.Encode.array,
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 => !isPublicQueryable(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-queryable subset, developer
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 isPublicQueryable(q) {
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(isPublicQueryable);
200
- out["stateViewSlices"] = stateViewSlices.filter(isPublicQueryable);
201
- out["internalQueryables"] = readModels.concat(stateViewSlices).filter(q => !isPublicQueryable(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
- isPublicQueryable,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.eventHandler<event, context, 'result> =
450
+ external asEventHandler: 'a => ReventlessCore.Runtime.invocationHandler<event, context, 'result> =
451
451
  "%identity"
452
- external asEffectHandler: 'a => ReventlessCore.Runtime.effectHandler<
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
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 queryableDef.queryField,
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.effectHandler<
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.eventHandler<unit, context, unit>,
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.effectHandler<'callbackEvent, context, unit, string>,
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