@contember/engine-actions 2.1.0-alpha.8 → 2.1.0-beta.1

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 (390) hide show
  1. package/CLAUDE.md +47 -0
  2. package/dist/development/index.cjs +45 -21
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +45 -21
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +23 -11
  7. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  8. package/dist/development/src/ActionsExecutionContainerHookFactory.js +23 -11
  9. package/dist/development/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  10. package/dist/development/src/ListenerStoreProvider.cjs.map +1 -1
  11. package/dist/development/src/ListenerStoreProvider.js.map +1 -1
  12. package/dist/development/src/authorization/ActionsAuthorizationActions.cjs +2 -0
  13. package/dist/development/src/authorization/ActionsAuthorizationActions.cjs.map +1 -1
  14. package/dist/development/src/authorization/ActionsAuthorizationActions.js +2 -0
  15. package/dist/development/src/authorization/ActionsAuthorizationActions.js.map +1 -1
  16. package/dist/development/src/authorization/ActionsPermissionsFactory.cjs.map +1 -1
  17. package/dist/development/src/authorization/ActionsPermissionsFactory.js.map +1 -1
  18. package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs +16 -14
  19. package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -1
  20. package/dist/development/src/dispatch/DispatchWorkerSupervisor.js +16 -14
  21. package/dist/development/src/dispatch/DispatchWorkerSupervisor.js.map +1 -1
  22. package/dist/development/src/dispatch/EventDispatcher.cjs.map +1 -1
  23. package/dist/development/src/dispatch/EventDispatcher.js.map +1 -1
  24. package/dist/development/src/dispatch/EventsRepository.cjs +33 -15
  25. package/dist/development/src/dispatch/EventsRepository.cjs.map +1 -1
  26. package/dist/development/src/dispatch/EventsRepository.js +33 -15
  27. package/dist/development/src/dispatch/EventsRepository.js.map +1 -1
  28. package/dist/development/src/dispatch/ProjectDispatcher.cjs +3 -3
  29. package/dist/development/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  30. package/dist/development/src/dispatch/ProjectDispatcher.js +2 -2
  31. package/dist/development/src/dispatch/ProjectDispatcher.js.map +1 -1
  32. package/dist/development/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  33. package/dist/development/src/dispatch/TargetHandlerResolver.js.map +1 -1
  34. package/dist/development/src/dispatch/WebhookFetcher.cjs.map +1 -1
  35. package/dist/development/src/dispatch/WebhookFetcher.js.map +1 -1
  36. package/dist/development/src/dispatch/WebhookTargetHandler.cjs +6 -1
  37. package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  38. package/dist/development/src/dispatch/WebhookTargetHandler.js +6 -1
  39. package/dist/development/src/dispatch/WebhookTargetHandler.js.map +1 -1
  40. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs +1 -0
  41. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  42. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js +1 -0
  43. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  44. package/dist/development/src/graphql/http/ActionsContextResolver.cjs +8 -11
  45. package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  46. package/dist/development/src/graphql/http/ActionsContextResolver.js +8 -11
  47. package/dist/development/src/graphql/http/ActionsContextResolver.js.map +1 -1
  48. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  49. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  50. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs +6 -3
  51. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  52. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js +6 -3
  53. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  54. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs +7 -2
  55. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  56. package/dist/development/src/graphql/resolvers/ResolversFactory.js +8 -3
  57. package/dist/development/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  58. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  59. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  60. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
  61. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
  62. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
  63. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
  64. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  65. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  66. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
  67. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
  68. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
  69. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
  70. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs +14 -1
  71. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  72. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js +14 -1
  73. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  74. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  75. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  76. package/dist/development/src/graphql/schema/actions.graphql.cjs +18 -4
  77. package/dist/development/src/graphql/schema/actions.graphql.cjs.map +1 -1
  78. package/dist/development/src/graphql/schema/actions.graphql.js +18 -4
  79. package/dist/development/src/graphql/schema/actions.graphql.js.map +1 -1
  80. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -1
  81. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -1
  82. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
  83. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
  84. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
  85. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
  86. package/dist/development/src/migrations/index.cjs +3 -1
  87. package/dist/development/src/migrations/index.cjs.map +1 -1
  88. package/dist/development/src/migrations/index.js +3 -1
  89. package/dist/development/src/migrations/index.js.map +1 -1
  90. package/dist/development/src/migrations/snapshot.cjs +5 -2
  91. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  92. package/dist/development/src/migrations/snapshot.js +5 -2
  93. package/dist/development/src/migrations/snapshot.js.map +1 -1
  94. package/dist/development/src/model/EventByIdQuery.cjs +17 -0
  95. package/dist/development/src/model/EventByIdQuery.cjs.map +1 -0
  96. package/dist/development/src/model/EventByIdQuery.js +17 -0
  97. package/dist/development/src/model/EventByIdQuery.js.map +1 -0
  98. package/dist/development/src/model/EventsInProcessingQuery.cjs.map +1 -1
  99. package/dist/development/src/model/EventsInProcessingQuery.js.map +1 -1
  100. package/dist/development/src/model/EventsToProcessQuery.cjs.map +1 -1
  101. package/dist/development/src/model/EventsToProcessQuery.js.map +1 -1
  102. package/dist/development/src/model/EventsToProcessSpecification.cjs.map +1 -1
  103. package/dist/development/src/model/EventsToProcessSpecification.js.map +1 -1
  104. package/dist/development/src/model/FailedEventsQuery.cjs.map +1 -1
  105. package/dist/development/src/model/FailedEventsQuery.js.map +1 -1
  106. package/dist/development/src/model/SetVariableCommand.cjs.map +1 -1
  107. package/dist/development/src/model/SetVariableCommand.js.map +1 -1
  108. package/dist/development/src/model/VariablesManager.cjs.map +1 -1
  109. package/dist/development/src/model/VariablesManager.js.map +1 -1
  110. package/dist/development/src/model/VariablesQuery.cjs.map +1 -1
  111. package/dist/development/src/model/VariablesQuery.js.map +1 -1
  112. package/dist/development/src/triggers/TriggerHandler.cjs +17 -14
  113. package/dist/development/src/triggers/TriggerHandler.cjs.map +1 -1
  114. package/dist/development/src/triggers/TriggerHandler.js +17 -14
  115. package/dist/development/src/triggers/TriggerHandler.js.map +1 -1
  116. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs +44 -2
  117. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  118. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js +44 -2
  119. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  120. package/dist/development/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  121. package/dist/development/src/triggers/TriggerListenersBuilder.js.map +1 -1
  122. package/dist/development/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  123. package/dist/development/src/triggers/TriggerListenersFactory.js.map +1 -1
  124. package/dist/development/src/triggers/TriggerListenersStore.cjs.map +1 -1
  125. package/dist/development/src/triggers/TriggerListenersStore.js.map +1 -1
  126. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs +45 -16
  127. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  128. package/dist/development/src/triggers/TriggerPayloadBuilder.js +45 -16
  129. package/dist/development/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  130. package/dist/development/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  131. package/dist/development/src/triggers/TriggerPayloadManager.js.map +1 -1
  132. package/dist/development/src/triggers/TriggerPayloadPersister.cjs +9 -5
  133. package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  134. package/dist/development/src/triggers/TriggerPayloadPersister.js +9 -5
  135. package/dist/development/src/triggers/TriggerPayloadPersister.js.map +1 -1
  136. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  137. package/dist/development/src/utils/assertNever.js.map +1 -1
  138. package/dist/development/src/utils/map.cjs.map +1 -1
  139. package/dist/development/src/utils/map.js.map +1 -1
  140. package/dist/development/src/utils/notifyChannel.cjs +9 -0
  141. package/dist/development/src/utils/notifyChannel.cjs.map +1 -0
  142. package/dist/development/src/utils/notifyChannel.js +9 -0
  143. package/dist/development/src/utils/notifyChannel.js.map +1 -0
  144. package/dist/production/index.cjs +45 -21
  145. package/dist/production/index.cjs.map +1 -1
  146. package/dist/production/index.js +45 -21
  147. package/dist/production/index.js.map +1 -1
  148. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +23 -11
  149. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  150. package/dist/production/src/ActionsExecutionContainerHookFactory.js +23 -11
  151. package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  152. package/dist/production/src/ListenerStoreProvider.cjs.map +1 -1
  153. package/dist/production/src/ListenerStoreProvider.js.map +1 -1
  154. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs +2 -0
  155. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +1 -1
  156. package/dist/production/src/authorization/ActionsAuthorizationActions.js +2 -0
  157. package/dist/production/src/authorization/ActionsAuthorizationActions.js.map +1 -1
  158. package/dist/production/src/authorization/ActionsPermissionsFactory.cjs.map +1 -1
  159. package/dist/production/src/authorization/ActionsPermissionsFactory.js.map +1 -1
  160. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs +16 -14
  161. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -1
  162. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js +16 -14
  163. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js.map +1 -1
  164. package/dist/production/src/dispatch/EventDispatcher.cjs.map +1 -1
  165. package/dist/production/src/dispatch/EventDispatcher.js.map +1 -1
  166. package/dist/production/src/dispatch/EventsRepository.cjs +33 -15
  167. package/dist/production/src/dispatch/EventsRepository.cjs.map +1 -1
  168. package/dist/production/src/dispatch/EventsRepository.js +33 -15
  169. package/dist/production/src/dispatch/EventsRepository.js.map +1 -1
  170. package/dist/production/src/dispatch/ProjectDispatcher.cjs +3 -3
  171. package/dist/production/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  172. package/dist/production/src/dispatch/ProjectDispatcher.js +2 -2
  173. package/dist/production/src/dispatch/ProjectDispatcher.js.map +1 -1
  174. package/dist/production/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  175. package/dist/production/src/dispatch/TargetHandlerResolver.js.map +1 -1
  176. package/dist/production/src/dispatch/WebhookFetcher.cjs.map +1 -1
  177. package/dist/production/src/dispatch/WebhookFetcher.js.map +1 -1
  178. package/dist/production/src/dispatch/WebhookTargetHandler.cjs +6 -1
  179. package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  180. package/dist/production/src/dispatch/WebhookTargetHandler.js +6 -1
  181. package/dist/production/src/dispatch/WebhookTargetHandler.js.map +1 -1
  182. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs +1 -0
  183. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  184. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js +1 -0
  185. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  186. package/dist/production/src/graphql/http/ActionsContextResolver.cjs +8 -11
  187. package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  188. package/dist/production/src/graphql/http/ActionsContextResolver.js +8 -11
  189. package/dist/production/src/graphql/http/ActionsContextResolver.js.map +1 -1
  190. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  191. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  192. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs +6 -3
  193. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  194. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js +6 -3
  195. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  196. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs +7 -2
  197. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  198. package/dist/production/src/graphql/resolvers/ResolversFactory.js +8 -3
  199. package/dist/production/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  200. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  201. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  202. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
  203. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
  204. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
  205. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
  206. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  207. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  208. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
  209. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
  210. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
  211. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
  212. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs +14 -1
  213. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  214. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js +14 -1
  215. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  216. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  217. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  218. package/dist/production/src/graphql/schema/actions.graphql.cjs +18 -4
  219. package/dist/production/src/graphql/schema/actions.graphql.cjs.map +1 -1
  220. package/dist/production/src/graphql/schema/actions.graphql.js +18 -4
  221. package/dist/production/src/graphql/schema/actions.graphql.js.map +1 -1
  222. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -1
  223. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -1
  224. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
  225. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
  226. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
  227. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
  228. package/dist/production/src/migrations/index.cjs +3 -1
  229. package/dist/production/src/migrations/index.cjs.map +1 -1
  230. package/dist/production/src/migrations/index.js +3 -1
  231. package/dist/production/src/migrations/index.js.map +1 -1
  232. package/dist/production/src/migrations/snapshot.cjs +5 -2
  233. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  234. package/dist/production/src/migrations/snapshot.js +5 -2
  235. package/dist/production/src/migrations/snapshot.js.map +1 -1
  236. package/dist/production/src/model/EventByIdQuery.cjs +17 -0
  237. package/dist/production/src/model/EventByIdQuery.cjs.map +1 -0
  238. package/dist/production/src/model/EventByIdQuery.js +17 -0
  239. package/dist/production/src/model/EventByIdQuery.js.map +1 -0
  240. package/dist/production/src/model/EventsInProcessingQuery.cjs.map +1 -1
  241. package/dist/production/src/model/EventsInProcessingQuery.js.map +1 -1
  242. package/dist/production/src/model/EventsToProcessQuery.cjs.map +1 -1
  243. package/dist/production/src/model/EventsToProcessQuery.js.map +1 -1
  244. package/dist/production/src/model/EventsToProcessSpecification.cjs.map +1 -1
  245. package/dist/production/src/model/EventsToProcessSpecification.js.map +1 -1
  246. package/dist/production/src/model/FailedEventsQuery.cjs.map +1 -1
  247. package/dist/production/src/model/FailedEventsQuery.js.map +1 -1
  248. package/dist/production/src/model/SetVariableCommand.cjs.map +1 -1
  249. package/dist/production/src/model/SetVariableCommand.js.map +1 -1
  250. package/dist/production/src/model/VariablesManager.cjs.map +1 -1
  251. package/dist/production/src/model/VariablesManager.js.map +1 -1
  252. package/dist/production/src/model/VariablesQuery.cjs.map +1 -1
  253. package/dist/production/src/model/VariablesQuery.js.map +1 -1
  254. package/dist/production/src/triggers/TriggerHandler.cjs +17 -14
  255. package/dist/production/src/triggers/TriggerHandler.cjs.map +1 -1
  256. package/dist/production/src/triggers/TriggerHandler.js +17 -14
  257. package/dist/production/src/triggers/TriggerHandler.js.map +1 -1
  258. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs +44 -2
  259. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  260. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js +44 -2
  261. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  262. package/dist/production/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  263. package/dist/production/src/triggers/TriggerListenersBuilder.js.map +1 -1
  264. package/dist/production/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  265. package/dist/production/src/triggers/TriggerListenersFactory.js.map +1 -1
  266. package/dist/production/src/triggers/TriggerListenersStore.cjs.map +1 -1
  267. package/dist/production/src/triggers/TriggerListenersStore.js.map +1 -1
  268. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs +45 -16
  269. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  270. package/dist/production/src/triggers/TriggerPayloadBuilder.js +45 -16
  271. package/dist/production/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  272. package/dist/production/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  273. package/dist/production/src/triggers/TriggerPayloadManager.js.map +1 -1
  274. package/dist/production/src/triggers/TriggerPayloadPersister.cjs +9 -5
  275. package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  276. package/dist/production/src/triggers/TriggerPayloadPersister.js +9 -5
  277. package/dist/production/src/triggers/TriggerPayloadPersister.js.map +1 -1
  278. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  279. package/dist/production/src/utils/assertNever.js.map +1 -1
  280. package/dist/production/src/utils/map.cjs.map +1 -1
  281. package/dist/production/src/utils/map.js.map +1 -1
  282. package/dist/production/src/utils/notifyChannel.cjs +9 -0
  283. package/dist/production/src/utils/notifyChannel.cjs.map +1 -0
  284. package/dist/production/src/utils/notifyChannel.js +9 -0
  285. package/dist/production/src/utils/notifyChannel.js.map +1 -0
  286. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  287. package/dist/types/ActionsExecutionContainerHookFactory.d.ts.map +1 -1
  288. package/dist/types/authorization/ActionsAuthorizationActions.d.ts +10 -0
  289. package/dist/types/authorization/ActionsAuthorizationActions.d.ts.map +1 -1
  290. package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts.map +1 -1
  291. package/dist/types/dispatch/EventDispatcher.d.ts.map +1 -1
  292. package/dist/types/dispatch/EventsRepository.d.ts +2 -1
  293. package/dist/types/dispatch/EventsRepository.d.ts.map +1 -1
  294. package/dist/types/dispatch/ProjectDispatcher.d.ts.map +1 -1
  295. package/dist/types/dispatch/WebhookTargetHandler.d.ts.map +1 -1
  296. package/dist/types/dispatch/types.d.ts +1 -1
  297. package/dist/types/dispatch/types.d.ts.map +1 -1
  298. package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +1 -1
  299. package/dist/types/graphql/http/ActionsContextResolver.d.ts.map +1 -1
  300. package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +1 -1
  301. package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +1 -1
  302. package/dist/types/graphql/resolvers/ActionsContext.d.ts +3 -0
  303. package/dist/types/graphql/resolvers/ActionsContext.d.ts.map +1 -1
  304. package/dist/types/graphql/resolvers/ResolversFactory.d.ts +4 -2
  305. package/dist/types/graphql/resolvers/ResolversFactory.d.ts.map +1 -1
  306. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts +11 -0
  307. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts.map +1 -0
  308. package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +1 -1
  309. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts +11 -0
  310. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts.map +1 -0
  311. package/dist/types/graphql/resolvers/mutation/index.d.ts +2 -0
  312. package/dist/types/graphql/resolvers/mutation/index.d.ts.map +1 -1
  313. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts +3 -0
  314. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  315. package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +1 -1
  316. package/dist/types/graphql/schema/actions.graphql.d.ts.map +1 -1
  317. package/dist/types/graphql/schema/index.d.ts +45 -2
  318. package/dist/types/graphql/schema/index.d.ts.map +1 -1
  319. package/dist/types/index.d.ts +1 -1
  320. package/dist/types/index.d.ts.map +1 -1
  321. package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts.map +1 -1
  322. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts +3 -0
  323. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts.map +1 -0
  324. package/dist/types/migrations/index.d.ts.map +1 -1
  325. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  326. package/dist/types/model/EventByIdQuery.d.ts +8 -0
  327. package/dist/types/model/EventByIdQuery.d.ts.map +1 -0
  328. package/dist/types/model/EventsToProcessSpecification.d.ts.map +1 -1
  329. package/dist/types/model/SetVariableCommand.d.ts.map +1 -1
  330. package/dist/types/model/types.d.ts +3 -0
  331. package/dist/types/model/types.d.ts.map +1 -1
  332. package/dist/types/triggers/TriggerHandler.d.ts.map +1 -1
  333. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts +11 -3
  334. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts.map +1 -1
  335. package/dist/types/triggers/TriggerListeners.d.ts.map +1 -1
  336. package/dist/types/triggers/TriggerListenersBuilder.d.ts.map +1 -1
  337. package/dist/types/triggers/TriggerListenersStore.d.ts +2 -2
  338. package/dist/types/triggers/TriggerListenersStore.d.ts.map +1 -1
  339. package/dist/types/triggers/TriggerPayloadBuilder.d.ts.map +1 -1
  340. package/dist/types/triggers/TriggerPayloadManager.d.ts +2 -1
  341. package/dist/types/triggers/TriggerPayloadManager.d.ts.map +1 -1
  342. package/dist/types/triggers/TriggerPayloadPersister.d.ts +7 -3
  343. package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +1 -1
  344. package/dist/types/tsconfig.tsbuildinfo +1 -1
  345. package/dist/types/utils/notifyChannel.d.ts +4 -0
  346. package/dist/types/utils/notifyChannel.d.ts.map +1 -0
  347. package/graphql.codegen.yml +2 -2
  348. package/package.json +26 -21
  349. package/src/ActionsExecutionContainerHookFactory.ts +23 -11
  350. package/src/authorization/ActionsAuthorizationActions.ts +2 -0
  351. package/src/dispatch/DispatchWorkerSupervisor.ts +17 -16
  352. package/src/dispatch/EventDispatcher.ts +0 -2
  353. package/src/dispatch/EventsRepository.ts +63 -43
  354. package/src/dispatch/ProjectDispatcher.ts +6 -11
  355. package/src/dispatch/WebhookTargetHandler.ts +18 -9
  356. package/src/dispatch/types.ts +1 -2
  357. package/src/graphql/http/ActionsApiMiddlewareFactory.ts +7 -5
  358. package/src/graphql/http/ActionsContextResolver.ts +1 -2
  359. package/src/graphql/http/ActionsGraphQLHandlerFactory.ts +0 -1
  360. package/src/graphql/http/ActionsWebsocketControllerFactory.ts +7 -5
  361. package/src/graphql/resolvers/ActionsContext.ts +1 -0
  362. package/src/graphql/resolvers/ResolversFactory.ts +9 -2
  363. package/src/graphql/resolvers/mutation/RetryEventMutationResolver.ts +22 -0
  364. package/src/graphql/resolvers/mutation/SetVariablesMutationResolver.ts +0 -1
  365. package/src/graphql/resolvers/mutation/StopEventMutationResolver.ts +19 -0
  366. package/src/graphql/resolvers/mutation/index.ts +2 -0
  367. package/src/graphql/resolvers/query/EventsQueryResolver.ts +15 -8
  368. package/src/graphql/resolvers/query/VariablesQueryResolver.ts +0 -1
  369. package/src/graphql/schema/actions.graphql.ts +18 -4
  370. package/src/graphql/schema/index.ts +84 -30
  371. package/src/index.ts +55 -30
  372. package/src/migrations/2023-03-10-145000-actions-variables.ts +1 -1
  373. package/src/migrations/2025-05-28-160000-action-event-user.ts +16 -0
  374. package/src/migrations/index.ts +2 -0
  375. package/src/migrations/snapshot.ts +6 -3
  376. package/src/model/EventByIdQuery.ts +21 -0
  377. package/src/model/EventsToProcessSpecification.ts +9 -8
  378. package/src/model/SetVariableCommand.ts +0 -1
  379. package/src/model/types.ts +3 -0
  380. package/src/triggers/TriggerHandler.ts +16 -15
  381. package/src/triggers/TriggerIndirectChangesFetcher.ts +62 -3
  382. package/src/triggers/TriggerListeners.ts +1 -8
  383. package/src/triggers/TriggerListenersBuilder.ts +3 -6
  384. package/src/triggers/TriggerListenersStore.ts +2 -2
  385. package/src/triggers/TriggerPayloadBuilder.ts +43 -13
  386. package/src/triggers/TriggerPayloadManager.ts +2 -4
  387. package/src/triggers/TriggerPayloadPersister.ts +8 -3
  388. package/src/utils/notifyChannel.ts +6 -0
  389. package/tests/cases/unit/generator.test.ts +133 -136
  390. package/tests/cases/unit/webhookHandler.test.ts +47 -35
