@reventlessdev/reventless-local 3.0.0-alpha.113

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 (334) hide show
  1. package/CHANGELOG.md +1197 -0
  2. package/LICENSE +202 -0
  3. package/__mocks__/emptyModule.js +2 -0
  4. package/__mocks__/nodeSqlite.mjs +6 -0
  5. package/package.json +67 -0
  6. package/rescript.json +39 -0
  7. package/src/Platform.res +2162 -0
  8. package/src/Platform.res.mjs +3389 -0
  9. package/src/adapter/Api/LocalGraphQL_Adapter.res +29 -0
  10. package/src/adapter/Api/LocalGraphQL_Adapter.res.mjs +26 -0
  11. package/src/adapter/Api/LocalGraphQL_SubscriptionResolvers.res +146 -0
  12. package/src/adapter/Api/LocalGraphQL_SubscriptionResolvers.res.mjs +88 -0
  13. package/src/adapter/Auth/Auth_GraphqlContext.res +83 -0
  14. package/src/adapter/Auth/Auth_GraphqlContext.res.mjs +76 -0
  15. package/src/adapter/Auth/LocalAuth.res +239 -0
  16. package/src/adapter/Auth/LocalAuth.res.mjs +247 -0
  17. package/src/adapter/Auth/UserStore.res +134 -0
  18. package/src/adapter/Auth/UserStore.res.mjs +146 -0
  19. package/src/adapter/Backend.res +46 -0
  20. package/src/adapter/Backend.res.mjs +66 -0
  21. package/src/adapter/BackendState.res +34 -0
  22. package/src/adapter/BackendState.res.mjs +42 -0
  23. package/src/adapter/Cloner/LocalClonerRunner.res +13 -0
  24. package/src/adapter/Cloner/LocalClonerRunner.res.mjs +12 -0
  25. package/src/adapter/CommandGenerator/CommandGeneratorResolvers_GraphQL.res +329 -0
  26. package/src/adapter/CommandGenerator/CommandGeneratorResolvers_GraphQL.res.mjs +301 -0
  27. package/src/adapter/CommandGenerator/InboundTranslationResolvers_GraphQL.res +76 -0
  28. package/src/adapter/CommandGenerator/InboundTranslationResolvers_GraphQL.res.mjs +57 -0
  29. package/src/adapter/CommandGenerator/LocalCommandGeneratorResolvers.res +19 -0
  30. package/src/adapter/CommandGenerator/LocalCommandGeneratorResolvers.res.mjs +19 -0
  31. package/src/adapter/CommandTopic/LocalCommandTopicChannel.res +104 -0
  32. package/src/adapter/CommandTopic/LocalCommandTopicChannel.res.mjs +82 -0
  33. package/src/adapter/CommandTopic/LocalCommandTopicRemoteChannel.res +32 -0
  34. package/src/adapter/CommandTopic/LocalCommandTopicRemoteChannel.res.mjs +38 -0
  35. package/src/adapter/Counter/LocalCounterHandler.res +42 -0
  36. package/src/adapter/Counter/LocalCounterHandler.res.mjs +45 -0
  37. package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res +131 -0
  38. package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res.mjs +140 -0
  39. package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res +334 -0
  40. package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res.mjs +299 -0
  41. package/src/adapter/DomainGraphQL_Server.res +565 -0
  42. package/src/adapter/DomainGraphQL_Server.res.mjs +576 -0
  43. package/src/adapter/DomainMCP_Server.res +369 -0
  44. package/src/adapter/DomainMCP_Server.res.mjs +358 -0
  45. package/src/adapter/EventCollector/LocalEventCollectorChannel.res +87 -0
  46. package/src/adapter/EventCollector/LocalEventCollectorChannel.res.mjs +45 -0
  47. package/src/adapter/EventLog/EventLogStorage_InMemory.res +105 -0
  48. package/src/adapter/EventLog/EventLogStorage_InMemory.res.mjs +117 -0
  49. package/src/adapter/EventLog/EventLogStorage_Sqlite.res +145 -0
  50. package/src/adapter/EventLog/EventLogStorage_Sqlite.res.mjs +155 -0
  51. package/src/adapter/EventTopic/LocalEventTopicPublisher.res +36 -0
  52. package/src/adapter/EventTopic/LocalEventTopicPublisher.res.mjs +31 -0
  53. package/src/adapter/GraphQL_Server.res +6 -0
  54. package/src/adapter/GraphQL_Server.res.mjs +154 -0
  55. package/src/adapter/GraphQL_ServerInstance.res +310 -0
  56. package/src/adapter/GraphQL_ServerInstance.res.mjs +257 -0
  57. package/src/adapter/Heartbeat/LocalHeartbeatRunner.res +57 -0
  58. package/src/adapter/Heartbeat/LocalHeartbeatRunner.res.mjs +34 -0
  59. package/src/adapter/LocalBus.res +498 -0
  60. package/src/adapter/LocalBus.res.mjs +1011 -0
  61. package/src/adapter/LocalPluginSpec.res +16 -0
  62. package/src/adapter/LocalPluginSpec.res.mjs +33 -0
  63. package/src/adapter/LocalSideEffectHandler.res +44 -0
  64. package/src/adapter/LocalSideEffectHandler.res.mjs +34 -0
  65. package/src/adapter/MCP_Server.res +4 -0
  66. package/src/adapter/MCP_Server.res.mjs +67 -0
  67. package/src/adapter/MCP_ServerInstance.res +362 -0
  68. package/src/adapter/MCP_ServerInstance.res.mjs +313 -0
  69. package/src/adapter/PlatformGraphQL_Server.res +75 -0
  70. package/src/adapter/PlatformGraphQL_Server.res.mjs +84 -0
  71. package/src/adapter/PlatformMCP_Server.res +23 -0
  72. package/src/adapter/PlatformMCP_Server.res.mjs +46 -0
  73. package/src/adapter/QueryDb/QueryDbResolvers_GraphQL.res +793 -0
  74. package/src/adapter/QueryDb/QueryDbResolvers_GraphQL.res.mjs +569 -0
  75. package/src/adapter/QueryDb/QueryDbStorage_InMemory.res +242 -0
  76. package/src/adapter/QueryDb/QueryDbStorage_InMemory.res.mjs +241 -0
  77. package/src/adapter/QueryDb/QueryDbStorage_Sqlite.res +339 -0
  78. package/src/adapter/QueryDb/QueryDbStorage_Sqlite.res.mjs +318 -0
  79. package/src/adapter/QueryDb/SortKey_Filter.res +48 -0
  80. package/src/adapter/QueryDb/SortKey_Filter.res.mjs +46 -0
  81. package/src/adapter/QueryEngine/LocalQueryEngine.res +57 -0
  82. package/src/adapter/QueryEngine/LocalQueryEngine.res.mjs +56 -0
  83. package/src/adapter/Runtime/LocalAggregateRuntime_Builder.res +91 -0
  84. package/src/adapter/Runtime/LocalAggregateRuntime_Builder.res.mjs +50 -0
  85. package/src/adapter/Runtime/LocalEventCollectorRuntime_Builder.res +47 -0
  86. package/src/adapter/Runtime/LocalEventCollectorRuntime_Builder.res.mjs +37 -0
  87. package/src/adapter/Runtime/LocalPluginRuntime_Builder.res +11 -0
  88. package/src/adapter/Runtime/LocalPluginRuntime_Builder.res.mjs +30 -0
  89. package/src/adapter/Runtime/LocalRuntimeEnvironment.res +54 -0
  90. package/src/adapter/Runtime/LocalRuntimeEnvironment.res.mjs +40 -0
  91. package/src/adapter/Scheduler/LocalScheduledPublisher.res +102 -0
  92. package/src/adapter/Scheduler/LocalScheduledPublisher.res.mjs +84 -0
  93. package/src/adapter/SqliteDriver.res +52 -0
  94. package/src/adapter/SqliteDriver.res.mjs +76 -0
  95. package/src/adapter/SqliteDriver.resi +31 -0
  96. package/src/adapter/Task/LocalTaskBucket.res +75 -0
  97. package/src/adapter/Task/LocalTaskBucket.res.mjs +48 -0
  98. package/src/adapter/Task/TaskBucket_Sqlite.res +47 -0
  99. package/src/adapter/Task/TaskBucket_Sqlite.res.mjs +40 -0
  100. package/src/components/Aggregate_Builder.res +55 -0
  101. package/src/components/Aggregate_Builder.res.mjs +140 -0
  102. package/src/components/AutomationSlice_Builder.res +41 -0
  103. package/src/components/AutomationSlice_Builder.res.mjs +57 -0
  104. package/src/components/Counter_Builder.res +14 -0
  105. package/src/components/Counter_Builder.res.mjs +32 -0
  106. package/src/components/DcbEventLog_Builder.res +18 -0
  107. package/src/components/DcbEventLog_Builder.res.mjs +24 -0
  108. package/src/components/ExtensionPoint_Builder.res +25 -0
  109. package/src/components/ExtensionPoint_Builder.res.mjs +44 -0
  110. package/src/components/InboundTranslationSlice_Builder.res +34 -0
  111. package/src/components/InboundTranslationSlice_Builder.res.mjs +45 -0
  112. package/src/components/OutboundTranslationSlice_Builder.res +43 -0
  113. package/src/components/OutboundTranslationSlice_Builder.res.mjs +59 -0
  114. package/src/components/Plugin_Builder.res +37 -0
  115. package/src/components/Plugin_Builder.res.mjs +67 -0
  116. package/src/components/ReadModel_Builder.res +47 -0
  117. package/src/components/ReadModel_Builder.res.mjs +54 -0
  118. package/src/components/StateChangeSlice_Builder.res +19 -0
  119. package/src/components/StateChangeSlice_Builder.res.mjs +21 -0
  120. package/src/components/StateViewSlice_Builder.res +42 -0
  121. package/src/components/StateViewSlice_Builder.res.mjs +58 -0
  122. package/src/components/Task_Builder.res +28 -0
  123. package/src/components/Task_Builder.res.mjs +41 -0
  124. package/src/reexport/CommandTopic.res +3 -0
  125. package/src/reexport/CommandTopic.res.mjs +55 -0
  126. package/src/test/Mocks/MockDcbEventLogStorage.res +136 -0
  127. package/src/test/Mocks/MockDcbEventLogStorage.res.mjs +146 -0
  128. package/src/test/Mocks/MockEventLogStorage.res +57 -0
  129. package/src/test/Mocks/MockEventLogStorage.res.mjs +65 -0
  130. package/src/test/Mocks/MockPublisher.res +29 -0
  131. package/src/test/Mocks/MockPublisher.res.mjs +28 -0
  132. package/src/test/Mocks/MockQueryDbStorage.res +104 -0
  133. package/src/test/Mocks/MockQueryDbStorage.res.mjs +136 -0
  134. package/src/test/TestRunner.res +96 -0
  135. package/src/test/TestRunner.res.mjs +71 -0
  136. package/tests/SplitApiFixtures.res +84 -0
  137. package/tests/SplitApiFixtures.res.mjs +88 -0
  138. package/tests/SplitApiTest.res +102 -0
  139. package/tests/SplitApiTest.res.mjs +82 -0
  140. package/tests/TestFixtures.res +54 -0
  141. package/tests/TestFixtures.res.mjs +65 -0
  142. package/tests/adapter/BackendParityTest.res +94 -0
  143. package/tests/adapter/BackendParityTest.res.mjs +96 -0
  144. package/tests/adapter/CollectNEventsTest.res +82 -0
  145. package/tests/adapter/CollectNEventsTest.res.mjs +83 -0
  146. package/tests/adapter/CommandAuthorizationTest.res +200 -0
  147. package/tests/adapter/CommandAuthorizationTest.res.mjs +190 -0
  148. package/tests/adapter/CommandTopicChannelTest.res +174 -0
  149. package/tests/adapter/CommandTopicChannelTest.res.mjs +170 -0
  150. package/tests/adapter/CounterHandlerTest.res +113 -0
  151. package/tests/adapter/CounterHandlerTest.res.mjs +96 -0
  152. package/tests/adapter/DcbEventLogStorageSqliteTest.res +157 -0
  153. package/tests/adapter/DcbEventLogStorageSqliteTest.res.mjs +165 -0
  154. package/tests/adapter/DcbEventLogStorageTest.res +187 -0
  155. package/tests/adapter/DcbEventLogStorageTest.res.mjs +195 -0
  156. package/tests/adapter/EventCollectorChannelTest.res +166 -0
  157. package/tests/adapter/EventCollectorChannelTest.res.mjs +178 -0
  158. package/tests/adapter/EventLogStorageSqliteTest.res +105 -0
  159. package/tests/adapter/EventLogStorageSqliteTest.res.mjs +116 -0
  160. package/tests/adapter/EventTapTest.res +102 -0
  161. package/tests/adapter/EventTapTest.res.mjs +94 -0
  162. package/tests/adapter/EventTopicPublisherTest.res +76 -0
  163. package/tests/adapter/EventTopicPublisherTest.res.mjs +86 -0
  164. package/tests/adapter/GraphQL_SchemaInspectorTest.res +763 -0
  165. package/tests/adapter/GraphQL_SchemaInspectorTest.res.mjs +578 -0
  166. package/tests/adapter/GraphQL_SubscriptionResolversTest.res +161 -0
  167. package/tests/adapter/GraphQL_SubscriptionResolversTest.res.mjs +134 -0
  168. package/tests/adapter/HeartbeatRunnerTest.res +136 -0
  169. package/tests/adapter/HeartbeatRunnerTest.res.mjs +96 -0
  170. package/tests/adapter/LocalAuthHttpTest.res +224 -0
  171. package/tests/adapter/LocalAuthHttpTest.res.mjs +237 -0
  172. package/tests/adapter/LocalAuthLoginTest.res +180 -0
  173. package/tests/adapter/LocalAuthLoginTest.res.mjs +207 -0
  174. package/tests/adapter/LocalAuthTest.res +106 -0
  175. package/tests/adapter/LocalAuthTest.res.mjs +145 -0
  176. package/tests/adapter/LocalAuthUserStoreTest.res +172 -0
  177. package/tests/adapter/LocalAuthUserStoreTest.res.mjs +208 -0
  178. package/tests/adapter/LocalBusBoundedTest.res +157 -0
  179. package/tests/adapter/LocalBusBoundedTest.res.mjs +168 -0
  180. package/tests/adapter/LocalBusPubSubTest.res +81 -0
  181. package/tests/adapter/LocalBusPubSubTest.res.mjs +81 -0
  182. package/tests/adapter/QueryDbGsiTtlTest.res +268 -0
  183. package/tests/adapter/QueryDbGsiTtlTest.res.mjs +209 -0
  184. package/tests/adapter/QueryDbListResolverTest.res +361 -0
  185. package/tests/adapter/QueryDbListResolverTest.res.mjs +426 -0
  186. package/tests/adapter/QueryDbStorageSqliteTest.res +159 -0
  187. package/tests/adapter/QueryDbStorageSqliteTest.res.mjs +126 -0
  188. package/tests/adapter/QueryDbStorageTest.res +171 -0
  189. package/tests/adapter/QueryDbStorageTest.res.mjs +170 -0
  190. package/tests/adapter/QueryEngineTest.res +152 -0
  191. package/tests/adapter/QueryEngineTest.res.mjs +148 -0
  192. package/tests/adapter/ScheduledPublisherTest.res +199 -0
  193. package/tests/adapter/ScheduledPublisherTest.res.mjs +203 -0
  194. package/tests/adapter/SortKey_FilterTest.res +103 -0
  195. package/tests/adapter/SortKey_FilterTest.res.mjs +135 -0
  196. package/tests/adapter/SqliteDriverTest.res +86 -0
  197. package/tests/adapter/SqliteDriverTest.res.mjs +101 -0
  198. package/tests/adapter/TaskBucketSqliteTest.res +44 -0
  199. package/tests/adapter/TaskBucketSqliteTest.res.mjs +40 -0
  200. package/tests/adapter/TaskBucketTest.res +106 -0
  201. package/tests/adapter/TaskBucketTest.res.mjs +118 -0
  202. package/tests/components/aggregate/AggregateFixtures.res +78 -0
  203. package/tests/components/aggregate/AggregateFixtures.res.mjs +109 -0
  204. package/tests/components/aggregate/AggregateTest.res +129 -0
  205. package/tests/components/aggregate/AggregateTest.res.mjs +129 -0
  206. package/tests/components/automationslice/AutomationSliceCallbackTest.res +212 -0
  207. package/tests/components/automationslice/AutomationSliceCallbackTest.res.mjs +233 -0
  208. package/tests/components/automationslice/AutomationSliceFixtures.res +189 -0
  209. package/tests/components/automationslice/AutomationSliceFixtures.res.mjs +276 -0
  210. package/tests/components/automationslice/AutomationSliceSelfDeadlockFixtures.res +289 -0
  211. package/tests/components/automationslice/AutomationSliceSelfDeadlockFixtures.res.mjs +453 -0
  212. package/tests/components/automationslice/AutomationSliceSelfDeadlockTest.res +47 -0
  213. package/tests/components/automationslice/AutomationSliceSelfDeadlockTest.res.mjs +31 -0
  214. package/tests/components/automationslice/MixedSourceAutomationSliceFixtures.res +213 -0
  215. package/tests/components/automationslice/MixedSourceAutomationSliceFixtures.res.mjs +268 -0
  216. package/tests/components/automationslice/MixedSourceAutomationSliceTest.res +118 -0
  217. package/tests/components/automationslice/MixedSourceAutomationSliceTest.res.mjs +99 -0
  218. package/tests/components/commandgenerator/CommandGeneratorFixtures.res +73 -0
  219. package/tests/components/commandgenerator/CommandGeneratorFixtures.res.mjs +109 -0
  220. package/tests/components/commandgenerator/CommandGeneratorTest.res +43 -0
  221. package/tests/components/commandgenerator/CommandGeneratorTest.res.mjs +46 -0
  222. package/tests/components/commandtopic/CommandTopicFixtures.res +37 -0
  223. package/tests/components/commandtopic/CommandTopicFixtures.res.mjs +68 -0
  224. package/tests/components/commandtopic/CommandTopicStreamFixtures.res +43 -0
  225. package/tests/components/commandtopic/CommandTopicStreamFixtures.res.mjs +91 -0
  226. package/tests/components/commandtopic/CommandTopicStreamTest.res +30 -0
  227. package/tests/components/commandtopic/CommandTopicStreamTest.res.mjs +35 -0
  228. package/tests/components/commandtopic/CommandTopicTest.res +55 -0
  229. package/tests/components/commandtopic/CommandTopicTest.res.mjs +62 -0
  230. package/tests/components/counter/CounterFixtures.res +42 -0
  231. package/tests/components/counter/CounterFixtures.res.mjs +34 -0
  232. package/tests/components/counter/CounterTest.res +46 -0
  233. package/tests/components/counter/CounterTest.res.mjs +61 -0
  234. package/tests/components/dcb/DcbCrossPartitionFixtures.res +170 -0
  235. package/tests/components/dcb/DcbCrossPartitionFixtures.res.mjs +276 -0
  236. package/tests/components/dcb/DcbCrossPartitionReadTest.res +68 -0
  237. package/tests/components/dcb/DcbCrossPartitionReadTest.res.mjs +78 -0
  238. package/tests/components/dcb/DcbEventLogAppendStreamTest.res +72 -0
  239. package/tests/components/dcb/DcbEventLogAppendStreamTest.res.mjs +82 -0
  240. package/tests/components/dcb/DcbEventLogStreamTest.res +103 -0
  241. package/tests/components/dcb/DcbEventLogStreamTest.res.mjs +91 -0
  242. package/tests/components/dcb/DcbFixtures.res +145 -0
  243. package/tests/components/dcb/DcbFixtures.res.mjs +221 -0
  244. package/tests/components/dcb/DcbTest.res +55 -0
  245. package/tests/components/dcb/DcbTest.res.mjs +55 -0
  246. package/tests/components/eventcollector/EventCollectorFixtures.res +42 -0
  247. package/tests/components/eventcollector/EventCollectorFixtures.res.mjs +49 -0
  248. package/tests/components/eventcollector/EventCollectorTest.res +37 -0
  249. package/tests/components/eventcollector/EventCollectorTest.res.mjs +36 -0
  250. package/tests/components/eventlog/EventLogAppendStreamTest.res +93 -0
  251. package/tests/components/eventlog/EventLogAppendStreamTest.res.mjs +113 -0
  252. package/tests/components/eventlog/EventLogConflictTest.res +86 -0
  253. package/tests/components/eventlog/EventLogConflictTest.res.mjs +81 -0
  254. package/tests/components/eventlog/EventLogFixtures.res +52 -0
  255. package/tests/components/eventlog/EventLogFixtures.res.mjs +80 -0
  256. package/tests/components/eventlog/EventLogStreamTest.res +98 -0
  257. package/tests/components/eventlog/EventLogStreamTest.res.mjs +142 -0
  258. package/tests/components/eventlog/EventLogTest.res +53 -0
  259. package/tests/components/eventlog/EventLogTest.res.mjs +74 -0
  260. package/tests/components/eventtopic/EventTopicFixtures.res +47 -0
  261. package/tests/components/eventtopic/EventTopicFixtures.res.mjs +77 -0
  262. package/tests/components/eventtopic/EventTopicStreamFixtures.res +27 -0
  263. package/tests/components/eventtopic/EventTopicStreamFixtures.res.mjs +62 -0
  264. package/tests/components/eventtopic/EventTopicStreamTest.res +35 -0
  265. package/tests/components/eventtopic/EventTopicStreamTest.res.mjs +44 -0
  266. package/tests/components/eventtopic/EventTopicTest.res +35 -0
  267. package/tests/components/eventtopic/EventTopicTest.res.mjs +43 -0
  268. package/tests/components/extensionpoint/ExtensionPointFixtures.res +145 -0
  269. package/tests/components/extensionpoint/ExtensionPointFixtures.res.mjs +188 -0
  270. package/tests/components/extensionpoint/ExtensionPointTest.res +62 -0
  271. package/tests/components/extensionpoint/ExtensionPointTest.res.mjs +55 -0
  272. package/tests/components/heartbeat/HeartbeatFixtures.res +48 -0
  273. package/tests/components/heartbeat/HeartbeatFixtures.res.mjs +46 -0
  274. package/tests/components/heartbeat/HeartbeatTest.res +67 -0
  275. package/tests/components/heartbeat/HeartbeatTest.res.mjs +65 -0
  276. package/tests/components/inboundtranslationslice/InboundTranslationSliceCallbackTest.res +241 -0
  277. package/tests/components/inboundtranslationslice/InboundTranslationSliceCallbackTest.res.mjs +239 -0
  278. package/tests/components/inboundtranslationslice/InboundTranslationSliceFixtures.res +36 -0
  279. package/tests/components/inboundtranslationslice/InboundTranslationSliceFixtures.res.mjs +73 -0
  280. package/tests/components/outboundtranslationslice/OutboundTranslationSliceCallbackTest.res +191 -0
  281. package/tests/components/outboundtranslationslice/OutboundTranslationSliceCallbackTest.res.mjs +297 -0
  282. package/tests/components/outboundtranslationslice/OutboundTranslationSliceFixtures.res +78 -0
  283. package/tests/components/outboundtranslationslice/OutboundTranslationSliceFixtures.res.mjs +137 -0
  284. package/tests/components/querydb/QueryDbFixtures.res +39 -0
  285. package/tests/components/querydb/QueryDbFixtures.res.mjs +73 -0
  286. package/tests/components/querydb/QueryDbSubIdFixtures.res +44 -0
  287. package/tests/components/querydb/QueryDbSubIdFixtures.res.mjs +80 -0
  288. package/tests/components/querydb/QueryDbSubIdTest.res +104 -0
  289. package/tests/components/querydb/QueryDbSubIdTest.res.mjs +104 -0
  290. package/tests/components/querydb/QueryDbTest.res +81 -0
  291. package/tests/components/querydb/QueryDbTest.res.mjs +126 -0
  292. package/tests/components/readmodel/DcbReadModelE2EFixtures.res +215 -0
  293. package/tests/components/readmodel/DcbReadModelE2EFixtures.res.mjs +308 -0
  294. package/tests/components/readmodel/DcbReadModelE2ETest.res +45 -0
  295. package/tests/components/readmodel/DcbReadModelE2ETest.res.mjs +37 -0
  296. package/tests/components/readmodel/DcbReadModelTypoFailFastTest.res +88 -0
  297. package/tests/components/readmodel/DcbReadModelTypoFailFastTest.res.mjs +152 -0
  298. package/tests/components/readmodel/MixedSourceReadModelFixtures.res +181 -0
  299. package/tests/components/readmodel/MixedSourceReadModelFixtures.res.mjs +277 -0
  300. package/tests/components/readmodel/MixedSourceReadModelTest.res +61 -0
  301. package/tests/components/readmodel/MixedSourceReadModelTest.res.mjs +68 -0
  302. package/tests/components/readmodel/ReadModelFixtures.res +138 -0
  303. package/tests/components/readmodel/ReadModelFixtures.res.mjs +169 -0
  304. package/tests/components/readmodel/ReadModelTest.res +46 -0
  305. package/tests/components/readmodel/ReadModelTest.res.mjs +36 -0
  306. package/tests/components/scheduler/SchedulerFixtures.res +59 -0
  307. package/tests/components/scheduler/SchedulerFixtures.res.mjs +63 -0
  308. package/tests/components/scheduler/SchedulerTest.res +76 -0
  309. package/tests/components/scheduler/SchedulerTest.res.mjs +86 -0
  310. package/tests/components/sideeffecthandler/SideEffectHandlerFixtures.res +133 -0
  311. package/tests/components/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +149 -0
  312. package/tests/components/sideeffecthandler/SideEffectHandlerTest.res +39 -0
  313. package/tests/components/sideeffecthandler/SideEffectHandlerTest.res.mjs +28 -0
  314. package/tests/components/stateviewslice/StateViewSliceFixtures.res +117 -0
  315. package/tests/components/stateviewslice/StateViewSliceFixtures.res.mjs +188 -0
  316. package/tests/components/stateviewslice/StateViewSliceSubIdFixtures.res +117 -0
  317. package/tests/components/stateviewslice/StateViewSliceSubIdFixtures.res.mjs +183 -0
  318. package/tests/components/stateviewslice/StateViewSliceSubIdTest.res +78 -0
  319. package/tests/components/stateviewslice/StateViewSliceSubIdTest.res.mjs +107 -0
  320. package/tests/components/stateviewslice/StateViewSliceTest.res +59 -0
  321. package/tests/components/stateviewslice/StateViewSliceTest.res.mjs +72 -0
  322. package/tests/components/task/TaskFixtures.res +87 -0
  323. package/tests/components/task/TaskFixtures.res.mjs +82 -0
  324. package/tests/components/task/TaskTest.res +98 -0
  325. package/tests/components/task/TaskTest.res.mjs +46 -0
  326. package/tests/plugin/PluginBehavior_GWT.res +146 -0
  327. package/tests/plugin/PluginBehavior_GWT.res.mjs +281 -0
  328. package/tests/plugin/Plugin_Fixtures.res +61 -0
  329. package/tests/plugin/Plugin_Fixtures.res.mjs +105 -0
  330. package/tests/plugin/PluginsProjection_GWT.res +95 -0
  331. package/tests/plugin/PluginsProjection_GWT.res.mjs +120 -0
  332. package/tests/plugin/UIFragmentRegistryProjection_GWT.res +72 -0
  333. package/tests/plugin/UIFragmentRegistryProjection_GWT.res.mjs +117 -0
  334. package/tests/setup/sqliteGlobal.cjs +12 -0
