@reventlessdev/reventless-core 3.0.0-alpha.134
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 +1355 -0
- package/LICENSE +202 -0
- package/README.md +173 -0
- package/__mocks__/emptyModule.js +2 -0
- package/jest.setup.cjs +5 -0
- package/package.json +73 -0
- package/rescript.json +41 -0
- package/scripts/deploy.sh +6 -0
- package/scripts/post-deploy.sh +5 -0
- package/scripts/pre-deploy.sh +18 -0
- package/scripts/pulumi-up.sh +30 -0
- package/src/Behavior.res +18 -0
- package/src/Behavior.res.mjs +2 -0
- package/src/ComponentType.res +125 -0
- package/src/ComponentType.res.mjs +199 -0
- package/src/Env.res +5 -0
- package/src/Env.res.mjs +2 -0
- package/src/Mapper.res +36 -0
- package/src/Mapper.res.mjs +18 -0
- package/src/Mapper1toN.res +107 -0
- package/src/Mapper1toN.res.mjs +2 -0
- package/src/MapperNto1.res +78 -0
- package/src/MapperNto1.res.mjs +35 -0
- package/src/Message.res +353 -0
- package/src/Message.res.mjs +418 -0
- package/src/PluginRuntimeOperations.res +15 -0
- package/src/PluginRuntimeOperations.res.mjs +2 -0
- package/src/Projection.res +447 -0
- package/src/Projection.res.mjs +712 -0
- package/src/ProjectionMapper.res +44 -0
- package/src/ProjectionMapper.res.mjs +51 -0
- package/src/RequestContext.res +42 -0
- package/src/RequestContext.res.mjs +39 -0
- package/src/adapter/Adapter.res +178 -0
- package/src/adapter/Adapter.res.mjs +201 -0
- package/src/adapter/AdapterDeploytime.res +56 -0
- package/src/adapter/AdapterDeploytime.res.mjs +42 -0
- package/src/adapter/Auth/Auth_Adapter.res +42 -0
- package/src/adapter/Auth/Auth_Adapter.res.mjs +2 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder.res +22 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder.res.mjs +2 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Common.res +259 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Common.res.mjs +190 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +92 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +59 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +52 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +49 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +64 -0
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +59 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder.res +11 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder.res.mjs +2 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +46 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs +40 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +204 -0
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs +150 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder.res +18 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder.res.mjs +2 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +36 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res.mjs +28 -0
- package/src/adapter/Runtime/PluginRuntime_Builder.res +23 -0
- package/src/adapter/Runtime/PluginRuntime_Builder.res.mjs +2 -0
- package/src/adapter/Runtime/PluginRuntime_Builder_Micro.res +97 -0
- package/src/adapter/Runtime/PluginRuntime_Builder_Micro.res.mjs +62 -0
- package/src/adapter/Runtime/PluginRuntime_Builder_Single.res +89 -0
- package/src/adapter/Runtime/PluginRuntime_Builder_Single.res.mjs +62 -0
- package/src/adapter/Runtime/Runtime.res +106 -0
- package/src/adapter/Runtime/Runtime.res.mjs +22 -0
- package/src/adapter/Runtime/TaskRuntime_Builder.res +32 -0
- package/src/adapter/Runtime/TaskRuntime_Builder.res.mjs +2 -0
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +42 -0
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res.mjs +29 -0
- package/src/admin/AdminApi.res +88 -0
- package/src/admin/AdminApi.res.mjs +89 -0
- package/src/admin/Admin_Callback.res +27 -0
- package/src/admin/Admin_Callback.res.mjs +20 -0
- package/src/admin/Platform_Admin.res +402 -0
- package/src/admin/Platform_Admin.res.mjs +250 -0
- package/src/admin/Platform_Admin_Structure.res +125 -0
- package/src/admin/Platform_Admin_Structure.res.mjs +182 -0
- package/src/admin/Platform_ComponentDefinitionsApi.res +160 -0
- package/src/admin/Platform_ComponentDefinitionsApi.res.mjs +299 -0
- package/src/admin/Platform_UIFragmentsApi.res +55 -0
- package/src/admin/Platform_UIFragmentsApi.res.mjs +124 -0
- package/src/admin/UIFragmentRegistryProjection.res +43 -0
- package/src/admin/UIFragmentRegistryProjection.res.mjs +81 -0
- package/src/admin/UIFragmentRegistryReadModelSpec.res +13 -0
- package/src/admin/UIFragmentRegistryReadModelSpec.res.mjs +40 -0
- package/src/components/Aggregate/Aggregate.res +96 -0
- package/src/components/Aggregate/Aggregate.res.mjs +82 -0
- package/src/components/Aggregate/Aggregate_Builder.res +175 -0
- package/src/components/Aggregate/Aggregate_Builder.res.mjs +119 -0
- package/src/components/Aggregate/Aggregate_Callback.res +273 -0
- package/src/components/Aggregate/Aggregate_Callback.res.mjs +208 -0
- package/src/components/Api/ApiAllowedStatesHelpers.res +19 -0
- package/src/components/Api/ApiAllowedStatesHelpers.res.mjs +16 -0
- package/src/components/Api/ApiNoApiHelpers.res +13 -0
- package/src/components/Api/ApiNoApiHelpers.res.mjs +29 -0
- package/src/components/Api/Api_Builder.res +40 -0
- package/src/components/Api/Api_Builder.res.mjs +33 -0
- package/src/components/Api/Api_Naming.res +92 -0
- package/src/components/Api/Api_Naming.res.mjs +103 -0
- package/src/components/Api/Api_Operations.res +13 -0
- package/src/components/Api/Api_Operations.res.mjs +12 -0
- package/src/components/Api/GraphQL_FragmentGenerator.res +612 -0
- package/src/components/Api/GraphQL_FragmentGenerator.res.mjs +503 -0
- package/src/components/Api/GraphQL_SchemaInspector.res +156 -0
- package/src/components/Api/GraphQL_SchemaInspector.res.mjs +123 -0
- package/src/components/Api/GraphQL_Stitcher.res +271 -0
- package/src/components/Api/GraphQL_Stitcher.res.mjs +229 -0
- package/src/components/Api/MCP_SchemaGenerator.res +185 -0
- package/src/components/Api/MCP_SchemaGenerator.res.mjs +146 -0
- package/src/components/Api/SchemaType.res +126 -0
- package/src/components/Api/SchemaType.res.mjs +143 -0
- package/src/components/Api/SuryToJsonSchema.res +142 -0
- package/src/components/Api/SuryToJsonSchema.res.mjs +210 -0
- package/src/components/AutomationSlice/AutomationSlice.res +39 -0
- package/src/components/AutomationSlice/AutomationSlice.res.mjs +24 -0
- package/src/components/AutomationSlice/AutomationSlice_Builder.res +207 -0
- package/src/components/AutomationSlice/AutomationSlice_Builder.res.mjs +123 -0
- package/src/components/AutomationSlice/AutomationSlice_Callback.res +212 -0
- package/src/components/AutomationSlice/AutomationSlice_Callback.res.mjs +189 -0
- package/src/components/Builder_Helpers.res +196 -0
- package/src/components/Builder_Helpers.res.mjs +142 -0
- package/src/components/Cloner.res +84 -0
- package/src/components/Cloner.res.mjs +88 -0
- package/src/components/CommandGenerator/CommandGenerator.res +54 -0
- package/src/components/CommandGenerator/CommandGenerator.res.mjs +15 -0
- package/src/components/CommandGenerator/CommandGenerator_Adapter.res +22 -0
- package/src/components/CommandGenerator/CommandGenerator_Adapter.res.mjs +2 -0
- package/src/components/CommandGenerator/CommandGenerator_Builder.res +70 -0
- package/src/components/CommandGenerator/CommandGenerator_Builder.res.mjs +68 -0
- package/src/components/CommandGenerator/CommandGenerator_Callback.res +191 -0
- package/src/components/CommandGenerator/CommandGenerator_Callback.res.mjs +161 -0
- package/src/components/CommandTopic/CommandTopic.res +79 -0
- package/src/components/CommandTopic/CommandTopic.res.mjs +68 -0
- package/src/components/CommandTopic/CommandTopic_Adapter.res +53 -0
- package/src/components/CommandTopic/CommandTopic_Adapter.res.mjs +2 -0
- package/src/components/CommandTopic/CommandTopic_Builder.res +146 -0
- package/src/components/CommandTopic/CommandTopic_Builder.res.mjs +127 -0
- package/src/components/CommandTopic/CommandTopic_Callback.res +38 -0
- package/src/components/CommandTopic/CommandTopic_Callback.res.mjs +49 -0
- package/src/components/CommandTopic/CommandTopic_Helpers.res +176 -0
- package/src/components/CommandTopic/CommandTopic_Helpers.res.mjs +195 -0
- package/src/components/CommandTopic/CommandTopic_Operations.res +40 -0
- package/src/components/CommandTopic/CommandTopic_Operations.res.mjs +49 -0
- package/src/components/Component.res +1 -0
- package/src/components/Component.res.mjs +34 -0
- package/src/components/Component.resi +1 -0
- package/src/components/Counter/Counter.res +47 -0
- package/src/components/Counter/Counter.res.mjs +55 -0
- package/src/components/Counter/Counter_Adapter.res +18 -0
- package/src/components/Counter/Counter_Adapter.res.mjs +2 -0
- package/src/components/Counter/Counter_Builder.res +142 -0
- package/src/components/Counter/Counter_Builder.res.mjs +112 -0
- package/src/components/Counter/Counter_Callback.res +94 -0
- package/src/components/Counter/Counter_Callback.res.mjs +70 -0
- package/src/components/Counter/Counter_Operations.res +70 -0
- package/src/components/Counter/Counter_Operations.res.mjs +91 -0
- package/src/components/Dcb/Dcb_Builder.res +971 -0
- package/src/components/Dcb/Dcb_Builder.res.mjs +572 -0
- package/src/components/DcbEventLog/DcbEventLog.res +43 -0
- package/src/components/DcbEventLog/DcbEventLog.res.mjs +24 -0
- package/src/components/DcbEventLog/DcbEventLog_Adapter.res +57 -0
- package/src/components/DcbEventLog/DcbEventLog_Adapter.res.mjs +2 -0
- package/src/components/DcbEventLog/DcbEventLog_Builder.res +72 -0
- package/src/components/DcbEventLog/DcbEventLog_Builder.res.mjs +67 -0
- package/src/components/DcbEventLog/DcbEventLog_Operations.res +160 -0
- package/src/components/DcbEventLog/DcbEventLog_Operations.res.mjs +121 -0
- package/src/components/EventCollector/EventCollector.res +34 -0
- package/src/components/EventCollector/EventCollector.res.mjs +9 -0
- package/src/components/EventCollector/EventCollector_Adapter.res +45 -0
- package/src/components/EventCollector/EventCollector_Adapter.res.mjs +2 -0
- package/src/components/EventCollector/EventCollector_Builder.res +91 -0
- package/src/components/EventCollector/EventCollector_Builder.res.mjs +64 -0
- package/src/components/EventLog/EventLog.res +27 -0
- package/src/components/EventLog/EventLog.res.mjs +13 -0
- package/src/components/EventLog/EventLog_Adapter.res +15 -0
- package/src/components/EventLog/EventLog_Adapter.res.mjs +2 -0
- package/src/components/EventLog/EventLog_Builder.res +65 -0
- package/src/components/EventLog/EventLog_Builder.res.mjs +57 -0
- package/src/components/EventLog/EventLog_Operations.res +209 -0
- package/src/components/EventLog/EventLog_Operations.res.mjs +202 -0
- package/src/components/EventLog/EventPublish_Callback.res +29 -0
- package/src/components/EventLog/EventPublish_Callback.res.mjs +32 -0
- package/src/components/EventMapper/EventMapper.res +72 -0
- package/src/components/EventMapper/EventMapper.res.mjs +54 -0
- package/src/components/EventMapper/EventMapper_Builder.res +128 -0
- package/src/components/EventMapper/EventMapper_Builder.res.mjs +81 -0
- package/src/components/EventMapper/EventMapper_Callback.res +323 -0
- package/src/components/EventMapper/EventMapper_Callback.res.mjs +231 -0
- package/src/components/EventTopic/EventTopic.res +69 -0
- package/src/components/EventTopic/EventTopic.res.mjs +50 -0
- package/src/components/EventTopic/EventTopic_Adapter.res +15 -0
- package/src/components/EventTopic/EventTopic_Adapter.res.mjs +2 -0
- package/src/components/EventTopic/EventTopic_Builder.res +53 -0
- package/src/components/EventTopic/EventTopic_Builder.res.mjs +46 -0
- package/src/components/EventTopic/EventTopic_Operations.res +37 -0
- package/src/components/EventTopic/EventTopic_Operations.res.mjs +39 -0
- package/src/components/Extension/Extension.res +32 -0
- package/src/components/Extension/Extension.res.mjs +9 -0
- package/src/components/Extension/Extension_Builder.res +82 -0
- package/src/components/Extension/Extension_Builder.res.mjs +57 -0
- package/src/components/Extension/Extension_Operations.res +203 -0
- package/src/components/Extension/Extension_Operations.res.mjs +154 -0
- package/src/components/ExtensionPoint/ExtensionPoint.res +49 -0
- package/src/components/ExtensionPoint/ExtensionPoint.res.mjs +25 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Builder.res +163 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Builder.res.mjs +113 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Callback.res +110 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Callback.res.mjs +76 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Operations.res +146 -0
- package/src/components/ExtensionPoint/ExtensionPoint_Operations.res.mjs +122 -0
- package/src/components/Heartbeat/Heartbeat.res +25 -0
- package/src/components/Heartbeat/Heartbeat.res.mjs +9 -0
- package/src/components/Heartbeat/Heartbeat_Adapter.res +14 -0
- package/src/components/Heartbeat/Heartbeat_Adapter.res.mjs +2 -0
- package/src/components/Heartbeat/Heartbeat_Builder.res +43 -0
- package/src/components/Heartbeat/Heartbeat_Builder.res.mjs +47 -0
- package/src/components/Heartbeat/Heartbeat_Callback.res +32 -0
- package/src/components/Heartbeat/Heartbeat_Callback.res.mjs +40 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice.res +34 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice.res.mjs +24 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res +98 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res.mjs +87 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res +191 -0
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res.mjs +175 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice.res +35 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice.res.mjs +24 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res +181 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res.mjs +137 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res +173 -0
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res.mjs +173 -0
- package/src/components/QueryDb/QueryDb.res +74 -0
- package/src/components/QueryDb/QueryDb.res.mjs +37 -0
- package/src/components/QueryDb/QueryDb_Adapter.res +78 -0
- package/src/components/QueryDb/QueryDb_Adapter.res.mjs +17 -0
- package/src/components/QueryDb/QueryDb_Builder.res +76 -0
- package/src/components/QueryDb/QueryDb_Builder.res.mjs +53 -0
- package/src/components/QueryDb/QueryDb_Callback.res +18 -0
- package/src/components/QueryDb/QueryDb_Callback.res.mjs +21 -0
- package/src/components/QueryDb/QueryDb_Operations.res +116 -0
- package/src/components/QueryDb/QueryDb_Operations.res.mjs +165 -0
- package/src/components/ReadModel/ReadModel.res +42 -0
- package/src/components/ReadModel/ReadModel.res.mjs +27 -0
- package/src/components/ReadModel/ReadModel_Builder.res +155 -0
- package/src/components/ReadModel/ReadModel_Builder.res.mjs +101 -0
- package/src/components/ReadModel/ReadModel_Callback.res +48 -0
- package/src/components/ReadModel/ReadModel_Callback.res.mjs +48 -0
- package/src/components/Scheduler/Scheduler.res +13 -0
- package/src/components/Scheduler/Scheduler.res.mjs +9 -0
- package/src/components/Scheduler/Scheduler_Adapter.res +13 -0
- package/src/components/Scheduler/Scheduler_Adapter.res.mjs +2 -0
- package/src/components/Scheduler/Scheduler_Builder.res +19 -0
- package/src/components/Scheduler/Scheduler_Builder.res.mjs +29 -0
- package/src/components/SideEffectHandler/SideEffectHandler.res +30 -0
- package/src/components/SideEffectHandler/SideEffectHandler.res.mjs +12 -0
- package/src/components/SideEffectHandler/SideEffectHandler_Builder.res +117 -0
- package/src/components/SideEffectHandler/SideEffectHandler_Builder.res.mjs +64 -0
- package/src/components/SideEffectHandler/SideEffectHandler_Callback.res +116 -0
- package/src/components/SideEffectHandler/SideEffectHandler_Callback.res.mjs +95 -0
- package/src/components/StateChangeSlice/StateChangeSlice.res +38 -0
- package/src/components/StateChangeSlice/StateChangeSlice.res.mjs +17 -0
- package/src/components/StateChangeSlice/StateChangeSlice_Builder.res +91 -0
- package/src/components/StateChangeSlice/StateChangeSlice_Builder.res.mjs +81 -0
- package/src/components/StateChangeSlice/StateChangeSlice_Callback.res +412 -0
- package/src/components/StateChangeSlice/StateChangeSlice_Callback.res.mjs +299 -0
- package/src/components/StateTopic.res +91 -0
- package/src/components/StateTopic.res.mjs +41 -0
- package/src/components/StateViewSlice/StateViewSlice.res +33 -0
- package/src/components/StateViewSlice/StateViewSlice.res.mjs +24 -0
- package/src/components/StateViewSlice/StateViewSlice_Builder.res +176 -0
- package/src/components/StateViewSlice/StateViewSlice_Builder.res.mjs +134 -0
- package/src/components/StateViewSlice/StateViewSlice_Callback.res +64 -0
- package/src/components/StateViewSlice/StateViewSlice_Callback.res.mjs +56 -0
- package/src/components/Task/Task.res +81 -0
- package/src/components/Task/Task.res.mjs +51 -0
- package/src/components/Task/Task_Adapter.res +31 -0
- package/src/components/Task/Task_Adapter.res.mjs +2 -0
- package/src/components/Task/Task_Builder.res +223 -0
- package/src/components/Task/Task_Builder.res.mjs +115 -0
- package/src/plugin/api/PluginBaseFragment.res +104 -0
- package/src/plugin/api/PluginBaseFragment.res.mjs +64 -0
- package/src/plugin/component/Plugin.res +100 -0
- package/src/plugin/component/Plugin.res.mjs +61 -0
- package/src/plugin/component/Plugin_Builder.res +1017 -0
- package/src/plugin/component/Plugin_Builder.res.mjs +608 -0
- package/src/plugin/component/Plugin_BuiltHook.res +141 -0
- package/src/plugin/component/Plugin_BuiltHook.res.mjs +39 -0
- package/src/plugin/component/Plugin_Callback.res +98 -0
- package/src/plugin/component/Plugin_Callback.res.mjs +55 -0
- package/src/plugin/component/Plugin_Helpers.res +1730 -0
- package/src/plugin/component/Plugin_Helpers.res.mjs +1010 -0
- package/src/plugin/component/Plugin_ResolverError.res +27 -0
- package/src/plugin/component/Plugin_ResolverError.res.mjs +21 -0
- package/src/plugin/component/Plugin_Structure.res +570 -0
- package/src/plugin/component/Plugin_Structure.res.mjs +458 -0
- package/src/plugin/component/Plugin_SubscriptionSchema.res +103 -0
- package/src/plugin/component/Plugin_SubscriptionSchema.res.mjs +71 -0
- package/src/plugin/component/SchemaWalker.res +164 -0
- package/src/plugin/component/SchemaWalker.res.mjs +183 -0
- package/src/plugin/connect/PluginConnectExtension_Builder.res +14 -0
- package/src/plugin/connect/PluginConnectExtension_Builder.res.mjs +36 -0
- package/src/plugin/connect/PluginConnectExtension_Mapping.res +76 -0
- package/src/plugin/connect/PluginConnectExtension_Mapping.res.mjs +89 -0
- package/src/plugin/connect/PluginExtensionPoint_Builder.res +39 -0
- package/src/plugin/connect/PluginExtensionPoint_Builder.res.mjs +33 -0
- package/src/plugin/connect/PluginExtensionPoint_Plugin.res +231 -0
- package/src/plugin/connect/PluginExtensionPoint_Plugin.res.mjs +353 -0
- package/src/plugin/lifecycle/PluginBehavior.res +250 -0
- package/src/plugin/lifecycle/PluginBehavior.res.mjs +391 -0
- package/src/plugin/lifecycle/PluginSpec.res +84 -0
- package/src/plugin/lifecycle/PluginSpec.res.mjs +148 -0
- package/src/plugin/lifecycle/PluginsProjection.res +154 -0
- package/src/plugin/lifecycle/PluginsProjection.res.mjs +230 -0
- package/src/plugin/lifecycle/PluginsReadModelSpec.res +66 -0
- package/src/plugin/lifecycle/PluginsReadModelSpec.res.mjs +58 -0
- package/src/util/AWS.res +7 -0
- package/src/util/AWS.res.mjs +20 -0
- package/src/util/CSV.res +27 -0
- package/src/util/CSV.res.mjs +56 -0
- package/src/util/CommandPublisher.res +133 -0
- package/src/util/CommandPublisher.res.mjs +161 -0
- package/src/util/CsvStream.res +39 -0
- package/src/util/CsvStream.res.mjs +42 -0
- package/src/util/EffectLogger.res +178 -0
- package/src/util/EffectLogger.res.mjs +171 -0
- package/src/util/FTP.res +69 -0
- package/src/util/FTP.res.mjs +101 -0
- package/src/util/FTPHandler.res +142 -0
- package/src/util/FTPHandler.res.mjs +136 -0
- package/src/util/Hash.res +1 -0
- package/src/util/Hash.res.mjs +10 -0
- package/src/util/Interstack.res +74 -0
- package/src/util/Interstack.res.mjs +126 -0
- package/src/util/Interstack.resi +25 -0
- package/src/util/LogFormat.res +222 -0
- package/src/util/LogFormat.res.mjs +257 -0
- package/src/util/Logger.res +196 -0
- package/src/util/Logger.res.mjs +238 -0
- package/src/util/Lru.res +51 -0
- package/src/util/Lru.res.mjs +59 -0
- package/src/util/Lru.resi +32 -0
- package/src/util/Metrics.res +32 -0
- package/src/util/Metrics.res.mjs +42 -0
- package/src/util/OutputFailsafeDeploytime.res +16 -0
- package/src/util/OutputFailsafeDeploytime.res.mjs +20 -0
- package/src/util/OutputFailsafeRuntime.res +6 -0
- package/src/util/OutputFailsafeRuntime.res.mjs +15 -0
- package/src/util/OutputLogger.res +9 -0
- package/src/util/OutputLogger.res.mjs +19 -0
- package/src/util/ResourceQuery.res +14 -0
- package/src/util/ResourceQuery.res.mjs +17 -0
- package/src/util/ResourceQueryRuntime.res +17 -0
- package/src/util/ResourceQueryRuntime.res.mjs +18 -0
- package/src/util/ScheduleOps.res +124 -0
- package/src/util/ScheduleOps.res.mjs +132 -0
- package/src/util/Util.res +12 -0
- package/src/util/Util.res.mjs +42 -0
- package/src/util/Util_Adapter.res +97 -0
- package/src/util/Util_Adapter.res.mjs +82 -0
- package/src/util/Util_AdapterRuntime.res +39 -0
- package/src/util/Util_AdapterRuntime.res.mjs +42 -0
- package/src/util/Util_Array.res +2 -0
- package/src/util/Util_Array.res.mjs +12 -0
- package/src/util/Util_Error.res +16 -0
- package/src/util/Util_Error.res.mjs +19 -0
- package/src/util/Util_Promise.res +67 -0
- package/src/util/Util_Promise.res.mjs +105 -0
- package/src/util/Util_Pulumi.res +35 -0
- package/src/util/Util_Pulumi.res.mjs +55 -0
- package/src/util/Util_Pulumi.resi +21 -0
- package/src/util/Util_QueryDb.res +14 -0
- package/src/util/Util_QueryDb.res.mjs +21 -0
- package/src/util/Util_QueryDbRuntime.res +11 -0
- package/src/util/Util_QueryDbRuntime.res.mjs +19 -0
- package/src/util/Util_ReadModel.res +2 -0
- package/src/util/Util_ReadModel.res.mjs +10 -0
- package/src/util/Util_StackRefs.res +24 -0
- package/src/util/Util_StackRefs.res.mjs +39 -0
- package/src/util/Validation.res +75 -0
- package/src/util/Validation.res.mjs +181 -0
- package/tests/.gitkeep +0 -0
- package/tests/IdentityTest.res +155 -0
- package/tests/IdentityTest.res.mjs +174 -0
- package/tests/admin/Platform_ComponentDefinitionsApiTest.res +237 -0
- package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +298 -0
- package/tests/admin/Platform_UIFragmentsApiTest.res +96 -0
- package/tests/admin/Platform_UIFragmentsApiTest.res.mjs +101 -0
- package/tests/aggregate/AggregateCallbackTest.res +81 -0
- package/tests/aggregate/AggregateCallbackTest.res.mjs +140 -0
- package/tests/aggregate/AggregateCausationTest.res +49 -0
- package/tests/aggregate/AggregateCausationTest.res.mjs +44 -0
- package/tests/aggregate/AggregateConflictTest.res +212 -0
- package/tests/aggregate/AggregateConflictTest.res.mjs +363 -0
- package/tests/aggregate/AggregateFixtures.res +177 -0
- package/tests/aggregate/AggregateFixtures.res.mjs +285 -0
- package/tests/aggregate/AggregateRejectionTest.res +139 -0
- package/tests/aggregate/AggregateRejectionTest.res.mjs +163 -0
- package/tests/api/ApiNoApiTest.res +62 -0
- package/tests/api/ApiNoApiTest.res.mjs +90 -0
- package/tests/api/GraphQL_StitcherTest.res +107 -0
- package/tests/api/GraphQL_StitcherTest.res.mjs +99 -0
- package/tests/api/SimpleTest.res +7 -0
- package/tests/api/SimpleTest.res.mjs +10 -0
- package/tests/api/SuryToJsonSchemaTest.res +405 -0
- package/tests/api/SuryToJsonSchemaTest.res.mjs +623 -0
- package/tests/commandgenerator/CommandGeneratorCallbackTest.res +128 -0
- package/tests/commandgenerator/CommandGeneratorCallbackTest.res.mjs +160 -0
- package/tests/commandgenerator/CommandGeneratorFixtures.res +139 -0
- package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +197 -0
- package/tests/commandtopic/CommandTopicCallbackFixtures.res +87 -0
- package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +152 -0
- package/tests/commandtopic/CommandTopicCallbackTest.res +66 -0
- package/tests/commandtopic/CommandTopicCallbackTest.res.mjs +106 -0
- package/tests/commandtopic/CommandTopicHelpersRejectionTest.res +83 -0
- package/tests/commandtopic/CommandTopicHelpersRejectionTest.res.mjs +109 -0
- package/tests/counter/CounterCallbackTest.res +83 -0
- package/tests/counter/CounterCallbackTest.res.mjs +140 -0
- package/tests/counter/CounterFixtures.res +57 -0
- package/tests/counter/CounterFixtures.res.mjs +67 -0
- package/tests/dcb/DcbDecodeTest.res +122 -0
- package/tests/dcb/DcbDecodeTest.res.mjs +194 -0
- package/tests/dcb/DcbEventLogOperationsTest.res +195 -0
- package/tests/dcb/DcbEventLogOperationsTest.res.mjs +268 -0
- package/tests/dcb/DcbFixtures.res +422 -0
- package/tests/dcb/DcbFixtures.res.mjs +534 -0
- package/tests/dcb/DcbScopeInferenceTest.res +242 -0
- package/tests/dcb/DcbScopeInferenceTest.res.mjs +480 -0
- package/tests/dcb/DcbStateChangeSliceTest.res +362 -0
- package/tests/dcb/DcbStateChangeSliceTest.res.mjs +546 -0
- package/tests/dcb/DcbTagTest.res +978 -0
- package/tests/dcb/DcbTagTest.res.mjs +867 -0
- package/tests/dcb/DcbValidationTest.res +349 -0
- package/tests/dcb/DcbValidationTest.res.mjs +476 -0
- package/tests/eventlog/EventLogFixtures.res +113 -0
- package/tests/eventlog/EventLogFixtures.res.mjs +166 -0
- package/tests/eventlog/EventLogOperationsTest.res +96 -0
- package/tests/eventlog/EventLogOperationsTest.res.mjs +192 -0
- package/tests/eventlog/EventLogRetryTest.res +121 -0
- package/tests/eventlog/EventLogRetryTest.res.mjs +171 -0
- package/tests/eventmapper/EventMapperCallbackTest.res +134 -0
- package/tests/eventmapper/EventMapperCallbackTest.res.mjs +141 -0
- package/tests/eventmapper/EventMapperFixtures.res +255 -0
- package/tests/eventmapper/EventMapperFixtures.res.mjs +440 -0
- package/tests/eventmapper/EventMapperTest.res +53 -0
- package/tests/eventmapper/EventMapperTest.res.mjs +83 -0
- package/tests/eventtopic/EventTopicFixtures.res +36 -0
- package/tests/eventtopic/EventTopicFixtures.res.mjs +65 -0
- package/tests/eventtopic/EventTopicOperationsTest.res +48 -0
- package/tests/eventtopic/EventTopicOperationsTest.res.mjs +71 -0
- package/tests/extensionpoint/ExtensionPointCallbackTest.res +84 -0
- package/tests/extensionpoint/ExtensionPointCallbackTest.res.mjs +94 -0
- package/tests/extensionpoint/ExtensionPointFixtures.res +173 -0
- package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +205 -0
- package/tests/extensionpoint/ExtensionPointOperationsTest.res +261 -0
- package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +304 -0
- package/tests/ftp/FTPTest.res +64 -0
- package/tests/ftp/FTPTest.res.mjs +88 -0
- package/tests/logger/LogFormatTest.res +348 -0
- package/tests/logger/LogFormatTest.res.mjs +309 -0
- package/tests/message/MessageTest.res +95 -0
- package/tests/message/MessageTest.res.mjs +93 -0
- package/tests/message/MetaEnvelopeTest.res +200 -0
- package/tests/message/MetaEnvelopeTest.res.mjs +188 -0
- package/tests/plugin/ManifestVisibilityTest.res +137 -0
- package/tests/plugin/ManifestVisibilityTest.res.mjs +205 -0
- package/tests/plugin/PluginSpecExperiment.res +13 -0
- package/tests/plugin/PluginSpecExperiment.res.mjs +31 -0
- package/tests/plugin/PluginStructureTest.res +298 -0
- package/tests/plugin/PluginStructureTest.res.mjs +388 -0
- package/tests/plugin/PluginVersionTest.res +34 -0
- package/tests/plugin/PluginVersionTest.res.mjs +30 -0
- package/tests/plugin/SchemaWalkerTest.res +115 -0
- package/tests/plugin/SchemaWalkerTest.res.mjs +160 -0
- package/tests/plugin/StateChangeSlice/PsPlaceOrder.res +24 -0
- package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +62 -0
- package/tests/plugin/StateChangeSlice/PsShipOrder.res +29 -0
- package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +69 -0
- package/tests/plugin/StateViewSlice/PsAnnotatedView.res +24 -0
- package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +94 -0
- package/tests/plugin/StateViewSlice/PsAvailableProductsView.res +18 -0
- package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +69 -0
- package/tests/plugin/StateViewSlice/PsCustomersView.res +22 -0
- package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +69 -0
- package/tests/plugin/StateViewSlice/PsOrdersView.res +20 -0
- package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +81 -0
- package/tests/poc/StructuralSubtypingPoc.res +211 -0
- package/tests/poc/StructuralSubtypingPoc.res.mjs +61 -0
- package/tests/querydb/QueryDbFixtures.res +65 -0
- package/tests/querydb/QueryDbFixtures.res.mjs +135 -0
- package/tests/querydb/QueryDbOperationsTest.res +94 -0
- package/tests/querydb/QueryDbOperationsTest.res.mjs +168 -0
- package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res +56 -0
- package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res.mjs +77 -0
- package/tests/sideeffecthandler/SideEffectHandlerFixtures.res +96 -0
- package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +139 -0
- package/tests/util/CsvStreamTest.res +54 -0
- package/tests/util/CsvStreamTest.res.mjs +51 -0
- package/tests/util/LruTest.res +73 -0
- package/tests/util/LruTest.res.mjs +105 -0
- package/tests/util/MetricsTest.res +36 -0
- package/tests/util/MetricsTest.res.mjs +53 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
@@reventless.spec("Plugin")
|
|
2
|
+
|
|
3
|
+
open Reventless.Plugin
|
|
4
|
+
|
|
5
|
+
// The Plugin aggregate is keyed by plugin **name** (not name@version). One
|
|
6
|
+
// instance owns the whole lifecycle of every version of that name, deciding
|
|
7
|
+
// supersession synchronously. Version-scoped commands carry the `version`
|
|
8
|
+
// the transition targets; the ExtensionPoint→Plugin mapping supplies it
|
|
9
|
+
// (translated from the transport-level `name@version` id — Approach 1).
|
|
10
|
+
@schema
|
|
11
|
+
type command =
|
|
12
|
+
| @noApi Heartbeat(version)
|
|
13
|
+
| @noApi Connect(pluginDefinition)
|
|
14
|
+
| @noApi Disconnect(version)
|
|
15
|
+
// Admin lifecycle commands — API-exposed (auto-derived admin mutations,
|
|
16
|
+
// Cognito @aws_auth gated). `version` selects which known version to act on.
|
|
17
|
+
| Activate(version)
|
|
18
|
+
| Deactivate(version)
|
|
19
|
+
// Records a protocol-version incompatibility without changing connection state.
|
|
20
|
+
| @noApi ReportIncompatibility(pluginDefinition)
|
|
21
|
+
// Manual admin retirement of a specific version (archive). Distinct from the
|
|
22
|
+
// automatic `Superseded` transition (which is decided, not commanded).
|
|
23
|
+
| Retire(version)
|
|
24
|
+
|
|
25
|
+
@schema
|
|
26
|
+
type uiFragmentRegisteredData = {pluginId: string, manifest: uiFragmentManifest}
|
|
27
|
+
|
|
28
|
+
@schema
|
|
29
|
+
type uiFragmentUpdatedData = {
|
|
30
|
+
pluginId: string,
|
|
31
|
+
previousManifest: uiFragmentManifest,
|
|
32
|
+
newManifest: uiFragmentManifest,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@schema
|
|
36
|
+
type uiFragmentDeregisteredData = {pluginId: string}
|
|
37
|
+
|
|
38
|
+
// Carries both the superseded and the superseding version's full definition —
|
|
39
|
+
// a deterministic trigger for version-to-version schema/data migrations
|
|
40
|
+
// (analysis §6.2.4).
|
|
41
|
+
@schema
|
|
42
|
+
type versionSupersededData = {
|
|
43
|
+
supersededVersion: version,
|
|
44
|
+
supersededDefinition: pluginDefinition,
|
|
45
|
+
newVersion: version,
|
|
46
|
+
newDefinition: pluginDefinition,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@schema
|
|
50
|
+
type event =
|
|
51
|
+
// A heartbeat arrived for a version the aggregate has not yet connected —
|
|
52
|
+
// triggers the ConnectPlugin handshake (replaces UnknownPluginDetected). The
|
|
53
|
+
// version lets the EP rebuild the `name@version` id for the handshake.
|
|
54
|
+
| VersionDetected(version)
|
|
55
|
+
// A version completed the connect handshake (replaces Connected/Reconnected).
|
|
56
|
+
| VersionConnected(pluginDefinition)
|
|
57
|
+
// A newer version connected and took over as current.
|
|
58
|
+
| VersionSuperseded(versionSupersededData)
|
|
59
|
+
// An older still-live version became current again (rollback): the current
|
|
60
|
+
// version disconnected/deactivated/retired and a lower live version was promoted.
|
|
61
|
+
| VersionPromoted(pluginDefinition)
|
|
62
|
+
// A version's heartbeats timed out (EP disconnect schedule).
|
|
63
|
+
| VersionDisconnected(pluginDefinition)
|
|
64
|
+
// Admin transitions.
|
|
65
|
+
| VersionActivated(pluginDefinition)
|
|
66
|
+
| VersionDeactivated(pluginDefinition)
|
|
67
|
+
// Manual admin retirement (archive) of a specific version.
|
|
68
|
+
| VersionRetired(pluginDefinition)
|
|
69
|
+
// Protocol incompatibility recorded at connect; connection still proceeds.
|
|
70
|
+
| IncompatiblePluginDetected(pluginDefinition)
|
|
71
|
+
// UI fragment lifecycle events — emitted alongside connect/disconnect/(de)activate
|
|
72
|
+
// when the plugin's pluginDefinition.uiFragments is set.
|
|
73
|
+
| UIFragmentRegistered(uiFragmentRegisteredData)
|
|
74
|
+
| UIFragmentUpdated(uiFragmentUpdatedData)
|
|
75
|
+
| UIFragmentDeregistered(uiFragmentDeregisteredData)
|
|
76
|
+
|
|
77
|
+
@schema
|
|
78
|
+
type error =
|
|
79
|
+
// Targeted version is unknown to this plugin name.
|
|
80
|
+
| UnknownVersion
|
|
81
|
+
// Admin command targets a version not in the state the command requires.
|
|
82
|
+
| AlreadyConnected
|
|
83
|
+
| IsDisconnected
|
|
84
|
+
| IsInactive
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as S from "sury/src/S.res.mjs";
|
|
4
|
+
import * as Plugin$Reventless from "@reventlessdev/reventless-spec/src/components/Plugin.res.mjs";
|
|
5
|
+
import * as Api$ReventlessInfra from "@reventlessdev/reventless-infra/src/components/Api.res.mjs";
|
|
6
|
+
|
|
7
|
+
let commandSchema = S.union([
|
|
8
|
+
S.schema(s => ({
|
|
9
|
+
TAG: "Heartbeat",
|
|
10
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
11
|
+
})),
|
|
12
|
+
S.schema(s => ({
|
|
13
|
+
TAG: "Connect",
|
|
14
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
15
|
+
})),
|
|
16
|
+
S.schema(s => ({
|
|
17
|
+
TAG: "Disconnect",
|
|
18
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
19
|
+
})),
|
|
20
|
+
S.schema(s => ({
|
|
21
|
+
TAG: "Activate",
|
|
22
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
23
|
+
})),
|
|
24
|
+
S.schema(s => ({
|
|
25
|
+
TAG: "Deactivate",
|
|
26
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
27
|
+
})),
|
|
28
|
+
S.schema(s => ({
|
|
29
|
+
TAG: "ReportIncompatibility",
|
|
30
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
31
|
+
})),
|
|
32
|
+
S.schema(s => ({
|
|
33
|
+
TAG: "Retire",
|
|
34
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
35
|
+
}))
|
|
36
|
+
]);
|
|
37
|
+
|
|
38
|
+
let uiFragmentRegisteredDataSchema = S.schema(s => ({
|
|
39
|
+
pluginId: s.m(S.string),
|
|
40
|
+
manifest: s.m(Plugin$Reventless.uiFragmentManifestSchema)
|
|
41
|
+
}));
|
|
42
|
+
|
|
43
|
+
let uiFragmentUpdatedDataSchema = S.schema(s => ({
|
|
44
|
+
pluginId: s.m(S.string),
|
|
45
|
+
previousManifest: s.m(Plugin$Reventless.uiFragmentManifestSchema),
|
|
46
|
+
newManifest: s.m(Plugin$Reventless.uiFragmentManifestSchema)
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
let uiFragmentDeregisteredDataSchema = S.schema(s => ({
|
|
50
|
+
pluginId: s.m(S.string)
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
let versionSupersededDataSchema = S.schema(s => ({
|
|
54
|
+
supersededVersion: s.m(Plugin$Reventless.versionSchema),
|
|
55
|
+
supersededDefinition: s.m(Plugin$Reventless.pluginDefinitionSchema),
|
|
56
|
+
newVersion: s.m(Plugin$Reventless.versionSchema),
|
|
57
|
+
newDefinition: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
58
|
+
}));
|
|
59
|
+
|
|
60
|
+
let eventSchema = S.union([
|
|
61
|
+
S.schema(s => ({
|
|
62
|
+
TAG: "VersionDetected",
|
|
63
|
+
_0: s.m(Plugin$Reventless.versionSchema)
|
|
64
|
+
})),
|
|
65
|
+
S.schema(s => ({
|
|
66
|
+
TAG: "VersionConnected",
|
|
67
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
68
|
+
})),
|
|
69
|
+
S.schema(s => ({
|
|
70
|
+
TAG: "VersionSuperseded",
|
|
71
|
+
_0: s.m(versionSupersededDataSchema)
|
|
72
|
+
})),
|
|
73
|
+
S.schema(s => ({
|
|
74
|
+
TAG: "VersionPromoted",
|
|
75
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
76
|
+
})),
|
|
77
|
+
S.schema(s => ({
|
|
78
|
+
TAG: "VersionDisconnected",
|
|
79
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
80
|
+
})),
|
|
81
|
+
S.schema(s => ({
|
|
82
|
+
TAG: "VersionActivated",
|
|
83
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
84
|
+
})),
|
|
85
|
+
S.schema(s => ({
|
|
86
|
+
TAG: "VersionDeactivated",
|
|
87
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
88
|
+
})),
|
|
89
|
+
S.schema(s => ({
|
|
90
|
+
TAG: "VersionRetired",
|
|
91
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
92
|
+
})),
|
|
93
|
+
S.schema(s => ({
|
|
94
|
+
TAG: "IncompatiblePluginDetected",
|
|
95
|
+
_0: s.m(Plugin$Reventless.pluginDefinitionSchema)
|
|
96
|
+
})),
|
|
97
|
+
S.schema(s => ({
|
|
98
|
+
TAG: "UIFragmentRegistered",
|
|
99
|
+
_0: s.m(uiFragmentRegisteredDataSchema)
|
|
100
|
+
})),
|
|
101
|
+
S.schema(s => ({
|
|
102
|
+
TAG: "UIFragmentUpdated",
|
|
103
|
+
_0: s.m(uiFragmentUpdatedDataSchema)
|
|
104
|
+
})),
|
|
105
|
+
S.schema(s => ({
|
|
106
|
+
TAG: "UIFragmentDeregistered",
|
|
107
|
+
_0: s.m(uiFragmentDeregisteredDataSchema)
|
|
108
|
+
}))
|
|
109
|
+
]);
|
|
110
|
+
|
|
111
|
+
let errorSchema = S.union([
|
|
112
|
+
S.literal("UnknownVersion"),
|
|
113
|
+
S.literal("AlreadyConnected"),
|
|
114
|
+
S.literal("IsDisconnected"),
|
|
115
|
+
S.literal("IsInactive")
|
|
116
|
+
]);
|
|
117
|
+
|
|
118
|
+
let commandSchema$1 = Api$ReventlessInfra.markNoApiVariants(commandSchema, [
|
|
119
|
+
"Heartbeat",
|
|
120
|
+
"Connect",
|
|
121
|
+
"Disconnect",
|
|
122
|
+
"ReportIncompatibility"
|
|
123
|
+
]);
|
|
124
|
+
|
|
125
|
+
function commandAuthorization(param) {
|
|
126
|
+
return "AllowAuthenticated";
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
let name = "Plugin";
|
|
130
|
+
|
|
131
|
+
let Id;
|
|
132
|
+
|
|
133
|
+
let moduleUrl = "@reventlessdev/reventless-core/src/plugin/lifecycle/PluginSpec.res.mjs";
|
|
134
|
+
|
|
135
|
+
export {
|
|
136
|
+
name,
|
|
137
|
+
Id,
|
|
138
|
+
uiFragmentRegisteredDataSchema,
|
|
139
|
+
uiFragmentUpdatedDataSchema,
|
|
140
|
+
uiFragmentDeregisteredDataSchema,
|
|
141
|
+
versionSupersededDataSchema,
|
|
142
|
+
eventSchema,
|
|
143
|
+
errorSchema,
|
|
144
|
+
commandSchema$1 as commandSchema,
|
|
145
|
+
moduleUrl,
|
|
146
|
+
commandAuthorization,
|
|
147
|
+
}
|
|
148
|
+
/* commandSchema Not a pure module */
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
open Reventless.Message
|
|
2
|
+
|
|
3
|
+
let moduleUrl: string = %raw(`import.meta.url`)
|
|
4
|
+
|
|
5
|
+
module Util = {
|
|
6
|
+
let extractExtensionPointNames = Array.map(_, (
|
|
7
|
+
extensionPoint: Reventless.Plugin.extensionPointDefinition,
|
|
8
|
+
) => extensionPoint.name)
|
|
9
|
+
let extractExtensionNames = Array.map(_, (extension: Reventless.Plugin.extensionDefinition) =>
|
|
10
|
+
extension.extensionPointName
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
let isConnected = (status: PluginsReadModelSpec.status) =>
|
|
14
|
+
switch status {
|
|
15
|
+
| Connected => true
|
|
16
|
+
| Disconnected | Inactive | Retired => false
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let without = (versions: array<Reventless.Plugin.version>, v) =>
|
|
20
|
+
versions->Array.filter(x => x != v)
|
|
21
|
+
let withVersion = (versions: array<Reventless.Plugin.version>, v) =>
|
|
22
|
+
versions->Array.includes(v) ? versions : Array.concat(versions, [v])
|
|
23
|
+
|
|
24
|
+
// Every version this row knows to be currently Connected — the `other` set
|
|
25
|
+
// plus the row's own version when its status is Connected.
|
|
26
|
+
let connectedVersions = (state: PluginsReadModelSpec.state): array<Reventless.Plugin.version> =>
|
|
27
|
+
isConnected(state.status) ? state.otherConnectedVersions->withVersion(state.version) : state.otherConnectedVersions
|
|
28
|
+
|
|
29
|
+
// Highest version (compareVersions) in the set, or None for an empty set.
|
|
30
|
+
let highest = (versions: array<Reventless.Plugin.version>): option<Reventless.Plugin.version> =>
|
|
31
|
+
versions->Array.reduce(None, (acc, v) =>
|
|
32
|
+
switch acc {
|
|
33
|
+
| None => Some(v)
|
|
34
|
+
| Some(cur) => Plugin.compareVersions(v, cur) > 0 ? Some(v) : acc
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Build the flattened current-version row from a definition + status + the set
|
|
40
|
+
// of OTHER currently-connected versions (own version excluded).
|
|
41
|
+
let displayState = (
|
|
42
|
+
def: Reventless.Plugin.pluginDefinition,
|
|
43
|
+
status: PluginsReadModelSpec.status,
|
|
44
|
+
statusChange,
|
|
45
|
+
otherConnectedVersions,
|
|
46
|
+
): PluginsReadModelSpec.state => {
|
|
47
|
+
let base: PluginsReadModelSpec.state = {
|
|
48
|
+
name: def.name,
|
|
49
|
+
version: def.version,
|
|
50
|
+
eventCollector: def.eventCollector,
|
|
51
|
+
extensionPoints: def.extensionPoints,
|
|
52
|
+
extensionPointNames: def.extensionPoints->Util.extractExtensionPointNames,
|
|
53
|
+
extensionNames: def.extensions->Util.extractExtensionNames,
|
|
54
|
+
extensions: def.extensions,
|
|
55
|
+
status,
|
|
56
|
+
statusChange,
|
|
57
|
+
apiSchemaFragment: def.apiSchemaFragment,
|
|
58
|
+
uiFragments: def.uiFragments,
|
|
59
|
+
structure: def.structure,
|
|
60
|
+
dcbEventLog: def.dcbEventLog,
|
|
61
|
+
// The current version is never listed among the "other" connected versions.
|
|
62
|
+
otherConnectedVersions: otherConnectedVersions->Util.without(def.version),
|
|
63
|
+
}
|
|
64
|
+
switch def.apiTarget {
|
|
65
|
+
| Some(target) => {...base, apiTarget: target}
|
|
66
|
+
| None => base
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module PluginMapping = Reventless.Projection.Mapping.Make(
|
|
71
|
+
PluginSpec,
|
|
72
|
+
PluginsReadModelSpec,
|
|
73
|
+
{
|
|
74
|
+
let project = ({event, id, meta: {time, user: ?user}}) => {
|
|
75
|
+
let statusChange = {at: time, by: user->Option.getOr("")}
|
|
76
|
+
switch event {
|
|
77
|
+
// Handshake trigger, supersession record, incompatibility and UI-fragment
|
|
78
|
+
// events do not change which version is current.
|
|
79
|
+
| PluginSpec.VersionDetected(_)
|
|
80
|
+
| VersionSuperseded(_)
|
|
81
|
+
| IncompatiblePluginDetected(_)
|
|
82
|
+
| UIFragmentRegistered(_)
|
|
83
|
+
| UIFragmentUpdated(_)
|
|
84
|
+
| UIFragmentDeregistered(_) =>
|
|
85
|
+
Reventless.Projection.Ignore
|
|
86
|
+
|
|
87
|
+
// A version became live. It becomes current iff it is the highest
|
|
88
|
+
// Connected version; otherwise the higher version stays current and this
|
|
89
|
+
// one is recorded among the other currently-connected versions.
|
|
90
|
+
| VersionConnected(def) | VersionActivated(def) =>
|
|
91
|
+
Reventless.Projection.UpdateWithDefault(
|
|
92
|
+
id,
|
|
93
|
+
displayState(def, Connected, statusChange, []),
|
|
94
|
+
state => {
|
|
95
|
+
let connectedNow = Util.connectedVersions(state)->Util.withVersion(def.version)
|
|
96
|
+
switch Util.highest(connectedNow) {
|
|
97
|
+
| Some(hc) if hc == def.version =>
|
|
98
|
+
displayState(def, Connected, statusChange, connectedNow)
|
|
99
|
+
| _ => {
|
|
100
|
+
...state,
|
|
101
|
+
otherConnectedVersions: state.otherConnectedVersions->Util.withVersion(def.version),
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
// Rollback: this (possibly lower) version is explicitly promoted to current.
|
|
108
|
+
// It leaves the "other" set (it is now the row's own version); the version
|
|
109
|
+
// it replaces already left Connected (that is what triggered the promote).
|
|
110
|
+
| VersionPromoted(def) =>
|
|
111
|
+
Reventless.Projection.UpdateWithDefault(
|
|
112
|
+
id,
|
|
113
|
+
displayState(def, Connected, statusChange, []),
|
|
114
|
+
state => displayState(def, Connected, statusChange, state.otherConnectedVersions),
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
// A version dropped out. The current row flips status; any OTHER version is
|
|
118
|
+
// pruned from the connected set. A VersionPromoted (if any) follows and
|
|
119
|
+
// overwrites the display with the rolled-back version.
|
|
120
|
+
| VersionDisconnected(def) =>
|
|
121
|
+
Reventless.Projection.UpdateWithDefault(
|
|
122
|
+
id,
|
|
123
|
+
displayState(def, Disconnected, statusChange, []),
|
|
124
|
+
state =>
|
|
125
|
+
state.version == def.version
|
|
126
|
+
? {...state, status: Disconnected, statusChange}
|
|
127
|
+
: {...state, otherConnectedVersions: state.otherConnectedVersions->Util.without(def.version)},
|
|
128
|
+
)
|
|
129
|
+
| VersionDeactivated(def) =>
|
|
130
|
+
Reventless.Projection.UpdateWithDefault(
|
|
131
|
+
id,
|
|
132
|
+
displayState(def, Inactive, statusChange, []),
|
|
133
|
+
state =>
|
|
134
|
+
state.version == def.version
|
|
135
|
+
? {...state, status: Inactive, statusChange}
|
|
136
|
+
: {...state, otherConnectedVersions: state.otherConnectedVersions->Util.without(def.version)},
|
|
137
|
+
)
|
|
138
|
+
| VersionRetired(def) =>
|
|
139
|
+
Reventless.Projection.UpdateWithDefault(
|
|
140
|
+
id,
|
|
141
|
+
displayState(def, Retired, statusChange, []),
|
|
142
|
+
state =>
|
|
143
|
+
state.version == def.version
|
|
144
|
+
? {...state, status: Retired, statusChange}
|
|
145
|
+
: {...state, otherConnectedVersions: state.otherConnectedVersions->Util.without(def.version)},
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
module Mappings = Reventless.Projection.Mappings.Make(PluginsReadModelSpec)
|
|
153
|
+
|
|
154
|
+
let mappings: array<module(Mappings.Mapping)> = [module(PluginMapping)]
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
|
|
4
|
+
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
5
|
+
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
6
|
+
import * as Plugin$ReventlessCore from "../component/Plugin.res.mjs";
|
|
7
|
+
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
8
|
+
import * as PluginSpec$ReventlessCore from "./PluginSpec.res.mjs";
|
|
9
|
+
import * as PluginsReadModelSpec$ReventlessCore from "./PluginsReadModelSpec.res.mjs";
|
|
10
|
+
|
|
11
|
+
let moduleUrl = import.meta.url;
|
|
12
|
+
|
|
13
|
+
function extractExtensionPointNames(__x) {
|
|
14
|
+
return __x.map(extensionPoint => extensionPoint.name);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function extractExtensionNames(__x) {
|
|
18
|
+
return __x.map(extension => extension.extensionPointName);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function isConnected(status) {
|
|
22
|
+
return status === "Connected";
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function without(versions, v) {
|
|
26
|
+
return versions.filter(x => x !== v);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function withVersion(versions, v) {
|
|
30
|
+
if (versions.includes(v)) {
|
|
31
|
+
return versions;
|
|
32
|
+
} else {
|
|
33
|
+
return versions.concat([v]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function connectedVersions(state) {
|
|
38
|
+
if (isConnected(state.status)) {
|
|
39
|
+
return withVersion(state.otherConnectedVersions, state.version);
|
|
40
|
+
} else {
|
|
41
|
+
return state.otherConnectedVersions;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function highest(versions) {
|
|
46
|
+
return Stdlib_Array.reduce(versions, undefined, (acc, v) => {
|
|
47
|
+
if (acc !== undefined && Plugin$ReventlessCore.compareVersions(v, acc) <= 0) {
|
|
48
|
+
return acc;
|
|
49
|
+
} else {
|
|
50
|
+
return v;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
let Util = {
|
|
56
|
+
extractExtensionPointNames: extractExtensionPointNames,
|
|
57
|
+
extractExtensionNames: extractExtensionNames,
|
|
58
|
+
isConnected: isConnected,
|
|
59
|
+
without: without,
|
|
60
|
+
withVersion: withVersion,
|
|
61
|
+
connectedVersions: connectedVersions,
|
|
62
|
+
highest: highest
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
function displayState(def, status, statusChange, otherConnectedVersions) {
|
|
66
|
+
let base_name = def.name;
|
|
67
|
+
let base_version = def.version;
|
|
68
|
+
let base_eventCollector = def.eventCollector;
|
|
69
|
+
let base_extensionPoints = def.extensionPoints;
|
|
70
|
+
let base_extensionPointNames = def.extensionPoints.map(extensionPoint => extensionPoint.name);
|
|
71
|
+
let base_extensionNames = def.extensions.map(extension => extension.extensionPointName);
|
|
72
|
+
let base_extensions = def.extensions;
|
|
73
|
+
let base_apiSchemaFragment = def.apiSchemaFragment;
|
|
74
|
+
let base_uiFragments = def.uiFragments;
|
|
75
|
+
let base_structure = def.structure;
|
|
76
|
+
let base_dcbEventLog = def.dcbEventLog;
|
|
77
|
+
let base_otherConnectedVersions = without(otherConnectedVersions, def.version);
|
|
78
|
+
let base = {
|
|
79
|
+
name: base_name,
|
|
80
|
+
version: base_version,
|
|
81
|
+
eventCollector: base_eventCollector,
|
|
82
|
+
extensionPoints: base_extensionPoints,
|
|
83
|
+
extensionPointNames: base_extensionPointNames,
|
|
84
|
+
extensionNames: base_extensionNames,
|
|
85
|
+
extensions: base_extensions,
|
|
86
|
+
status: status,
|
|
87
|
+
statusChange: statusChange,
|
|
88
|
+
apiSchemaFragment: base_apiSchemaFragment,
|
|
89
|
+
uiFragments: base_uiFragments,
|
|
90
|
+
structure: base_structure,
|
|
91
|
+
dcbEventLog: base_dcbEventLog,
|
|
92
|
+
otherConnectedVersions: base_otherConnectedVersions
|
|
93
|
+
};
|
|
94
|
+
let target = def.apiTarget;
|
|
95
|
+
if (target === undefined) {
|
|
96
|
+
return base;
|
|
97
|
+
}
|
|
98
|
+
let newrecord = {...base};
|
|
99
|
+
newrecord.apiTarget = target;
|
|
100
|
+
return newrecord;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function project(param) {
|
|
104
|
+
let event = param.event;
|
|
105
|
+
let match = param.meta;
|
|
106
|
+
let id = param.id;
|
|
107
|
+
let statusChange_at = match.time;
|
|
108
|
+
let statusChange_by = Stdlib_Option.getOr(match.user, "");
|
|
109
|
+
let statusChange = {
|
|
110
|
+
at: statusChange_at,
|
|
111
|
+
by: statusChange_by
|
|
112
|
+
};
|
|
113
|
+
switch (event.TAG) {
|
|
114
|
+
case "VersionPromoted" :
|
|
115
|
+
let def = event._0;
|
|
116
|
+
return {
|
|
117
|
+
TAG: "UpdateWithDefault",
|
|
118
|
+
_0: id,
|
|
119
|
+
_1: displayState(def, "Connected", statusChange, []),
|
|
120
|
+
_2: state => displayState(def, "Connected", statusChange, state.otherConnectedVersions)
|
|
121
|
+
};
|
|
122
|
+
case "VersionDisconnected" :
|
|
123
|
+
let def$1 = event._0;
|
|
124
|
+
return {
|
|
125
|
+
TAG: "UpdateWithDefault",
|
|
126
|
+
_0: id,
|
|
127
|
+
_1: displayState(def$1, "Disconnected", statusChange, []),
|
|
128
|
+
_2: state => {
|
|
129
|
+
if (state.version === def$1.version) {
|
|
130
|
+
let newrecord = {...state};
|
|
131
|
+
newrecord.statusChange = statusChange;
|
|
132
|
+
newrecord.status = "Disconnected";
|
|
133
|
+
return newrecord;
|
|
134
|
+
}
|
|
135
|
+
let newrecord$1 = {...state};
|
|
136
|
+
newrecord$1.otherConnectedVersions = without(state.otherConnectedVersions, def$1.version);
|
|
137
|
+
return newrecord$1;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
case "VersionConnected" :
|
|
141
|
+
case "VersionActivated" :
|
|
142
|
+
break;
|
|
143
|
+
case "VersionDeactivated" :
|
|
144
|
+
let def$2 = event._0;
|
|
145
|
+
return {
|
|
146
|
+
TAG: "UpdateWithDefault",
|
|
147
|
+
_0: id,
|
|
148
|
+
_1: displayState(def$2, "Inactive", statusChange, []),
|
|
149
|
+
_2: state => {
|
|
150
|
+
if (state.version === def$2.version) {
|
|
151
|
+
let newrecord = {...state};
|
|
152
|
+
newrecord.statusChange = statusChange;
|
|
153
|
+
newrecord.status = "Inactive";
|
|
154
|
+
return newrecord;
|
|
155
|
+
}
|
|
156
|
+
let newrecord$1 = {...state};
|
|
157
|
+
newrecord$1.otherConnectedVersions = without(state.otherConnectedVersions, def$2.version);
|
|
158
|
+
return newrecord$1;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
case "VersionRetired" :
|
|
162
|
+
let def$3 = event._0;
|
|
163
|
+
return {
|
|
164
|
+
TAG: "UpdateWithDefault",
|
|
165
|
+
_0: id,
|
|
166
|
+
_1: displayState(def$3, "Retired", statusChange, []),
|
|
167
|
+
_2: state => {
|
|
168
|
+
if (state.version === def$3.version) {
|
|
169
|
+
let newrecord = {...state};
|
|
170
|
+
newrecord.statusChange = statusChange;
|
|
171
|
+
newrecord.status = "Retired";
|
|
172
|
+
return newrecord;
|
|
173
|
+
}
|
|
174
|
+
let newrecord$1 = {...state};
|
|
175
|
+
newrecord$1.otherConnectedVersions = without(state.otherConnectedVersions, def$3.version);
|
|
176
|
+
return newrecord$1;
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
default:
|
|
180
|
+
return "Ignore";
|
|
181
|
+
}
|
|
182
|
+
let def$4 = event._0;
|
|
183
|
+
return {
|
|
184
|
+
TAG: "UpdateWithDefault",
|
|
185
|
+
_0: id,
|
|
186
|
+
_1: displayState(def$4, "Connected", statusChange, []),
|
|
187
|
+
_2: state => {
|
|
188
|
+
let connectedNow = withVersion(connectedVersions(state), def$4.version);
|
|
189
|
+
let hc = highest(connectedNow);
|
|
190
|
+
if (hc !== undefined && hc === def$4.version) {
|
|
191
|
+
return displayState(def$4, "Connected", statusChange, connectedNow);
|
|
192
|
+
}
|
|
193
|
+
let newrecord = {...state};
|
|
194
|
+
newrecord.otherConnectedVersions = withVersion(state.otherConnectedVersions, def$4.version);
|
|
195
|
+
return newrecord;
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
let PluginMapping = Projection$Reventless.Mapping.Make({
|
|
201
|
+
Id: Id$Reventless.$$String,
|
|
202
|
+
name: PluginSpec$ReventlessCore.name,
|
|
203
|
+
eventSchema: PluginSpec$ReventlessCore.eventSchema
|
|
204
|
+
})({
|
|
205
|
+
Id: Id$Reventless.$$String,
|
|
206
|
+
name: PluginsReadModelSpec$ReventlessCore.name,
|
|
207
|
+
stateSchema: PluginsReadModelSpec$ReventlessCore.stateSchema,
|
|
208
|
+
subIdConfig: undefined
|
|
209
|
+
})({
|
|
210
|
+
project: project
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
let Mappings = Projection$Reventless.Mappings.Make({
|
|
214
|
+
Id: Id$Reventless.$$String,
|
|
215
|
+
name: PluginsReadModelSpec$ReventlessCore.name,
|
|
216
|
+
stateSchema: PluginsReadModelSpec$ReventlessCore.stateSchema,
|
|
217
|
+
subIdConfig: undefined
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
let mappings = [PluginMapping];
|
|
221
|
+
|
|
222
|
+
export {
|
|
223
|
+
moduleUrl,
|
|
224
|
+
Util,
|
|
225
|
+
displayState,
|
|
226
|
+
PluginMapping,
|
|
227
|
+
Mappings,
|
|
228
|
+
mappings,
|
|
229
|
+
}
|
|
230
|
+
/* moduleUrl Not a pure module */
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
@@reventless.spec("Plugins")
|
|
2
|
+
|
|
3
|
+
// Current view — one row per plugin **name**, holding the currently-active
|
|
4
|
+
// version's definition. Keyed by the aggregate id (= plugin name). The status
|
|
5
|
+
// here is the *current* version's status; "Superseded" is not represented (a
|
|
6
|
+
// superseded version is simply no longer the current row).
|
|
7
|
+
@schema
|
|
8
|
+
type status =
|
|
9
|
+
| Connected
|
|
10
|
+
| Disconnected
|
|
11
|
+
// Admin suspend (Deactivate).
|
|
12
|
+
| Inactive
|
|
13
|
+
// Manual admin retirement (archive) of the current version.
|
|
14
|
+
| Retired
|
|
15
|
+
|
|
16
|
+
@schema
|
|
17
|
+
type state = {
|
|
18
|
+
name: Reventless.Plugin.name,
|
|
19
|
+
version: Reventless.Plugin.version,
|
|
20
|
+
eventCollector: string,
|
|
21
|
+
extensionPoints: array<Reventless.Plugin.extensionPointDefinition>,
|
|
22
|
+
extensionPointNames: array<string>,
|
|
23
|
+
extensionNames: array<string>,
|
|
24
|
+
extensions: array<Reventless.Plugin.extensionDefinition>,
|
|
25
|
+
status: status,
|
|
26
|
+
statusChange: Message.statusChange,
|
|
27
|
+
apiSchemaFragment: @s.matches(Reventless.Plugin.apiSchemaFragmentOptionSchema) option<Reventless.Plugin.apiSchemaFragment>,
|
|
28
|
+
// API target for split-API schema routing. Absent/None means "Domain" (backward compat).
|
|
29
|
+
// "Platform" → excluded from DomainApi runtime schema stitching in updateApiSchema.
|
|
30
|
+
apiTarget?: string,
|
|
31
|
+
uiFragments: @s.matches(Reventless.Plugin.uiFragmentManifestOptionSchema) option<Reventless.Plugin.uiFragmentManifest>,
|
|
32
|
+
// Plugin structure (component metadata) — surfaced via Platform_ComponentDefinitions.
|
|
33
|
+
// None for older plugins whose protocol version did not carry the field.
|
|
34
|
+
structure: @s.matches(Reventless.Plugin.pluginStructureOptionSchema) option<Reventless.Plugin.pluginStructure>,
|
|
35
|
+
// DCB EventLog definition for plugins that bundle a DcbEventLog component.
|
|
36
|
+
// Admin's manageSubscriptions uses this to wire cross-plugin SNS subscriptions
|
|
37
|
+
// from this plugin's DCB topic → peer EventCollectors (and vice-versa). None
|
|
38
|
+
// for pure-aggregate plugins or for plugins persisted before Phase 4.
|
|
39
|
+
dcbEventLog: @s.matches(Reventless.Plugin.dcbEventLogOptionSchema) option<Reventless.Plugin.dcbEventLogDefinition>,
|
|
40
|
+
// Other versions of this name that are currently **Connected** — excludes this
|
|
41
|
+
// row's own `version` (whose status is the `status` field above). Lets the
|
|
42
|
+
// projection recompute which version is current (highest Connected) during a
|
|
43
|
+
// deploy overlap, and is pruned the moment a version stops being Connected. So
|
|
44
|
+
// it is empty in steady state and holds at most the one-or-two concurrently-live
|
|
45
|
+
// versions of a rolling deploy — never the full history.
|
|
46
|
+
otherConnectedVersions: array<Reventless.Plugin.version>,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type queryResult = {
|
|
50
|
+
id: string,
|
|
51
|
+
name: Reventless.Plugin.name,
|
|
52
|
+
version: Reventless.Plugin.version,
|
|
53
|
+
eventCollector: string,
|
|
54
|
+
extensionPoints: array<Reventless.Plugin.extensionPointDefinition>,
|
|
55
|
+
extensionPointNames: array<string>,
|
|
56
|
+
extensionNames: array<string>,
|
|
57
|
+
extensions: array<Reventless.Plugin.extensionDefinition>,
|
|
58
|
+
status: status,
|
|
59
|
+
apiSchemaFragment: option<Reventless.Plugin.apiSchemaFragment>,
|
|
60
|
+
apiTarget?: string,
|
|
61
|
+
uiFragments: option<Reventless.Plugin.uiFragmentManifest>,
|
|
62
|
+
structure: option<Reventless.Plugin.pluginStructure>,
|
|
63
|
+
dcbEventLog: option<Reventless.Plugin.dcbEventLogDefinition>,
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|