@contember/engine-actions 1.4.0-rc.8 → 2.0.0-alpha.12
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 +94 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +94 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +30 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -0
- package/dist/development/src/ActionsExecutionContainerHookFactory.js +30 -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 +15 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.cjs.map +1 -0
- package/dist/development/src/authorization/ActionsAuthorizationActions.js +16 -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 +125 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -0
- package/dist/development/src/dispatch/DispatchWorkerSupervisor.js +125 -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 +104 -0
- package/dist/development/src/dispatch/EventsRepository.cjs.map +1 -0
- package/dist/development/src/dispatch/EventsRepository.js +104 -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 +193 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +1 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.js +176 -0
- package/dist/development/src/dispatch/WebhookTargetHandler.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs +38 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js +38 -0
- package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.cjs +39 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsContextResolver.js +39 -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 +149 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js +132 -0
- package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.cjs +31 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/ResolversFactory.js +31 -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/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/query/EventsQueryResolver.cjs +48 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js +48 -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/{src/graphql/schema/actions.graphql.js → development/src/graphql/schema/actions.graphql.cjs} +5 -5
- package/dist/development/src/graphql/schema/actions.graphql.cjs.map +1 -0
- package/dist/development/src/graphql/schema/actions.graphql.js +93 -0
- package/dist/development/src/graphql/schema/actions.graphql.js.map +1 -0
- package/dist/{src/migrations/2023-03-10-145000-actions-variables.js → development/src/migrations/2023-03-10-145000-actions-variables.cjs} +4 -5
- 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/index.cjs +10 -0
- package/dist/development/src/migrations/index.cjs.map +1 -0
- package/dist/development/src/migrations/index.js +10 -0
- package/dist/development/src/migrations/index.js.map +1 -0
- package/dist/{src/migrations/snapshot.js → development/src/migrations/snapshot.cjs} +4 -5
- package/dist/development/src/migrations/snapshot.cjs.map +1 -0
- package/dist/development/src/migrations/snapshot.js +49 -0
- package/dist/development/src/migrations/snapshot.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 +126 -0
- package/dist/development/src/triggers/TriggerHandler.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerHandler.js +126 -0
- package/dist/development/src/triggers/TriggerHandler.js.map +1 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs +21 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js +21 -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 +134 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadBuilder.js +134 -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 +40 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -0
- package/dist/development/src/triggers/TriggerPayloadPersister.js +40 -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/production/index.cjs +94 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +94 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +30 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -0
- package/dist/production/src/ActionsExecutionContainerHookFactory.js +30 -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 +15 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +1 -0
- package/dist/production/src/authorization/ActionsAuthorizationActions.js +16 -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 +125 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -0
- package/dist/production/src/dispatch/DispatchWorkerSupervisor.js +125 -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 +104 -0
- package/dist/production/src/dispatch/EventsRepository.cjs.map +1 -0
- package/dist/production/src/dispatch/EventsRepository.js +104 -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 +193 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +1 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.js +176 -0
- package/dist/production/src/dispatch/WebhookTargetHandler.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs +38 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js +38 -0
- package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.cjs +39 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsContextResolver.js +39 -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 +149 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js +132 -0
- package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.cjs +31 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/ResolversFactory.js +31 -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/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/query/EventsQueryResolver.cjs +48 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js +48 -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 +93 -0
- package/dist/production/src/graphql/schema/actions.graphql.cjs.map +1 -0
- package/dist/production/src/graphql/schema/actions.graphql.js +93 -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/index.cjs +10 -0
- package/dist/production/src/migrations/index.cjs.map +1 -0
- package/dist/production/src/migrations/index.js +10 -0
- package/dist/production/src/migrations/index.js.map +1 -0
- package/dist/production/src/migrations/snapshot.cjs +48 -0
- package/dist/production/src/migrations/snapshot.cjs.map +1 -0
- package/dist/production/src/migrations/snapshot.js +49 -0
- package/dist/production/src/migrations/snapshot.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 +126 -0
- package/dist/production/src/triggers/TriggerHandler.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerHandler.js +126 -0
- package/dist/production/src/triggers/TriggerHandler.js.map +1 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs +21 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js +21 -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 +134 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadBuilder.js +134 -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 +40 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -0
- package/dist/production/src/triggers/TriggerPayloadPersister.js +40 -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/tests/src/uuid.d.ts +3 -0
- package/dist/tests/src/uuid.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/authorization/ActionsAuthorizationActions.d.ts +28 -0
- package/dist/types/authorization/ActionsAuthorizationActions.d.ts.map +1 -0
- package/dist/{src → types}/dispatch/types.d.ts +1 -1
- package/dist/types/dispatch/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/{src → types}/utils/map.d.ts.map +1 -1
- package/package.json +37 -24
- package/src/dispatch/types.ts +1 -1
- package/src/tsconfig.json +1 -1
- package/tests/cases/unit/webhookHandler.test.ts +1 -1
- package/tests/src/uuid.ts +4 -0
- package/tests/tsconfig.json +0 -3
- package/vitest.config.ts +3 -0
- package/dist/src/ActionsExecutionContainerHookFactory.js +0 -28
- package/dist/src/ActionsExecutionContainerHookFactory.js.map +0 -1
- package/dist/src/ImplementationException.js +0 -7
- package/dist/src/ImplementationException.js.map +0 -1
- package/dist/src/ListenerStoreProvider.js +0 -21
- package/dist/src/ListenerStoreProvider.js.map +0 -1
- package/dist/src/authorization/ActionsAuthorizationActions.d.ts +0 -27
- package/dist/src/authorization/ActionsAuthorizationActions.d.ts.map +0 -1
- package/dist/src/authorization/ActionsAuthorizationActions.js +0 -17
- package/dist/src/authorization/ActionsAuthorizationActions.js.map +0 -1
- package/dist/src/authorization/ActionsPermissionsFactory.js +0 -17
- package/dist/src/authorization/ActionsPermissionsFactory.js.map +0 -1
- package/dist/src/authorization/Identity.js +0 -3
- package/dist/src/authorization/Identity.js.map +0 -1
- package/dist/src/authorization/index.js +0 -20
- package/dist/src/authorization/index.js.map +0 -1
- package/dist/src/dispatch/DispatchWorkerSupervisor.js +0 -123
- package/dist/src/dispatch/DispatchWorkerSupervisor.js.map +0 -1
- package/dist/src/dispatch/EventDispatcher.js +0 -46
- package/dist/src/dispatch/EventDispatcher.js.map +0 -1
- package/dist/src/dispatch/EventsRepository.js +0 -138
- package/dist/src/dispatch/EventsRepository.js.map +0 -1
- package/dist/src/dispatch/ProjectDispatcher.js +0 -103
- package/dist/src/dispatch/ProjectDispatcher.js.map +0 -1
- package/dist/src/dispatch/TargetHandlerResolver.js +0 -17
- package/dist/src/dispatch/TargetHandlerResolver.js.map +0 -1
- package/dist/src/dispatch/WebhookFetcher.js +0 -17
- package/dist/src/dispatch/WebhookFetcher.js.map +0 -1
- package/dist/src/dispatch/WebhookTargetHandler.js +0 -203
- package/dist/src/dispatch/WebhookTargetHandler.js.map +0 -1
- package/dist/src/dispatch/types.d.ts.map +0 -1
- package/dist/src/dispatch/types.js +0 -3
- package/dist/src/dispatch/types.js.map +0 -1
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js +0 -39
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js.map +0 -1
- package/dist/src/graphql/http/ActionsContextResolver.js +0 -35
- package/dist/src/graphql/http/ActionsContextResolver.js.map +0 -1
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.js +0 -21
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +0 -1
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.js +0 -154
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.js.map +0 -1
- package/dist/src/graphql/resolvers/ActionsContext.js +0 -3
- package/dist/src/graphql/resolvers/ActionsContext.js.map +0 -1
- package/dist/src/graphql/resolvers/ResolversFactory.js +0 -32
- package/dist/src/graphql/resolvers/ResolversFactory.js.map +0 -1
- package/dist/src/graphql/resolvers/index.js +0 -19
- package/dist/src/graphql/resolvers/index.js.map +0 -1
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +0 -18
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +0 -1
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +0 -18
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +0 -1
- package/dist/src/graphql/resolvers/mutation/index.js +0 -19
- package/dist/src/graphql/resolvers/mutation/index.js.map +0 -1
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.js +0 -47
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.js.map +0 -1
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js +0 -18
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js.map +0 -1
- package/dist/src/graphql/resolvers/query/index.js +0 -18
- package/dist/src/graphql/resolvers/query/index.js.map +0 -1
- package/dist/src/graphql/schema/actions.graphql.js.map +0 -1
- package/dist/src/graphql/schema/index.js +0 -3
- package/dist/src/graphql/schema/index.js.map +0 -1
- package/dist/src/index.js +0 -87
- package/dist/src/index.js.map +0 -1
- package/dist/src/migrations/2023-03-10-145000-actions-variables.js.map +0 -1
- package/dist/src/migrations/index.js +0 -13
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/migrations/snapshot.js.map +0 -1
- package/dist/src/model/EventsInProcessingQuery.js +0 -22
- package/dist/src/model/EventsInProcessingQuery.js.map +0 -1
- package/dist/src/model/EventsToProcessQuery.js +0 -22
- package/dist/src/model/EventsToProcessQuery.js.map +0 -1
- package/dist/src/model/EventsToProcessSpecification.js +0 -14
- package/dist/src/model/EventsToProcessSpecification.js.map +0 -1
- package/dist/src/model/FailedEventsQuery.js +0 -22
- package/dist/src/model/FailedEventsQuery.js.map +0 -1
- package/dist/src/model/SetVariableCommand.js +0 -26
- package/dist/src/model/SetVariableCommand.js.map +0 -1
- package/dist/src/model/VariablesManager.js +0 -46
- package/dist/src/model/VariablesManager.js.map +0 -1
- package/dist/src/model/VariablesQuery.js +0 -13
- package/dist/src/model/VariablesQuery.js.map +0 -1
- package/dist/src/model/types.js +0 -3
- package/dist/src/model/types.js.map +0 -1
- package/dist/src/triggers/TriggerHandler.js +0 -130
- package/dist/src/triggers/TriggerHandler.js.map +0 -1
- package/dist/src/triggers/TriggerIndirectChangesFetcher.js +0 -24
- package/dist/src/triggers/TriggerIndirectChangesFetcher.js.map +0 -1
- package/dist/src/triggers/TriggerListeners.js +0 -3
- package/dist/src/triggers/TriggerListeners.js.map +0 -1
- package/dist/src/triggers/TriggerListenersBuilder.js +0 -169
- package/dist/src/triggers/TriggerListenersBuilder.js.map +0 -1
- package/dist/src/triggers/TriggerListenersFactory.js +0 -18
- package/dist/src/triggers/TriggerListenersFactory.js.map +0 -1
- package/dist/src/triggers/TriggerListenersStore.js +0 -30
- package/dist/src/triggers/TriggerListenersStore.js.map +0 -1
- package/dist/src/triggers/TriggerPayloadBuilder.js +0 -140
- package/dist/src/triggers/TriggerPayloadBuilder.js.map +0 -1
- package/dist/src/triggers/TriggerPayloadManager.js +0 -26
- package/dist/src/triggers/TriggerPayloadManager.js.map +0 -1
- package/dist/src/triggers/TriggerPayloadPersister.js +0 -46
- package/dist/src/triggers/TriggerPayloadPersister.js.map +0 -1
- package/dist/src/triggers/index.js +0 -24
- package/dist/src/triggers/index.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- package/dist/src/utils/assertNever.js +0 -8
- package/dist/src/utils/assertNever.js.map +0 -1
- package/dist/src/utils/map.js +0 -14
- package/dist/src/utils/map.js.map +0 -1
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.d.ts +0 -2
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.d.ts.map +0 -1
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.js +0 -442
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.js.map +0 -1
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.d.ts +0 -2
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.d.ts.map +0 -1
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.js +0 -449
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.js.map +0 -1
- package/dist/tests/cases/integration/triggers.rootWatch.test.d.ts +0 -2
- package/dist/tests/cases/integration/triggers.rootWatch.test.d.ts.map +0 -1
- package/dist/tests/cases/integration/triggers.rootWatch.test.js +0 -222
- package/dist/tests/cases/integration/triggers.rootWatch.test.js.map +0 -1
- package/dist/tests/cases/integration/utils.d.ts +0 -4
- package/dist/tests/cases/integration/utils.d.ts.map +0 -1
- package/dist/tests/cases/integration/utils.js +0 -12
- package/dist/tests/cases/integration/utils.js.map +0 -1
- package/dist/tests/cases/unit/generator.test.js +0 -627
- package/dist/tests/cases/unit/generator.test.js.map +0 -1
- package/dist/tests/cases/unit/webhookHandler.test.js +0 -394
- package/dist/tests/cases/unit/webhookHandler.test.js.map +0 -1
- package/dist/tests/src/gql.js +0 -14
- package/dist/tests/src/gql.js.map +0 -1
- package/tests/cases/integration/triggers.manyHasManyWatch.test.ts +0 -437
- package/tests/cases/integration/triggers.manyHasOneWatch.test.ts +0 -446
- package/tests/cases/integration/triggers.rootWatch.test.ts +0 -216
- package/tests/cases/integration/utils.ts +0 -9
- package/vite.config.js +0 -3
- /package/dist/{src → types}/ActionsExecutionContainerHookFactory.d.ts +0 -0
- /package/dist/{src → types}/ActionsExecutionContainerHookFactory.d.ts.map +0 -0
- /package/dist/{src → types}/ImplementationException.d.ts +0 -0
- /package/dist/{src → types}/ImplementationException.d.ts.map +0 -0
- /package/dist/{src → types}/ListenerStoreProvider.d.ts +0 -0
- /package/dist/{src → types}/ListenerStoreProvider.d.ts.map +0 -0
- /package/dist/{src → types}/authorization/ActionsPermissionsFactory.d.ts +0 -0
- /package/dist/{src → types}/authorization/ActionsPermissionsFactory.d.ts.map +0 -0
- /package/dist/{src → types}/authorization/Identity.d.ts +0 -0
- /package/dist/{src → types}/authorization/Identity.d.ts.map +0 -0
- /package/dist/{src → types}/authorization/index.d.ts +0 -0
- /package/dist/{src → types}/authorization/index.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/DispatchWorkerSupervisor.d.ts +0 -0
- /package/dist/{src → types}/dispatch/DispatchWorkerSupervisor.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/EventDispatcher.d.ts +0 -0
- /package/dist/{src → types}/dispatch/EventDispatcher.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/EventsRepository.d.ts +0 -0
- /package/dist/{src → types}/dispatch/EventsRepository.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/ProjectDispatcher.d.ts +0 -0
- /package/dist/{src → types}/dispatch/ProjectDispatcher.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/TargetHandlerResolver.d.ts +0 -0
- /package/dist/{src → types}/dispatch/TargetHandlerResolver.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/WebhookFetcher.d.ts +0 -0
- /package/dist/{src → types}/dispatch/WebhookFetcher.d.ts.map +0 -0
- /package/dist/{src → types}/dispatch/WebhookTargetHandler.d.ts +0 -0
- /package/dist/{src → types}/dispatch/WebhookTargetHandler.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/http/ActionsApiMiddlewareFactory.d.ts +0 -0
- /package/dist/{src → types}/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/http/ActionsContextResolver.d.ts +0 -0
- /package/dist/{src → types}/graphql/http/ActionsContextResolver.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/http/ActionsGraphQLHandlerFactory.d.ts +0 -0
- /package/dist/{src → types}/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/http/ActionsWebsocketControllerFactory.d.ts +0 -0
- /package/dist/{src → types}/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/ActionsContext.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/ActionsContext.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/ResolversFactory.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/ResolversFactory.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/index.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/index.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/index.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/mutation/index.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/EventsQueryResolver.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/EventsQueryResolver.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/VariablesQueryResolver.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/index.d.ts +0 -0
- /package/dist/{src → types}/graphql/resolvers/query/index.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/schema/actions.graphql.d.ts +0 -0
- /package/dist/{src → types}/graphql/schema/actions.graphql.d.ts.map +0 -0
- /package/dist/{src → types}/graphql/schema/index.d.ts +0 -0
- /package/dist/{src → types}/graphql/schema/index.d.ts.map +0 -0
- /package/dist/{src → types}/index.d.ts +0 -0
- /package/dist/{src → types}/index.d.ts.map +0 -0
- /package/dist/{src → types}/migrations/2023-03-10-145000-actions-variables.d.ts +0 -0
- /package/dist/{src → types}/migrations/2023-03-10-145000-actions-variables.d.ts.map +0 -0
- /package/dist/{src → types}/migrations/index.d.ts +0 -0
- /package/dist/{src → types}/migrations/index.d.ts.map +0 -0
- /package/dist/{src → types}/migrations/snapshot.d.ts +0 -0
- /package/dist/{src → types}/migrations/snapshot.d.ts.map +0 -0
- /package/dist/{src → types}/model/EventsInProcessingQuery.d.ts +0 -0
- /package/dist/{src → types}/model/EventsInProcessingQuery.d.ts.map +0 -0
- /package/dist/{src → types}/model/EventsToProcessQuery.d.ts +0 -0
- /package/dist/{src → types}/model/EventsToProcessQuery.d.ts.map +0 -0
- /package/dist/{src → types}/model/EventsToProcessSpecification.d.ts +0 -0
- /package/dist/{src → types}/model/EventsToProcessSpecification.d.ts.map +0 -0
- /package/dist/{src → types}/model/FailedEventsQuery.d.ts +0 -0
- /package/dist/{src → types}/model/FailedEventsQuery.d.ts.map +0 -0
- /package/dist/{src → types}/model/SetVariableCommand.d.ts +0 -0
- /package/dist/{src → types}/model/SetVariableCommand.d.ts.map +0 -0
- /package/dist/{src → types}/model/VariablesManager.d.ts +0 -0
- /package/dist/{src → types}/model/VariablesManager.d.ts.map +0 -0
- /package/dist/{src → types}/model/VariablesQuery.d.ts +0 -0
- /package/dist/{src → types}/model/VariablesQuery.d.ts.map +0 -0
- /package/dist/{src → types}/model/types.d.ts +0 -0
- /package/dist/{src → types}/model/types.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerHandler.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerHandler.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerIndirectChangesFetcher.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerIndirectChangesFetcher.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerListeners.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerListeners.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersBuilder.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersFactory.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersFactory.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersStore.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerListenersStore.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadBuilder.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadManager.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadManager.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadPersister.d.ts +0 -0
- /package/dist/{src → types}/triggers/TriggerPayloadPersister.d.ts.map +0 -0
- /package/dist/{src → types}/triggers/index.d.ts +0 -0
- /package/dist/{src → types}/triggers/index.d.ts.map +0 -0
- /package/dist/{src → types}/utils/assertNever.d.ts +0 -0
- /package/dist/{src → types}/utils/assertNever.d.ts.map +0 -0
- /package/dist/{src → types}/utils/map.d.ts +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,EAElB;AAAA,EAEO,SAAgC;AACtC,UAAM,UAAU,IAAIA,wBAAuB,uBAAA,KAAK,OAAO,KAAK;AAC5D,eAAW,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAClE,cAAQ,IAAI,OAAO;AAAA,IACpB;AAEA,WAAO,QAAQ;EAChB;AACD;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,EAElB;AAAA,EAEO,SAAgC;AACtC,UAAM,UAAU,IAAI,uBAAuB,KAAK,OAAO,KAAK;AAC5D,eAAW,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAClE,cAAQ,IAAI,OAAO;AAAA,IACpB;AAEA,WAAO,QAAQ;EAChB;AACD;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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.AnyTrigger\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.AnyTrigger\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,EAElB;AAAA,EAEO,mBAAmB,YAAsC;AAC/D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,qBAAqB,YAAwC;AACnE,WAAO,KAAK,UAAU,kBAAkB,IAAI,UAAU,KAAK;EAC5D;AAAA,EAEO,qBAAqB,YAAoB,cAA0C;AAClF,WAAA,KAAK,UAAU,kBAAkB,IAAI,UAAU,GAAG,IAAI,YAAY,KAAK;EAC/E;AACD;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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.AnyTrigger\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.AnyTrigger\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,EAElB;AAAA,EAEO,mBAAmB,YAAsC;AAC/D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,kBAAkB,YAAsC;AAC9D,WAAO,KAAK,UAAU,gBAAgB,IAAI,UAAU,KAAK;EAC1D;AAAA,EAEO,qBAAqB,YAAwC;AACnE,WAAO,KAAK,UAAU,kBAAkB,IAAI,UAAU,KAAK;EAC5D;AAAA,EAEO,qBAAqB,YAAoB,cAA0C;AAClF,WAAA,KAAK,UAAU,kBAAkB,IAAI,UAAU,GAAG,IAAI,YAAY,KAAK;EAC/E;AACD;"}
|
|
@@ -0,0 +1,134 @@
|
|
|
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, 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
|
+
payloads.push({
|
|
47
|
+
operation: "watch",
|
|
48
|
+
trigger: events[0].listener.trigger.name,
|
|
49
|
+
entity: events[0].entity.name,
|
|
50
|
+
id: eventsByPrimary.primary,
|
|
51
|
+
selection: events[0].selection ?? selections[eventsByPrimary.primary],
|
|
52
|
+
events: eventsByPrimary.events.map((it) => this.buildBaseEventPayloads(it))
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return payloads;
|
|
56
|
+
}
|
|
57
|
+
buildBaseEventPayloads(event, selection) {
|
|
58
|
+
switch (event.cause.type) {
|
|
59
|
+
case "AfterInsertEvent":
|
|
60
|
+
return {
|
|
61
|
+
operation: "create",
|
|
62
|
+
entity: event.cause.entity.name,
|
|
63
|
+
id: event.cause.id,
|
|
64
|
+
selection,
|
|
65
|
+
values: Object.fromEntries(event.cause.data.map((it) => [it.fieldName, it.resolvedValue])),
|
|
66
|
+
path: "path" in event.listener ? event.listener.path : void 0
|
|
67
|
+
};
|
|
68
|
+
case "AfterUpdateEvent":
|
|
69
|
+
case "BeforeUpdateEvent":
|
|
70
|
+
const afterEvent = event.cause.type === "AfterUpdateEvent" ? event.cause : event.cause.afterEvent;
|
|
71
|
+
if (!afterEvent) {
|
|
72
|
+
throw new ImplementationException.ImplementationException();
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
operation: "update",
|
|
76
|
+
entity: event.cause.entity.name,
|
|
77
|
+
id: event.cause.id,
|
|
78
|
+
selection,
|
|
79
|
+
values: Object.fromEntries(event.cause.data.map((it) => [it.fieldName, it.resolvedValue])),
|
|
80
|
+
path: "path" in event.listener ? event.listener.path : void 0,
|
|
81
|
+
old: Object.fromEntries(afterEvent.data.map((it) => [it.fieldName, it.old]))
|
|
82
|
+
};
|
|
83
|
+
case "BeforeDeleteEvent":
|
|
84
|
+
return {
|
|
85
|
+
operation: "delete",
|
|
86
|
+
entity: event.cause.entity.name,
|
|
87
|
+
id: event.cause.id,
|
|
88
|
+
selection,
|
|
89
|
+
path: "path" in event.listener ? event.listener.path : void 0
|
|
90
|
+
};
|
|
91
|
+
case "AfterJunctionUpdateEvent":
|
|
92
|
+
if (event.listener.type !== "junction") {
|
|
93
|
+
throw new ImplementationException.ImplementationException();
|
|
94
|
+
}
|
|
95
|
+
const [id, inverseId] = event.listener.context.type === "owning" ? [event.cause.owningId, event.cause.inverseId] : [event.cause.inverseId, event.cause.owningId];
|
|
96
|
+
return {
|
|
97
|
+
operation: event.cause.operation === "connect" ? "junction_connect" : "junction_disconnect",
|
|
98
|
+
entity: event.listener.context.entity.name,
|
|
99
|
+
relation: event.listener.context.relation.name,
|
|
100
|
+
id,
|
|
101
|
+
inverseId,
|
|
102
|
+
path: "path" in event.listener ? event.listener.path : void 0
|
|
103
|
+
};
|
|
104
|
+
default:
|
|
105
|
+
assertNever.assertNever(event.cause, (it) => it.type);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async fetchSelection(events) {
|
|
109
|
+
const trigger = events[0].listener.trigger;
|
|
110
|
+
if (!trigger.selection) {
|
|
111
|
+
return {};
|
|
112
|
+
}
|
|
113
|
+
const ids = Array.from(new Set(events.filter((it) => it.listener.type !== "delete").map((it) => it.primary)));
|
|
114
|
+
if (ids.length === 0) {
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
const entity = events[0].entity;
|
|
118
|
+
const input = this.convertSelectionNode(trigger.selection).withArg("filter", {
|
|
119
|
+
[entity.primary]: { in: ids }
|
|
120
|
+
});
|
|
121
|
+
return await this.mapper.selectAssoc(entity, input, [], entity.primary);
|
|
122
|
+
}
|
|
123
|
+
convertSelectionNode(node, nodeName = "root", path = []) {
|
|
124
|
+
return new engineContentApi.ObjectNode(nodeName, nodeName, node.map((it) => {
|
|
125
|
+
const [field, args, selection] = Array.isArray(it) ? it : [it, void 0, void 0];
|
|
126
|
+
if (selection === void 0 || selection.length === 0) {
|
|
127
|
+
return new engineContentApi.FieldNode(field, field, {});
|
|
128
|
+
}
|
|
129
|
+
return this.convertSelectionNode(selection, field, [...path, nodeName]).withArgs(args);
|
|
130
|
+
}), {}, {}, path);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.TriggerPayloadBuilder = TriggerPayloadBuilder;
|
|
134
|
+
//# sourceMappingURL=TriggerPayloadBuilder.cjs.map
|