@reventlessdev/reventless-aws 3.0.0-alpha.343 → 3.0.0-alpha.345

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 (234) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +11 -11
  3. package/scripts/ProvisionIdentity.res +8 -3
  4. package/src/Platform.res +327 -328
  5. package/src/Platform.res.mjs +4 -2
  6. package/src/Platform_Casts.res +13 -4
  7. package/src/adapter/Api/AppSyncEventsSigner_Ops.res +8 -4
  8. package/src/adapter/Api/AppSync_EventsApi.res +12 -14
  9. package/src/adapter/Api/AppSync_Resolver_Native.res +3 -4
  10. package/src/adapter/Api/AppSync_Resolver_Retrying.res +78 -70
  11. package/src/adapter/Api/AppSync_SourceApiAssociation_Retrying.res +11 -8
  12. package/src/adapter/Api/Platform_AdminScan_Ops.res +15 -14
  13. package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res +10 -2
  14. package/src/adapter/Api/Platform_ComponentDefinitions_Lambda_Ops.res +40 -50
  15. package/src/adapter/Api/Platform_UIFragments_Lambda.res +39 -32
  16. package/src/adapter/Api/Platform_UIFragments_Lambda_Ops.res +5 -2
  17. package/src/adapter/Auth/Auth_ActiveRolePoolAttachment.res +0 -1
  18. package/src/adapter/Auth/Auth_ActiveRoleStore.res +1 -2
  19. package/src/adapter/Auth/Auth_ActiveRoleStore_Schema.res +1 -4
  20. package/src/adapter/Auth/Auth_ActiveRoleTrigger_Ops.res +5 -2
  21. package/src/adapter/Auth/Auth_Cognito.res +3 -9
  22. package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res +1 -4
  23. package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync_NoOp.res +3 -1
  24. package/src/adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res +1 -4
  25. package/src/adapter/CommandTopic/CommandTopicChannel_SQS.res +7 -4
  26. package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Async.res +6 -1
  27. package/src/adapter/CommandTopic/CommandTopicChannel_SQS_FIFO.res +7 -4
  28. package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Runtime.res +24 -18
  29. package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res +9 -4
  30. package/src/adapter/CommandTopic/CommandTopicRegistry.res +1 -4
  31. package/src/adapter/Counter/CounterHandler_DynamoDbStream.res +15 -15
  32. package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res +9 -5
  33. package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb_Runtime.res +179 -213
  34. package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res +5 -5
  35. package/src/adapter/EventCollector/EventCollectorChannel_Helpers.res +6 -2
  36. package/src/adapter/EventCollector/EventCollectorChannel_SQS.res +14 -7
  37. package/src/adapter/EventCollector/EventCollectorChannel_SQS_FIFO.res +14 -7
  38. package/src/adapter/EventCollector/EventCollectorChannel_SQS_Runtime.res +6 -3
  39. package/src/adapter/EventLog/EventLogStorage_DynamoDbStream.res +6 -1
  40. package/src/adapter/EventLog/EventLogStorage_DynamoDb_Runtime.res +13 -17
  41. package/src/adapter/EventLog/EventLogStorage_Postgres.res +7 -4
  42. package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync.res +12 -7
  43. package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync_Ops.res +4 -2
  44. package/src/adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res +3 -2
  45. package/src/adapter/EventTopic/EventTopicPublisher_SNS.res +20 -12
  46. package/src/adapter/EventTopic/EventTopicPublisher_SNS_FIFO.res +21 -9
  47. package/src/adapter/EventTopic/EventTopicPublisher_SNS_Runtime.res +5 -3
  48. package/src/adapter/Geocoder/Geocoder_AwsLocation_Resolver.res +6 -3
  49. package/src/adapter/Mcp/MCP_Lambda.res +31 -46
  50. package/src/adapter/Messaging/Messaging_Ses_Backend.res +11 -7
  51. package/src/adapter/Messaging/Messaging_Ses_Backend.res.mjs +2 -4
  52. package/src/adapter/Monitoring/Monitoring_CloudWatch.res +16 -16
  53. package/src/adapter/Postgres/PgChangeFeedRelay_Builder.res +5 -10
  54. package/src/adapter/Postgres/PgChangeFeedRelay_Runtime.res +4 -2
  55. package/src/adapter/Postgres/PgConnection.res +6 -5
  56. package/src/adapter/Postgres/PgMigration_Builder.res +4 -8
  57. package/src/adapter/Postgres/PgRuntime.res +4 -7
  58. package/src/adapter/QueryDb/PgQueryResolver_Builder.res +9 -11
  59. package/src/adapter/QueryDb/PgQueryResolver_Lambda.res +22 -21
  60. package/src/adapter/QueryDb/QueryDbResolvers_AppSync.res +114 -111
  61. package/src/adapter/QueryDb/QueryDbResolvers_Lambda.res +1 -7
  62. package/src/adapter/QueryDb/QueryDbStorage.res +4 -2
  63. package/src/adapter/QueryDb/QueryDbStorage_DynamoDb.res +23 -24
  64. package/src/adapter/QueryDb/QueryDbStorage_DynamoDbStream.res +8 -2
  65. package/src/adapter/QueryDb/QueryDbStorage_DynamoDb_Runtime.res +71 -73
  66. package/src/adapter/QueryDb/QueryDbStorage_Postgres.res +5 -2
  67. package/src/adapter/QueryDb/QueryInterceptor_Provisioning.res +1 -4
  68. package/src/adapter/QueryEngine/QueryEngine_DynamoDb.res +8 -2
  69. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +73 -81
  70. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +72 -78
  71. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +44 -67
  72. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +44 -67
  73. package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +53 -82
  74. package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +47 -77
  75. package/src/adapter/Runtime/AutomationSliceEntryPoint_Ops.res +18 -11
  76. package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +80 -97
  77. package/src/adapter/Runtime/CounterEntryPoint_Ops.res +2 -7
  78. package/src/adapter/Runtime/DcbCommandTopicEntryPoint_Ops.res +16 -10
  79. package/src/adapter/Runtime/EventCollectorEntryPoint_Ops.res +24 -15
  80. package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +17 -37
  81. package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +31 -57
  82. package/src/adapter/Runtime/EventMapperEntryPoint_Ops.res +18 -24
  83. package/src/adapter/Runtime/ExtensionPointEntryPoint_Ops.res +1 -5
  84. package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +4 -3
  85. package/src/adapter/Runtime/HeartbeatEntryPoint.res +0 -1
  86. package/src/adapter/Runtime/PgChangeFeedRelayEntryPoint.res +4 -2
  87. package/src/adapter/Runtime/PgMigrationEntryPoint.res +0 -1
  88. package/src/adapter/Runtime/PgQueryResolverEntryPoint_Ops.res +3 -2
  89. package/src/adapter/Runtime/PluginExtensionPointEntryPoint.res +1 -2
  90. package/src/adapter/Runtime/ProjectionEntryPoint_Ops.res +4 -5
  91. package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +22 -10
  92. package/src/adapter/Runtime/RuntimeExtensionEntryPoint_Ops.res +8 -2
  93. package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +14 -31
  94. package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res +16 -17
  95. package/src/adapter/Runtime/StateViewSliceEntryPoint_Ops.res +10 -9
  96. package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res +46 -52
  97. package/src/adapter/Runtime/StreamRoutedEntryPoint_Ops.res +36 -41
  98. package/src/adapter/Runtime/TaskBucketEntryPoint_Ops.res +31 -37
  99. package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +6 -7
  100. package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents.res +4 -6
  101. package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents_Runtime.res +2 -6
  102. package/src/adapter/StateTopic/StateTopic_AppSync.res +21 -16
  103. package/src/adapter/StateTopic/StateTopic_AppSync_Ops.res +36 -32
  104. package/src/adapter/Task/TaskBucket_S3.res +6 -1
  105. package/src/adapter/Upload/Upload_Claim_S3.res +17 -20
  106. package/src/adapter/Upload/Upload_Claim_S3_Ops.res +5 -2
  107. package/src/adapter/Upload/Upload_Presign_S3.res +51 -49
  108. package/src/capability/Capability_Geocoding_AwsLocation.res +4 -1
  109. package/src/capability/Capability_Messaging.res +4 -5
  110. package/src/capability/Capability_Messaging_Ses.res +3 -1
  111. package/src/capability/Capability_ObjectStore_S3.res +1 -7
  112. package/src/components/Api/AppSync_Adapter.res +28 -41
  113. package/src/components/Api/AppSync_SdlDecorate.res +38 -30
  114. package/src/components/AutomationSlice_Builder.res +6 -4
  115. package/src/components/ExtensionPoint_Builder.res +9 -10
  116. package/src/components/InboundTranslationSlice_Builder.res +7 -8
  117. package/src/components/OutboundTranslationSlice_Builder.res +14 -8
  118. package/src/components/OutboundTranslationSlice_Builder.res.mjs +1 -1
  119. package/src/components/SideEffectHandler_Single.res +4 -4
  120. package/src/components/StateViewSlice_Builder.res +6 -4
  121. package/src/components/StateViewSlice_Builder_Stream.res +6 -4
  122. package/src/components/Task_Builder_PerBucket.res +10 -11
  123. package/src/plugin/cloner/ClonerRunner_Fargate.res +3 -10
  124. package/src/plugin/cloner/ClonerRunner_Fargate_Runtime.res +1 -4
  125. package/src/plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res +5 -5
  126. package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res +19 -21
  127. package/src/plugin/runtime/PluginRuntime_Builder.res +167 -188
  128. package/src/plugin/runtime/Util_PluginMessage_Runtime.res +6 -5
  129. package/src/plugin/stack/Plugin_Stack.res +104 -103
  130. package/src/util/Util_AlarmSpec.res +2 -1
  131. package/src/util/Util_AppSync.res +8 -2
  132. package/src/util/Util_AppSync_Caller.res +15 -14
  133. package/src/util/Util_Bundle.res +144 -67
  134. package/src/util/Util_Bundle.res.mjs +64 -13
  135. package/src/util/Util_CognitoGroupUser_Runtime.res +32 -34
  136. package/src/util/Util_Cognito_Runtime.res +11 -7
  137. package/src/util/Util_DeadLetterQueue.res +12 -2
  138. package/src/util/Util_DynamoDb.res +5 -3
  139. package/src/util/Util_DynamoDbStream.res +7 -3
  140. package/src/util/Util_DynamoDbStream_Runtime.res +1 -2
  141. package/src/util/Util_DynamoDb_Runtime.res +23 -41
  142. package/src/util/Util_HostUiDomain.res +6 -1
  143. package/src/util/Util_Kinesis_Runtime.res +10 -11
  144. package/src/util/Util_Lambda.res +12 -5
  145. package/src/util/Util_LambdaEnvBudget.res +5 -5
  146. package/src/util/Util_LambdaLogging.res +1 -2
  147. package/src/util/Util_LogGroup_Adopting.res +1 -4
  148. package/src/util/Util_ResourceNaming.res +1 -2
  149. package/src/util/Util_SNS.res +8 -3
  150. package/src/util/Util_SNS_FIFO.res +1 -1
  151. package/src/util/Util_SNS_Runtime.res +11 -10
  152. package/src/util/Util_SQS.res +4 -2
  153. package/src/util/Util_SQS_FIFO.res +5 -2
  154. package/src/util/Util_SQS_Runtime.res +37 -36
  155. package/src/util/Util_ShellConfig.res +3 -2
  156. package/src/util/Util_StaticBundle.res +1 -3
  157. package/src/util/Util_StoreLayout.res +4 -1
  158. package/tests/AWS_TagsTest.res +16 -5
  159. package/tests/AppSyncEventsSigner_OpsTest.res +11 -2
  160. package/tests/AppSync_AdapterTest.res +203 -224
  161. package/tests/AppSync_Resolver_RetryingTest.res +64 -44
  162. package/tests/AppSync_RetirementNarrowingTest.res +59 -46
  163. package/tests/AppSync_SdlDecorateTest.res +22 -20
  164. package/tests/AppSync_SourceApiAssociation_RetryingTest.res +40 -22
  165. package/tests/Auth_ActiveRolePoolAttachmentTest.res +114 -107
  166. package/tests/Auth_ActiveRoleStoreTest.res +12 -9
  167. package/tests/Auth_ActiveRoleStore_SchemaTest.res +2 -1
  168. package/tests/Auth_ActiveRoleTrigger_OpsTest.res +20 -16
  169. package/tests/Auth_CognitoTest.res +31 -46
  170. package/tests/AutomationSliceEntryPoint_OpsTest.res +69 -67
  171. package/tests/BakeConvergenceTest.res +22 -25
  172. package/tests/Capability_MessagingTest.res +28 -12
  173. package/tests/CommandTopicQueuePolicyTest.res +1 -2
  174. package/tests/CounterEntryPoint_OpsTest.res +3 -7
  175. package/tests/DcbEventLogStorage_DynamoDb_RuntimeTest.res +306 -210
  176. package/tests/EventCollectorConnectLambdaPreviewTest.res +14 -7
  177. package/tests/EventCollectorEntryPoint_OpsTest.res +12 -4
  178. package/tests/EventCollectorPluginDefinitionAssetTest.res +18 -11
  179. package/tests/EventCollectorReadyGateTest.res +5 -4
  180. package/tests/EventLogStorage_DynamoDb_RuntimeTest.res +1 -2
  181. package/tests/EventMapperEntryPoint_OpsTest.res +1 -3
  182. package/tests/ExtensionPointEntryPoint_OpsTest.res +1 -4
  183. package/tests/HandlerFactoryDispatchTest.res +97 -70
  184. package/tests/MCP_LambdaTest.res +16 -27
  185. package/tests/PgChangeFeedRelay_IntegrationTest.res +123 -93
  186. package/tests/PgChangeFeedRelay_RuntimeTest.res +13 -10
  187. package/tests/PgMigrationEntryPoint_IntegrationTest.res +0 -1
  188. package/tests/PgPipeline_IntegrationTest.res +80 -66
  189. package/tests/PgQueryDbUnion_IntegrationTest.res +1 -2
  190. package/tests/PgQueryResolverEntryPoint_OpsTest.res +2 -6
  191. package/tests/PgQueryResolver_LambdaTest.res +41 -24
  192. package/tests/Platform_AdminScan_OpsTest.res +4 -1
  193. package/tests/Platform_ComponentDefinitions_Lambda_OpsTest.res +137 -129
  194. package/tests/ProjectionEntryPoint_DisplayNameTest.res +7 -3
  195. package/tests/ProjectionEntryPoint_UnionStampTest.res +3 -2
  196. package/tests/ProvisionIdentityTest.res +2 -6
  197. package/tests/QueryDbOwnerIndexTableTest.res +6 -4
  198. package/tests/QueryDbResolvers_AppSyncTest.res +23 -16
  199. package/tests/QueryInterceptor_LambdaTest.res +11 -13
  200. package/tests/ReadModelEntryPoint_OpsTest.res +43 -41
  201. package/tests/RuntimeExtensionEntryPoint_OpsTest.res +4 -3
  202. package/tests/SideEffectEntryPoint_OpsTest.res +23 -18
  203. package/tests/StateChangeDescriptorParityTest.res +28 -26
  204. package/tests/StateTopicKeySchemaTest.res +18 -15
  205. package/tests/StateViewSliceEntryPoint_OpsTest.res +55 -44
  206. package/tests/TaskBucketEntryPoint_OpsTest.res +13 -13
  207. package/tests/Upload_ClaimTest.res +3 -3
  208. package/tests/Util_AwsErrorTest.res +4 -7
  209. package/tests/Util_BundleDependencyClosureTest.res +41 -3
  210. package/tests/Util_BundleDependencyClosureTest.res.mjs +11 -0
  211. package/tests/Util_BundleEsmLoaderTest.res +3 -3
  212. package/tests/Util_BundleResolveTest.res +4 -6
  213. package/tests/Util_BundleRuntimeExtensionTest.res +17 -18
  214. package/tests/Util_DcbMetricsTest.res +6 -6
  215. package/tests/Util_DynamoDbStreamTest.res +4 -5
  216. package/tests/Util_DynamoDbTest.res +3 -2
  217. package/tests/Util_LambdaEnvBudgetTest.res +22 -18
  218. package/tests/Util_LambdaLoggingTest.res +9 -8
  219. package/tests/Util_LogGroup_AdoptingTest.res +10 -5
  220. package/tests/Util_LogRetentionTest.res +6 -2
  221. package/tests/Util_OwnerScopeEnvTest.res +10 -8
  222. package/tests/Util_SQS_RuntimeTest.res +5 -7
  223. package/tests/Util_ShellConfigTest.res +7 -17
  224. package/tests/Util_StaticBundleTest.res +3 -8
  225. package/tests/Util_StoreLayoutTest.res +17 -12
  226. package/tests/integration/AggregateEntryPoint_IntegrationTest.res +1 -4
  227. package/tests/integration/DcbCommandTopicEntryPoint_IntegrationTest.res +15 -15
  228. package/tests/integration/DcbEventLogStorage_DynamoDb_IntegrationTest.res +296 -232
  229. package/tests/integration/DcbIntegrationHarness.res +8 -8
  230. package/tests/integration/EpCompositeSlice.res +16 -8
  231. package/tests/integration/QueryDbUnion_DynamoDb_IntegrationTest.res +8 -10
  232. package/tests/integration/StateViewSliceEntryPoint_IntegrationTest.res +10 -10
  233. package/tests/integration/SvsTestSlice_Projection.res +1 -3
  234. package/tests/util/Util_AlarmSpecTest.res +62 -49