package/CLAUDE.md ADDED
@@ -0,0 +1,47 @@
1
+ # engine-actions
2
+
3
+ Event-driven webhook system. Captures entity changes, queues events, and dispatches them to external HTTP endpoints with retry logic.
4
+
5
+ ## Trigger Types
6
+
7
+ - **BasicTrigger**: Direct CRUD operations (create, update on specific fields, delete)
8
+ - **WatchTrigger**: Deep change tracking through relations — fires when any watched nested field changes
9
+
10
+ ## Architecture
11
+
12
+ ```
13
+ Entity mutation → EventManager listeners (TriggerHandler)
14
+ → TriggerPayloadManager accumulates events
15
+ → TriggerPayloadPersister saves to actions_event table (before commit)
16
+ → DispatchWorkerSupervisor runs ProjectDispatcher per project
17
+ → EventDispatcher.processBatch() fetches queued events
18
+ → WebhookTargetHandler sends HTTP POST to target URL
19
+ ```
20
+
21
+ ## Event Lifecycle
22
+
23
+ States: `created` → `processing` → `succeed` | `retrying` → `failed` | `stopped`
24
+
25
+ - 10-minute ACK timeout on processing
26
+ - Exponential backoff: 5s initial, 2x multiplier, max 10 attempts
27
+ - Pessimistic locking with `FOR NO KEY UPDATE SKIP LOCKED` for concurrent dispatch
28
+
29
+ ## Webhook Target
30
+
31
+ - Configurable: URL, headers, timeout (default 30s), batch size, max attempts
32
+ - Variable interpolation in URL/headers: `{{variableName}}`
33
+ - Response: optional `{ failures: [{ eventId, error }] }`
34
+ - Payload wrapped in meta envelope (eventId, transactionId, identity, timestamps, retries)
35
+
36
+ ## GraphQL API (mounted at `/actions/:projectSlug`)
37
+
38
+ Mutations: `processBatch`, `retryEvent`, `stopEvent`, `setVariables` (MERGE/SET/APPEND_ONLY_MISSING)
39
+
40
+ Queries: `failedEvents`, `eventsToProcess`, `eventsInProcessing`, `event`, `variables`
41
+
42
+ ## Plugin Integration
43
+
44
+ Implements `Plugin` interface with:
45
+ - `getExecutionContainerHook()` — attaches TriggerHandler to EventManager per request
46
+ - `getMasterContainerHook()` — adds dispatch worker, HTTP/WebSocket routes
47
+ - `getSystemMigrations()` — creates `actions_event`, `actions_variable` tables
@@ -8,6 +8,8 @@ const ActionsGraphQLHandlerFactory = require("./src/graphql/http/ActionsGraphQLH
8
8
  const ResolversFactory = require("./src/graphql/resolvers/ResolversFactory.cjs");
9
9
  const ProcessBatchMutationResolver = require("./src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs");
10
10
  const SetVariablesMutationResolver = require("./src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs");
11
+ const RetryEventMutationResolver = require("./src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs");
12
+ const StopEventMutationResolver = require("./src/graphql/resolvers/mutation/StopEventMutationResolver.cjs");
11
13
  const EventsQueryResolver = require("./src/graphql/resolvers/query/EventsQueryResolver.cjs");
12
14
  const EventDispatcher = require("./src/dispatch/EventDispatcher.cjs");
13
15
  const EventsRepository = require("./src/dispatch/EventsRepository.cjs");
@@ -47,34 +49,56 @@ class ActionsPlugin {
47
49
  const hook = (builder) => {
48
50
  return builder.addService("actions_variableManager", () => {
49
51
  return new VariablesManager.VariablesManager();
50
- }).addService("actions_eventDispatcher", ({ actions_variableManager }) => {
51
- const eventsRepository = new EventsRepository.EventsRepository();
52
+ }).addService("actions_eventRepository", () => {
53
+ return new EventsRepository.EventsRepository();
54
+ }).addService("actions_eventDispatcher", ({ actions_eventRepository, actions_variableManager }) => {
52
55
  const webhookTargetHandler = new WebhookTargetHandler.WebhookTargetHandler(new WebhookFetcher.WebhookFetcherNative());
53
56
  const targetHandlerResolver = new TargetHandlerResolver.TargetHandlerResolver(webhookTargetHandler);
54
- return new EventDispatcher.EventDispatcher(eventsRepository, actions_variableManager, targetHandlerResolver);
57
+ return new EventDispatcher.EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver);
55
58
  }).addService("actions_dispatchWorkerSupervisorFactory", ({ actions_eventDispatcher }) => {
56
59
  const projectDispatcherFactory = new ProjectDispatcher.ProjectDispatcherFactory(actions_eventDispatcher);
57
60
  return new DispatchWorkerSupervisor.DispatchWorkerSupervisorFactory(projectDispatcherFactory);
58
61
  }).addService("actions_authorizator", () => {
59
62
  return new authorization.Authorizator.Default(new authorization.AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory.ActionsPermissionsFactory().create()));
60
- }).setupService("application", (it, { projectContextResolver, debugMode, actions_eventDispatcher, actions_dispatchWorkerSupervisorFactory, actions_variableManager, actions_authorizator }) => {
61
- const handlerFactory = new ActionsGraphQLHandlerFactory.ActionsGraphQLHandlerFactory();
62
- const eventsQueryResolver = new EventsQueryResolver.EventsQueryResolver();
63
- const processBatchMutationResolver = new ProcessBatchMutationResolver.ProcessBatchMutationResolver(actions_eventDispatcher);
64
- const variablesQueryResolver = new VariablesQueryResolver.VariablesQueryResolver(actions_variableManager);
65
- const setVariablesMutationResolver = new SetVariablesMutationResolver.SetVariablesMutationResolver(actions_variableManager);
66
- const resolversFactory = new ResolversFactory.ResolversFactory(
67
- eventsQueryResolver,
68
- processBatchMutationResolver,
69
- variablesQueryResolver,
70
- setVariablesMutationResolver
71
- );
72
- const actionsContextResolver = new ActionsContextResolver.ActionsContextResolver(debugMode, projectContextResolver);
73
- const actionsMiddlewareFactory = new ActionsApiMiddlewareFactory.ActionsApiMiddlewareFactory(actionsContextResolver, handlerFactory.create(resolversFactory), actions_authorizator);
74
- const actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory.ActionsWebsocketControllerFactory(debugMode, actionsContextResolver, actions_dispatchWorkerSupervisorFactory);
75
- it.addRoute("actions", "/actions/:projectSlug", actionsMiddlewareFactory.create());
76
- it.addWebsocketRoute("actions", "/actions/_worker", actionsWebsocketMiddlewareFactory.create());
77
- }).setupService("applicationWorkers", (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {
63
+ }).setupService(
64
+ "application",
65
+ (it, {
66
+ projectContextResolver,
67
+ debugMode,
68
+ actions_eventRepository,
69
+ actions_eventDispatcher,
70
+ actions_dispatchWorkerSupervisorFactory,
71
+ actions_variableManager,
72
+ actions_authorizator
73
+ }) => {
74
+ const handlerFactory = new ActionsGraphQLHandlerFactory.ActionsGraphQLHandlerFactory();
75
+ const eventsQueryResolver = new EventsQueryResolver.EventsQueryResolver();
76
+ const processBatchMutationResolver = new ProcessBatchMutationResolver.ProcessBatchMutationResolver(actions_eventDispatcher);
77
+ const variablesQueryResolver = new VariablesQueryResolver.VariablesQueryResolver(actions_variableManager);
78
+ const setVariablesMutationResolver = new SetVariablesMutationResolver.SetVariablesMutationResolver(actions_variableManager);
79
+ const resolversFactory = new ResolversFactory.ResolversFactory(
80
+ eventsQueryResolver,
81
+ processBatchMutationResolver,
82
+ variablesQueryResolver,
83
+ setVariablesMutationResolver,
84
+ new RetryEventMutationResolver.RetryEventMutationResolver(actions_eventRepository),
85
+ new StopEventMutationResolver.StopEventMutationResolver(actions_eventRepository)
86
+ );
87
+ const actionsContextResolver = new ActionsContextResolver.ActionsContextResolver(debugMode, projectContextResolver);
88
+ const actionsMiddlewareFactory = new ActionsApiMiddlewareFactory.ActionsApiMiddlewareFactory(
89
+ actionsContextResolver,
90
+ handlerFactory.create(resolversFactory),
91
+ actions_authorizator
92
+ );
93
+ const actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory.ActionsWebsocketControllerFactory(
94
+ debugMode,
95
+ actionsContextResolver,
96
+ actions_dispatchWorkerSupervisorFactory
97
+ );
98
+ it.addRoute("actions", "/actions/:projectSlug", actionsMiddlewareFactory.create());
99
+ it.addWebsocketRoute("actions", "/actions/_worker", actionsWebsocketMiddlewareFactory.create());
100
+ }
101
+ ).setupService("applicationWorkers", (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {
78
102
  if (!serverConfig.projectGroup) {
79
103
  it.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer));
80
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport { EventsQueryResolver, ProcessBatchMutationResolver, SetVariablesMutationResolver } from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport {\n\tTriggerListenersFactory,\n\tTriggerListenersStore,\n\tTriggerHandler,\n\tTriggerPayloadManager,\n\tTriggerIndirectChangesFetcher,\n} from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_variableManager }) => {\n\t\t\t\t\tconst eventsRepository = new EventsRepository()\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(eventsRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService('application', (it, { projectContextResolver, debugMode, actions_eventDispatcher, actions_dispatchWorkerSupervisorFactory, actions_variableManager, actions_authorizator }) => {\n\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t)\n\n\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(actionsContextResolver, handlerFactory.create(resolversFactory), actions_authorizator)\n\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(debugMode, actionsContextResolver, actions_dispatchWorkerSupervisorFactory)\n\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t})\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":["migrationsGroup","ActionsExecutionContainerHookFactory","ListenerStoreProvider","VariablesManager","EventsRepository","WebhookTargetHandler","WebhookFetcherNative","TargetHandlerResolver","EventDispatcher","ProjectDispatcherFactory","DispatchWorkerSupervisorFactory","Authorizator","AccessEvaluator","ActionsPermissionsFactory","ActionsGraphQLHandlerFactory","EventsQueryResolver","ProcessBatchMutationResolver","VariablesQueryResolver","SetVariablesMutationResolver","ResolversFactory","ActionsContextResolver","ActionsApiMiddlewareFactory","ActionsWebsocketControllerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACQ,kBAAA,MAAA,QAAA,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AAC9B,WAAAA,MAAA;AAAA,EAAA;AAAA,EAGR,4BAA4B;AAC3B,UAAM,cAAc,IAAIC,0EAAqC,IAAIC,6CAAuB;AACxF,WAAO,YAAY,OAAO;AAAA,EAAA;AAAA,EAG3B,yBAAyB;AAClB,UAAA,OAA4B,CAAC,YAAoC;AAC/D,aAAA,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAiB;AAAA,MAC5B,CAAA,EACA,WAAW,2BAA2B,CAAC,EAAE,8BAA8B;AACjE,cAAA,mBAAmB,IAAIC,kCAAiB;AAC9C,cAAM,uBAAuB,IAAIC,0CAAqB,IAAIC,qCAAsB;AAC1E,cAAA,wBAAwB,IAAIC,sBAAA,sBAAsB,oBAAoB;AAC5E,eAAO,IAAIC,gBAAA,gBAAgB,kBAAkB,yBAAyB,qBAAqB;AAAA,MAC3F,CAAA,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACjF,cAAA,2BAA2B,IAAIC,kBAAA,yBAAyB,uBAAuB;AAC9E,eAAA,IAAIC,yDAAgC,wBAAwB;AAAA,MAAA,CACnE,EACA,WAAW,wBAAwB,MAAM;AAClC,eAAA,IAAIC,cAAAA,aAAa,QAAQ,IAAIC,cAAA,gBAAgB,oBAAoB,IAAIC,0BAA0B,0BAAA,EAAE,OAAO,CAAC,CAAC;AAAA,MACjH,CAAA,EACA,aAAa,eAAe,CAAC,IAAI,EAAE,wBAAwB,WAAW,yBAAyB,yCAAyC,yBAAyB,2BAA2B;AACtL,cAAA,iBAAiB,IAAIC,0DAA6B;AAClD,cAAA,sBAAsB,IAAIC,wCAAoB;AAC9C,cAAA,+BAA+B,IAAIC,6BAAA,6BAA6B,uBAAuB;AACvF,cAAA,yBAAyB,IAAIC,uBAAA,uBAAuB,uBAAuB;AAC3E,cAAA,+BAA+B,IAAIC,6BAAA,6BAA6B,uBAAuB;AAC7F,cAAM,mBAAmB,IAAIC,iBAAA;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAEA,cAAM,yBAAyB,IAAIC,8CAAuB,WAAW,sBAAsB;AACrF,cAAA,2BAA2B,IAAIC,4BAAAA,4BAA4B,wBAAwB,eAAe,OAAO,gBAAgB,GAAG,oBAAoB;AACtJ,cAAM,oCAAoC,IAAIC,kCAAAA,kCAAkC,WAAW,wBAAwB,uCAAuC;AAC1J,WAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,WAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,MAAA,CAC9F,EACA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AACzH,YAAA,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QAAA;AAAA,MACnG,CACA;AAAA,IAEH;AACO,WAAA;AAAA,EAAA;AAET;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":["migrationsGroup","ActionsExecutionContainerHookFactory","ListenerStoreProvider","VariablesManager","EventsRepository","WebhookTargetHandler","WebhookFetcherNative","TargetHandlerResolver","EventDispatcher","ProjectDispatcherFactory","DispatchWorkerSupervisorFactory","Authorizator","AccessEvaluator","ActionsPermissionsFactory","ActionsGraphQLHandlerFactory","EventsQueryResolver","ProcessBatchMutationResolver","VariablesQueryResolver","SetVariablesMutationResolver","ResolversFactory","RetryEventMutationResolver","StopEventMutationResolver","ActionsContextResolver","ActionsApiMiddlewareFactory","ActionsWebsocketControllerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAOA,MAAAA;AAAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAIC,0EAAqC,IAAIC,sBAAAA,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAIC,0CAAqB,IAAIC,eAAAA,sBAAsB;AAChF,cAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,oBAAoB;AAC5E,eAAO,IAAIC,gBAAAA,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAIC,kBAAAA,yBAAyB,uBAAuB;AACrF,eAAO,IAAIC,yBAAAA,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAIC,cAAAA,aAAa,QAAQ,IAAIC,cAAAA,gBAAgB,oBAAoB,IAAIC,0BAAAA,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAIC,0DAAA;AAC3B,gBAAM,sBAAsB,IAAIC,wCAAA;AAChC,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAIC,uBAAAA,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAIC,iBAAAA;AAAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAIC,2BAAAA,2BAA2B,uBAAuB;AAAA,YACtD,IAAIC,0BAAAA,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAIC,8CAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAIC,4BAAAA;AAAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAIC,kCAAAA;AAAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AAC7H,YAAI,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QACnG;AAAA,MACD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACR;AACD;;;;;;;;;"}
@@ -6,6 +6,8 @@ import { ActionsGraphQLHandlerFactory } from "./src/graphql/http/ActionsGraphQLH
6
6
  import { ResolversFactory } from "./src/graphql/resolvers/ResolversFactory.js";
7
7
  import { ProcessBatchMutationResolver } from "./src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js";
8
8
  import { SetVariablesMutationResolver } from "./src/graphql/resolvers/mutation/SetVariablesMutationResolver.js";
9
+ import { RetryEventMutationResolver } from "./src/graphql/resolvers/mutation/RetryEventMutationResolver.js";
10
+ import { StopEventMutationResolver } from "./src/graphql/resolvers/mutation/StopEventMutationResolver.js";
9
11
  import { EventsQueryResolver } from "./src/graphql/resolvers/query/EventsQueryResolver.js";
10
12
  import { EventDispatcher } from "./src/dispatch/EventDispatcher.js";
11
13
  import { EventsRepository } from "./src/dispatch/EventsRepository.js";
@@ -45,34 +47,56 @@ class ActionsPlugin {
45
47
  const hook = (builder) => {
46
48
  return builder.addService("actions_variableManager", () => {
47
49
  return new VariablesManager();
48
- }).addService("actions_eventDispatcher", ({ actions_variableManager }) => {
49
- const eventsRepository = new EventsRepository();
50
+ }).addService("actions_eventRepository", () => {
51
+ return new EventsRepository();
52
+ }).addService("actions_eventDispatcher", ({ actions_eventRepository, actions_variableManager }) => {
50
53
  const webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative());
51
54
  const targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler);
52
- return new EventDispatcher(eventsRepository, actions_variableManager, targetHandlerResolver);
55
+ return new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver);
53
56
  }).addService("actions_dispatchWorkerSupervisorFactory", ({ actions_eventDispatcher }) => {
54
57
  const projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher);
55
58
  return new DispatchWorkerSupervisorFactory(projectDispatcherFactory);
56
59
  }).addService("actions_authorizator", () => {
57
60
  return new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()));
58
- }).setupService("application", (it, { projectContextResolver, debugMode, actions_eventDispatcher, actions_dispatchWorkerSupervisorFactory, actions_variableManager, actions_authorizator }) => {
59
- const handlerFactory = new ActionsGraphQLHandlerFactory();
60
- const eventsQueryResolver = new EventsQueryResolver();
61
- const processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher);
62
- const variablesQueryResolver = new VariablesQueryResolver(actions_variableManager);
63
- const setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager);
64
- const resolversFactory = new ResolversFactory(
65
- eventsQueryResolver,
66
- processBatchMutationResolver,
67
- variablesQueryResolver,
68
- setVariablesMutationResolver
69
- );
70
- const actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver);
71
- const actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(actionsContextResolver, handlerFactory.create(resolversFactory), actions_authorizator);
72
- const actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(debugMode, actionsContextResolver, actions_dispatchWorkerSupervisorFactory);
73
- it.addRoute("actions", "/actions/:projectSlug", actionsMiddlewareFactory.create());
74
- it.addWebsocketRoute("actions", "/actions/_worker", actionsWebsocketMiddlewareFactory.create());
75
- }).setupService("applicationWorkers", (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {
61
+ }).setupService(
62
+ "application",
63
+ (it, {
64
+ projectContextResolver,
65
+ debugMode,
66
+ actions_eventRepository,
67
+ actions_eventDispatcher,
68
+ actions_dispatchWorkerSupervisorFactory,
69
+ actions_variableManager,
70
+ actions_authorizator
71
+ }) => {
72
+ const handlerFactory = new ActionsGraphQLHandlerFactory();
73
+ const eventsQueryResolver = new EventsQueryResolver();
74
+ const processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher);
75
+ const variablesQueryResolver = new VariablesQueryResolver(actions_variableManager);
76
+ const setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager);
77
+ const resolversFactory = new ResolversFactory(
78
+ eventsQueryResolver,
79
+ processBatchMutationResolver,
80
+ variablesQueryResolver,
81
+ setVariablesMutationResolver,
82
+ new RetryEventMutationResolver(actions_eventRepository),
83
+ new StopEventMutationResolver(actions_eventRepository)
84
+ );
85
+ const actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver);
86
+ const actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(
87
+ actionsContextResolver,
88
+ handlerFactory.create(resolversFactory),
89
+ actions_authorizator
90
+ );
91
+ const actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(
92
+ debugMode,
93
+ actionsContextResolver,
94
+ actions_dispatchWorkerSupervisorFactory
95
+ );
96
+ it.addRoute("actions", "/actions/:projectSlug", actionsMiddlewareFactory.create());
97
+ it.addWebsocketRoute("actions", "/actions/_worker", actionsWebsocketMiddlewareFactory.create());
98
+ }
99
+ ).setupService("applicationWorkers", (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {
76
100
  if (!serverConfig.projectGroup) {
77
101
  it.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer));
78
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport { EventsQueryResolver, ProcessBatchMutationResolver, SetVariablesMutationResolver } from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport {\n\tTriggerListenersFactory,\n\tTriggerListenersStore,\n\tTriggerHandler,\n\tTriggerPayloadManager,\n\tTriggerIndirectChangesFetcher,\n} from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_variableManager }) => {\n\t\t\t\t\tconst eventsRepository = new EventsRepository()\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(eventsRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService('application', (it, { projectContextResolver, debugMode, actions_eventDispatcher, actions_dispatchWorkerSupervisorFactory, actions_variableManager, actions_authorizator }) => {\n\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t)\n\n\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(actionsContextResolver, handlerFactory.create(resolversFactory), actions_authorizator)\n\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(debugMode, actionsContextResolver, actions_dispatchWorkerSupervisorFactory)\n\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t})\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACQ,kBAAA,MAAA,QAAA,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AAC9B,WAAA;AAAA,EAAA;AAAA,EAGR,4BAA4B;AAC3B,UAAM,cAAc,IAAI,qCAAqC,IAAI,uBAAuB;AACxF,WAAO,YAAY,OAAO;AAAA,EAAA;AAAA,EAG3B,yBAAyB;AAClB,UAAA,OAA4B,CAAC,YAAoC;AAC/D,aAAA,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAiB;AAAA,MAC5B,CAAA,EACA,WAAW,2BAA2B,CAAC,EAAE,8BAA8B;AACjE,cAAA,mBAAmB,IAAI,iBAAiB;AAC9C,cAAM,uBAAuB,IAAI,qBAAqB,IAAI,sBAAsB;AAC1E,cAAA,wBAAwB,IAAI,sBAAsB,oBAAoB;AAC5E,eAAO,IAAI,gBAAgB,kBAAkB,yBAAyB,qBAAqB;AAAA,MAC3F,CAAA,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACjF,cAAA,2BAA2B,IAAI,yBAAyB,uBAAuB;AAC9E,eAAA,IAAI,gCAAgC,wBAAwB;AAAA,MAAA,CACnE,EACA,WAAW,wBAAwB,MAAM;AAClC,eAAA,IAAI,aAAa,QAAQ,IAAI,gBAAgB,oBAAoB,IAAI,0BAA0B,EAAE,OAAO,CAAC,CAAC;AAAA,MACjH,CAAA,EACA,aAAa,eAAe,CAAC,IAAI,EAAE,wBAAwB,WAAW,yBAAyB,yCAAyC,yBAAyB,2BAA2B;AACtL,cAAA,iBAAiB,IAAI,6BAA6B;AAClD,cAAA,sBAAsB,IAAI,oBAAoB;AAC9C,cAAA,+BAA+B,IAAI,6BAA6B,uBAAuB;AACvF,cAAA,yBAAyB,IAAI,uBAAuB,uBAAuB;AAC3E,cAAA,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,cAAM,mBAAmB,IAAI;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAEA,cAAM,yBAAyB,IAAI,uBAAuB,WAAW,sBAAsB;AACrF,cAAA,2BAA2B,IAAI,4BAA4B,wBAAwB,eAAe,OAAO,gBAAgB,GAAG,oBAAoB;AACtJ,cAAM,oCAAoC,IAAI,kCAAkC,WAAW,wBAAwB,uCAAuC;AAC1J,WAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,WAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,MAAA,CAC9F,EACA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AACzH,YAAA,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QAAA;AAAA,MACnG,CACA;AAAA,IAEH;AACO,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAO;AAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAI,qCAAqC,IAAI,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAI,qBAAqB,IAAI,sBAAsB;AAChF,cAAM,wBAAwB,IAAI,sBAAsB,oBAAoB;AAC5E,eAAO,IAAI,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAI,yBAAyB,uBAAuB;AACrF,eAAO,IAAI,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAI,aAAa,QAAQ,IAAI,gBAAgB,oBAAoB,IAAI,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAI,6BAAA;AAC3B,gBAAM,sBAAsB,IAAI,oBAAA;AAChC,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAI,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAI;AAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI,2BAA2B,uBAAuB;AAAA,YACtD,IAAI,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAI,uBAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAI;AAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAI;AAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AAC7H,YAAI,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QACnG;AAAA,MACD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACR;AACD;"}
@@ -12,17 +12,29 @@ class ActionsExecutionContainerHookFactory {
12
12
  }
13
13
  create() {
14
14
  return (builder) => {
15
- return builder.setupService("mapperFactory", (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta }) => {
16
- mapperFactory.hooks.push((mapper) => {
17
- const triggerPayloadPersister = new TriggerPayloadPersister.TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schemaMeta.id);
18
- const triggerPayloadBuilder = new TriggerPayloadBuilder.TriggerPayloadBuilder(mapper);
19
- const payloadManager = new TriggerPayloadManager.TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
20
- const changesFetcher = new TriggerIndirectChangesFetcher.TriggerIndirectChangesFetcher(mapper, whereBuilder, pathFactory);
21
- const listenersStore = this.listenerStoreProvider.getListenerStore(schema);
22
- const triggerHandler = new TriggerHandler.TriggerHandler(payloadManager, listenersStore, changesFetcher);
23
- triggerHandler.attach(mapper.eventManager);
24
- });
25
- });
15
+ return builder.setupService(
16
+ "mapperFactory",
17
+ (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {
18
+ mapperFactory.hooks.push((mapper) => {
19
+ const triggerPayloadPersister = new TriggerPayloadPersister.TriggerPayloadPersister(
20
+ mapper,
21
+ mapper.db.forSchema(systemSchema),
22
+ providers,
23
+ project.slug,
24
+ stage.id,
25
+ schemaMeta.id,
26
+ mapper.identityId,
27
+ userInfo
28
+ );
29
+ const triggerPayloadBuilder = new TriggerPayloadBuilder.TriggerPayloadBuilder(mapper);
30
+ const payloadManager = new TriggerPayloadManager.TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
31
+ const changesFetcher = new TriggerIndirectChangesFetcher.TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory);
32
+ const listenersStore = this.listenerStoreProvider.getListenerStore(schema);
33
+ const triggerHandler = new TriggerHandler.TriggerHandler(payloadManager, listenersStore, changesFetcher);
34
+ triggerHandler.attach(mapper.eventManager);
35
+ });
36
+ }
37
+ );
26
38
  };
