@contember/engine-actions 2.1.0-alpha.9 → 2.1.0-beta.2

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 (405) hide show
  1. package/CLAUDE.md +47 -0
  2. package/dist/development/index.cjs +54 -24
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +54 -24
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +24 -11
  7. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  8. package/dist/development/src/ActionsExecutionContainerHookFactory.js +24 -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/LazyDispatchWorker.cjs +67 -0
  29. package/dist/development/src/dispatch/LazyDispatchWorker.cjs.map +1 -0
  30. package/dist/development/src/dispatch/LazyDispatchWorker.js +67 -0
  31. package/dist/development/src/dispatch/LazyDispatchWorker.js.map +1 -0
  32. package/dist/development/src/dispatch/ProjectDispatcher.cjs +3 -3
  33. package/dist/development/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  34. package/dist/development/src/dispatch/ProjectDispatcher.js +2 -2
  35. package/dist/development/src/dispatch/ProjectDispatcher.js.map +1 -1
  36. package/dist/development/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  37. package/dist/development/src/dispatch/TargetHandlerResolver.js.map +1 -1
  38. package/dist/development/src/dispatch/WebhookFetcher.cjs.map +1 -1
  39. package/dist/development/src/dispatch/WebhookFetcher.js.map +1 -1
  40. package/dist/development/src/dispatch/WebhookTargetHandler.cjs +6 -1
  41. package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  42. package/dist/development/src/dispatch/WebhookTargetHandler.js +6 -1
  43. package/dist/development/src/dispatch/WebhookTargetHandler.js.map +1 -1
  44. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs +1 -0
  45. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  46. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js +1 -0
  47. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  48. package/dist/development/src/graphql/http/ActionsContextResolver.cjs +8 -11
  49. package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  50. package/dist/development/src/graphql/http/ActionsContextResolver.js +8 -11
  51. package/dist/development/src/graphql/http/ActionsContextResolver.js.map +1 -1
  52. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  53. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  54. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs +6 -3
  55. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  56. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js +6 -3
  57. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  58. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs +7 -2
  59. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  60. package/dist/development/src/graphql/resolvers/ResolversFactory.js +8 -3
  61. package/dist/development/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  62. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  63. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  64. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
  65. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
  66. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
  67. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
  68. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  69. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  70. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
  71. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
  72. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
  73. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
  74. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs +14 -1
  75. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  76. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js +14 -1
  77. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  78. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  79. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  80. package/dist/development/src/graphql/schema/actions.graphql.cjs +18 -4
  81. package/dist/development/src/graphql/schema/actions.graphql.cjs.map +1 -1
  82. package/dist/development/src/graphql/schema/actions.graphql.js +18 -4
  83. package/dist/development/src/graphql/schema/actions.graphql.js.map +1 -1
  84. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -1
  85. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -1
  86. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
  87. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
  88. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
  89. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
  90. package/dist/development/src/migrations/index.cjs +3 -1
  91. package/dist/development/src/migrations/index.cjs.map +1 -1
  92. package/dist/development/src/migrations/index.js +3 -1
  93. package/dist/development/src/migrations/index.js.map +1 -1
  94. package/dist/development/src/migrations/snapshot.cjs +5 -2
  95. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  96. package/dist/development/src/migrations/snapshot.js +5 -2
  97. package/dist/development/src/migrations/snapshot.js.map +1 -1
  98. package/dist/development/src/model/EventByIdQuery.cjs +17 -0
  99. package/dist/development/src/model/EventByIdQuery.cjs.map +1 -0
  100. package/dist/development/src/model/EventByIdQuery.js +17 -0
  101. package/dist/development/src/model/EventByIdQuery.js.map +1 -0
  102. package/dist/development/src/model/EventsInProcessingQuery.cjs.map +1 -1
  103. package/dist/development/src/model/EventsInProcessingQuery.js.map +1 -1
  104. package/dist/development/src/model/EventsToProcessQuery.cjs.map +1 -1
  105. package/dist/development/src/model/EventsToProcessQuery.js.map +1 -1
  106. package/dist/development/src/model/EventsToProcessSpecification.cjs.map +1 -1
  107. package/dist/development/src/model/EventsToProcessSpecification.js.map +1 -1
  108. package/dist/development/src/model/FailedEventsQuery.cjs.map +1 -1
  109. package/dist/development/src/model/FailedEventsQuery.js.map +1 -1
  110. package/dist/development/src/model/SetVariableCommand.cjs.map +1 -1
  111. package/dist/development/src/model/SetVariableCommand.js.map +1 -1
  112. package/dist/development/src/model/VariablesManager.cjs.map +1 -1
  113. package/dist/development/src/model/VariablesManager.js.map +1 -1
  114. package/dist/development/src/model/VariablesQuery.cjs.map +1 -1
  115. package/dist/development/src/model/VariablesQuery.js.map +1 -1
  116. package/dist/development/src/triggers/TriggerHandler.cjs +17 -14
  117. package/dist/development/src/triggers/TriggerHandler.cjs.map +1 -1
  118. package/dist/development/src/triggers/TriggerHandler.js +17 -14
  119. package/dist/development/src/triggers/TriggerHandler.js.map +1 -1
  120. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs +44 -2
  121. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  122. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js +44 -2
  123. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  124. package/dist/development/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  125. package/dist/development/src/triggers/TriggerListenersBuilder.js.map +1 -1
  126. package/dist/development/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  127. package/dist/development/src/triggers/TriggerListenersFactory.js.map +1 -1
  128. package/dist/development/src/triggers/TriggerListenersStore.cjs.map +1 -1
  129. package/dist/development/src/triggers/TriggerListenersStore.js.map +1 -1
  130. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs +45 -16
  131. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  132. package/dist/development/src/triggers/TriggerPayloadBuilder.js +45 -16
  133. package/dist/development/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  134. package/dist/development/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  135. package/dist/development/src/triggers/TriggerPayloadManager.js.map +1 -1
  136. package/dist/development/src/triggers/TriggerPayloadPersister.cjs +36 -20
  137. package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  138. package/dist/development/src/triggers/TriggerPayloadPersister.js +36 -20
  139. package/dist/development/src/triggers/TriggerPayloadPersister.js.map +1 -1
  140. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  141. package/dist/development/src/utils/assertNever.js.map +1 -1
  142. package/dist/development/src/utils/map.cjs.map +1 -1
  143. package/dist/development/src/utils/map.js.map +1 -1
  144. package/dist/development/src/utils/notifyChannel.cjs +9 -0
  145. package/dist/development/src/utils/notifyChannel.cjs.map +1 -0
  146. package/dist/development/src/utils/notifyChannel.js +9 -0
  147. package/dist/development/src/utils/notifyChannel.js.map +1 -0
  148. package/dist/production/index.cjs +54 -24
  149. package/dist/production/index.cjs.map +1 -1
  150. package/dist/production/index.js +54 -24
  151. package/dist/production/index.js.map +1 -1
  152. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +24 -11
  153. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  154. package/dist/production/src/ActionsExecutionContainerHookFactory.js +24 -11
  155. package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  156. package/dist/production/src/ListenerStoreProvider.cjs.map +1 -1
  157. package/dist/production/src/ListenerStoreProvider.js.map +1 -1
  158. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs +2 -0
  159. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +1 -1
  160. package/dist/production/src/authorization/ActionsAuthorizationActions.js +2 -0
  161. package/dist/production/src/authorization/ActionsAuthorizationActions.js.map +1 -1
  162. package/dist/production/src/authorization/ActionsPermissionsFactory.cjs.map +1 -1
  163. package/dist/production/src/authorization/ActionsPermissionsFactory.js.map +1 -1
  164. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs +16 -14
  165. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -1
  166. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js +16 -14
  167. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js.map +1 -1
  168. package/dist/production/src/dispatch/EventDispatcher.cjs.map +1 -1
  169. package/dist/production/src/dispatch/EventDispatcher.js.map +1 -1
  170. package/dist/production/src/dispatch/EventsRepository.cjs +33 -15
  171. package/dist/production/src/dispatch/EventsRepository.cjs.map +1 -1
  172. package/dist/production/src/dispatch/EventsRepository.js +33 -15
  173. package/dist/production/src/dispatch/EventsRepository.js.map +1 -1
  174. package/dist/production/src/dispatch/LazyDispatchWorker.cjs +67 -0
  175. package/dist/production/src/dispatch/LazyDispatchWorker.cjs.map +1 -0
  176. package/dist/production/src/dispatch/LazyDispatchWorker.js +67 -0
  177. package/dist/production/src/dispatch/LazyDispatchWorker.js.map +1 -0
  178. package/dist/production/src/dispatch/ProjectDispatcher.cjs +3 -3
  179. package/dist/production/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  180. package/dist/production/src/dispatch/ProjectDispatcher.js +2 -2
  181. package/dist/production/src/dispatch/ProjectDispatcher.js.map +1 -1
  182. package/dist/production/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  183. package/dist/production/src/dispatch/TargetHandlerResolver.js.map +1 -1
  184. package/dist/production/src/dispatch/WebhookFetcher.cjs.map +1 -1
  185. package/dist/production/src/dispatch/WebhookFetcher.js.map +1 -1
  186. package/dist/production/src/dispatch/WebhookTargetHandler.cjs +6 -1
  187. package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  188. package/dist/production/src/dispatch/WebhookTargetHandler.js +6 -1
  189. package/dist/production/src/dispatch/WebhookTargetHandler.js.map +1 -1
  190. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs +1 -0
  191. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  192. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js +1 -0
  193. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  194. package/dist/production/src/graphql/http/ActionsContextResolver.cjs +8 -11
  195. package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  196. package/dist/production/src/graphql/http/ActionsContextResolver.js +8 -11
  197. package/dist/production/src/graphql/http/ActionsContextResolver.js.map +1 -1
  198. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  199. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  200. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs +6 -3
  201. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  202. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js +6 -3
  203. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  204. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs +7 -2
  205. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  206. package/dist/production/src/graphql/resolvers/ResolversFactory.js +8 -3
  207. package/dist/production/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  208. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  209. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  210. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
  211. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
  212. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
  213. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
  214. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  215. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  216. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
  217. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
  218. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
  219. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
  220. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs +14 -1
  221. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  222. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js +14 -1
  223. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  224. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  225. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  226. package/dist/production/src/graphql/schema/actions.graphql.cjs +18 -4
  227. package/dist/production/src/graphql/schema/actions.graphql.cjs.map +1 -1
  228. package/dist/production/src/graphql/schema/actions.graphql.js +18 -4
  229. package/dist/production/src/graphql/schema/actions.graphql.js.map +1 -1
  230. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -1
  231. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -1
  232. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
  233. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
  234. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
  235. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
  236. package/dist/production/src/migrations/index.cjs +3 -1
  237. package/dist/production/src/migrations/index.cjs.map +1 -1
  238. package/dist/production/src/migrations/index.js +3 -1
  239. package/dist/production/src/migrations/index.js.map +1 -1
  240. package/dist/production/src/migrations/snapshot.cjs +5 -2
  241. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  242. package/dist/production/src/migrations/snapshot.js +5 -2
  243. package/dist/production/src/migrations/snapshot.js.map +1 -1
  244. package/dist/production/src/model/EventByIdQuery.cjs +17 -0
  245. package/dist/production/src/model/EventByIdQuery.cjs.map +1 -0
  246. package/dist/production/src/model/EventByIdQuery.js +17 -0
  247. package/dist/production/src/model/EventByIdQuery.js.map +1 -0
  248. package/dist/production/src/model/EventsInProcessingQuery.cjs.map +1 -1
  249. package/dist/production/src/model/EventsInProcessingQuery.js.map +1 -1
  250. package/dist/production/src/model/EventsToProcessQuery.cjs.map +1 -1
  251. package/dist/production/src/model/EventsToProcessQuery.js.map +1 -1
  252. package/dist/production/src/model/EventsToProcessSpecification.cjs.map +1 -1
  253. package/dist/production/src/model/EventsToProcessSpecification.js.map +1 -1
  254. package/dist/production/src/model/FailedEventsQuery.cjs.map +1 -1
  255. package/dist/production/src/model/FailedEventsQuery.js.map +1 -1
  256. package/dist/production/src/model/SetVariableCommand.cjs.map +1 -1
  257. package/dist/production/src/model/SetVariableCommand.js.map +1 -1
  258. package/dist/production/src/model/VariablesManager.cjs.map +1 -1
  259. package/dist/production/src/model/VariablesManager.js.map +1 -1
  260. package/dist/production/src/model/VariablesQuery.cjs.map +1 -1
  261. package/dist/production/src/model/VariablesQuery.js.map +1 -1
  262. package/dist/production/src/triggers/TriggerHandler.cjs +17 -14
  263. package/dist/production/src/triggers/TriggerHandler.cjs.map +1 -1
  264. package/dist/production/src/triggers/TriggerHandler.js +17 -14
  265. package/dist/production/src/triggers/TriggerHandler.js.map +1 -1
  266. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs +44 -2
  267. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  268. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js +44 -2
  269. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  270. package/dist/production/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  271. package/dist/production/src/triggers/TriggerListenersBuilder.js.map +1 -1
  272. package/dist/production/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  273. package/dist/production/src/triggers/TriggerListenersFactory.js.map +1 -1
  274. package/dist/production/src/triggers/TriggerListenersStore.cjs.map +1 -1
  275. package/dist/production/src/triggers/TriggerListenersStore.js.map +1 -1
  276. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs +45 -16
  277. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  278. package/dist/production/src/triggers/TriggerPayloadBuilder.js +45 -16
  279. package/dist/production/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  280. package/dist/production/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  281. package/dist/production/src/triggers/TriggerPayloadManager.js.map +1 -1
  282. package/dist/production/src/triggers/TriggerPayloadPersister.cjs +36 -20
  283. package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  284. package/dist/production/src/triggers/TriggerPayloadPersister.js +36 -20
  285. package/dist/production/src/triggers/TriggerPayloadPersister.js.map +1 -1
  286. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  287. package/dist/production/src/utils/assertNever.js.map +1 -1
  288. package/dist/production/src/utils/map.cjs.map +1 -1
  289. package/dist/production/src/utils/map.js.map +1 -1
  290. package/dist/production/src/utils/notifyChannel.cjs +9 -0
  291. package/dist/production/src/utils/notifyChannel.cjs.map +1 -0
  292. package/dist/production/src/utils/notifyChannel.js +9 -0
  293. package/dist/production/src/utils/notifyChannel.js.map +1 -0
  294. package/dist/tests/cases/unit/lazyDispatchWorker.test.d.ts +2 -0
  295. package/dist/tests/cases/unit/lazyDispatchWorker.test.d.ts.map +1 -0
  296. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  297. package/dist/types/ActionsExecutionContainerHookFactory.d.ts.map +1 -1
  298. package/dist/types/authorization/ActionsAuthorizationActions.d.ts +10 -0
  299. package/dist/types/authorization/ActionsAuthorizationActions.d.ts.map +1 -1
  300. package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts.map +1 -1
  301. package/dist/types/dispatch/EventDispatcher.d.ts.map +1 -1
  302. package/dist/types/dispatch/EventsRepository.d.ts +2 -1
  303. package/dist/types/dispatch/EventsRepository.d.ts.map +1 -1
  304. package/dist/types/dispatch/LazyDispatchWorker.d.ts +11 -0
  305. package/dist/types/dispatch/LazyDispatchWorker.d.ts.map +1 -0
  306. package/dist/types/dispatch/ProjectDispatcher.d.ts.map +1 -1
  307. package/dist/types/dispatch/WebhookTargetHandler.d.ts.map +1 -1
  308. package/dist/types/dispatch/types.d.ts +1 -1
  309. package/dist/types/dispatch/types.d.ts.map +1 -1
  310. package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +1 -1
  311. package/dist/types/graphql/http/ActionsContextResolver.d.ts.map +1 -1
  312. package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +1 -1
  313. package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +1 -1
  314. package/dist/types/graphql/resolvers/ActionsContext.d.ts +3 -0
  315. package/dist/types/graphql/resolvers/ActionsContext.d.ts.map +1 -1
  316. package/dist/types/graphql/resolvers/ResolversFactory.d.ts +4 -2
  317. package/dist/types/graphql/resolvers/ResolversFactory.d.ts.map +1 -1
  318. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts +11 -0
  319. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts.map +1 -0
  320. package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +1 -1
  321. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts +11 -0
  322. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts.map +1 -0
  323. package/dist/types/graphql/resolvers/mutation/index.d.ts +2 -0
  324. package/dist/types/graphql/resolvers/mutation/index.d.ts.map +1 -1
  325. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts +3 -0
  326. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  327. package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +1 -1
  328. package/dist/types/graphql/schema/actions.graphql.d.ts.map +1 -1
  329. package/dist/types/graphql/schema/index.d.ts +45 -2
  330. package/dist/types/graphql/schema/index.d.ts.map +1 -1
  331. package/dist/types/index.d.ts +1 -1
  332. package/dist/types/index.d.ts.map +1 -1
  333. package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts.map +1 -1
  334. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts +3 -0
  335. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts.map +1 -0
  336. package/dist/types/migrations/index.d.ts.map +1 -1
  337. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  338. package/dist/types/model/EventByIdQuery.d.ts +8 -0
  339. package/dist/types/model/EventByIdQuery.d.ts.map +1 -0
  340. package/dist/types/model/EventsToProcessSpecification.d.ts.map +1 -1
  341. package/dist/types/model/SetVariableCommand.d.ts.map +1 -1
  342. package/dist/types/model/types.d.ts +3 -0
  343. package/dist/types/model/types.d.ts.map +1 -1
  344. package/dist/types/triggers/TriggerHandler.d.ts.map +1 -1
  345. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts +11 -3
  346. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts.map +1 -1
  347. package/dist/types/triggers/TriggerListeners.d.ts.map +1 -1
  348. package/dist/types/triggers/TriggerListenersBuilder.d.ts.map +1 -1
  349. package/dist/types/triggers/TriggerListenersStore.d.ts +2 -2
  350. package/dist/types/triggers/TriggerListenersStore.d.ts.map +1 -1
  351. package/dist/types/triggers/TriggerPayloadBuilder.d.ts.map +1 -1
  352. package/dist/types/triggers/TriggerPayloadManager.d.ts +2 -1
  353. package/dist/types/triggers/TriggerPayloadManager.d.ts.map +1 -1
  354. package/dist/types/triggers/TriggerPayloadPersister.d.ts +9 -4
  355. package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +1 -1
  356. package/dist/types/tsconfig.tsbuildinfo +1 -1
  357. package/dist/types/utils/notifyChannel.d.ts +4 -0
  358. package/dist/types/utils/notifyChannel.d.ts.map +1 -0
  359. package/graphql.codegen.yml +2 -2
  360. package/package.json +26 -21
  361. package/src/ActionsExecutionContainerHookFactory.ts +27 -11
  362. package/src/authorization/ActionsAuthorizationActions.ts +2 -0
  363. package/src/dispatch/DispatchWorkerSupervisor.ts +17 -16
  364. package/src/dispatch/EventDispatcher.ts +0 -2
  365. package/src/dispatch/EventsRepository.ts +63 -43
  366. package/src/dispatch/LazyDispatchWorker.ts +72 -0
  367. package/src/dispatch/ProjectDispatcher.ts +6 -11
  368. package/src/dispatch/WebhookTargetHandler.ts +18 -9
  369. package/src/dispatch/types.ts +1 -2
  370. package/src/graphql/http/ActionsApiMiddlewareFactory.ts +7 -5
  371. package/src/graphql/http/ActionsContextResolver.ts +1 -2
  372. package/src/graphql/http/ActionsGraphQLHandlerFactory.ts +0 -1
  373. package/src/graphql/http/ActionsWebsocketControllerFactory.ts +7 -5
  374. package/src/graphql/resolvers/ActionsContext.ts +1 -0
  375. package/src/graphql/resolvers/ResolversFactory.ts +9 -2
  376. package/src/graphql/resolvers/mutation/RetryEventMutationResolver.ts +22 -0
  377. package/src/graphql/resolvers/mutation/SetVariablesMutationResolver.ts +0 -1
  378. package/src/graphql/resolvers/mutation/StopEventMutationResolver.ts +19 -0
  379. package/src/graphql/resolvers/mutation/index.ts +2 -0
  380. package/src/graphql/resolvers/query/EventsQueryResolver.ts +15 -8
  381. package/src/graphql/resolvers/query/VariablesQueryResolver.ts +0 -1
  382. package/src/graphql/schema/actions.graphql.ts +18 -4
  383. package/src/graphql/schema/index.ts +84 -30
  384. package/src/index.ts +66 -35
  385. package/src/migrations/2023-03-10-145000-actions-variables.ts +1 -1
  386. package/src/migrations/2025-05-28-160000-action-event-user.ts +16 -0
  387. package/src/migrations/index.ts +2 -0
  388. package/src/migrations/snapshot.ts +6 -3
  389. package/src/model/EventByIdQuery.ts +21 -0
  390. package/src/model/EventsToProcessSpecification.ts +9 -8
  391. package/src/model/SetVariableCommand.ts +0 -1
  392. package/src/model/types.ts +3 -0
  393. package/src/triggers/TriggerHandler.ts +16 -15
  394. package/src/triggers/TriggerIndirectChangesFetcher.ts +62 -3
  395. package/src/triggers/TriggerListeners.ts +1 -8
  396. package/src/triggers/TriggerListenersBuilder.ts +3 -6
  397. package/src/triggers/TriggerListenersStore.ts +2 -2
  398. package/src/triggers/TriggerPayloadBuilder.ts +43 -13
  399. package/src/triggers/TriggerPayloadManager.ts +2 -4
  400. package/src/triggers/TriggerPayloadPersister.ts +28 -10
  401. package/src/utils/notifyChannel.ts +6 -0
  402. package/tests/cases/unit/generator.test.ts +133 -136
  403. package/tests/cases/unit/lazyDispatchWorker.test.ts +226 -0
  404. package/tests/cases/unit/webhookHandler.test.ts +47 -35
  405. package/vitest.config.ts +0 -3
