@contember/engine-actions 1.3.0-alpha.4
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/src/ActionsExecutionContainerHookFactory.d.ts +8 -0
- package/dist/src/ActionsExecutionContainerHookFactory.d.ts.map +1 -0
- package/dist/src/ActionsExecutionContainerHookFactory.js +28 -0
- package/dist/src/ActionsExecutionContainerHookFactory.js.map +1 -0
- package/dist/src/ImplementationException.d.ts +3 -0
- package/dist/src/ImplementationException.d.ts.map +1 -0
- package/dist/src/ImplementationException.js +7 -0
- package/dist/src/ImplementationException.js.map +1 -0
- package/dist/src/ListenerStoreProvider.d.ts +7 -0
- package/dist/src/ListenerStoreProvider.d.ts.map +1 -0
- package/dist/src/ListenerStoreProvider.js +21 -0
- package/dist/src/ListenerStoreProvider.js.map +1 -0
- package/dist/src/dispatch/DispatchWorkerSupervisor.d.ts +17 -0
- package/dist/src/dispatch/DispatchWorkerSupervisor.d.ts.map +1 -0
- package/dist/src/dispatch/DispatchWorkerSupervisor.js +123 -0
- package/dist/src/dispatch/DispatchWorkerSupervisor.js.map +1 -0
- package/dist/src/dispatch/EventDispatcher.d.ts +25 -0
- package/dist/src/dispatch/EventDispatcher.d.ts.map +1 -0
- package/dist/src/dispatch/EventDispatcher.js +46 -0
- package/dist/src/dispatch/EventDispatcher.js.map +1 -0
- package/dist/src/dispatch/EventsRepository.d.ts +22 -0
- package/dist/src/dispatch/EventsRepository.d.ts.map +1 -0
- package/dist/src/dispatch/EventsRepository.js +138 -0
- package/dist/src/dispatch/EventsRepository.js.map +1 -0
- package/dist/src/dispatch/ProjectDispatcher.d.ts +22 -0
- package/dist/src/dispatch/ProjectDispatcher.d.ts.map +1 -0
- package/dist/src/dispatch/ProjectDispatcher.js +103 -0
- package/dist/src/dispatch/ProjectDispatcher.js.map +1 -0
- package/dist/src/dispatch/TargetHandlerResolver.d.ts +9 -0
- package/dist/src/dispatch/TargetHandlerResolver.d.ts.map +1 -0
- package/dist/src/dispatch/TargetHandlerResolver.js +17 -0
- package/dist/src/dispatch/TargetHandlerResolver.js.map +1 -0
- package/dist/src/dispatch/WebhookTargetHandler.d.ts +7 -0
- package/dist/src/dispatch/WebhookTargetHandler.d.ts.map +1 -0
- package/dist/src/dispatch/WebhookTargetHandler.js +85 -0
- package/dist/src/dispatch/WebhookTargetHandler.js.map +1 -0
- package/dist/src/dispatch/types.d.ts +27 -0
- package/dist/src/dispatch/types.d.ts.map +1 -0
- package/dist/src/dispatch/types.js +3 -0
- package/dist/src/dispatch/types.js.map +1 -0
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.d.ts +10 -0
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +1 -0
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js +31 -0
- package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -0
- package/dist/src/graphql/http/ActionsContextResolver.d.ts +11 -0
- package/dist/src/graphql/http/ActionsContextResolver.d.ts.map +1 -0
- package/dist/src/graphql/http/ActionsContextResolver.js +33 -0
- package/dist/src/graphql/http/ActionsContextResolver.js.map +1 -0
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.d.ts +8 -0
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +1 -0
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.js +21 -0
- package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -0
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.d.ts +11 -0
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.d.ts.map +1 -0
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.js +150 -0
- package/dist/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -0
- package/dist/src/graphql/resolvers/ActionsContext.d.ts +9 -0
- package/dist/src/graphql/resolvers/ActionsContext.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/ActionsContext.js +3 -0
- package/dist/src/graphql/resolvers/ActionsContext.js.map +1 -0
- package/dist/src/graphql/resolvers/ResolversFactory.d.ts +13 -0
- package/dist/src/graphql/resolvers/ResolversFactory.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/ResolversFactory.js +32 -0
- package/dist/src/graphql/resolvers/ResolversFactory.js.map +1 -0
- package/dist/src/graphql/resolvers/index.d.ts +3 -0
- package/dist/src/graphql/resolvers/index.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/index.js +19 -0
- package/dist/src/graphql/resolvers/index.js.map +1 -0
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts +11 -0
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +16 -0
- package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -0
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts +11 -0
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +16 -0
- package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -0
- package/dist/src/graphql/resolvers/mutation/index.d.ts +3 -0
- package/dist/src/graphql/resolvers/mutation/index.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/mutation/index.js +19 -0
- package/dist/src/graphql/resolvers/mutation/index.js.map +1 -0
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.d.ts +11 -0
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.js +43 -0
- package/dist/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.d.ts +12 -0
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js +16 -0
- package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -0
- package/dist/src/graphql/resolvers/query/index.d.ts +2 -0
- package/dist/src/graphql/resolvers/query/index.d.ts.map +1 -0
- package/dist/src/graphql/resolvers/query/index.js +18 -0
- package/dist/src/graphql/resolvers/query/index.js.map +1 -0
- package/dist/src/graphql/schema/actions.graphql.d.ts +3 -0
- package/dist/src/graphql/schema/actions.graphql.d.ts.map +1 -0
- package/dist/src/graphql/schema/actions.graphql.js +93 -0
- package/dist/src/graphql/schema/actions.graphql.js.map +1 -0
- package/dist/src/graphql/schema/index.d.ts +224 -0
- package/dist/src/graphql/schema/index.d.ts.map +1 -0
- package/dist/src/graphql/schema/index.js +3 -0
- package/dist/src/graphql/schema/index.js.map +1 -0
- package/dist/src/index.d.ts +13 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +81 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/migrations/2023-03-10-145000-actions-variables.d.ts +3 -0
- package/dist/src/migrations/2023-03-10-145000-actions-variables.d.ts.map +1 -0
- package/dist/src/migrations/2023-03-10-145000-actions-variables.js +17 -0
- package/dist/src/migrations/2023-03-10-145000-actions-variables.js.map +1 -0
- package/dist/src/migrations/index.d.ts +3 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/migrations/index.js +13 -0
- package/dist/src/migrations/index.js.map +1 -0
- package/dist/src/migrations/snapshot.d.ts +3 -0
- package/dist/src/migrations/snapshot.d.ts.map +1 -0
- package/dist/src/migrations/snapshot.js +49 -0
- package/dist/src/migrations/snapshot.js.map +1 -0
- package/dist/src/model/EventsInProcessingQuery.d.ts +9 -0
- package/dist/src/model/EventsInProcessingQuery.d.ts.map +1 -0
- package/dist/src/model/EventsInProcessingQuery.js +22 -0
- package/dist/src/model/EventsInProcessingQuery.js.map +1 -0
- package/dist/src/model/EventsToProcessQuery.d.ts +9 -0
- package/dist/src/model/EventsToProcessQuery.d.ts.map +1 -0
- package/dist/src/model/EventsToProcessQuery.js +22 -0
- package/dist/src/model/EventsToProcessQuery.js.map +1 -0
- package/dist/src/model/EventsToProcessSpecification.d.ts +4 -0
- package/dist/src/model/EventsToProcessSpecification.d.ts.map +1 -0
- package/dist/src/model/EventsToProcessSpecification.js +14 -0
- package/dist/src/model/EventsToProcessSpecification.js.map +1 -0
- package/dist/src/model/FailedEventsQuery.d.ts +9 -0
- package/dist/src/model/FailedEventsQuery.d.ts.map +1 -0
- package/dist/src/model/FailedEventsQuery.js +22 -0
- package/dist/src/model/FailedEventsQuery.js.map +1 -0
- package/dist/src/model/SetVariableCommand.d.ts +8 -0
- package/dist/src/model/SetVariableCommand.d.ts.map +1 -0
- package/dist/src/model/SetVariableCommand.js +26 -0
- package/dist/src/model/SetVariableCommand.js.map +1 -0
- package/dist/src/model/VariablesManager.d.ts +8 -0
- package/dist/src/model/VariablesManager.d.ts.map +1 -0
- package/dist/src/model/VariablesManager.js +46 -0
- package/dist/src/model/VariablesManager.js.map +1 -0
- package/dist/src/model/VariablesQuery.d.ts +12 -0
- package/dist/src/model/VariablesQuery.d.ts.map +1 -0
- package/dist/src/model/VariablesQuery.js +13 -0
- package/dist/src/model/VariablesQuery.js.map +1 -0
- package/dist/src/model/types.d.ts +16 -0
- package/dist/src/model/types.d.ts.map +1 -0
- package/dist/src/model/types.js +3 -0
- package/dist/src/model/types.js.map +1 -0
- package/dist/src/triggers/Payload.d.ts +62 -0
- package/dist/src/triggers/Payload.d.ts.map +1 -0
- package/dist/src/triggers/Payload.js +3 -0
- package/dist/src/triggers/Payload.js.map +1 -0
- package/dist/src/triggers/TriggerHandler.d.ts +26 -0
- package/dist/src/triggers/TriggerHandler.d.ts.map +1 -0
- package/dist/src/triggers/TriggerHandler.js +130 -0
- package/dist/src/triggers/TriggerHandler.js.map +1 -0
- package/dist/src/triggers/TriggerIndirectChangesFetcher.d.ts +11 -0
- package/dist/src/triggers/TriggerIndirectChangesFetcher.d.ts.map +1 -0
- package/dist/src/triggers/TriggerIndirectChangesFetcher.js +24 -0
- package/dist/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -0
- package/dist/src/triggers/TriggerListeners.d.ts +9 -0
- package/dist/src/triggers/TriggerListeners.d.ts.map +1 -0
- package/dist/src/triggers/TriggerListeners.js +3 -0
- package/dist/src/triggers/TriggerListeners.js.map +1 -0
- package/dist/src/triggers/TriggerListenersBuilder.d.ts +15 -0
- package/dist/src/triggers/TriggerListenersBuilder.d.ts.map +1 -0
- package/dist/src/triggers/TriggerListenersBuilder.js +169 -0
- package/dist/src/triggers/TriggerListenersBuilder.js.map +1 -0
- package/dist/src/triggers/TriggerListenersFactory.d.ts +8 -0
- package/dist/src/triggers/TriggerListenersFactory.d.ts.map +1 -0
- package/dist/src/triggers/TriggerListenersFactory.js +18 -0
- package/dist/src/triggers/TriggerListenersFactory.js.map +1 -0
- package/dist/src/triggers/TriggerListenersStore.d.ts +48 -0
- package/dist/src/triggers/TriggerListenersStore.d.ts.map +1 -0
- package/dist/src/triggers/TriggerListenersStore.js +30 -0
- package/dist/src/triggers/TriggerListenersStore.js.map +1 -0
- package/dist/src/triggers/TriggerPayloadBuilder.d.ts +14 -0
- package/dist/src/triggers/TriggerPayloadBuilder.d.ts.map +1 -0
- package/dist/src/triggers/TriggerPayloadBuilder.js +140 -0
- package/dist/src/triggers/TriggerPayloadBuilder.js.map +1 -0
- package/dist/src/triggers/TriggerPayloadManager.d.ts +27 -0
- package/dist/src/triggers/TriggerPayloadManager.d.ts.map +1 -0
- package/dist/src/triggers/TriggerPayloadManager.js +26 -0
- package/dist/src/triggers/TriggerPayloadManager.js.map +1 -0
- package/dist/src/triggers/TriggerPayloadPersister.d.ts +18 -0
- package/dist/src/triggers/TriggerPayloadPersister.d.ts.map +1 -0
- package/dist/src/triggers/TriggerPayloadPersister.js +44 -0
- package/dist/src/triggers/TriggerPayloadPersister.js.map +1 -0
- package/dist/src/triggers/index.d.ts +8 -0
- package/dist/src/triggers/index.d.ts.map +1 -0
- package/dist/src/triggers/index.js +24 -0
- package/dist/src/triggers/index.js.map +1 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -0
- package/dist/src/utils/assertNever.d.ts +2 -0
- package/dist/src/utils/assertNever.d.ts.map +1 -0
- package/dist/src/utils/assertNever.js +8 -0
- package/dist/src/utils/assertNever.js.map +1 -0
- package/dist/src/utils/map.d.ts +2 -0
- package/dist/src/utils/map.d.ts.map +1 -0
- package/dist/src/utils/map.js +14 -0
- package/dist/src/utils/map.js.map +1 -0
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.d.ts +2 -0
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.js +442 -0
- package/dist/tests/cases/integration/triggers.manyHasManyWatch.test.js.map +1 -0
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.d.ts +2 -0
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.js +449 -0
- package/dist/tests/cases/integration/triggers.manyHasOneWatch.test.js.map +1 -0
- package/dist/tests/cases/integration/triggers.rootWatch.test.d.ts +2 -0
- package/dist/tests/cases/integration/triggers.rootWatch.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/triggers.rootWatch.test.js +159 -0
- package/dist/tests/cases/integration/triggers.rootWatch.test.js.map +1 -0
- package/dist/tests/cases/integration/utils.d.ts +4 -0
- package/dist/tests/cases/integration/utils.d.ts.map +1 -0
- package/dist/tests/cases/integration/utils.js +12 -0
- package/dist/tests/cases/integration/utils.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/generator.test.js +627 -0
- package/dist/tests/cases/unit/generator.test.js.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/gql.js +14 -0
- package/dist/tests/src/gql.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -0
- package/graphql-actions.codegen.yml +21 -0
- package/package.json +41 -0
- package/src/ActionsExecutionContainerHookFactory.ts +28 -0
- package/src/ImplementationException.ts +2 -0
- package/src/ListenerStoreProvider.ts +17 -0
- package/src/dispatch/DispatchWorkerSupervisor.ts +137 -0
- package/src/dispatch/EventDispatcher.ts +64 -0
- package/src/dispatch/EventsRepository.ts +165 -0
- package/src/dispatch/ProjectDispatcher.ts +119 -0
- package/src/dispatch/TargetHandlerResolver.ts +18 -0
- package/src/dispatch/WebhookTargetHandler.ts +88 -0
- package/src/dispatch/types.ts +31 -0
- package/src/graphql/http/ActionsApiMiddlewareFactory.ts +36 -0
- package/src/graphql/http/ActionsContextResolver.ts +38 -0
- package/src/graphql/http/ActionsGraphQLHandlerFactory.ts +23 -0
- package/src/graphql/http/ActionsWebsocketControllerFactory.ts +143 -0
- package/src/graphql/resolvers/ActionsContext.ts +9 -0
- package/src/graphql/resolvers/ResolversFactory.ts +35 -0
- package/src/graphql/resolvers/index.ts +2 -0
- package/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.ts +16 -0
- package/src/graphql/resolvers/mutation/SetVariablesMutationResolver.ts +19 -0
- package/src/graphql/resolvers/mutation/index.ts +2 -0
- package/src/graphql/resolvers/query/EventsQueryResolver.ts +55 -0
- package/src/graphql/resolvers/query/VariablesQueryResolver.ts +18 -0
- package/src/graphql/resolvers/query/index.ts +1 -0
- package/src/graphql/schema/actions.graphql.ts +91 -0
- package/src/graphql/schema/index.ts +295 -0
- package/src/index.ts +88 -0
- package/src/migrations/2023-03-10-145000-actions-variables.ts +16 -0
- package/src/migrations/index.ts +7 -0
- package/src/migrations/snapshot.ts +47 -0
- package/src/model/EventsInProcessingQuery.ts +21 -0
- package/src/model/EventsToProcessQuery.ts +21 -0
- package/src/model/EventsToProcessSpecification.ts +11 -0
- package/src/model/FailedEventsQuery.ts +21 -0
- package/src/model/SetVariableCommand.ts +26 -0
- package/src/model/VariablesManager.ts +49 -0
- package/src/model/VariablesQuery.ts +17 -0
- package/src/model/types.ts +15 -0
- package/src/triggers/Payload.ts +82 -0
- package/src/triggers/TriggerHandler.ts +161 -0
- package/src/triggers/TriggerIndirectChangesFetcher.ts +30 -0
- package/src/triggers/TriggerListeners.ts +16 -0
- package/src/triggers/TriggerListenersBuilder.ts +190 -0
- package/src/triggers/TriggerListenersFactory.ts +19 -0
- package/src/triggers/TriggerListenersStore.ts +76 -0
- package/src/triggers/TriggerPayloadBuilder.ts +148 -0
- package/src/triggers/TriggerPayloadManager.ts +47 -0
- package/src/triggers/TriggerPayloadPersister.ts +43 -0
- package/src/triggers/index.ts +7 -0
- package/src/tsconfig.json +21 -0
- package/src/utils/assertNever.ts +3 -0
- package/src/utils/map.ts +13 -0
- package/tests/cases/integration/triggers.manyHasManyWatch.test.ts +437 -0
- package/tests/cases/integration/triggers.manyHasOneWatch.test.ts +446 -0
- package/tests/cases/integration/triggers.rootWatch.test.ts +152 -0
- package/tests/cases/integration/utils.ts +9 -0
- package/tests/cases/unit/generator.test.ts +689 -0
- package/tests/src/gql.ts +7 -0
- package/tests/tsconfig.json +16 -0
- package/tsconfig.json +5 -0
- package/tsconfig.settings.json +8 -0
- package/vite.config.js +3 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FailedEventsQuery = void 0;
|
|
4
|
+
const database_1 = require("@contember/database");
|
|
5
|
+
class FailedEventsQuery extends database_1.DatabaseQuery {
|
|
6
|
+
constructor(args) {
|
|
7
|
+
super();
|
|
8
|
+
this.args = args;
|
|
9
|
+
}
|
|
10
|
+
async fetch(queryable) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
return database_1.SelectBuilder.create()
|
|
13
|
+
.from('actions_event')
|
|
14
|
+
.select('*')
|
|
15
|
+
.where(it => it.in('state', ['failed', 'retrying']))
|
|
16
|
+
.orderBy('last_state_change', 'desc')
|
|
17
|
+
.limit((_a = this.args.limit) !== null && _a !== void 0 ? _a : 100, (_b = this.args.offset) !== null && _b !== void 0 ? _b : 0)
|
|
18
|
+
.getResult(queryable.db);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.FailedEventsQuery = FailedEventsQuery;
|
|
22
|
+
//# sourceMappingURL=FailedEventsQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailedEventsQuery.js","sourceRoot":"","sources":["../../../src/model/FailedEventsQuery.ts"],"names":[],"mappings":";;;AAAA,kDAAqF;AAIrF,MAAa,iBAAkB,SAAQ,wBAAyB;IAC/D,YACkB,IAAe;QAEhC,KAAK,EAAE,CAAA;QAFU,SAAI,GAAJ,IAAI,CAAW;IAGjC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAA4B;;QACvC,OAAO,wBAAa,CAAC,MAAM,EAAY;aACrC,IAAI,CAAC,eAAe,CAAC;aACrB,MAAM,CAAC,GAAG,CAAC;aACX,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;aACnD,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACpC,KAAK,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,mCAAI,GAAG,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,mCAAI,CAAC,CAAC;aACpD,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;CACD;AAhBD,8CAgBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from '@contember/engine-system-api';
|
|
2
|
+
export declare class SetVariableCommand implements Command<void> {
|
|
3
|
+
private readonly name;
|
|
4
|
+
private readonly value;
|
|
5
|
+
constructor(name: string, value: string);
|
|
6
|
+
execute({ providers, db }: Command.Args): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SetVariableCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetVariableCommand.d.ts","sourceRoot":"","sources":["../../../src/model/SetVariableCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAGtD,qBAAa,kBAAmB,YAAW,OAAO,CAAC,IAAI,CAAC;IAGtD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM;IAIzB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetVariableCommand = void 0;
|
|
4
|
+
const database_1 = require("@contember/database");
|
|
5
|
+
class SetVariableCommand {
|
|
6
|
+
constructor(name, value) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.value = value;
|
|
9
|
+
}
|
|
10
|
+
async execute({ providers, db }) {
|
|
11
|
+
await database_1.InsertBuilder.create()
|
|
12
|
+
.into('actions_variable')
|
|
13
|
+
.values({
|
|
14
|
+
id: providers.uuid(),
|
|
15
|
+
name: this.name,
|
|
16
|
+
value: this.value,
|
|
17
|
+
})
|
|
18
|
+
.onConflict(database_1.ConflictActionType.update, ['name'], {
|
|
19
|
+
value: this.value,
|
|
20
|
+
updated_at: new database_1.Literal('NOW()'),
|
|
21
|
+
})
|
|
22
|
+
.execute(db);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.SetVariableCommand = SetVariableCommand;
|
|
26
|
+
//# sourceMappingURL=SetVariableCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetVariableCommand.js","sourceRoot":"","sources":["../../../src/model/SetVariableCommand.ts"],"names":[],"mappings":";;;AACA,kDAAgF;AAEhF,MAAa,kBAAkB;IAE9B,YACkB,IAAY,EACZ,KAAa;QADb,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;IAE/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAgB;QAC5C,MAAM,wBAAa,CAAC,MAAM,EAAE;aAC1B,IAAI,CAAC,kBAAkB,CAAC;aACxB,MAAM,CAAC;YACP,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;aACD,UAAU,CAAC,6BAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,kBAAO,CAAC,OAAO,CAAC;SAChC,CAAC;aACD,OAAO,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD;AAtBD,gDAsBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DatabaseContext } from '@contember/engine-system-api';
|
|
2
|
+
import { SetVariablesArgs } from '../graphql/schema';
|
|
3
|
+
export declare type VariablesMap = Record<string, string>;
|
|
4
|
+
export declare class VariablesManager {
|
|
5
|
+
fetchVariables(db: DatabaseContext): Promise<VariablesMap>;
|
|
6
|
+
setVariables(db: DatabaseContext, args: SetVariablesArgs): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=VariablesManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesManager.d.ts","sourceRoot":"","sources":["../../../src/model/VariablesManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIpD,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjD,qBAAa,gBAAgB;IACf,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1D,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB;CAmCrE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariablesManager = void 0;
|
|
4
|
+
const VariablesQuery_1 = require("./VariablesQuery");
|
|
5
|
+
const database_1 = require("@contember/database");
|
|
6
|
+
const SetVariableCommand_1 = require("./SetVariableCommand");
|
|
7
|
+
class VariablesManager {
|
|
8
|
+
async fetchVariables(db) {
|
|
9
|
+
return Object.fromEntries((await db.queryHandler.fetch(new VariablesQuery_1.VariablesQuery())).map(it => [it.name, it.value]));
|
|
10
|
+
}
|
|
11
|
+
async setVariables(db, args) {
|
|
12
|
+
return await db.transaction(async (db) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const current = await this.fetchVariables(db);
|
|
15
|
+
const mode = (_a = args.mode) !== null && _a !== void 0 ? _a : 'MERGE';
|
|
16
|
+
const inputVariables = Object.fromEntries(args.variables.map(it => [it.name, it.value]));
|
|
17
|
+
let newVariables = {};
|
|
18
|
+
switch (mode) {
|
|
19
|
+
case 'APPEND_ONLY_MISSING':
|
|
20
|
+
newVariables = { ...inputVariables, ...current };
|
|
21
|
+
break;
|
|
22
|
+
case 'MERGE':
|
|
23
|
+
newVariables = { ...current, ...inputVariables };
|
|
24
|
+
break;
|
|
25
|
+
case 'SET':
|
|
26
|
+
newVariables = inputVariables;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
const toDelete = Object.keys(current).filter(it => !(it in newVariables));
|
|
30
|
+
if (toDelete.length > 0) {
|
|
31
|
+
await database_1.DeleteBuilder.create()
|
|
32
|
+
.from('actions_variable')
|
|
33
|
+
.where(it => it.in('name', toDelete))
|
|
34
|
+
.execute(db.client);
|
|
35
|
+
}
|
|
36
|
+
for (const [name, value] of Object.entries(newVariables)) {
|
|
37
|
+
if (value === current[name]) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
await db.commandBus.execute(new SetVariableCommand_1.SetVariableCommand(name, value));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.VariablesManager = VariablesManager;
|
|
46
|
+
//# sourceMappingURL=VariablesManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesManager.js","sourceRoot":"","sources":["../../../src/model/VariablesManager.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAEjD,kDAAmD;AACnD,6DAAyD;AAIzD,MAAa,gBAAgB;IACrB,KAAK,CAAC,cAAc,CAAC,EAAmB;QAC9C,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,+BAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9G,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,EAAmB,EAAE,IAAsB;QACpE,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,OAAO,CAAA;YACjC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAExF,IAAI,YAAY,GAAiB,EAAE,CAAA;YACnC,QAAQ,IAAI,EAAE;gBACb,KAAK,qBAAqB;oBACzB,YAAY,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAA;oBAChD,MAAK;gBACN,KAAK,OAAO;oBACX,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;oBAChD,MAAK;gBACN,KAAK,KAAK;oBACT,YAAY,GAAG,cAAc,CAAA;oBAC7B,MAAK;aACN;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,CAAA;YACzE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,wBAAa,CAAC,MAAM,EAAE;qBAC1B,IAAI,CAAC,kBAAkB,CAAC;qBACxB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;qBACpC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;aACpB;YAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACzD,IAAI,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC5B,SAAQ;iBACR;gBACD,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,uCAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;aAChE;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAxCD,4CAwCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DatabaseQuery, DatabaseQueryable } from '@contember/database';
|
|
2
|
+
export declare class VariablesQuery extends DatabaseQuery<VariableRow[]> {
|
|
3
|
+
fetch(queryable: DatabaseQueryable): Promise<VariableRow[]>;
|
|
4
|
+
}
|
|
5
|
+
export declare type VariableRow = {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
value: string;
|
|
9
|
+
created_at: Date;
|
|
10
|
+
updated_at: Date;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=VariablesQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesQuery.d.ts","sourceRoot":"","sources":["../../../src/model/VariablesQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAiB,MAAM,qBAAqB,CAAA;AAErF,qBAAa,cAAe,SAAQ,aAAa,CAAC,WAAW,EAAE,CAAC;IAClD,KAAK,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAKxE;AAED,oBAAY,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;CAChB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariablesQuery = void 0;
|
|
4
|
+
const database_1 = require("@contember/database");
|
|
5
|
+
class VariablesQuery extends database_1.DatabaseQuery {
|
|
6
|
+
async fetch(queryable) {
|
|
7
|
+
return await database_1.SelectBuilder.create()
|
|
8
|
+
.from('actions_variable')
|
|
9
|
+
.getResult(queryable.db);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.VariablesQuery = VariablesQuery;
|
|
13
|
+
//# sourceMappingURL=VariablesQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesQuery.js","sourceRoot":"","sources":["../../../src/model/VariablesQuery.ts"],"names":[],"mappings":";;;AAAA,kDAAqF;AAErF,MAAa,cAAe,SAAQ,wBAA4B;IACxD,KAAK,CAAC,KAAK,CAAC,SAA4B;QAC9C,OAAO,MAAM,wBAAa,CAAC,MAAM,EAAe;aAC9C,IAAI,CAAC,kBAAkB,CAAC;aACxB,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;CACD;AAND,wCAMC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare type EventRow = {
|
|
2
|
+
id: string;
|
|
3
|
+
transaction_id: string;
|
|
4
|
+
created_at: Date;
|
|
5
|
+
resolved_at: Date | null;
|
|
6
|
+
visible_at: Date;
|
|
7
|
+
num_retries: number;
|
|
8
|
+
state: 'created' | 'retrying' | 'processing' | 'succeed' | 'failed' | 'stopped';
|
|
9
|
+
last_state_change: Date;
|
|
10
|
+
stage_id: number;
|
|
11
|
+
schema_id: string;
|
|
12
|
+
target: string;
|
|
13
|
+
payload: any;
|
|
14
|
+
log: any[];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,IAAI,CAAA;IAChB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,IAAI,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC/E,iBAAiB,EAAE,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,GAAG,CAAA;IACZ,GAAG,EAAE,GAAG,EAAE,CAAA;CACV,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Input, JSONObject } from '@contember/schema';
|
|
2
|
+
export declare type UpdateEvent = {
|
|
3
|
+
operation: 'update';
|
|
4
|
+
entity: string;
|
|
5
|
+
id: Input.PrimaryValue;
|
|
6
|
+
values: JSONObject;
|
|
7
|
+
old?: JSONObject;
|
|
8
|
+
selection?: any;
|
|
9
|
+
path?: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare type CreateEvent = {
|
|
12
|
+
operation: 'create';
|
|
13
|
+
entity: string;
|
|
14
|
+
id: Input.PrimaryValue;
|
|
15
|
+
values: JSONObject;
|
|
16
|
+
selection?: any;
|
|
17
|
+
path?: string[];
|
|
18
|
+
};
|
|
19
|
+
export declare type DeleteEvent = {
|
|
20
|
+
operation: 'delete';
|
|
21
|
+
entity: string;
|
|
22
|
+
id: Input.PrimaryValue;
|
|
23
|
+
selection?: any;
|
|
24
|
+
path?: string[];
|
|
25
|
+
};
|
|
26
|
+
export declare type JunctionConnectEvent = {
|
|
27
|
+
operation: 'junction_connect';
|
|
28
|
+
entity: string;
|
|
29
|
+
id: Input.PrimaryValue;
|
|
30
|
+
relation: string;
|
|
31
|
+
inverseId: Input.PrimaryValue;
|
|
32
|
+
selection?: any;
|
|
33
|
+
path?: string[];
|
|
34
|
+
};
|
|
35
|
+
export declare type JunctionDisconnectEvent = {
|
|
36
|
+
operation: 'junction_disconnect';
|
|
37
|
+
entity: string;
|
|
38
|
+
id: Input.PrimaryValue;
|
|
39
|
+
relation: string;
|
|
40
|
+
inverseId: Input.PrimaryValue;
|
|
41
|
+
selection?: any;
|
|
42
|
+
path?: string[];
|
|
43
|
+
};
|
|
44
|
+
export declare type WatchEventPayload = {
|
|
45
|
+
operation: 'watch';
|
|
46
|
+
trigger: string;
|
|
47
|
+
entity: string;
|
|
48
|
+
id: Input.PrimaryValue;
|
|
49
|
+
events: BaseEventPayload[];
|
|
50
|
+
selection?: any;
|
|
51
|
+
};
|
|
52
|
+
export declare type BaseEventPayload = CreateEvent | UpdateEvent | DeleteEvent | JunctionConnectEvent | JunctionDisconnectEvent;
|
|
53
|
+
export declare type BasicEventPayload = BaseEventPayload & {
|
|
54
|
+
trigger: string;
|
|
55
|
+
};
|
|
56
|
+
export declare type AnyEventPayload = BasicEventPayload | WatchEventPayload;
|
|
57
|
+
export interface TriggerPayload {
|
|
58
|
+
transactionId: string;
|
|
59
|
+
createdAt: string;
|
|
60
|
+
event: AnyEventPayload;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../../src/triggers/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAA;AAEhE,oBAAY,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,MAAM,EAAE,UAAU,CAAA;IAClB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,oBAAY,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,MAAM,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,oBAAY,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,oBAAY,oBAAoB,GAAG;IAClC,SAAS,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,KAAK,CAAC,YAAY,CAAA;IAC7B,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACrC,SAAS,EAAE,qBAAqB,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,KAAK,CAAC,YAAY,CAAA;IAC7B,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,oBAAY,iBAAiB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,KAAK,CAAC,YAAY,CAAA;IACtB,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,oBAAY,gBAAgB,GACzB,WAAW,GACX,WAAW,GACX,WAAW,GACX,oBAAoB,GACpB,uBAAuB,CAAA;AAE1B,oBAAY,iBAAiB,GAC1B,gBAAgB,GAChB;IACD,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAEF,oBAAY,eAAe,GACxB,iBAAiB,GACjB,iBAAiB,CAAA;AAEpB,MAAM,WAAW,cAAc;IAG9B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,eAAe,CAAA;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../../src/triggers/Payload.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AfterInsertEvent, AfterJunctionUpdateEvent, AfterUpdateEvent, BeforeDeleteEvent, BeforeUpdateEvent, EventManager } from '@contember/engine-content-api';
|
|
2
|
+
import { TriggerListenersStore } from './TriggerListenersStore';
|
|
3
|
+
import { TriggerPayloadManager } from './TriggerPayloadManager';
|
|
4
|
+
import { TriggerIndirectChangesFetcher } from './TriggerIndirectChangesFetcher';
|
|
5
|
+
export declare type EventCause = BeforeUpdateEvent | AfterUpdateEvent | BeforeDeleteEvent | AfterInsertEvent | AfterJunctionUpdateEvent;
|
|
6
|
+
export declare class TriggerHandler {
|
|
7
|
+
private readonly payloadManager;
|
|
8
|
+
private readonly listenersStore;
|
|
9
|
+
private readonly changesFetcher;
|
|
10
|
+
constructor(payloadManager: TriggerPayloadManager, listenersStore: TriggerListenersStore, changesFetcher: TriggerIndirectChangesFetcher);
|
|
11
|
+
attach(evm: EventManager): void;
|
|
12
|
+
private directDeleteHandler;
|
|
13
|
+
private directUpdateHandler;
|
|
14
|
+
private directCreateHandler;
|
|
15
|
+
/**
|
|
16
|
+
* Collect affected triggers after entity was created or before it was deleted.
|
|
17
|
+
* todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty
|
|
18
|
+
*/
|
|
19
|
+
private indirectChangesEntityHandler;
|
|
20
|
+
private indirectChangesRelationHandler;
|
|
21
|
+
private indirectChangesUpdatesHandler;
|
|
22
|
+
private indirectChangesUpdatesHandlerInner;
|
|
23
|
+
private junctionHandler;
|
|
24
|
+
private collectDeepChanges;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=TriggerHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerHandler.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAsC,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,oBAAY,UAAU,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,wBAAwB,CAAA;AAE3B,qBAAa,cAAc;IAEzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAFd,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,6BAA6B;IAI/D,MAAM,CAAC,GAAG,EAAE,YAAY;YA4BV,mBAAmB;YAenB,mBAAmB;YAcnB,mBAAmB;IAajC;;;OAGG;YACW,4BAA4B;YAS5B,8BAA8B;YAI9B,6BAA6B;YAG7B,kCAAkC;YAYlC,eAAe;YAef,kBAAkB;CAehC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerHandler = void 0;
|
|
4
|
+
class TriggerHandler {
|
|
5
|
+
constructor(payloadManager, listenersStore, changesFetcher) {
|
|
6
|
+
this.payloadManager = payloadManager;
|
|
7
|
+
this.listenersStore = listenersStore;
|
|
8
|
+
this.changesFetcher = changesFetcher;
|
|
9
|
+
}
|
|
10
|
+
attach(evm) {
|
|
11
|
+
evm.listen('BeforeDeleteEvent', async (event) => {
|
|
12
|
+
await this.directDeleteHandler(event);
|
|
13
|
+
await this.indirectChangesEntityHandler(event);
|
|
14
|
+
});
|
|
15
|
+
evm.listen('AfterInsertEvent', async (event) => {
|
|
16
|
+
await this.indirectChangesEntityHandler(event);
|
|
17
|
+
await this.directCreateHandler(event);
|
|
18
|
+
});
|
|
19
|
+
evm.listen('BeforeUpdateEvent', async (event) => {
|
|
20
|
+
await this.indirectChangesRelationHandler(event);
|
|
21
|
+
});
|
|
22
|
+
evm.listen('AfterUpdateEvent', async (event) => {
|
|
23
|
+
if (event.hasChanges) {
|
|
24
|
+
await this.indirectChangesUpdatesHandler(event);
|
|
25
|
+
await this.directUpdateHandler(event);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
evm.listen('AfterJunctionUpdateEvent', async (event) => {
|
|
29
|
+
if (event.hasChanges) {
|
|
30
|
+
await this.junctionHandler(event);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
evm.listen('BeforeCommitEvent', async (event) => {
|
|
34
|
+
await this.payloadManager.persist();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async directDeleteHandler(event) {
|
|
38
|
+
const deleteListeners = this.listenersStore.getDeleteListener(event.entity.name);
|
|
39
|
+
if (!deleteListeners) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
await Promise.all(deleteListeners.map(listener => {
|
|
43
|
+
return this.payloadManager.add({
|
|
44
|
+
listener,
|
|
45
|
+
entity: event.entity,
|
|
46
|
+
primary: event.id,
|
|
47
|
+
cause: event,
|
|
48
|
+
});
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
async directUpdateHandler(event) {
|
|
52
|
+
const updateListeners = this.listenersStore.getUpdateListeners(event.entity.name);
|
|
53
|
+
updateListeners.map(listener => {
|
|
54
|
+
if (event.data.some(it => listener.fields.has(it.fieldName))) {
|
|
55
|
+
this.payloadManager.add({
|
|
56
|
+
listener,
|
|
57
|
+
entity: event.entity,
|
|
58
|
+
primary: event.id,
|
|
59
|
+
cause: event,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async directCreateHandler(event) {
|
|
65
|
+
const createListeners = this.listenersStore.getCreateListener(event.entity.name);
|
|
66
|
+
createListeners.map(listener => {
|
|
67
|
+
this.payloadManager.add({
|
|
68
|
+
listener,
|
|
69
|
+
entity: event.entity,
|
|
70
|
+
primary: event.id,
|
|
71
|
+
cause: event,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Collect affected triggers after entity was created or before it was deleted.
|
|
77
|
+
* todo: after insert, it should probably check only owning relations, because other relations are connected later, so it would be always empty
|
|
78
|
+
*/
|
|
79
|
+
async indirectChangesEntityHandler(event) {
|
|
80
|
+
//
|
|
81
|
+
const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name);
|
|
82
|
+
const promises = indirectEntityListeners.map(listener => this.collectDeepChanges(event, listener, {
|
|
83
|
+
[event.entity.primary]: { eq: event.id },
|
|
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))) {
|
|
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'
|
|
108
|
+
? event.owningId
|
|
109
|
+
: event.inverseId;
|
|
110
|
+
const entity = listener.context.entity;
|
|
111
|
+
return this.collectDeepChanges(event, listener, {
|
|
112
|
+
[entity.primary]: { eq: primary },
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
await Promise.all(promises);
|
|
116
|
+
}
|
|
117
|
+
async collectDeepChanges(cause, listener, where) {
|
|
118
|
+
const result = await this.changesFetcher.fetch(listener, where);
|
|
119
|
+
for (const row of result) {
|
|
120
|
+
this.payloadManager.add({
|
|
121
|
+
listener,
|
|
122
|
+
entity: listener.rootEntity,
|
|
123
|
+
primary: row,
|
|
124
|
+
cause,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.TriggerHandler = TriggerHandler;
|
|
130
|
+
//# sourceMappingURL=TriggerHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerHandler.js","sourceRoot":"","sources":["../../../src/triggers/TriggerHandler.ts"],"names":[],"mappings":";;;AAoBA,MAAa,cAAc;IAC1B,YACkB,cAAqC,EACrC,cAAqC,EACrC,cAA6C;QAF7C,mBAAc,GAAd,cAAc,CAAuB;QACrC,mBAAc,GAAd,cAAc,CAAuB;QACrC,mBAAc,GAAd,cAAc,CAA+B;IAE/D,CAAC;IAED,MAAM,CAAC,GAAiB;QACvB,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5C,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC7C,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5C,IAAI,KAAK,CAAC,UAAU,EAAE;gBACrB,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;gBAC/C,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;aACrC;QACF,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACpD,IAAI,KAAK,CAAC,UAAU,EAAE;gBACrB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;aACjC;QACF,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAwB;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChF,IAAI,CAAC,eAAe,EAAE;YACrB,OAAM;SACN;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC9B,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,KAAK,EAAE,KAAK;aACZ,CAAC,CAAA;QACH,CAAC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAuB;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjF,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;gBAC7D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;oBACvB,QAAQ;oBACR,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAA;aACF;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAuB;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChF,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBACvB,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,KAAK,EAAE,KAAK;aACZ,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAGD;;;OAGG;IACK,KAAK,CAAC,4BAA4B,CAAC,KAA2C;QACrF,EAAE;QACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,QAAQ,GAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE;YAClG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;SACxC,CAAC,CAAC,CAAA;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,KAAwB;QACpE,MAAM,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,KAAuB;QAClE,MAAM,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IACO,KAAK,CAAC,kCAAkC,CAAC,KAA2C,EAAE,IAA4B;QACzH,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE;gBAC9D,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE;oBAC/C,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;iBACxC,CAAC,CAAA;aACF;QACF,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAA+B;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9G,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;gBACjD,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAA;YACtC,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE;gBAC/C,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;aACjC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAGO,KAAK,CAAC,kBAAkB,CAC/B,KAAiB,EACjB,QAA6C,EAC7C,KAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC/D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBACvB,QAAQ;gBACR,MAAM,EAAE,QAAQ,CAAC,UAAU;gBAC3B,OAAO,EAAE,GAAG;gBACZ,KAAK;aACL,CAAC,CAAA;SACF;IACF,CAAC;CACD;AA5ID,wCA4IC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Mapper, PathFactory, WhereBuilder } from '@contember/engine-content-api';
|
|
2
|
+
import { IndirectListener, JunctionListener } from './TriggerListenersStore';
|
|
3
|
+
import { Input } from '@contember/schema';
|
|
4
|
+
export declare class TriggerIndirectChangesFetcher {
|
|
5
|
+
private readonly mapper;
|
|
6
|
+
private readonly whereBuilder;
|
|
7
|
+
private readonly pathFactory;
|
|
8
|
+
constructor(mapper: Mapper, whereBuilder: WhereBuilder, pathFactory: PathFactory);
|
|
9
|
+
fetch(listener: IndirectListener | JunctionListener, where: Input.Where): Promise<Input.PrimaryValue[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=TriggerIndirectChangesFetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerIndirectChangesFetcher.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerIndirectChangesFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,qBAAa,6BAA6B;IAExC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW;IAI7B,KAAK,CACjB,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,EAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,GAChB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;CAahC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerIndirectChangesFetcher = void 0;
|
|
4
|
+
const database_1 = require("@contember/database");
|
|
5
|
+
class TriggerIndirectChangesFetcher {
|
|
6
|
+
constructor(mapper, whereBuilder, pathFactory) {
|
|
7
|
+
this.mapper = mapper;
|
|
8
|
+
this.whereBuilder = whereBuilder;
|
|
9
|
+
this.pathFactory = pathFactory;
|
|
10
|
+
}
|
|
11
|
+
async fetch(listener, where) {
|
|
12
|
+
for (const key of listener.path.reverse()) {
|
|
13
|
+
where = { [key]: where };
|
|
14
|
+
}
|
|
15
|
+
const qb = database_1.SelectBuilder.create()
|
|
16
|
+
.from(listener.rootEntity.tableName, 'root_')
|
|
17
|
+
.select(['root_', listener.rootEntity.primaryColumn], 'id');
|
|
18
|
+
const path = this.pathFactory.create([]);
|
|
19
|
+
const qbWithWhere = this.whereBuilder.build(qb, listener.rootEntity, path, where);
|
|
20
|
+
return (await qbWithWhere.getResult(this.mapper.db)).map(it => it.id);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.TriggerIndirectChangesFetcher = TriggerIndirectChangesFetcher;
|
|
24
|
+
//# sourceMappingURL=TriggerIndirectChangesFetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerIndirectChangesFetcher.js","sourceRoot":"","sources":["../../../src/triggers/TriggerIndirectChangesFetcher.ts"],"names":[],"mappings":";;;AAEA,kDAAmD;AAGnD,MAAa,6BAA6B;IACzC,YACkB,MAAc,EACd,YAA0B,EAC1B,WAAwB;QAFxB,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAa;IAE1C,CAAC;IAEM,KAAK,CAAC,KAAK,CACjB,QAA6C,EAC7C,KAAkB;QAElB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YAC1C,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;SACxB;QACD,MAAM,EAAE,GAAG,wBAAa,CAAC,MAAM,EAA8B;aAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;aAC5C,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QAEjF,OAAO,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;CAED;AAxBD,sEAwBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CreateListener, DeleteListener, IndirectListener, JunctionListener, UpdateListener } from './TriggerListenersStore';
|
|
2
|
+
export interface TriggerListeners {
|
|
3
|
+
readonly deleteListeners: Map<string, DeleteListener[]>;
|
|
4
|
+
readonly createListeners: Map<string, CreateListener[]>;
|
|
5
|
+
readonly updateListeners: Map<string, UpdateListener[]>;
|
|
6
|
+
readonly indirectListeners: Map<string, IndirectListener[]>;
|
|
7
|
+
readonly junctionListeners: Map<string, Map<string, JunctionListener[]>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TriggerListeners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListeners.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerListeners.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,MAAM,yBAAyB,CAAA;AAEhC,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACvD,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACvD,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACvD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;CACxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListeners.js","sourceRoot":"","sources":["../../../src/triggers/TriggerListeners.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Model } from '@contember/schema';
|
|
2
|
+
import { TriggerListenersStore } from './TriggerListenersStore';
|
|
3
|
+
export declare class TriggerListenerBuilder {
|
|
4
|
+
private readonly model;
|
|
5
|
+
private readonly data;
|
|
6
|
+
constructor(model: Model.Schema);
|
|
7
|
+
add(trigger: Actions.AnyTrigger): void;
|
|
8
|
+
private processBasicTrigger;
|
|
9
|
+
private processIndirectListeners;
|
|
10
|
+
private processIndirectListenersNode;
|
|
11
|
+
createStore(): TriggerListenersStore;
|
|
12
|
+
private addListener;
|
|
13
|
+
private addJunctionListener;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TriggerListenersBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersBuilder.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAoB,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAKjF,qBAAa,sBAAsB;IAWjC,OAAO,CAAC,QAAQ,CAAC,KAAK;IATvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAMpB;gBAGiB,KAAK,EAAE,KAAK,CAAC,MAAM;IAI9B,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU;IAYtC,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,4BAA4B;IA2F7B,WAAW,IAAI,qBAAqB;IAK3C,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;CAK3B"}
|