@@ -79,44 +79,30 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
79
79
  ReventlessCore.CommandGenerator.effectEventHandler<context>,
80
80
  runtimeParts,
81
81
  ReventlessCore.CommandGenerator.component,
82
- > = (
83
- ~handler as _,
84
- ~connect,
85
- ~memorySize=1024,
86
- ~timeout=30,
87
- commandGenerator,
88
- ) => {
82
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandGenerator) => {
89
83
  let resource = commandGenerator->ReventlessCore.Component.toPulumiResource
90
84
  switch resource.parent {
91
85
  | Some(aggregateResource) =>
92
86
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
93
87
  let spec = getStoredSpec(aggregateName, aggregateResource)
94
- storedSpecs->Dict.set(aggregateName, {
95
- ...spec,
96
- commandGeneratorConnects: spec.commandGeneratorConnects->Array.concat([connect]),
97
- commandGeneratorMemorySize: Math.Int.max(spec.commandGeneratorMemorySize, memorySize),
98
- commandGeneratorTimeout: Math.Int.max(spec.commandGeneratorTimeout, timeout),
99
- })
88
+ storedSpecs->Dict.set(
89
+ aggregateName,
90
+ {
91
+ ...spec,
92
+ commandGeneratorConnects: spec.commandGeneratorConnects->Array.concat([connect]),
93
+ commandGeneratorMemorySize: Math.Int.max(spec.commandGeneratorMemorySize, memorySize),
94
+ commandGeneratorTimeout: Math.Int.max(spec.commandGeneratorTimeout, timeout),
95
+ },
96
+ )
100
97
  | None => ()
101
98
  }
102
99
  }
