@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,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerListenerBuilder = void 0;
|
|
4
|
+
const TriggerListenersStore_1 = require("./TriggerListenersStore");
|
|
5
|
+
const schema_utils_1 = require("@contember/schema-utils");
|
|
6
|
+
const map_1 = require("../utils/map");
|
|
7
|
+
const ImplementationException_1 = require("../ImplementationException");
|
|
8
|
+
class TriggerListenerBuilder {
|
|
9
|
+
constructor(model) {
|
|
10
|
+
this.model = model;
|
|
11
|
+
this.data = {
|
|
12
|
+
createListeners: new Map(),
|
|
13
|
+
updateListeners: new Map(),
|
|
14
|
+
deleteListeners: new Map(),
|
|
15
|
+
indirectListeners: new Map(),
|
|
16
|
+
junctionListeners: new Map(),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
add(trigger) {
|
|
20
|
+
if (trigger.type === 'basic') {
|
|
21
|
+
this.processBasicTrigger(trigger);
|
|
22
|
+
}
|
|
23
|
+
else if (trigger.type === 'watch') {
|
|
24
|
+
this.processIndirectListeners(trigger);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
((_) => {
|
|
28
|
+
throw new ImplementationException_1.ImplementationException(`Unhandled trigger ${trigger.type}`);
|
|
29
|
+
})(trigger);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
processBasicTrigger(trigger) {
|
|
33
|
+
const entity = (0, schema_utils_1.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(Object.keys(entity.fields)), // todo: only columns and owning
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
processIndirectListeners(trigger) {
|
|
58
|
+
const entity = (0, schema_utils_1.getEntity)(this.model, trigger.entity);
|
|
59
|
+
this.addListener('createListeners', trigger.entity, {
|
|
60
|
+
type: 'create',
|
|
61
|
+
entity,
|
|
62
|
+
trigger,
|
|
63
|
+
});
|
|
64
|
+
this.addListener('deleteListeners', trigger.entity, {
|
|
65
|
+
type: 'delete',
|
|
66
|
+
entity,
|
|
67
|
+
trigger,
|
|
68
|
+
});
|
|
69
|
+
this.processIndirectListenersNode(trigger, entity, entity, trigger.watch, []);
|
|
70
|
+
}
|
|
71
|
+
processIndirectListenersNode(trigger, rootEntity, entity, node, path) {
|
|
72
|
+
const fields = new Set();
|
|
73
|
+
const relations = new Set();
|
|
74
|
+
for (const entry of node) {
|
|
75
|
+
const [field, args, selection] = Array.isArray(entry) ? entry : [entry, undefined, undefined];
|
|
76
|
+
(0, schema_utils_1.acceptFieldVisitor)(this.model, entity, field, {
|
|
77
|
+
visitColumn: ({ entity, column }) => {
|
|
78
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 0) {
|
|
79
|
+
throw new ImplementationException_1.ImplementationException(`Column ${field} cannot have sub-selection`);
|
|
80
|
+
}
|
|
81
|
+
fields.add(column.name);
|
|
82
|
+
},
|
|
83
|
+
visitManyHasOne: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
84
|
+
fields.add(relation.name);
|
|
85
|
+
relations.add(relation.name);
|
|
86
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 0) {
|
|
87
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
visitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
91
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection !== null && selection !== void 0 ? selection : [], targetRelation.name], [...path, relation.name]);
|
|
92
|
+
},
|
|
93
|
+
visitOneHasOneOwning: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
94
|
+
fields.add(relation.name);
|
|
95
|
+
relations.add(relation.name);
|
|
96
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 0) {
|
|
97
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
visitOneHasOneInverse: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
101
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, [...selection !== null && selection !== void 0 ? selection : [], targetRelation.name], [...path, relation.name]);
|
|
102
|
+
},
|
|
103
|
+
visitManyHasManyOwning: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
104
|
+
this.addJunctionListener(entity.name, relation.name, {
|
|
105
|
+
type: 'junction',
|
|
106
|
+
rootEntity,
|
|
107
|
+
path: path,
|
|
108
|
+
trigger,
|
|
109
|
+
context: {
|
|
110
|
+
entity,
|
|
111
|
+
relation,
|
|
112
|
+
type: 'owning',
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 0) {
|
|
116
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
visitManyHasManyInverse: ({ entity, relation, targetEntity, targetRelation }) => {
|
|
120
|
+
this.addJunctionListener(targetEntity.name, targetRelation.name, {
|
|
121
|
+
type: 'junction',
|
|
122
|
+
rootEntity,
|
|
123
|
+
path: path,
|
|
124
|
+
trigger,
|
|
125
|
+
context: {
|
|
126
|
+
entity,
|
|
127
|
+
relation,
|
|
128
|
+
type: 'inverse',
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 0) {
|
|
132
|
+
this.processIndirectListenersNode(trigger, rootEntity, targetEntity, selection, [...path, relation.name]);
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
if (path.length === 0) {
|
|
138
|
+
this.addListener('updateListeners', entity.name, {
|
|
139
|
+
type: 'update',
|
|
140
|
+
entity: rootEntity,
|
|
141
|
+
fields,
|
|
142
|
+
trigger,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.addListener('indirectListeners', entity.name, {
|
|
147
|
+
type: 'indirect',
|
|
148
|
+
rootEntity: rootEntity,
|
|
149
|
+
fields,
|
|
150
|
+
relations,
|
|
151
|
+
path,
|
|
152
|
+
trigger,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
createStore() {
|
|
157
|
+
return new TriggerListenersStore_1.TriggerListenersStore(this.data);
|
|
158
|
+
}
|
|
159
|
+
addListener(type, entityName, value) {
|
|
160
|
+
(0, map_1.mapGetOrPut)(this.data[type], entityName, () => []).push(value);
|
|
161
|
+
}
|
|
162
|
+
addJunctionListener(entityName, relationName, listener) {
|
|
163
|
+
const entityJunctionListeners = (0, map_1.mapGetOrPut)(this.data.junctionListeners, entityName, () => new Map());
|
|
164
|
+
const relationListeners = (0, map_1.mapGetOrPut)(entityJunctionListeners, relationName, () => []);
|
|
165
|
+
relationListeners.push(listener);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.TriggerListenerBuilder = TriggerListenerBuilder;
|
|
169
|
+
//# sourceMappingURL=TriggerListenersBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersBuilder.js","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TriggerListenersStore } from './TriggerListenersStore';
|
|
2
|
+
import { Schema } from '@contember/schema';
|
|
3
|
+
export declare class TriggerListenersFactory {
|
|
4
|
+
private readonly schema;
|
|
5
|
+
constructor(schema: Schema);
|
|
6
|
+
create(): TriggerListenersStore;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=TriggerListenersFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersFactory.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,uBAAuB;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAIzB,MAAM,IAAI,qBAAqB;CAQtC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerListenersFactory = void 0;
|
|
4
|
+
const TriggerListenersBuilder_1 = require("./TriggerListenersBuilder");
|
|
5
|
+
class TriggerListenersFactory {
|
|
6
|
+
constructor(schema) {
|
|
7
|
+
this.schema = schema;
|
|
8
|
+
}
|
|
9
|
+
create() {
|
|
10
|
+
const builder = new TriggerListenersBuilder_1.TriggerListenerBuilder(this.schema.model);
|
|
11
|
+
for (const trigger of Object.values(this.schema.actions.triggers)) {
|
|
12
|
+
builder.add(trigger);
|
|
13
|
+
}
|
|
14
|
+
return builder.createStore();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TriggerListenersFactory = TriggerListenersFactory;
|
|
18
|
+
//# sourceMappingURL=TriggerListenersFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersFactory.js","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersFactory.ts"],"names":[],"mappings":";;;AACA,uEAAkE;AAGlE,MAAa,uBAAuB;IACnC,YACkB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAEhC,CAAC;IAEM,MAAM;QACZ,MAAM,OAAO,GAAG,IAAI,gDAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SACpB;QAED,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;IAC7B,CAAC;CACD;AAdD,0DAcC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Actions, Model } from '@contember/schema';
|
|
2
|
+
import { TriggerListeners } from './TriggerListeners';
|
|
3
|
+
export interface IndirectListener {
|
|
4
|
+
type: 'indirect';
|
|
5
|
+
trigger: Actions.AnyTrigger;
|
|
6
|
+
rootEntity: Model.Entity;
|
|
7
|
+
fields: Set<string>;
|
|
8
|
+
relations: Set<string>;
|
|
9
|
+
path: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface JunctionListener {
|
|
12
|
+
type: 'junction';
|
|
13
|
+
trigger: Actions.AnyTrigger;
|
|
14
|
+
rootEntity: Model.Entity;
|
|
15
|
+
path: string[];
|
|
16
|
+
context: {
|
|
17
|
+
entity: Model.Entity;
|
|
18
|
+
relation: Model.ManyHasManyOwningRelation | Model.ManyHasManyInverseRelation;
|
|
19
|
+
type: 'owning' | 'inverse';
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface DeleteListener {
|
|
23
|
+
type: 'delete';
|
|
24
|
+
trigger: Actions.AnyTrigger;
|
|
25
|
+
entity: Model.Entity;
|
|
26
|
+
}
|
|
27
|
+
export interface CreateListener {
|
|
28
|
+
type: 'create';
|
|
29
|
+
trigger: Actions.AnyTrigger;
|
|
30
|
+
entity: Model.Entity;
|
|
31
|
+
}
|
|
32
|
+
export interface UpdateListener {
|
|
33
|
+
type: 'update';
|
|
34
|
+
trigger: Actions.AnyTrigger;
|
|
35
|
+
entity: Model.Entity;
|
|
36
|
+
fields: Set<string>;
|
|
37
|
+
}
|
|
38
|
+
export declare type AnyListener = JunctionListener | UpdateListener | CreateListener | DeleteListener | IndirectListener;
|
|
39
|
+
export declare class TriggerListenersStore {
|
|
40
|
+
private readonly listeners;
|
|
41
|
+
constructor(listeners: TriggerListeners);
|
|
42
|
+
getUpdateListeners(entityName: string): UpdateListener[];
|
|
43
|
+
getDeleteListener(entityName: string): DeleteListener[];
|
|
44
|
+
getCreateListener(entityName: string): CreateListener[];
|
|
45
|
+
getIndirectListeners(entityName: string): IndirectListener[];
|
|
46
|
+
getJunctionListeners(entityName: string, relationName: string): JunctionListener[];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=TriggerListenersStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersStore.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACtB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;QACpB,QAAQ,EAAE,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,0BAA0B,CAAA;QAC5E,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;KAC1B,CAAA;CACD;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACnB;AAED,oBAAY,WAAW,GACpB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,cAAc,GACd,gBAAgB,CAAA;AAEnB,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAItC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE;IAIxD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE;IAIvD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE;IAIvD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI5D,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE;CAGzF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerListenersStore = void 0;
|
|
4
|
+
class TriggerListenersStore {
|
|
5
|
+
constructor(listeners) {
|
|
6
|
+
this.listeners = listeners;
|
|
7
|
+
}
|
|
8
|
+
getUpdateListeners(entityName) {
|
|
9
|
+
var _a;
|
|
10
|
+
return (_a = this.listeners.updateListeners.get(entityName)) !== null && _a !== void 0 ? _a : [];
|
|
11
|
+
}
|
|
12
|
+
getDeleteListener(entityName) {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = this.listeners.deleteListeners.get(entityName)) !== null && _a !== void 0 ? _a : [];
|
|
15
|
+
}
|
|
16
|
+
getCreateListener(entityName) {
|
|
17
|
+
var _a;
|
|
18
|
+
return (_a = this.listeners.createListeners.get(entityName)) !== null && _a !== void 0 ? _a : [];
|
|
19
|
+
}
|
|
20
|
+
getIndirectListeners(entityName) {
|
|
21
|
+
var _a;
|
|
22
|
+
return (_a = this.listeners.indirectListeners.get(entityName)) !== null && _a !== void 0 ? _a : [];
|
|
23
|
+
}
|
|
24
|
+
getJunctionListeners(entityName, relationName) {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
return (_b = (_a = this.listeners.junctionListeners.get(entityName)) === null || _a === void 0 ? void 0 : _a.get(relationName)) !== null && _b !== void 0 ? _b : [];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.TriggerListenersStore = TriggerListenersStore;
|
|
30
|
+
//# sourceMappingURL=TriggerListenersStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerListenersStore.js","sourceRoot":"","sources":["../../../src/triggers/TriggerListenersStore.ts"],"names":[],"mappings":";;;AAkDA,MAAa,qBAAqB;IACjC,YACkB,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAE7C,CAAC;IAEM,kBAAkB,CAAC,UAAkB;;QAC3C,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;IAC5D,CAAC;IAEM,iBAAiB,CAAC,UAAkB;;QAC1C,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;IAC5D,CAAC;IAEM,iBAAiB,CAAC,UAAkB;;QAC1C,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;IAC5D,CAAC;IAEM,oBAAoB,CAAC,UAAkB;;QAC7C,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;IAC9D,CAAC;IAEM,oBAAoB,CAAC,UAAkB,EAAE,YAAoB;;QACnE,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,GAAG,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAA;IACjF,CAAC;CACD;AAzBD,sDAyBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AnyEventPayload } from './Payload';
|
|
2
|
+
import { FiredEvent } from './TriggerPayloadManager';
|
|
3
|
+
import { Mapper } from '@contember/engine-content-api';
|
|
4
|
+
export declare class TriggerPayloadBuilder {
|
|
5
|
+
private readonly mapper;
|
|
6
|
+
constructor(mapper: Mapper);
|
|
7
|
+
build(events: FiredEvent[]): Promise<AnyEventPayload[]>;
|
|
8
|
+
preprocessEvent(event: FiredEvent): Promise<FiredEvent>;
|
|
9
|
+
private buildWatchEventPayloads;
|
|
10
|
+
private buildBaseEventPayloads;
|
|
11
|
+
private fetchSelection;
|
|
12
|
+
private convertSelectionNode;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=TriggerPayloadBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadBuilder.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuC,MAAM,WAAW,CAAA;AAGhF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAa,MAAM,EAAc,MAAM,+BAA+B,CAAA;AAI7E,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAInB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAmBvD,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAYpE,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,sBAAsB;YAsDhB,cAAc;IAkB5B,OAAO,CAAC,oBAAoB;CAS5B"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerPayloadBuilder = void 0;
|
|
4
|
+
const ImplementationException_1 = require("../ImplementationException");
|
|
5
|
+
const assertNever_1 = require("../utils/assertNever");
|
|
6
|
+
const engine_content_api_1 = require("@contember/engine-content-api");
|
|
7
|
+
class TriggerPayloadBuilder {
|
|
8
|
+
constructor(mapper) {
|
|
9
|
+
this.mapper = mapper;
|
|
10
|
+
}
|
|
11
|
+
async build(events) {
|
|
12
|
+
const filteredEvents = events.filter(it => {
|
|
13
|
+
var _a;
|
|
14
|
+
return it.cause.type !== 'BeforeUpdateEvent'
|
|
15
|
+
|| ((_a = it.cause.afterEvent) === null || _a === void 0 ? void 0 : _a.hasChanges) === true;
|
|
16
|
+
});
|
|
17
|
+
if (filteredEvents.length === 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const selections = await this.fetchSelection(filteredEvents);
|
|
21
|
+
const triggerType = filteredEvents[0].listener.trigger.type;
|
|
22
|
+
if (triggerType === 'basic') {
|
|
23
|
+
return filteredEvents.map(it => ({ trigger: it.listener.trigger.name, ...this.buildBaseEventPayloads(it, selections[it.primary]) }));
|
|
24
|
+
}
|
|
25
|
+
if (triggerType === 'watch') {
|
|
26
|
+
return this.buildWatchEventPayloads(filteredEvents, selections);
|
|
27
|
+
}
|
|
28
|
+
return (0, assertNever_1.assertNever)(triggerType);
|
|
29
|
+
}
|
|
30
|
+
async preprocessEvent(event) {
|
|
31
|
+
if (event.listener.type === 'delete' && event.listener.trigger.selection) {
|
|
32
|
+
const input = this.convertSelectionNode(event.listener.trigger.selection);
|
|
33
|
+
const selection = await this.mapper.selectUnique(event.entity, input.withArg('by', {
|
|
34
|
+
[event.entity.primary]: event.primary,
|
|
35
|
+
}), []);
|
|
36
|
+
return { ...event, selection };
|
|
37
|
+
}
|
|
38
|
+
return event;
|
|
39
|
+
}
|
|
40
|
+
buildWatchEventPayloads(events, selections) {
|
|
41
|
+
var _a;
|
|
42
|
+
var _b;
|
|
43
|
+
const byPrimary = {};
|
|
44
|
+
for (const event of events) {
|
|
45
|
+
(_a = byPrimary[_b = event.primary]) !== null && _a !== void 0 ? _a : (byPrimary[_b] = { primary: event.primary, events: [] });
|
|
46
|
+
byPrimary[event.primary].events.push(event);
|
|
47
|
+
}
|
|
48
|
+
const payloads = [];
|
|
49
|
+
for (const eventsByPrimary of Object.values(byPrimary)) {
|
|
50
|
+
payloads.push({
|
|
51
|
+
operation: 'watch',
|
|
52
|
+
trigger: events[0].listener.trigger.name,
|
|
53
|
+
entity: events[0].entity.name,
|
|
54
|
+
id: eventsByPrimary.primary,
|
|
55
|
+
selection: selections[eventsByPrimary.primary],
|
|
56
|
+
events: eventsByPrimary.events.map(it => this.buildBaseEventPayloads(it)),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return payloads;
|
|
60
|
+
}
|
|
61
|
+
buildBaseEventPayloads(event, selection) {
|
|
62
|
+
switch (event.cause.type) {
|
|
63
|
+
case 'AfterInsertEvent':
|
|
64
|
+
return {
|
|
65
|
+
operation: 'create',
|
|
66
|
+
entity: event.cause.entity.name,
|
|
67
|
+
id: event.cause.id,
|
|
68
|
+
selection,
|
|
69
|
+
values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.resolvedValue])),
|
|
70
|
+
path: 'path' in event.listener ? event.listener.path : undefined,
|
|
71
|
+
};
|
|
72
|
+
case 'AfterUpdateEvent':
|
|
73
|
+
case 'BeforeUpdateEvent':
|
|
74
|
+
const afterEvent = event.cause.type === 'AfterUpdateEvent' ? event.cause : event.cause.afterEvent;
|
|
75
|
+
if (!afterEvent) {
|
|
76
|
+
throw new ImplementationException_1.ImplementationException();
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
operation: 'update',
|
|
80
|
+
entity: event.cause.entity.name,
|
|
81
|
+
id: event.cause.id,
|
|
82
|
+
selection,
|
|
83
|
+
values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.resolvedValue])),
|
|
84
|
+
path: 'path' in event.listener ? event.listener.path : undefined,
|
|
85
|
+
old: Object.fromEntries(afterEvent.data.map(it => [it.fieldName, it.old])),
|
|
86
|
+
};
|
|
87
|
+
case 'BeforeDeleteEvent':
|
|
88
|
+
return {
|
|
89
|
+
operation: 'delete',
|
|
90
|
+
entity: event.cause.entity.name,
|
|
91
|
+
id: event.cause.id,
|
|
92
|
+
selection,
|
|
93
|
+
path: 'path' in event.listener ? event.listener.path : undefined,
|
|
94
|
+
};
|
|
95
|
+
case 'AfterJunctionUpdateEvent':
|
|
96
|
+
if (event.listener.type !== 'junction') {
|
|
97
|
+
throw new ImplementationException_1.ImplementationException();
|
|
98
|
+
}
|
|
99
|
+
const [id, inverseId] = event.listener.context.type === 'owning'
|
|
100
|
+
? [event.cause.owningId, event.cause.inverseId]
|
|
101
|
+
: [event.cause.inverseId, event.cause.owningId];
|
|
102
|
+
return {
|
|
103
|
+
operation: event.cause.operation === 'connect' ? 'junction_connect' : 'junction_disconnect',
|
|
104
|
+
entity: event.listener.context.entity.name,
|
|
105
|
+
relation: event.listener.context.relation.name,
|
|
106
|
+
id,
|
|
107
|
+
inverseId,
|
|
108
|
+
path: 'path' in event.listener ? event.listener.path : undefined,
|
|
109
|
+
};
|
|
110
|
+
default:
|
|
111
|
+
(0, assertNever_1.assertNever)(event.cause, it => it.type);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async fetchSelection(events) {
|
|
115
|
+
const trigger = events[0].listener.trigger;
|
|
116
|
+
if (!trigger.selection) {
|
|
117
|
+
return {};
|
|
118
|
+
}
|
|
119
|
+
const ids = Array.from(new Set(events.filter(it => it.listener.type !== 'delete').map(it => it.primary)));
|
|
120
|
+
if (ids.length === 0) {
|
|
121
|
+
return {};
|
|
122
|
+
}
|
|
123
|
+
const entity = events[0].entity;
|
|
124
|
+
const input = this.convertSelectionNode(trigger.selection).withArg('filter', {
|
|
125
|
+
[entity.primary]: { in: ids },
|
|
126
|
+
});
|
|
127
|
+
return await this.mapper.selectAssoc(entity, input, [], entity.primary);
|
|
128
|
+
}
|
|
129
|
+
convertSelectionNode(node, nodeName = 'root', path = []) {
|
|
130
|
+
return new engine_content_api_1.ObjectNode(nodeName, nodeName, node.map(it => {
|
|
131
|
+
const [field, args, selection] = Array.isArray(it) ? it : [it, undefined, undefined];
|
|
132
|
+
if (selection === undefined || selection.length === 0) {
|
|
133
|
+
return new engine_content_api_1.FieldNode(field, field, {});
|
|
134
|
+
}
|
|
135
|
+
return this.convertSelectionNode(selection, field, [...path, nodeName]).withArgs(args);
|
|
136
|
+
}), {}, {}, path);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.TriggerPayloadBuilder = TriggerPayloadBuilder;
|
|
140
|
+
//# sourceMappingURL=TriggerPayloadBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadBuilder.js","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Actions, Input, Model } from '@contember/schema';
|
|
2
|
+
import { AnyEventPayload } from './Payload';
|
|
3
|
+
import { AnyListener } from './TriggerListenersStore';
|
|
4
|
+
import { EventCause } from './TriggerHandler';
|
|
5
|
+
import { TriggerPayloadBuilder } from './TriggerPayloadBuilder';
|
|
6
|
+
import { TriggerPayloadPersister } from './TriggerPayloadPersister';
|
|
7
|
+
export interface FiredEvent {
|
|
8
|
+
listener: AnyListener;
|
|
9
|
+
cause: EventCause;
|
|
10
|
+
entity: Model.Entity;
|
|
11
|
+
primary: Input.PrimaryValue;
|
|
12
|
+
selection?: any;
|
|
13
|
+
}
|
|
14
|
+
export declare type GroupedPayloads = {
|
|
15
|
+
trigger: Actions.AnyTrigger;
|
|
16
|
+
entity: Model.Entity;
|
|
17
|
+
payloads: AnyEventPayload[];
|
|
18
|
+
};
|
|
19
|
+
export declare class TriggerPayloadManager {
|
|
20
|
+
private readonly triggerPayloadBuilder;
|
|
21
|
+
private readonly triggerPayloadPersister;
|
|
22
|
+
private eventsByTrigger;
|
|
23
|
+
constructor(triggerPayloadBuilder: TriggerPayloadBuilder, triggerPayloadPersister: TriggerPayloadPersister);
|
|
24
|
+
add(firedEvent: FiredEvent): Promise<void>;
|
|
25
|
+
persist(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=TriggerPayloadManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadManager.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;IACpB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAA;IAC3B,SAAS,CAAC,EAAE,GAAG,CAAA;CACf;AAED,oBAAY,eAAe,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;IACpB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC3B,CAAA;AAED,qBAAa,qBAAqB;IAIhC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAJzC,OAAO,CAAC,eAAe,CAAmC;gBAGxC,qBAAqB,EAAE,qBAAqB,EAC5C,uBAAuB,EAAE,uBAAuB;IAIrD,GAAG,CAAC,UAAU,EAAE,UAAU;IAO1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAOrC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerPayloadManager = void 0;
|
|
4
|
+
class TriggerPayloadManager {
|
|
5
|
+
constructor(triggerPayloadBuilder, triggerPayloadPersister) {
|
|
6
|
+
this.triggerPayloadBuilder = triggerPayloadBuilder;
|
|
7
|
+
this.triggerPayloadPersister = triggerPayloadPersister;
|
|
8
|
+
this.eventsByTrigger = {};
|
|
9
|
+
}
|
|
10
|
+
async add(firedEvent) {
|
|
11
|
+
var _a;
|
|
12
|
+
var _b, _c;
|
|
13
|
+
const event = await this.triggerPayloadBuilder.preprocessEvent(firedEvent);
|
|
14
|
+
(_a = (_b = this.eventsByTrigger)[_c = firedEvent.listener.trigger.name]) !== null && _a !== void 0 ? _a : (_b[_c] = []);
|
|
15
|
+
this.eventsByTrigger[firedEvent.listener.trigger.name].push(event);
|
|
16
|
+
}
|
|
17
|
+
async persist() {
|
|
18
|
+
for (const events of Object.values(this.eventsByTrigger)) {
|
|
19
|
+
const payloads = await this.triggerPayloadBuilder.build(events);
|
|
20
|
+
const trigger = events[0].listener.trigger;
|
|
21
|
+
await this.triggerPayloadPersister.persist(trigger, payloads);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.TriggerPayloadManager = TriggerPayloadManager;
|
|
26
|
+
//# sourceMappingURL=TriggerPayloadManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadManager.js","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadManager.ts"],"names":[],"mappings":";;;AAsBA,MAAa,qBAAqB;IAGjC,YACkB,qBAA4C,EAC5C,uBAAgD;QADhD,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,4BAAuB,GAAvB,uBAAuB,CAAyB;QAJ1D,oBAAe,GAAiC,EAAE,CAAA;IAM1D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,UAAsB;;;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAC1E,YAAA,IAAI,CAAC,eAAe,OAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,8CAAM,EAAE,EAAA;QAC7D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnE,CAAC;IAGM,KAAK,CAAC,OAAO;QACnB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAA;YAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SAC7D;IACF,CAAC;CACD;AAvBD,sDAuBC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Client } from '@contember/database';
|
|
2
|
+
import { AnyEventPayload } from './Payload';
|
|
3
|
+
import { Mapper } from '@contember/engine-content-api';
|
|
4
|
+
import { Actions } from '@contember/schema';
|
|
5
|
+
export declare const NOTIFY_CHANNEL_NAME = "actions_event";
|
|
6
|
+
export declare class TriggerPayloadPersister {
|
|
7
|
+
private readonly mapper;
|
|
8
|
+
private readonly client;
|
|
9
|
+
private readonly providers;
|
|
10
|
+
private readonly projectSlug;
|
|
11
|
+
private readonly stageId;
|
|
12
|
+
private readonly schemaId;
|
|
13
|
+
constructor(mapper: Mapper, client: Client, providers: {
|
|
14
|
+
uuid: () => string;
|
|
15
|
+
}, projectSlug: string, stageId: string, schemaId: number);
|
|
16
|
+
persist(trigger: Actions.AnyTrigger, payloads: AnyEventPayload[]): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TriggerPayloadPersister.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadPersister.d.ts","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadPersister.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAClD,qBAAa,uBAAuB;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBALR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,MAAM,CAAA;KAAE,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM;IAIrB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB7F"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerPayloadPersister = exports.NOTIFY_CHANNEL_NAME = void 0;
|
|
4
|
+
const database_1 = require("@contember/database");
|
|
5
|
+
exports.NOTIFY_CHANNEL_NAME = 'actions_event';
|
|
6
|
+
class TriggerPayloadPersister {
|
|
7
|
+
constructor(mapper, client, providers, projectSlug, stageId, schemaId) {
|
|
8
|
+
this.mapper = mapper;
|
|
9
|
+
this.client = client;
|
|
10
|
+
this.providers = providers;
|
|
11
|
+
this.projectSlug = projectSlug;
|
|
12
|
+
this.stageId = stageId;
|
|
13
|
+
this.schemaId = schemaId;
|
|
14
|
+
}
|
|
15
|
+
async persist(trigger, payloads) {
|
|
16
|
+
const chunkSize = 100;
|
|
17
|
+
for (let i = 0; i < payloads.length; i += chunkSize) {
|
|
18
|
+
const chunk = payloads.slice(i, i + chunkSize);
|
|
19
|
+
await database_1.InsertBuilder.create()
|
|
20
|
+
.into('actions_event')
|
|
21
|
+
.values(chunk.map(it => {
|
|
22
|
+
var _a;
|
|
23
|
+
return ({
|
|
24
|
+
id: this.providers.uuid(),
|
|
25
|
+
transaction_id: this.mapper.transactionId,
|
|
26
|
+
created_at: 'now',
|
|
27
|
+
visible_at: 'now',
|
|
28
|
+
num_retries: 0,
|
|
29
|
+
state: 'created',
|
|
30
|
+
stage_id: this.stageId,
|
|
31
|
+
schema_id: this.schemaId,
|
|
32
|
+
target: trigger.target,
|
|
33
|
+
trigger: trigger.name,
|
|
34
|
+
priority: (_a = trigger.priority) !== null && _a !== void 0 ? _a : 0,
|
|
35
|
+
payload: it,
|
|
36
|
+
});
|
|
37
|
+
}))
|
|
38
|
+
.execute(this.client);
|
|
39
|
+
}
|
|
40
|
+
await this.client.query('SELECT pg_notify(?, ?)', [exports.NOTIFY_CHANNEL_NAME, this.projectSlug]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.TriggerPayloadPersister = TriggerPayloadPersister;
|
|
44
|
+
//# sourceMappingURL=TriggerPayloadPersister.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerPayloadPersister.js","sourceRoot":"","sources":["../../../src/triggers/TriggerPayloadPersister.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAK9C,QAAA,mBAAmB,GAAG,eAAe,CAAA;AAClD,MAAa,uBAAuB;IACnC,YACkB,MAAc,EACd,MAAc,EACd,SAAiC,EACjC,WAAmB,EACnB,OAAe,EACf,QAAgB;QALhB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAwB;QACjC,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAQ;IAElC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,QAA2B;QAC5E,MAAM,SAAS,GAAG,GAAG,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;YACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;YAC9C,MAAM,wBAAa,CAAC,MAAM,EAAE;iBAC1B,IAAI,CAAC,eAAe,CAAC;iBACrB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;;gBAAC,OAAA,CAAC;oBACxB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBACzB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;oBACzC,UAAU,EAAE,KAAK;oBACjB,UAAU,EAAE,KAAK;oBACjB,WAAW,EAAE,CAAC;oBACd,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,IAAI,CAAC,OAAO;oBACtB,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,IAAI;oBACrB,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,mCAAI,CAAC;oBAC/B,OAAO,EAAE,EAAE;iBACX,CAAC,CAAA;aAAA,CAAC,CAAC;iBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACtB;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,2BAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3F,CAAC;CACD;AApCD,0DAoCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './TriggerIndirectChangesFetcher';
|
|
2
|
+
export * from './TriggerListeners';
|
|
3
|
+
export * from './TriggerListenersBuilder';
|
|
4
|
+
export * from './TriggerListenersFactory';
|
|
5
|
+
export * from './TriggerListenersStore';
|
|
6
|
+
export * from './TriggerHandler';
|
|
7
|
+
export * from './TriggerPayloadManager';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/triggers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA"}
|