27
39
  }
28
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsExecutionContainerHookFactory.cjs","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService('mapperFactory', (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta }) => {\n\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schemaMeta.id)\n\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(mapper, whereBuilder, pathFactory)\n\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":["TriggerPayloadPersister","TriggerPayloadBuilder","TriggerPayloadManager","TriggerIndirectChangesFetcher","TriggerHandler"],"mappings":";;;;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAAA;AAAA,EAIlB,SAAiC;AAChC,WAAO,CAAW,YAAA;AACjB,aAAO,QAAQ,aAAa,iBAAiB,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,iBAAiB;AAC7I,sBAAA,MAAM,KAAK,CAAU,WAAA;AAClC,gBAAM,0BAA0B,IAAIA,wBAAwB,wBAAA,QAAQ,OAAO,GAAG,UAAU,YAAY,GAAG,WAAW,QAAQ,MAAM,MAAM,IAAI,WAAW,EAAE;AACjJ,gBAAA,wBAAwB,IAAIC,sBAAA,sBAAsB,MAAM;AAC9D,gBAAM,iBAAiB,IAAIC,4CAAsB,uBAAuB,uBAAuB;AAC/F,gBAAM,iBAAiB,IAAIC,8BAAAA,8BAA8B,QAAQ,cAAc,WAAW;AAC1F,gBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,gBAAM,iBAAiB,IAAIC,eAAAA,eAAe,gBAAgB,gBAAgB,cAAc;AACzE,yBAAA,OAAO,OAAO,YAAY;AAAA,QAAA,CACzC;AAAA,MAAA,CACD;AAAA,IACF;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"ActionsExecutionContainerHookFactory.cjs","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["TriggerPayloadPersister","TriggerPayloadBuilder","TriggerPayloadManager","TriggerIndirectChangesFetcher","TriggerHandler"],"mappings":";;;;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,eAAe;AACrI,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAIA,wBAAAA;AAAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAIC,4CAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAIC,8BAAAA,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAIC,eAAAA,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;;"}
@@ -10,17 +10,29 @@ class ActionsExecutionContainerHookFactory {
10
10
  }
