@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.
Files changed (502) hide show
  1. package/CHANGELOG.md +1355 -0
  2. package/LICENSE +202 -0
  3. package/README.md +173 -0
  4. package/__mocks__/emptyModule.js +2 -0
  5. package/jest.setup.cjs +5 -0
  6. package/package.json +73 -0
  7. package/rescript.json +41 -0
  8. package/scripts/deploy.sh +6 -0
  9. package/scripts/post-deploy.sh +5 -0
  10. package/scripts/pre-deploy.sh +18 -0
  11. package/scripts/pulumi-up.sh +30 -0
  12. package/src/Behavior.res +18 -0
  13. package/src/Behavior.res.mjs +2 -0
  14. package/src/ComponentType.res +125 -0
  15. package/src/ComponentType.res.mjs +199 -0
  16. package/src/Env.res +5 -0
  17. package/src/Env.res.mjs +2 -0
  18. package/src/Mapper.res +36 -0
  19. package/src/Mapper.res.mjs +18 -0
  20. package/src/Mapper1toN.res +107 -0
  21. package/src/Mapper1toN.res.mjs +2 -0
  22. package/src/MapperNto1.res +78 -0
  23. package/src/MapperNto1.res.mjs +35 -0
  24. package/src/Message.res +353 -0
  25. package/src/Message.res.mjs +418 -0
  26. package/src/PluginRuntimeOperations.res +15 -0
  27. package/src/PluginRuntimeOperations.res.mjs +2 -0
  28. package/src/Projection.res +447 -0
  29. package/src/Projection.res.mjs +712 -0
  30. package/src/ProjectionMapper.res +44 -0
  31. package/src/ProjectionMapper.res.mjs +51 -0
  32. package/src/RequestContext.res +42 -0
  33. package/src/RequestContext.res.mjs +39 -0
  34. package/src/adapter/Adapter.res +178 -0
  35. package/src/adapter/Adapter.res.mjs +201 -0
  36. package/src/adapter/AdapterDeploytime.res +56 -0
  37. package/src/adapter/AdapterDeploytime.res.mjs +42 -0
  38. package/src/adapter/Auth/Auth_Adapter.res +42 -0
  39. package/src/adapter/Auth/Auth_Adapter.res.mjs +2 -0
  40. package/src/adapter/Runtime/AggregateRuntime_Builder.res +22 -0
  41. package/src/adapter/Runtime/AggregateRuntime_Builder.res.mjs +2 -0
  42. package/src/adapter/Runtime/AggregateRuntime_Builder_Common.res +259 -0
  43. package/src/adapter/Runtime/AggregateRuntime_Builder_Common.res.mjs +190 -0
  44. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +92 -0
  45. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +59 -0
  46. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +52 -0
  47. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +49 -0
  48. package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +64 -0
  49. package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +59 -0
  50. package/src/adapter/Runtime/EventCollectorRuntime_Builder.res +11 -0
  51. package/src/adapter/Runtime/EventCollectorRuntime_Builder.res.mjs +2 -0
  52. package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +46 -0
  53. package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs +40 -0
  54. package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +204 -0
  55. package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs +150 -0
  56. package/src/adapter/Runtime/ExtensionPointRuntime_Builder.res +18 -0
  57. package/src/adapter/Runtime/ExtensionPointRuntime_Builder.res.mjs +2 -0
  58. package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +36 -0
  59. package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res.mjs +28 -0
  60. package/src/adapter/Runtime/PluginRuntime_Builder.res +23 -0
  61. package/src/adapter/Runtime/PluginRuntime_Builder.res.mjs +2 -0
  62. package/src/adapter/Runtime/PluginRuntime_Builder_Micro.res +97 -0
  63. package/src/adapter/Runtime/PluginRuntime_Builder_Micro.res.mjs +62 -0
  64. package/src/adapter/Runtime/PluginRuntime_Builder_Single.res +89 -0
  65. package/src/adapter/Runtime/PluginRuntime_Builder_Single.res.mjs +62 -0
  66. package/src/adapter/Runtime/Runtime.res +106 -0
  67. package/src/adapter/Runtime/Runtime.res.mjs +22 -0
  68. package/src/adapter/Runtime/TaskRuntime_Builder.res +32 -0
  69. package/src/adapter/Runtime/TaskRuntime_Builder.res.mjs +2 -0
  70. package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +42 -0
  71. package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res.mjs +29 -0
  72. package/src/admin/AdminApi.res +88 -0
  73. package/src/admin/AdminApi.res.mjs +89 -0
  74. package/src/admin/Admin_Callback.res +27 -0
  75. package/src/admin/Admin_Callback.res.mjs +20 -0
  76. package/src/admin/Platform_Admin.res +402 -0
  77. package/src/admin/Platform_Admin.res.mjs +250 -0
  78. package/src/admin/Platform_Admin_Structure.res +125 -0
  79. package/src/admin/Platform_Admin_Structure.res.mjs +182 -0
  80. package/src/admin/Platform_ComponentDefinitionsApi.res +160 -0
  81. package/src/admin/Platform_ComponentDefinitionsApi.res.mjs +299 -0
  82. package/src/admin/Platform_UIFragmentsApi.res +55 -0
  83. package/src/admin/Platform_UIFragmentsApi.res.mjs +124 -0
  84. package/src/admin/UIFragmentRegistryProjection.res +43 -0
  85. package/src/admin/UIFragmentRegistryProjection.res.mjs +81 -0
  86. package/src/admin/UIFragmentRegistryReadModelSpec.res +13 -0
  87. package/src/admin/UIFragmentRegistryReadModelSpec.res.mjs +40 -0
  88. package/src/components/Aggregate/Aggregate.res +96 -0
  89. package/src/components/Aggregate/Aggregate.res.mjs +82 -0
  90. package/src/components/Aggregate/Aggregate_Builder.res +175 -0
  91. package/src/components/Aggregate/Aggregate_Builder.res.mjs +119 -0
  92. package/src/components/Aggregate/Aggregate_Callback.res +273 -0
  93. package/src/components/Aggregate/Aggregate_Callback.res.mjs +208 -0
  94. package/src/components/Api/ApiAllowedStatesHelpers.res +19 -0
  95. package/src/components/Api/ApiAllowedStatesHelpers.res.mjs +16 -0
  96. package/src/components/Api/ApiNoApiHelpers.res +13 -0
  97. package/src/components/Api/ApiNoApiHelpers.res.mjs +29 -0
  98. package/src/components/Api/Api_Builder.res +40 -0
  99. package/src/components/Api/Api_Builder.res.mjs +33 -0
  100. package/src/components/Api/Api_Naming.res +92 -0
  101. package/src/components/Api/Api_Naming.res.mjs +103 -0
  102. package/src/components/Api/Api_Operations.res +13 -0
  103. package/src/components/Api/Api_Operations.res.mjs +12 -0
  104. package/src/components/Api/GraphQL_FragmentGenerator.res +612 -0
  105. package/src/components/Api/GraphQL_FragmentGenerator.res.mjs +503 -0
  106. package/src/components/Api/GraphQL_SchemaInspector.res +156 -0
  107. package/src/components/Api/GraphQL_SchemaInspector.res.mjs +123 -0
  108. package/src/components/Api/GraphQL_Stitcher.res +271 -0
  109. package/src/components/Api/GraphQL_Stitcher.res.mjs +229 -0
  110. package/src/components/Api/MCP_SchemaGenerator.res +185 -0
  111. package/src/components/Api/MCP_SchemaGenerator.res.mjs +146 -0
  112. package/src/components/Api/SchemaType.res +126 -0
  113. package/src/components/Api/SchemaType.res.mjs +143 -0
  114. package/src/components/Api/SuryToJsonSchema.res +142 -0
  115. package/src/components/Api/SuryToJsonSchema.res.mjs +210 -0
  116. package/src/components/AutomationSlice/AutomationSlice.res +39 -0
  117. package/src/components/AutomationSlice/AutomationSlice.res.mjs +24 -0
  118. package/src/components/AutomationSlice/AutomationSlice_Builder.res +207 -0
  119. package/src/components/AutomationSlice/AutomationSlice_Builder.res.mjs +123 -0
  120. package/src/components/AutomationSlice/AutomationSlice_Callback.res +212 -0
  121. package/src/components/AutomationSlice/AutomationSlice_Callback.res.mjs +189 -0
  122. package/src/components/Builder_Helpers.res +196 -0
  123. package/src/components/Builder_Helpers.res.mjs +142 -0
  124. package/src/components/Cloner.res +84 -0
  125. package/src/components/Cloner.res.mjs +88 -0
  126. package/src/components/CommandGenerator/CommandGenerator.res +54 -0
  127. package/src/components/CommandGenerator/CommandGenerator.res.mjs +15 -0
  128. package/src/components/CommandGenerator/CommandGenerator_Adapter.res +22 -0
  129. package/src/components/CommandGenerator/CommandGenerator_Adapter.res.mjs +2 -0
  130. package/src/components/CommandGenerator/CommandGenerator_Builder.res +70 -0
  131. package/src/components/CommandGenerator/CommandGenerator_Builder.res.mjs +68 -0
  132. package/src/components/CommandGenerator/CommandGenerator_Callback.res +191 -0
  133. package/src/components/CommandGenerator/CommandGenerator_Callback.res.mjs +161 -0
  134. package/src/components/CommandTopic/CommandTopic.res +79 -0
  135. package/src/components/CommandTopic/CommandTopic.res.mjs +68 -0
  136. package/src/components/CommandTopic/CommandTopic_Adapter.res +53 -0
  137. package/src/components/CommandTopic/CommandTopic_Adapter.res.mjs +2 -0
  138. package/src/components/CommandTopic/CommandTopic_Builder.res +146 -0
  139. package/src/components/CommandTopic/CommandTopic_Builder.res.mjs +127 -0
  140. package/src/components/CommandTopic/CommandTopic_Callback.res +38 -0
  141. package/src/components/CommandTopic/CommandTopic_Callback.res.mjs +49 -0
  142. package/src/components/CommandTopic/CommandTopic_Helpers.res +176 -0
  143. package/src/components/CommandTopic/CommandTopic_Helpers.res.mjs +195 -0
  144. package/src/components/CommandTopic/CommandTopic_Operations.res +40 -0
  145. package/src/components/CommandTopic/CommandTopic_Operations.res.mjs +49 -0
  146. package/src/components/Component.res +1 -0
  147. package/src/components/Component.res.mjs +34 -0
  148. package/src/components/Component.resi +1 -0
  149. package/src/components/Counter/Counter.res +47 -0
  150. package/src/components/Counter/Counter.res.mjs +55 -0
  151. package/src/components/Counter/Counter_Adapter.res +18 -0
  152. package/src/components/Counter/Counter_Adapter.res.mjs +2 -0
  153. package/src/components/Counter/Counter_Builder.res +142 -0
  154. package/src/components/Counter/Counter_Builder.res.mjs +112 -0
  155. package/src/components/Counter/Counter_Callback.res +94 -0
  156. package/src/components/Counter/Counter_Callback.res.mjs +70 -0
  157. package/src/components/Counter/Counter_Operations.res +70 -0
  158. package/src/components/Counter/Counter_Operations.res.mjs +91 -0
  159. package/src/components/Dcb/Dcb_Builder.res +971 -0
  160. package/src/components/Dcb/Dcb_Builder.res.mjs +572 -0
  161. package/src/components/DcbEventLog/DcbEventLog.res +43 -0
  162. package/src/components/DcbEventLog/DcbEventLog.res.mjs +24 -0
  163. package/src/components/DcbEventLog/DcbEventLog_Adapter.res +57 -0
  164. package/src/components/DcbEventLog/DcbEventLog_Adapter.res.mjs +2 -0
  165. package/src/components/DcbEventLog/DcbEventLog_Builder.res +72 -0
  166. package/src/components/DcbEventLog/DcbEventLog_Builder.res.mjs +67 -0
  167. package/src/components/DcbEventLog/DcbEventLog_Operations.res +160 -0
  168. package/src/components/DcbEventLog/DcbEventLog_Operations.res.mjs +121 -0
  169. package/src/components/EventCollector/EventCollector.res +34 -0
  170. package/src/components/EventCollector/EventCollector.res.mjs +9 -0
  171. package/src/components/EventCollector/EventCollector_Adapter.res +45 -0
  172. package/src/components/EventCollector/EventCollector_Adapter.res.mjs +2 -0
  173. package/src/components/EventCollector/EventCollector_Builder.res +91 -0
  174. package/src/components/EventCollector/EventCollector_Builder.res.mjs +64 -0
  175. package/src/components/EventLog/EventLog.res +27 -0
  176. package/src/components/EventLog/EventLog.res.mjs +13 -0
  177. package/src/components/EventLog/EventLog_Adapter.res +15 -0
  178. package/src/components/EventLog/EventLog_Adapter.res.mjs +2 -0
  179. package/src/components/EventLog/EventLog_Builder.res +65 -0
  180. package/src/components/EventLog/EventLog_Builder.res.mjs +57 -0
  181. package/src/components/EventLog/EventLog_Operations.res +209 -0
  182. package/src/components/EventLog/EventLog_Operations.res.mjs +202 -0
  183. package/src/components/EventLog/EventPublish_Callback.res +29 -0
  184. package/src/components/EventLog/EventPublish_Callback.res.mjs +32 -0
  185. package/src/components/EventMapper/EventMapper.res +72 -0
  186. package/src/components/EventMapper/EventMapper.res.mjs +54 -0
  187. package/src/components/EventMapper/EventMapper_Builder.res +128 -0
  188. package/src/components/EventMapper/EventMapper_Builder.res.mjs +81 -0
  189. package/src/components/EventMapper/EventMapper_Callback.res +323 -0
  190. package/src/components/EventMapper/EventMapper_Callback.res.mjs +231 -0
  191. package/src/components/EventTopic/EventTopic.res +69 -0
  192. package/src/components/EventTopic/EventTopic.res.mjs +50 -0
  193. package/src/components/EventTopic/EventTopic_Adapter.res +15 -0
  194. package/src/components/EventTopic/EventTopic_Adapter.res.mjs +2 -0
  195. package/src/components/EventTopic/EventTopic_Builder.res +53 -0
  196. package/src/components/EventTopic/EventTopic_Builder.res.mjs +46 -0
  197. package/src/components/EventTopic/EventTopic_Operations.res +37 -0
  198. package/src/components/EventTopic/EventTopic_Operations.res.mjs +39 -0
  199. package/src/components/Extension/Extension.res +32 -0
  200. package/src/components/Extension/Extension.res.mjs +9 -0
  201. package/src/components/Extension/Extension_Builder.res +82 -0
  202. package/src/components/Extension/Extension_Builder.res.mjs +57 -0
  203. package/src/components/Extension/Extension_Operations.res +203 -0
  204. package/src/components/Extension/Extension_Operations.res.mjs +154 -0
  205. package/src/components/ExtensionPoint/ExtensionPoint.res +49 -0
  206. package/src/components/ExtensionPoint/ExtensionPoint.res.mjs +25 -0
  207. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res +163 -0
  208. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res.mjs +113 -0
  209. package/src/components/ExtensionPoint/ExtensionPoint_Callback.res +110 -0
  210. package/src/components/ExtensionPoint/ExtensionPoint_Callback.res.mjs +76 -0
  211. package/src/components/ExtensionPoint/ExtensionPoint_Operations.res +146 -0
  212. package/src/components/ExtensionPoint/ExtensionPoint_Operations.res.mjs +122 -0
  213. package/src/components/Heartbeat/Heartbeat.res +25 -0
  214. package/src/components/Heartbeat/Heartbeat.res.mjs +9 -0
  215. package/src/components/Heartbeat/Heartbeat_Adapter.res +14 -0
  216. package/src/components/Heartbeat/Heartbeat_Adapter.res.mjs +2 -0
  217. package/src/components/Heartbeat/Heartbeat_Builder.res +43 -0
  218. package/src/components/Heartbeat/Heartbeat_Builder.res.mjs +47 -0
  219. package/src/components/Heartbeat/Heartbeat_Callback.res +32 -0
  220. package/src/components/Heartbeat/Heartbeat_Callback.res.mjs +40 -0
  221. package/src/components/InboundTranslationSlice/InboundTranslationSlice.res +34 -0
  222. package/src/components/InboundTranslationSlice/InboundTranslationSlice.res.mjs +24 -0
  223. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res +98 -0
  224. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res.mjs +87 -0
  225. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res +191 -0
  226. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res.mjs +175 -0
  227. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice.res +35 -0
  228. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice.res.mjs +24 -0
  229. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res +181 -0
  230. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res.mjs +137 -0
  231. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res +173 -0
  232. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res.mjs +173 -0
  233. package/src/components/QueryDb/QueryDb.res +74 -0
  234. package/src/components/QueryDb/QueryDb.res.mjs +37 -0
  235. package/src/components/QueryDb/QueryDb_Adapter.res +78 -0
  236. package/src/components/QueryDb/QueryDb_Adapter.res.mjs +17 -0
  237. package/src/components/QueryDb/QueryDb_Builder.res +76 -0
  238. package/src/components/QueryDb/QueryDb_Builder.res.mjs +53 -0
  239. package/src/components/QueryDb/QueryDb_Callback.res +18 -0
  240. package/src/components/QueryDb/QueryDb_Callback.res.mjs +21 -0
  241. package/src/components/QueryDb/QueryDb_Operations.res +116 -0
  242. package/src/components/QueryDb/QueryDb_Operations.res.mjs +165 -0
  243. package/src/components/ReadModel/ReadModel.res +42 -0
  244. package/src/components/ReadModel/ReadModel.res.mjs +27 -0
  245. package/src/components/ReadModel/ReadModel_Builder.res +155 -0
  246. package/src/components/ReadModel/ReadModel_Builder.res.mjs +101 -0
  247. package/src/components/ReadModel/ReadModel_Callback.res +48 -0
  248. package/src/components/ReadModel/ReadModel_Callback.res.mjs +48 -0
  249. package/src/components/Scheduler/Scheduler.res +13 -0
  250. package/src/components/Scheduler/Scheduler.res.mjs +9 -0
  251. package/src/components/Scheduler/Scheduler_Adapter.res +13 -0
  252. package/src/components/Scheduler/Scheduler_Adapter.res.mjs +2 -0
  253. package/src/components/Scheduler/Scheduler_Builder.res +19 -0
  254. package/src/components/Scheduler/Scheduler_Builder.res.mjs +29 -0
  255. package/src/components/SideEffectHandler/SideEffectHandler.res +30 -0
  256. package/src/components/SideEffectHandler/SideEffectHandler.res.mjs +12 -0
  257. package/src/components/SideEffectHandler/SideEffectHandler_Builder.res +117 -0
  258. package/src/components/SideEffectHandler/SideEffectHandler_Builder.res.mjs +64 -0
  259. package/src/components/SideEffectHandler/SideEffectHandler_Callback.res +116 -0
  260. package/src/components/SideEffectHandler/SideEffectHandler_Callback.res.mjs +95 -0
  261. package/src/components/StateChangeSlice/StateChangeSlice.res +38 -0
  262. package/src/components/StateChangeSlice/StateChangeSlice.res.mjs +17 -0
  263. package/src/components/StateChangeSlice/StateChangeSlice_Builder.res +91 -0
  264. package/src/components/StateChangeSlice/StateChangeSlice_Builder.res.mjs +81 -0
  265. package/src/components/StateChangeSlice/StateChangeSlice_Callback.res +412 -0
  266. package/src/components/StateChangeSlice/StateChangeSlice_Callback.res.mjs +299 -0
  267. package/src/components/StateTopic.res +91 -0
  268. package/src/components/StateTopic.res.mjs +41 -0
  269. package/src/components/StateViewSlice/StateViewSlice.res +33 -0
  270. package/src/components/StateViewSlice/StateViewSlice.res.mjs +24 -0
  271. package/src/components/StateViewSlice/StateViewSlice_Builder.res +176 -0
  272. package/src/components/StateViewSlice/StateViewSlice_Builder.res.mjs +134 -0
  273. package/src/components/StateViewSlice/StateViewSlice_Callback.res +64 -0
  274. package/src/components/StateViewSlice/StateViewSlice_Callback.res.mjs +56 -0
  275. package/src/components/Task/Task.res +81 -0
  276. package/src/components/Task/Task.res.mjs +51 -0
  277. package/src/components/Task/Task_Adapter.res +31 -0
  278. package/src/components/Task/Task_Adapter.res.mjs +2 -0
  279. package/src/components/Task/Task_Builder.res +223 -0
  280. package/src/components/Task/Task_Builder.res.mjs +115 -0
  281. package/src/plugin/api/PluginBaseFragment.res +104 -0
  282. package/src/plugin/api/PluginBaseFragment.res.mjs +64 -0
  283. package/src/plugin/component/Plugin.res +100 -0
  284. package/src/plugin/component/Plugin.res.mjs +61 -0
  285. package/src/plugin/component/Plugin_Builder.res +1017 -0
  286. package/src/plugin/component/Plugin_Builder.res.mjs +608 -0
  287. package/src/plugin/component/Plugin_BuiltHook.res +141 -0
  288. package/src/plugin/component/Plugin_BuiltHook.res.mjs +39 -0
  289. package/src/plugin/component/Plugin_Callback.res +98 -0
  290. package/src/plugin/component/Plugin_Callback.res.mjs +55 -0
  291. package/src/plugin/component/Plugin_Helpers.res +1730 -0
  292. package/src/plugin/component/Plugin_Helpers.res.mjs +1010 -0
  293. package/src/plugin/component/Plugin_ResolverError.res +27 -0
  294. package/src/plugin/component/Plugin_ResolverError.res.mjs +21 -0
  295. package/src/plugin/component/Plugin_Structure.res +570 -0
  296. package/src/plugin/component/Plugin_Structure.res.mjs +458 -0
  297. package/src/plugin/component/Plugin_SubscriptionSchema.res +103 -0
  298. package/src/plugin/component/Plugin_SubscriptionSchema.res.mjs +71 -0
  299. package/src/plugin/component/SchemaWalker.res +164 -0
  300. package/src/plugin/component/SchemaWalker.res.mjs +183 -0
  301. package/src/plugin/connect/PluginConnectExtension_Builder.res +14 -0
  302. package/src/plugin/connect/PluginConnectExtension_Builder.res.mjs +36 -0
  303. package/src/plugin/connect/PluginConnectExtension_Mapping.res +76 -0
  304. package/src/plugin/connect/PluginConnectExtension_Mapping.res.mjs +89 -0
  305. package/src/plugin/connect/PluginExtensionPoint_Builder.res +39 -0
  306. package/src/plugin/connect/PluginExtensionPoint_Builder.res.mjs +33 -0
  307. package/src/plugin/connect/PluginExtensionPoint_Plugin.res +231 -0
  308. package/src/plugin/connect/PluginExtensionPoint_Plugin.res.mjs +353 -0
  309. package/src/plugin/lifecycle/PluginBehavior.res +250 -0
  310. package/src/plugin/lifecycle/PluginBehavior.res.mjs +391 -0
  311. package/src/plugin/lifecycle/PluginSpec.res +84 -0
  312. package/src/plugin/lifecycle/PluginSpec.res.mjs +148 -0
  313. package/src/plugin/lifecycle/PluginsProjection.res +154 -0
  314. package/src/plugin/lifecycle/PluginsProjection.res.mjs +230 -0
  315. package/src/plugin/lifecycle/PluginsReadModelSpec.res +66 -0
  316. package/src/plugin/lifecycle/PluginsReadModelSpec.res.mjs +58 -0
  317. package/src/util/AWS.res +7 -0
  318. package/src/util/AWS.res.mjs +20 -0
  319. package/src/util/CSV.res +27 -0
  320. package/src/util/CSV.res.mjs +56 -0
  321. package/src/util/CommandPublisher.res +133 -0
  322. package/src/util/CommandPublisher.res.mjs +161 -0
  323. package/src/util/CsvStream.res +39 -0
  324. package/src/util/CsvStream.res.mjs +42 -0
  325. package/src/util/EffectLogger.res +178 -0
  326. package/src/util/EffectLogger.res.mjs +171 -0
  327. package/src/util/FTP.res +69 -0
  328. package/src/util/FTP.res.mjs +101 -0
  329. package/src/util/FTPHandler.res +142 -0
  330. package/src/util/FTPHandler.res.mjs +136 -0
  331. package/src/util/Hash.res +1 -0
  332. package/src/util/Hash.res.mjs +10 -0
  333. package/src/util/Interstack.res +74 -0
  334. package/src/util/Interstack.res.mjs +126 -0
  335. package/src/util/Interstack.resi +25 -0
  336. package/src/util/LogFormat.res +222 -0
  337. package/src/util/LogFormat.res.mjs +257 -0
  338. package/src/util/Logger.res +196 -0
  339. package/src/util/Logger.res.mjs +238 -0
  340. package/src/util/Lru.res +51 -0
  341. package/src/util/Lru.res.mjs +59 -0
  342. package/src/util/Lru.resi +32 -0
  343. package/src/util/Metrics.res +32 -0
  344. package/src/util/Metrics.res.mjs +42 -0
  345. package/src/util/OutputFailsafeDeploytime.res +16 -0
  346. package/src/util/OutputFailsafeDeploytime.res.mjs +20 -0
  347. package/src/util/OutputFailsafeRuntime.res +6 -0
  348. package/src/util/OutputFailsafeRuntime.res.mjs +15 -0
  349. package/src/util/OutputLogger.res +9 -0
  350. package/src/util/OutputLogger.res.mjs +19 -0
  351. package/src/util/ResourceQuery.res +14 -0
  352. package/src/util/ResourceQuery.res.mjs +17 -0
  353. package/src/util/ResourceQueryRuntime.res +17 -0
  354. package/src/util/ResourceQueryRuntime.res.mjs +18 -0
  355. package/src/util/ScheduleOps.res +124 -0
  356. package/src/util/ScheduleOps.res.mjs +132 -0
  357. package/src/util/Util.res +12 -0
  358. package/src/util/Util.res.mjs +42 -0
  359. package/src/util/Util_Adapter.res +97 -0
  360. package/src/util/Util_Adapter.res.mjs +82 -0
  361. package/src/util/Util_AdapterRuntime.res +39 -0
  362. package/src/util/Util_AdapterRuntime.res.mjs +42 -0
  363. package/src/util/Util_Array.res +2 -0
  364. package/src/util/Util_Array.res.mjs +12 -0
  365. package/src/util/Util_Error.res +16 -0
  366. package/src/util/Util_Error.res.mjs +19 -0
  367. package/src/util/Util_Promise.res +67 -0
  368. package/src/util/Util_Promise.res.mjs +105 -0
  369. package/src/util/Util_Pulumi.res +35 -0
  370. package/src/util/Util_Pulumi.res.mjs +55 -0
  371. package/src/util/Util_Pulumi.resi +21 -0
  372. package/src/util/Util_QueryDb.res +14 -0
  373. package/src/util/Util_QueryDb.res.mjs +21 -0
  374. package/src/util/Util_QueryDbRuntime.res +11 -0
  375. package/src/util/Util_QueryDbRuntime.res.mjs +19 -0
  376. package/src/util/Util_ReadModel.res +2 -0
  377. package/src/util/Util_ReadModel.res.mjs +10 -0
  378. package/src/util/Util_StackRefs.res +24 -0
  379. package/src/util/Util_StackRefs.res.mjs +39 -0
  380. package/src/util/Validation.res +75 -0
  381. package/src/util/Validation.res.mjs +181 -0
  382. package/tests/.gitkeep +0 -0
  383. package/tests/IdentityTest.res +155 -0
  384. package/tests/IdentityTest.res.mjs +174 -0
  385. package/tests/admin/Platform_ComponentDefinitionsApiTest.res +237 -0
  386. package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +298 -0
  387. package/tests/admin/Platform_UIFragmentsApiTest.res +96 -0
  388. package/tests/admin/Platform_UIFragmentsApiTest.res.mjs +101 -0
  389. package/tests/aggregate/AggregateCallbackTest.res +81 -0
  390. package/tests/aggregate/AggregateCallbackTest.res.mjs +140 -0
  391. package/tests/aggregate/AggregateCausationTest.res +49 -0
  392. package/tests/aggregate/AggregateCausationTest.res.mjs +44 -0
  393. package/tests/aggregate/AggregateConflictTest.res +212 -0
  394. package/tests/aggregate/AggregateConflictTest.res.mjs +363 -0
  395. package/tests/aggregate/AggregateFixtures.res +177 -0
  396. package/tests/aggregate/AggregateFixtures.res.mjs +285 -0
  397. package/tests/aggregate/AggregateRejectionTest.res +139 -0
  398. package/tests/aggregate/AggregateRejectionTest.res.mjs +163 -0
  399. package/tests/api/ApiNoApiTest.res +62 -0
  400. package/tests/api/ApiNoApiTest.res.mjs +90 -0
  401. package/tests/api/GraphQL_StitcherTest.res +107 -0
  402. package/tests/api/GraphQL_StitcherTest.res.mjs +99 -0
  403. package/tests/api/SimpleTest.res +7 -0
  404. package/tests/api/SimpleTest.res.mjs +10 -0
  405. package/tests/api/SuryToJsonSchemaTest.res +405 -0
  406. package/tests/api/SuryToJsonSchemaTest.res.mjs +623 -0
  407. package/tests/commandgenerator/CommandGeneratorCallbackTest.res +128 -0
  408. package/tests/commandgenerator/CommandGeneratorCallbackTest.res.mjs +160 -0
  409. package/tests/commandgenerator/CommandGeneratorFixtures.res +139 -0
  410. package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +197 -0
  411. package/tests/commandtopic/CommandTopicCallbackFixtures.res +87 -0
  412. package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +152 -0
  413. package/tests/commandtopic/CommandTopicCallbackTest.res +66 -0
  414. package/tests/commandtopic/CommandTopicCallbackTest.res.mjs +106 -0
  415. package/tests/commandtopic/CommandTopicHelpersRejectionTest.res +83 -0
  416. package/tests/commandtopic/CommandTopicHelpersRejectionTest.res.mjs +109 -0
  417. package/tests/counter/CounterCallbackTest.res +83 -0
  418. package/tests/counter/CounterCallbackTest.res.mjs +140 -0
  419. package/tests/counter/CounterFixtures.res +57 -0
  420. package/tests/counter/CounterFixtures.res.mjs +67 -0
  421. package/tests/dcb/DcbDecodeTest.res +122 -0
  422. package/tests/dcb/DcbDecodeTest.res.mjs +194 -0
  423. package/tests/dcb/DcbEventLogOperationsTest.res +195 -0
  424. package/tests/dcb/DcbEventLogOperationsTest.res.mjs +268 -0
  425. package/tests/dcb/DcbFixtures.res +422 -0
  426. package/tests/dcb/DcbFixtures.res.mjs +534 -0
  427. package/tests/dcb/DcbScopeInferenceTest.res +242 -0
  428. package/tests/dcb/DcbScopeInferenceTest.res.mjs +480 -0
  429. package/tests/dcb/DcbStateChangeSliceTest.res +362 -0
  430. package/tests/dcb/DcbStateChangeSliceTest.res.mjs +546 -0
  431. package/tests/dcb/DcbTagTest.res +978 -0
  432. package/tests/dcb/DcbTagTest.res.mjs +867 -0
  433. package/tests/dcb/DcbValidationTest.res +349 -0
  434. package/tests/dcb/DcbValidationTest.res.mjs +476 -0
  435. package/tests/eventlog/EventLogFixtures.res +113 -0
  436. package/tests/eventlog/EventLogFixtures.res.mjs +166 -0
  437. package/tests/eventlog/EventLogOperationsTest.res +96 -0
  438. package/tests/eventlog/EventLogOperationsTest.res.mjs +192 -0
  439. package/tests/eventlog/EventLogRetryTest.res +121 -0
  440. package/tests/eventlog/EventLogRetryTest.res.mjs +171 -0
  441. package/tests/eventmapper/EventMapperCallbackTest.res +134 -0
  442. package/tests/eventmapper/EventMapperCallbackTest.res.mjs +141 -0
  443. package/tests/eventmapper/EventMapperFixtures.res +255 -0
  444. package/tests/eventmapper/EventMapperFixtures.res.mjs +440 -0
  445. package/tests/eventmapper/EventMapperTest.res +53 -0
  446. package/tests/eventmapper/EventMapperTest.res.mjs +83 -0
  447. package/tests/eventtopic/EventTopicFixtures.res +36 -0
  448. package/tests/eventtopic/EventTopicFixtures.res.mjs +65 -0
  449. package/tests/eventtopic/EventTopicOperationsTest.res +48 -0
  450. package/tests/eventtopic/EventTopicOperationsTest.res.mjs +71 -0
  451. package/tests/extensionpoint/ExtensionPointCallbackTest.res +84 -0
  452. package/tests/extensionpoint/ExtensionPointCallbackTest.res.mjs +94 -0
  453. package/tests/extensionpoint/ExtensionPointFixtures.res +173 -0
  454. package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +205 -0
  455. package/tests/extensionpoint/ExtensionPointOperationsTest.res +261 -0
  456. package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +304 -0
  457. package/tests/ftp/FTPTest.res +64 -0
  458. package/tests/ftp/FTPTest.res.mjs +88 -0
  459. package/tests/logger/LogFormatTest.res +348 -0
  460. package/tests/logger/LogFormatTest.res.mjs +309 -0
  461. package/tests/message/MessageTest.res +95 -0
  462. package/tests/message/MessageTest.res.mjs +93 -0
  463. package/tests/message/MetaEnvelopeTest.res +200 -0
  464. package/tests/message/MetaEnvelopeTest.res.mjs +188 -0
  465. package/tests/plugin/ManifestVisibilityTest.res +137 -0
  466. package/tests/plugin/ManifestVisibilityTest.res.mjs +205 -0
  467. package/tests/plugin/PluginSpecExperiment.res +13 -0
  468. package/tests/plugin/PluginSpecExperiment.res.mjs +31 -0
  469. package/tests/plugin/PluginStructureTest.res +298 -0
  470. package/tests/plugin/PluginStructureTest.res.mjs +388 -0
  471. package/tests/plugin/PluginVersionTest.res +34 -0
  472. package/tests/plugin/PluginVersionTest.res.mjs +30 -0
  473. package/tests/plugin/SchemaWalkerTest.res +115 -0
  474. package/tests/plugin/SchemaWalkerTest.res.mjs +160 -0
  475. package/tests/plugin/StateChangeSlice/PsPlaceOrder.res +24 -0
  476. package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +62 -0
  477. package/tests/plugin/StateChangeSlice/PsShipOrder.res +29 -0
  478. package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +69 -0
  479. package/tests/plugin/StateViewSlice/PsAnnotatedView.res +24 -0
  480. package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +94 -0
  481. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res +18 -0
  482. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +69 -0
  483. package/tests/plugin/StateViewSlice/PsCustomersView.res +22 -0
  484. package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +69 -0
  485. package/tests/plugin/StateViewSlice/PsOrdersView.res +20 -0
  486. package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +81 -0
  487. package/tests/poc/StructuralSubtypingPoc.res +211 -0
  488. package/tests/poc/StructuralSubtypingPoc.res.mjs +61 -0
  489. package/tests/querydb/QueryDbFixtures.res +65 -0
  490. package/tests/querydb/QueryDbFixtures.res.mjs +135 -0
  491. package/tests/querydb/QueryDbOperationsTest.res +94 -0
  492. package/tests/querydb/QueryDbOperationsTest.res.mjs +168 -0
  493. package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res +56 -0
  494. package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res.mjs +77 -0
  495. package/tests/sideeffecthandler/SideEffectHandlerFixtures.res +96 -0
  496. package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +139 -0
  497. package/tests/util/CsvStreamTest.res +54 -0
  498. package/tests/util/CsvStreamTest.res.mjs +51 -0
  499. package/tests/util/LruTest.res +73 -0
  500. package/tests/util/LruTest.res.mjs +105 -0
  501. package/tests/util/MetricsTest.res +36 -0
  502. package/tests/util/MetricsTest.res.mjs +53 -0