@@ -1,9 +1,9 @@
1
1
  import { Client, InsertBuilder } from '@contember/database'
2
- import { Mapper } from '@contember/engine-content-api'
2
+ import { Mapper, TriggeredActionEvent, TriggeredActionsCollector } from '@contember/engine-content-api'
3
3
  import { Actions, ActionsPayload } from '@contember/schema'
4
4
  import { EventRow } from '../model/types'
5
+ import { notify } from '../utils/notifyChannel'
5
6
 
6
- export const NOTIFY_CHANNEL_NAME = 'actions_event'
7
7
  type EventRowToInsert = Omit<EventRow, 'created_at' | 'visible_at' | 'last_state_change' | 'log'> & {
8
8
  created_at: string | Date
9
9
  visible_at: string | Date
@@ -17,7 +17,10 @@ export class TriggerPayloadPersister {
17
17
  private readonly providers: { uuid: () => string },
18
18
  private readonly projectSlug: string,
19
19
  private readonly stageId: string,
20
- private readonly schemaId?: number,
20
+ private readonly schemaId: number | undefined,
21
+ private readonly identityId: string,
22
+ private readonly userInfo: { ipAddress: string | null; userAgent: string | null },
23
+ private readonly triggeredActionsCollector: TriggeredActionsCollector | undefined,
21
24
  ) {
22
25
  }
23
26
 
@@ -26,13 +29,17 @@ export class TriggerPayloadPersister {
26
29
  if (!this.schemaId) {
27
30
  throw new Error('Schema id is not set')
28
31
  }
32
+ const collector = this.triggeredActionsCollector
29
33
  for (let i = 0; i < payloads.length; i += chunkSize) {
30
34
  const chunk = payloads.slice(i, i + chunkSize)
31
- await InsertBuilder.create()
32
- .into('actions_event')
33
- .values(chunk.map((it): EventRowToInsert => ({
34
- id: this.providers.uuid(),
35
- transaction_id: this.mapper.transactionId,
35
+ const collected: TriggeredActionEvent[] | undefined = collector ? [] : undefined
36
+ const rows = chunk.map((it): EventRowToInsert => {
37
+ const id = this.providers.uuid()
38
+ const transactionId = this.mapper.transactionId
39
+ collected?.push({ id, trigger: trigger.name, target: trigger.target, transactionId })
40
+ return {
41
+ id,
42
+ transaction_id: transactionId,
36
43
  created_at: 'now',
37
44
  visible_at: 'now',
38
45
  num_retries: 0,
@@ -45,10 +52,21 @@ export class TriggerPayloadPersister {
45
52
  payload: it,
46
53
  resolved_at: null,
47
54
  last_state_change: 'now',
48
- })))
55
+ identity_id: this.identityId,
56
+ ip_address: this.userInfo.ipAddress,
57
+ user_agent: this.userInfo.userAgent,
58
+ }
59
+ })
60
+ await InsertBuilder.create()
61
+ .into('actions_event')
62
+ .values(rows)
49
63
  .execute(this.client)
64
+
65
+ if (collected && collected.length > 0) {
66
+ collector!.add(collected)
67
+ }
50
68
  }
51
69
 
52
- await this.client.query('SELECT pg_notify(?, ?)', [NOTIFY_CHANNEL_NAME, this.projectSlug])
70
+ await notify(this.client, this.projectSlug)
53
71
  }
54
72
  }
@@ -0,0 +1,6 @@
1
+ import { Client } from '@contember/database'
2
+
3
+ export const NOTIFY_CHANNEL_NAME = 'actions_event'
4
+ export const notify = async (db: Client, projectSlug: string) => {
5
+ await db.query('SELECT pg_notify(?, ?)', [NOTIFY_CHANNEL_NAME, projectSlug])
6
+ }
@@ -3,12 +3,11 @@ import { SchemaDefinition as def } from '@contember/schema-definition'
3
3
  import { Actions, Model } from '@contember/schema'
4
4
  import { expect, test } from 'bun:test'
5
5
 
6
-
7
6
  const assert = {
8
7
  equal: (a: any, b: any) => expect(a).toEqual(b),
9
8
  deepStrictEqual: (a: any, b: any) => expect(a).toStrictEqual(b),
10
9
  }
11
- const createTrigger = (watchNode: Actions.SelectionNode): Actions.AnyTrigger => ({
10
+ const createTrigger = (watchNode: Actions.SelectionNode): Actions.WatchTrigger => ({
12
11
  type: 'watch',
13
12
  entity: 'Author',
14
13
  name: 'author_trigger',
@@ -34,21 +33,24 @@ test('first level many-has-many owning', () => {
34
33
  const node = [['topics', {}, ['name']]] as const
35
34
  const trigger = createTrigger(node)
36
35
  const listeners = createEmptyListeners([], trigger)
37
- listeners.junctionListeners.set('Author', new Map([
38
- ['topics', [
39
- {
40
- type: 'junction',
41
- path: [],
42
- rootEntity: schema.entities.Author,
43
- context: {
44
- type: 'owning',
45
- entity: schema.entities.Author,
46
- relation: schema.entities.Author.fields.topics as Model.ManyHasManyOwningRelation,
36
+ listeners.junctionListeners.set(
37
+ 'Author',
38
+ new Map([
39
+ ['topics', [
40
+ {
41
+ type: 'junction',
42
+ path: [],
43
+ rootEntity: schema.entities.Author,
44
+ context: {
45
+ type: 'owning',
46
+ entity: schema.entities.Author,
47
+ relation: schema.entities.Author.fields.topics as Model.ManyHasManyOwningRelation,
48
+ },
49
+ trigger,
47
50
  },
48
- trigger,
49
- },
50
- ]],
51
- ]))
51
+ ]],
52
+ ]),
53
+ )
52
54
 
53
55
  listeners.indirectListeners.set('AuthorTopic', [{
54
56
  type: 'indirect',
@@ -59,31 +61,32 @@ test('first level many-has-many owning', () => {
59
61
  path: ['topics'],
60
62
  }])
61
63
 
62
-
63
64
  assert.deepStrictEqual(testBuilder(node), listeners)
64
65
  })
65
66
 
66
67
  test('first level many-has-many inverse', () => {
67
-
68
68
  const node = [['followers', {}, ['name']]] as const
69
69
  const trigger = createTrigger(node)
70
70
 
71
71
  const listeners = createEmptyListeners([], trigger)
72
- listeners.junctionListeners.set('User', new Map([
73
- ['following', [
74
- {
75
- type: 'junction',
76
- path: [],
77
- rootEntity: schema.entities.Author,
78
- context: {
79
- type: 'inverse',
80
- entity: schema.entities.Author,
81
- relation: schema.entities.Author.fields.followers as Model.ManyHasManyInverseRelation,
72
+ listeners.junctionListeners.set(
73
+ 'User',
74
+ new Map([
75
+ ['following', [
76
+ {
77
+ type: 'junction',
78
+ path: [],
79
+ rootEntity: schema.entities.Author,
80
+ context: {
81
+ type: 'inverse',
82
+ entity: schema.entities.Author,
83
+ relation: schema.entities.Author.fields.followers as Model.ManyHasManyInverseRelation,
84
+ },
85
+ trigger,
82
86
  },
83
- trigger,
84
- },
85
- ]],
86
- ]))
87
+ ]],
88
+ ]),
89
+ )
87
90
  listeners.indirectListeners.set('User', [{
88
91
  type: 'indirect',
89
92
  rootEntity: schema.entities.Author,
@@ -95,7 +98,6 @@ test('first level many-has-many inverse', () => {
95
98
  assert.deepStrictEqual(testBuilder(node), listeners)
96
99
  })
97
100
 
98
-
99
101
  test('first level one-has-one owning', () => {
100
102
  const node = [['avatar', {}, ['url']]] as const
101
103
  const trigger = createTrigger(node)
@@ -160,9 +162,7 @@ test('first level one-has-many', () => {
160
162
  assert.deepStrictEqual(testBuilder(node), listeners)
161
163
  })
162
164
 
163
-
164
165
  test('second level one-has-one owning', () => {
165
-
166
166
  const node = [['articles', {}, [['image', {}, ['url']]]]] as const
167
167
 
168
168
  const trigger = createTrigger(node)
@@ -188,7 +188,6 @@ test('second level one-has-one owning', () => {
188
188
  assert.deepStrictEqual(testBuilder(node), listeners)
189
189
  })
190
190
 
191
-
192
191
  test('second level one-has-one inverse', () => {
193
192
  const node = [['articles', {}, [['settings', {}, ['visible']]]]] as const
194
193
 
@@ -212,11 +211,9 @@ test('second level one-has-one inverse', () => {
212
211
  path: ['articles'],
213
212
  }])
214
213
 
215
-
216
214
  assert.deepStrictEqual(testBuilder(node), listeners)
217
215
  })
218
216
 
219
-
220
217
  test('second level one-has-many', () => {
221
218
  const node = [['articles', {}, [['comments', {}, ['content']]]]] as const
222
219
 
@@ -244,9 +241,7 @@ test('second level one-has-many', () => {
244
241
  assert.deepStrictEqual(testBuilder(node), listeners)
245
242
  })
246
243
 
247
-
248
244
  test('third level many-has-one', () => {
249
-
250
245
  const node = [['articles', {}, [['comments', {}, [['author', {}, ['name']]]]]]] as const
251
246
  const trigger = createTrigger(node)
252
247
 
@@ -281,10 +276,7 @@ test('third level many-has-one', () => {
281
276
  assert.deepStrictEqual(testBuilder(node), listeners)
282
277
  })
283
278
 
284
-
285
279
  test('second level many-has-one', () => {
286
-
287
-
288
280
  const node = [['articles', {}, [['category', {}, ['name']]]]] as const
289
281
  const trigger = createTrigger(node)
290
282
  const listeners = createEmptyListeners([], trigger)
@@ -309,27 +301,28 @@ test('second level many-has-one', () => {
309
301
  assert.deepStrictEqual(testBuilder(node), listeners)
310
302
  })
311
303
 
312
-
313
304
  test('second level many-has-many owning', () => {
314
-
315
305
  const node = [['articles', {}, [['tags', {}, ['name']]]]] as const
316
306
  const trigger = createTrigger(node)
317
307
  const listeners = createEmptyListeners([], trigger)
318
- listeners.junctionListeners.set('Article', new Map([
319
- ['tags', [
320
- {
321
- type: 'junction',
322
- path: ['articles'],
323
- rootEntity: schema.entities.Author,
324
- context: {
325
- entity: schema.entities.Article,
326
- relation: schema.entities.Article.fields.tags as Model.ManyHasManyOwningRelation,
327
- type: 'owning',
308
+ listeners.junctionListeners.set(
309
+ 'Article',
310
+ new Map([
311
+ ['tags', [
312
+ {
313
+ type: 'junction',
314
+ path: ['articles'],
315
+ rootEntity: schema.entities.Author,
316
+ context: {
317
+ entity: schema.entities.Article,
318
+ relation: schema.entities.Article.fields.tags as Model.ManyHasManyOwningRelation,
319
+ type: 'owning',
320
+ },
321
+ trigger,
328
322
  },
329
- trigger,
330
- },
331
- ]],
332
- ]))
323
+ ]],
324
+ ]),
325
+ )
333
326
 
334
327
  listeners.indirectListeners.set('Tag', [{
335
328
  type: 'indirect',
@@ -340,7 +333,6 @@ test('second level many-has-many owning', () => {
340
333
  path: ['articles', 'tags'],
341
334
  }])
342
335
 
343
-
344
336
  listeners.indirectListeners.set('Article', [{
345
337
  type: 'indirect',
346
338
  rootEntity: schema.entities.Author,
@@ -354,25 +346,27 @@ test('second level many-has-many owning', () => {
354
346
  })
355
347
 
356
348
  test('second level many-has-many inverse', () => {
357
-
358
349
  const node = [['articles', {}, [['likedBy', {}, ['name']]]]] as const
359
350
  const trigger = createTrigger(node)
360
351
  const listeners = createEmptyListeners([], trigger)
361
- listeners.junctionListeners.set('User', new Map([
362
- ['likes', [
363
- {
364
- type: 'junction',
365
- path: ['articles'],
366
- rootEntity: schema.entities.Author,
367
- context: {
368
- type: 'inverse',
369
- entity: schema.entities.Article,
370
- relation: schema.entities.Article.fields.likedBy as Model.ManyHasManyInverseRelation,
352
+ listeners.junctionListeners.set(
353
+ 'User',
354
+ new Map([
355
+ ['likes', [
356
+ {
357
+ type: 'junction',
358
+ path: ['articles'],
359
+ rootEntity: schema.entities.Author,
360
+ context: {
361
+ type: 'inverse',
362
+ entity: schema.entities.Article,
363
+ relation: schema.entities.Article.fields.likedBy as Model.ManyHasManyInverseRelation,
364
+ },
365
+ trigger,
371
366
  },
372
- trigger,
373
- },
374
- ]],
375
- ]))
367
+ ]],
368
+ ]),
369
+ )
376
370
 
377
371
  listeners.indirectListeners.set('User', [{
378
372
  type: 'indirect',
@@ -383,7 +377,6 @@ test('second level many-has-many inverse', () => {
383
377
  path: ['articles', 'likedBy'],
384
378
  }])
385
379
 
386
-
387
380
  listeners.indirectListeners.set('Article', [{
388
381
  type: 'indirect',
389
382
  rootEntity: schema.entities.Author,
@@ -396,7 +389,6 @@ test('second level many-has-many inverse', () => {
396
389
  assert.deepStrictEqual(testBuilder(node), listeners)
397
390
  })
398
391
 
399
-
400
392
  test('all above', () => {
401
393
  const node = [
402
394
  'name',
@@ -413,70 +405,78 @@ test('all above', () => {
413
405
  ['category', {}, ['name']],
414
406
  ['tags', {}, ['name']],
415
407
  ['likedBy', {}, ['name']],
416
-
417
408
  ]],
418
409
  ] as const
419
410
  const trigger = createTrigger(node)
420
411
  const listeners = createEmptyListeners(['name', 'avatar', 'supervisor'], trigger)
421
- listeners.junctionListeners.set('Author', new Map([
422
- ['topics', [
423
- {
424
- type: 'junction',
425
- path: [],
426
- rootEntity: schema.entities.Author,
427
- context: {
428
- type: 'owning',
429
- entity: schema.entities.Author,
430
- relation: schema.entities.Author.fields.topics as Model.ManyHasManyOwningRelation,
412
+ listeners.junctionListeners.set(
413
+ 'Author',
414
+ new Map([
415
+ ['topics', [
416
+ {
417
+ type: 'junction',
418
+ path: [],
419
+ rootEntity: schema.entities.Author,
420
+ context: {
421
+ type: 'owning',
422
+ entity: schema.entities.Author,
423
+ relation: schema.entities.Author.fields.topics as Model.ManyHasManyOwningRelation,
424
+ },
425
+ trigger,
431
426
  },
432
- trigger,
433
- },
434
- ]],
435
- ]))
436
- listeners.junctionListeners.set('User', new Map([
437
- ['following', [
438
- {
439
- type: 'junction',
440
- path: [],
441
- rootEntity: schema.entities.Author,
442
- context: {
443
- type: 'inverse',
444
- entity: schema.entities.Author,
445
- relation: schema.entities.Author.fields.followers as Model.ManyHasManyInverseRelation,
427
+ ]],
428
+ ]),
429
+ )
430
+ listeners.junctionListeners.set(
431
+ 'User',
432
+ new Map([
433
+ ['following', [
434
+ {
435
+ type: 'junction',
436
+ path: [],
437
+ rootEntity: schema.entities.Author,
438
+ context: {
439
+ type: 'inverse',
440
+ entity: schema.entities.Author,
441
+ relation: schema.entities.Author.fields.followers as Model.ManyHasManyInverseRelation,
442
+ },
443
+ trigger,
446
444
  },
447
- trigger,
448
- },
449
- ]],
450
- ['likes', [
451
- {
452
- type: 'junction',
453
- path: ['articles'],
454
- rootEntity: schema.entities.Author,
455
- context: {
456
- type: 'inverse',
457
- entity: schema.entities.Article,
458
- relation: schema.entities.Article.fields.likedBy as Model.ManyHasManyInverseRelation,
445
+ ]],
446
+ ['likes', [
447
+ {
448
+ type: 'junction',
449
+ path: ['articles'],
450
+ rootEntity: schema.entities.Author,
451
+ context: {
452
+ type: 'inverse',
453
+ entity: schema.entities.Article,
454
+ relation: schema.entities.Article.fields.likedBy as Model.ManyHasManyInverseRelation,
455
+ },
456
+ trigger,
459
457
  },
460
- trigger,
461
- },
462
- ]],
463
- ]))
464
-
465
- listeners.junctionListeners.set('Article', new Map([
466
- ['tags', [
467
- {
468
- type: 'junction',
469
- path: ['articles'],
470
- rootEntity: schema.entities.Author,
471
- context: {
472
- type: 'owning',
473
- entity: schema.entities.Article,
474
- relation: schema.entities.Article.fields.tags as Model.ManyHasManyOwningRelation,
458
+ ]],
459
+ ]),
460
+ )
461
+
462
+ listeners.junctionListeners.set(
463
+ 'Article',
464
+ new Map([
465
+ ['tags', [
466
+ {
467
+ type: 'junction',
468
+ path: ['articles'],
469
+ rootEntity: schema.entities.Author,
470
+ context: {
471
+ type: 'owning',
472
+ entity: schema.entities.Article,
473
+ relation: schema.entities.Article.fields.tags as Model.ManyHasManyOwningRelation,
474
+ },
475
+ trigger,
475
476
  },
476
- trigger,
477
- },
478
- ]],
479
- ]))
477
+ ]],
478
+ ]),
479
+ )
480
480
 
481
481
  listeners.indirectListeners.set('AuthorTopic', [{
482
482
  type: 'indirect',
@@ -569,7 +569,6 @@ test('all above', () => {
569
569
  path: ['articles', 'comments'],
570
570
  }])
571
571
 
572
-
573
572
  listeners.indirectListeners.set('Category', [{
574
573
  type: 'indirect',
575
574
  rootEntity: schema.entities.Author,
@@ -596,7 +595,6 @@ test('all above', () => {
596
595
  path: ['articles'],
597
596
  }])
598
597
 
599
-
600
598
  listeners.indirectListeners.set('AuthorTopic', [{
601
599
  type: 'indirect',
602
600
  rootEntity: schema.entities.Author,
@@ -609,7 +607,6 @@ test('all above', () => {
609
607
  assert.deepStrictEqual(testBuilder(node), listeners)
610
608
  })
611
609
 
612
-
613
610
  namespace WatchModel {
614
611
  export class Author {
615
612
  name = def.stringColumn()