@@ -0,0 +1,29 @@
1
+ // Mock EventTopic publisher that captures publishJson calls for assertion.
2
+ // Returns a record with publishJson (usable as EventTopic_Adapter publisher input),
3
+ // publishedMessages ref, and reset().
4
+
5
+ type publishedMessage = {
6
+ service: string,
7
+ meta: Reventless.Message.meta,
8
+ json: JSON.t,
9
+ }
10
+
11
+ type t = {
12
+ publishJson: ReventlessInfra.EventTopic.publishJson,
13
+ publishedMessages: ref<array<publishedMessage>>,
14
+ reset: unit => unit,
15
+ }
16
+
17
+ let make = () => {
18
+ let publishedMessages: ref<array<publishedMessage>> = ref([])
19
+
20
+ let publishJson: ReventlessInfra.EventTopic.publishJson = async (service, meta, json) => {
21
+ publishedMessages := publishedMessages.contents->Array.concat([{service, meta, json}])
22
+ }
23
+
24
+ let reset = () => {
25
+ publishedMessages := []
26
+ }
27
+
28
+ {publishJson, publishedMessages, reset}
29
+ }
@@ -0,0 +1,28 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ function make() {
5
+ let publishedMessages = {
6
+ contents: []
7
+ };
8
+ let publishJson = async (service, meta, json) => {
9
+ publishedMessages.contents = publishedMessages.contents.concat([{
10
+ service: service,
11
+ meta: meta,
12
+ json: json
13
+ }]);
14
+ };
15
+ let reset = () => {
16
+ publishedMessages.contents = [];
17
+ };
18
+ return {
19
+ publishJson: publishJson,
20
+ publishedMessages: publishedMessages,
21
+ reset: reset
22
+ };
23
+ }
24
+
25
+ export {
26
+ make,
27
+ }
28
+ /* No side effect */
@@ -0,0 +1,104 @@
1
+ // Mock in-memory QueryDb storage.
2
+ // Make(Bus) functor: registers ops and scan in the Bus (same as QueryDbStorage_InMemory).
3
+ // Adds reset() and failNextWrites counter for test isolation and failure injection.
4
+
5
+ module Make = (Bus: LocalBus.T) => {
6
+ open ReventlessCore
7
+
8
+ type t = {
9
+ storage: QueryDb_Adapter.storage,
10
+ failNextWrites: ref<int>,
11
+ reset: unit => unit,
12
+ }
13
+
14
+ let make = (
15
+ ~name,
16
+ ~indexes as _=[],
17
+ ~subIdField as _=?,
18
+ ~ttl as _=?,
19
+ ~api as _=(),
20
+ ~apiRole as _=(),
21
+ ~opts as _: Pulumi.CustomResourceOptions.t={},
22
+ ) => {
23
+ let store: ref<dict<array<JSON.t>>> = ref(Dict.make())
24
+ let allItems: ref<array<JSON.t>> = ref([])
25
+ let failNextWrites = ref(0)
26
+
27
+ let syncAll = () => {
28
+ allItems.contents = store.contents->Dict.valuesToArray->Array.flatMap(v => v)
29
+ }
30
+
31
+ let load: QueryDb.load<string, JSON.t> = async id =>
32
+ Ok(store.contents->Dict.get(id)->Option.getOr([]))
33
+
34
+ let loadStream: QueryDb.loadStream<string, JSON.t> = id =>
35
+ store.contents->Dict.get(id)->Option.getOr([])->Stream.fromIterable
36
+
37
+ let save: QueryDb.save<string, JSON.t> = async (id, state, _saveMode, _ttl) => {
38
+ if failNextWrites.contents > 0 {
39
+ failNextWrites := failNextWrites.contents - 1
40
+ Error(ReventlessInfra.QueryDb.NotSavedToStorage("mock write failure"))
41
+ } else {
42
+ store.contents->Dict.set(id, [state])
43
+ syncAll()
44
+ Ok()
45
+ }
46
+ }
47
+
48
+ let saveBatch: QueryDb.saveBatch<string, JSON.t> = async batch => {
49
+ if failNextWrites.contents > 0 {
50
+ failNextWrites := failNextWrites.contents - 1
51
+ Error(ReventlessInfra.QueryDb.BatchNotFullyWrittenToStorage("mock write failure"))
52
+ } else {
53
+ batch->Array.forEach(((id, state, _ttl)) => {
54
+ store.contents->Dict.set(id, [state])
55
+ })
56
+ syncAll()
57
+ Ok()
58
+ }
59
+ }
60
+
61
+ let count: QueryDb.count<string> = async (_id, _fieldName, inc) => Ok(inc)
62
+
63
+ let delete: QueryDb.delete<string> = async (id, _subId) => {
64
+ store.contents->Dict.delete(id)
65
+ syncAll()
66
+ Ok()
67
+ }
68
+
69
+ let deleteBatch: QueryDb.deleteBatch<string> = async ids => {
70
+ ids->Array.forEach(((id, _subId)) => {
71
+ store.contents->Dict.delete(id)
72
+ })
73
+ syncAll()
74
+ Ok()
75
+ }
76
+
77
+ let ops: QueryDb_Adapter.operations = {
78
+ load,
79
+ loadStream,
80
+ save,
81
+ saveBatch,
82
+ count,
83
+ delete,
84
+ deleteBatch,
85
+ }
86
+
87
+ Bus.registerQueryDb(name, ops)
88
+ Bus.registerQueryDbScan(name, () => allItems.contents)
89
+
90
+ let storage: QueryDb_Adapter.storage = {
91
+ resources: [],
92
+ dataSourceName: ""->Pulumi.Output.make,
93
+ operations: Pulumi.Output.make(ops),
94
+ }
95
+
96
+ let reset = () => {
97
+ store := Dict.make()
98
+ allItems := []
99
+ failNextWrites := 0
100
+ }
101
+
102
+ {storage, failNextWrites, reset}
103
+ }
104
+ }
@@ -0,0 +1,136 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Stdlib_Dict from "@rescript/runtime/lib/es6/Stdlib_Dict.js";
4
+ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
5
+ import * as Stream from "effect/Stream";
6
+ import * as Pulumi from "@pulumi/pulumi";
7
+ import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
8
+
9
+ function Make(Bus) {
10
+ let make = (name, $staropt$star, param, param$1, $staropt$star$1, $staropt$star$2, $staropt$star$3) => {
11
+ $staropt$star !== undefined;
12
+ if ($staropt$star$1 !== undefined) {
13
+ Primitive_option.valFromOption($staropt$star$1);
14
+ }
15
+ if ($staropt$star$2 !== undefined) {
16
+ Primitive_option.valFromOption($staropt$star$2);
17
+ }
18
+ if ($staropt$star$3 === undefined) {
19
+
20
+ }
21
+ let store = {
22
+ contents: {}
23
+ };
24
+ let allItems = {
25
+ contents: []
26
+ };
27
+ let failNextWrites = {
28
+ contents: 0
29
+ };
30
+ let syncAll = () => {
31
+ allItems.contents = Object.values(store.contents).flatMap(v => v);
32
+ };
33
+ let load = async id => ({
34
+ TAG: "Ok",
35
+ _0: Stdlib_Option.getOr(store.contents[id], [])
36
+ });
37
+ let loadStream = id => Stream.fromIterable(Stdlib_Option.getOr(store.contents[id], []));
38
+ let save = async (id, state, _saveMode, _ttl) => {
39
+ if (failNextWrites.contents > 0) {
40
+ failNextWrites.contents = failNextWrites.contents - 1 | 0;
41
+ return {
42
+ TAG: "Error",
43
+ _0: {
44
+ TAG: "NotSavedToStorage",
45
+ _0: "mock write failure"
46
+ }
47
+ };
48
+ } else {
49
+ store.contents[id] = [state];
50
+ syncAll();
51
+ return {
52
+ TAG: "Ok",
53
+ _0: undefined
54
+ };
55
+ }
56
+ };
57
+ let saveBatch = async batch => {
58
+ if (failNextWrites.contents > 0) {
59
+ failNextWrites.contents = failNextWrites.contents - 1 | 0;
60
+ return {
61
+ TAG: "Error",
62
+ _0: {
63
+ TAG: "BatchNotFullyWrittenToStorage",
64
+ _0: "mock write failure"
65
+ }
66
+ };
67
+ } else {
68
+ batch.forEach(param => {
69
+ store.contents[param[0]] = [param[1]];
70
+ });
71
+ syncAll();
72
+ return {
73
+ TAG: "Ok",
74
+ _0: undefined
75
+ };
76
+ }
77
+ };
78
+ let count = async (_id, _fieldName, inc) => ({
79
+ TAG: "Ok",
80
+ _0: inc
81
+ });
82
+ let $$delete = async (id, _subId) => {
83
+ Stdlib_Dict.$$delete(store.contents, id);
84
+ syncAll();
85
+ return {
86
+ TAG: "Ok",
87
+ _0: undefined
88
+ };
89
+ };
90
+ let deleteBatch = async ids => {
91
+ ids.forEach(param => Stdlib_Dict.$$delete(store.contents, param[0]));
92
+ syncAll();
93
+ return {
94
+ TAG: "Ok",
95
+ _0: undefined
96
+ };
97
+ };
98
+ let ops = {
99
+ load: load,
100
+ loadStream: loadStream,
101
+ save: save,
102
+ saveBatch: saveBatch,
103
+ count: count,
104
+ delete: $$delete,
105
+ deleteBatch: deleteBatch
106
+ };
107
+ Bus.registerQueryDb(name, ops);
108
+ Bus.registerQueryDbScan(name, () => allItems.contents);
109
+ let storage_resources = [];
110
+ let storage_dataSourceName = Pulumi.output("");
111
+ let storage_operations = Pulumi.output(ops);
112
+ let storage = {
113
+ resources: storage_resources,
114
+ dataSourceName: storage_dataSourceName,
115
+ operations: storage_operations
116
+ };
117
+ let reset = () => {
118
+ store.contents = {};
119
+ allItems.contents = [];
120
+ failNextWrites.contents = 0;
121
+ };
122
+ return {
123
+ storage: storage,
124
+ failNextWrites: failNextWrites,
125
+ reset: reset
126
+ };
127
+ };
128
+ return {
129
+ make: make
130
+ };
131
+ }
132
+
133
+ export {
134
+ Make,
135
+ }
136
+ /* effect/Stream Not a pure module */
@@ -0,0 +1,96 @@
1
+ // Test utilities for reventless-local.
2
+ // Call setup() once before any Platform.Make() in tests to activate Pulumi mock mode,
3
+ // which makes Output.apply resolve synchronously and ComponentResource constructors work.
4
+
5
+ // Pulumi mock interface
6
+ type mockArgs = {
7
+ \"type": string,
8
+ name: string,
9
+ inputs: JSON.t,
10
+ }
11
+
12
+ type mockResult = {
13
+ id: string,
14
+ state: JSON.t,
15
+ }
16
+
17
+ @module("@pulumi/pulumi") @scope("runtime")
18
+ external setMocks: ({"newResource": mockArgs => mockResult, "call": mockArgs => JSON.t}) => unit =
19
+ "setMocks"
20
+
21
+ // Activate Pulumi mock mode. Must be called once before any Platform.Make() or component creation.
22
+ let setup = () =>
23
+ setMocks({
24
+ "newResource": args => {
25
+ id: args.name ++ "_id",
26
+ state: args.inputs,
27
+ },
28
+ "call": args => args.inputs,
29
+ })
30
+
31
+ // Resolve a Pulumi Output to a promise.
32
+ // In mock mode, the promise resolves immediately with the output value.
33
+ @send external promise: Pulumi.Output.t<'a> => promise<'a> = "promise"
34
+ let resolve = (output: Pulumi.Output.t<'a>): promise<'a> => output->promise
35
+
36
+ // Stop the shared GraphQL server started by Platform.Make().
37
+ // Call this in afterAll() to release the HTTP port.
38
+ let stopGraphQLServer = () => DomainGraphQL_Server.stop()
39
+
40
+ // Reset GraphQL server registry state.
41
+ // Call between test suites when creating multiple Platform.Make() instances.
42
+ let resetGraphQLServer = () => DomainGraphQL_Server.reset()
43
+
44
+ // Clear all active heartbeat timers started by LocalHeartbeatRunner.
45
+ // Call in afterAll when using Plugin_Builder with LocalHeartbeatRunner.
46
+ let resetHeartbeatRunner = () => LocalHeartbeatRunner.reset()
47
+
48
+ // ─────────────────────────────────────────────────────────────
49
+ // Bus test utilities
50
+ // ─────────────────────────────────────────────────────────────
51
+
52
+ type collectedEvent = {
53
+ service: string,
54
+ meta: ReventlessCore.Message.meta,
55
+ json: JSON.t,
56
+ }
57
+
58
+ /**
59
+ * Subscribe to topicName and return a promise that resolves once exactly n events
60
+ * have been delivered by the bus.
61
+ *
62
+ * The subscription is registered synchronously (before the returned promise is
63
+ * awaited), so events published immediately after calling collectNEvents are
64
+ * captured. done_ is handled by the drain fiber automatically.
65
+ *
66
+ * Returns an empty array immediately if n <= 0.
67
+ */
68
+ let collectNEvents = (
69
+ subscribeToEvents: (
70
+ string,
71
+ (string, ReventlessCore.Message.meta, JSON.t) => promise<unit>,
72
+ ) => unit,
73
+ topicName: string,
74
+ n: int,
75
+ ): promise<array<collectedEvent>> => {
76
+ if n <= 0 {
77
+ Promise.resolve([])
78
+ } else {
79
+ let collected: ref<array<collectedEvent>> = ref([])
80
+ let resolve: ref<option<array<collectedEvent> => unit>> = ref(None)
81
+ // Promise.make callback runs synchronously — resolve is set before subscribeToEvents.
82
+ let p = Promise.make((res, _) => {
83
+ resolve := Some(res)
84
+ })
85
+ subscribeToEvents(topicName, async (service, meta, json) => {
86
+ collected.contents->Array.push({service, meta, json})
87
+ if Array.length(collected.contents) >= n {
88
+ switch resolve.contents {
89
+ | Some(f) => f(collected.contents)
90
+ | None => ()
91
+ }
92
+ }
93
+ })
94
+ p
95
+ }
96
+ }
@@ -0,0 +1,71 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Pulumi from "@pulumi/pulumi";
4
+ import * as DomainGraphQL_Server$ReventlessLocal from "../adapter/DomainGraphQL_Server.res.mjs";
5
+ import * as LocalHeartbeatRunner$ReventlessLocal from "../adapter/Heartbeat/LocalHeartbeatRunner.res.mjs";
6
+
7
+ function setup() {
8
+ Pulumi.runtime.setMocks({
9
+ newResource: args => ({
10
+ id: args.name + "_id",
11
+ state: args.inputs
12
+ }),
13
+ call: args => args.inputs
14
+ });
15
+ }
16
+
17
+ function resolve(output) {
18
+ return output.promise();
19
+ }
20
+
21
+ function stopGraphQLServer() {
22
+ DomainGraphQL_Server$ReventlessLocal.stop();
23
+ }
24
+
25
+ function resetGraphQLServer() {
26
+ DomainGraphQL_Server$ReventlessLocal.reset();
27
+ }
28
+
29
+ function resetHeartbeatRunner() {
30
+ LocalHeartbeatRunner$ReventlessLocal.reset();
31
+ }
32
+
33
+ function collectNEvents(subscribeToEvents, topicName, n) {
34
+ if (n <= 0) {
35
+ return Promise.resolve([]);
36
+ }
37
+ let collected = {
38
+ contents: []
39
+ };
40
+ let resolve = {
41
+ contents: undefined
42
+ };
43
+ let p = new Promise((res, param) => {
44
+ resolve.contents = res;
45
+ });
46
+ subscribeToEvents(topicName, async (service, meta, json) => {
47
+ collected.contents.push({
48
+ service: service,
49
+ meta: meta,
50
+ json: json
51
+ });
52
+ if (collected.contents.length < n) {
53
+ return;
54
+ }
55
+ let f = resolve.contents;
56
+ if (f !== undefined) {
57
+ return f(collected.contents);
58
+ }
59
+ });
60
+ return p;
61
+ }
62
+
63
+ export {
64
+ setup,
65
+ resolve,
66
+ stopGraphQLServer,
67
+ resetGraphQLServer,
68
+ resetHeartbeatRunner,
69
+ collectNEvents,
70
+ }
71
+ /* @pulumi/pulumi Not a pure module */
@@ -0,0 +1,84 @@
1
+ // Fixtures for split API mode integration tests.
2
+ // Tests the split routing logic directly using GraphQL_Server (singleton)
3
+ // and GraphQL_ServerInstance (factory) without importing Platform or MCP,
4
+ // which avoids ESM compatibility issues with Jest.
5
+ //
6
+ // This mirrors what Platform.makePlatform does in split mode:
7
+ // - Admin schema → GraphQL_ServerInstance (isolated admin server)
8
+ // - Plugin schema → GraphQL_Server singleton (plugin server)
9
+
10
+ let _ = TestRunner.setup()
11
+
12
+ // Helper to extract resolver key from an SDL field string.
13
+ // Mirrors GraphQL_ServerInstance.extractFieldName.
14
+ let extractSdlFieldName = (sdlField: string): string => {
15
+ let trimmed = sdlField->String.trim
16
+ trimmed
17
+ ->String.split("(")
18
+ ->Array.get(0)
19
+ ->Option.getOr("")
20
+ ->String.trim
21
+ ->String.split(":")
22
+ ->Array.get(0)
23
+ ->Option.getOr("")
24
+ ->String.trim
25
+ }
26
+
27
+ // ─────────────────────────────────────────────────────────────
28
+ // Create admin GraphQL instance (mirrors Platform split mode)
29
+ // ─────────────────────────────────────────────────────────────
30
+
31
+ let adminGraphQL = GraphQL_ServerInstance.make(~label="GraphQL:Admin")
32
+
33
+ // Build admin SDL — authoritative source for field names.
34
+ let baseParts = ReventlessCore.GraphQL_Stitcher.decode(ReventlessCore.AdminApi.baseFragment(~cloner=true))
35
+ let () = adminGraphQL.registerTypes(~sdlTypes=baseParts.types)
36
+
37
+ // Derive query/mutation field names directly from SDL so that any SDL
38
+ // additions (e.g. UIFragment entries) automatically get stub resolvers.
39
+ let adminQueryFieldNames = baseParts.queries->Array.map(extractSdlFieldName)
40
+ let adminMutationFieldNames = baseParts.mutations->Array.map(extractSdlFieldName)
41
+
42
+ // Keep these for backwards-compat with the test file.
43
+ let adminQueryEntry = ReventlessCore.PluginBaseFragment.queryEntries->Array.getUnsafe(0)
44
+ let singleQueryField = adminQueryEntry.singleFieldName
45
+ let listQueryField = adminQueryEntry.listFieldName
46
+
47
+ let adminQueryResolvers = Dict.make()
48
+ let () = adminQueryFieldNames->Array.forEach(field =>
49
+ adminQueryResolvers->Dict.set(field, async (_root, _args, _ctx): JSON.t => JSON.Encode.null)
50
+ )
51
+ let () = adminGraphQL.registerQueries(~sdlFields=baseParts.queries, ~resolvers=adminQueryResolvers)
52
+
53
+ let adminMutationResolvers = Dict.make()
54
+ let () = adminMutationFieldNames->Array.forEach(field =>
55
+ adminMutationResolvers->Dict.set(field, async (_root, _args, _ctx): JSON.t => JSON.Encode.string("ok"))
56
+ )
57
+ let () = adminGraphQL.registerMutations(~sdlFields=baseParts.mutations, ~resolvers=adminMutationResolvers)
58
+
59
+ // ─────────────────────────────────────────────────────────────
60
+ // Register fake plugin schema into the singleton (plugin server)
61
+ // ─────────────────────────────────────────────────────────────
62
+
63
+ let () = GraphQL_Server.reset()
64
+
65
+ let pluginTypes = [`type SplitTestPlugin_SplitTestItem { id: ID!, name: String! }`]
66
+ let () = GraphQL_Server.registerTypes(~sdlTypes=pluginTypes)
67
+
68
+ let pluginQueryResolvers = Dict.make()
69
+ let () = pluginQueryResolvers->Dict.set("SplitTestPlugin_SplitTestItem", async (_root, _args, _ctx): JSON.t => JSON.Encode.null)
70
+ let () = pluginQueryResolvers->Dict.set("SplitTestPlugin_SplitTestItems", async (_root, _args, _ctx): JSON.t => JSON.Encode.null)
71
+ let () = GraphQL_Server.registerQueries(
72
+ ~sdlFields=[
73
+ `SplitTestPlugin_SplitTestItem(id: ID!): SplitTestPlugin_SplitTestItem`,
74
+ `SplitTestPlugin_SplitTestItems(nextToken: String, limit: Int): SplitTestPlugin_SplitTestItem`,
75
+ ],
76
+ ~resolvers=pluginQueryResolvers,
77
+ )
78
+
79
+ let pluginMutationResolvers = Dict.make()
80
+ let () = pluginMutationResolvers->Dict.set("SplitTestPlugin_SplitTestItem_CreateItem", async (_root, _args, _ctx): JSON.t => JSON.Encode.string("ok"))
81
+ let () = GraphQL_Server.registerMutations(
82
+ ~sdlFields=[`SplitTestPlugin_SplitTestItem_CreateItem(id: ID!, name: String!): String`],
83
+ ~resolvers=pluginMutationResolvers,
84
+ )
@@ -0,0 +1,88 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
4
+ import * as AdminApi$ReventlessCore from "@reventlessdev/reventless-core/src/admin/AdminApi.res.mjs";
5
+ import * as TestRunner$ReventlessLocal from "../src/test/TestRunner.res.mjs";
6
+ import * as GraphQL_Server$ReventlessLocal from "../src/adapter/GraphQL_Server.res.mjs";
7
+ import * as GraphQL_Stitcher$ReventlessCore from "@reventlessdev/reventless-core/src/components/Api/GraphQL_Stitcher.res.mjs";
8
+ import * as PluginBaseFragment$ReventlessCore from "@reventlessdev/reventless-core/src/plugin/api/PluginBaseFragment.res.mjs";
9
+ import * as GraphQL_ServerInstance$ReventlessLocal from "../src/adapter/GraphQL_ServerInstance.res.mjs";
10
+
11
+ TestRunner$ReventlessLocal.setup();
12
+
13
+ function extractSdlFieldName(sdlField) {
14
+ let trimmed = sdlField.trim();
15
+ return Stdlib_Option.getOr(Stdlib_Option.getOr(trimmed.split("(")[0], "").trim().split(":")[0], "").trim();
16
+ }
17
+
18
+ let adminGraphQL = GraphQL_ServerInstance$ReventlessLocal.make("GraphQL:Admin");
19
+
20
+ let baseParts = GraphQL_Stitcher$ReventlessCore.decode(AdminApi$ReventlessCore.baseFragment(true));
21
+
22
+ adminGraphQL.registerTypes(baseParts.types);
23
+
24
+ let adminQueryFieldNames = baseParts.queries.map(extractSdlFieldName);
25
+
26
+ let adminMutationFieldNames = baseParts.mutations.map(extractSdlFieldName);
27
+
28
+ let adminQueryEntry = PluginBaseFragment$ReventlessCore.queryEntries[0];
29
+
30
+ let singleQueryField = adminQueryEntry.singleFieldName;
31
+
32
+ let listQueryField = adminQueryEntry.listFieldName;
33
+
34
+ let adminQueryResolvers = {};
35
+
36
+ adminQueryFieldNames.forEach(field => {
37
+ adminQueryResolvers[field] = async (_root, _args, _ctx) => null;
38
+ });
39
+
40
+ adminGraphQL.registerQueries(baseParts.queries, adminQueryResolvers);
41
+
42
+ let adminMutationResolvers = {};
43
+
44
+ adminMutationFieldNames.forEach(field => {
45
+ adminMutationResolvers[field] = async (_root, _args, _ctx) => "ok";
46
+ });
47
+
48
+ adminGraphQL.registerMutations(baseParts.mutations, adminMutationResolvers);
49
+
50
+ GraphQL_Server$ReventlessLocal.reset();
51
+
52
+ let pluginTypes = [`type SplitTestPlugin_SplitTestItem { id: ID!, name: String! }`];
53
+
54
+ GraphQL_Server$ReventlessLocal.registerTypes(pluginTypes);
55
+
56
+ let pluginQueryResolvers = {};
57
+
58
+ pluginQueryResolvers["SplitTestPlugin_SplitTestItem"] = async (_root, _args, _ctx) => null;
59
+
60
+ pluginQueryResolvers["SplitTestPlugin_SplitTestItems"] = async (_root, _args, _ctx) => null;
61
+
62
+ GraphQL_Server$ReventlessLocal.registerQueries([
63
+ `SplitTestPlugin_SplitTestItem(id: ID!): SplitTestPlugin_SplitTestItem`,
64
+ `SplitTestPlugin_SplitTestItems(nextToken: String, limit: Int): SplitTestPlugin_SplitTestItem`
65
+ ], pluginQueryResolvers);
66
+
67
+ let pluginMutationResolvers = {};
68
+
69
+ pluginMutationResolvers["SplitTestPlugin_SplitTestItem_CreateItem"] = async (_root, _args, _ctx) => "ok";
70
+
71
+ GraphQL_Server$ReventlessLocal.registerMutations([`SplitTestPlugin_SplitTestItem_CreateItem(id: ID!, name: String!): String`], pluginMutationResolvers);
72
+
73
+ export {
74
+ extractSdlFieldName,
75
+ adminGraphQL,
76
+ baseParts,
77
+ adminQueryFieldNames,
78
+ adminMutationFieldNames,
79
+ adminQueryEntry,
80
+ singleQueryField,
81
+ listQueryField,
82
+ adminQueryResolvers,
83
+ adminMutationResolvers,
84
+ pluginTypes,
85
+ pluginQueryResolvers,
86
+ pluginMutationResolvers,
87
+ }
88
+ /* Not a pure module */