@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,169 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const TriggerListenersStore = require("./TriggerListenersStore.cjs");
4
- const schemaUtils = require("@contember/schema-utils");
5
- const map = require("../utils/map.cjs");
6
- const ImplementationException = require("../ImplementationException.cjs");
7
- var __defProp = Object.defineProperty;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
10
- class TriggerListenerBuilder {
11
- constructor(model) {
12
- this.model = model;
13
- __publicField(this, "data", {
14
- createListeners: /* @__PURE__ */ new Map(),
15
- updateListeners: /* @__PURE__ */ new Map(),
16
- deleteListeners: /* @__PURE__ */ new Map(),
17
- indirectListeners: /* @__PURE__ */ new Map(),
18
- junctionListeners: /* @__PURE__ */ new Map()
19
- });
20
- }
21
- add(trigger) {
22
- if (trigger.type === "basic") {
23
- this.processBasicTrigger(trigger);
24
- } else if (trigger.type === "watch") {
25
- this.processIndirectListeners(trigger);
26
- } else {
27
- ((_) => {
28
- throw new ImplementationException.ImplementationException(`Unhandled trigger ${trigger.type}`);
29
- })();
30
- }
31
- }
32
- processBasicTrigger(trigger) {
33
- const entity = schemaUtils.getEntity(this.model, trigger.entity);
34
- if (trigger.create) {
35
- this.addListener("createListeners", trigger.entity, {
36
- type: "create",
37
- entity,
38
- trigger
39
- });
40
- }
41
- if (trigger.delete) {
42
- this.addListener("deleteListeners", trigger.entity, {
43
- type: "delete",
44
- entity,
45
- trigger
46
- });
47
- }
48
- if (trigger.update) {
49
- this.addListener("updateListeners", trigger.entity, {
50
- type: "update",
51
- entity,
52
- trigger,
53
- fields: new Set(trigger.update === true ? Object.keys(entity.fields) : trigger.update)
54
- // todo: only columns and owning
55
- });
56
- }
57
- }
58
- processIndirectListeners(trigger) {
59
- const entity = schemaUtils.getEntity(this.model, trigger.entity);
60
- this.addListener("createListeners", trigger.entity, {
61
- type: "create",
62
- entity,
63
- trigger
64
- });
65
- this.addListener("deleteListeners", trigger.entity, {
66
- type: "delete",
67
- entity,
68
- trigger
69
- });
70
- this.processIndirectListenersNode(trigger, entity, entity, trigger.watch, []);
71
- }
72
- processIndirectListenersNode(trigger, rootEntity, entity, node, path) {
73
- const fields = /* @__PURE__ */ new Set();
74
- const relations = /* @__PURE__ */ new Set();
75
- for (const entry of node) {
76
- const [field, args, selection] = Array.isArray(entry) ? entry : [entry, void 0, void 0];
77
- schemaUtils.acceptFieldVisitor(this.model, entity, field, {
78
- visitColumn: ({ entity: entity2, column }) => {
79
- if (selection?.length > 0) {
80
- throw new ImplementationException.ImplementationException(`Column ${field} cannot have sub-selection`);
81
- }
82
- fields.add(column.name);
83
- },
84
- visitManyHasOne: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
85
- fields.add(relation.name);
86
- relations.add(relation.name);
87
- if (selection?.length > 0) {
88
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
89
- }
90
- },
91
- visitOneHasMany: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
92
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name]);
93
- },
94
- visitOneHasOneOwning: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
95
- fields.add(relation.name);
96
- relations.add(relation.name);
97
- if (selection?.length > 0) {
98
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
99
- }
100
- },
101
- visitOneHasOneInverse: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
102
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name]);
103
- },
104
- visitManyHasManyOwning: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
105
- this.addJunctionListener(entity2.name, relation.name, {
106
- type: "junction",
107
- rootEntity,
108
- path,
109
- trigger,
110
- context: {
111
- entity: entity2,
112
- relation,
113
- type: "owning"
114
- }
115
- });
116
- if (selection?.length > 0) {
117
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
118
- }
119
- },
120
- visitManyHasManyInverse: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
121
- this.addJunctionListener(targetEntity.name, targetRelation.name, {
122
- type: "junction",
123
- rootEntity,
124
- path,
125
- trigger,
126
- context: {
127
- entity: entity2,
128
- relation,
129
- type: "inverse"
130
- }
131
- });
132
- if (selection?.length > 0) {
133
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
134
- }
135
- }
136
- });
137
- }
138
- if (path.length === 0) {
139
- this.addListener("updateListeners", entity.name, {
140
- type: "update",
141
- entity: rootEntity,
142
- fields,
143
- trigger
144
- });
145
- } else {
146
- this.addListener("indirectListeners", entity.name, {
147
- type: "indirect",
148
- rootEntity,
149
- fields,
150
- relations,
151
- path,
152
- trigger
153
- });
154
- }
155
- }
156
- createStore() {
157
- return new TriggerListenersStore.TriggerListenersStore(this.data);
158
- }
159
- addListener(type, entityName, value) {
160
- map.mapGetOrPut(this.data[type], entityName, () => []).push(value);
161
- }
162
- addJunctionListener(entityName, relationName, listener) {
163
- const entityJunctionListeners = map.mapGetOrPut(this.data.junctionListeners, entityName, () => /* @__PURE__ */ new Map());
164
- const relationListeners = map.mapGetOrPut(entityJunctionListeners, relationName, () => []);
165
- relationListeners.push(listener);
166
- }
167
- }
168
- exports.TriggerListenerBuilder = TriggerListenerBuilder;
169
- //# sourceMappingURL=TriggerListenersBuilder.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersBuilder.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersBuilder.ts"],"sourcesContent":["import { Actions, Model } from '@contember/schema'\nimport { TriggerListeners } from './TriggerListeners'\nimport { JunctionListener, TriggerListenersStore } from './TriggerListenersStore'\nimport { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { mapGetOrPut } from '../utils/map'\nimport { ImplementationException } from '../ImplementationException'\n\nexport class TriggerListenerBuilder {\n\n\tprivate readonly data: TriggerListeners = {\n\t\tcreateListeners: new Map(),\n\t\tupdateListeners: new Map(),\n\t\tdeleteListeners: new Map(),\n\t\tindirectListeners: new Map(),\n\t\tjunctionListeners: new Map(),\n\t}\n\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t) {\n\t}\n\n\tpublic add(trigger: Actions.AnyTrigger) {\n\t\tif (trigger.type === 'basic') {\n\t\t\tthis.processBasicTrigger(trigger)\n\t\t} else if (trigger.type === 'watch') {\n\t\t\tthis.processIndirectListeners(trigger)\n\t\t} else {\n\t\t\t((_: never) => {\n\t\t\t\tthrow new ImplementationException(`Unhandled trigger ${(trigger as any).type}`)\n\t\t\t})(trigger)\n\t\t}\n\t}\n\n\tprivate processBasicTrigger(trigger: Actions.BasicTrigger) {\n\t\tconst entity = getEntity(this.model, trigger.entity)\n\t\tif (trigger.create) {\n\t\t\tthis.addListener('createListeners', trigger.entity, {\n\t\t\t\ttype: 'create',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t\tif (trigger.delete) {\n\t\t\tthis.addListener('deleteListeners', trigger.entity, {\n\t\t\t\ttype: 'delete',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t\tif (trigger.update) {\n\t\t\tthis.addListener('updateListeners', trigger.entity, {\n\t\t\t\ttype: 'update',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t\tfields: new Set(trigger.update === true ? Object.keys(entity.fields) : trigger.update), // todo: only columns and owning\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate processIndirectListeners(\n\t\ttrigger: Actions.WatchTrigger,\n\t) {\n\t\tconst entity = getEntity(this.model, trigger.entity)\n\t\tthis.addListener('createListeners', trigger.entity, {\n\t\t\ttype: 'create',\n\t\t\tentity,\n\t\t\ttrigger,\n\t\t})\n\t\tthis.addListener('deleteListeners', trigger.entity, {\n\t\t\ttype: 'delete',\n\t\t\tentity,\n\t\t\ttrigger,\n\t\t})\n\t\tthis.processIndirectListenersNode(trigger, entity, entity, trigger.watch, [])\n\t}\n\tprivate processIndirectListenersNode(\n\t\ttrigger: Actions.WatchTrigger,\n\t\trootEntity: Model.Entity,\n\t\tentity: Model.Entity,\n\t\tnode: Actions.SelectionNode,\n\t\tpath: string[],\n\t) {\n\t\tconst fields = new Set<string>()\n\t\tconst relations = new Set<string>()\n\t\tfor (const entry of node) {\n\t\t\tconst [field, args, selection] = Array.isArray(entry) ? entry : [entry, undefined, undefined]\n\t\t\tacceptFieldVisitor(this.model, entity, field, {\n\t\t\t\tvisitColumn: ({ entity, column }) => {\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthrow new ImplementationException(`Column ${field} cannot have sub-selection`)\n\t\t\t\t\t}\n\t\t\t\t\tfields.add(column.name)\n\t\t\t\t},\n\t\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tfields.add(relation.name)\n\t\t\t\t\trelations.add(relation.name)\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name])\n\t\t\t\t},\n\t\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tfields.add(relation.name)\n\t\t\t\t\trelations.add(relation.name)\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitOneHasOneInverse: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name])\n\t\t\t\t},\n\t\t\t\tvisitManyHasManyOwning: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.addJunctionListener(entity.name, relation.name, {\n\t\t\t\t\t\ttype: 'junction',\n\t\t\t\t\t\trootEntity,\n\t\t\t\t\t\tpath: path,\n\t\t\t\t\t\ttrigger,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\trelation,\n\t\t\t\t\t\t\ttype: 'owning',\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitManyHasManyInverse: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.addJunctionListener(targetEntity.name, targetRelation.name, {\n\t\t\t\t\t\ttype: 'junction',\n\t\t\t\t\t\trootEntity,\n\t\t\t\t\t\tpath: path,\n\t\t\t\t\t\ttrigger,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\trelation,\n\t\t\t\t\t\t\ttype: 'inverse',\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\tif (path.length === 0) {\n\t\t\tthis.addListener('updateListeners', entity.name, {\n\t\t\t\ttype: 'update',\n\t\t\t\tentity: rootEntity,\n\t\t\t\tfields,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t} else {\n\t\t\tthis.addListener('indirectListeners', entity.name, {\n\t\t\t\ttype: 'indirect',\n\t\t\t\trootEntity: rootEntity,\n\t\t\t\tfields,\n\t\t\t\trelations,\n\t\t\t\tpath,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic createStore(): TriggerListenersStore {\n\t\treturn new TriggerListenersStore(this.data)\n\t}\n\n\n\tprivate addListener<\n\t\tK extends Exclude<keyof TriggerListeners, 'junctionListeners'>,\n\t\tV extends TriggerListeners[K] extends Map<string, infer V extends any[]> ? V[number] : never\n\t>\n\t(\n\t\ttype: K,\n\t\tentityName: string,\n\t\tvalue: V,\n\t) {\n\t\tmapGetOrPut<string, V[], []>(this.data[type] as Map<string, V[]>, entityName, () => []).push(value)\n\t}\n\n\tprivate addJunctionListener(entityName: string, relationName: string, listener: JunctionListener) {\n\t\tconst entityJunctionListeners = mapGetOrPut(this.data.junctionListeners, entityName, () => new Map())\n\t\tconst relationListeners = mapGetOrPut(entityJunctionListeners, relationName, () => [])\n\t\trelationListeners.push(listener)\n\t}\n}\n"],"names":["ImplementationException","getEntity","acceptFieldVisitor","entity","TriggerListenersStore","mapGetOrPut"],"mappings":"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"}
@@ -1,169 +0,0 @@
1
- import { TriggerListenersStore } from "./TriggerListenersStore.js";
2
- import { getEntity, acceptFieldVisitor } from "@contember/schema-utils";
3
- import { mapGetOrPut } from "../utils/map.js";
4
- import { ImplementationException } from "../ImplementationException.js";
5
- var __defProp = Object.defineProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class TriggerListenerBuilder {
9
- constructor(model) {
10
- this.model = model;
11
- __publicField(this, "data", {
12
- createListeners: /* @__PURE__ */ new Map(),
13
- updateListeners: /* @__PURE__ */ new Map(),
14
- deleteListeners: /* @__PURE__ */ new Map(),
15
- indirectListeners: /* @__PURE__ */ new Map(),
16
- junctionListeners: /* @__PURE__ */ new Map()
17
- });
18
- }
19
- add(trigger) {
20
- if (trigger.type === "basic") {
21
- this.processBasicTrigger(trigger);
22
- } else if (trigger.type === "watch") {
23
- this.processIndirectListeners(trigger);
24
- } else {
25
- ((_) => {
26
- throw new ImplementationException(`Unhandled trigger ${trigger.type}`);
27
- })();
28
- }
29
- }
30
- processBasicTrigger(trigger) {
31
- const entity = getEntity(this.model, trigger.entity);
32
- if (trigger.create) {
33
- this.addListener("createListeners", trigger.entity, {
34
- type: "create",
35
- entity,
36
- trigger
37
- });
38
- }
39
- if (trigger.delete) {
40
- this.addListener("deleteListeners", trigger.entity, {
41
- type: "delete",
42
- entity,
43
- trigger
44
- });
45
- }
46
- if (trigger.update) {
47
- this.addListener("updateListeners", trigger.entity, {
48
- type: "update",
49
- entity,
50
- trigger,
51
- fields: new Set(trigger.update === true ? Object.keys(entity.fields) : trigger.update)
52
- // todo: only columns and owning
53
- });
54
- }
55
- }
56
- processIndirectListeners(trigger) {
57
- const entity = getEntity(this.model, trigger.entity);
58
- this.addListener("createListeners", trigger.entity, {
59
- type: "create",
60
- entity,
61
- trigger
62
- });
63
- this.addListener("deleteListeners", trigger.entity, {
64
- type: "delete",
65
- entity,
66
- trigger
67
- });
68
- this.processIndirectListenersNode(trigger, entity, entity, trigger.watch, []);
69
- }
70
- processIndirectListenersNode(trigger, rootEntity, entity, node, path) {
71
- const fields = /* @__PURE__ */ new Set();
72
- const relations = /* @__PURE__ */ new Set();
73
- for (const entry of node) {
74
- const [field, args, selection] = Array.isArray(entry) ? entry : [entry, void 0, void 0];
75
- acceptFieldVisitor(this.model, entity, field, {
76
- visitColumn: ({ entity: entity2, column }) => {
77
- if (selection?.length > 0) {
78
- throw new ImplementationException(`Column ${field} cannot have sub-selection`);
79
- }
80
- fields.add(column.name);
81
- },
82
- visitManyHasOne: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
83
- fields.add(relation.name);
84
- relations.add(relation.name);
85
- if (selection?.length > 0) {
86
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
87
- }
88
- },
89
- visitOneHasMany: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
90
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name]);
91
- },
92
- visitOneHasOneOwning: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
93
- fields.add(relation.name);
94
- relations.add(relation.name);
95
- if (selection?.length > 0) {
96
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
97
- }
98
- },
99
- visitOneHasOneInverse: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
100
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name]);
101
- },
102
- visitManyHasManyOwning: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
103
- this.addJunctionListener(entity2.name, relation.name, {
104
- type: "junction",
105
- rootEntity,
106
- path,
107
- trigger,
108
- context: {
109
- entity: entity2,
110
- relation,
111
- type: "owning"
112
- }
113
- });
114
- if (selection?.length > 0) {
115
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
116
- }
117
- },
118
- visitManyHasManyInverse: ({ entity: entity2, relation, targetEntity, targetRelation }) => {
119
- this.addJunctionListener(targetEntity.name, targetRelation.name, {
120
- type: "junction",
121
- rootEntity,
122
- path,
123
- trigger,
124
- context: {
125
- entity: entity2,
126
- relation,
127
- type: "inverse"
128
- }
129
- });
130
- if (selection?.length > 0) {
131
- this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
132
- }
133
- }
134
- });
135
- }
136
- if (path.length === 0) {
137
- this.addListener("updateListeners", entity.name, {
138
- type: "update",
139
- entity: rootEntity,
140
- fields,
141
- trigger
142
- });
143
- } else {
144
- this.addListener("indirectListeners", entity.name, {
145
- type: "indirect",
146
- rootEntity,
147
- fields,
148
- relations,
149
- path,
150
- trigger
151
- });
152
- }
153
- }
154
- createStore() {
155
- return new TriggerListenersStore(this.data);
156
- }
157
- addListener(type, entityName, value) {
158
- mapGetOrPut(this.data[type], entityName, () => []).push(value);
159
- }
160
- addJunctionListener(entityName, relationName, listener) {
161
- const entityJunctionListeners = mapGetOrPut(this.data.junctionListeners, entityName, () => /* @__PURE__ */ new Map());
162
- const relationListeners = mapGetOrPut(entityJunctionListeners, relationName, () => []);
163
- relationListeners.push(listener);
164
- }
165
- }
166
- export {
167
- TriggerListenerBuilder
168
- };
169
- //# sourceMappingURL=TriggerListenersBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersBuilder.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersBuilder.ts"],"sourcesContent":["import { Actions, Model } from '@contember/schema'\nimport { TriggerListeners } from './TriggerListeners'\nimport { JunctionListener, TriggerListenersStore } from './TriggerListenersStore'\nimport { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { mapGetOrPut } from '../utils/map'\nimport { ImplementationException } from '../ImplementationException'\n\nexport class TriggerListenerBuilder {\n\n\tprivate readonly data: TriggerListeners = {\n\t\tcreateListeners: new Map(),\n\t\tupdateListeners: new Map(),\n\t\tdeleteListeners: new Map(),\n\t\tindirectListeners: new Map(),\n\t\tjunctionListeners: new Map(),\n\t}\n\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t) {\n\t}\n\n\tpublic add(trigger: Actions.AnyTrigger) {\n\t\tif (trigger.type === 'basic') {\n\t\t\tthis.processBasicTrigger(trigger)\n\t\t} else if (trigger.type === 'watch') {\n\t\t\tthis.processIndirectListeners(trigger)\n\t\t} else {\n\t\t\t((_: never) => {\n\t\t\t\tthrow new ImplementationException(`Unhandled trigger ${(trigger as any).type}`)\n\t\t\t})(trigger)\n\t\t}\n\t}\n\n\tprivate processBasicTrigger(trigger: Actions.BasicTrigger) {\n\t\tconst entity = getEntity(this.model, trigger.entity)\n\t\tif (trigger.create) {\n\t\t\tthis.addListener('createListeners', trigger.entity, {\n\t\t\t\ttype: 'create',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t\tif (trigger.delete) {\n\t\t\tthis.addListener('deleteListeners', trigger.entity, {\n\t\t\t\ttype: 'delete',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t\tif (trigger.update) {\n\t\t\tthis.addListener('updateListeners', trigger.entity, {\n\t\t\t\ttype: 'update',\n\t\t\t\tentity,\n\t\t\t\ttrigger,\n\t\t\t\tfields: new Set(trigger.update === true ? Object.keys(entity.fields) : trigger.update), // todo: only columns and owning\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate processIndirectListeners(\n\t\ttrigger: Actions.WatchTrigger,\n\t) {\n\t\tconst entity = getEntity(this.model, trigger.entity)\n\t\tthis.addListener('createListeners', trigger.entity, {\n\t\t\ttype: 'create',\n\t\t\tentity,\n\t\t\ttrigger,\n\t\t})\n\t\tthis.addListener('deleteListeners', trigger.entity, {\n\t\t\ttype: 'delete',\n\t\t\tentity,\n\t\t\ttrigger,\n\t\t})\n\t\tthis.processIndirectListenersNode(trigger, entity, entity, trigger.watch, [])\n\t}\n\tprivate processIndirectListenersNode(\n\t\ttrigger: Actions.WatchTrigger,\n\t\trootEntity: Model.Entity,\n\t\tentity: Model.Entity,\n\t\tnode: Actions.SelectionNode,\n\t\tpath: string[],\n\t) {\n\t\tconst fields = new Set<string>()\n\t\tconst relations = new Set<string>()\n\t\tfor (const entry of node) {\n\t\t\tconst [field, args, selection] = Array.isArray(entry) ? entry : [entry, undefined, undefined]\n\t\t\tacceptFieldVisitor(this.model, entity, field, {\n\t\t\t\tvisitColumn: ({ entity, column }) => {\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthrow new ImplementationException(`Column ${field} cannot have sub-selection`)\n\t\t\t\t\t}\n\t\t\t\t\tfields.add(column.name)\n\t\t\t\t},\n\t\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tfields.add(relation.name)\n\t\t\t\t\trelations.add(relation.name)\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name])\n\t\t\t\t},\n\t\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tfields.add(relation.name)\n\t\t\t\t\trelations.add(relation.name)\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitOneHasOneInverse: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection ?? [], targetRelation.name], [...path, relation.name])\n\t\t\t\t},\n\t\t\t\tvisitManyHasManyOwning: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.addJunctionListener(entity.name, relation.name, {\n\t\t\t\t\t\ttype: 'junction',\n\t\t\t\t\t\trootEntity,\n\t\t\t\t\t\tpath: path,\n\t\t\t\t\t\ttrigger,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\trelation,\n\t\t\t\t\t\t\ttype: 'owning',\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvisitManyHasManyInverse: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\t\tthis.addJunctionListener(targetEntity.name, targetRelation.name, {\n\t\t\t\t\t\ttype: 'junction',\n\t\t\t\t\t\trootEntity,\n\t\t\t\t\t\tpath: path,\n\t\t\t\t\t\ttrigger,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\trelation,\n\t\t\t\t\t\t\ttype: 'inverse',\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tif (selection?.length > 0) {\n\t\t\t\t\t\tthis.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name])\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\tif (path.length === 0) {\n\t\t\tthis.addListener('updateListeners', entity.name, {\n\t\t\t\ttype: 'update',\n\t\t\t\tentity: rootEntity,\n\t\t\t\tfields,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t} else {\n\t\t\tthis.addListener('indirectListeners', entity.name, {\n\t\t\t\ttype: 'indirect',\n\t\t\t\trootEntity: rootEntity,\n\t\t\t\tfields,\n\t\t\t\trelations,\n\t\t\t\tpath,\n\t\t\t\ttrigger,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic createStore(): TriggerListenersStore {\n\t\treturn new TriggerListenersStore(this.data)\n\t}\n\n\n\tprivate addListener<\n\t\tK extends Exclude<keyof TriggerListeners, 'junctionListeners'>,\n\t\tV extends TriggerListeners[K] extends Map<string, infer V extends any[]> ? V[number] : never\n\t>\n\t(\n\t\ttype: K,\n\t\tentityName: string,\n\t\tvalue: V,\n\t) {\n\t\tmapGetOrPut<string, V[], []>(this.data[type] as Map<string, V[]>, entityName, () => []).push(value)\n\t}\n\n\tprivate addJunctionListener(entityName: string, relationName: string, listener: JunctionListener) {\n\t\tconst entityJunctionListeners = mapGetOrPut(this.data.junctionListeners, entityName, () => new Map())\n\t\tconst relationListeners = mapGetOrPut(entityJunctionListeners, relationName, () => [])\n\t\trelationListeners.push(listener)\n\t}\n}\n"],"names":["entity"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const TriggerListenersBuilder = require("./TriggerListenersBuilder.cjs");
4
- class TriggerListenersFactory {
5
- constructor(schema) {
6
- this.schema = schema;
7
- }
8
- create() {
9
- const builder = new TriggerListenersBuilder.TriggerListenerBuilder(this.schema.model);
10
- for (const trigger of Object.values(this.schema.actions.triggers)) {
11
- builder.add(trigger);
12
- }
13
- return builder.createStore();
14
- }
15
- }
16
- exports.TriggerListenersFactory = TriggerListenersFactory;
17
- //# sourceMappingURL=TriggerListenersFactory.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersFactory.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersFactory.ts"],"sourcesContent":["import { TriggerListenersStore } from './TriggerListenersStore'\nimport { TriggerListenerBuilder } from './TriggerListenersBuilder'\nimport { Schema } from '@contember/schema'\n\nexport class TriggerListenersFactory {\n\tconstructor(\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic create(): TriggerListenersStore {\n\t\tconst builder = new TriggerListenerBuilder(this.schema.model)\n\t\tfor (const trigger of Object.values(this.schema.actions.triggers)) {\n\t\t\tbuilder.add(trigger)\n\t\t}\n\n\t\treturn builder.createStore()\n\t}\n}\n"],"names":["TriggerListenerBuilder"],"mappings":";;;AAIO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAAA;AAAA,EAIX,SAAgC;AACtC,UAAM,UAAU,IAAIA,wBAAAA,uBAAuB,KAAK,OAAO,KAAK;AAC5D,eAAW,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAClE,cAAQ,IAAI,OAAO;AAAA,IAAA;AAGpB,WAAO,QAAQ,YAAY;AAAA,EAAA;AAE7B;;"}
@@ -1,17 +0,0 @@
1
- import { TriggerListenerBuilder } from "./TriggerListenersBuilder.js";
2
- class TriggerListenersFactory {
3
- constructor(schema) {
4
- this.schema = schema;
5
- }
6
- create() {
7
- const builder = new TriggerListenerBuilder(this.schema.model);
8
- for (const trigger of Object.values(this.schema.actions.triggers)) {
9
- builder.add(trigger);
10
- }
11
- return builder.createStore();
12
- }
13
- }
14
- export {
15
- TriggerListenersFactory
16
- };
17
- //# sourceMappingURL=TriggerListenersFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersFactory.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersFactory.ts"],"sourcesContent":["import { TriggerListenersStore } from './TriggerListenersStore'\nimport { TriggerListenerBuilder } from './TriggerListenersBuilder'\nimport { Schema } from '@contember/schema'\n\nexport class TriggerListenersFactory {\n\tconstructor(\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic create(): TriggerListenersStore {\n\t\tconst builder = new TriggerListenerBuilder(this.schema.model)\n\t\tfor (const trigger of Object.values(this.schema.actions.triggers)) {\n\t\t\tbuilder.add(trigger)\n\t\t}\n\n\t\treturn builder.createStore()\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAAA;AAAA,EAIX,SAAgC;AACtC,UAAM,UAAU,IAAI,uBAAuB,KAAK,OAAO,KAAK;AAC5D,eAAW,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAClE,cAAQ,IAAI,OAAO;AAAA,IAAA;AAGpB,WAAO,QAAQ,YAAY;AAAA,EAAA;AAE7B;"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- class TriggerListenersStore {
4
- constructor(listeners) {
5
- this.listeners = listeners;
6
- }
7
- getUpdateListeners(entityName) {
8
- return this.listeners.updateListeners.get(entityName) ?? [];
9
- }
10
- getDeleteListener(entityName) {
11
- return this.listeners.deleteListeners.get(entityName) ?? [];
12
- }
13
- getCreateListener(entityName) {
14
- return this.listeners.createListeners.get(entityName) ?? [];
15
- }
16
- getIndirectListeners(entityName) {
17
- return this.listeners.indirectListeners.get(entityName) ?? [];
18
- }
19
- getJunctionListeners(entityName, relationName) {
20
- return this.listeners.junctionListeners.get(entityName)?.get(relationName) ?? [];
21
- }
22
- }
23
- exports.TriggerListenersStore = TriggerListenersStore;
24
- //# sourceMappingURL=TriggerListenersStore.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersStore.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersStore.ts"],"sourcesContent":["import { Actions, Model } from '@contember/schema'\nimport { TriggerListeners } from './TriggerListeners'\n\nexport interface IndirectListener {\n\ttype: 'indirect'\n\ttrigger: Actions.WatchTrigger\n\trootEntity: Model.Entity\n\tfields: Set<string>\n\trelations: Set<string>\n\tpath: string[]\n}\n\nexport interface JunctionListener {\n\ttype: 'junction'\n\ttrigger: Actions.WatchTrigger\n\trootEntity: Model.Entity\n\tpath: string[]\n\tcontext: {\n\t\tentity: Model.Entity\n\t\trelation: Model.ManyHasManyOwningRelation | Model.ManyHasManyInverseRelation\n\t\ttype: 'owning' | 'inverse'\n\t}\n}\n\nexport interface DeleteListener {\n\ttype: 'delete'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n}\n\nexport interface CreateListener {\n\ttype: 'create'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n}\n\nexport interface UpdateListener {\n\ttype: 'update'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n\tfields: Set<string>\n}\n\nexport type AnyListener =\n\t| JunctionListener\n\t| UpdateListener\n\t| CreateListener\n\t| DeleteListener\n\t| IndirectListener\n\nexport class TriggerListenersStore {\n\tconstructor(\n\t\tprivate readonly listeners: TriggerListeners,\n\t) {\n\t}\n\n\tpublic getUpdateListeners(entityName: string): UpdateListener[] {\n\t\treturn this.listeners.updateListeners.get(entityName) ?? []\n\t}\n\n\tpublic getDeleteListener(entityName: string): DeleteListener[] {\n\t\treturn this.listeners.deleteListeners.get(entityName) ?? []\n\t}\n\n\tpublic getCreateListener(entityName: string): CreateListener[] {\n\t\treturn this.listeners.createListeners.get(entityName) ?? []\n\t}\n\n\tpublic getIndirectListeners(entityName: string): IndirectListener[] {\n\t\treturn this.listeners.indirectListeners.get(entityName) ?? []\n\t}\n\n\tpublic getJunctionListeners(entityName: string, relationName: string): JunctionListener[] {\n\t\treturn this.listeners.junctionListeners.get(entityName)?.get(relationName) ?? []\n\t}\n}\n"],"names":[],"mappings":";;AAkDO,MAAM,sBAAsB;AAAA,EAClC,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAAA;AAAA,EAIX,mBAAmB,YAAsC;AAC/D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,qBAAqB,YAAwC;AACnE,WAAO,KAAK,UAAU,kBAAkB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGtD,qBAAqB,YAAoB,cAA0C;AAClF,WAAA,KAAK,UAAU,kBAAkB,IAAI,UAAU,GAAG,IAAI,YAAY,KAAK,CAAC;AAAA,EAAA;AAEjF;;"}
@@ -1,24 +0,0 @@
1
- class TriggerListenersStore {
2
- constructor(listeners) {
3
- this.listeners = listeners;
4
- }
5
- getUpdateListeners(entityName) {
6
- return this.listeners.updateListeners.get(entityName) ?? [];
7
- }
8
- getDeleteListener(entityName) {
9
- return this.listeners.deleteListeners.get(entityName) ?? [];
10
- }
11
- getCreateListener(entityName) {
12
- return this.listeners.createListeners.get(entityName) ?? [];
13
- }
14
- getIndirectListeners(entityName) {
15
- return this.listeners.indirectListeners.get(entityName) ?? [];
16
- }
17
- getJunctionListeners(entityName, relationName) {
18
- return this.listeners.junctionListeners.get(entityName)?.get(relationName) ?? [];
19
- }
20
- }
21
- export {
22
- TriggerListenersStore
23
- };
24
- //# sourceMappingURL=TriggerListenersStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerListenersStore.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerListenersStore.ts"],"sourcesContent":["import { Actions, Model } from '@contember/schema'\nimport { TriggerListeners } from './TriggerListeners'\n\nexport interface IndirectListener {\n\ttype: 'indirect'\n\ttrigger: Actions.WatchTrigger\n\trootEntity: Model.Entity\n\tfields: Set<string>\n\trelations: Set<string>\n\tpath: string[]\n}\n\nexport interface JunctionListener {\n\ttype: 'junction'\n\ttrigger: Actions.WatchTrigger\n\trootEntity: Model.Entity\n\tpath: string[]\n\tcontext: {\n\t\tentity: Model.Entity\n\t\trelation: Model.ManyHasManyOwningRelation | Model.ManyHasManyInverseRelation\n\t\ttype: 'owning' | 'inverse'\n\t}\n}\n\nexport interface DeleteListener {\n\ttype: 'delete'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n}\n\nexport interface CreateListener {\n\ttype: 'create'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n}\n\nexport interface UpdateListener {\n\ttype: 'update'\n\ttrigger: Actions.AnyTrigger\n\tentity: Model.Entity\n\tfields: Set<string>\n}\n\nexport type AnyListener =\n\t| JunctionListener\n\t| UpdateListener\n\t| CreateListener\n\t| DeleteListener\n\t| IndirectListener\n\nexport class TriggerListenersStore {\n\tconstructor(\n\t\tprivate readonly listeners: TriggerListeners,\n\t) {\n\t}\n\n\tpublic getUpdateListeners(entityName: string): UpdateListener[] {\n\t\treturn this.listeners.updateListeners.get(entityName) ?? []\n\t}\n\n\tpublic getDeleteListener(entityName: string): DeleteListener[] {\n\t\treturn this.listeners.deleteListeners.get(entityName) ?? []\n\t}\n\n\tpublic getCreateListener(entityName: string): CreateListener[] {\n\t\treturn this.listeners.createListeners.get(entityName) ?? []\n\t}\n\n\tpublic getIndirectListeners(entityName: string): IndirectListener[] {\n\t\treturn this.listeners.indirectListeners.get(entityName) ?? []\n\t}\n\n\tpublic getJunctionListeners(entityName: string, relationName: string): JunctionListener[] {\n\t\treturn this.listeners.junctionListeners.get(entityName)?.get(relationName) ?? []\n\t}\n}\n"],"names":[],"mappings":"AAkDO,MAAM,sBAAsB;AAAA,EAClC,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAAA;AAAA,EAIX,mBAAmB,YAAsC;AAC/D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGpD,qBAAqB,YAAwC;AACnE,WAAO,KAAK,UAAU,kBAAkB,IAAI,UAAU,KAAK,CAAC;AAAA,EAAA;AAAA,EAGtD,qBAAqB,YAAoB,cAA0C;AAClF,WAAA,KAAK,UAAU,kBAAkB,IAAI,UAAU,GAAG,IAAI,YAAY,KAAK,CAAC;AAAA,EAAA;AAEjF;"}
@@ -1,149 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ImplementationException = require("../ImplementationException.cjs");
4
- const assertNever = require("../utils/assertNever.cjs");
5
- const engineContentApi = require("@contember/engine-content-api");
6
- class TriggerPayloadBuilder {
7
- constructor(mapper) {
8
- this.mapper = mapper;
9
- }
10
- async build(events) {
11
- const filteredEvents = events.filter((it) => {
12
- return it.cause.type !== "BeforeUpdateEvent" || it.cause.afterEvent?.hasChanges === true;
13
- });
14
- if (filteredEvents.length === 0) {
15
- return [];
16
- }
17
- const selections = await this.fetchSelection(filteredEvents);
18
- const triggerType = filteredEvents[0].listener.trigger.type;
19
- if (triggerType === "basic") {
20
- return filteredEvents.map((it) => ({ trigger: it.listener.trigger.name, ...this.buildBaseEventPayloads(it, it.selection ?? selections[it.primary]) }));
21
- }
22
- if (triggerType === "watch") {
23
- return this.buildWatchEventPayloads(filteredEvents, selections);
24
- }
25
- return assertNever.assertNever(triggerType);
26
- }
27
- async preprocessEvent(event) {
28
- if (event.listener.type === "delete" && event.listener.trigger.selection) {
29
- const input = this.convertSelectionNode(event.listener.trigger.selection);
30
- const selection = await this.mapper.selectUnique(event.entity, input.withArg("by", {
31
- [event.entity.primary]: event.primary
32
- }), []);
33
- return { ...event, selection };
34
- }
35
- return event;
36
- }
37
- buildWatchEventPayloads(events, selections) {
38
- var _a;
39
- const byPrimary = {};
40
- for (const event of events) {
41
- byPrimary[_a = event.primary] ?? (byPrimary[_a] = { primary: event.primary, events: [] });
42
- byPrimary[event.primary].events.push(event);
43
- }
44
- const payloads = [];
45
- for (const eventsByPrimary of Object.values(byPrimary)) {
46
- const baseEvents = [];
47
- const existingEvents = /* @__PURE__ */ new Set();
48
- for (const event of eventsByPrimary.events) {
49
- const baseEvent = this.buildBaseEventPayloads(event);
50
- const stringRepresentation = JSON.stringify(baseEvent);
51
- if (existingEvents.has(stringRepresentation)) {
52
- continue;
53
- }
54
- existingEvents.add(stringRepresentation);
55
- baseEvents.push(baseEvent);
56
- }
57
- payloads.push({
58
- operation: "watch",
59
- trigger: events[0].listener.trigger.name,
60
- entity: events[0].entity.name,
61
- id: eventsByPrimary.primary,
62
- selection: eventsByPrimary.events.find((it) => it.selection)?.selection ?? selections[eventsByPrimary.primary],
63
- events: baseEvents
64
- });
65
- }
66
- return payloads;
67
- }
68
- buildBaseEventPayloads(event, selection) {
69
- switch (event.cause.type) {
70
- case "AfterInsertEvent":
71
- return {
72
- operation: "create",
73
- entity: event.cause.entity.name,
74
- id: event.cause.id,
75
- selection,
76
- values: Object.fromEntries(event.cause.data.map((it) => [it.fieldName, it.value])),
77
- path: "path" in event.listener ? event.listener.path : void 0,
78
- nodes: event.nodes
79
- };
80
- case "AfterUpdateEvent":
81
- case "BeforeUpdateEvent":
82
- const afterEvent = event.cause.type === "AfterUpdateEvent" ? event.cause : event.cause.afterEvent;
83
- if (!afterEvent) {
84
- throw new ImplementationException.ImplementationException();
85
- }
86
- return {
87
- operation: "update",
88
- entity: event.cause.entity.name,
89
- id: event.cause.id,
90
- selection,
91
- values: Object.fromEntries(event.cause.data.map((it) => [it.fieldName, it.value])),
92
- path: "path" in event.listener ? event.listener.path : void 0,
93
- old: Object.fromEntries(afterEvent.data.map((it) => [it.fieldName, it.old])),
94
- nodes: event.nodes
95
- };
96
- case "BeforeDeleteEvent":
97
- return {
98
- operation: "delete",
99
- entity: event.cause.entity.name,
100
- id: event.cause.id,
101
- selection,
102
- path: "path" in event.listener ? event.listener.path : void 0,
103
- nodes: event.nodes
104
- };
105
- case "AfterJunctionUpdateEvent":
106
- if (event.listener.type !== "junction") {
107
- throw new ImplementationException.ImplementationException();
108
- }
109
- const [id, inverseId] = event.listener.context.type === "owning" ? [event.cause.owningId, event.cause.inverseId] : [event.cause.inverseId, event.cause.owningId];
110
- return {
111
- operation: event.cause.operation === "connect" ? "junction_connect" : "junction_disconnect",
112
- entity: event.listener.context.entity.name,
113
- relation: event.listener.context.relation.name,
114
- id,
115
- inverseId,
116
- path: "path" in event.listener ? event.listener.path : void 0,
117
- nodes: event.nodes
118
- };
119
- default:
120
- assertNever.assertNever(event.cause, (it) => it.type);
121
- }
122
- }
123
- async fetchSelection(events) {
124
- const trigger = events[0].listener.trigger;
125
- if (!trigger.selection) {
126
- return {};
127
- }
128
- const ids = Array.from(new Set(events.filter((it) => it.listener.type !== "delete").map((it) => it.primary)));
129
- if (ids.length === 0) {
130
- return {};
131
- }
132
- const entity = events[0].entity;
133
- const input = this.convertSelectionNode(trigger.selection).withArg("filter", {
134
- [entity.primary]: { in: ids }
135
- });
136
- return await this.mapper.selectAssoc(entity, input, [], entity.primary);
137
- }
138
- convertSelectionNode(node, nodeName = "root", path = []) {
139
- return new engineContentApi.ObjectNode(nodeName, nodeName, node.map((it) => {
140
- const [field, args, selection] = Array.isArray(it) ? it : [it, void 0, void 0];
141
- if (selection === void 0 || selection.length === 0) {
142
- return new engineContentApi.FieldNode(field, field, {});
143
- }
144
- return this.convertSelectionNode(selection, field, [...path, nodeName]).withArgs(args);
145
- }), {}, {}, path);
146
- }
147
- }
148
- exports.TriggerPayloadBuilder = TriggerPayloadBuilder;
149
- //# sourceMappingURL=TriggerPayloadBuilder.cjs.map