@contember/engine-actions 2.1.0-alpha.30 → 2.1.0-alpha.35

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 (544) hide show
  1. package/graphql.codegen.yml +1 -1
  2. package/package.json +27 -22
  3. package/src/ActionsExecutionContainerHookFactory.ts +23 -11
  4. package/src/dispatch/DispatchWorkerSupervisor.ts +17 -16
  5. package/src/dispatch/EventDispatcher.ts +0 -2
  6. package/src/dispatch/EventsRepository.ts +41 -40
  7. package/src/dispatch/ProjectDispatcher.ts +5 -10
  8. package/src/dispatch/WebhookTargetHandler.ts +15 -9
  9. package/src/dispatch/types.ts +1 -2
  10. package/src/graphql/http/ActionsApiMiddlewareFactory.ts +6 -5
  11. package/src/graphql/http/ActionsContextResolver.ts +1 -2
  12. package/src/graphql/http/ActionsGraphQLHandlerFactory.ts +0 -1
  13. package/src/graphql/http/ActionsWebsocketControllerFactory.ts +7 -5
  14. package/src/graphql/resolvers/ResolversFactory.ts +3 -1
  15. package/src/graphql/resolvers/mutation/SetVariablesMutationResolver.ts +0 -1
  16. package/src/graphql/resolvers/query/EventsQueryResolver.ts +1 -8
  17. package/src/graphql/resolvers/query/VariablesQueryResolver.ts +0 -1
  18. package/src/graphql/schema/index.ts +37 -36
  19. package/src/index.ts +50 -29
  20. package/src/migrations/2023-03-10-145000-actions-variables.ts +1 -1
  21. package/src/migrations/2025-05-28-160000-action-event-user.ts +1 -1
  22. package/src/migrations/snapshot.ts +1 -1
  23. package/src/model/EventsToProcessSpecification.ts +9 -8
  24. package/src/model/SetVariableCommand.ts +0 -1
  25. package/src/triggers/TriggerHandler.ts +5 -5
  26. package/src/triggers/TriggerListeners.ts +1 -8
  27. package/src/triggers/TriggerListenersBuilder.ts +3 -6
  28. package/src/triggers/TriggerPayloadBuilder.ts +25 -12
  29. package/src/triggers/TriggerPayloadManager.ts +0 -3
  30. package/src/triggers/TriggerPayloadPersister.ts +0 -1
  31. package/tests/cases/unit/generator.test.ts +132 -135
  32. package/tests/cases/unit/webhookHandler.test.ts +44 -41
  33. package/dist/development/index.cjs +0 -99
  34. package/dist/development/index.cjs.map +0 -1
  35. package/dist/development/index.js +0 -99
  36. package/dist/development/index.js.map +0 -1
  37. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +0 -30
  38. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +0 -1
  39. package/dist/development/src/ActionsExecutionContainerHookFactory.js +0 -30
  40. package/dist/development/src/ActionsExecutionContainerHookFactory.js.map +0 -1
  41. package/dist/development/src/ImplementationException.cjs +0 -6
  42. package/dist/development/src/ImplementationException.cjs.map +0 -1
  43. package/dist/development/src/ImplementationException.js +0 -6
  44. package/dist/development/src/ImplementationException.js.map +0 -1
  45. package/dist/development/src/ListenerStoreProvider.cjs +0 -25
  46. package/dist/development/src/ListenerStoreProvider.cjs.map +0 -1
  47. package/dist/development/src/ListenerStoreProvider.js +0 -25
  48. package/dist/development/src/ListenerStoreProvider.js.map +0 -1
  49. package/dist/development/src/authorization/ActionsAuthorizationActions.cjs +0 -17
  50. package/dist/development/src/authorization/ActionsAuthorizationActions.cjs.map +0 -1
  51. package/dist/development/src/authorization/ActionsAuthorizationActions.js +0 -18
  52. package/dist/development/src/authorization/ActionsAuthorizationActions.js.map +0 -1
  53. package/dist/development/src/authorization/ActionsPermissionsFactory.cjs +0 -16
  54. package/dist/development/src/authorization/ActionsPermissionsFactory.cjs.map +0 -1
  55. package/dist/development/src/authorization/ActionsPermissionsFactory.js +0 -16
  56. package/dist/development/src/authorization/ActionsPermissionsFactory.js.map +0 -1
  57. package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs +0 -125
  58. package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs.map +0 -1
  59. package/dist/development/src/dispatch/DispatchWorkerSupervisor.js +0 -125
  60. package/dist/development/src/dispatch/DispatchWorkerSupervisor.js.map +0 -1
  61. package/dist/development/src/dispatch/EventDispatcher.cjs +0 -43
  62. package/dist/development/src/dispatch/EventDispatcher.cjs.map +0 -1
  63. package/dist/development/src/dispatch/EventDispatcher.js +0 -43
  64. package/dist/development/src/dispatch/EventDispatcher.js.map +0 -1
  65. package/dist/development/src/dispatch/EventsRepository.cjs +0 -117
  66. package/dist/development/src/dispatch/EventsRepository.cjs.map +0 -1
  67. package/dist/development/src/dispatch/EventsRepository.js +0 -117
  68. package/dist/development/src/dispatch/EventsRepository.js.map +0 -1
  69. package/dist/development/src/dispatch/ProjectDispatcher.cjs +0 -99
  70. package/dist/development/src/dispatch/ProjectDispatcher.cjs.map +0 -1
  71. package/dist/development/src/dispatch/ProjectDispatcher.js +0 -99
  72. package/dist/development/src/dispatch/ProjectDispatcher.js.map +0 -1
  73. package/dist/development/src/dispatch/TargetHandlerResolver.cjs +0 -16
  74. package/dist/development/src/dispatch/TargetHandlerResolver.cjs.map +0 -1
  75. package/dist/development/src/dispatch/TargetHandlerResolver.js +0 -16
  76. package/dist/development/src/dispatch/TargetHandlerResolver.js.map +0 -1
  77. package/dist/development/src/dispatch/WebhookFetcher.cjs +0 -16
  78. package/dist/development/src/dispatch/WebhookFetcher.cjs.map +0 -1
  79. package/dist/development/src/dispatch/WebhookFetcher.js +0 -16
  80. package/dist/development/src/dispatch/WebhookFetcher.js.map +0 -1
  81. package/dist/development/src/dispatch/WebhookTargetHandler.cjs +0 -196
  82. package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +0 -1
  83. package/dist/development/src/dispatch/WebhookTargetHandler.js +0 -179
  84. package/dist/development/src/dispatch/WebhookTargetHandler.js.map +0 -1
  85. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs +0 -39
  86. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +0 -1
  87. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js +0 -39
  88. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +0 -1
  89. package/dist/development/src/graphql/http/ActionsContextResolver.cjs +0 -39
  90. package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +0 -1
  91. package/dist/development/src/graphql/http/ActionsContextResolver.js +0 -39
  92. package/dist/development/src/graphql/http/ActionsContextResolver.js.map +0 -1
  93. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs +0 -20
  94. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +0 -1
  95. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js +0 -20
  96. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +0 -1
  97. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs +0 -149
  98. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +0 -1
  99. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js +0 -132
  100. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +0 -1
  101. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs +0 -36
  102. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +0 -1
  103. package/dist/development/src/graphql/resolvers/ResolversFactory.js +0 -36
  104. package/dist/development/src/graphql/resolvers/ResolversFactory.js.map +0 -1
  105. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs +0 -19
  106. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +0 -1
  107. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +0 -19
  108. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +0 -1
  109. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +0 -21
  110. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +0 -1
  111. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +0 -21
  112. package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +0 -1
  113. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs +0 -19
  114. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +0 -1
  115. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +0 -19
  116. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +0 -1
  117. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +0 -19
  118. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +0 -1
  119. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js +0 -19
  120. package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +0 -1
  121. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs +0 -61
  122. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +0 -1
  123. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js +0 -61
  124. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js.map +0 -1
  125. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs +0 -19
  126. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +0 -1
  127. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js +0 -19
  128. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js.map +0 -1
  129. package/dist/development/src/graphql/schema/actions.graphql.cjs +0 -107
  130. package/dist/development/src/graphql/schema/actions.graphql.cjs.map +0 -1
  131. package/dist/development/src/graphql/schema/actions.graphql.js +0 -107
  132. package/dist/development/src/graphql/schema/actions.graphql.js.map +0 -1
  133. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs +0 -16
  134. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs.map +0 -1
  135. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js +0 -17
  136. package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js.map +0 -1
  137. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs +0 -16
  138. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs.map +0 -1
  139. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js +0 -17
  140. package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js.map +0 -1
  141. package/dist/development/src/migrations/index.cjs +0 -12
  142. package/dist/development/src/migrations/index.cjs.map +0 -1
  143. package/dist/development/src/migrations/index.js +0 -12
  144. package/dist/development/src/migrations/index.js.map +0 -1
  145. package/dist/development/src/migrations/snapshot.cjs +0 -51
  146. package/dist/development/src/migrations/snapshot.cjs.map +0 -1
  147. package/dist/development/src/migrations/snapshot.js +0 -52
  148. package/dist/development/src/migrations/snapshot.js.map +0 -1
  149. package/dist/development/src/model/EventByIdQuery.cjs +0 -17
  150. package/dist/development/src/model/EventByIdQuery.cjs.map +0 -1
  151. package/dist/development/src/model/EventByIdQuery.js +0 -17
  152. package/dist/development/src/model/EventByIdQuery.js.map +0 -1
  153. package/dist/development/src/model/EventsInProcessingQuery.cjs +0 -14
  154. package/dist/development/src/model/EventsInProcessingQuery.cjs.map +0 -1
  155. package/dist/development/src/model/EventsInProcessingQuery.js +0 -14
  156. package/dist/development/src/model/EventsInProcessingQuery.js.map +0 -1
  157. package/dist/development/src/model/EventsToProcessQuery.cjs +0 -15
  158. package/dist/development/src/model/EventsToProcessQuery.cjs.map +0 -1
  159. package/dist/development/src/model/EventsToProcessQuery.js +0 -15
  160. package/dist/development/src/model/EventsToProcessQuery.js.map +0 -1
  161. package/dist/development/src/model/EventsToProcessSpecification.cjs +0 -8
  162. package/dist/development/src/model/EventsToProcessSpecification.cjs.map +0 -1
  163. package/dist/development/src/model/EventsToProcessSpecification.js +0 -8
  164. package/dist/development/src/model/EventsToProcessSpecification.js.map +0 -1
  165. package/dist/development/src/model/FailedEventsQuery.cjs +0 -14
  166. package/dist/development/src/model/FailedEventsQuery.cjs.map +0 -1
  167. package/dist/development/src/model/FailedEventsQuery.js +0 -14
  168. package/dist/development/src/model/FailedEventsQuery.js.map +0 -1
  169. package/dist/development/src/model/SetVariableCommand.cjs +0 -21
  170. package/dist/development/src/model/SetVariableCommand.cjs.map +0 -1
  171. package/dist/development/src/model/SetVariableCommand.js +0 -21
  172. package/dist/development/src/model/SetVariableCommand.js.map +0 -1
  173. package/dist/development/src/model/VariablesManager.cjs +0 -41
  174. package/dist/development/src/model/VariablesManager.cjs.map +0 -1
  175. package/dist/development/src/model/VariablesManager.js +0 -41
  176. package/dist/development/src/model/VariablesManager.js.map +0 -1
  177. package/dist/development/src/model/VariablesQuery.cjs +0 -10
  178. package/dist/development/src/model/VariablesQuery.cjs.map +0 -1
  179. package/dist/development/src/model/VariablesQuery.js +0 -10
  180. package/dist/development/src/model/VariablesQuery.js.map +0 -1
  181. package/dist/development/src/triggers/TriggerHandler.cjs +0 -127
  182. package/dist/development/src/triggers/TriggerHandler.cjs.map +0 -1
  183. package/dist/development/src/triggers/TriggerHandler.js +0 -127
  184. package/dist/development/src/triggers/TriggerHandler.js.map +0 -1
  185. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs +0 -63
  186. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +0 -1
  187. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js +0 -63
  188. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js.map +0 -1
  189. package/dist/development/src/triggers/TriggerListenersBuilder.cjs +0 -169
  190. package/dist/development/src/triggers/TriggerListenersBuilder.cjs.map +0 -1
  191. package/dist/development/src/triggers/TriggerListenersBuilder.js +0 -169
  192. package/dist/development/src/triggers/TriggerListenersBuilder.js.map +0 -1
  193. package/dist/development/src/triggers/TriggerListenersFactory.cjs +0 -17
  194. package/dist/development/src/triggers/TriggerListenersFactory.cjs.map +0 -1
  195. package/dist/development/src/triggers/TriggerListenersFactory.js +0 -17
  196. package/dist/development/src/triggers/TriggerListenersFactory.js.map +0 -1
  197. package/dist/development/src/triggers/TriggerListenersStore.cjs +0 -24
  198. package/dist/development/src/triggers/TriggerListenersStore.cjs.map +0 -1
  199. package/dist/development/src/triggers/TriggerListenersStore.js +0 -24
  200. package/dist/development/src/triggers/TriggerListenersStore.js.map +0 -1
  201. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs +0 -149
  202. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +0 -1
  203. package/dist/development/src/triggers/TriggerPayloadBuilder.js +0 -149
  204. package/dist/development/src/triggers/TriggerPayloadBuilder.js.map +0 -1
  205. package/dist/development/src/triggers/TriggerPayloadManager.cjs +0 -27
  206. package/dist/development/src/triggers/TriggerPayloadManager.cjs.map +0 -1
  207. package/dist/development/src/triggers/TriggerPayloadManager.js +0 -27
  208. package/dist/development/src/triggers/TriggerPayloadManager.js.map +0 -1
  209. package/dist/development/src/triggers/TriggerPayloadPersister.cjs +0 -47
  210. package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +0 -1
  211. package/dist/development/src/triggers/TriggerPayloadPersister.js +0 -47
  212. package/dist/development/src/triggers/TriggerPayloadPersister.js.map +0 -1
  213. package/dist/development/src/utils/assertNever.cjs +0 -7
  214. package/dist/development/src/utils/assertNever.cjs.map +0 -1
  215. package/dist/development/src/utils/assertNever.js +0 -7
  216. package/dist/development/src/utils/assertNever.js.map +0 -1
  217. package/dist/development/src/utils/map.cjs +0 -13
  218. package/dist/development/src/utils/map.cjs.map +0 -1
  219. package/dist/development/src/utils/map.js +0 -13
  220. package/dist/development/src/utils/map.js.map +0 -1
  221. package/dist/development/src/utils/notifyChannel.cjs +0 -9
  222. package/dist/development/src/utils/notifyChannel.cjs.map +0 -1
  223. package/dist/development/src/utils/notifyChannel.js +0 -9
  224. package/dist/development/src/utils/notifyChannel.js.map +0 -1
  225. package/dist/production/index.cjs +0 -99
  226. package/dist/production/index.cjs.map +0 -1
  227. package/dist/production/index.js +0 -99
  228. package/dist/production/index.js.map +0 -1
  229. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +0 -30
  230. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +0 -1
  231. package/dist/production/src/ActionsExecutionContainerHookFactory.js +0 -30
  232. package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +0 -1
  233. package/dist/production/src/ImplementationException.cjs +0 -6
  234. package/dist/production/src/ImplementationException.cjs.map +0 -1
  235. package/dist/production/src/ImplementationException.js +0 -6
  236. package/dist/production/src/ImplementationException.js.map +0 -1
  237. package/dist/production/src/ListenerStoreProvider.cjs +0 -25
  238. package/dist/production/src/ListenerStoreProvider.cjs.map +0 -1
  239. package/dist/production/src/ListenerStoreProvider.js +0 -25
  240. package/dist/production/src/ListenerStoreProvider.js.map +0 -1
  241. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs +0 -17
  242. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +0 -1
  243. package/dist/production/src/authorization/ActionsAuthorizationActions.js +0 -18
  244. package/dist/production/src/authorization/ActionsAuthorizationActions.js.map +0 -1
  245. package/dist/production/src/authorization/ActionsPermissionsFactory.cjs +0 -16
  246. package/dist/production/src/authorization/ActionsPermissionsFactory.cjs.map +0 -1
  247. package/dist/production/src/authorization/ActionsPermissionsFactory.js +0 -16
  248. package/dist/production/src/authorization/ActionsPermissionsFactory.js.map +0 -1
  249. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs +0 -125
  250. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +0 -1
  251. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js +0 -125
  252. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js.map +0 -1
  253. package/dist/production/src/dispatch/EventDispatcher.cjs +0 -43
  254. package/dist/production/src/dispatch/EventDispatcher.cjs.map +0 -1
  255. package/dist/production/src/dispatch/EventDispatcher.js +0 -43
  256. package/dist/production/src/dispatch/EventDispatcher.js.map +0 -1
  257. package/dist/production/src/dispatch/EventsRepository.cjs +0 -117
  258. package/dist/production/src/dispatch/EventsRepository.cjs.map +0 -1
  259. package/dist/production/src/dispatch/EventsRepository.js +0 -117
  260. package/dist/production/src/dispatch/EventsRepository.js.map +0 -1
  261. package/dist/production/src/dispatch/ProjectDispatcher.cjs +0 -99
  262. package/dist/production/src/dispatch/ProjectDispatcher.cjs.map +0 -1
  263. package/dist/production/src/dispatch/ProjectDispatcher.js +0 -99
  264. package/dist/production/src/dispatch/ProjectDispatcher.js.map +0 -1
  265. package/dist/production/src/dispatch/TargetHandlerResolver.cjs +0 -16
  266. package/dist/production/src/dispatch/TargetHandlerResolver.cjs.map +0 -1
  267. package/dist/production/src/dispatch/TargetHandlerResolver.js +0 -16
  268. package/dist/production/src/dispatch/TargetHandlerResolver.js.map +0 -1
  269. package/dist/production/src/dispatch/WebhookFetcher.cjs +0 -16
  270. package/dist/production/src/dispatch/WebhookFetcher.cjs.map +0 -1
  271. package/dist/production/src/dispatch/WebhookFetcher.js +0 -16
  272. package/dist/production/src/dispatch/WebhookFetcher.js.map +0 -1
  273. package/dist/production/src/dispatch/WebhookTargetHandler.cjs +0 -196
  274. package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +0 -1
  275. package/dist/production/src/dispatch/WebhookTargetHandler.js +0 -179
  276. package/dist/production/src/dispatch/WebhookTargetHandler.js.map +0 -1
  277. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs +0 -39
  278. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +0 -1
  279. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js +0 -39
  280. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +0 -1
  281. package/dist/production/src/graphql/http/ActionsContextResolver.cjs +0 -39
  282. package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +0 -1
  283. package/dist/production/src/graphql/http/ActionsContextResolver.js +0 -39
  284. package/dist/production/src/graphql/http/ActionsContextResolver.js.map +0 -1
  285. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs +0 -20
  286. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +0 -1
  287. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js +0 -20
  288. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +0 -1
  289. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs +0 -149
  290. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +0 -1
  291. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js +0 -132
  292. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +0 -1
  293. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs +0 -36
  294. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +0 -1
  295. package/dist/production/src/graphql/resolvers/ResolversFactory.js +0 -36
  296. package/dist/production/src/graphql/resolvers/ResolversFactory.js.map +0 -1
  297. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs +0 -19
  298. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +0 -1
  299. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +0 -19
  300. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +0 -1
  301. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +0 -21
  302. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +0 -1
  303. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +0 -21
  304. package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +0 -1
  305. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs +0 -19
  306. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +0 -1
  307. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +0 -19
  308. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +0 -1
  309. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +0 -19
  310. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +0 -1
  311. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js +0 -19
  312. package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +0 -1
  313. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs +0 -61
  314. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +0 -1
  315. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js +0 -61
  316. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js.map +0 -1
  317. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs +0 -19
  318. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +0 -1
  319. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js +0 -19
  320. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js.map +0 -1
  321. package/dist/production/src/graphql/schema/actions.graphql.cjs +0 -107
  322. package/dist/production/src/graphql/schema/actions.graphql.cjs.map +0 -1
  323. package/dist/production/src/graphql/schema/actions.graphql.js +0 -107
  324. package/dist/production/src/graphql/schema/actions.graphql.js.map +0 -1
  325. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs +0 -16
  326. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs.map +0 -1
  327. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js +0 -17
  328. package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js.map +0 -1
  329. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs +0 -16
  330. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs.map +0 -1
  331. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js +0 -17
  332. package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js.map +0 -1
  333. package/dist/production/src/migrations/index.cjs +0 -12
  334. package/dist/production/src/migrations/index.cjs.map +0 -1
  335. package/dist/production/src/migrations/index.js +0 -12
  336. package/dist/production/src/migrations/index.js.map +0 -1
  337. package/dist/production/src/migrations/snapshot.cjs +0 -51
  338. package/dist/production/src/migrations/snapshot.cjs.map +0 -1
  339. package/dist/production/src/migrations/snapshot.js +0 -52
  340. package/dist/production/src/migrations/snapshot.js.map +0 -1
  341. package/dist/production/src/model/EventByIdQuery.cjs +0 -17
  342. package/dist/production/src/model/EventByIdQuery.cjs.map +0 -1
  343. package/dist/production/src/model/EventByIdQuery.js +0 -17
  344. package/dist/production/src/model/EventByIdQuery.js.map +0 -1
  345. package/dist/production/src/model/EventsInProcessingQuery.cjs +0 -14
  346. package/dist/production/src/model/EventsInProcessingQuery.cjs.map +0 -1
  347. package/dist/production/src/model/EventsInProcessingQuery.js +0 -14
  348. package/dist/production/src/model/EventsInProcessingQuery.js.map +0 -1
  349. package/dist/production/src/model/EventsToProcessQuery.cjs +0 -15
  350. package/dist/production/src/model/EventsToProcessQuery.cjs.map +0 -1
  351. package/dist/production/src/model/EventsToProcessQuery.js +0 -15
  352. package/dist/production/src/model/EventsToProcessQuery.js.map +0 -1
  353. package/dist/production/src/model/EventsToProcessSpecification.cjs +0 -8
  354. package/dist/production/src/model/EventsToProcessSpecification.cjs.map +0 -1
  355. package/dist/production/src/model/EventsToProcessSpecification.js +0 -8
  356. package/dist/production/src/model/EventsToProcessSpecification.js.map +0 -1
  357. package/dist/production/src/model/FailedEventsQuery.cjs +0 -14
  358. package/dist/production/src/model/FailedEventsQuery.cjs.map +0 -1
  359. package/dist/production/src/model/FailedEventsQuery.js +0 -14
  360. package/dist/production/src/model/FailedEventsQuery.js.map +0 -1
  361. package/dist/production/src/model/SetVariableCommand.cjs +0 -21
  362. package/dist/production/src/model/SetVariableCommand.cjs.map +0 -1
  363. package/dist/production/src/model/SetVariableCommand.js +0 -21
  364. package/dist/production/src/model/SetVariableCommand.js.map +0 -1
  365. package/dist/production/src/model/VariablesManager.cjs +0 -41
  366. package/dist/production/src/model/VariablesManager.cjs.map +0 -1
  367. package/dist/production/src/model/VariablesManager.js +0 -41
  368. package/dist/production/src/model/VariablesManager.js.map +0 -1
  369. package/dist/production/src/model/VariablesQuery.cjs +0 -10
  370. package/dist/production/src/model/VariablesQuery.cjs.map +0 -1
  371. package/dist/production/src/model/VariablesQuery.js +0 -10
  372. package/dist/production/src/model/VariablesQuery.js.map +0 -1
  373. package/dist/production/src/triggers/TriggerHandler.cjs +0 -127
  374. package/dist/production/src/triggers/TriggerHandler.cjs.map +0 -1
  375. package/dist/production/src/triggers/TriggerHandler.js +0 -127
  376. package/dist/production/src/triggers/TriggerHandler.js.map +0 -1
  377. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs +0 -63
  378. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +0 -1
  379. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js +0 -63
  380. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js.map +0 -1
  381. package/dist/production/src/triggers/TriggerListenersBuilder.cjs +0 -169
  382. package/dist/production/src/triggers/TriggerListenersBuilder.cjs.map +0 -1
  383. package/dist/production/src/triggers/TriggerListenersBuilder.js +0 -169
  384. package/dist/production/src/triggers/TriggerListenersBuilder.js.map +0 -1
  385. package/dist/production/src/triggers/TriggerListenersFactory.cjs +0 -17
  386. package/dist/production/src/triggers/TriggerListenersFactory.cjs.map +0 -1
  387. package/dist/production/src/triggers/TriggerListenersFactory.js +0 -17
  388. package/dist/production/src/triggers/TriggerListenersFactory.js.map +0 -1
  389. package/dist/production/src/triggers/TriggerListenersStore.cjs +0 -24
  390. package/dist/production/src/triggers/TriggerListenersStore.cjs.map +0 -1
  391. package/dist/production/src/triggers/TriggerListenersStore.js +0 -24
  392. package/dist/production/src/triggers/TriggerListenersStore.js.map +0 -1
  393. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs +0 -149
  394. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +0 -1
  395. package/dist/production/src/triggers/TriggerPayloadBuilder.js +0 -149
  396. package/dist/production/src/triggers/TriggerPayloadBuilder.js.map +0 -1
  397. package/dist/production/src/triggers/TriggerPayloadManager.cjs +0 -27
  398. package/dist/production/src/triggers/TriggerPayloadManager.cjs.map +0 -1
  399. package/dist/production/src/triggers/TriggerPayloadManager.js +0 -27
  400. package/dist/production/src/triggers/TriggerPayloadManager.js.map +0 -1
  401. package/dist/production/src/triggers/TriggerPayloadPersister.cjs +0 -47
  402. package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +0 -1
  403. package/dist/production/src/triggers/TriggerPayloadPersister.js +0 -47
  404. package/dist/production/src/triggers/TriggerPayloadPersister.js.map +0 -1
  405. package/dist/production/src/utils/assertNever.cjs +0 -7
  406. package/dist/production/src/utils/assertNever.cjs.map +0 -1
  407. package/dist/production/src/utils/assertNever.js +0 -7
  408. package/dist/production/src/utils/assertNever.js.map +0 -1
  409. package/dist/production/src/utils/map.cjs +0 -13
  410. package/dist/production/src/utils/map.cjs.map +0 -1
  411. package/dist/production/src/utils/map.js +0 -13
  412. package/dist/production/src/utils/map.js.map +0 -1
  413. package/dist/production/src/utils/notifyChannel.cjs +0 -9
  414. package/dist/production/src/utils/notifyChannel.cjs.map +0 -1
  415. package/dist/production/src/utils/notifyChannel.js +0 -9
  416. package/dist/production/src/utils/notifyChannel.js.map +0 -1
  417. package/dist/tests/cases/unit/generator.test.d.ts +0 -2
  418. package/dist/tests/cases/unit/generator.test.d.ts.map +0 -1
  419. package/dist/tests/cases/unit/webhookHandler.test.d.ts +0 -2
  420. package/dist/tests/cases/unit/webhookHandler.test.d.ts.map +0 -1
  421. package/dist/tests/src/gql.d.ts +0 -2
  422. package/dist/tests/src/gql.d.ts.map +0 -1
  423. package/dist/tests/src/uuid.d.ts +0 -3
  424. package/dist/tests/src/uuid.d.ts.map +0 -1
  425. package/dist/tests/tsconfig.tsbuildinfo +0 -1
  426. package/dist/types/ActionsExecutionContainerHookFactory.d.ts +0 -8
  427. package/dist/types/ActionsExecutionContainerHookFactory.d.ts.map +0 -1
  428. package/dist/types/ImplementationException.d.ts +0 -3
  429. package/dist/types/ImplementationException.d.ts.map +0 -1
  430. package/dist/types/ListenerStoreProvider.d.ts +0 -7
  431. package/dist/types/ListenerStoreProvider.d.ts.map +0 -1
  432. package/dist/types/authorization/ActionsAuthorizationActions.d.ts +0 -38
  433. package/dist/types/authorization/ActionsAuthorizationActions.d.ts.map +0 -1
  434. package/dist/types/authorization/ActionsPermissionsFactory.d.ts +0 -5
  435. package/dist/types/authorization/ActionsPermissionsFactory.d.ts.map +0 -1
  436. package/dist/types/authorization/Identity.d.ts +0 -5
  437. package/dist/types/authorization/Identity.d.ts.map +0 -1
  438. package/dist/types/authorization/index.d.ts +0 -4
  439. package/dist/types/authorization/index.d.ts.map +0 -1
  440. package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts +0 -17
  441. package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts.map +0 -1
  442. package/dist/types/dispatch/EventDispatcher.d.ts +0 -25
  443. package/dist/types/dispatch/EventDispatcher.d.ts.map +0 -1
  444. package/dist/types/dispatch/EventsRepository.d.ts +0 -23
  445. package/dist/types/dispatch/EventsRepository.d.ts.map +0 -1
  446. package/dist/types/dispatch/ProjectDispatcher.d.ts +0 -22
  447. package/dist/types/dispatch/ProjectDispatcher.d.ts.map +0 -1
  448. package/dist/types/dispatch/TargetHandlerResolver.d.ts +0 -9
  449. package/dist/types/dispatch/TargetHandlerResolver.d.ts.map +0 -1
  450. package/dist/types/dispatch/WebhookFetcher.d.ts +0 -14
  451. package/dist/types/dispatch/WebhookFetcher.d.ts.map +0 -1
  452. package/dist/types/dispatch/WebhookTargetHandler.d.ts +0 -16
  453. package/dist/types/dispatch/WebhookTargetHandler.d.ts.map +0 -1
  454. package/dist/types/dispatch/types.d.ts +0 -27
  455. package/dist/types/dispatch/types.d.ts.map +0 -1
  456. package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts +0 -13
  457. package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +0 -1
  458. package/dist/types/graphql/http/ActionsContextResolver.d.ts +0 -14
  459. package/dist/types/graphql/http/ActionsContextResolver.d.ts.map +0 -1
  460. package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts +0 -8
  461. package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +0 -1
  462. package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts +0 -11
  463. package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +0 -1
  464. package/dist/types/graphql/resolvers/ActionsContext.d.ts +0 -14
  465. package/dist/types/graphql/resolvers/ActionsContext.d.ts.map +0 -1
  466. package/dist/types/graphql/resolvers/ResolversFactory.d.ts +0 -15
  467. package/dist/types/graphql/resolvers/ResolversFactory.d.ts.map +0 -1
  468. package/dist/types/graphql/resolvers/index.d.ts +0 -3
  469. package/dist/types/graphql/resolvers/index.d.ts.map +0 -1
  470. package/dist/types/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts +0 -11
  471. package/dist/types/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts.map +0 -1
  472. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts +0 -11
  473. package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts.map +0 -1
  474. package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts +0 -11
  475. package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +0 -1
  476. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts +0 -11
  477. package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts.map +0 -1
  478. package/dist/types/graphql/resolvers/mutation/index.d.ts +0 -5
  479. package/dist/types/graphql/resolvers/mutation/index.d.ts.map +0 -1
  480. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts +0 -14
  481. package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts.map +0 -1
  482. package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts +0 -12
  483. package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +0 -1
  484. package/dist/types/graphql/resolvers/query/index.d.ts +0 -2
  485. package/dist/types/graphql/resolvers/query/index.d.ts.map +0 -1
  486. package/dist/types/graphql/schema/actions.graphql.d.ts +0 -3
  487. package/dist/types/graphql/schema/actions.graphql.d.ts.map +0 -1
  488. package/dist/types/graphql/schema/index.d.ts +0 -299
  489. package/dist/types/graphql/schema/index.d.ts.map +0 -1
  490. package/dist/types/index.d.ts +0 -13
  491. package/dist/types/index.d.ts.map +0 -1
  492. package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts +0 -3
  493. package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts.map +0 -1
  494. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts +0 -3
  495. package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts.map +0 -1
  496. package/dist/types/migrations/index.d.ts +0 -3
  497. package/dist/types/migrations/index.d.ts.map +0 -1
  498. package/dist/types/migrations/snapshot.d.ts +0 -3
  499. package/dist/types/migrations/snapshot.d.ts.map +0 -1
  500. package/dist/types/model/EventByIdQuery.d.ts +0 -8
  501. package/dist/types/model/EventByIdQuery.d.ts.map +0 -1
  502. package/dist/types/model/EventsInProcessingQuery.d.ts +0 -9
  503. package/dist/types/model/EventsInProcessingQuery.d.ts.map +0 -1
  504. package/dist/types/model/EventsToProcessQuery.d.ts +0 -9
  505. package/dist/types/model/EventsToProcessQuery.d.ts.map +0 -1
  506. package/dist/types/model/EventsToProcessSpecification.d.ts +0 -4
  507. package/dist/types/model/EventsToProcessSpecification.d.ts.map +0 -1
  508. package/dist/types/model/FailedEventsQuery.d.ts +0 -9
  509. package/dist/types/model/FailedEventsQuery.d.ts.map +0 -1
  510. package/dist/types/model/SetVariableCommand.d.ts +0 -8
  511. package/dist/types/model/SetVariableCommand.d.ts.map +0 -1
  512. package/dist/types/model/VariablesManager.d.ts +0 -8
  513. package/dist/types/model/VariablesManager.d.ts.map +0 -1
  514. package/dist/types/model/VariablesQuery.d.ts +0 -12
  515. package/dist/types/model/VariablesQuery.d.ts.map +0 -1
  516. package/dist/types/model/types.d.ts +0 -22
  517. package/dist/types/model/types.d.ts.map +0 -1
  518. package/dist/types/triggers/TriggerHandler.d.ts +0 -26
  519. package/dist/types/triggers/TriggerHandler.d.ts.map +0 -1
  520. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts +0 -19
  521. package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts.map +0 -1
  522. package/dist/types/triggers/TriggerListeners.d.ts +0 -9
  523. package/dist/types/triggers/TriggerListeners.d.ts.map +0 -1
  524. package/dist/types/triggers/TriggerListenersBuilder.d.ts +0 -15
  525. package/dist/types/triggers/TriggerListenersBuilder.d.ts.map +0 -1
  526. package/dist/types/triggers/TriggerListenersFactory.d.ts +0 -8
  527. package/dist/types/triggers/TriggerListenersFactory.d.ts.map +0 -1
  528. package/dist/types/triggers/TriggerListenersStore.d.ts +0 -48
  529. package/dist/types/triggers/TriggerListenersStore.d.ts.map +0 -1
  530. package/dist/types/triggers/TriggerPayloadBuilder.d.ts +0 -14
  531. package/dist/types/triggers/TriggerPayloadBuilder.d.ts.map +0 -1
  532. package/dist/types/triggers/TriggerPayloadManager.d.ts +0 -22
  533. package/dist/types/triggers/TriggerPayloadManager.d.ts.map +0 -1
  534. package/dist/types/triggers/TriggerPayloadPersister.d.ts +0 -21
  535. package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +0 -1
  536. package/dist/types/triggers/index.d.ts +0 -8
  537. package/dist/types/triggers/index.d.ts.map +0 -1
  538. package/dist/types/tsconfig.tsbuildinfo +0 -1
  539. package/dist/types/utils/assertNever.d.ts +0 -2
  540. package/dist/types/utils/assertNever.d.ts.map +0 -1
  541. package/dist/types/utils/map.d.ts +0 -2
  542. package/dist/types/utils/map.d.ts.map +0 -1
  543. package/dist/types/utils/notifyChannel.d.ts +0 -4
  544. package/dist/types/utils/notifyChannel.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariablesManager.js","sources":["../../../../../packages/engine-actions/src/model/VariablesManager.ts"],"sourcesContent":["import { DatabaseContext } from '@contember/engine-system-api'\nimport { VariablesQuery } from './VariablesQuery'\nimport { SetVariablesArgs } from '../graphql/schema'\nimport { DeleteBuilder } from '@contember/database'\nimport { SetVariableCommand } from './SetVariableCommand'\n\nexport type VariablesMap = Record<string, string>\n\nexport class VariablesManager {\n\tpublic async fetchVariables(db: DatabaseContext): Promise<VariablesMap> {\n\t\treturn Object.fromEntries((await db.queryHandler.fetch(new VariablesQuery())).map(it => [it.name, it.value]))\n\t}\n\n\tpublic async setVariables(db: DatabaseContext, args: SetVariablesArgs) {\n\t\treturn await db.transaction(async db => {\n\t\t\tconst current = await this.fetchVariables(db)\n\t\t\tconst mode = args.mode ?? 'MERGE'\n\t\t\tconst inputVariables = Object.fromEntries(args.variables.map(it => [it.name, it.value]))\n\n\t\t\tlet newVariables: VariablesMap = {}\n\t\t\tswitch (mode) {\n\t\t\t\tcase 'APPEND_ONLY_MISSING':\n\t\t\t\t\tnewVariables = { ...inputVariables, ...current }\n\t\t\t\t\tbreak\n\t\t\t\tcase 'MERGE':\n\t\t\t\t\tnewVariables = { ...current, ...inputVariables }\n\t\t\t\t\tbreak\n\t\t\t\tcase 'SET':\n\t\t\t\t\tnewVariables = inputVariables\n\t\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst toDelete = Object.keys(current).filter(it => !(it in newVariables))\n\t\t\tif (toDelete.length > 0) {\n\t\t\t\tawait DeleteBuilder.create()\n\t\t\t\t\t.from('actions_variable')\n\t\t\t\t\t.where(it => it.in('name', toDelete))\n\t\t\t\t\t.execute(db.client)\n\t\t\t}\n\n\t\t\tfor (const [name, value] of Object.entries(newVariables)) {\n\t\t\t\tif (value === current[name]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tawait db.commandBus.execute(new SetVariableCommand(name, value))\n\t\t\t}\n\t\t})\n\t}\n}\n"],"names":["db"],"mappings":";;;AAQO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,eAAe,IAA4C;AACvE,WAAO,OAAO,aAAa,MAAM,GAAG,aAAa,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,QAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAAA,EAAA;AAAA,EAG7G,MAAa,aAAa,IAAqB,MAAwB;AACtE,WAAO,MAAM,GAAG,YAAY,OAAMA,QAAM;AACvC,YAAM,UAAU,MAAM,KAAK,eAAeA,GAAE;AACtC,YAAA,OAAO,KAAK,QAAQ;AAC1B,YAAM,iBAAiB,OAAO,YAAY,KAAK,UAAU,IAAI,CAAM,OAAA,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAEvF,UAAI,eAA6B,CAAC;AAClC,cAAQ,MAAM;AAAA,QACb,KAAK;AACJ,yBAAe,EAAE,GAAG,gBAAgB,GAAG,QAAQ;AAC/C;AAAA,QACD,KAAK;AACJ,yBAAe,EAAE,GAAG,SAAS,GAAG,eAAe;AAC/C;AAAA,QACD,KAAK;AACW,yBAAA;AACf;AAAA,MAAA;AAGI,YAAA,WAAW,OAAO,KAAK,OAAO,EAAE,OAAO,CAAA,OAAM,EAAE,MAAM,aAAa;AACpE,UAAA,SAAS,SAAS,GAAG;AACxB,cAAM,cAAc,OAAO,EACzB,KAAK,kBAAkB,EACvB,MAAM,CAAA,OAAM,GAAG,GAAG,QAAQ,QAAQ,CAAC,EACnC,QAAQA,IAAG,MAAM;AAAA,MAAA;AAGpB,iBAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,YAAY,GAAG;AACrD,YAAA,UAAU,QAAQ,IAAI,GAAG;AAC5B;AAAA,QAAA;AAED,cAAMA,IAAG,WAAW,QAAQ,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,MAAA;AAAA,IAChE,CACA;AAAA,EAAA;AAEH;"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Database = require("@contember/database");
4
- class VariablesQuery extends Database.DatabaseQuery {
5
- async fetch(queryable) {
6
- return await Database.SelectBuilder.create().from("actions_variable").getResult(queryable.db);
7
- }
8
- }
9
- exports.VariablesQuery = VariablesQuery;
10
- //# sourceMappingURL=VariablesQuery.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariablesQuery.cjs","sources":["../../../../../packages/engine-actions/src/model/VariablesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class VariablesQuery extends DatabaseQuery<VariableRow[]> {\n\tpublic async fetch(queryable: DatabaseQueryable): Promise<VariableRow[]> {\n\t\treturn await SelectBuilder.create<VariableRow>()\n\t\t\t.from('actions_variable')\n\t\t\t.getResult(queryable.db)\n\t}\n}\n\nexport type VariableRow = {\n\tid: string\n\tname: string\n\tvalue: string\n\tcreated_at: Date\n\tupdated_at: Date\n}\n"],"names":["DatabaseQuery","SelectBuilder"],"mappings":";;;AAEO,MAAM,uBAAuBA,SAAAA,cAA6B;AAAA,EAChE,MAAa,MAAM,WAAsD;AACjE,WAAA,MAAMC,SAAAA,cAAc,SACzB,KAAK,kBAAkB,EACvB,UAAU,UAAU,EAAE;AAAA,EAAA;AAE1B;;"}
@@ -1,10 +0,0 @@
1
- import { DatabaseQuery, SelectBuilder } from "@contember/database";
2
- class VariablesQuery extends DatabaseQuery {
3
- async fetch(queryable) {
4
- return await SelectBuilder.create().from("actions_variable").getResult(queryable.db);
5
- }
6
- }
7
- export {
8
- VariablesQuery
9
- };
10
- //# sourceMappingURL=VariablesQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariablesQuery.js","sources":["../../../../../packages/engine-actions/src/model/VariablesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class VariablesQuery extends DatabaseQuery<VariableRow[]> {\n\tpublic async fetch(queryable: DatabaseQueryable): Promise<VariableRow[]> {\n\t\treturn await SelectBuilder.create<VariableRow>()\n\t\t\t.from('actions_variable')\n\t\t\t.getResult(queryable.db)\n\t}\n}\n\nexport type VariableRow = {\n\tid: string\n\tname: string\n\tvalue: string\n\tcreated_at: Date\n\tupdated_at: Date\n}\n"],"names":[],"mappings":";AAEO,MAAM,uBAAuB,cAA6B;AAAA,EAChE,MAAa,MAAM,WAAsD;AACjE,WAAA,MAAM,cAAc,SACzB,KAAK,kBAAkB,EACvB,UAAU,UAAU,EAAE;AAAA,EAAA;AAE1B;"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- class TriggerHandler {
4
- constructor(payloadManager, listenersStore, changesFetcher) {
5
- this.payloadManager = payloadManager;
6
- this.listenersStore = listenersStore;
7
- this.changesFetcher = changesFetcher;
8
- }
9
- attach(evm) {
10
- evm.listen("BeforeDeleteEvent", async (event) => {
11
- await this.directDeleteHandler(event);
12
- await this.indirectChangesEntityHandler(event);
13
- });
14
- evm.listen("AfterInsertEvent", async (event) => {
15
- await this.indirectChangesEntityHandler(event);
16
- await this.directCreateHandler(event);
17
- });
18
- evm.listen("BeforeUpdateEvent", async (event) => {
19
- await this.indirectChangesRelationHandler(event);
20
- });
21
- evm.listen("AfterUpdateEvent", async (event) => {
22
- if (event.hasChanges) {
23
- await this.indirectChangesUpdatesHandler(event);
24
- await this.directUpdateHandler(event);
25
- }
26
- });
27
- evm.listen("AfterJunctionUpdateEvent", async (event) => {
28
- if (event.hasChanges) {
29
- await this.junctionHandler(event);
30
- }
31
- });
32
- evm.listen("BeforeCommitEvent", async (event) => {
33
- await this.payloadManager.persist();
34
- });
35
- }
36
- async directDeleteHandler(event) {
37
- const deleteListeners = this.listenersStore.getDeleteListener(event.entity.name);
38
- if (!deleteListeners) {
39
- return;
40
- }
41
- await Promise.all(deleteListeners.map((listener) => {
42
- return this.payloadManager.add({
43
- listener,
44
- entity: event.entity,
45
- primary: event.id,
46
- cause: event
47
- });
48
- }));
49
- }
50
- async directUpdateHandler(event) {
51
- const updateListeners = this.listenersStore.getUpdateListeners(event.entity.name);
52
- await Promise.all(updateListeners.map((listener) => {
53
- if (event.data.some((it) => listener.fields.has(it.fieldName) && it.value !== it.old)) {
54
- return this.payloadManager.add({
55
- listener,
56
- entity: event.entity,
57
- primary: event.id,
58
- cause: event
59
- });
60
- }
61
- }));
62
- }
63
- async directCreateHandler(event) {
64
- const createListeners = this.listenersStore.getCreateListener(event.entity.name);
65
- await Promise.all(createListeners.map((listener) => {
66
- return this.payloadManager.add({
67
- listener,
68
- entity: event.entity,
69
- primary: event.id,
70
- cause: event
71
- });
72
- }));
73
- }
74
- /**
75
- * Collect affected triggers after entity was created or before it was deleted.
76
- * todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty
77
- */
78
- async indirectChangesEntityHandler(event) {
79
- const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
80
- const promises = indirectEntityListeners.map((listener) => this.collectDeepChanges(event, listener, {
81
- [event.entity.primary]: { eq: event.id }
82
- }));
83
- await Promise.all(promises);
84
- }
85
- async indirectChangesRelationHandler(event) {
86
- await this.indirectChangesUpdatesHandlerInner(event, "relations");
87
- }
88
- async indirectChangesUpdatesHandler(event) {
89
- await this.indirectChangesUpdatesHandlerInner(event, "fields");
90
- }
91
- async indirectChangesUpdatesHandlerInner(event, type) {
92
- const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
93
- const promises = indirectEntityListeners.map((listener) => {
94
- if (event.data.some((val) => listener[type].has(val.fieldName) && (!("old" in val) || val.value !== val.old))) {
95
- return this.collectDeepChanges(event, listener, {
96
- [event.entity.primary]: { eq: event.id }
97
- });
98
- }
99
- });
100
- await Promise.all(promises);
101
- }
102
- async junctionHandler(event) {
103
- const listeners = this.listenersStore.getJunctionListeners(event.owningEntity.name, event.owningRelation.name);
104
- const promises = listeners.map((listener) => {
105
- const primary = listener.context.type === "owning" ? event.owningId : event.inverseId;
106
- const entity = listener.context.entity;
107
- return this.collectDeepChanges(event, listener, {
108
- [entity.primary]: { eq: primary }
109
- });
110
- });
111
- await Promise.all(promises);
112
- }
113
- async collectDeepChanges(cause, listener, where) {
114
- const result = await this.changesFetcher.fetch(listener, where);
115
- await Promise.all(result.map((row) => {
116
- return this.payloadManager.add({
117
- listener,
118
- entity: listener.rootEntity,
119
- primary: row.id,
120
- cause,
121
- nodes: row.nodes
122
- });
123
- }));
124
- }
125
- }
126
- exports.TriggerHandler = TriggerHandler;
127
- //# sourceMappingURL=TriggerHandler.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerHandler.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerHandler.ts"],"sourcesContent":["import {\n\tAfterInsertEvent,\n\tAfterJunctionUpdateEvent,\n\tAfterUpdateEvent,\n\tBeforeDeleteEvent,\n\tBeforeUpdateEvent,\n\tEventManager,\n} from '@contember/engine-content-api'\nimport { Input } from '@contember/schema'\nimport { IndirectListener, JunctionListener, TriggerListenersStore } from './TriggerListenersStore'\nimport { TriggerPayloadManager } from './TriggerPayloadManager'\nimport { TriggerIndirectChangesFetcher } from './TriggerIndirectChangesFetcher'\n\nexport type EventCause =\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeDeleteEvent\n\t| AfterInsertEvent\n\t| AfterJunctionUpdateEvent\n\nexport class TriggerHandler {\n\tconstructor(\n\t\tprivate readonly payloadManager: TriggerPayloadManager,\n\t\tprivate readonly listenersStore: TriggerListenersStore,\n\t\tprivate readonly changesFetcher: TriggerIndirectChangesFetcher,\n\t) {\n\t}\n\n\tattach(evm: EventManager) {\n\t\tevm.listen('BeforeDeleteEvent', async event => {\n\t\t\tawait this.directDeleteHandler(event)\n\t\t\tawait this.indirectChangesEntityHandler(event)\n\t\t})\n\t\tevm.listen('AfterInsertEvent', async event => {\n\t\t\tawait this.indirectChangesEntityHandler(event)\n\t\t\tawait this.directCreateHandler(event)\n\t\t})\n\t\tevm.listen('BeforeUpdateEvent', async event => {\n\t\t\tawait this.indirectChangesRelationHandler(event)\n\t\t})\n\t\tevm.listen('AfterUpdateEvent', async event => {\n\t\t\tif (event.hasChanges) {\n\t\t\t\tawait this.indirectChangesUpdatesHandler(event)\n\t\t\t\tawait this.directUpdateHandler(event)\n\t\t\t}\n\t\t})\n\t\tevm.listen('AfterJunctionUpdateEvent', async event => {\n\t\t\tif (event.hasChanges) {\n\t\t\t\tawait this.junctionHandler(event)\n\t\t\t}\n\t\t})\n\t\tevm.listen('BeforeCommitEvent', async event => {\n\t\t\tawait this.payloadManager.persist()\n\t\t})\n\t}\n\n\tprivate async directDeleteHandler(event: BeforeDeleteEvent) {\n\t\tconst deleteListeners = this.listenersStore.getDeleteListener(event.entity.name)\n\t\tif (!deleteListeners) {\n\t\t\treturn\n\t\t}\n\t\tawait Promise.all(deleteListeners.map(listener => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: event.entity,\n\t\t\t\tprimary: event.id,\n\t\t\t\tcause: event,\n\t\t\t})\n\t\t}))\n\t}\n\n\tprivate async directUpdateHandler(event: AfterUpdateEvent) {\n\t\tconst updateListeners = this.listenersStore.getUpdateListeners(event.entity.name)\n\t\tawait Promise.all(updateListeners.map(listener => {\n\t\t\tif (event.data.some(it => listener.fields.has(it.fieldName) && it.value !== it.old)) {\n\t\t\t\treturn this.payloadManager.add({\n\t\t\t\t\tlistener,\n\t\t\t\t\tentity: event.entity,\n\t\t\t\t\tprimary: event.id,\n\t\t\t\t\tcause: event,\n\t\t\t\t})\n\t\t\t}\n\t\t}))\n\t}\n\n\tprivate async directCreateHandler(event: AfterInsertEvent) {\n\t\tconst createListeners = this.listenersStore.getCreateListener(event.entity.name)\n\t\tawait Promise.all(createListeners.map(listener => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: event.entity,\n\t\t\t\tprimary: event.id,\n\t\t\t\tcause: event,\n\t\t\t})\n\t\t}))\n\t}\n\n\n\t/**\n\t * Collect affected triggers after entity was created or before it was deleted.\n\t * todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty\n\t */\n\tprivate async indirectChangesEntityHandler(event: BeforeDeleteEvent | AfterInsertEvent) {\n\t\t//\n\t\tconst indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name)\n\t\tconst promises = indirectEntityListeners.map(listener => this.collectDeepChanges(event, listener, {\n\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t}))\n\t\tawait Promise.all(promises)\n\t}\n\n\tprivate async indirectChangesRelationHandler(event: BeforeUpdateEvent) {\n\t\tawait this.indirectChangesUpdatesHandlerInner(event, 'relations')\n\t}\n\n\tprivate async indirectChangesUpdatesHandler(event: AfterUpdateEvent) {\n\t\tawait this.indirectChangesUpdatesHandlerInner(event, 'fields')\n\t}\n\tprivate async indirectChangesUpdatesHandlerInner(event: AfterUpdateEvent | BeforeUpdateEvent, type: 'fields' | 'relations') {\n\t\tconst indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name)\n\t\tconst promises = indirectEntityListeners.map(listener => {\n\t\t\tif (event.data.some(val => listener[type].has(val.fieldName) && (!('old' in val) || val.value !== val.old))) {\n\t\t\t\treturn this.collectDeepChanges(event, listener, {\n\t\t\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\tawait Promise.all(promises)\n\t}\n\n\tprivate async junctionHandler(event: AfterJunctionUpdateEvent) {\n\t\tconst listeners = this.listenersStore.getJunctionListeners(event.owningEntity.name, event.owningRelation.name)\n\t\tconst promises = listeners.map(listener => {\n\t\t\tconst primary = listener.context.type === 'owning'\n\t\t\t\t? event.owningId\n\t\t\t\t: event.inverseId\n\t\t\tconst entity = listener.context.entity\n\t\t\treturn this.collectDeepChanges(event, listener, {\n\t\t\t\t[entity.primary]: { eq: primary },\n\t\t\t})\n\t\t})\n\t\tawait Promise.all(promises)\n\t}\n\n\n\tprivate async collectDeepChanges(\n\t\tcause: EventCause,\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t) {\n\t\tconst result = await this.changesFetcher.fetch(listener, where)\n\t\tawait Promise.all(result.map(row => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: listener.rootEntity,\n\t\t\t\tprimary: row.id,\n\t\t\t\tcause,\n\t\t\t\tnodes: row.nodes,\n\t\t\t})\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1,127 +0,0 @@
1
- class TriggerHandler {
2
- constructor(payloadManager, listenersStore, changesFetcher) {
3
- this.payloadManager = payloadManager;
4
- this.listenersStore = listenersStore;
5
- this.changesFetcher = changesFetcher;
6
- }
7
- attach(evm) {
8
- evm.listen("BeforeDeleteEvent", async (event) => {
9
- await this.directDeleteHandler(event);
10
- await this.indirectChangesEntityHandler(event);
11
- });
12
- evm.listen("AfterInsertEvent", async (event) => {
13
- await this.indirectChangesEntityHandler(event);
14
- await this.directCreateHandler(event);
15
- });
16
- evm.listen("BeforeUpdateEvent", async (event) => {
17
- await this.indirectChangesRelationHandler(event);
18
- });
19
- evm.listen("AfterUpdateEvent", async (event) => {
20
- if (event.hasChanges) {
21
- await this.indirectChangesUpdatesHandler(event);
22
- await this.directUpdateHandler(event);
23
- }
24
- });
25
- evm.listen("AfterJunctionUpdateEvent", async (event) => {
26
- if (event.hasChanges) {
27
- await this.junctionHandler(event);
28
- }
29
- });
30
- evm.listen("BeforeCommitEvent", async (event) => {
31
- await this.payloadManager.persist();
32
- });
33
- }
34
- async directDeleteHandler(event) {
35
- const deleteListeners = this.listenersStore.getDeleteListener(event.entity.name);
36
- if (!deleteListeners) {
37
- return;
38
- }
39
- await Promise.all(deleteListeners.map((listener) => {
40
- return this.payloadManager.add({
41
- listener,
42
- entity: event.entity,
43
- primary: event.id,
44
- cause: event
45
- });
46
- }));
47
- }
48
- async directUpdateHandler(event) {
49
- const updateListeners = this.listenersStore.getUpdateListeners(event.entity.name);
50
- await Promise.all(updateListeners.map((listener) => {
51
- if (event.data.some((it) => listener.fields.has(it.fieldName) && it.value !== it.old)) {
52
- return this.payloadManager.add({
53
- listener,
54
- entity: event.entity,
55
- primary: event.id,
56
- cause: event
57
- });
58
- }
59
- }));
60
- }
61
- async directCreateHandler(event) {
62
- const createListeners = this.listenersStore.getCreateListener(event.entity.name);
63
- await Promise.all(createListeners.map((listener) => {
64
- return this.payloadManager.add({
65
- listener,
66
- entity: event.entity,
67
- primary: event.id,
68
- cause: event
69
- });
70
- }));
71
- }
72
- /**
73
- * Collect affected triggers after entity was created or before it was deleted.
74
- * todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty
75
- */
76
- async indirectChangesEntityHandler(event) {
77
- const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
78
- const promises = indirectEntityListeners.map((listener) => this.collectDeepChanges(event, listener, {
79
- [event.entity.primary]: { eq: event.id }
80
- }));
81
- await Promise.all(promises);
82
- }
83
- async indirectChangesRelationHandler(event) {
84
- await this.indirectChangesUpdatesHandlerInner(event, "relations");
85
- }
86
- async indirectChangesUpdatesHandler(event) {
87
- await this.indirectChangesUpdatesHandlerInner(event, "fields");
88
- }
89
- async indirectChangesUpdatesHandlerInner(event, type) {
90
- const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
91
- const promises = indirectEntityListeners.map((listener) => {
92
- if (event.data.some((val) => listener[type].has(val.fieldName) && (!("old" in val) || val.value !== val.old))) {
93
- return this.collectDeepChanges(event, listener, {
94
- [event.entity.primary]: { eq: event.id }
95
- });
96
- }
97
- });
98
- await Promise.all(promises);
99
- }
100
- async junctionHandler(event) {
101
- const listeners = this.listenersStore.getJunctionListeners(event.owningEntity.name, event.owningRelation.name);
102
- const promises = listeners.map((listener) => {
103
- const primary = listener.context.type === "owning" ? event.owningId : event.inverseId;
104
- const entity = listener.context.entity;
105
- return this.collectDeepChanges(event, listener, {
106
- [entity.primary]: { eq: primary }
107
- });
108
- });
109
- await Promise.all(promises);
110
- }
111
- async collectDeepChanges(cause, listener, where) {
112
- const result = await this.changesFetcher.fetch(listener, where);
113
- await Promise.all(result.map((row) => {
114
- return this.payloadManager.add({
115
- listener,
116
- entity: listener.rootEntity,
117
- primary: row.id,
118
- cause,
119
- nodes: row.nodes
120
- });
121
- }));
122
- }
123
- }
124
- export {
125
- TriggerHandler
126
- };
127
- //# sourceMappingURL=TriggerHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerHandler.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerHandler.ts"],"sourcesContent":["import {\n\tAfterInsertEvent,\n\tAfterJunctionUpdateEvent,\n\tAfterUpdateEvent,\n\tBeforeDeleteEvent,\n\tBeforeUpdateEvent,\n\tEventManager,\n} from '@contember/engine-content-api'\nimport { Input } from '@contember/schema'\nimport { IndirectListener, JunctionListener, TriggerListenersStore } from './TriggerListenersStore'\nimport { TriggerPayloadManager } from './TriggerPayloadManager'\nimport { TriggerIndirectChangesFetcher } from './TriggerIndirectChangesFetcher'\n\nexport type EventCause =\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeDeleteEvent\n\t| AfterInsertEvent\n\t| AfterJunctionUpdateEvent\n\nexport class TriggerHandler {\n\tconstructor(\n\t\tprivate readonly payloadManager: TriggerPayloadManager,\n\t\tprivate readonly listenersStore: TriggerListenersStore,\n\t\tprivate readonly changesFetcher: TriggerIndirectChangesFetcher,\n\t) {\n\t}\n\n\tattach(evm: EventManager) {\n\t\tevm.listen('BeforeDeleteEvent', async event => {\n\t\t\tawait this.directDeleteHandler(event)\n\t\t\tawait this.indirectChangesEntityHandler(event)\n\t\t})\n\t\tevm.listen('AfterInsertEvent', async event => {\n\t\t\tawait this.indirectChangesEntityHandler(event)\n\t\t\tawait this.directCreateHandler(event)\n\t\t})\n\t\tevm.listen('BeforeUpdateEvent', async event => {\n\t\t\tawait this.indirectChangesRelationHandler(event)\n\t\t})\n\t\tevm.listen('AfterUpdateEvent', async event => {\n\t\t\tif (event.hasChanges) {\n\t\t\t\tawait this.indirectChangesUpdatesHandler(event)\n\t\t\t\tawait this.directUpdateHandler(event)\n\t\t\t}\n\t\t})\n\t\tevm.listen('AfterJunctionUpdateEvent', async event => {\n\t\t\tif (event.hasChanges) {\n\t\t\t\tawait this.junctionHandler(event)\n\t\t\t}\n\t\t})\n\t\tevm.listen('BeforeCommitEvent', async event => {\n\t\t\tawait this.payloadManager.persist()\n\t\t})\n\t}\n\n\tprivate async directDeleteHandler(event: BeforeDeleteEvent) {\n\t\tconst deleteListeners = this.listenersStore.getDeleteListener(event.entity.name)\n\t\tif (!deleteListeners) {\n\t\t\treturn\n\t\t}\n\t\tawait Promise.all(deleteListeners.map(listener => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: event.entity,\n\t\t\t\tprimary: event.id,\n\t\t\t\tcause: event,\n\t\t\t})\n\t\t}))\n\t}\n\n\tprivate async directUpdateHandler(event: AfterUpdateEvent) {\n\t\tconst updateListeners = this.listenersStore.getUpdateListeners(event.entity.name)\n\t\tawait Promise.all(updateListeners.map(listener => {\n\t\t\tif (event.data.some(it => listener.fields.has(it.fieldName) && it.value !== it.old)) {\n\t\t\t\treturn this.payloadManager.add({\n\t\t\t\t\tlistener,\n\t\t\t\t\tentity: event.entity,\n\t\t\t\t\tprimary: event.id,\n\t\t\t\t\tcause: event,\n\t\t\t\t})\n\t\t\t}\n\t\t}))\n\t}\n\n\tprivate async directCreateHandler(event: AfterInsertEvent) {\n\t\tconst createListeners = this.listenersStore.getCreateListener(event.entity.name)\n\t\tawait Promise.all(createListeners.map(listener => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: event.entity,\n\t\t\t\tprimary: event.id,\n\t\t\t\tcause: event,\n\t\t\t})\n\t\t}))\n\t}\n\n\n\t/**\n\t * Collect affected triggers after entity was created or before it was deleted.\n\t * todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty\n\t */\n\tprivate async indirectChangesEntityHandler(event: BeforeDeleteEvent | AfterInsertEvent) {\n\t\t//\n\t\tconst indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name)\n\t\tconst promises = indirectEntityListeners.map(listener => this.collectDeepChanges(event, listener, {\n\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t}))\n\t\tawait Promise.all(promises)\n\t}\n\n\tprivate async indirectChangesRelationHandler(event: BeforeUpdateEvent) {\n\t\tawait this.indirectChangesUpdatesHandlerInner(event, 'relations')\n\t}\n\n\tprivate async indirectChangesUpdatesHandler(event: AfterUpdateEvent) {\n\t\tawait this.indirectChangesUpdatesHandlerInner(event, 'fields')\n\t}\n\tprivate async indirectChangesUpdatesHandlerInner(event: AfterUpdateEvent | BeforeUpdateEvent, type: 'fields' | 'relations') {\n\t\tconst indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name)\n\t\tconst promises = indirectEntityListeners.map(listener => {\n\t\t\tif (event.data.some(val => listener[type].has(val.fieldName) && (!('old' in val) || val.value !== val.old))) {\n\t\t\t\treturn this.collectDeepChanges(event, listener, {\n\t\t\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\tawait Promise.all(promises)\n\t}\n\n\tprivate async junctionHandler(event: AfterJunctionUpdateEvent) {\n\t\tconst listeners = this.listenersStore.getJunctionListeners(event.owningEntity.name, event.owningRelation.name)\n\t\tconst promises = listeners.map(listener => {\n\t\t\tconst primary = listener.context.type === 'owning'\n\t\t\t\t? event.owningId\n\t\t\t\t: event.inverseId\n\t\t\tconst entity = listener.context.entity\n\t\t\treturn this.collectDeepChanges(event, listener, {\n\t\t\t\t[entity.primary]: { eq: primary },\n\t\t\t})\n\t\t})\n\t\tawait Promise.all(promises)\n\t}\n\n\n\tprivate async collectDeepChanges(\n\t\tcause: EventCause,\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t) {\n\t\tconst result = await this.changesFetcher.fetch(listener, where)\n\t\tawait Promise.all(result.map(row => {\n\t\t\treturn this.payloadManager.add({\n\t\t\t\tlistener,\n\t\t\t\tentity: listener.rootEntity,\n\t\t\t\tprimary: row.id,\n\t\t\t\tcause,\n\t\t\t\tnodes: row.nodes,\n\t\t\t})\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Database = require("@contember/database");
4
- const schemaUtils = require("@contember/schema-utils");
5
- class TriggerIndirectChangesFetcher {
6
- constructor(model, mapper, whereBuilder, joinBuilder, pathFactory) {
7
- this.model = model;
8
- this.mapper = mapper;
9
- this.whereBuilder = whereBuilder;
10
- this.joinBuilder = joinBuilder;
11
- this.pathFactory = pathFactory;
12
- }
13
- async fetch(listener, where) {
14
- if (listener.trigger.withNodes) {
15
- return this.fetchWithNodes(listener, where);
16
- }
17
- for (let i = listener.path.length - 1; i >= 0; i--) {
18
- where = { [listener.path[i]]: where };
19
- }
20
- const qb = Database.SelectBuilder.create().from(listener.rootEntity.tableName, "root_").select(["root_", listener.rootEntity.primaryColumn], "id");
21
- const path = this.pathFactory.create([]);
22
- const qbWithWhere = this.whereBuilder.build(qb, listener.rootEntity, path, where);
23
- return await qbWithWhere.getResult(this.mapper.db);
24
- }
25
- async fetchWithNodes(listener, where) {
26
- const basePath = this.pathFactory.create([]);
27
- let path = basePath;
28
- let entity = listener.rootEntity;
29
- let qb = Database.SelectBuilder.create().from(entity.tableName, path.alias).select([path.alias, entity.primaryColumn], path.for(entity.primary).alias);
30
- for (let i = 0; i < listener.path.length; i++) {
31
- const relationName = listener.path[i];
32
- path = path.for(relationName);
33
- const targetEntity = schemaUtils.getTargetEntity(this.model, entity, relationName);
34
- if (!targetEntity) {
35
- throw new Error(`Target entity for relation ${entity.name}::${relationName} not found`);
36
- }
37
- qb = this.joinBuilder.join(qb, path, entity, relationName);
38
- entity = targetEntity;
39
- qb = qb.select([path.alias, targetEntity.primaryColumn], path.for(targetEntity.primary).alias);
40
- }
41
- const qbWithWhere = this.whereBuilder.build(qb, entity, path, where);
42
- const result = await qbWithWhere.getResult(this.mapper.db);
43
- return result.map((row) => {
44
- const nodes = [];
45
- let entity2 = listener.rootEntity;
46
- let path2 = basePath;
47
- const id = row[path2.for(entity2.primary).alias];
48
- for (let i = 0; i < listener.path.length; i++) {
49
- const relationName = listener.path[i];
50
- const targetEntity = schemaUtils.getTargetEntity(this.model, entity2, relationName);
51
- if (!targetEntity) {
52
- throw new Error(`Target entity for relation ${entity2.name}::${relationName} not found`);
53
- }
54
- path2 = path2.for(relationName);
55
- nodes.push({ relation: relationName, entity: targetEntity.name, id: row[path2.for(targetEntity.primary).alias] });
56
- entity2 = targetEntity;
57
- }
58
- return { id, nodes };
59
- });
60
- }
61
- }
62
- exports.TriggerIndirectChangesFetcher = TriggerIndirectChangesFetcher;
63
- //# sourceMappingURL=TriggerIndirectChangesFetcher.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerIndirectChangesFetcher.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerIndirectChangesFetcher.ts"],"sourcesContent":["import { Mapper, PathFactory, WhereBuilder } from '@contember/engine-content-api'\nimport { IndirectListener, JunctionListener } from './TriggerListenersStore'\nimport { SelectBuilder } from '@contember/database'\nimport { ActionsPayload, Input, Model, Schema } from '@contember/schema'\nimport { JoinBuilder } from '@contember/engine-content-api'\nimport { getTargetEntity } from '@contember/schema-utils'\n\nexport type TriggerIndirectChangesFetcherResult = {\n\tid: Input.PrimaryValue\n\tnodes?: ActionsPayload.EntityEventPathNode[]\n}[]\n\nexport class TriggerIndirectChangesFetcher {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly joinBuilder: JoinBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {\n\t}\n\n\tpublic async fetch(\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t): Promise<TriggerIndirectChangesFetcherResult> {\n\t\tif (listener.trigger.withNodes) {\n\t\t\treturn this.fetchWithNodes(listener, where)\n\t\t}\n\n\t\tfor (let i = listener.path.length - 1; i >= 0; i--) {\n\t\t\twhere = { [listener.path[i]]: where }\n\t\t}\n\t\tconst qb = SelectBuilder.create<{ id: Input.PrimaryValue }>()\n\t\t\t.from(listener.rootEntity.tableName, 'root_')\n\t\t\t.select(['root_', listener.rootEntity.primaryColumn], 'id')\n\t\tconst path = this.pathFactory.create([])\n\t\tconst qbWithWhere = this.whereBuilder.build(qb, listener.rootEntity, path, where)\n\n\t\treturn (await qbWithWhere.getResult(this.mapper.db))\n\t}\n\n\tprivate async fetchWithNodes(\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t): Promise<TriggerIndirectChangesFetcherResult> {\n\t\tconst basePath = this.pathFactory.create([])\n\t\tlet path = basePath\n\t\tlet entity = listener.rootEntity\n\t\tlet qb = SelectBuilder.create()\n\t\t\t.from(entity.tableName, path.alias)\n\t\t\t.select([path.alias, entity.primaryColumn], path.for(entity.primary).alias)\n\n\t\tfor (let i = 0; i < listener.path.length; i++) {\n\t\t\tconst relationName = listener.path[i]\n\t\t\tpath = path.for(relationName)\n\t\t\tconst targetEntity = getTargetEntity(this.model, entity, relationName)\n\t\t\tif (!targetEntity) {\n\t\t\t\tthrow new Error(`Target entity for relation ${entity.name}::${relationName} not found`)\n\t\t\t}\n\t\t\tqb = this.joinBuilder.join(qb, path, entity, relationName)\n\n\t\t\tentity = targetEntity\n\t\t\tqb = qb.select([path.alias, targetEntity.primaryColumn], path.for(targetEntity.primary).alias)\n\t\t}\n\n\t\tconst qbWithWhere = this.whereBuilder.build(qb, entity, path, where)\n\n\t\tconst result = await qbWithWhere.getResult(this.mapper.db)\n\n\t\treturn result.map(row => {\n\t\t\tconst nodes: ActionsPayload.EntityEventPathNode[] = []\n\t\t\tlet entity = listener.rootEntity\n\t\t\tlet path = basePath\n\t\t\tconst id = row[path.for(entity.primary).alias]\n\t\t\tfor (let i = 0; i < listener.path.length; i++) {\n\t\t\t\tconst relationName = listener.path[i]\n\t\t\t\tconst targetEntity = getTargetEntity(this.model, entity, relationName)\n\t\t\t\tif (!targetEntity) {\n\t\t\t\t\tthrow new Error(`Target entity for relation ${entity.name}::${relationName} not found`)\n\t\t\t\t}\n\t\t\t\tpath = path.for(relationName)\n\t\t\t\tnodes.push({ relation: relationName, entity: targetEntity.name, id: row[path.for(targetEntity.primary).alias] })\n\t\t\t\tentity = targetEntity\n\t\t\t}\n\t\t\treturn { id, nodes }\n\t\t})\n\t}\n}\n"],"names":["SelectBuilder","getTargetEntity","entity","path"],"mappings":";;;;AAYO,MAAM,8BAA8B;AAAA,EAC1C,YACkB,OACA,QACA,cACA,aACA,aAChB;AALgB,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAAA,EAIlB,MAAa,MACZ,UACA,OAC+C;AAC3C,QAAA,SAAS,QAAQ,WAAW;AACxB,aAAA,KAAK,eAAe,UAAU,KAAK;AAAA,IAAA;AAG3C,aAAS,IAAI,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;AACnD,cAAQ,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG,MAAM;AAAA,IAAA;AAErC,UAAM,KAAKA,SAAAA,cAAc,OAAA,EACvB,KAAK,SAAS,WAAW,WAAW,OAAO,EAC3C,OAAO,CAAC,SAAS,SAAS,WAAW,aAAa,GAAG,IAAI;AAC3D,UAAM,OAAO,KAAK,YAAY,OAAO,CAAA,CAAE;AACjC,UAAA,cAAc,KAAK,aAAa,MAAM,IAAI,SAAS,YAAY,MAAM,KAAK;AAEhF,WAAQ,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE;AAAA,EAAA;AAAA,EAGnD,MAAc,eACb,UACA,OAC+C;AAC/C,UAAM,WAAW,KAAK,YAAY,OAAO,CAAA,CAAE;AAC3C,QAAI,OAAO;AACX,QAAI,SAAS,SAAS;AAClB,QAAA,KAAKA,uBAAc,SACrB,KAAK,OAAO,WAAW,KAAK,KAAK,EACjC,OAAO,CAAC,KAAK,OAAO,OAAO,aAAa,GAAG,KAAK,IAAI,OAAO,OAAO,EAAE,KAAK;AAE3E,aAAS,IAAI,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK;AACxC,YAAA,eAAe,SAAS,KAAK,CAAC;AAC7B,aAAA,KAAK,IAAI,YAAY;AAC5B,YAAM,eAAeC,YAAAA,gBAAgB,KAAK,OAAO,QAAQ,YAAY;AACrE,UAAI,CAAC,cAAc;AAClB,cAAM,IAAI,MAAM,8BAA8B,OAAO,IAAI,KAAK,YAAY,YAAY;AAAA,MAAA;AAEvF,WAAK,KAAK,YAAY,KAAK,IAAI,MAAM,QAAQ,YAAY;AAEhD,eAAA;AACT,WAAK,GAAG,OAAO,CAAC,KAAK,OAAO,aAAa,aAAa,GAAG,KAAK,IAAI,aAAa,OAAO,EAAE,KAAK;AAAA,IAAA;AAG9F,UAAM,cAAc,KAAK,aAAa,MAAM,IAAI,QAAQ,MAAM,KAAK;AAEnE,UAAM,SAAS,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE;AAElD,WAAA,OAAO,IAAI,CAAO,QAAA;AACxB,YAAM,QAA8C,CAAC;AACrD,UAAIC,UAAS,SAAS;AACtB,UAAIC,QAAO;AACX,YAAM,KAAK,IAAIA,MAAK,IAAID,QAAO,OAAO,EAAE,KAAK;AAC7C,eAAS,IAAI,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK;AACxC,cAAA,eAAe,SAAS,KAAK,CAAC;AACpC,cAAM,eAAeD,YAAAA,gBAAgB,KAAK,OAAOC,SAAQ,YAAY;AACrE,YAAI,CAAC,cAAc;AAClB,gBAAM,IAAI,MAAM,8BAA8BA,QAAO,IAAI,KAAK,YAAY,YAAY;AAAA,QAAA;AAEvFC,gBAAOA,MAAK,IAAI,YAAY;AAC5B,cAAM,KAAK,EAAE,UAAU,cAAc,QAAQ,aAAa,MAAM,IAAI,IAAIA,MAAK,IAAI,aAAa,OAAO,EAAE,KAAK,GAAG;AAC/GD,kBAAS;AAAA,MAAA;AAEH,aAAA,EAAE,IAAI,MAAM;AAAA,IAAA,CACnB;AAAA,EAAA;AAEH;;"}
@@ -1,63 +0,0 @@
1
- import { SelectBuilder } from "@contember/database";
2
- import { getTargetEntity } from "@contember/schema-utils";
3
- class TriggerIndirectChangesFetcher {
4
- constructor(model, mapper, whereBuilder, joinBuilder, pathFactory) {
5
- this.model = model;
6
- this.mapper = mapper;
7
- this.whereBuilder = whereBuilder;
8
- this.joinBuilder = joinBuilder;
9
- this.pathFactory = pathFactory;
10
- }
11
- async fetch(listener, where) {
12
- if (listener.trigger.withNodes) {
13
- return this.fetchWithNodes(listener, where);
14
- }
15
- for (let i = listener.path.length - 1; i >= 0; i--) {
16
- where = { [listener.path[i]]: where };
17
- }
18
- const qb = SelectBuilder.create().from(listener.rootEntity.tableName, "root_").select(["root_", listener.rootEntity.primaryColumn], "id");
19
- const path = this.pathFactory.create([]);
20
- const qbWithWhere = this.whereBuilder.build(qb, listener.rootEntity, path, where);
21
- return await qbWithWhere.getResult(this.mapper.db);
22
- }
23
- async fetchWithNodes(listener, where) {
24
- const basePath = this.pathFactory.create([]);
25
- let path = basePath;
26
- let entity = listener.rootEntity;
27
- let qb = SelectBuilder.create().from(entity.tableName, path.alias).select([path.alias, entity.primaryColumn], path.for(entity.primary).alias);
28
- for (let i = 0; i < listener.path.length; i++) {
29
- const relationName = listener.path[i];
30
- path = path.for(relationName);
31
- const targetEntity = getTargetEntity(this.model, entity, relationName);
32
- if (!targetEntity) {
33
- throw new Error(`Target entity for relation ${entity.name}::${relationName} not found`);
34
- }
35
- qb = this.joinBuilder.join(qb, path, entity, relationName);
36
- entity = targetEntity;
37
- qb = qb.select([path.alias, targetEntity.primaryColumn], path.for(targetEntity.primary).alias);
38
- }
39
- const qbWithWhere = this.whereBuilder.build(qb, entity, path, where);
40
- const result = await qbWithWhere.getResult(this.mapper.db);
41
- return result.map((row) => {
42
- const nodes = [];
43
- let entity2 = listener.rootEntity;
44
- let path2 = basePath;
45
- const id = row[path2.for(entity2.primary).alias];
46
- for (let i = 0; i < listener.path.length; i++) {
47
- const relationName = listener.path[i];
48
- const targetEntity = getTargetEntity(this.model, entity2, relationName);
49
- if (!targetEntity) {
50
- throw new Error(`Target entity for relation ${entity2.name}::${relationName} not found`);
51
- }
52
- path2 = path2.for(relationName);
53
- nodes.push({ relation: relationName, entity: targetEntity.name, id: row[path2.for(targetEntity.primary).alias] });
54
- entity2 = targetEntity;
55
- }
56
- return { id, nodes };
57
- });
58
- }
59
- }
60
- export {
61
- TriggerIndirectChangesFetcher
62
- };
63
- //# sourceMappingURL=TriggerIndirectChangesFetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerIndirectChangesFetcher.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerIndirectChangesFetcher.ts"],"sourcesContent":["import { Mapper, PathFactory, WhereBuilder } from '@contember/engine-content-api'\nimport { IndirectListener, JunctionListener } from './TriggerListenersStore'\nimport { SelectBuilder } from '@contember/database'\nimport { ActionsPayload, Input, Model, Schema } from '@contember/schema'\nimport { JoinBuilder } from '@contember/engine-content-api'\nimport { getTargetEntity } from '@contember/schema-utils'\n\nexport type TriggerIndirectChangesFetcherResult = {\n\tid: Input.PrimaryValue\n\tnodes?: ActionsPayload.EntityEventPathNode[]\n}[]\n\nexport class TriggerIndirectChangesFetcher {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly joinBuilder: JoinBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {\n\t}\n\n\tpublic async fetch(\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t): Promise<TriggerIndirectChangesFetcherResult> {\n\t\tif (listener.trigger.withNodes) {\n\t\t\treturn this.fetchWithNodes(listener, where)\n\t\t}\n\n\t\tfor (let i = listener.path.length - 1; i >= 0; i--) {\n\t\t\twhere = { [listener.path[i]]: where }\n\t\t}\n\t\tconst qb = SelectBuilder.create<{ id: Input.PrimaryValue }>()\n\t\t\t.from(listener.rootEntity.tableName, 'root_')\n\t\t\t.select(['root_', listener.rootEntity.primaryColumn], 'id')\n\t\tconst path = this.pathFactory.create([])\n\t\tconst qbWithWhere = this.whereBuilder.build(qb, listener.rootEntity, path, where)\n\n\t\treturn (await qbWithWhere.getResult(this.mapper.db))\n\t}\n\n\tprivate async fetchWithNodes(\n\t\tlistener: IndirectListener | JunctionListener,\n\t\twhere: Input.Where,\n\t): Promise<TriggerIndirectChangesFetcherResult> {\n\t\tconst basePath = this.pathFactory.create([])\n\t\tlet path = basePath\n\t\tlet entity = listener.rootEntity\n\t\tlet qb = SelectBuilder.create()\n\t\t\t.from(entity.tableName, path.alias)\n\t\t\t.select([path.alias, entity.primaryColumn], path.for(entity.primary).alias)\n\n\t\tfor (let i = 0; i < listener.path.length; i++) {\n\t\t\tconst relationName = listener.path[i]\n\t\t\tpath = path.for(relationName)\n\t\t\tconst targetEntity = getTargetEntity(this.model, entity, relationName)\n\t\t\tif (!targetEntity) {\n\t\t\t\tthrow new Error(`Target entity for relation ${entity.name}::${relationName} not found`)\n\t\t\t}\n\t\t\tqb = this.joinBuilder.join(qb, path, entity, relationName)\n\n\t\t\tentity = targetEntity\n\t\t\tqb = qb.select([path.alias, targetEntity.primaryColumn], path.for(targetEntity.primary).alias)\n\t\t}\n\n\t\tconst qbWithWhere = this.whereBuilder.build(qb, entity, path, where)\n\n\t\tconst result = await qbWithWhere.getResult(this.mapper.db)\n\n\t\treturn result.map(row => {\n\t\t\tconst nodes: ActionsPayload.EntityEventPathNode[] = []\n\t\t\tlet entity = listener.rootEntity\n\t\t\tlet path = basePath\n\t\t\tconst id = row[path.for(entity.primary).alias]\n\t\t\tfor (let i = 0; i < listener.path.length; i++) {\n\t\t\t\tconst relationName = listener.path[i]\n\t\t\t\tconst targetEntity = getTargetEntity(this.model, entity, relationName)\n\t\t\t\tif (!targetEntity) {\n\t\t\t\t\tthrow new Error(`Target entity for relation ${entity.name}::${relationName} not found`)\n\t\t\t\t}\n\t\t\t\tpath = path.for(relationName)\n\t\t\t\tnodes.push({ relation: relationName, entity: targetEntity.name, id: row[path.for(targetEntity.primary).alias] })\n\t\t\t\tentity = targetEntity\n\t\t\t}\n\t\t\treturn { id, nodes }\n\t\t})\n\t}\n}\n"],"names":["entity","path"],"mappings":";;AAYO,MAAM,8BAA8B;AAAA,EAC1C,YACkB,OACA,QACA,cACA,aACA,aAChB;AALgB,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAAA,EAIlB,MAAa,MACZ,UACA,OAC+C;AAC3C,QAAA,SAAS,QAAQ,WAAW;AACxB,aAAA,KAAK,eAAe,UAAU,KAAK;AAAA,IAAA;AAG3C,aAAS,IAAI,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;AACnD,cAAQ,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG,MAAM;AAAA,IAAA;AAErC,UAAM,KAAK,cAAc,OAAA,EACvB,KAAK,SAAS,WAAW,WAAW,OAAO,EAC3C,OAAO,CAAC,SAAS,SAAS,WAAW,aAAa,GAAG,IAAI;AAC3D,UAAM,OAAO,KAAK,YAAY,OAAO,CAAA,CAAE;AACjC,UAAA,cAAc,KAAK,aAAa,MAAM,IAAI,SAAS,YAAY,MAAM,KAAK;AAEhF,WAAQ,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE;AAAA,EAAA;AAAA,EAGnD,MAAc,eACb,UACA,OAC+C;AAC/C,UAAM,WAAW,KAAK,YAAY,OAAO,CAAA,CAAE;AAC3C,QAAI,OAAO;AACX,QAAI,SAAS,SAAS;AAClB,QAAA,KAAK,cAAc,SACrB,KAAK,OAAO,WAAW,KAAK,KAAK,EACjC,OAAO,CAAC,KAAK,OAAO,OAAO,aAAa,GAAG,KAAK,IAAI,OAAO,OAAO,EAAE,KAAK;AAE3E,aAAS,IAAI,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK;AACxC,YAAA,eAAe,SAAS,KAAK,CAAC;AAC7B,aAAA,KAAK,IAAI,YAAY;AAC5B,YAAM,eAAe,gBAAgB,KAAK,OAAO,QAAQ,YAAY;AACrE,UAAI,CAAC,cAAc;AAClB,cAAM,IAAI,MAAM,8BAA8B,OAAO,IAAI,KAAK,YAAY,YAAY;AAAA,MAAA;AAEvF,WAAK,KAAK,YAAY,KAAK,IAAI,MAAM,QAAQ,YAAY;AAEhD,eAAA;AACT,WAAK,GAAG,OAAO,CAAC,KAAK,OAAO,aAAa,aAAa,GAAG,KAAK,IAAI,aAAa,OAAO,EAAE,KAAK;AAAA,IAAA;AAG9F,UAAM,cAAc,KAAK,aAAa,MAAM,IAAI,QAAQ,MAAM,KAAK;AAEnE,UAAM,SAAS,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE;AAElD,WAAA,OAAO,IAAI,CAAO,QAAA;AACxB,YAAM,QAA8C,CAAC;AACrD,UAAIA,UAAS,SAAS;AACtB,UAAIC,QAAO;AACX,YAAM,KAAK,IAAIA,MAAK,IAAID,QAAO,OAAO,EAAE,KAAK;AAC7C,eAAS,IAAI,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK;AACxC,cAAA,eAAe,SAAS,KAAK,CAAC;AACpC,cAAM,eAAe,gBAAgB,KAAK,OAAOA,SAAQ,YAAY;AACrE,YAAI,CAAC,cAAc;AAClB,gBAAM,IAAI,MAAM,8BAA8BA,QAAO,IAAI,KAAK,YAAY,YAAY;AAAA,QAAA;AAEvFC,gBAAOA,MAAK,IAAI,YAAY;AAC5B,cAAM,KAAK,EAAE,UAAU,cAAc,QAAQ,aAAa,MAAM,IAAI,IAAIA,MAAK,IAAI,aAAa,OAAO,EAAE,KAAK,GAAG;AAC/GD,kBAAS;AAAA,MAAA;AAEH,aAAA,EAAE,IAAI,MAAM;AAAA,IAAA,CACnB;AAAA,EAAA;AAEH;"}