@contember/engine-actions 2.1.0-alpha.37 → 2.1.0-alpha.39
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.
- package/dist/development/index.cjs +118 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +118 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +42 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.js +42 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.js.map +1 -0
- package/dist/development/src/ImplementationException.cjs +6 -0
- package/dist/development/src/ImplementationException.cjs.map +1 -0
- package/dist/development/src/ImplementationException.js +6 -0
- package/dist/development/src/ImplementationException.js.map +1 -0
- package/dist/development/src/ListenerStoreProvider.cjs +25 -0
- package/dist/development/src/ListenerStoreProvider.cjs.map +1 -0
- package/dist/development/src/ListenerStoreProvider.js +25 -0
- package/dist/development/src/ListenerStoreProvider.js.map +1 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.cjs +17 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.cjs.map +1 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.js +18 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.js.map +1 -0
- package/dist/development/src/authorization/ActionsPermissionsFactory.cjs +16 -0
- package/dist/development/src/authorization/ActionsPermissionsFactory.cjs.map +1 -0
- package/dist/development/src/authorization/ActionsPermissionsFactory.js +16 -0
- package/dist/development/src/authorization/ActionsPermissionsFactory.js.map +1 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs +127 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.js +127 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.js.map +1 -0
- package/dist/development/src/dispatch/EventDispatcher.cjs +43 -0
- package/dist/development/src/dispatch/EventDispatcher.cjs.map +1 -0
- package/dist/development/src/dispatch/EventDispatcher.js +43 -0
- package/dist/development/src/dispatch/EventDispatcher.js.map +1 -0
- package/dist/development/src/dispatch/EventsRepository.cjs +122 -0
- package/dist/development/src/dispatch/EventsRepository.cjs.map +1 -0
- package/dist/development/src/dispatch/EventsRepository.js +122 -0
- package/dist/development/src/dispatch/EventsRepository.js.map +1 -0
- package/dist/development/src/dispatch/ProjectDispatcher.cjs +99 -0
- package/dist/development/src/dispatch/ProjectDispatcher.cjs.map +1 -0
- package/dist/development/src/dispatch/ProjectDispatcher.js +99 -0
- package/dist/development/src/dispatch/ProjectDispatcher.js.map +1 -0
- package/dist/development/src/dispatch/TargetHandlerResolver.cjs +16 -0
- package/dist/development/src/dispatch/TargetHandlerResolver.cjs.map +1 -0
- package/dist/development/src/dispatch/TargetHandlerResolver.js +16 -0
- package/dist/development/src/dispatch/TargetHandlerResolver.js.map +1 -0
- package/dist/development/src/dispatch/WebhookFetcher.cjs +16 -0
- package/dist/development/src/dispatch/WebhookFetcher.cjs.map +1 -0
- package/dist/development/src/dispatch/WebhookFetcher.js +16 -0
- package/dist/development/src/dispatch/WebhookFetcher.js.map +1 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.cjs +198 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +1 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.js +181 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs +39 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js +39 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.cjs +36 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.js +36 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs +20 -0
- package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js +20 -0
- package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs +152 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js +135 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.cjs +36 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.js +36 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.js.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs +19 -0
- package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +19 -0
- package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
- package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
- package/dist/development/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs +19 -0
- package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +19 -0
- package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
- package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
- package/dist/development/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs +61 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js +61 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs +19 -0
- package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js +19 -0
- package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -0
- package/dist/development/src/graphql/schema/actions.graphql.cjs +107 -0
- package/dist/development/src/graphql/schema/actions.graphql.cjs.map +1 -0
- package/dist/development/src/graphql/schema/actions.graphql.js +107 -0
- package/dist/development/src/graphql/schema/actions.graphql.js.map +1 -0
- package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs +16 -0
- package/dist/development/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -0
- package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js +17 -0
- package/dist/development/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -0
- package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
- package/dist/development/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
- package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
- package/dist/development/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
- package/dist/development/src/migrations/index.cjs +12 -0
- package/dist/development/src/migrations/index.cjs.map +1 -0
- package/dist/development/src/migrations/index.js +12 -0
- package/dist/development/src/migrations/index.js.map +1 -0
- package/dist/development/src/migrations/snapshot.cjs +51 -0
- package/dist/development/src/migrations/snapshot.cjs.map +1 -0
- package/dist/development/src/migrations/snapshot.js +52 -0
- package/dist/development/src/migrations/snapshot.js.map +1 -0
- package/dist/development/src/model/EventByIdQuery.cjs +17 -0
- package/dist/development/src/model/EventByIdQuery.cjs.map +1 -0
- package/dist/development/src/model/EventByIdQuery.js +17 -0
- package/dist/development/src/model/EventByIdQuery.js.map +1 -0
- package/dist/development/src/model/EventsInProcessingQuery.cjs +14 -0
- package/dist/development/src/model/EventsInProcessingQuery.cjs.map +1 -0
- package/dist/development/src/model/EventsInProcessingQuery.js +14 -0
- package/dist/development/src/model/EventsInProcessingQuery.js.map +1 -0
- package/dist/development/src/model/EventsToProcessQuery.cjs +15 -0
- package/dist/development/src/model/EventsToProcessQuery.cjs.map +1 -0
- package/dist/development/src/model/EventsToProcessQuery.js +15 -0
- package/dist/development/src/model/EventsToProcessQuery.js.map +1 -0
- package/dist/development/src/model/EventsToProcessSpecification.cjs +8 -0
- package/dist/development/src/model/EventsToProcessSpecification.cjs.map +1 -0
- package/dist/development/src/model/EventsToProcessSpecification.js +8 -0
- package/dist/development/src/model/EventsToProcessSpecification.js.map +1 -0
- package/dist/development/src/model/FailedEventsQuery.cjs +14 -0
- package/dist/development/src/model/FailedEventsQuery.cjs.map +1 -0
- package/dist/development/src/model/FailedEventsQuery.js +14 -0
- package/dist/development/src/model/FailedEventsQuery.js.map +1 -0
- package/dist/development/src/model/SetVariableCommand.cjs +21 -0
- package/dist/development/src/model/SetVariableCommand.cjs.map +1 -0
- package/dist/development/src/model/SetVariableCommand.js +21 -0
- package/dist/development/src/model/SetVariableCommand.js.map +1 -0
- package/dist/development/src/model/VariablesManager.cjs +41 -0
- package/dist/development/src/model/VariablesManager.cjs.map +1 -0
- package/dist/development/src/model/VariablesManager.js +41 -0
- package/dist/development/src/model/VariablesManager.js.map +1 -0
- package/dist/development/src/model/VariablesQuery.cjs +10 -0
- package/dist/development/src/model/VariablesQuery.cjs.map +1 -0
- package/dist/development/src/model/VariablesQuery.js +10 -0
- package/dist/development/src/model/VariablesQuery.js.map +1 -0
- package/dist/development/src/triggers/TriggerHandler.cjs +129 -0
- package/dist/development/src/triggers/TriggerHandler.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerHandler.js +129 -0
- package/dist/development/src/triggers/TriggerHandler.js.map +1 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs +63 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js +63 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -0
- package/dist/development/src/triggers/TriggerListenersBuilder.cjs +169 -0
- package/dist/development/src/triggers/TriggerListenersBuilder.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerListenersBuilder.js +169 -0
- package/dist/development/src/triggers/TriggerListenersBuilder.js.map +1 -0
- package/dist/development/src/triggers/TriggerListenersFactory.cjs +17 -0
- package/dist/development/src/triggers/TriggerListenersFactory.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerListenersFactory.js +17 -0
- package/dist/development/src/triggers/TriggerListenersFactory.js.map +1 -0
- package/dist/development/src/triggers/TriggerListenersStore.cjs +24 -0
- package/dist/development/src/triggers/TriggerListenersStore.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerListenersStore.js +24 -0
- package/dist/development/src/triggers/TriggerListenersStore.js.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.cjs +163 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.js +163 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.js.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadManager.cjs +27 -0
- package/dist/development/src/triggers/TriggerPayloadManager.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadManager.js +27 -0
- package/dist/development/src/triggers/TriggerPayloadManager.js.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.cjs +47 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.js +47 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.js.map +1 -0
- package/dist/development/src/utils/assertNever.cjs +7 -0
- package/dist/development/src/utils/assertNever.cjs.map +1 -0
- package/dist/development/src/utils/assertNever.js +7 -0
- package/dist/development/src/utils/assertNever.js.map +1 -0
- package/dist/development/src/utils/map.cjs +13 -0
- package/dist/development/src/utils/map.cjs.map +1 -0
- package/dist/development/src/utils/map.js +13 -0
- package/dist/development/src/utils/map.js.map +1 -0
- package/dist/development/src/utils/notifyChannel.cjs +9 -0
- package/dist/development/src/utils/notifyChannel.cjs.map +1 -0
- package/dist/development/src/utils/notifyChannel.js +9 -0
- package/dist/development/src/utils/notifyChannel.js.map +1 -0
- package/dist/production/index.cjs +118 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +118 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +42 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.js +42 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +1 -0
- package/dist/production/src/ImplementationException.cjs +6 -0
- package/dist/production/src/ImplementationException.cjs.map +1 -0
- package/dist/production/src/ImplementationException.js +6 -0
- package/dist/production/src/ImplementationException.js.map +1 -0
- package/dist/production/src/ListenerStoreProvider.cjs +25 -0
- package/dist/production/src/ListenerStoreProvider.cjs.map +1 -0
- package/dist/production/src/ListenerStoreProvider.js +25 -0
- package/dist/production/src/ListenerStoreProvider.js.map +1 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.cjs +17 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +1 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.js +18 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.js.map +1 -0
- package/dist/production/src/authorization/ActionsPermissionsFactory.cjs +16 -0
- package/dist/production/src/authorization/ActionsPermissionsFactory.cjs.map +1 -0
- package/dist/production/src/authorization/ActionsPermissionsFactory.js +16 -0
- package/dist/production/src/authorization/ActionsPermissionsFactory.js.map +1 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs +127 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.js +127 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.js.map +1 -0
- package/dist/production/src/dispatch/EventDispatcher.cjs +43 -0
- package/dist/production/src/dispatch/EventDispatcher.cjs.map +1 -0
- package/dist/production/src/dispatch/EventDispatcher.js +43 -0
- package/dist/production/src/dispatch/EventDispatcher.js.map +1 -0
- package/dist/production/src/dispatch/EventsRepository.cjs +122 -0
- package/dist/production/src/dispatch/EventsRepository.cjs.map +1 -0
- package/dist/production/src/dispatch/EventsRepository.js +122 -0
- package/dist/production/src/dispatch/EventsRepository.js.map +1 -0
- package/dist/production/src/dispatch/ProjectDispatcher.cjs +99 -0
- package/dist/production/src/dispatch/ProjectDispatcher.cjs.map +1 -0
- package/dist/production/src/dispatch/ProjectDispatcher.js +99 -0
- package/dist/production/src/dispatch/ProjectDispatcher.js.map +1 -0
- package/dist/production/src/dispatch/TargetHandlerResolver.cjs +16 -0
- package/dist/production/src/dispatch/TargetHandlerResolver.cjs.map +1 -0
- package/dist/production/src/dispatch/TargetHandlerResolver.js +16 -0
- package/dist/production/src/dispatch/TargetHandlerResolver.js.map +1 -0
- package/dist/production/src/dispatch/WebhookFetcher.cjs +16 -0
- package/dist/production/src/dispatch/WebhookFetcher.cjs.map +1 -0
- package/dist/production/src/dispatch/WebhookFetcher.js +16 -0
- package/dist/production/src/dispatch/WebhookFetcher.js.map +1 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.cjs +198 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +1 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.js +181 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs +39 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js +39 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.cjs +36 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.js +36 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs +20 -0
- package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js +20 -0
- package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs +152 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js +135 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.cjs +36 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.js +36 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.js.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs +19 -0
- package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +19 -0
- package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs +21 -0
- package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js +21 -0
- package/dist/production/src/graphql/resolvers/mutation/RetryEventMutationResolver.js.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs +19 -0
- package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +19 -0
- package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs +19 -0
- package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js +19 -0
- package/dist/production/src/graphql/resolvers/mutation/StopEventMutationResolver.js.map +1 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs +61 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js +61 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs +19 -0
- package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js +19 -0
- package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -0
- package/dist/production/src/graphql/schema/actions.graphql.cjs +107 -0
- package/dist/production/src/graphql/schema/actions.graphql.cjs.map +1 -0
- package/dist/production/src/graphql/schema/actions.graphql.js +107 -0
- package/dist/production/src/graphql/schema/actions.graphql.js.map +1 -0
- package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs +16 -0
- package/dist/production/src/migrations/2023-03-10-145000-actions-variables.cjs.map +1 -0
- package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js +17 -0
- package/dist/production/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -0
- package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs +16 -0
- package/dist/production/src/migrations/2025-05-28-160000-action-event-user.cjs.map +1 -0
- package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js +17 -0
- package/dist/production/src/migrations/2025-05-28-160000-action-event-user.js.map +1 -0
- package/dist/production/src/migrations/index.cjs +12 -0
- package/dist/production/src/migrations/index.cjs.map +1 -0
- package/dist/production/src/migrations/index.js +12 -0
- package/dist/production/src/migrations/index.js.map +1 -0
- package/dist/production/src/migrations/snapshot.cjs +51 -0
- package/dist/production/src/migrations/snapshot.cjs.map +1 -0
- package/dist/production/src/migrations/snapshot.js +52 -0
- package/dist/production/src/migrations/snapshot.js.map +1 -0
- package/dist/production/src/model/EventByIdQuery.cjs +17 -0
- package/dist/production/src/model/EventByIdQuery.cjs.map +1 -0
- package/dist/production/src/model/EventByIdQuery.js +17 -0
- package/dist/production/src/model/EventByIdQuery.js.map +1 -0
- package/dist/production/src/model/EventsInProcessingQuery.cjs +14 -0
- package/dist/production/src/model/EventsInProcessingQuery.cjs.map +1 -0
- package/dist/production/src/model/EventsInProcessingQuery.js +14 -0
- package/dist/production/src/model/EventsInProcessingQuery.js.map +1 -0
- package/dist/production/src/model/EventsToProcessQuery.cjs +15 -0
- package/dist/production/src/model/EventsToProcessQuery.cjs.map +1 -0
- package/dist/production/src/model/EventsToProcessQuery.js +15 -0
- package/dist/production/src/model/EventsToProcessQuery.js.map +1 -0
- package/dist/production/src/model/EventsToProcessSpecification.cjs +8 -0
- package/dist/production/src/model/EventsToProcessSpecification.cjs.map +1 -0
- package/dist/production/src/model/EventsToProcessSpecification.js +8 -0
- package/dist/production/src/model/EventsToProcessSpecification.js.map +1 -0
- package/dist/production/src/model/FailedEventsQuery.cjs +14 -0
- package/dist/production/src/model/FailedEventsQuery.cjs.map +1 -0
- package/dist/production/src/model/FailedEventsQuery.js +14 -0
- package/dist/production/src/model/FailedEventsQuery.js.map +1 -0
- package/dist/production/src/model/SetVariableCommand.cjs +21 -0
- package/dist/production/src/model/SetVariableCommand.cjs.map +1 -0
- package/dist/production/src/model/SetVariableCommand.js +21 -0
- package/dist/production/src/model/SetVariableCommand.js.map +1 -0
- package/dist/production/src/model/VariablesManager.cjs +41 -0
- package/dist/production/src/model/VariablesManager.cjs.map +1 -0
- package/dist/production/src/model/VariablesManager.js +41 -0
- package/dist/production/src/model/VariablesManager.js.map +1 -0
- package/dist/production/src/model/VariablesQuery.cjs +10 -0
- package/dist/production/src/model/VariablesQuery.cjs.map +1 -0
- package/dist/production/src/model/VariablesQuery.js +10 -0
- package/dist/production/src/model/VariablesQuery.js.map +1 -0
- package/dist/production/src/triggers/TriggerHandler.cjs +129 -0
- package/dist/production/src/triggers/TriggerHandler.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerHandler.js +129 -0
- package/dist/production/src/triggers/TriggerHandler.js.map +1 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs +63 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js +63 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -0
- package/dist/production/src/triggers/TriggerListenersBuilder.cjs +169 -0
- package/dist/production/src/triggers/TriggerListenersBuilder.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerListenersBuilder.js +169 -0
- package/dist/production/src/triggers/TriggerListenersBuilder.js.map +1 -0
- package/dist/production/src/triggers/TriggerListenersFactory.cjs +17 -0
- package/dist/production/src/triggers/TriggerListenersFactory.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerListenersFactory.js +17 -0
- package/dist/production/src/triggers/TriggerListenersFactory.js.map +1 -0
- package/dist/production/src/triggers/TriggerListenersStore.cjs +24 -0
- package/dist/production/src/triggers/TriggerListenersStore.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerListenersStore.js +24 -0
- package/dist/production/src/triggers/TriggerListenersStore.js.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.cjs +163 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.js +163 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.js.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadManager.cjs +27 -0
- package/dist/production/src/triggers/TriggerPayloadManager.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadManager.js +27 -0
- package/dist/production/src/triggers/TriggerPayloadManager.js.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.cjs +47 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.js +47 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.js.map +1 -0
- package/dist/production/src/utils/assertNever.cjs +7 -0
- package/dist/production/src/utils/assertNever.cjs.map +1 -0
- package/dist/production/src/utils/assertNever.js +7 -0
- package/dist/production/src/utils/assertNever.js.map +1 -0
- package/dist/production/src/utils/map.cjs +13 -0
- package/dist/production/src/utils/map.cjs.map +1 -0
- package/dist/production/src/utils/map.js +13 -0
- package/dist/production/src/utils/map.js.map +1 -0
- package/dist/production/src/utils/notifyChannel.cjs +9 -0
- package/dist/production/src/utils/notifyChannel.cjs.map +1 -0
- package/dist/production/src/utils/notifyChannel.js +9 -0
- package/dist/production/src/utils/notifyChannel.js.map +1 -0
- package/dist/tests/cases/unit/generator.test.d.ts +2 -0
- package/dist/tests/cases/unit/generator.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/webhookHandler.test.d.ts +2 -0
- package/dist/tests/cases/unit/webhookHandler.test.d.ts.map +1 -0
- package/dist/tests/src/gql.d.ts +2 -0
- package/dist/tests/src/gql.d.ts.map +1 -0
- package/dist/tests/src/uuid.d.ts +3 -0
- package/dist/tests/src/uuid.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -0
- package/dist/types/ActionsExecutionContainerHookFactory.d.ts +8 -0
- package/dist/types/ActionsExecutionContainerHookFactory.d.ts.map +1 -0
- package/dist/types/ImplementationException.d.ts +3 -0
- package/dist/types/ImplementationException.d.ts.map +1 -0
- package/dist/types/ListenerStoreProvider.d.ts +7 -0
- package/dist/types/ListenerStoreProvider.d.ts.map +1 -0
- package/dist/types/authorization/ActionsAuthorizationActions.d.ts +38 -0
- package/dist/types/authorization/ActionsAuthorizationActions.d.ts.map +1 -0
- package/dist/types/authorization/ActionsPermissionsFactory.d.ts +5 -0
- package/dist/types/authorization/ActionsPermissionsFactory.d.ts.map +1 -0
- package/dist/types/authorization/Identity.d.ts +5 -0
- package/dist/types/authorization/Identity.d.ts.map +1 -0
- package/dist/types/authorization/index.d.ts +4 -0
- package/dist/types/authorization/index.d.ts.map +1 -0
- package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts +17 -0
- package/dist/types/dispatch/DispatchWorkerSupervisor.d.ts.map +1 -0
- package/dist/types/dispatch/EventDispatcher.d.ts +25 -0
- package/dist/types/dispatch/EventDispatcher.d.ts.map +1 -0
- package/dist/types/dispatch/EventsRepository.d.ts +23 -0
- package/dist/types/dispatch/EventsRepository.d.ts.map +1 -0
- package/dist/types/dispatch/ProjectDispatcher.d.ts +22 -0
- package/dist/types/dispatch/ProjectDispatcher.d.ts.map +1 -0
- package/dist/types/dispatch/TargetHandlerResolver.d.ts +9 -0
- package/dist/types/dispatch/TargetHandlerResolver.d.ts.map +1 -0
- package/dist/types/dispatch/WebhookFetcher.d.ts +14 -0
- package/dist/types/dispatch/WebhookFetcher.d.ts.map +1 -0
- package/dist/types/dispatch/WebhookTargetHandler.d.ts +16 -0
- package/dist/types/dispatch/WebhookTargetHandler.d.ts.map +1 -0
- package/dist/types/dispatch/types.d.ts +27 -0
- package/dist/types/dispatch/types.d.ts.map +1 -0
- package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts +13 -0
- package/dist/types/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +1 -0
- package/dist/types/graphql/http/ActionsContextResolver.d.ts +14 -0
- package/dist/types/graphql/http/ActionsContextResolver.d.ts.map +1 -0
- package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts +8 -0
- package/dist/types/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +1 -0
- package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts +11 -0
- package/dist/types/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/ActionsContext.d.ts +14 -0
- package/dist/types/graphql/resolvers/ActionsContext.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/ResolversFactory.d.ts +15 -0
- package/dist/types/graphql/resolvers/ResolversFactory.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/index.d.ts +3 -0
- package/dist/types/graphql/resolvers/index.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts +11 -0
- package/dist/types/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts +11 -0
- package/dist/types/graphql/resolvers/mutation/RetryEventMutationResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts +11 -0
- package/dist/types/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts +11 -0
- package/dist/types/graphql/resolvers/mutation/StopEventMutationResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/mutation/index.d.ts +5 -0
- package/dist/types/graphql/resolvers/mutation/index.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts +14 -0
- package/dist/types/graphql/resolvers/query/EventsQueryResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts +12 -0
- package/dist/types/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query/index.d.ts +2 -0
- package/dist/types/graphql/resolvers/query/index.d.ts.map +1 -0
- package/dist/types/graphql/schema/actions.graphql.d.ts +3 -0
- package/dist/types/graphql/schema/actions.graphql.d.ts.map +1 -0
- package/dist/types/graphql/schema/index.d.ts +299 -0
- package/dist/types/graphql/schema/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts +3 -0
- package/dist/types/migrations/2023-03-10-145000-actions-variables.d.ts.map +1 -0
- package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts +3 -0
- package/dist/types/migrations/2025-05-28-160000-action-event-user.d.ts.map +1 -0
- package/dist/types/migrations/index.d.ts +3 -0
- package/dist/types/migrations/index.d.ts.map +1 -0
- package/dist/types/migrations/snapshot.d.ts +3 -0
- package/dist/types/migrations/snapshot.d.ts.map +1 -0
- package/dist/types/model/EventByIdQuery.d.ts +8 -0
- package/dist/types/model/EventByIdQuery.d.ts.map +1 -0
- package/dist/types/model/EventsInProcessingQuery.d.ts +9 -0
- package/dist/types/model/EventsInProcessingQuery.d.ts.map +1 -0
- package/dist/types/model/EventsToProcessQuery.d.ts +9 -0
- package/dist/types/model/EventsToProcessQuery.d.ts.map +1 -0
- package/dist/types/model/EventsToProcessSpecification.d.ts +4 -0
- package/dist/types/model/EventsToProcessSpecification.d.ts.map +1 -0
- package/dist/types/model/FailedEventsQuery.d.ts +9 -0
- package/dist/types/model/FailedEventsQuery.d.ts.map +1 -0
- package/dist/types/model/SetVariableCommand.d.ts +8 -0
- package/dist/types/model/SetVariableCommand.d.ts.map +1 -0
- package/dist/types/model/VariablesManager.d.ts +8 -0
- package/dist/types/model/VariablesManager.d.ts.map +1 -0
- package/dist/types/model/VariablesQuery.d.ts +12 -0
- package/dist/types/model/VariablesQuery.d.ts.map +1 -0
- package/dist/types/model/types.d.ts +22 -0
- package/dist/types/model/types.d.ts.map +1 -0
- package/dist/types/triggers/TriggerHandler.d.ts +26 -0
- package/dist/types/triggers/TriggerHandler.d.ts.map +1 -0
- package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts +19 -0
- package/dist/types/triggers/TriggerIndirectChangesFetcher.d.ts.map +1 -0
- package/dist/types/triggers/TriggerListeners.d.ts +9 -0
- package/dist/types/triggers/TriggerListeners.d.ts.map +1 -0
- package/dist/types/triggers/TriggerListenersBuilder.d.ts +15 -0
- package/dist/types/triggers/TriggerListenersBuilder.d.ts.map +1 -0
- package/dist/types/triggers/TriggerListenersFactory.d.ts +8 -0
- package/dist/types/triggers/TriggerListenersFactory.d.ts.map +1 -0
- package/dist/types/triggers/TriggerListenersStore.d.ts +48 -0
- package/dist/types/triggers/TriggerListenersStore.d.ts.map +1 -0
- package/dist/types/triggers/TriggerPayloadBuilder.d.ts +14 -0
- package/dist/types/triggers/TriggerPayloadBuilder.d.ts.map +1 -0
- package/dist/types/triggers/TriggerPayloadManager.d.ts +22 -0
- package/dist/types/triggers/TriggerPayloadManager.d.ts.map +1 -0
- package/dist/types/triggers/TriggerPayloadPersister.d.ts +21 -0
- package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +1 -0
- package/dist/types/triggers/index.d.ts +8 -0
- package/dist/types/triggers/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/utils/assertNever.d.ts +2 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/map.d.ts +2 -0
- package/dist/types/utils/map.d.ts.map +1 -0
- package/dist/types/utils/notifyChannel.d.ts +4 -0
- package/dist/types/utils/notifyChannel.d.ts.map +1 -0
- package/package.json +22 -22
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Database = require("@contember/database");
|
|
4
|
+
const eventsToProcessStateSpecification = (qb) => qb.where((it) => it.in("state", ["retrying", "created", "processing"]));
|
|
5
|
+
const eventsToProcessSpecification = (qb) => qb.match(eventsToProcessStateSpecification).where((it) => it.compare("visible_at", Database.Operator.lte, "now")).orderBy("priority", "desc").orderBy("visible_at");
|
|
6
|
+
exports.eventsToProcessSpecification = eventsToProcessSpecification;
|
|
7
|
+
exports.eventsToProcessStateSpecification = eventsToProcessStateSpecification;
|
|
8
|
+
//# sourceMappingURL=EventsToProcessSpecification.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventsToProcessSpecification.cjs","sources":["../../../../../packages/engine-actions/src/model/EventsToProcessSpecification.ts"],"sourcesContent":["import { Operator, SelectBuilderSpecification } from '@contember/database'\n\nexport const eventsToProcessStateSpecification: SelectBuilderSpecification = qb =>\n\tqb\n\t\t.where(it => it.in('state', ['retrying', 'created', 'processing']))\n\nexport const eventsToProcessSpecification: SelectBuilderSpecification = qb =>\n\tqb\n\t\t.match(eventsToProcessStateSpecification)\n\t\t.where(it => it.compare('visible_at', Operator.lte, 'now'))\n\t\t.orderBy('priority', 'desc')\n\t\t.orderBy('visible_at')\n"],"names":["Operator"],"mappings":";;;AAEO,MAAM,oCAAgE,CAAA,OAC5E,GACE,MAAM,CAAA,OAAM,GAAG,GAAG,SAAS,CAAC,YAAY,WAAW,YAAY,CAAC,CAAC;AAE7D,MAAM,+BAA2D,QACvE,GACE,MAAM,iCAAiC,EACvC,MAAM,QAAM,GAAG,QAAQ,cAAcA,SAAAA,SAAS,KAAK,KAAK,CAAC,EACzD,QAAQ,YAAY,MAAM,EAC1B,QAAQ,YAAY;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Operator } from "@contember/database";
|
|
2
|
+
const eventsToProcessStateSpecification = (qb) => qb.where((it) => it.in("state", ["retrying", "created", "processing"]));
|
|
3
|
+
const eventsToProcessSpecification = (qb) => qb.match(eventsToProcessStateSpecification).where((it) => it.compare("visible_at", Operator.lte, "now")).orderBy("priority", "desc").orderBy("visible_at");
|
|
4
|
+
export {
|
|
5
|
+
eventsToProcessSpecification,
|
|
6
|
+
eventsToProcessStateSpecification
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=EventsToProcessSpecification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventsToProcessSpecification.js","sources":["../../../../../packages/engine-actions/src/model/EventsToProcessSpecification.ts"],"sourcesContent":["import { Operator, SelectBuilderSpecification } from '@contember/database'\n\nexport const eventsToProcessStateSpecification: SelectBuilderSpecification = qb =>\n\tqb\n\t\t.where(it => it.in('state', ['retrying', 'created', 'processing']))\n\nexport const eventsToProcessSpecification: SelectBuilderSpecification = qb =>\n\tqb\n\t\t.match(eventsToProcessStateSpecification)\n\t\t.where(it => it.compare('visible_at', Operator.lte, 'now'))\n\t\t.orderBy('priority', 'desc')\n\t\t.orderBy('visible_at')\n"],"names":[],"mappings":";AAEO,MAAM,oCAAgE,CAAA,OAC5E,GACE,MAAM,CAAA,OAAM,GAAG,GAAG,SAAS,CAAC,YAAY,WAAW,YAAY,CAAC,CAAC;AAE7D,MAAM,+BAA2D,QACvE,GACE,MAAM,iCAAiC,EACvC,MAAM,QAAM,GAAG,QAAQ,cAAc,SAAS,KAAK,KAAK,CAAC,EACzD,QAAQ,YAAY,MAAM,EAC1B,QAAQ,YAAY;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Database = require("@contember/database");
|
|
4
|
+
class FailedEventsQuery extends Database.DatabaseQuery {
|
|
5
|
+
constructor(args) {
|
|
6
|
+
super();
|
|
7
|
+
this.args = args;
|
|
8
|
+
}
|
|
9
|
+
async fetch(queryable) {
|
|
10
|
+
return Database.SelectBuilder.create().from("actions_event").select("*").where((it) => it.in("state", ["failed", "retrying"])).orderBy("last_state_change", "desc").limit(this.args.limit ?? 100, this.args.offset ?? 0).getResult(queryable.db);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.FailedEventsQuery = FailedEventsQuery;
|
|
14
|
+
//# sourceMappingURL=FailedEventsQuery.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailedEventsQuery.cjs","sources":["../../../../../packages/engine-actions/src/model/FailedEventsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\nimport { EventRow } from './types'\nimport { EventArgs } from '../graphql/schema'\n\nexport class FailedEventsQuery extends DatabaseQuery<EventRow[]> {\n\tconstructor(\n\t\tprivate readonly args: EventArgs,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<EventRow[]> {\n\t\treturn SelectBuilder.create<EventRow>()\n\t\t\t.from('actions_event')\n\t\t\t.select('*')\n\t\t\t.where(it => it.in('state', ['failed', 'retrying']))\n\t\t\t.orderBy('last_state_change', 'desc')\n\t\t\t.limit(this.args.limit ?? 100, this.args.offset ?? 0)\n\t\t\t.getResult(queryable.db)\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder"],"mappings":";;;AAIO,MAAM,0BAA0BA,SAAAA,cAA0B;AAAA,EAChE,YACkB,MAChB;AACD,UAAA;AAFiB,SAAA,OAAA;AAAA,EAGlB;AAAA,EAEA,MAAM,MAAM,WAAmD;AAC9D,WAAOC,SAAAA,cAAc,OAAA,EACnB,KAAK,eAAe,EACpB,OAAO,GAAG,EACV,MAAM,QAAM,GAAG,GAAG,SAAS,CAAC,UAAU,UAAU,CAAC,CAAC,EAClD,QAAQ,qBAAqB,MAAM,EACnC,MAAM,KAAK,KAAK,SAAS,KAAK,KAAK,KAAK,UAAU,CAAC,EACnD,UAAU,UAAU,EAAE;AAAA,EACzB;AACD;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DatabaseQuery, SelectBuilder } from "@contember/database";
|
|
2
|
+
class FailedEventsQuery extends DatabaseQuery {
|
|
3
|
+
constructor(args) {
|
|
4
|
+
super();
|
|
5
|
+
this.args = args;
|
|
6
|
+
}
|
|
7
|
+
async fetch(queryable) {
|
|
8
|
+
return SelectBuilder.create().from("actions_event").select("*").where((it) => it.in("state", ["failed", "retrying"])).orderBy("last_state_change", "desc").limit(this.args.limit ?? 100, this.args.offset ?? 0).getResult(queryable.db);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
FailedEventsQuery
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=FailedEventsQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailedEventsQuery.js","sources":["../../../../../packages/engine-actions/src/model/FailedEventsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\nimport { EventRow } from './types'\nimport { EventArgs } from '../graphql/schema'\n\nexport class FailedEventsQuery extends DatabaseQuery<EventRow[]> {\n\tconstructor(\n\t\tprivate readonly args: EventArgs,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<EventRow[]> {\n\t\treturn SelectBuilder.create<EventRow>()\n\t\t\t.from('actions_event')\n\t\t\t.select('*')\n\t\t\t.where(it => it.in('state', ['failed', 'retrying']))\n\t\t\t.orderBy('last_state_change', 'desc')\n\t\t\t.limit(this.args.limit ?? 100, this.args.offset ?? 0)\n\t\t\t.getResult(queryable.db)\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,0BAA0B,cAA0B;AAAA,EAChE,YACkB,MAChB;AACD,UAAA;AAFiB,SAAA,OAAA;AAAA,EAGlB;AAAA,EAEA,MAAM,MAAM,WAAmD;AAC9D,WAAO,cAAc,OAAA,EACnB,KAAK,eAAe,EACpB,OAAO,GAAG,EACV,MAAM,QAAM,GAAG,GAAG,SAAS,CAAC,UAAU,UAAU,CAAC,CAAC,EAClD,QAAQ,qBAAqB,MAAM,EACnC,MAAM,KAAK,KAAK,SAAS,KAAK,KAAK,KAAK,UAAU,CAAC,EACnD,UAAU,UAAU,EAAE;AAAA,EACzB;AACD;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Database = require("@contember/database");
|
|
4
|
+
class SetVariableCommand {
|
|
5
|
+
constructor(name, value) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.value = value;
|
|
8
|
+
}
|
|
9
|
+
async execute({ providers, db }) {
|
|
10
|
+
await Database.InsertBuilder.create().into("actions_variable").values({
|
|
11
|
+
id: providers.uuid(),
|
|
12
|
+
name: this.name,
|
|
13
|
+
value: this.value
|
|
14
|
+
}).onConflict(Database.ConflictActionType.update, ["name"], {
|
|
15
|
+
value: this.value,
|
|
16
|
+
updated_at: new Database.Literal("NOW()")
|
|
17
|
+
}).execute(db);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.SetVariableCommand = SetVariableCommand;
|
|
21
|
+
//# sourceMappingURL=SetVariableCommand.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetVariableCommand.cjs","sources":["../../../../../packages/engine-actions/src/model/SetVariableCommand.ts"],"sourcesContent":["import { Command } from '@contember/engine-system-api'\nimport { ConflictActionType, InsertBuilder, Literal } from '@contember/database'\n\nexport class SetVariableCommand implements Command<void> {\n\tconstructor(\n\t\tprivate readonly name: string,\n\t\tprivate readonly value: string,\n\t) {\n\t}\n\n\tasync execute({ providers, db }: Command.Args): Promise<void> {\n\t\tawait InsertBuilder.create()\n\t\t\t.into('actions_variable')\n\t\t\t.values({\n\t\t\t\tid: providers.uuid(),\n\t\t\t\tname: this.name,\n\t\t\t\tvalue: this.value,\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.update, ['name'], {\n\t\t\t\tvalue: this.value,\n\t\t\t\tupdated_at: new Literal('NOW()'),\n\t\t\t})\n\t\t\t.execute(db)\n\t}\n}\n"],"names":["InsertBuilder","ConflictActionType","Literal"],"mappings":";;;AAGO,MAAM,mBAA4C;AAAA,EACxD,YACkB,MACA,OAChB;AAFgB,SAAA,OAAA;AACA,SAAA,QAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,WAAW,MAAmC;AAC7D,UAAMA,SAAAA,cAAc,OAAA,EAClB,KAAK,kBAAkB,EACvB,OAAO;AAAA,MACP,IAAI,UAAU,KAAA;AAAA,MACd,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,IAAA,CACZ,EACA,WAAWC,SAAAA,mBAAmB,QAAQ,CAAC,MAAM,GAAG;AAAA,MAChD,OAAO,KAAK;AAAA,MACZ,YAAY,IAAIC,SAAAA,QAAQ,OAAO;AAAA,IAAA,CAC/B,EACA,QAAQ,EAAE;AAAA,EACb;AACD;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { InsertBuilder as InsertBuilder$1, ConflictActionType, Literal } from "@contember/database";
|
|
2
|
+
class SetVariableCommand {
|
|
3
|
+
constructor(name, value) {
|
|
4
|
+
this.name = name;
|
|
5
|
+
this.value = value;
|
|
6
|
+
}
|
|
7
|
+
async execute({ providers, db }) {
|
|
8
|
+
await InsertBuilder$1.create().into("actions_variable").values({
|
|
9
|
+
id: providers.uuid(),
|
|
10
|
+
name: this.name,
|
|
11
|
+
value: this.value
|
|
12
|
+
}).onConflict(ConflictActionType.update, ["name"], {
|
|
13
|
+
value: this.value,
|
|
14
|
+
updated_at: new Literal("NOW()")
|
|
15
|
+
}).execute(db);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
SetVariableCommand
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=SetVariableCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetVariableCommand.js","sources":["../../../../../packages/engine-actions/src/model/SetVariableCommand.ts"],"sourcesContent":["import { Command } from '@contember/engine-system-api'\nimport { ConflictActionType, InsertBuilder, Literal } from '@contember/database'\n\nexport class SetVariableCommand implements Command<void> {\n\tconstructor(\n\t\tprivate readonly name: string,\n\t\tprivate readonly value: string,\n\t) {\n\t}\n\n\tasync execute({ providers, db }: Command.Args): Promise<void> {\n\t\tawait InsertBuilder.create()\n\t\t\t.into('actions_variable')\n\t\t\t.values({\n\t\t\t\tid: providers.uuid(),\n\t\t\t\tname: this.name,\n\t\t\t\tvalue: this.value,\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.update, ['name'], {\n\t\t\t\tvalue: this.value,\n\t\t\t\tupdated_at: new Literal('NOW()'),\n\t\t\t})\n\t\t\t.execute(db)\n\t}\n}\n"],"names":["InsertBuilder"],"mappings":";AAGO,MAAM,mBAA4C;AAAA,EACxD,YACkB,MACA,OAChB;AAFgB,SAAA,OAAA;AACA,SAAA,QAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,WAAW,MAAmC;AAC7D,UAAMA,gBAAc,OAAA,EAClB,KAAK,kBAAkB,EACvB,OAAO;AAAA,MACP,IAAI,UAAU,KAAA;AAAA,MACd,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,IAAA,CACZ,EACA,WAAW,mBAAmB,QAAQ,CAAC,MAAM,GAAG;AAAA,MAChD,OAAO,KAAK;AAAA,MACZ,YAAY,IAAI,QAAQ,OAAO;AAAA,IAAA,CAC/B,EACA,QAAQ,EAAE;AAAA,EACb;AACD;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const VariablesQuery = require("./VariablesQuery.cjs");
|
|
4
|
+
const Database = require("@contember/database");
|
|
5
|
+
const SetVariableCommand = require("./SetVariableCommand.cjs");
|
|
6
|
+
class VariablesManager {
|
|
7
|
+
async fetchVariables(db) {
|
|
8
|
+
return Object.fromEntries((await db.queryHandler.fetch(new VariablesQuery.VariablesQuery())).map((it) => [it.name, it.value]));
|
|
9
|
+
}
|
|
10
|
+
async setVariables(db, args) {
|
|
11
|
+
return await db.transaction(async (db2) => {
|
|
12
|
+
const current = await this.fetchVariables(db2);
|
|
13
|
+
const mode = args.mode ?? "MERGE";
|
|
14
|
+
const inputVariables = Object.fromEntries(args.variables.map((it) => [it.name, it.value]));
|
|
15
|
+
let newVariables = {};
|
|
16
|
+
switch (mode) {
|
|
17
|
+
case "APPEND_ONLY_MISSING":
|
|
18
|
+
newVariables = { ...inputVariables, ...current };
|
|
19
|
+
break;
|
|
20
|
+
case "MERGE":
|
|
21
|
+
newVariables = { ...current, ...inputVariables };
|
|
22
|
+
break;
|
|
23
|
+
case "SET":
|
|
24
|
+
newVariables = inputVariables;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
const toDelete = Object.keys(current).filter((it) => !(it in newVariables));
|
|
28
|
+
if (toDelete.length > 0) {
|
|
29
|
+
await Database.DeleteBuilder.create().from("actions_variable").where((it) => it.in("name", toDelete)).execute(db2.client);
|
|
30
|
+
}
|
|
31
|
+
for (const [name, value] of Object.entries(newVariables)) {
|
|
32
|
+
if (value === current[name]) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
await db2.commandBus.execute(new SetVariableCommand.SetVariableCommand(name, value));
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.VariablesManager = VariablesManager;
|
|
41
|
+
//# sourceMappingURL=VariablesManager.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesManager.cjs","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":["VariablesQuery","db","DeleteBuilder","SetVariableCommand"],"mappings":";;;;;AAQO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,eAAe,IAA4C;AACvE,WAAO,OAAO,aAAa,MAAM,GAAG,aAAa,MAAM,IAAIA,eAAAA,eAAA,CAAgB,GAAG,IAAI,QAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAAA,EAC7G;AAAA,EAEA,MAAa,aAAa,IAAqB,MAAwB;AACtE,WAAO,MAAM,GAAG,YAAY,OAAMC,QAAM;AACvC,YAAM,UAAU,MAAM,KAAK,eAAeA,GAAE;AAC5C,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,iBAAiB,OAAO,YAAY,KAAK,UAAU,IAAI,CAAA,OAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAEvF,UAAI,eAA6B,CAAA;AACjC,cAAQ,MAAA;AAAA,QACP,KAAK;AACJ,yBAAe,EAAE,GAAG,gBAAgB,GAAG,QAAA;AACvC;AAAA,QACD,KAAK;AACJ,yBAAe,EAAE,GAAG,SAAS,GAAG,eAAA;AAChC;AAAA,QACD,KAAK;AACJ,yBAAe;AACf;AAAA,MAAA;AAGF,YAAM,WAAW,OAAO,KAAK,OAAO,EAAE,OAAO,CAAA,OAAM,EAAE,MAAM,aAAa;AACxE,UAAI,SAAS,SAAS,GAAG;AACxB,cAAMC,SAAAA,cAAc,OAAA,EAClB,KAAK,kBAAkB,EACvB,MAAM,CAAA,OAAM,GAAG,GAAG,QAAQ,QAAQ,CAAC,EACnC,QAAQD,IAAG,MAAM;AAAA,MACpB;AAEA,iBAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,YAAY,GAAG;AACzD,YAAI,UAAU,QAAQ,IAAI,GAAG;AAC5B;AAAA,QACD;AACA,cAAMA,IAAG,WAAW,QAAQ,IAAIE,mBAAAA,mBAAmB,MAAM,KAAK,CAAC;AAAA,MAChE;AAAA,IACD,CAAC;AAAA,EACF;AACD;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { VariablesQuery } from "./VariablesQuery.js";
|
|
2
|
+
import { DeleteBuilder } from "@contember/database";
|
|
3
|
+
import { SetVariableCommand } from "./SetVariableCommand.js";
|
|
4
|
+
class VariablesManager {
|
|
5
|
+
async fetchVariables(db) {
|
|
6
|
+
return Object.fromEntries((await db.queryHandler.fetch(new VariablesQuery())).map((it) => [it.name, it.value]));
|
|
7
|
+
}
|
|
8
|
+
async setVariables(db, args) {
|
|
9
|
+
return await db.transaction(async (db2) => {
|
|
10
|
+
const current = await this.fetchVariables(db2);
|
|
11
|
+
const mode = args.mode ?? "MERGE";
|
|
12
|
+
const inputVariables = Object.fromEntries(args.variables.map((it) => [it.name, it.value]));
|
|
13
|
+
let newVariables = {};
|
|
14
|
+
switch (mode) {
|
|
15
|
+
case "APPEND_ONLY_MISSING":
|
|
16
|
+
newVariables = { ...inputVariables, ...current };
|
|
17
|
+
break;
|
|
18
|
+
case "MERGE":
|
|
19
|
+
newVariables = { ...current, ...inputVariables };
|
|
20
|
+
break;
|
|
21
|
+
case "SET":
|
|
22
|
+
newVariables = inputVariables;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
const toDelete = Object.keys(current).filter((it) => !(it in newVariables));
|
|
26
|
+
if (toDelete.length > 0) {
|
|
27
|
+
await DeleteBuilder.create().from("actions_variable").where((it) => it.in("name", toDelete)).execute(db2.client);
|
|
28
|
+
}
|
|
29
|
+
for (const [name, value] of Object.entries(newVariables)) {
|
|
30
|
+
if (value === current[name]) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
await db2.commandBus.execute(new SetVariableCommand(name, value));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
VariablesManager
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=VariablesManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,eAAA,CAAgB,GAAG,IAAI,QAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAAA,EAC7G;AAAA,EAEA,MAAa,aAAa,IAAqB,MAAwB;AACtE,WAAO,MAAM,GAAG,YAAY,OAAMA,QAAM;AACvC,YAAM,UAAU,MAAM,KAAK,eAAeA,GAAE;AAC5C,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,iBAAiB,OAAO,YAAY,KAAK,UAAU,IAAI,CAAA,OAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAEvF,UAAI,eAA6B,CAAA;AACjC,cAAQ,MAAA;AAAA,QACP,KAAK;AACJ,yBAAe,EAAE,GAAG,gBAAgB,GAAG,QAAA;AACvC;AAAA,QACD,KAAK;AACJ,yBAAe,EAAE,GAAG,SAAS,GAAG,eAAA;AAChC;AAAA,QACD,KAAK;AACJ,yBAAe;AACf;AAAA,MAAA;AAGF,YAAM,WAAW,OAAO,KAAK,OAAO,EAAE,OAAO,CAAA,OAAM,EAAE,MAAM,aAAa;AACxE,UAAI,SAAS,SAAS,GAAG;AACxB,cAAM,cAAc,OAAA,EAClB,KAAK,kBAAkB,EACvB,MAAM,CAAA,OAAM,GAAG,GAAG,QAAQ,QAAQ,CAAC,EACnC,QAAQA,IAAG,MAAM;AAAA,MACpB;AAEA,iBAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,YAAY,GAAG;AACzD,YAAI,UAAU,QAAQ,IAAI,GAAG;AAC5B;AAAA,QACD;AACA,cAAMA,IAAG,WAAW,QAAQ,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,MAChE;AAAA,IACD,CAAC;AAAA,EACF;AACD;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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;AACxE,WAAO,MAAMC,SAAAA,cAAc,SACzB,KAAK,kBAAkB,EACvB,UAAU,UAAU,EAAE;AAAA,EACzB;AACD;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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;AACxE,WAAO,MAAM,cAAc,SACzB,KAAK,kBAAkB,EACvB,UAAU,UAAU,EAAE;AAAA,EACzB;AACD;"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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(
|
|
81
|
+
(listener) => this.collectDeepChanges(event, listener, {
|
|
82
|
+
[event.entity.primary]: { eq: event.id }
|
|
83
|
+
})
|
|
84
|
+
);
|
|
85
|
+
await Promise.all(promises);
|
|
86
|
+
}
|
|
87
|
+
async indirectChangesRelationHandler(event) {
|
|
88
|
+
await this.indirectChangesUpdatesHandlerInner(event, "relations");
|
|
89
|
+
}
|
|
90
|
+
async indirectChangesUpdatesHandler(event) {
|
|
91
|
+
await this.indirectChangesUpdatesHandlerInner(event, "fields");
|
|
92
|
+
}
|
|
93
|
+
async indirectChangesUpdatesHandlerInner(event, type) {
|
|
94
|
+
const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
|
|
95
|
+
const promises = indirectEntityListeners.map((listener) => {
|
|
96
|
+
if (event.data.some((val) => listener[type].has(val.fieldName) && (!("old" in val) || val.value !== val.old))) {
|
|
97
|
+
return this.collectDeepChanges(event, listener, {
|
|
98
|
+
[event.entity.primary]: { eq: event.id }
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
await Promise.all(promises);
|
|
103
|
+
}
|
|
104
|
+
async junctionHandler(event) {
|
|
105
|
+
const listeners = this.listenersStore.getJunctionListeners(event.owningEntity.name, event.owningRelation.name);
|
|
106
|
+
const promises = listeners.map((listener) => {
|
|
107
|
+
const primary = listener.context.type === "owning" ? event.owningId : event.inverseId;
|
|
108
|
+
const entity = listener.context.entity;
|
|
109
|
+
return this.collectDeepChanges(event, listener, {
|
|
110
|
+
[entity.primary]: { eq: primary }
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
await Promise.all(promises);
|
|
114
|
+
}
|
|
115
|
+
async collectDeepChanges(cause, listener, where) {
|
|
116
|
+
const result = await this.changesFetcher.fetch(listener, where);
|
|
117
|
+
await Promise.all(result.map((row) => {
|
|
118
|
+
return this.payloadManager.add({
|
|
119
|
+
listener,
|
|
120
|
+
entity: listener.rootEntity,
|
|
121
|
+
primary: row.id,
|
|
122
|
+
cause,
|
|
123
|
+
nodes: row.nodes
|
|
124
|
+
});
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.TriggerHandler = TriggerHandler;
|
|
129
|
+
//# sourceMappingURL=TriggerHandler.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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\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 =>\n\t\t\tthis.collectDeepChanges(event, listener, {\n\t\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t\t})\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\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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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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(
|
|
79
|
+
(listener) => this.collectDeepChanges(event, listener, {
|
|
80
|
+
[event.entity.primary]: { eq: event.id }
|
|
81
|
+
})
|
|
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
|
+
export {
|
|
127
|
+
TriggerHandler
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=TriggerHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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\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 =>\n\t\t\tthis.collectDeepChanges(event, listener, {\n\t\t\t\t[event.entity.primary]: { eq: event.id },\n\t\t\t})\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\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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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|