11
11
  create() {
12
12
  return (builder) => {
13
- return builder.setupService("mapperFactory", (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta }) => {
14
- mapperFactory.hooks.push((mapper) => {
15
- const triggerPayloadPersister = new TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schemaMeta.id);
16
- const triggerPayloadBuilder = new TriggerPayloadBuilder(mapper);
17
- const payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
18
- const changesFetcher = new TriggerIndirectChangesFetcher(mapper, whereBuilder, pathFactory);
19
- const listenersStore = this.listenerStoreProvider.getListenerStore(schema);
20
- const triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher);
21
- triggerHandler.attach(mapper.eventManager);
22
- });
23
- });
13
+ return builder.setupService(
14
+ "mapperFactory",
15
+ (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {
16
+ mapperFactory.hooks.push((mapper) => {
17
+ const triggerPayloadPersister = new TriggerPayloadPersister(
18
+ mapper,
19
+ mapper.db.forSchema(systemSchema),
20
+ providers,
21
+ project.slug,
22
+ stage.id,
23
+ schemaMeta.id,
24
+ mapper.identityId,
25
+ userInfo
26
+ );
27
+ const triggerPayloadBuilder = new TriggerPayloadBuilder(mapper);
28
+ const payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
29
+ const changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory);
30
+ const listenersStore = this.listenerStoreProvider.getListenerStore(schema);
31
+ const triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher);
32
+ triggerHandler.attach(mapper.eventManager);
33
+ });
34
+ }
35
+ );
24
36
  };
