@reventlessdev/reventless-aws 3.0.0-alpha.167
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 +1564 -0
- package/README.md +62 -0
- package/__mocks__/emptyModule.js +1 -0
- package/all-licenses.csv +565 -0
- package/docker-compose.dynamodb-local.yml +12 -0
- package/jest.setup.cjs +5 -0
- package/licenses-analysis.ods +0 -0
- package/package.json +73 -0
- package/rescript.json +39 -0
- package/reventless-licenses-analysis.xls +0 -0
- package/scripts/run-integration-tests.sh +43 -0
- package/src/Platform.res +1940 -0
- package/src/Platform.res.mjs +2281 -0
- package/src/Platform_Casts.res +106 -0
- package/src/Platform_Casts.res.mjs +13 -0
- package/src/Platform_Stack.res +153 -0
- package/src/Platform_Stack.res.mjs +121 -0
- package/src/Types.res +39 -0
- package/src/Types.res.mjs +21 -0
- package/src/adapter/AWS.res +96 -0
- package/src/adapter/AWS.res.mjs +186 -0
- package/src/adapter/AWS_Tags.res +16 -0
- package/src/adapter/AWS_Tags.res.mjs +48 -0
- package/src/adapter/Adapter_Helpers.res +19 -0
- package/src/adapter/Adapter_Helpers.res.mjs +37 -0
- package/src/adapter/Api/AppSync_EventsApi.res +172 -0
- package/src/adapter/Api/AppSync_EventsApi.res.mjs +96 -0
- package/src/adapter/Api/AppSync_Resolver_Native.res +93 -0
- package/src/adapter/Api/AppSync_Resolver_Native.res.mjs +67 -0
- package/src/adapter/Api/AppSync_Resolver_Retrying.res +653 -0
- package/src/adapter/Api/AppSync_Resolver_Retrying.res.mjs +462 -0
- package/src/adapter/Api/CommandSubscriptionResolvers_AppSync.res +29 -0
- package/src/adapter/Api/CommandSubscriptionResolvers_AppSync.res.mjs +15 -0
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res +238 -0
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res.mjs +179 -0
- package/src/adapter/Api/Platform_UIFragments_Lambda.res +229 -0
- package/src/adapter/Api/Platform_UIFragments_Lambda.res.mjs +245 -0
- package/src/adapter/Auth/Auth_Cognito.res +209 -0
- package/src/adapter/Auth/Auth_Cognito.res.mjs +135 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers.res +2 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers.res.mjs +12 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res +251 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res.mjs +126 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync_NoOp.res +20 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync_NoOp.res.mjs +23 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync_Runtime.res +1 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync_Runtime.res.mjs +11 -0
- package/src/adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res +95 -0
- package/src/adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res.mjs +50 -0
- package/src/adapter/CommandTopic/CommandTopicChannel.res +6 -0
- package/src/adapter/CommandTopic/CommandTopicChannel.res.mjs +21 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_Helpers.res +196 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_Helpers.res.mjs +145 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS.res +91 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS.res.mjs +74 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Async.res +69 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Async.res.mjs +62 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_FIFO.res +60 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_FIFO.res.mjs +56 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Runtime.res +73 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Runtime.res.mjs +65 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res +88 -0
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res.mjs +76 -0
- package/src/adapter/CommandTopic/CommandTopicRemoteChannel.res +1 -0
- package/src/adapter/CommandTopic/CommandTopicRemoteChannel.res.mjs +9 -0
- package/src/adapter/CommandTopic/CommandTopicRemoteChannel_SQS.res +7 -0
- package/src/adapter/CommandTopic/CommandTopicRemoteChannel_SQS.res.mjs +17 -0
- package/src/adapter/Counter/CounterHandler_DynamoDbStream.res +103 -0
- package/src/adapter/Counter/CounterHandler_DynamoDbStream.res.mjs +68 -0
- package/src/adapter/Counter/CounterHandler_DynamoDbStream_Runtime.res +107 -0
- package/src/adapter/Counter/CounterHandler_DynamoDbStream_Runtime.res.mjs +145 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage.res +1 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage.res.mjs +9 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res +84 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res.mjs +52 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb_Runtime.res +1436 -0
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb_Runtime.res.mjs +1143 -0
- package/src/adapter/EventCollector/EventCollectorChannel.res +6 -0
- package/src/adapter/EventCollector/EventCollectorChannel.res.mjs +21 -0
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res +63 -0
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs +56 -0
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream_Runtime.res +20 -0
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream_Runtime.res.mjs +32 -0
- package/src/adapter/EventCollector/EventCollectorChannel_Helpers.res +266 -0
- package/src/adapter/EventCollector/EventCollectorChannel_Helpers.res.mjs +166 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS.res +81 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS.res.mjs +54 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_FIFO.res +59 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_FIFO.res.mjs +45 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_Runtime.res +91 -0
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_Runtime.res.mjs +89 -0
- package/src/adapter/EventLog/EventLogStorage.res +3 -0
- package/src/adapter/EventLog/EventLogStorage.res.mjs +15 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDb.res +25 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDb.res.mjs +34 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDbStream.res +26 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDbStream.res.mjs +35 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDb_Runtime.res +121 -0
- package/src/adapter/EventLog/EventLogStorage_DynamoDb_Runtime.res.mjs +137 -0
- package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync.res +265 -0
- package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync.res.mjs +185 -0
- package/src/adapter/EventTopic/EventTopicPublisher.res +6 -0
- package/src/adapter/EventTopic/EventTopicPublisher.res.mjs +21 -0
- package/src/adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res +25 -0
- package/src/adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res.mjs +28 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS.res +40 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS.res.mjs +39 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_FIFO.res +39 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_FIFO.res.mjs +38 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_Runtime.res +5 -0
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_Runtime.res.mjs +18 -0
- package/src/adapter/Mcp/MCP_Lambda.res +502 -0
- package/src/adapter/Mcp/MCP_Lambda.res.mjs +289 -0
- package/src/adapter/QueryDb/NodeResolver_AppSync.res +71 -0
- package/src/adapter/QueryDb/NodeResolver_AppSync.res.mjs +44 -0
- package/src/adapter/QueryDb/QueryDbResolvers.res +2 -0
- package/src/adapter/QueryDb/QueryDbResolvers.res.mjs +12 -0
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync.res +434 -0
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync.res.mjs +243 -0
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync_NoOp.res +21 -0
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync_NoOp.res.mjs +14 -0
- package/src/adapter/QueryDb/QueryDbResolvers_NoOp.res +21 -0
- package/src/adapter/QueryDb/QueryDbResolvers_NoOp.res.mjs +14 -0
- package/src/adapter/QueryDb/QueryDbStorage.res +5 -0
- package/src/adapter/QueryDb/QueryDbStorage.res.mjs +18 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb.res +115 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb.res.mjs +100 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDbStream.res +52 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDbStream.res.mjs +38 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb_Runtime.res +271 -0
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb_Runtime.res.mjs +306 -0
- package/src/adapter/QueryDb/QueryInterceptor_Lambda.res +20 -0
- package/src/adapter/QueryDb/QueryInterceptor_Lambda.res.mjs +22 -0
- package/src/adapter/QueryEngine/QueryEngine.res +3 -0
- package/src/adapter/QueryEngine/QueryEngine.res.mjs +12 -0
- package/src/adapter/QueryEngine/QueryEngine_DynamoDb.res +184 -0
- package/src/adapter/QueryEngine/QueryEngine_DynamoDb.res.mjs +221 -0
- package/src/adapter/Runtime/AdminEventCollectorEntryPoint.mjs +879 -0
- package/src/adapter/Runtime/AggregateEntryPoint.mjs +313 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +327 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +239 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +331 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res.mjs +240 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +247 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +185 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +244 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res.mjs +185 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +347 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +244 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +285 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res.mjs +212 -0
- package/src/adapter/Runtime/AutomationSliceEntryPoint.mjs +124 -0
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +187 -0
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res.mjs +147 -0
- package/src/adapter/Runtime/CounterEntryPoint.mjs +91 -0
- package/src/adapter/Runtime/DcbCommandTopicEntryPoint.mjs +265 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +122 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs +89 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +193 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs +137 -0
- package/src/adapter/Runtime/EventMapperEntryPoint.mjs +97 -0
- package/src/adapter/Runtime/ExtensionPointEntryPoint.mjs +101 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +83 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res.mjs +59 -0
- package/src/adapter/Runtime/HandlerFactoryHelpers.mjs +142 -0
- package/src/adapter/Runtime/HeartbeatEntryPoint.mjs +38 -0
- package/src/adapter/Runtime/PluginExtensionPointEntryPoint.mjs +137 -0
- package/src/adapter/Runtime/ReadModelEntryPoint.mjs +143 -0
- package/src/adapter/Runtime/RuntimeEnvironment.res +1 -0
- package/src/adapter/Runtime/RuntimeEnvironment.res.mjs +9 -0
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +254 -0
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs +169 -0
- package/src/adapter/Runtime/SideEffectEntryPoint.mjs +81 -0
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +178 -0
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res.mjs +129 -0
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res +166 -0
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res.mjs +87 -0
- package/src/adapter/Runtime/StateViewSliceEntryPoint.mjs +136 -0
- package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res +344 -0
- package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res.mjs +242 -0
- package/src/adapter/Runtime/TaskBucketEntryPoint.mjs +150 -0
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +123 -0
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res.mjs +74 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher.res +2 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher.res.mjs +12 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents.res +54 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents.res.mjs +41 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents_Runtime.res +97 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents_Runtime.res.mjs +85 -0
- package/src/adapter/StateTopic/StateTopic_AppSync.res +418 -0
- package/src/adapter/StateTopic/StateTopic_AppSync.res.mjs +295 -0
- package/src/adapter/Task/TaskBucket.res +1 -0
- package/src/adapter/Task/TaskBucket.res.mjs +9 -0
- package/src/adapter/Task/TaskBucket_S3.res +157 -0
- package/src/adapter/Task/TaskBucket_S3.res.mjs +108 -0
- package/src/adapter/Task/TaskBucket_S3_Runtime.res +11 -0
- package/src/adapter/Task/TaskBucket_S3_Runtime.res.mjs +15 -0
- package/src/components/Aggregate_Builder.res +1 -0
- package/src/components/Aggregate_Builder.res.mjs +25 -0
- package/src/components/Aggregate_Builder_Micro.res +63 -0
- package/src/components/Aggregate_Builder_Micro.res.mjs +80 -0
- package/src/components/Aggregate_Builder_NoResolver.res +61 -0
- package/src/components/Aggregate_Builder_NoResolver.res.mjs +80 -0
- package/src/components/Aggregate_Builder_PerAggregate.res +57 -0
- package/src/components/Aggregate_Builder_PerAggregate.res.mjs +80 -0
- package/src/components/Aggregate_Builder_Single.res +59 -0
- package/src/components/Aggregate_Builder_Single.res.mjs +80 -0
- package/src/components/Aggregate_Builder_Single_Async.res +59 -0
- package/src/components/Aggregate_Builder_Single_Async.res.mjs +80 -0
- package/src/components/Api/AppSync_Adapter.res +500 -0
- package/src/components/Api/AppSync_Adapter.res.mjs +396 -0
- package/src/components/AutomationSlice_Builder.res +52 -0
- package/src/components/AutomationSlice_Builder.res.mjs +72 -0
- package/src/components/AutomationSlice_Builder_Bundled.res.mjs +70 -0
- package/src/components/Counter_Builder.res +10 -0
- package/src/components/Counter_Builder.res.mjs +16 -0
- package/src/components/DataCleaner.res +170 -0
- package/src/components/DataCleaner.res.mjs +2 -0
- package/src/components/DcbEventLog_Builder.res +8 -0
- package/src/components/DcbEventLog_Builder.res.mjs +14 -0
- package/src/components/ExtensionPoint_Builder.res +16 -0
- package/src/components/ExtensionPoint_Builder.res.mjs +37 -0
- package/src/components/ForeignReadModel_Builder.res +19 -0
- package/src/components/ForeignReadModel_Builder.res.mjs +48 -0
- package/src/components/InboundTranslationSlice_Builder.res +25 -0
- package/src/components/InboundTranslationSlice_Builder.res.mjs +31 -0
- package/src/components/OutboundTranslationSlice_Builder.res +60 -0
- package/src/components/OutboundTranslationSlice_Builder.res.mjs +76 -0
- package/src/components/OutboundTranslationSlice_Builder_Bundled.res.mjs +75 -0
- package/src/components/Plugin.res +29 -0
- package/src/components/Plugin.res.mjs +63 -0
- package/src/components/ReadModel_Builder.res +1 -0
- package/src/components/ReadModel_Builder.res.mjs +19 -0
- package/src/components/ReadModel_Builder_NoResolver.res +55 -0
- package/src/components/ReadModel_Builder_NoResolver.res.mjs +64 -0
- package/src/components/ReadModel_Builder_NoResolver_Stream.res +60 -0
- package/src/components/ReadModel_Builder_NoResolver_Stream.res.mjs +64 -0
- package/src/components/ReadModel_Builder_PerReadModel.res +53 -0
- package/src/components/ReadModel_Builder_PerReadModel.res.mjs +66 -0
- package/src/components/ReadModel_Builder_Single.res +52 -0
- package/src/components/ReadModel_Builder_Single.res.mjs +66 -0
- package/src/components/ReadModel_Builder_Single_Stream.res +60 -0
- package/src/components/ReadModel_Builder_Single_Stream.res.mjs +66 -0
- package/src/components/Scheduler.res +1 -0
- package/src/components/Scheduler.res.mjs +13 -0
- package/src/components/SideEffectHandler.res +1 -0
- package/src/components/SideEffectHandler.res.mjs +19 -0
- package/src/components/SideEffectHandler_PerSideEffectHandler.res +13 -0
- package/src/components/SideEffectHandler_PerSideEffectHandler.res.mjs +52 -0
- package/src/components/SideEffectHandler_Single.res +54 -0
- package/src/components/SideEffectHandler_Single.res.mjs +60 -0
- package/src/components/StateChangeSlice_Builder.res +17 -0
- package/src/components/StateChangeSlice_Builder.res.mjs +23 -0
- package/src/components/StateViewSlice_Builder.res +46 -0
- package/src/components/StateViewSlice_Builder.res.mjs +68 -0
- package/src/components/StateViewSlice_Builder_Bundled.res.mjs +69 -0
- package/src/components/StateViewSlice_Builder_Stream.res +50 -0
- package/src/components/StateViewSlice_Builder_Stream.res.mjs +68 -0
- package/src/components/Task_Builder.res +1 -0
- package/src/components/Task_Builder.res.mjs +28 -0
- package/src/components/Task_Builder_PerBucket.res +22 -0
- package/src/components/Task_Builder_PerBucket.res.mjs +63 -0
- package/src/components/Vpc.res +214 -0
- package/src/components/Vpc.res.mjs +117 -0
- package/src/components/Vpc.resi +22 -0
- package/src/errors/AppSync_Error.res +36 -0
- package/src/errors/AppSync_Error.res.mjs +38 -0
- package/src/errors/Cognito_Error.res +36 -0
- package/src/errors/Cognito_Error.res.mjs +38 -0
- package/src/errors/DynamoDb_Error.res +75 -0
- package/src/errors/DynamoDb_Error.res.mjs +86 -0
- package/src/errors/Kinesis_Error.res +36 -0
- package/src/errors/Kinesis_Error.res.mjs +38 -0
- package/src/errors/SNS_Error.res +34 -0
- package/src/errors/SNS_Error.res.mjs +38 -0
- package/src/errors/SQS_Error.res +40 -0
- package/src/errors/SQS_Error.res.mjs +41 -0
- package/src/plugin/cloner/ClonerRunner.res +1 -0
- package/src/plugin/cloner/ClonerRunner.res.mjs +9 -0
- package/src/plugin/cloner/ClonerRunner_Fargate.res +362 -0
- package/src/plugin/cloner/ClonerRunner_Fargate.res.mjs +246 -0
- package/src/plugin/cloner/ClonerRunner_Fargate_Runtime.res +42 -0
- package/src/plugin/cloner/ClonerRunner_Fargate_Runtime.res.mjs +45 -0
- package/src/plugin/heartbeat/HeartbeatRunner.res +1 -0
- package/src/plugin/heartbeat/HeartbeatRunner.res.mjs +9 -0
- package/src/plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res +96 -0
- package/src/plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res.mjs +69 -0
- package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res +115 -0
- package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res.mjs +88 -0
- package/src/plugin/runtime/PluginRuntimeOperations.res +5 -0
- package/src/plugin/runtime/PluginRuntimeOperations.res.mjs +14 -0
- package/src/plugin/runtime/PluginRuntime_Builder.res +769 -0
- package/src/plugin/runtime/PluginRuntime_Builder.res.mjs +464 -0
- package/src/plugin/runtime/Util_PluginMessage_Runtime.res +13 -0
- package/src/plugin/runtime/Util_PluginMessage_Runtime.res.mjs +19 -0
- package/src/plugin/stack/Plugin_ExtensionPoint_Builder.res +28 -0
- package/src/plugin/stack/Plugin_ExtensionPoint_Builder.res.mjs +67 -0
- package/src/plugin/stack/Plugin_Stack.res +439 -0
- package/src/plugin/stack/Plugin_Stack.res.mjs +263 -0
- package/src/util/Util.res +29 -0
- package/src/util/Util.res.mjs +93 -0
- package/src/util/Util_AppSync.res +36 -0
- package/src/util/Util_AppSync.res.mjs +35 -0
- package/src/util/Util_AppSync_Caller.res +213 -0
- package/src/util/Util_AppSync_Caller.res.mjs +170 -0
- package/src/util/Util_Bundle.res +255 -0
- package/src/util/Util_Bundle.res.mjs +179 -0
- package/src/util/Util_Cloudwatch.res +14 -0
- package/src/util/Util_Cloudwatch.res.mjs +19 -0
- package/src/util/Util_CognitoGroupUser.res +39 -0
- package/src/util/Util_CognitoGroupUser.res.mjs +32 -0
- package/src/util/Util_CognitoGroupUser_Runtime.res +65 -0
- package/src/util/Util_CognitoGroupUser_Runtime.res.mjs +50 -0
- package/src/util/Util_Cognito_Runtime.res +52 -0
- package/src/util/Util_Cognito_Runtime.res.mjs +35 -0
- package/src/util/Util_DeadLetterQueue.res +154 -0
- package/src/util/Util_DeadLetterQueue.res.mjs +158 -0
- package/src/util/Util_DynamoDb.res +210 -0
- package/src/util/Util_DynamoDb.res.mjs +218 -0
- package/src/util/Util_DynamoDbStream.res +138 -0
- package/src/util/Util_DynamoDbStream.res.mjs +134 -0
- package/src/util/Util_DynamoDbStream_Runtime.res +94 -0
- package/src/util/Util_DynamoDbStream_Runtime.res.mjs +131 -0
- package/src/util/Util_DynamoDb_Runtime.res +216 -0
- package/src/util/Util_DynamoDb_Runtime.res.mjs +257 -0
- package/src/util/Util_DynamoDb_TableManager.res +23 -0
- package/src/util/Util_DynamoDb_TableManager.res.mjs +35 -0
- package/src/util/Util_DynamoDb_TableManager.resi +3 -0
- package/src/util/Util_Env.res +5 -0
- package/src/util/Util_Env.res.mjs +2 -0
- package/src/util/Util_EventSourceMapping.res +49 -0
- package/src/util/Util_EventSourceMapping.res.mjs +32 -0
- package/src/util/Util_HostUiDomain.res +28 -0
- package/src/util/Util_HostUiDomain.res.mjs +26 -0
- package/src/util/Util_IAM_Role.res +14 -0
- package/src/util/Util_IAM_Role.res.mjs +28 -0
- package/src/util/Util_Kinesis_Runtime.res +20 -0
- package/src/util/Util_Kinesis_Runtime.res.mjs +24 -0
- package/src/util/Util_Lambda.res +39 -0
- package/src/util/Util_Lambda.res.mjs +45 -0
- package/src/util/Util_LocalConfig.res +119 -0
- package/src/util/Util_LocalConfig.res.mjs +112 -0
- package/src/util/Util_ResourceNaming.res +15 -0
- package/src/util/Util_ResourceNaming.res.mjs +26 -0
- package/src/util/Util_S3.res +17 -0
- package/src/util/Util_S3.res.mjs +30 -0
- package/src/util/Util_S3_Runtime.res +11 -0
- package/src/util/Util_S3_Runtime.res.mjs +15 -0
- package/src/util/Util_SNS.res +33 -0
- package/src/util/Util_SNS.res.mjs +50 -0
- package/src/util/Util_SNS_FIFO.res +21 -0
- package/src/util/Util_SNS_FIFO.res.mjs +27 -0
- package/src/util/Util_SNS_Runtime.res +33 -0
- package/src/util/Util_SNS_Runtime.res.mjs +27 -0
- package/src/util/Util_SQS.res +70 -0
- package/src/util/Util_SQS.res.mjs +83 -0
- package/src/util/Util_SQS_FIFO.res +16 -0
- package/src/util/Util_SQS_FIFO.res.mjs +28 -0
- package/src/util/Util_SQS_Runtime.res +169 -0
- package/src/util/Util_SQS_Runtime.res.mjs +150 -0
- package/src/util/Util_SesPolicy_Runtime.res +54 -0
- package/src/util/Util_SesPolicy_Runtime.res.mjs +55 -0
- package/src/util/Util_StaticBundle.res +124 -0
- package/src/util/Util_StaticBundle.res.mjs +132 -0
- package/src/util/Util_Vpc.res +22 -0
- package/src/util/Util_Vpc.res.mjs +27 -0
- package/tests/AppSync_AdapterTest.res +396 -0
- package/tests/AppSync_AdapterTest.res.mjs +326 -0
- package/tests/AppSync_Resolver_RetryingTest.res +59 -0
- package/tests/AppSync_Resolver_RetryingTest.res.mjs +66 -0
- package/tests/Auth_CognitoTest.res +203 -0
- package/tests/Auth_CognitoTest.res.mjs +248 -0
- package/tests/DcbEventLogStorage_DynamoDb_RuntimeTest.res +602 -0
- package/tests/DcbEventLogStorage_DynamoDb_RuntimeTest.res.mjs +742 -0
- package/tests/EventLogStorage_DynamoDb_RuntimeTest.res +57 -0
- package/tests/EventLogStorage_DynamoDb_RuntimeTest.res.mjs +68 -0
- package/tests/MCP_LambdaTest.res +101 -0
- package/tests/MCP_LambdaTest.res.mjs +56 -0
- package/tests/Util_HostUiDomainTest.res +90 -0
- package/tests/Util_HostUiDomainTest.res.mjs +50 -0
- package/tests/Util_SQS_RuntimeTest.res +46 -0
- package/tests/Util_SQS_RuntimeTest.res.mjs +45 -0
- package/tests/Util_StaticBundleTest.res +136 -0
- package/tests/Util_StaticBundleTest.res.mjs +149 -0
- package/tests/integration/DcbCommandTopicEntryPoint_IntegrationTest.res +101 -0
- package/tests/integration/DcbCommandTopicEntryPoint_IntegrationTest.res.mjs +91 -0
- package/tests/integration/DcbEventLogStorage_DynamoDb_IntegrationTest.res +315 -0
- package/tests/integration/DcbEventLogStorage_DynamoDb_IntegrationTest.res.mjs +435 -0
- package/tests/integration/DcbIntegrationHarness.res +102 -0
- package/tests/integration/DcbIntegrationHarness.res.mjs +163 -0
- package/tests/integration/EpTestSlice.res +28 -0
- package/tests/integration/EpTestSlice.res.mjs +43 -0
- package/tests/integration/EpTestSliceBehavior.res +18 -0
- package/tests/integration/EpTestSliceBehavior.res.mjs +35 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
4
|
+
import * as Pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as AppSync_Adapter$ReventlessAws from "./Api/AppSync_Adapter.res.mjs";
|
|
6
|
+
import * as Plugin_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/plugin/component/Plugin_Builder.res.mjs";
|
|
7
|
+
import * as Util_ResourceNaming$ReventlessAws from "../util/Util_ResourceNaming.res.mjs";
|
|
8
|
+
import * as QueryEngine_DynamoDb$ReventlessAws from "../adapter/QueryEngine/QueryEngine_DynamoDb.res.mjs";
|
|
9
|
+
import * as PluginRuntime_Builder$ReventlessAws from "../plugin/runtime/PluginRuntime_Builder.res.mjs";
|
|
10
|
+
import * as PluginRuntimeOperations$ReventlessAws from "../plugin/runtime/PluginRuntimeOperations.res.mjs";
|
|
11
|
+
import * as EventCollectorChannel_SQS$ReventlessAws from "../adapter/EventCollector/EventCollectorChannel_SQS.res.mjs";
|
|
12
|
+
import * as RuntimeEnvironment_Lambda$ReventlessAws from "../adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
13
|
+
import * as DcbEventLogStorage_DynamoDb$ReventlessAws from "../adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res.mjs";
|
|
14
|
+
import * as CommandTopicChannel_SQS_Sync$ReventlessAws from "../adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res.mjs";
|
|
15
|
+
import * as CommandTopicChannel_SQS_Async$ReventlessAws from "../adapter/CommandTopic/CommandTopicChannel_SQS_Async.res.mjs";
|
|
16
|
+
import * as CommandTopicRemoteChannel_SQS$ReventlessAws from "../adapter/CommandTopic/CommandTopicRemoteChannel_SQS.res.mjs";
|
|
17
|
+
import * as HeartbeatRunner_CloudWatchEvents$ReventlessAws from "../plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res.mjs";
|
|
18
|
+
import * as EventTopicPublisher_DynamoDbStream$ReventlessAws from "../adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res.mjs";
|
|
19
|
+
|
|
20
|
+
function Make(HooksConfig) {
|
|
21
|
+
let environment = Stdlib_Option.getOr(process.env.Environment, "unknown");
|
|
22
|
+
let platformName = Pulumi.getProject();
|
|
23
|
+
return Plugin_Builder$ReventlessCore.Make({
|
|
24
|
+
runtimeOps: PluginRuntimeOperations$ReventlessAws.operations,
|
|
25
|
+
resourceNaming: Util_ResourceNaming$ReventlessAws.operations,
|
|
26
|
+
environment: environment,
|
|
27
|
+
platformName: platformName,
|
|
28
|
+
hooks: HooksConfig.hooks
|
|
29
|
+
})({})({
|
|
30
|
+
makeApiResource: AppSync_Adapter$ReventlessAws.makeApiResource,
|
|
31
|
+
generateFragment: AppSync_Adapter$ReventlessAws.generateFragment,
|
|
32
|
+
updateSchema: AppSync_Adapter$ReventlessAws.updateSchema
|
|
33
|
+
})({
|
|
34
|
+
make: RuntimeEnvironment_Lambda$ReventlessAws.make,
|
|
35
|
+
groupBySource: RuntimeEnvironment_Lambda$ReventlessAws.groupBySource,
|
|
36
|
+
extractCorrelationId: RuntimeEnvironment_Lambda$ReventlessAws.extractCorrelationId,
|
|
37
|
+
asEventHandler: prim => prim,
|
|
38
|
+
asEffectHandler: prim => prim
|
|
39
|
+
})({
|
|
40
|
+
make: EventCollectorChannel_SQS$ReventlessAws.make,
|
|
41
|
+
connect: EventCollectorChannel_SQS$ReventlessAws.connect
|
|
42
|
+
})({
|
|
43
|
+
make: QueryEngine_DynamoDb$ReventlessAws.make
|
|
44
|
+
})(CommandTopicRemoteChannel_SQS$ReventlessAws)(HeartbeatRunner_CloudWatchEvents$ReventlessAws)(PluginRuntime_Builder$ReventlessAws.Make({
|
|
45
|
+
make: EventCollectorChannel_SQS$ReventlessAws.make,
|
|
46
|
+
connect: EventCollectorChannel_SQS$ReventlessAws.connect
|
|
47
|
+
}))(DcbEventLogStorage_DynamoDb$ReventlessAws)(EventTopicPublisher_DynamoDbStream$ReventlessAws)({
|
|
48
|
+
make: CommandTopicChannel_SQS_Sync$ReventlessAws.make
|
|
49
|
+
})({
|
|
50
|
+
make: CommandTopicChannel_SQS_Async$ReventlessAws.make
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let EventCollectorChannel;
|
|
55
|
+
|
|
56
|
+
let RuntimeEnvironment;
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
EventCollectorChannel,
|
|
60
|
+
RuntimeEnvironment,
|
|
61
|
+
Make,
|
|
62
|
+
}
|
|
63
|
+
/* @pulumi/pulumi Not a pure module */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include ReadModel_Builder_Single
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as ReadModel_Builder_Single$ReventlessAws from "./ReadModel_Builder_Single.res.mjs";
|
|
4
|
+
|
|
5
|
+
let EventCollectorChannel = ReadModel_Builder_Single$ReventlessAws.EventCollectorChannel;
|
|
6
|
+
|
|
7
|
+
let RuntimeEnvironment = ReadModel_Builder_Single$ReventlessAws.RuntimeEnvironment;
|
|
8
|
+
|
|
9
|
+
let EventCollectorRuntimeBuilder = ReadModel_Builder_Single$ReventlessAws.EventCollectorRuntimeBuilder;
|
|
10
|
+
|
|
11
|
+
let Make = ReadModel_Builder_Single$ReventlessAws.Make;
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
EventCollectorChannel,
|
|
15
|
+
RuntimeEnvironment,
|
|
16
|
+
EventCollectorRuntimeBuilder,
|
|
17
|
+
Make,
|
|
18
|
+
}
|
|
19
|
+
/* ReadModel_Builder_Single-ReventlessAws Not a pure module */
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// ReadModel builder that creates the QueryDb DynamoDB table and EventCollector
|
|
2
|
+
// but NO AppSync resolvers. Used for admin-internal read models (e.g. Plugin)
|
|
3
|
+
// that are accessed only via queryEngine at runtime, not through GraphQL API.
|
|
4
|
+
|
|
5
|
+
module EventCollectorChannel = EventCollectorChannel.DynamoDbStream
|
|
6
|
+
module RuntimeEnvironment = RuntimeEnvironment.Lambda
|
|
7
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntime_Builder_Single
|
|
8
|
+
|
|
9
|
+
module Make = (
|
|
10
|
+
Spec: Reventless.ReadModel.Spec,
|
|
11
|
+
Mappings: Reventless.Projection.Mappings with module Target := Spec,
|
|
12
|
+
): (
|
|
13
|
+
ReventlessInfra.ReadModel.T
|
|
14
|
+
with module Spec = Spec
|
|
15
|
+
and type api = Types.AppSync.api
|
|
16
|
+
and type role = Types.AppSync.role
|
|
17
|
+
) => {
|
|
18
|
+
module Inner = ReventlessCore.ReadModel_Builder.Make(
|
|
19
|
+
Spec,
|
|
20
|
+
Mappings,
|
|
21
|
+
RuntimeEnvironment,
|
|
22
|
+
QueryDbStorage.DynamoDb,
|
|
23
|
+
QueryDbResolvers_AppSync_NoOp,
|
|
24
|
+
EventCollectorChannel,
|
|
25
|
+
EventCollectorRuntimeBuilder,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
module Spec = Inner.Spec
|
|
29
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntimeBuilder
|
|
30
|
+
|
|
31
|
+
type api = Inner.api
|
|
32
|
+
type role = Inner.role
|
|
33
|
+
type component = Inner.component
|
|
34
|
+
let make = (~api, ~apiRole, ~allEventTopics, ~opts=?): component => {
|
|
35
|
+
let readModel = Inner.make(~api, ~apiRole, ~allEventTopics, ~opts?)
|
|
36
|
+
|
|
37
|
+
let queryDbOutputs = (readModel->Inner.outputs).queryDb
|
|
38
|
+
let tableResource = queryDbOutputs.resources->Array.getUnsafe(0)
|
|
39
|
+
let queryDbTableName = tableResource.name
|
|
40
|
+
|
|
41
|
+
EventCollectorRuntimeBuilder.registerReadModel(
|
|
42
|
+
~readModelName=Spec.name,
|
|
43
|
+
~specModulePath=Util_Bundle.getModuleSpecifier(Spec.moduleUrl),
|
|
44
|
+
~mappingsModulePath=Util_Bundle.getModuleSpecifier(Mappings.moduleUrl),
|
|
45
|
+
~queryDbTableName,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
readModel
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
let sourceNames = Inner.sourceNames
|
|
52
|
+
let outputs = Inner.outputs
|
|
53
|
+
let operations = Inner.operations
|
|
54
|
+
let finish = () => EventCollectorRuntimeBuilder.finish()
|
|
55
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Util_Bundle$ReventlessAws from "../util/Util_Bundle.res.mjs";
|
|
4
|
+
import * as ReadModel_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/ReadModel/ReadModel_Builder.res.mjs";
|
|
5
|
+
import * as QueryDbStorage_DynamoDb$ReventlessAws from "../adapter/QueryDb/QueryDbStorage_DynamoDb.res.mjs";
|
|
6
|
+
import * as RuntimeEnvironment_Lambda$ReventlessAws from "../adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
7
|
+
import * as QueryDbResolvers_AppSync_NoOp$ReventlessAws from "../adapter/QueryDb/QueryDbResolvers_AppSync_NoOp.res.mjs";
|
|
8
|
+
import * as EventCollectorChannel_DynamoDbStream$ReventlessAws from "../adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs";
|
|
9
|
+
import * as EventCollectorRuntime_Builder_Single$ReventlessAws from "../adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs";
|
|
10
|
+
|
|
11
|
+
function Make(Spec) {
|
|
12
|
+
return Mappings => {
|
|
13
|
+
let Inner = ReadModel_Builder$ReventlessCore.Make(Spec)(Mappings)({
|
|
14
|
+
make: RuntimeEnvironment_Lambda$ReventlessAws.make,
|
|
15
|
+
groupBySource: RuntimeEnvironment_Lambda$ReventlessAws.groupBySource,
|
|
16
|
+
extractCorrelationId: RuntimeEnvironment_Lambda$ReventlessAws.extractCorrelationId,
|
|
17
|
+
asEventHandler: prim => prim,
|
|
18
|
+
asEffectHandler: prim => prim
|
|
19
|
+
})({
|
|
20
|
+
make: QueryDbStorage_DynamoDb$ReventlessAws.make
|
|
21
|
+
})(QueryDbResolvers_AppSync_NoOp$ReventlessAws)({
|
|
22
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
23
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
24
|
+
})({
|
|
25
|
+
EventCollectorChannel: {
|
|
26
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
27
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
28
|
+
},
|
|
29
|
+
forEventCollector: EventCollectorRuntime_Builder_Single$ReventlessAws.forEventCollector,
|
|
30
|
+
finish: EventCollectorRuntime_Builder_Single$ReventlessAws.finish
|
|
31
|
+
});
|
|
32
|
+
let make = (api, apiRole, allEventTopics, opts) => {
|
|
33
|
+
let readModel = Inner.make(api, apiRole, allEventTopics, opts);
|
|
34
|
+
let queryDbOutputs = Inner.outputs(readModel).queryDb;
|
|
35
|
+
let tableResource = queryDbOutputs.resources[0];
|
|
36
|
+
let queryDbTableName = tableResource.name;
|
|
37
|
+
EventCollectorRuntime_Builder_Single$ReventlessAws.registerReadModel(Inner.Spec.name, Util_Bundle$ReventlessAws.getModuleSpecifier(Inner.Spec.moduleUrl), Util_Bundle$ReventlessAws.getModuleSpecifier(Mappings.moduleUrl), queryDbTableName);
|
|
38
|
+
return readModel;
|
|
39
|
+
};
|
|
40
|
+
let finish = () => EventCollectorRuntime_Builder_Single$ReventlessAws.finish();
|
|
41
|
+
return {
|
|
42
|
+
Spec: Inner.Spec,
|
|
43
|
+
sourceNames: Inner.sourceNames,
|
|
44
|
+
make: make,
|
|
45
|
+
outputs: Inner.outputs,
|
|
46
|
+
operations: Inner.operations,
|
|
47
|
+
finish: finish
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
let EventCollectorChannel;
|
|
53
|
+
|
|
54
|
+
let RuntimeEnvironment;
|
|
55
|
+
|
|
56
|
+
let EventCollectorRuntimeBuilder;
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
EventCollectorChannel,
|
|
60
|
+
RuntimeEnvironment,
|
|
61
|
+
EventCollectorRuntimeBuilder,
|
|
62
|
+
Make,
|
|
63
|
+
}
|
|
64
|
+
/* Util_Bundle-ReventlessAws Not a pure module */
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// ReadModel builder that creates the QueryDb DynamoDB table (stream-enabled)
|
|
2
|
+
// and EventCollector but NO AppSync resolvers. Used for admin-internal read
|
|
3
|
+
// models whose GraphQL field is served by a custom Lambda (e.g.
|
|
4
|
+
// `Platform_UIFragments` → `Platform_UIFragments_Lambda`) yet still need to
|
|
5
|
+
// participate in Source B (AppSync Events) live updates via the shared
|
|
6
|
+
// StateTopic Lambda. The stream storage maker registers the read model in
|
|
7
|
+
// `QueryDbStorage_DynamoDbStream.streamRegistry` on make, which is how
|
|
8
|
+
// `subscriptionInfraHook` knows to create / register the stream entry.
|
|
9
|
+
|
|
10
|
+
module EventCollectorChannel = EventCollectorChannel.DynamoDbStream
|
|
11
|
+
module RuntimeEnvironment = RuntimeEnvironment.Lambda
|
|
12
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntime_Builder_Single
|
|
13
|
+
|
|
14
|
+
module Make = (
|
|
15
|
+
Spec: Reventless.ReadModel.Spec,
|
|
16
|
+
Mappings: Reventless.Projection.Mappings with module Target := Spec,
|
|
17
|
+
): (
|
|
18
|
+
ReventlessInfra.ReadModel.T
|
|
19
|
+
with module Spec = Spec
|
|
20
|
+
and type api = Types.AppSync.api
|
|
21
|
+
and type role = Types.AppSync.role
|
|
22
|
+
) => {
|
|
23
|
+
module Inner = ReventlessCore.ReadModel_Builder.Make(
|
|
24
|
+
Spec,
|
|
25
|
+
Mappings,
|
|
26
|
+
RuntimeEnvironment,
|
|
27
|
+
QueryDbStorage_DynamoDbStream,
|
|
28
|
+
QueryDbResolvers_AppSync_NoOp,
|
|
29
|
+
EventCollectorChannel,
|
|
30
|
+
EventCollectorRuntimeBuilder,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
module Spec = Inner.Spec
|
|
34
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntimeBuilder
|
|
35
|
+
|
|
36
|
+
type api = Inner.api
|
|
37
|
+
type role = Inner.role
|
|
38
|
+
type component = Inner.component
|
|
39
|
+
let make = (~api, ~apiRole, ~allEventTopics, ~opts=?): component => {
|
|
40
|
+
let readModel = Inner.make(~api, ~apiRole, ~allEventTopics, ~opts?)
|
|
41
|
+
|
|
42
|
+
let queryDbOutputs = (readModel->Inner.outputs).queryDb
|
|
43
|
+
let tableResource = queryDbOutputs.resources->Array.getUnsafe(0)
|
|
44
|
+
let queryDbTableName = tableResource.name
|
|
45
|
+
|
|
46
|
+
EventCollectorRuntimeBuilder.registerReadModel(
|
|
47
|
+
~readModelName=Spec.name,
|
|
48
|
+
~specModulePath=Util_Bundle.getModuleSpecifier(Spec.moduleUrl),
|
|
49
|
+
~mappingsModulePath=Util_Bundle.getModuleSpecifier(Mappings.moduleUrl),
|
|
50
|
+
~queryDbTableName,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
readModel
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let sourceNames = Inner.sourceNames
|
|
57
|
+
let outputs = Inner.outputs
|
|
58
|
+
let operations = Inner.operations
|
|
59
|
+
let finish = () => EventCollectorRuntimeBuilder.finish()
|
|
60
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Util_Bundle$ReventlessAws from "../util/Util_Bundle.res.mjs";
|
|
4
|
+
import * as ReadModel_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/ReadModel/ReadModel_Builder.res.mjs";
|
|
5
|
+
import * as RuntimeEnvironment_Lambda$ReventlessAws from "../adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
6
|
+
import * as QueryDbResolvers_AppSync_NoOp$ReventlessAws from "../adapter/QueryDb/QueryDbResolvers_AppSync_NoOp.res.mjs";
|
|
7
|
+
import * as QueryDbStorage_DynamoDbStream$ReventlessAws from "../adapter/QueryDb/QueryDbStorage_DynamoDbStream.res.mjs";
|
|
8
|
+
import * as EventCollectorChannel_DynamoDbStream$ReventlessAws from "../adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs";
|
|
9
|
+
import * as EventCollectorRuntime_Builder_Single$ReventlessAws from "../adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs";
|
|
10
|
+
|
|
11
|
+
function Make(Spec) {
|
|
12
|
+
return Mappings => {
|
|
13
|
+
let Inner = ReadModel_Builder$ReventlessCore.Make(Spec)(Mappings)({
|
|
14
|
+
make: RuntimeEnvironment_Lambda$ReventlessAws.make,
|
|
15
|
+
groupBySource: RuntimeEnvironment_Lambda$ReventlessAws.groupBySource,
|
|
16
|
+
extractCorrelationId: RuntimeEnvironment_Lambda$ReventlessAws.extractCorrelationId,
|
|
17
|
+
asEventHandler: prim => prim,
|
|
18
|
+
asEffectHandler: prim => prim
|
|
19
|
+
})({
|
|
20
|
+
make: QueryDbStorage_DynamoDbStream$ReventlessAws.make
|
|
21
|
+
})(QueryDbResolvers_AppSync_NoOp$ReventlessAws)({
|
|
22
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
23
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
24
|
+
})({
|
|
25
|
+
EventCollectorChannel: {
|
|
26
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
27
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
28
|
+
},
|
|
29
|
+
forEventCollector: EventCollectorRuntime_Builder_Single$ReventlessAws.forEventCollector,
|
|
30
|
+
finish: EventCollectorRuntime_Builder_Single$ReventlessAws.finish
|
|
31
|
+
});
|
|
32
|
+
let make = (api, apiRole, allEventTopics, opts) => {
|
|
33
|
+
let readModel = Inner.make(api, apiRole, allEventTopics, opts);
|
|
34
|
+
let queryDbOutputs = Inner.outputs(readModel).queryDb;
|
|
35
|
+
let tableResource = queryDbOutputs.resources[0];
|
|
36
|
+
let queryDbTableName = tableResource.name;
|
|
37
|
+
EventCollectorRuntime_Builder_Single$ReventlessAws.registerReadModel(Inner.Spec.name, Util_Bundle$ReventlessAws.getModuleSpecifier(Inner.Spec.moduleUrl), Util_Bundle$ReventlessAws.getModuleSpecifier(Mappings.moduleUrl), queryDbTableName);
|
|
38
|
+
return readModel;
|
|
39
|
+
};
|
|
40
|
+
let finish = () => EventCollectorRuntime_Builder_Single$ReventlessAws.finish();
|
|
41
|
+
return {
|
|
42
|
+
Spec: Inner.Spec,
|
|
43
|
+
sourceNames: Inner.sourceNames,
|
|
44
|
+
make: make,
|
|
45
|
+
outputs: Inner.outputs,
|
|
46
|
+
operations: Inner.operations,
|
|
47
|
+
finish: finish
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
let EventCollectorChannel;
|
|
53
|
+
|
|
54
|
+
let RuntimeEnvironment;
|
|
55
|
+
|
|
56
|
+
let EventCollectorRuntimeBuilder;
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
EventCollectorChannel,
|
|
60
|
+
RuntimeEnvironment,
|
|
61
|
+
EventCollectorRuntimeBuilder,
|
|
62
|
+
Make,
|
|
63
|
+
}
|
|
64
|
+
/* Util_Bundle-ReventlessAws Not a pure module */
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module EventCollectorChannel = EventCollectorChannel.DynamoDbStream
|
|
2
|
+
module RuntimeEnvironment = RuntimeEnvironment.Lambda
|
|
3
|
+
|
|
4
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntime_Builder_PerEventCollector
|
|
5
|
+
|
|
6
|
+
module Make = (
|
|
7
|
+
Spec: Reventless.ReadModel.Spec,
|
|
8
|
+
Mappings: Reventless.Projection.Mappings with module Target := Spec,
|
|
9
|
+
): (
|
|
10
|
+
ReventlessInfra.ReadModel.T
|
|
11
|
+
with module Spec = Spec
|
|
12
|
+
and type api = Types.AppSync.api
|
|
13
|
+
and type role = Types.AppSync.role
|
|
14
|
+
) => {
|
|
15
|
+
module Inner = ReventlessCore.ReadModel_Builder.Make(
|
|
16
|
+
Spec,
|
|
17
|
+
Mappings,
|
|
18
|
+
RuntimeEnvironment,
|
|
19
|
+
QueryDbStorage.DynamoDb,
|
|
20
|
+
QueryDbResolvers.AppSync,
|
|
21
|
+
EventCollectorChannel,
|
|
22
|
+
EventCollectorRuntimeBuilder,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
module Spec = Inner.Spec
|
|
26
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntimeBuilder
|
|
27
|
+
|
|
28
|
+
type api = Inner.api
|
|
29
|
+
type role = Inner.role
|
|
30
|
+
type component = Inner.component
|
|
31
|
+
|
|
32
|
+
let make = (~api, ~apiRole, ~allEventTopics, ~opts=?): component => {
|
|
33
|
+
let readModel = Inner.make(~api, ~apiRole, ~allEventTopics, ~opts?)
|
|
34
|
+
|
|
35
|
+
let queryDbOutputs = (readModel->Inner.outputs).queryDb
|
|
36
|
+
let tableResource = queryDbOutputs.resources->Array.getUnsafe(0)
|
|
37
|
+
let queryDbTableName = tableResource.name
|
|
38
|
+
|
|
39
|
+
EventCollectorRuntimeBuilder.registerReadModel(
|
|
40
|
+
~readModelName=Spec.name,
|
|
41
|
+
~specModulePath=Util_Bundle.getModuleSpecifier(Spec.moduleUrl),
|
|
42
|
+
~mappingsModulePath=Util_Bundle.getModuleSpecifier(Mappings.moduleUrl),
|
|
43
|
+
~queryDbTableName,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
readModel
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
let sourceNames = Inner.sourceNames
|
|
50
|
+
let outputs = Inner.outputs
|
|
51
|
+
let operations = Inner.operations
|
|
52
|
+
let finish = () => EventCollectorRuntimeBuilder.finish()
|
|
53
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Util_Bundle$ReventlessAws from "../util/Util_Bundle.res.mjs";
|
|
4
|
+
import * as ReadModel_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/ReadModel/ReadModel_Builder.res.mjs";
|
|
5
|
+
import * as QueryDbStorage_DynamoDb$ReventlessAws from "../adapter/QueryDb/QueryDbStorage_DynamoDb.res.mjs";
|
|
6
|
+
import * as QueryDbResolvers_AppSync$ReventlessAws from "../adapter/QueryDb/QueryDbResolvers_AppSync.res.mjs";
|
|
7
|
+
import * as RuntimeEnvironment_Lambda$ReventlessAws from "../adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
8
|
+
import * as EventCollectorChannel_DynamoDbStream$ReventlessAws from "../adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs";
|
|
9
|
+
import * as EventCollectorRuntime_Builder_PerEventCollector$ReventlessAws from "../adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs";
|
|
10
|
+
|
|
11
|
+
function Make(Spec) {
|
|
12
|
+
return Mappings => {
|
|
13
|
+
let Inner = ReadModel_Builder$ReventlessCore.Make(Spec)(Mappings)({
|
|
14
|
+
make: RuntimeEnvironment_Lambda$ReventlessAws.make,
|
|
15
|
+
groupBySource: RuntimeEnvironment_Lambda$ReventlessAws.groupBySource,
|
|
16
|
+
extractCorrelationId: RuntimeEnvironment_Lambda$ReventlessAws.extractCorrelationId,
|
|
17
|
+
asEventHandler: prim => prim,
|
|
18
|
+
asEffectHandler: prim => prim
|
|
19
|
+
})({
|
|
20
|
+
make: QueryDbStorage_DynamoDb$ReventlessAws.make
|
|
21
|
+
})({
|
|
22
|
+
make: QueryDbResolvers_AppSync$ReventlessAws.make
|
|
23
|
+
})({
|
|
24
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
25
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
26
|
+
})({
|
|
27
|
+
EventCollectorChannel: {
|
|
28
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
29
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
30
|
+
},
|
|
31
|
+
forEventCollector: EventCollectorRuntime_Builder_PerEventCollector$ReventlessAws.forEventCollector,
|
|
32
|
+
finish: EventCollectorRuntime_Builder_PerEventCollector$ReventlessAws.finish
|
|
33
|
+
});
|
|
34
|
+
let make = (api, apiRole, allEventTopics, opts) => {
|
|
35
|
+
let readModel = Inner.make(api, apiRole, allEventTopics, opts);
|
|
36
|
+
let queryDbOutputs = Inner.outputs(readModel).queryDb;
|
|
37
|
+
let tableResource = queryDbOutputs.resources[0];
|
|
38
|
+
let queryDbTableName = tableResource.name;
|
|
39
|
+
EventCollectorRuntime_Builder_PerEventCollector$ReventlessAws.registerReadModel(Inner.Spec.name, Util_Bundle$ReventlessAws.getModuleSpecifier(Inner.Spec.moduleUrl), Util_Bundle$ReventlessAws.getModuleSpecifier(Mappings.moduleUrl), queryDbTableName);
|
|
40
|
+
return readModel;
|
|
41
|
+
};
|
|
42
|
+
let finish = () => EventCollectorRuntime_Builder_PerEventCollector$ReventlessAws.finish();
|
|
43
|
+
return {
|
|
44
|
+
Spec: Inner.Spec,
|
|
45
|
+
sourceNames: Inner.sourceNames,
|
|
46
|
+
make: make,
|
|
47
|
+
outputs: Inner.outputs,
|
|
48
|
+
operations: Inner.operations,
|
|
49
|
+
finish: finish
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let EventCollectorChannel;
|
|
55
|
+
|
|
56
|
+
let RuntimeEnvironment;
|
|
57
|
+
|
|
58
|
+
let EventCollectorRuntimeBuilder;
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
EventCollectorChannel,
|
|
62
|
+
RuntimeEnvironment,
|
|
63
|
+
EventCollectorRuntimeBuilder,
|
|
64
|
+
Make,
|
|
65
|
+
}
|
|
66
|
+
/* Util_Bundle-ReventlessAws Not a pure module */
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module EventCollectorChannel = EventCollectorChannel.DynamoDbStream
|
|
2
|
+
module RuntimeEnvironment = RuntimeEnvironment.Lambda
|
|
3
|
+
|
|
4
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntime_Builder_Single
|
|
5
|
+
|
|
6
|
+
module Make = (
|
|
7
|
+
Spec: Reventless.ReadModel.Spec,
|
|
8
|
+
Mappings: Reventless.Projection.Mappings with module Target := Spec,
|
|
9
|
+
): (
|
|
10
|
+
ReventlessInfra.ReadModel.T
|
|
11
|
+
with module Spec = Spec
|
|
12
|
+
and type api = Types.AppSync.api
|
|
13
|
+
and type role = Types.AppSync.role
|
|
14
|
+
) => {
|
|
15
|
+
module Inner = ReventlessCore.ReadModel_Builder.Make(
|
|
16
|
+
Spec,
|
|
17
|
+
Mappings,
|
|
18
|
+
RuntimeEnvironment,
|
|
19
|
+
QueryDbStorage.DynamoDb,
|
|
20
|
+
QueryDbResolvers.AppSync,
|
|
21
|
+
EventCollectorChannel,
|
|
22
|
+
EventCollectorRuntimeBuilder,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
module Spec = Inner.Spec
|
|
26
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntimeBuilder
|
|
27
|
+
|
|
28
|
+
type api = Inner.api
|
|
29
|
+
type role = Inner.role
|
|
30
|
+
type component = Inner.component
|
|
31
|
+
let make = (~api, ~apiRole, ~allEventTopics, ~opts=?): component => {
|
|
32
|
+
let readModel = Inner.make(~api, ~apiRole, ~allEventTopics, ~opts?)
|
|
33
|
+
|
|
34
|
+
let queryDbOutputs = (readModel->Inner.outputs).queryDb
|
|
35
|
+
let tableResource = queryDbOutputs.resources->Array.getUnsafe(0)
|
|
36
|
+
let queryDbTableName = tableResource.name
|
|
37
|
+
|
|
38
|
+
EventCollectorRuntimeBuilder.registerReadModel(
|
|
39
|
+
~readModelName=Spec.name,
|
|
40
|
+
~specModulePath=Util_Bundle.getModuleSpecifier(Spec.moduleUrl),
|
|
41
|
+
~mappingsModulePath=Util_Bundle.getModuleSpecifier(Mappings.moduleUrl),
|
|
42
|
+
~queryDbTableName,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
readModel
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
let sourceNames = Inner.sourceNames
|
|
49
|
+
let outputs = Inner.outputs
|
|
50
|
+
let operations = Inner.operations
|
|
51
|
+
let finish = () => EventCollectorRuntimeBuilder.finish()
|
|
52
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Util_Bundle$ReventlessAws from "../util/Util_Bundle.res.mjs";
|
|
4
|
+
import * as ReadModel_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/ReadModel/ReadModel_Builder.res.mjs";
|
|
5
|
+
import * as QueryDbStorage_DynamoDb$ReventlessAws from "../adapter/QueryDb/QueryDbStorage_DynamoDb.res.mjs";
|
|
6
|
+
import * as QueryDbResolvers_AppSync$ReventlessAws from "../adapter/QueryDb/QueryDbResolvers_AppSync.res.mjs";
|
|
7
|
+
import * as RuntimeEnvironment_Lambda$ReventlessAws from "../adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
8
|
+
import * as EventCollectorChannel_DynamoDbStream$ReventlessAws from "../adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs";
|
|
9
|
+
import * as EventCollectorRuntime_Builder_Single$ReventlessAws from "../adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs";
|
|
10
|
+
|
|
11
|
+
function Make(Spec) {
|
|
12
|
+
return Mappings => {
|
|
13
|
+
let Inner = ReadModel_Builder$ReventlessCore.Make(Spec)(Mappings)({
|
|
14
|
+
make: RuntimeEnvironment_Lambda$ReventlessAws.make,
|
|
15
|
+
groupBySource: RuntimeEnvironment_Lambda$ReventlessAws.groupBySource,
|
|
16
|
+
extractCorrelationId: RuntimeEnvironment_Lambda$ReventlessAws.extractCorrelationId,
|
|
17
|
+
asEventHandler: prim => prim,
|
|
18
|
+
asEffectHandler: prim => prim
|
|
19
|
+
})({
|
|
20
|
+
make: QueryDbStorage_DynamoDb$ReventlessAws.make
|
|
21
|
+
})({
|
|
22
|
+
make: QueryDbResolvers_AppSync$ReventlessAws.make
|
|
23
|
+
})({
|
|
24
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
25
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
26
|
+
})({
|
|
27
|
+
EventCollectorChannel: {
|
|
28
|
+
make: EventCollectorChannel_DynamoDbStream$ReventlessAws.make,
|
|
29
|
+
connect: EventCollectorChannel_DynamoDbStream$ReventlessAws.connect
|
|
30
|
+
},
|
|
31
|
+
forEventCollector: EventCollectorRuntime_Builder_Single$ReventlessAws.forEventCollector,
|
|
32
|
+
finish: EventCollectorRuntime_Builder_Single$ReventlessAws.finish
|
|
33
|
+
});
|
|
34
|
+
let make = (api, apiRole, allEventTopics, opts) => {
|
|
35
|
+
let readModel = Inner.make(api, apiRole, allEventTopics, opts);
|
|
36
|
+
let queryDbOutputs = Inner.outputs(readModel).queryDb;
|
|
37
|
+
let tableResource = queryDbOutputs.resources[0];
|
|
38
|
+
let queryDbTableName = tableResource.name;
|
|
39
|
+
EventCollectorRuntime_Builder_Single$ReventlessAws.registerReadModel(Inner.Spec.name, Util_Bundle$ReventlessAws.getModuleSpecifier(Inner.Spec.moduleUrl), Util_Bundle$ReventlessAws.getModuleSpecifier(Mappings.moduleUrl), queryDbTableName);
|
|
40
|
+
return readModel;
|
|
41
|
+
};
|
|
42
|
+
let finish = () => EventCollectorRuntime_Builder_Single$ReventlessAws.finish();
|
|
43
|
+
return {
|
|
44
|
+
Spec: Inner.Spec,
|
|
45
|
+
sourceNames: Inner.sourceNames,
|
|
46
|
+
make: make,
|
|
47
|
+
outputs: Inner.outputs,
|
|
48
|
+
operations: Inner.operations,
|
|
49
|
+
finish: finish
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let EventCollectorChannel;
|
|
55
|
+
|
|
56
|
+
let RuntimeEnvironment;
|
|
57
|
+
|
|
58
|
+
let EventCollectorRuntimeBuilder;
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
EventCollectorChannel,
|
|
62
|
+
RuntimeEnvironment,
|
|
63
|
+
EventCollectorRuntimeBuilder,
|
|
64
|
+
Make,
|
|
65
|
+
}
|
|
66
|
+
/* Util_Bundle-ReventlessAws Not a pure module */
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// ReadModel_Builder_Single_Stream (AWS)
|
|
2
|
+
// Like ReadModel_Builder_Single but uses QueryDbStorage_DynamoDbStream so the
|
|
3
|
+
// QueryDb table has a DynamoDB Stream enabled. The platform's subscriptionInfraHook
|
|
4
|
+
// then wires a StateTopic_AppSync Lambda that pushes row changes to the AppSync
|
|
5
|
+
// Events API (Source B subscriptions / AutoUI live updates). The stream storage
|
|
6
|
+
// maker registers the read model in QueryDbStorage_DynamoDbStream.streamRegistry
|
|
7
|
+
// on make, which is how subscriptionInfraHook knows to create the Lambda.
|
|
8
|
+
|
|
9
|
+
module EventCollectorChannel = EventCollectorChannel.DynamoDbStream
|
|
10
|
+
module RuntimeEnvironment = RuntimeEnvironment.Lambda
|
|
11
|
+
|
|
12
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntime_Builder_Single
|
|
13
|
+
|
|
14
|
+
module Make = (
|
|
15
|
+
Spec: Reventless.ReadModel.Spec,
|
|
16
|
+
Mappings: Reventless.Projection.Mappings with module Target := Spec,
|
|
17
|
+
): (
|
|
18
|
+
ReventlessInfra.ReadModel.T
|
|
19
|
+
with module Spec = Spec
|
|
20
|
+
and type api = Types.AppSync.api
|
|
21
|
+
and type role = Types.AppSync.role
|
|
22
|
+
) => {
|
|
23
|
+
module Inner = ReventlessCore.ReadModel_Builder.Make(
|
|
24
|
+
Spec,
|
|
25
|
+
Mappings,
|
|
26
|
+
RuntimeEnvironment,
|
|
27
|
+
QueryDbStorage_DynamoDbStream,
|
|
28
|
+
QueryDbResolvers.AppSync,
|
|
29
|
+
EventCollectorChannel,
|
|
30
|
+
EventCollectorRuntimeBuilder,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
module Spec = Inner.Spec
|
|
34
|
+
module EventCollectorRuntimeBuilder = EventCollectorRuntimeBuilder
|
|
35
|
+
|
|
36
|
+
type api = Inner.api
|
|
37
|
+
type role = Inner.role
|
|
38
|
+
type component = Inner.component
|
|
39
|
+
let make = (~api, ~apiRole, ~allEventTopics, ~opts=?): component => {
|
|
40
|
+
let readModel = Inner.make(~api, ~apiRole, ~allEventTopics, ~opts?)
|
|
41
|
+
|
|
42
|
+
let queryDbOutputs = (readModel->Inner.outputs).queryDb
|
|
43
|
+
let tableResource = queryDbOutputs.resources->Array.getUnsafe(0)
|
|
44
|
+
let queryDbTableName = tableResource.name
|
|
45
|
+
|
|
46
|
+
EventCollectorRuntimeBuilder.registerReadModel(
|
|
47
|
+
~readModelName=Spec.name,
|
|
48
|
+
~specModulePath=Util_Bundle.getModuleSpecifier(Spec.moduleUrl),
|
|
49
|
+
~mappingsModulePath=Util_Bundle.getModuleSpecifier(Mappings.moduleUrl),
|
|
50
|
+
~queryDbTableName,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
readModel
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let sourceNames = Inner.sourceNames
|
|
57
|
+
let outputs = Inner.outputs
|
|
58
|
+
let operations = Inner.operations
|
|
59
|
+
let finish = () => EventCollectorRuntimeBuilder.finish()
|
|
60
|
+
}
|