103
100
 
104
101
  let forCommandTopic: ReventlessCore.Runtime.forComponent<
105
- ReventlessCore.Runtime.effectHandler<
106
- CommandTopicChannel.callbackEvent,
107
- context,
108
- unit,
109
- string,
110
- >,
102
+ ReventlessCore.Runtime.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
111
103
  runtimeParts,
112
104
  ReventlessCore.CommandTopic.component<'op>,
113
- > = (
114
- ~handler as _,
115
- ~connect,
116
- ~memorySize=1024,
117
- ~timeout=30,
118
- commandTopic,
119
- ) => {
105
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
120
106
  let commandTopicResource = commandTopic->ReventlessCore.Component.toPulumiResource
121
107
  switch commandTopicResource.parent {
122
108
  | Some(aggregateResource) =>
@@ -126,14 +112,17 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
126
112
  let queue = channelParts.queue
127
113
 
128
114
  let spec = getStoredSpec(aggregateName, aggregateResource)
129
- storedSpecs->Dict.set(aggregateName, {
130
- ...spec,
131
- queueUrl: queue.id,
132
- queueArn: queue.arn,
133
- commandTopicConnects: spec.commandTopicConnects->Array.concat([connect]),
134
- commandTopicMemorySize: Math.Int.max(spec.commandTopicMemorySize, memorySize),
135
- commandTopicTimeout: Math.Int.max(spec.commandTopicTimeout, timeout),
136
- })
115
+ storedSpecs->Dict.set(
116
+ aggregateName,
117
+ {
118
+ ...spec,
119
+ queueUrl: queue.id,
120
+ queueArn: queue.arn,
121
+ commandTopicConnects: spec.commandTopicConnects->Array.concat([connect]),
122
+ commandTopicMemorySize: Math.Int.max(spec.commandTopicMemorySize, memorySize),
123
+ commandTopicTimeout: Math.Int.max(spec.commandTopicTimeout, timeout),
124
+ },
125
+ )
137
126
  | None =>
138
127
  let name = commandTopicResource.name->Option.getOr("Unnamed")
139
128
  JsError.throwWithMessage(
@@ -143,33 +132,24 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
143
132
  }
144
133
 
145
134
  let forEventCollector: ReventlessCore.Runtime.forEventCollector<
146
- ReventlessCore.Runtime.effectHandler<
147
- EventCollectorChannel.callbackEvent,
148
- context,
149
- unit,
150
- string,
151
- >,
135
+ ReventlessCore.Runtime.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
152
136
  ReventlessCore.EventCollector.component,
153
- > = (
154
- ~handler as _,
155
- ~eventTopics,
156
- ~resources,
157
- ~memorySize=2048,
158
- ~timeout=180,
159
- eventCollector,
160
- ) => {
137
+ > = (~handler as _, ~eventTopics, ~resources, ~memorySize=2048, ~timeout=180, eventCollector) => {
161
138
  let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
162
139
  let channel = eventCollector->ReventlessCore.EventCollector_Adapter.channel
163
140
  switch eventCollectorResource.parent->Option.flatMap(parent => parent.parent) {
164
141
  | Some(aggregateResource) =>
165
142
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
166
143
  let spec = getStoredSpec(aggregateName, aggregateResource)
167
- storedSpecs->Dict.set(aggregateName, {
168
- ...spec,
169
- eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
170
- eventCollectorMemorySize: Math.Int.max(spec.eventCollectorMemorySize, memorySize),
171
- eventCollectorTimeout: Math.Int.max(spec.eventCollectorTimeout, timeout),
172
- })
144
+ storedSpecs->Dict.set(
145
+ aggregateName,
146
+ {
147
+ ...spec,
148
+ eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
149
+ eventCollectorMemorySize: Math.Int.max(spec.eventCollectorMemorySize, memorySize),
150
+ eventCollectorTimeout: Math.Int.max(spec.eventCollectorTimeout, timeout),
151
+ },
152
+ )
173
153
  | None =>
174
154
  let name = eventCollectorResource.name->Option.getOr("Unnamed")
175
155
  JsError.throwWithMessage(
@@ -201,13 +181,11 @@ let finish = () =>
201
181
  packageDirs->Dict.set(specPkg, Util_Bundle.resolvePackageRoot(specPkg))
202
182
  packageDirs->Dict.set(behaviorPkg, Util_Bundle.resolvePackageRoot(behaviorPkg))
203
183
 
204
- let specModule =
205
- info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
206
- let behaviorModule =
207
- info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
184
+ let specModule = info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
185
+ let behaviorModule = info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
208
186
 
209
187
  // --- CommandTopic Lambda ---
210
- // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
188
+ // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
211
189
  // deploy-time structure, and the Lambda-name fallback yields nothing for a
212
190
  // shared or per-aggregate command handler. Resolve it here; the shell still
213
191
  // derives `comp` itself from the spec name.
@@ -215,15 +193,24 @@ let finish = () =>
215
193
  ~comp=`AggregateRuntime(${spec.aggregateName})`,
216
194
  )
217
195
  let cmdTopicHandlerConfigOutput =
218
- Pulumi.Output.all3((info.eventLogTableName, spec.queueUrl, spec.queueArn))
219
- ->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
196
+ Pulumi.Output.all3((
197
+ info.eventLogTableName,
198
+ spec.queueUrl,
199
+ spec.queueArn,
200
+ ))->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
220
201
  `{"handlers":[{"specModule":${specModule},"behaviorModule":${behaviorModule},"eventLogTable":"${table}","queueUrl":"${queueUrl}","queueArn":"${queueArn}"${pluginFragment}}]}`
221
202
  )
222
203
 
223
204
  let cmdTopicEnvVars: dict<Pulumi.Input.t<string>> = Dict.make()
224
- cmdTopicEnvVars->Dict.set("HANDLER_CONFIG", cmdTopicHandlerConfigOutput->Pulumi.Output.asInput)
205
+ cmdTopicEnvVars->Dict.set(
206
+ "HANDLER_CONFIG",
207
+ cmdTopicHandlerConfigOutput->Pulumi.Output.asInput,
208
+ )
225
209
 
226
- let {code: cmdTopicCode, sourceCodeHash: cmdTopicSourceCodeHash} = Util_Bundle.buildCodeArchive(
210
+ let {
211
+ code: cmdTopicCode,
212
+ sourceCodeHash: cmdTopicSourceCodeHash,
213
+ } = Util_Bundle.buildCodeArchive(
227
214
  ~entryPointModule="@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs",
228
215
  ~packageDirs,
229
216
  )
@@ -245,7 +232,7 @@ let finish = () =>
245
232
 
246
233
  // --- CommandGenerator Lambda ---
247
234
  if spec.commandGeneratorConnects->Array.length > 0 {
248
- // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
235
+ // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
249
236
  // deploy-time structure, and the Lambda-name fallback yields nothing for a
250
237
  // shared or per-aggregate command handler. Resolve it here; the shell still
251
238
  // derives `comp` itself from the spec name.
@@ -253,16 +240,25 @@ let finish = () =>
253
240
  ~comp=`AggregateRuntime(${spec.aggregateName})`,
254
241
  )
255
242
  let cmdGenHandlerConfigOutput =
256
- Pulumi.Output.all3((info.eventLogTableName, spec.queueUrl, spec.queueArn))
257
- ->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
243
+ Pulumi.Output.all3((
244
+ info.eventLogTableName,
245
+ spec.queueUrl,
246
+ spec.queueArn,
247
+ ))->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
258
248
  `{"handlers":[{"specModule":${specModule},"behaviorModule":${behaviorModule},"eventLogTable":"${table}","queueUrl":"${queueUrl}","queueArn":"${queueArn}"${pluginFragment}}]}`
259
249
  )
260
250
 
261
251
  let cmdGenEnvVars: dict<Pulumi.Input.t<string>> = Dict.make()
262
- cmdGenEnvVars->Dict.set("HANDLER_CONFIG", cmdGenHandlerConfigOutput->Pulumi.Output.asInput)
252
+ cmdGenEnvVars->Dict.set(
253
+ "HANDLER_CONFIG",
254
+ cmdGenHandlerConfigOutput->Pulumi.Output.asInput,
255
+ )
263
256
  cmdGenEnvVars->Dict.set("DISPATCH_MODE", "async"->Pulumi.Input.make)
264
257
 
265
- let {code: cmdGenCode, sourceCodeHash: cmdGenSourceCodeHash} = Util_Bundle.buildCodeArchive(
258
+ let {
259
+ code: cmdGenCode,
260
+ sourceCodeHash: cmdGenSourceCodeHash,
261
+ } = Util_Bundle.buildCodeArchive(
266
262
  ~entryPointModule="@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs",
267
263
  ~packageDirs,
268
264
  )
@@ -280,9 +276,7 @@ let finish = () =>
280
276
  ~opts=aggregateOpts,
281
277
  )
282
278
 
283
- spec.commandGeneratorConnects->Array.forEach(connect =>
284
- connect(~runtime=cmdGenRuntime)
285
- )
279
+ spec.commandGeneratorConnects->Array.forEach(connect => connect(~runtime=cmdGenRuntime))
286
280
  }
287
281
 
288
282
  // --- EventMapper Lambda ---
@@ -290,14 +284,11 @@ let finish = () =>
290
284
  | (Some(channelSpec), Some(mappingsModulePath)) =>
291
285
  let evtMapperEnvVars: dict<Pulumi.Input.t<string>> = Dict.make()
292
286
 
293
- let targetSpecModule =
294
- info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
295
- let mappingsModuleJson =
296
- mappingsModulePath->JSON.stringifyAny->Option.getOr(`""`)
287
+ let targetSpecModule = info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
288
+ let mappingsModuleJson = mappingsModulePath->JSON.stringifyAny->Option.getOr(`""`)
297
289
 
298
290
  let handlerConfigJson =
299
- spec.queueUrl
300
- ->Pulumi.Output.apply(queueUrl =>
291
+ spec.queueUrl->Pulumi.Output.apply(queueUrl =>
301
292
  `{"targetSpecModule":${targetSpecModule},"mappingsModule":${mappingsModuleJson},"queueUrl":"${queueUrl}"}`
302
293
  )
303
294
  evtMapperEnvVars->Dict.set("HANDLER_CONFIG", handlerConfigJson->Pulumi.Output.asInput)
@@ -308,7 +299,10 @@ let finish = () =>
308
299
  evtMapperPackageDirs->Dict.set(specPkg, Util_Bundle.resolvePackageRoot(specPkg))
309
300
  evtMapperPackageDirs->Dict.set(mappingsPkg, Util_Bundle.resolvePackageRoot(mappingsPkg))
310
301
 
311
- let {code: evtMapperCode, sourceCodeHash: evtMapperSourceCodeHash} = Util_Bundle.buildCodeArchive(
302
+ let {
303
+ code: evtMapperCode,
304
+ sourceCodeHash: evtMapperSourceCodeHash,
305
+ } = Util_Bundle.buildCodeArchive(
312
306
  ~entryPointModule="@reventlessdev/reventless-aws/src/adapter/Runtime/EventMapperEntryPoint.mjs",
313
307
  ~packageDirs=evtMapperPackageDirs,
314
308
  )
@@ -21,10 +21,7 @@ let registerAggregate = (
21
21
  ~behaviorModulePath,
22
22
  ~eventLogTableName,
23
23
  ) =>
24
- aggregateInfos->Dict.set(
25
- aggregateName,
26
- {specModulePath, behaviorModulePath, eventLogTableName},
27
- )
24
+ aggregateInfos->Dict.set(aggregateName, {specModulePath, behaviorModulePath, eventLogTableName})
28
25
 
29
26
  type storedSpec = {
30
27
  aggregateName: string,
@@ -63,44 +60,30 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
63
60
  ReventlessCore.CommandGenerator.effectEventHandler<context>,
64
61
  runtimeParts,
65
62
  ReventlessCore.CommandGenerator.component,
66
- > = (
67
- ~handler as _,
68
- ~connect,
69
- ~memorySize=1024,
70
- ~timeout=30,
71
- commandGenerator,
72
- ) => {
63
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandGenerator) => {
73
64
  let resource = commandGenerator->ReventlessCore.Component.toPulumiResource
74
65
  switch resource.parent {
75
66
  | Some(aggregateResource) =>
76
67
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
77
68
  let spec = getStoredSpec(aggregateName, aggregateResource)
78
- storedSpecs->Dict.set(aggregateName, {
79
- ...spec,
80
- connects: spec.connects->Array.concat([connect]),
81
- memorySize: Math.Int.max(spec.memorySize, memorySize),
82
- timeout: Math.Int.max(spec.timeout, timeout),
83
- })
69
+ storedSpecs->Dict.set(
70
+ aggregateName,
71
+ {
72
+ ...spec,
73
+ connects: spec.connects->Array.concat([connect]),
74
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
75
+ timeout: Math.Int.max(spec.timeout, timeout),
76
+ },
77
+ )
84
78
  | None => ()
85
79
  }
86
80
  }
87
81
 
88
82
  let forCommandTopic: ReventlessCore.Runtime.forComponent<
89
- ReventlessCore.Runtime.effectHandler<
90
- CommandTopicChannel.callbackEvent,
91
- context,
92
- unit,
93
- string,
94
- >,
83
+ ReventlessCore.Runtime.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
95
84
  runtimeParts,
96
85
  ReventlessCore.CommandTopic.component<'op>,
97
- > = (
98
- ~handler as _,
99
- ~connect,
100
- ~memorySize=1024,
101
- ~timeout=30,
102
- commandTopic,
103
- ) => {
86
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
104
87
  let commandTopicResource = commandTopic->ReventlessCore.Component.toPulumiResource
105
88
  switch commandTopicResource.parent {
106
89
  | Some(aggregateResource) =>
@@ -110,14 +93,17 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
110
93
  let queue = channelParts.queue
111
94
 
112
95
  let spec = getStoredSpec(aggregateName, aggregateResource)
113
- storedSpecs->Dict.set(aggregateName, {
114
- ...spec,
115
- queueUrl: queue.id,
116
- queueArn: queue.arn,
117
- connects: spec.connects->Array.concat([connect]),
118
- memorySize: Math.Int.max(spec.memorySize, memorySize),
119
- timeout: Math.Int.max(spec.timeout, timeout),
120
- })
96
+ storedSpecs->Dict.set(
97
+ aggregateName,
98
+ {
99
+ ...spec,
100
+ queueUrl: queue.id,
101
+ queueArn: queue.arn,
102
+ connects: spec.connects->Array.concat([connect]),
103
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
104
+ timeout: Math.Int.max(spec.timeout, timeout),
105
+ },
106
+ )
121
107
  | None =>
122
108
  let name = commandTopicResource.name->Option.getOr("Unnamed")
123
109
  JsError.throwWithMessage(
@@ -127,33 +113,24 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
127
113
  }
128
114
 
129
115
  let forEventCollector: ReventlessCore.Runtime.forEventCollector<
130
- ReventlessCore.Runtime.effectHandler<
131
- EventCollectorChannel.callbackEvent,
132
- context,
133
- unit,
134
- string,
135
- >,
116
+ ReventlessCore.Runtime.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
136
117
  ReventlessCore.EventCollector.component,
137
- > = (
138
- ~handler as _,
139
- ~eventTopics,
140
- ~resources,
141
- ~memorySize=1024,
142
- ~timeout=30,
143
- eventCollector,
144
- ) => {
118
+ > = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
145
119
  let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
146
120
  let channel = eventCollector->ReventlessCore.EventCollector_Adapter.channel
147
121
  switch eventCollectorResource.parent->Option.flatMap(parent => parent.parent) {
148
122
  | Some(aggregateResource) =>
149
123
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
150
124
  let spec = getStoredSpec(aggregateName, aggregateResource)
151
- storedSpecs->Dict.set(aggregateName, {
152
- ...spec,
153
- eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
154
- memorySize: Math.Int.max(spec.memorySize, memorySize),
155
- timeout: Math.Int.max(spec.timeout, timeout),
156
- })
125
+ storedSpecs->Dict.set(
126
+ aggregateName,
127
+ {
128
+ ...spec,
129
+ eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
130
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
131
+ timeout: Math.Int.max(spec.timeout, timeout),
132
+ },
133
+ )
157
134
  | None =>
158
135
  let name = eventCollectorResource.name->Option.getOr("Unnamed")
159
136
  JsError.throwWithMessage(
@@ -188,12 +165,10 @@ let finish = () =>
188
165
  let lambdaName = name ++ "CmdHandler"
189
166
 
190
167
  // Build HANDLER_CONFIG with single handler
191
- let specModule =
192
- info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
193
- let behaviorModule =
194
- info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
168
+ let specModule = info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
169
+ let behaviorModule = info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
195
170
 
196
- // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
171
+ // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
197
172
  // deploy-time structure, and the Lambda-name fallback yields nothing for a
198
173
  // shared or per-aggregate command handler. Resolve it here; the shell still
199
174
  // derives `comp` itself from the spec name.
@@ -201,8 +176,11 @@ let finish = () =>
201
176
  ~comp=`AggregateRuntime(${spec.aggregateName})`,
202
177
  )
203
178
  let handlerConfigOutput =
204
- Pulumi.Output.all3((info.eventLogTableName, spec.queueUrl, spec.queueArn))
205
- ->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
179
+ Pulumi.Output.all3((
180
+ info.eventLogTableName,
181
+ spec.queueUrl,
182
+ spec.queueArn,
183
+ ))->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
206
184
  `{"handlers":[{"specModule":${specModule},"behaviorModule":${behaviorModule},"eventLogTable":"${table}","queueUrl":"${queueUrl}","queueArn":"${queueArn}"${pluginFragment}}]}`
207
185
  )
208
186
 
@@ -236,8 +214,7 @@ let finish = () =>
236
214
 
237
215
  spec.connects->Array.forEach(connect => connect(~runtime))
238
216
 
239
- let channelSpecs =
240
- spec.eventCollectorChannelSpec->Option.mapOr([], cs => [cs])
217
+ let channelSpecs = spec.eventCollectorChannelSpec->Option.mapOr([], cs => [cs])
241
218
  let _connectResources = EventCollectorChannel.connect(
242
219
  ~name,
243
220
  ~channelSpecs,
@@ -25,10 +25,7 @@ let registerAggregate = (
25
25
  ~behaviorModulePath,
26
26
  ~eventLogTableName,
27
27
  ) =>
28
- aggregateInfos->Dict.set(
29
- aggregateName,
30
- {specModulePath, behaviorModulePath, eventLogTableName},
31
- )
28
+ aggregateInfos->Dict.set(aggregateName, {specModulePath, behaviorModulePath, eventLogTableName})
32
29
 
33
30
  type storedSpec = {
34
31
  aggregateName: string,
@@ -67,44 +64,30 @@ let forCommandGenerator: ReventlessCore.Runtime.forComponent<
67
64
  ReventlessCore.CommandGenerator.effectEventHandler<context>,
68
65
  runtimeParts,
69
66
  ReventlessCore.CommandGenerator.component,
70
- > = (
71
- ~handler as _,
72
- ~connect,
73
- ~memorySize=1024,
74
- ~timeout=30,
75
- commandGenerator,
76
- ) => {
67
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandGenerator) => {
77
68
  let resource = commandGenerator->ReventlessCore.Component.toPulumiResource
78
69
  switch resource.parent {
79
70
  | Some(aggregateResource) =>
80
71
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
81
72
  let spec = getStoredSpec(aggregateName, aggregateResource)
82
- storedSpecs->Dict.set(aggregateName, {
83
- ...spec,
84
- connects: spec.connects->Array.concat([connect]),
85
- memorySize: Math.Int.max(spec.memorySize, memorySize),
86
- timeout: Math.Int.max(spec.timeout, timeout),
87
- })
73
+ storedSpecs->Dict.set(
74
+ aggregateName,
75
+ {
76
+ ...spec,
77
+ connects: spec.connects->Array.concat([connect]),
78
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
79
+ timeout: Math.Int.max(spec.timeout, timeout),
80
+ },
81
+ )
88
82
  | None => ()
89
83
  }
90
84
  }
91
85
 
92
86
  let forCommandTopic: ReventlessCore.Runtime.forComponent<
93
- ReventlessCore.Runtime.effectHandler<
94
- CommandTopicChannel.callbackEvent,
95
- context,
96
- unit,
97
- string,
98
- >,
87
+ ReventlessCore.Runtime.effectHandler<CommandTopicChannel.callbackEvent, context, unit, string>,
99
88
  runtimeParts,
100
89
  ReventlessCore.CommandTopic.component<'op>,
101
- > = (
102
- ~handler as _,
103
- ~connect,
104
- ~memorySize=1024,
105
- ~timeout=30,
106
- commandTopic,
107
- ) => {
90
+ > = (~handler as _, ~connect, ~memorySize=1024, ~timeout=30, commandTopic) => {
108
91
  let commandTopicResource = commandTopic->ReventlessCore.Component.toPulumiResource
109
92
  switch commandTopicResource.parent {
110
93
  | Some(aggregateResource) =>
@@ -114,14 +97,17 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
114
97
  let queue = channelParts.queue
115
98
 
116
99
  let spec = getStoredSpec(aggregateName, aggregateResource)
117
- storedSpecs->Dict.set(aggregateName, {
118
- ...spec,
119
- queueUrl: queue.id,
120
- queueArn: queue.arn,
121
- connects: spec.connects->Array.concat([connect]),
122
- memorySize: Math.Int.max(spec.memorySize, memorySize),
123
- timeout: Math.Int.max(spec.timeout, timeout),
124
- })
100
+ storedSpecs->Dict.set(
101
+ aggregateName,
102
+ {
103
+ ...spec,
104
+ queueUrl: queue.id,
105
+ queueArn: queue.arn,
106
+ connects: spec.connects->Array.concat([connect]),
107
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
108
+ timeout: Math.Int.max(spec.timeout, timeout),
109
+ },
110
+ )
125
111
  | None =>
126
112
  let name = commandTopicResource.name->Option.getOr("Unnamed")
127
113
  JsError.throwWithMessage(
@@ -131,33 +117,24 @@ let forCommandTopic: ReventlessCore.Runtime.forComponent<
131
117
  }
132
118
 
133
119
  let forEventCollector: ReventlessCore.Runtime.forEventCollector<
134
- ReventlessCore.Runtime.effectHandler<
135
- EventCollectorChannel.callbackEvent,
136
- context,
137
- unit,
138
- string,
139
- >,
120
+ ReventlessCore.Runtime.effectHandler<EventCollectorChannel.callbackEvent, context, unit, string>,
140
121
  ReventlessCore.EventCollector.component,
141
- > = (
142
- ~handler as _,
143
- ~eventTopics,
144
- ~resources,
145
- ~memorySize=1024,
146
- ~timeout=30,
147
- eventCollector,
148
- ) => {
122
+ > = (~handler as _, ~eventTopics, ~resources, ~memorySize=1024, ~timeout=30, eventCollector) => {
149
123
  let eventCollectorResource = eventCollector->ReventlessCore.Component.toPulumiResource
150
124
  let channel = eventCollector->ReventlessCore.EventCollector_Adapter.channel
151
125
  switch eventCollectorResource.parent->Option.flatMap(parent => parent.parent) {
152
126
  | Some(aggregateResource) =>
153
127
  let aggregateName = aggregateResource.name->Option.getOr("Unnamed")
154
128
  let spec = getStoredSpec(aggregateName, aggregateResource)
155
- storedSpecs->Dict.set(aggregateName, {
156
- ...spec,
157
- eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
158
- memorySize: Math.Int.max(spec.memorySize, memorySize),
159
- timeout: Math.Int.max(spec.timeout, timeout),
160
- })
129
+ storedSpecs->Dict.set(
130
+ aggregateName,
131
+ {
132
+ ...spec,
133
+ eventCollectorChannelSpec: Some({channel, eventTopics, resources}),
134
+ memorySize: Math.Int.max(spec.memorySize, memorySize),
135
+ timeout: Math.Int.max(spec.timeout, timeout),
136
+ },
137
+ )
161
138
  | None =>
162
139
  let name = eventCollectorResource.name->Option.getOr("Unnamed")
163
140
  JsError.throwWithMessage(
@@ -186,12 +163,10 @@ let finish = () =>
186
163
  ReventlessCore.Aggregate.componentType,
187
164
  )
188
165
 
189
- let specModule =
190
- info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
191
- let behaviorModule =
192
- info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
166
+ let specModule = info.specModulePath->JSON.stringifyAny->Option.getOr(`""`)
167
+ let behaviorModule = info.behaviorModulePath->JSON.stringifyAny->Option.getOr(`""`)
193
168
 
194
- // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
169
+ // `plugin` cannot be resolved inside the Lambda — LogPrefix's registry is a
195
170
  // deploy-time structure, and the Lambda-name fallback yields nothing for a
196
171
  // shared or per-aggregate command handler. Resolve it here; the shell still
197
172
  // derives `comp` itself from the spec name.
@@ -199,8 +174,11 @@ let finish = () =>
199
174
  ~comp=`AggregateRuntime(${spec.aggregateName})`,
200
175
  )
201
176
  let handlerConfigOutput =
202
- Pulumi.Output.all3((info.eventLogTableName, spec.queueUrl, spec.queueArn))
203
- ->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
177
+ Pulumi.Output.all3((
178
+ info.eventLogTableName,
179
+ spec.queueUrl,
180
+ spec.queueArn,
181
+ ))->Pulumi.Output.apply(((table, queueUrl, queueArn)) =>
204
182
  `{"handlers":[{"specModule":${specModule},"behaviorModule":${behaviorModule},"eventLogTable":"${table}","queueUrl":"${queueUrl}","queueArn":"${queueArn}"${pluginFragment}}]}`
205
183
  )
206
184
 
@@ -233,8 +211,7 @@ let finish = () =>
233
211
 
234
212
  spec.connects->Array.forEach(connect => connect(~runtime))
235
213
 
236
- let channelSpecs =
237
- spec.eventCollectorChannelSpec->Option.mapOr([], cs => [cs])
214
+ let channelSpecs = spec.eventCollectorChannelSpec->Option.mapOr([], cs => [cs])
238
215
  let _connectResources = EventCollectorChannel.connect(
239
216
  ~name,
240
217
  ~channelSpecs,