25
37
  }
26
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsExecutionContainerHookFactory.js","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService('mapperFactory', (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta }) => {\n\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schemaMeta.id)\n\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(mapper, whereBuilder, pathFactory)\n\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAAA;AAAA,EAIlB,SAAiC;AAChC,WAAO,CAAW,YAAA;AACjB,aAAO,QAAQ,aAAa,iBAAiB,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,iBAAiB;AAC7I,sBAAA,MAAM,KAAK,CAAU,WAAA;AAClC,gBAAM,0BAA0B,IAAI,wBAAwB,QAAQ,OAAO,GAAG,UAAU,YAAY,GAAG,WAAW,QAAQ,MAAM,MAAM,IAAI,WAAW,EAAE;AACjJ,gBAAA,wBAAwB,IAAI,sBAAsB,MAAM;AAC9D,gBAAM,iBAAiB,IAAI,sBAAsB,uBAAuB,uBAAuB;AAC/F,gBAAM,iBAAiB,IAAI,8BAA8B,QAAQ,cAAc,WAAW;AAC1F,gBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,gBAAM,iBAAiB,IAAI,eAAe,gBAAgB,gBAAgB,cAAc;AACzE,yBAAA,OAAO,OAAO,YAAY;AAAA,QAAA,CACzC;AAAA,MAAA,CACD;AAAA,IACF;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"ActionsExecutionContainerHookFactory.js","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,eAAe;AACrI,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAI;AAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAI,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAI,sBAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAI,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAI,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerStoreProvider.cjs","sources":["../../../../packages/engine-actions/src/ListenerStoreProvider.ts"],"sourcesContent":["import { TriggerListenersFactory, TriggerListenersStore } from './triggers'\nimport { Schema } from '@contember/schema'\n\nexport class ListenerStoreProvider {\n\tprivate listenersStoreCache = new WeakMap<Schema, TriggerListenersStore>()\n\n\tpublic getListenerStore(schema: Schema): TriggerListenersStore {\n\t\tconst currentStore = this.listenersStoreCache.get(schema)\n\t\tif (currentStore) {\n\t\t\treturn currentStore\n\t\t}\n\t\tconst listenersFactory = new TriggerListenersFactory(schema)\n\t\tconst newStore = listenersFactory.create()\n\t\tthis.listenersStoreCache.set(schema, newStore)\n\t\treturn newStore\n\t}\n}\n"],"names":["TriggerListenersFactory"],"mappings":";;;;;;;;AAGO,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACE,kBAAA,MAAA,2CAA0B,QAAuC,CAAA;AAAA,EAAA;AAAA,EAElE,iBAAiB,QAAuC;AAC9D,UAAM,eAAe,KAAK,oBAAoB,IAAI,MAAM;AACxD,QAAI,cAAc;AACV,aAAA;AAAA,IAAA;AAEF,UAAA,mBAAmB,IAAIA,wBAAA,wBAAwB,MAAM;AACrD,UAAA,WAAW,iBAAiB,OAAO;AACpC,SAAA,oBAAoB,IAAI,QAAQ,QAAQ;AACtC,WAAA;AAAA,EAAA;AAET;;"}
1
+ {"version":3,"file":"ListenerStoreProvider.cjs","sources":["../../../../packages/engine-actions/src/ListenerStoreProvider.ts"],"sourcesContent":["import { TriggerListenersFactory, TriggerListenersStore } from './triggers'\nimport { Schema } from '@contember/schema'\n\nexport class ListenerStoreProvider {\n\tprivate listenersStoreCache = new WeakMap<Schema, TriggerListenersStore>()\n\n\tpublic getListenerStore(schema: Schema): TriggerListenersStore {\n\t\tconst currentStore = this.listenersStoreCache.get(schema)\n\t\tif (currentStore) {\n\t\t\treturn currentStore\n\t\t}\n\t\tconst listenersFactory = new TriggerListenersFactory(schema)\n\t\tconst newStore = listenersFactory.create()\n\t\tthis.listenersStoreCache.set(schema, newStore)\n\t\treturn newStore\n\t}\n}\n"],"names":["TriggerListenersFactory"],"mappings":";;;;;;;;AAGO,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACN,kBAAA,MAAQ,2CAA0B,QAAA,CAAuC;AAAA,EAAA;AAAA,EAElE,iBAAiB,QAAuC;AAC9D,UAAM,eAAe,KAAK,oBAAoB,IAAI,MAAM;AACxD,QAAI,cAAc;AACjB,aAAO;AAAA,IACR;AACA,UAAM,mBAAmB,IAAIA,wBAAAA,wBAAwB,MAAM;AAC3D,UAAM,WAAW,iBAAiB,OAAA;AAClC,SAAK,oBAAoB,IAAI,QAAQ,QAAQ;AAC7C,WAAO;AAAA,EACR;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerStoreProvider.js","sources":["../../../../packages/engine-actions/src/ListenerStoreProvider.ts"],"sourcesContent":["import { TriggerListenersFactory, TriggerListenersStore } from './triggers'\nimport { Schema } from '@contember/schema'\n\nexport class ListenerStoreProvider {\n\tprivate listenersStoreCache = new WeakMap<Schema, TriggerListenersStore>()\n\n\tpublic getListenerStore(schema: Schema): TriggerListenersStore {\n\t\tconst currentStore = this.listenersStoreCache.get(schema)\n\t\tif (currentStore) {\n\t\t\treturn currentStore\n\t\t}\n\t\tconst listenersFactory = new TriggerListenersFactory(schema)\n\t\tconst newStore = listenersFactory.create()\n\t\tthis.listenersStoreCache.set(schema, newStore)\n\t\treturn newStore\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAGO,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACE,kBAAA,MAAA,2CAA0B,QAAuC,CAAA;AAAA,EAAA;AAAA,EAElE,iBAAiB,QAAuC;AAC9D,UAAM,eAAe,KAAK,oBAAoB,IAAI,MAAM;AACxD,QAAI,cAAc;AACV,aAAA;AAAA,IAAA;AAEF,UAAA,mBAAmB,IAAI,wBAAwB,MAAM;AACrD,UAAA,WAAW,iBAAiB,OAAO;AACpC,SAAA,oBAAoB,IAAI,QAAQ,QAAQ;AACtC,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"ListenerStoreProvider.js","sources":["../../../../packages/engine-actions/src/ListenerStoreProvider.ts"],"sourcesContent":["import { TriggerListenersFactory, TriggerListenersStore } from './triggers'\nimport { Schema } from '@contember/schema'\n\nexport class ListenerStoreProvider {\n\tprivate listenersStoreCache = new WeakMap<Schema, TriggerListenersStore>()\n\n\tpublic getListenerStore(schema: Schema): TriggerListenersStore {\n\t\tconst currentStore = this.listenersStoreCache.get(schema)\n\t\tif (currentStore) {\n\t\t\treturn currentStore\n\t\t}\n\t\tconst listenersFactory = new TriggerListenersFactory(schema)\n\t\tconst newStore = listenersFactory.create()\n\t\tthis.listenersStoreCache.set(schema, newStore)\n\t\treturn newStore\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAGO,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACN,kBAAA,MAAQ,2CAA0B,QAAA,CAAuC;AAAA,EAAA;AAAA,EAElE,iBAAiB,QAAuC;AAC9D,UAAM,eAAe,KAAK,oBAAoB,IAAI,MAAM;AACxD,QAAI,cAAc;AACjB,aAAO;AAAA,IACR;AACA,UAAM,mBAAmB,IAAI,wBAAwB,MAAM;AAC3D,UAAM,WAAW,iBAAiB,OAAA;AAClC,SAAK,oBAAoB,IAAI,QAAQ,QAAQ;AAC7C,WAAO;AAAA,EACR;AACD;"}
@@ -11,5 +11,7 @@ exports.ActionsAuthorizationActions = void 0;
11
11
  ActionsAuthorizationActions2.VARIABLES_SET = authorization.Authorizator.createAction("variables", "set");
12
12
  ActionsAuthorizationActions2.EVENTS_VIEW = authorization.Authorizator.createAction("events", "view");
13
13
  ActionsAuthorizationActions2.EVENTS_PROCESS = authorization.Authorizator.createAction("events", "process");
14
+ ActionsAuthorizationActions2.EVENTS_RETRY = authorization.Authorizator.createAction("events", "retry");
15
+ ActionsAuthorizationActions2.EVENTS_STOP = authorization.Authorizator.createAction("events", "stop");
14
16
  })(exports.ActionsAuthorizationActions || (exports.ActionsAuthorizationActions = {}));
15
17
  //# sourceMappingURL=ActionsAuthorizationActions.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsAuthorizationActions.cjs","sources":["../../../../../packages/engine-actions/src/authorization/ActionsAuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace ActionsAuthorizationActions {\n\texport enum Resources {\n\t\tvariables = 'variables',\n\t\tevents = 'events',\n\t}\n\n\texport const VARIABLES_VIEW = Authorizator.createAction(Resources.variables, 'view')\n\texport const VARIABLES_SET = Authorizator.createAction(Resources.variables, 'set')\n\n\texport const EVENTS_VIEW = Authorizator.createAction(Resources.events, 'view')\n\texport const EVENTS_PROCESS = Authorizator.createAction(Resources.events, 'process')\n}\n"],"names":["ActionsAuthorizationActions","Resources","Authorizator"],"mappings":";;;AAEiBA,QAAAA,8BAAAA;AAAAA,CAAV,CAAUA,iCAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,WAAY,IAAA;AACZA,eAAA,QAAS,IAAA;AAAA,EAFE,GAAAD,6BAAA,cAAAA,6BAAA,YAAA,CAAA,EAAA;AAKCA,+BAAA,iBAAiBE,cAAAA,aAAa,aAAa,aAAqB,MAAM;AACtEF,+BAAA,gBAAgBE,cAAAA,aAAa,aAAa,aAAqB,KAAK;AAEpEF,+BAAA,cAAcE,cAAAA,aAAa,aAAa,UAAkB,MAAM;AAChEF,+BAAA,iBAAiBE,cAAAA,aAAa,aAAa,UAAkB,SAAS;AAAA,GAVnEF,QAAA,gCAAAA,sCAAA,CAAA,EAAA;"}
1
+ {"version":3,"file":"ActionsAuthorizationActions.cjs","sources":["../../../../../packages/engine-actions/src/authorization/ActionsAuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace ActionsAuthorizationActions {\n\texport enum Resources {\n\t\tvariables = 'variables',\n\t\tevents = 'events',\n\t}\n\n\texport const VARIABLES_VIEW = Authorizator.createAction(Resources.variables, 'view')\n\texport const VARIABLES_SET = Authorizator.createAction(Resources.variables, 'set')\n\n\texport const EVENTS_VIEW = Authorizator.createAction(Resources.events, 'view')\n\texport const EVENTS_PROCESS = Authorizator.createAction(Resources.events, 'process')\n\texport const EVENTS_RETRY = Authorizator.createAction(Resources.events, 'retry')\n\texport const EVENTS_STOP = Authorizator.createAction(Resources.events, 'stop')\n}\n"],"names":["ActionsAuthorizationActions","Resources","Authorizator"],"mappings":";;;AAEiBA,QAAAA,8BAAAA;AAAAA,CAAV,CAAUA,iCAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,WAAA,IAAY;AACZA,eAAA,QAAA,IAAS;AAAA,EAAA,GAFED,6BAAA,cAAAA,6BAAA,YAAA,CAAA,EAAA;AAKCA,+BAAA,iBAAiBE,cAAAA,aAAa,aAAa,aAAqB,MAAM;AACtEF,+BAAA,gBAAgBE,cAAAA,aAAa,aAAa,aAAqB,KAAK;AAEpEF,+BAAA,cAAcE,cAAAA,aAAa,aAAa,UAAkB,MAAM;AAChEF,+BAAA,iBAAiBE,cAAAA,aAAa,aAAa,UAAkB,SAAS;AACtEF,+BAAA,eAAeE,cAAAA,aAAa,aAAa,UAAkB,OAAO;AAClEF,+BAAA,cAAcE,cAAAA,aAAa,aAAa,UAAkB,MAAM;AAAA,GAZ7DF,QAAAA,gCAAAA,sCAAA,CAAA,EAAA;"}
@@ -9,6 +9,8 @@ var ActionsAuthorizationActions;
9
9
  ActionsAuthorizationActions2.VARIABLES_SET = Authorizator.createAction("variables", "set");
10
10
  ActionsAuthorizationActions2.EVENTS_VIEW = Authorizator.createAction("events", "view");
11
11
  ActionsAuthorizationActions2.EVENTS_PROCESS = Authorizator.createAction("events", "process");
12
+ ActionsAuthorizationActions2.EVENTS_RETRY = Authorizator.createAction("events", "retry");
13
+ ActionsAuthorizationActions2.EVENTS_STOP = Authorizator.createAction("events", "stop");
12
14
  })(ActionsAuthorizationActions || (ActionsAuthorizationActions = {}));