@@ -0,0 +1,164 @@
1
+ // SchemaWalker — runtime sury schema introspection for Plugin_BuiltHook.
2
+ //
3
+ // Walks an S.t<unknown> schema and produces a Plugin_BuiltHook.typeSchema
4
+ // describing its fields, constructors, and a stable structural hash.
5
+ //
6
+ // Follows the same Union/Object/Number/Boolean constructor names used by
7
+ // SchemaType.res (which are the real sury constructors, not Float/Bool/Int).
8
+
9
+ open Plugin_BuiltHook
10
+
11
+ // ---------------------------------------------------------------------------
12
+ // Type description — maps a sury schema node to a human-readable string.
13
+ // Optional fields in sury are Union({anyOf}) containing Null or Undefined.
14
+ // ---------------------------------------------------------------------------
15
+ let rec describeSchema = (schema: S.t<unknown>): string =>
16
+ switch schema {
17
+ | String({const: ?Some(_)}) => "string"
18
+ | String(_) => "string"
19
+ | Number(_) => "number"
20
+ | Boolean(_) => "bool"
21
+ | BigInt(_) => "bigint"
22
+ | Null(_) => "null"
23
+ | Union({anyOf}) =>
24
+ // Nullable/optional field: Union of Null/Undefined + one real type.
25
+ let nonNull = anyOf->Array.filter(v =>
26
+ switch v {
27
+ | Null(_) | Undefined(_) => false
28
+ | _ => true
29
+ }
30
+ )
31
+ switch nonNull->Array.get(0) {
32
+ | Some(inner) => "option<" ++ describeSchema(inner) ++ ">"
33
+ | None => "unknown"
34
+ }
35
+ | Array({additionalItems}) =>
36
+ let itemDesc = switch additionalItems {
37
+ | Schema(s) => describeSchema(s)
38
+ | _ => "unknown"
39
+ }
40
+ "array<" ++ itemDesc ++ ">"
41
+ | Object(_) => "object"
42
+ | _ => "unknown"
43
+ }
44
+
45
+ // Returns true if the schema represents an optional field
46
+ // (Union containing Null or Undefined).
47
+ let isOptionalSchema = (schema: S.t<unknown>): bool =>
48
+ switch schema {
49
+ | Union({anyOf}) =>
50
+ anyOf->Array.some(v =>
51
+ switch v {
52
+ | Null(_) | Undefined(_) => true
53
+ | _ => false
54
+ }
55
+ )
56
+ | _ => false
57
+ }
58
+
59
+ // ---------------------------------------------------------------------------
60
+ // Field extraction from an Object({properties}) schema.
61
+ // ---------------------------------------------------------------------------
62
+ let extractFields = (properties: dict<S.t<unknown>>): array<fieldSchema> =>
63
+ properties
64
+ ->Dict.toArray
65
+ ->Array.filterMap(((name, fieldSch)) =>
66
+ // Skip the TAG discriminator — it's an internal sury marker.
67
+ if name == "TAG" {
68
+ None
69
+ } else {
70
+ let isRequired = !isOptionalSchema(fieldSch)
71
+ Some({
72
+ name,
73
+ typeDescription: describeSchema(fieldSch),
74
+ isRequired,
75
+ })
76
+ }
77
+ )
78
+ ->Array.toSorted((a, b) => String.compare(a.name, b.name))
79
+
80
+ // ---------------------------------------------------------------------------
81
+ // Hash computation — SHA256 over sorted "name:type:required" tuples.
82
+ // ---------------------------------------------------------------------------
83
+ let hashFields = (fields: array<fieldSchema>): string => {
84
+ let dict =
85
+ fields
86
+ ->Array.map(f => (f.name, f.typeDescription ++ ":" ++ (f.isRequired ? "1" : "0")))
87
+ ->Dict.fromArray
88
+ HashObj.hashDict(~dict, ~options={algorithm: SHA256})
89
+ }
90
+
91
+ let hashConstructors = (ctors: array<constructorSchema>): string => {
92
+ let dict =
93
+ ctors
94
+ ->Array.toSorted((a, b) => String.compare(a.name, b.name))
95
+ ->Array.map(c => (c.name, hashFields(c.fields)))
96
+ ->Dict.fromArray
97
+ HashObj.hashDict(~dict, ~options={algorithm: SHA256})
98
+ }
99
+
100
+ // ---------------------------------------------------------------------------
101
+ // TAG item helper — extracts the const string value from a TAG schema item.
102
+ // ---------------------------------------------------------------------------
103
+ let tagConstOf = (items: array<S.item>): option<string> =>
104
+ items
105
+ ->Array.find(item => item.location == "TAG")
106
+ ->Option.flatMap(item =>
107
+ switch item.schema {
108
+ | String({const: ?Some(v)}) => Some(v)
109
+ | _ => None
110
+ }
111
+ )
112
+
113
+ // ---------------------------------------------------------------------------
114
+ // Main walker — converts an S.t<unknown> to a typeSchema.
115
+ // ---------------------------------------------------------------------------
116
+ let walkSchema = (typeName: string, schema: S.t<unknown>): typeSchema =>
117
+ switch schema {
118
+ | Object({properties}) =>
119
+ let fields = extractFields(properties)
120
+ {
121
+ typeName,
122
+ kind: "record",
123
+ fields,
124
+ structuralHash: hashFields(fields),
125
+ }
126
+ | Union({anyOf}) =>
127
+ // Check if this is a nullable scalar vs. a true variant union.
128
+ let hasNullLike = anyOf->Array.some(v =>
129
+ switch v {
130
+ | Null(_) | Undefined(_) => true
131
+ | _ => false
132
+ }
133
+ )
134
+ if hasNullLike {
135
+ // It's an optional/nullable scalar at the top level, treat as unknown.
136
+ {typeName, kind: "unknown", fields: [], structuralHash: ""}
137
+ } else {
138
+ let constructors =
139
+ anyOf->Array.filterMap(variantSchema =>
140
+ switch variantSchema {
141
+ | Object({items, properties}) =>
142
+ tagConstOf(items)->Option.map(name => {
143
+ name,
144
+ fields: extractFields(properties),
145
+ })
146
+ | _ => None
147
+ }
148
+ )
149
+ {
150
+ typeName,
151
+ kind: "variant",
152
+ fields: [],
153
+ constructors: constructors,
154
+ structuralHash: hashConstructors(constructors),
155
+ }
156
+ }
157
+ | _ => {typeName, kind: "unknown", fields: [], structuralHash: ""}
158
+ }
159
+
160
+ // ---------------------------------------------------------------------------
161
+ // Convenience: walk a typed schema (casts to unknown internally).
162
+ // ---------------------------------------------------------------------------
163
+ let walk = (typeName: string, schema: S.t<'a>): typeSchema =>
164
+ walkSchema(typeName, schema->S.castToUnknown)
@@ -0,0 +1,183 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import HashObject from "hash-object";
4
+ import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
5
+ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
6
+ import * as Primitive_string from "@rescript/runtime/lib/es6/Primitive_string.js";
7
+
8
+ function describeSchema(schema) {
9
+ switch (schema.type) {
10
+ case "string" :
11
+ return "string";
12
+ case "number" :
13
+ return "number";
14
+ case "bigint" :
15
+ return "bigint";
16
+ case "boolean" :
17
+ return "bool";
18
+ case "null" :
19
+ return "null";
20
+ case "array" :
21
+ let additionalItems = schema.additionalItems;
22
+ let itemDesc;
23
+ itemDesc = additionalItems === "strip" || additionalItems === "strict" ? "unknown" : describeSchema(additionalItems);
24
+ return "array<" + itemDesc + ">";
25
+ case "object" :
26
+ return "object";
27
+ case "union" :
28
+ let nonNull = schema.anyOf.filter(v => {
29
+ switch (v.type) {
30
+ case "null" :
31
+ case "undefined" :
32
+ return false;
33
+ default:
34
+ return true;
35
+ }
36
+ });
37
+ let inner = nonNull[0];
38
+ if (inner !== undefined) {
39
+ return "option<" + describeSchema(inner) + ">";
40
+ } else {
41
+ return "unknown";
42
+ }
43
+ default:
44
+ return "unknown";
45
+ }
46
+ }
47
+
48
+ function isOptionalSchema(schema) {
49
+ if (schema.type === "union") {
50
+ return schema.anyOf.some(v => {
51
+ switch (v.type) {
52
+ case "null" :
53
+ case "undefined" :
54
+ return true;
55
+ default:
56
+ return false;
57
+ }
58
+ });
59
+ } else {
60
+ return false;
61
+ }
62
+ }
63
+
64
+ function extractFields(properties) {
65
+ return Stdlib_Array.filterMap(Object.entries(properties), param => {
66
+ let name = param[0];
67
+ if (name === "TAG") {
68
+ return;
69
+ }
70
+ let fieldSch = param[1];
71
+ let isRequired = !isOptionalSchema(fieldSch);
72
+ return {
73
+ name: name,
74
+ typeDescription: describeSchema(fieldSch),
75
+ isRequired: isRequired
76
+ };
77
+ }).toSorted((a, b) => Primitive_string.compare(a.name, b.name));
78
+ }
79
+
80
+ function hashFields(fields) {
81
+ let dict = Object.fromEntries(fields.map(f => [
82
+ f.name,
83
+ f.typeDescription + ":" + (
84
+ f.isRequired ? "1" : "0"
85
+ )
86
+ ]));
87
+ return HashObject(dict, {
88
+ algorithm: "sha256"
89
+ });
90
+ }
91
+
92
+ function hashConstructors(ctors) {
93
+ let dict = Object.fromEntries(ctors.toSorted((a, b) => Primitive_string.compare(a.name, b.name)).map(c => [
94
+ c.name,
95
+ hashFields(c.fields)
96
+ ]));
97
+ return HashObject(dict, {
98
+ algorithm: "sha256"
99
+ });
100
+ }
101
+
102
+ function tagConstOf(items) {
103
+ return Stdlib_Option.flatMap(items.find(item => item.location === "TAG"), item => {
104
+ let match = item.schema;
105
+ if (match.type !== "string") {
106
+ return;
107
+ }
108
+ let v = match.const;
109
+ if (v !== undefined) {
110
+ return v;
111
+ }
112
+ });
113
+ }
114
+
115
+ function walkSchema(typeName, schema) {
116
+ switch (schema.type) {
117
+ case "object" :
118
+ let fields = extractFields(schema.properties);
119
+ return {
120
+ typeName: typeName,
121
+ kind: "record",
122
+ fields: fields,
123
+ structuralHash: hashFields(fields)
124
+ };
125
+ case "union" :
126
+ let anyOf = schema.anyOf;
127
+ let hasNullLike = anyOf.some(v => {
128
+ switch (v.type) {
129
+ case "null" :
130
+ case "undefined" :
131
+ return true;
132
+ default:
133
+ return false;
134
+ }
135
+ });
136
+ if (hasNullLike) {
137
+ return {
138
+ typeName: typeName,
139
+ kind: "unknown",
140
+ fields: [],
141
+ structuralHash: ""
142
+ };
143
+ }
144
+ let constructors = Stdlib_Array.filterMap(anyOf, variantSchema => {
145
+ if (variantSchema.type !== "object") {
146
+ return;
147
+ }
148
+ let properties = variantSchema.properties;
149
+ return Stdlib_Option.map(tagConstOf(variantSchema.items), name => ({
150
+ name: name,
151
+ fields: extractFields(properties)
152
+ }));
153
+ });
154
+ return {
155
+ typeName: typeName,
156
+ kind: "variant",
157
+ fields: [],
158
+ constructors: constructors,
159
+ structuralHash: hashConstructors(constructors)
160
+ };
161
+ default:
162
+ return {
163
+ typeName: typeName,
164
+ kind: "unknown",
165
+ fields: [],
166
+ structuralHash: ""
167
+ };
168
+ }
169
+ }
170
+
171
+ let walk = walkSchema;
172
+
173
+ export {
174
+ describeSchema,
175
+ isOptionalSchema,
176
+ extractFields,
177
+ hashFields,
178
+ hashConstructors,
179
+ tagConstOf,
180
+ walkSchema,
181
+ walk,
182
+ }
183
+ /* hash-object Not a pure module */
@@ -0,0 +1,14 @@
1
+ // Deploy-time Extension component for PluginConnectExtension. Pulls Pulumi via
2
+ // `include Extension_Builder.Make(...)`; layer-builder filters this file out of
3
+ // the Lambda layer (`**/*_Builder*.res.mjs` glob). The runtime-relevant
4
+ // mapping logic lives in PluginConnectExtension_Mapping.res so the
5
+ // EventCollector entry point can dynamic-import it at cold start.
6
+
7
+ module PluginExtensionPointSpec = ReventlessInfra.PluginExtensionPointSpec
8
+
9
+ module type Spec = PluginConnectExtension_Mapping.Spec
10
+
11
+ module Make = (Spec: Spec) => {
12
+ include PluginConnectExtension_Mapping.Make(Spec)
13
+ include Extension_Builder.Make(PluginExtensionPointSpec, ConnectPluginMappings)
14
+ }
@@ -0,0 +1,36 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Extension_Builder$ReventlessCore from "../../components/Extension/Extension_Builder.res.mjs";
4
+ import * as PluginExtensionPointSpec$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/PluginExtensionPointSpec.res.mjs";
5
+ import * as PluginConnectExtension_Mapping$ReventlessCore from "./PluginConnectExtension_Mapping.res.mjs";
6
+
7
+ function Make(Spec) {
8
+ let include = PluginConnectExtension_Mapping$ReventlessCore.Make(Spec);
9
+ let ConnectPluginMappings = include.ConnectPluginMappings;
10
+ let include$1 = Extension_Builder$ReventlessCore.Make({
11
+ name: PluginExtensionPointSpec$ReventlessInfra.name,
12
+ moduleUrl: PluginExtensionPointSpec$ReventlessInfra.moduleUrl,
13
+ commandSchema: PluginExtensionPointSpec$ReventlessInfra.commandSchema,
14
+ eventSchema: PluginExtensionPointSpec$ReventlessInfra.eventSchema,
15
+ directiveSchema: PluginExtensionPointSpec$ReventlessInfra.directiveSchema
16
+ })({
17
+ name: ConnectPluginMappings.name,
18
+ moduleUrl: ConnectPluginMappings.moduleUrl,
19
+ mappings: ConnectPluginMappings.mappings
20
+ });
21
+ return {
22
+ ConnectPluginMapping: include.ConnectPluginMapping,
23
+ ConnectPluginMappings: ConnectPluginMappings,
24
+ make: include$1.make,
25
+ outputs: include$1.outputs,
26
+ operations: include$1.operations
27
+ };
28
+ }
29
+
30
+ let PluginExtensionPointSpec;
31
+
32
+ export {
33
+ PluginExtensionPointSpec,
34
+ Make,
35
+ }
36
+ /* Extension_Builder-ReventlessCore Not a pure module */
@@ -0,0 +1,76 @@
1
+ // Runtime-safe ConnectPlugin mapping — split out of PluginConnectExtension_Builder
2
+ // so the EventCollector Lambda entry point can dynamic-import it from the layer.
3
+ // PluginConnectExtension_Builder.res still pulls Pulumi via `include
4
+ // Extension_Builder.Make(...)` and is filtered out of the layer by the
5
+ // `**/*_Builder*.res.mjs` rimraf in DependencyBundler_PostProcess; this module
6
+ // contains only what runs in a Lambda.
7
+ //
8
+ // After Phase 3 of the plugin-eventcollector-runtime-rewire plans, cross-plugin
9
+ // SNS subscription management lives on the admin side (admin's EventCollector
10
+ // runs manageSubscriptions on every PluginConnected / Reconnected / Deactivated
11
+ // event). This mapping retains a single responsibility: the bootstrap step
12
+ // where a plugin emits a ConnectPlugin command to admin after admin posts an
13
+ // UnknownPluginDetected event referencing this plugin's id. No subscribe /
14
+ // unsubscribe directives are emitted any more.
15
+
16
+ @@reventless.spec
17
+
18
+ module PluginExtensionPointSpec = ReventlessInfra.PluginExtensionPointSpec
19
+ module ExtensionMapping = ReventlessInfra.ExtensionMapping
20
+
21
+ module type Spec = {
22
+ let pluginDefinition: Reventless.Plugin.pluginDefinition
23
+ }
24
+
25
+ module Make = (Spec: Spec) => {
26
+ module ConnectPluginMapping = ExtensionMapping.Make(
27
+ {
28
+ module ExtensionPoint = PluginExtensionPointSpec
29
+ module Delegate = ReventlessInfra.ExtensionMapping.NoDelegate
30
+
31
+ // Unused by ExtensionMapping.Make (it reads Delegate.moduleUrl, not the
32
+ // arg's); present only to satisfy the input module type. The actually
33
+ // dynamic-imported specifier is the file-level `moduleUrl` (@@reventless.spec
34
+ // injected, move-safe) referenced from Plugin_Helpers.
35
+ let moduleUrl = PluginExtensionPointSpec.moduleUrl
36
+
37
+ let delegateModuleUrl = Delegate.moduleUrl
38
+
39
+ let mapIncomingEvent: ReventlessInfra.ExtensionMapping.mapIncomingEvent<
40
+ PluginExtensionPointSpec.event,
41
+ Delegate.command,
42
+ PluginExtensionPointSpec.command,
43
+ PluginExtensionPointSpec.directive,
44
+ > = (pluginId, event, _meta, _pluginDef, _queryEngine) => {
45
+ let pluginDefinition = Spec.pluginDefinition
46
+ let id = pluginDefinition.id
47
+
48
+ switch event {
49
+ | PluginExtensionPointSpec.UnknownPluginDetected if pluginId == id => [
50
+ PublishExtensionPointCommand(
51
+ id,
52
+ PluginExtensionPointSpec.ConnectPlugin(pluginDefinition),
53
+ ),
54
+ ]
55
+ // PluginConnected / PluginReconnected / PluginDeactivated for peer
56
+ // plugins used to call DoConnectPlugin / DoDisconnectPlugin here so
57
+ // each plugin's EC Lambda could subscribe / unsubscribe its own
58
+ // queue to peer EP topics. Admin owns that work now
59
+ // (manageSubscriptions in AdminEventCollectorEntryPoint.mjs) — these
60
+ // cases drop to no-ops.
61
+ | _ => []
62
+ }
63
+ }
64
+
65
+ let mapOutgoingEvent = None
66
+ },
67
+ )
68
+
69
+ module ConnectPluginMappings = {
70
+ module Spec = PluginExtensionPointSpec
71
+ module type Mapping = ExtensionMapping.T with module ExtensionPoint := Spec
72
+ let name = "Connect"
73
+ let moduleUrl: string = %raw(`import.meta.url`)
74
+ let mappings: array<module(Mapping)> = [module(ConnectPluginMapping)]
75
+ }
76
+ }
@@ -0,0 +1,89 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as ExtensionMapping$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/ExtensionMapping.res.mjs";
4
+ import * as PluginExtensionPointSpec$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/PluginExtensionPointSpec.res.mjs";
5
+
6
+ function Make(Spec) {
7
+ let delegateModuleUrl = ExtensionMapping$ReventlessInfra.NoDelegate.moduleUrl;
8
+ let mapIncomingEvent = (pluginId, event, _meta, _pluginDef, _queryEngine) => {
9
+ let pluginDefinition = Spec.pluginDefinition;
10
+ let id = pluginDefinition.id;
11
+ if (typeof event !== "object") {
12
+ if (pluginId === id) {
13
+ return [{
14
+ TAG: "PublishExtensionPointCommand",
15
+ _0: id,
16
+ _1: {
17
+ TAG: "ConnectPlugin",
18
+ _0: pluginDefinition
19
+ }
20
+ }];
21
+ } else {
22
+ return [];
23
+ }
24
+ } else {
25
+ return [];
26
+ }
27
+ };
28
+ let $$let = ExtensionMapping$ReventlessInfra.NoDelegate.Id;
29
+ let ConnectPluginMapping = ExtensionMapping$ReventlessInfra.Make({
30
+ ExtensionPoint: {
31
+ name: PluginExtensionPointSpec$ReventlessInfra.name,
32
+ moduleUrl: PluginExtensionPointSpec$ReventlessInfra.moduleUrl,
33
+ commandSchema: PluginExtensionPointSpec$ReventlessInfra.commandSchema,
34
+ eventSchema: PluginExtensionPointSpec$ReventlessInfra.eventSchema,
35
+ directiveSchema: PluginExtensionPointSpec$ReventlessInfra.directiveSchema
36
+ },
37
+ Delegate: {
38
+ Id: {
39
+ schema: $$let.schema,
40
+ make: prim => prim,
41
+ makeFromString: prim => prim,
42
+ toString: prim => prim,
43
+ cmp: $$let.cmp
44
+ },
45
+ name: ExtensionMapping$ReventlessInfra.NoDelegate.name,
46
+ eventSchema: ExtensionMapping$ReventlessInfra.NoDelegate.eventSchema,
47
+ errorSchema: ExtensionMapping$ReventlessInfra.NoDelegate.errorSchema,
48
+ commandSchema: ExtensionMapping$ReventlessInfra.NoDelegate.commandSchema,
49
+ moduleUrl: ExtensionMapping$ReventlessInfra.NoDelegate.moduleUrl,
50
+ commandAuthorization: ExtensionMapping$ReventlessInfra.NoDelegate.commandAuthorization
51
+ },
52
+ moduleUrl: PluginExtensionPointSpec$ReventlessInfra.moduleUrl,
53
+ delegateModuleUrl: delegateModuleUrl,
54
+ mapIncomingEvent: mapIncomingEvent,
55
+ mapOutgoingEvent: undefined
56
+ });
57
+ let moduleUrl = import.meta.url;
58
+ let mappings = [ConnectPluginMapping];
59
+ let ConnectPluginMappings = {
60
+ Spec: undefined,
61
+ name: "Connect",
62
+ moduleUrl: moduleUrl,
63
+ mappings: mappings
64
+ };
65
+ return {
66
+ ConnectPluginMapping: ConnectPluginMapping,
67
+ ConnectPluginMappings: ConnectPluginMappings
68
+ };
69
+ }
70
+
71
+ let name = "PluginConnectExtension_Mapping";
72
+
73
+ let Id;
74
+
75
+ let PluginExtensionPointSpec;
76
+
77
+ let ExtensionMapping;
78
+
79
+ let moduleUrl = "@reventlessdev/reventless-core/src/plugin/connect/PluginConnectExtension_Mapping.res.mjs";
80
+
81
+ export {
82
+ name,
83
+ Id,
84
+ PluginExtensionPointSpec,
85
+ ExtensionMapping,
86
+ Make,
87
+ moduleUrl,
88
+ }
89
+ /* ExtensionMapping-ReventlessInfra Not a pure module */
@@ -0,0 +1,39 @@
1
+ module PluginExtensionPointSpec = ReventlessInfra.PluginExtensionPointSpec
2
+
3
+ module type Spec = {
4
+ let runtimeOps: PluginRuntimeOperations.operations
5
+ let environment: string
6
+ let updateApiSchema: option<Reventless.QueryEngine.operations => promise<unit>>
7
+ let manageSubscriptions: option<
8
+ (Reventless.Plugin.pluginDefinition, [#connect | #disconnect]) => promise<unit>,
9
+ >
10
+ }
11
+
12
+ module Make = (
13
+ Spec: Spec,
14
+ RuntimeEnvironment: Runtime.Environment,
15
+ CommandTopicChannel: CommandTopic_Adapter.Channel
16
+ with type runtimeParts = RuntimeEnvironment.parts,
17
+ EventTopicAdapter: EventTopic_Adapter.Publisher,
18
+ ExtensionPointRuntimeBuilder: ExtensionPointRuntime_Builder.T
19
+ with module CommandTopicChannel := CommandTopicChannel,
20
+ ): ExtensionPoint.T => {
21
+ module PluginMappingInstance = PluginExtensionPoint_Plugin.Make(Spec)
22
+
23
+ module Mappings = {
24
+ module type Mapping = ReventlessInfra.ExtensionPointMapping.T
25
+ with module ExtensionPoint := PluginExtensionPointSpec
26
+
27
+ let name = PluginMappingInstance.Mapping.delegateName
28
+ let moduleUrl = PluginExtensionPointSpec.moduleUrl
29
+ let mappings: array<module(Mapping)> = [module(PluginMappingInstance.Mapping)]
30
+ }
31
+ include ExtensionPoint_Builder.Make(
32
+ PluginExtensionPointSpec,
33
+ Mappings,
34
+ RuntimeEnvironment,
35
+ CommandTopicChannel,
36
+ EventTopicAdapter,
37
+ ExtensionPointRuntimeBuilder,
38
+ )
39
+ }
@@ -0,0 +1,33 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as ExtensionPoint_Builder$ReventlessCore from "../../components/ExtensionPoint/ExtensionPoint_Builder.res.mjs";
4
+ import * as PluginExtensionPointSpec$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/PluginExtensionPointSpec.res.mjs";
5
+ import * as PluginExtensionPoint_Plugin$ReventlessCore from "./PluginExtensionPoint_Plugin.res.mjs";
6
+
7
+ function Make(Spec) {
8
+ return RuntimeEnvironment => (CommandTopicChannel => (EventTopicAdapter => (ExtensionPointRuntimeBuilder => {
9
+ let PluginMappingInstance = PluginExtensionPoint_Plugin$ReventlessCore.Make(Spec);
10
+ let name = PluginMappingInstance.Mapping.delegateName;
11
+ let mappings = [PluginMappingInstance.Mapping];
12
+ let Mappings = {
13
+ name: name,
14
+ moduleUrl: PluginExtensionPointSpec$ReventlessInfra.moduleUrl,
15
+ mappings: mappings
16
+ };
17
+ return ExtensionPoint_Builder$ReventlessCore.Make({
18
+ name: PluginExtensionPointSpec$ReventlessInfra.name,
19
+ moduleUrl: PluginExtensionPointSpec$ReventlessInfra.moduleUrl,
20
+ commandSchema: PluginExtensionPointSpec$ReventlessInfra.commandSchema,
21
+ eventSchema: PluginExtensionPointSpec$ReventlessInfra.eventSchema,
22
+ directiveSchema: PluginExtensionPointSpec$ReventlessInfra.directiveSchema
23
+ })(Mappings)(RuntimeEnvironment)(CommandTopicChannel)(EventTopicAdapter)(ExtensionPointRuntimeBuilder);
24
+ })));
25
+ }
26
+
27
+ let PluginExtensionPointSpec;
28
+
29
+ export {
30
+ PluginExtensionPointSpec,
31
+ Make,
32
+ }
33
+ /* ExtensionPoint_Builder-ReventlessCore Not a pure module */