13
15
  export {
14
16
  ActionsAuthorizationActions
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsAuthorizationActions.js","sources":["../../../../../packages/engine-actions/src/authorization/ActionsAuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace ActionsAuthorizationActions {\n\texport enum Resources {\n\t\tvariables = 'variables',\n\t\tevents = 'events',\n\t}\n\n\texport const VARIABLES_VIEW = Authorizator.createAction(Resources.variables, 'view')\n\texport const VARIABLES_SET = Authorizator.createAction(Resources.variables, 'set')\n\n\texport const EVENTS_VIEW = Authorizator.createAction(Resources.events, 'view')\n\texport const EVENTS_PROCESS = Authorizator.createAction(Resources.events, 'process')\n}\n"],"names":["ActionsAuthorizationActions","Resources"],"mappings":";AAEiB,IAAA;AAAA,CAAV,CAAUA,iCAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,WAAY,IAAA;AACZA,eAAA,QAAS,IAAA;AAAA,EAFE,GAAAD,6BAAA,cAAAA,6BAAA,YAAA,CAAA,EAAA;AAKCA,+BAAA,iBAAiB,aAAa,aAAa,aAAqB,MAAM;AACtEA,+BAAA,gBAAgB,aAAa,aAAa,aAAqB,KAAK;AAEpEA,+BAAA,cAAc,aAAa,aAAa,UAAkB,MAAM;AAChEA,+BAAA,iBAAiB,aAAa,aAAa,UAAkB,SAAS;AAAA,GAVnE,gCAAA,8BAAA,CAAA,EAAA;"}
1
+ {"version":3,"file":"ActionsAuthorizationActions.js","sources":["../../../../../packages/engine-actions/src/authorization/ActionsAuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace ActionsAuthorizationActions {\n\texport enum Resources {\n\t\tvariables = 'variables',\n\t\tevents = 'events',\n\t}\n\n\texport const VARIABLES_VIEW = Authorizator.createAction(Resources.variables, 'view')\n\texport const VARIABLES_SET = Authorizator.createAction(Resources.variables, 'set')\n\n\texport const EVENTS_VIEW = Authorizator.createAction(Resources.events, 'view')\n\texport const EVENTS_PROCESS = Authorizator.createAction(Resources.events, 'process')\n\texport const EVENTS_RETRY = Authorizator.createAction(Resources.events, 'retry')\n\texport const EVENTS_STOP = Authorizator.createAction(Resources.events, 'stop')\n}\n"],"names":["ActionsAuthorizationActions","Resources"],"mappings":";AAEO,IAAU;AAAA,CAAV,CAAUA,iCAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,WAAA,IAAY;AACZA,eAAA,QAAA,IAAS;AAAA,EAAA,GAFED,6BAAA,cAAAA,6BAAA,YAAA,CAAA,EAAA;AAKCA,+BAAA,iBAAiB,aAAa,aAAa,aAAqB,MAAM;AACtEA,+BAAA,gBAAgB,aAAa,aAAa,aAAqB,KAAK;AAEpEA,+BAAA,cAAc,aAAa,aAAa,UAAkB,MAAM;AAChEA,+BAAA,iBAAiB,aAAa,aAAa,UAAkB,SAAS;AACtEA,+BAAA,eAAe,aAAa,aAAa,UAAkB,OAAO;AAClEA,+BAAA,cAAc,aAAa,aAAa,UAAkB,MAAM;AAAA,GAZ7D,gCAAA,8BAAA,CAAA,EAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsPermissionsFactory.cjs","sources":["../../../../../packages/engine-actions/src/authorization/ActionsPermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { ActionsAuthorizationActions } from './ActionsAuthorizationActions'\n\nexport class ActionsPermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_SET)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_VIEW)\n\n\t\treturn permissions\n\t}\n}\n"],"names":["Permissions","ProjectRole","ActionsAuthorizationActions"],"mappings":";;;;;AAIO,MAAM,0BAA0B;AAAA,EAC/B,SAAsB;AACtB,UAAA,cAAc,IAAIA,0BAAY;AACxB,gBAAA,MAAMC,mBAAY,OAAO,EAAE,UAAUD,0BAAY,KAAK,WAAWA,cAAY,YAAA,IAAA,CAAK;AAC9F,gBAAY,MAAMC,OAAAA,YAAY,UAAUC,4BAAAA,4BAA4B,aAAa;AACjF,gBAAY,MAAMD,OAAAA,YAAY,UAAUC,4BAAAA,4BAA4B,cAAc;AAE3E,WAAA;AAAA,EAAA;AAET;;"}
1
+ {"version":3,"file":"ActionsPermissionsFactory.cjs","sources":["../../../../../packages/engine-actions/src/authorization/ActionsPermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { ActionsAuthorizationActions } from './ActionsAuthorizationActions'\n\nexport class ActionsPermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_SET)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_VIEW)\n\n\t\treturn permissions\n\t}\n}\n"],"names":["Permissions","ProjectRole","ActionsAuthorizationActions"],"mappings":";;;;;AAIO,MAAM,0BAA0B;AAAA,EAC/B,SAAsB;AAC5B,UAAM,cAAc,IAAIA,0BAAA;AACxB,gBAAY,MAAMC,mBAAY,OAAO,EAAE,UAAUD,cAAAA,YAAY,KAAK,WAAWA,cAAAA,YAAY,IAAA,CAAK;AAC9F,gBAAY,MAAMC,OAAAA,YAAY,UAAUC,4BAAAA,4BAA4B,aAAa;AACjF,gBAAY,MAAMD,OAAAA,YAAY,UAAUC,4BAAAA,4BAA4B,cAAc;AAElF,WAAO;AAAA,EACR;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsPermissionsFactory.js","sources":["../../../../../packages/engine-actions/src/authorization/ActionsPermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { ActionsAuthorizationActions } from './ActionsAuthorizationActions'\n\nexport class ActionsPermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_SET)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_VIEW)\n\n\t\treturn permissions\n\t}\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,0BAA0B;AAAA,EAC/B,SAAsB;AACtB,UAAA,cAAc,IAAI,YAAY;AACxB,gBAAA,MAAM,YAAY,OAAO,EAAE,UAAU,YAAY,KAAK,WAAW,YAAY,IAAA,CAAK;AAC9F,gBAAY,MAAM,YAAY,UAAU,4BAA4B,aAAa;AACjF,gBAAY,MAAM,YAAY,UAAU,4BAA4B,cAAc;AAE3E,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"ActionsPermissionsFactory.js","sources":["../../../../../packages/engine-actions/src/authorization/ActionsPermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { ActionsAuthorizationActions } from './ActionsAuthorizationActions'\n\nexport class ActionsPermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_SET)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, ActionsAuthorizationActions.VARIABLES_VIEW)\n\n\t\treturn permissions\n\t}\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,0BAA0B;AAAA,EAC/B,SAAsB;AAC5B,UAAM,cAAc,IAAI,YAAA;AACxB,gBAAY,MAAM,YAAY,OAAO,EAAE,UAAU,YAAY,KAAK,WAAW,YAAY,IAAA,CAAK;AAC9F,gBAAY,MAAM,YAAY,UAAU,4BAA4B,aAAa;AACjF,gBAAY,MAAM,YAAY,UAAU,4BAA4B,cAAc;AAElF,WAAO;AAAA,EACR;AACD;"}
@@ -63,21 +63,23 @@ class DispatchWorkerSupervisor {
63
63
  throw e;
64
64
  }
65
65
  };
66
- const projectTracker = new engineCommon.Supervisor(new Database.AcquiringListener(
67
- tenantContainer.databaseContext.client,
68
- "project_updated",
69
- async () => {
70
- logger.debug("Project config change detected, reloading dispatch workers");
71
- await endProjectWorkers();
72
- try {
73
- await startWorkers(true);
74
- } catch (e) {
75
- logger.error(e, { message: "Dispatch workers reload failed, terminating" });
76
- await endAll();
77
- onError(e);
66
+ const projectTracker = new engineCommon.Supervisor(
67
+ new Database.AcquiringListener(
68
+ tenantContainer.databaseContext.client,
69
+ "project_updated",
70
+ async () => {
71
+ logger.debug("Project config change detected, reloading dispatch workers");
72
+ await endProjectWorkers();
73
+ try {
74
+ await startWorkers(true);
75
+ } catch (e) {
76
+ logger.error(e, { message: "Dispatch workers reload failed, terminating" });
77
+ await endAll();
78
+ onError(e);
79
+ }
78
80
  }
79
- }
80
- ));
81
+ )
82
+ );
81
83
  const runningProjectTracker = await projectTracker.run({
82
84
  logger,
83
85
  onError: () => {