@contember/engine-actions 2.1.0-beta.1 → 2.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/development/index.cjs +10 -4
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +10 -4
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +3 -2
  6. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  7. package/dist/development/src/ActionsExecutionContainerHookFactory.js +3 -2
  8. package/dist/development/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  9. package/dist/development/src/dispatch/LazyDispatchWorker.cjs +67 -0
  10. package/dist/development/src/dispatch/LazyDispatchWorker.cjs.map +1 -0
  11. package/dist/development/src/dispatch/LazyDispatchWorker.js +67 -0
  12. package/dist/development/src/dispatch/LazyDispatchWorker.js.map +1 -0
  13. package/dist/development/src/triggers/TriggerPayloadPersister.cjs +32 -20
  14. package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  15. package/dist/development/src/triggers/TriggerPayloadPersister.js +32 -20
  16. package/dist/development/src/triggers/TriggerPayloadPersister.js.map +1 -1
  17. package/dist/production/index.cjs +10 -4
  18. package/dist/production/index.cjs.map +1 -1
  19. package/dist/production/index.js +10 -4
  20. package/dist/production/index.js.map +1 -1
  21. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +3 -2
  22. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  23. package/dist/production/src/ActionsExecutionContainerHookFactory.js +3 -2
  24. package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  25. package/dist/production/src/dispatch/LazyDispatchWorker.cjs +67 -0
  26. package/dist/production/src/dispatch/LazyDispatchWorker.cjs.map +1 -0
  27. package/dist/production/src/dispatch/LazyDispatchWorker.js +67 -0
  28. package/dist/production/src/dispatch/LazyDispatchWorker.js.map +1 -0
  29. package/dist/production/src/triggers/TriggerPayloadPersister.cjs +32 -20
  30. package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  31. package/dist/production/src/triggers/TriggerPayloadPersister.js +32 -20
  32. package/dist/production/src/triggers/TriggerPayloadPersister.js.map +1 -1
  33. package/dist/tests/cases/unit/lazyDispatchWorker.test.d.ts +2 -0
  34. package/dist/tests/cases/unit/lazyDispatchWorker.test.d.ts.map +1 -0
  35. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  36. package/dist/types/ActionsExecutionContainerHookFactory.d.ts.map +1 -1
  37. package/dist/types/dispatch/LazyDispatchWorker.d.ts +11 -0
  38. package/dist/types/dispatch/LazyDispatchWorker.d.ts.map +1 -0
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/triggers/TriggerPayloadPersister.d.ts +3 -2
  41. package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +1 -1
  42. package/dist/types/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/src/ActionsExecutionContainerHookFactory.ts +5 -1
  45. package/src/dispatch/LazyDispatchWorker.ts +72 -0
  46. package/src/index.ts +11 -5
  47. package/src/triggers/TriggerPayloadPersister.ts +20 -7
  48. package/tests/cases/unit/lazyDispatchWorker.test.ts +226 -0
  49. package/vitest.config.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":["migrationsGroup","ActionsExecutionContainerHookFactory","ListenerStoreProvider","VariablesManager","EventsRepository","WebhookTargetHandler","WebhookFetcherNative","TargetHandlerResolver","EventDispatcher","ProjectDispatcherFactory","DispatchWorkerSupervisorFactory","Authorizator","AccessEvaluator","ActionsPermissionsFactory","ActionsGraphQLHandlerFactory","EventsQueryResolver","ProcessBatchMutationResolver","VariablesQueryResolver","SetVariablesMutationResolver","ResolversFactory","RetryEventMutationResolver","StopEventMutationResolver","ActionsContextResolver","ActionsApiMiddlewareFactory","ActionsWebsocketControllerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAOA,MAAAA;AAAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAIC,0EAAqC,IAAIC,sBAAAA,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAIC,0CAAqB,IAAIC,eAAAA,sBAAsB;AAChF,cAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,oBAAoB;AAC5E,eAAO,IAAIC,gBAAAA,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAIC,kBAAAA,yBAAyB,uBAAuB;AACrF,eAAO,IAAIC,yBAAAA,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAIC,cAAAA,aAAa,QAAQ,IAAIC,cAAAA,gBAAgB,oBAAoB,IAAIC,0BAAAA,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAIC,0DAAA;AAC3B,gBAAM,sBAAsB,IAAIC,wCAAA;AAChC,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAIC,uBAAAA,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAIC,iBAAAA;AAAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAIC,2BAAAA,2BAA2B,uBAAuB;AAAA,YACtD,IAAIC,0BAAAA,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAIC,8CAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAIC,4BAAAA;AAAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAIC,kCAAAA;AAAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AAC7H,YAAI,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QACnG;AAAA,MACD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACR;AACD;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { LazyDispatchWorker } from './dispatch/LazyDispatchWorker'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService(\n\t\t\t\t\t'applicationWorkers',\n\t\t\t\t\t(it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, projectGroupContainerResolver, serverConfig }) => {\n\t\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tit.registerWorker(this.name, new LazyDispatchWorker(projectGroupContainerResolver, actions_dispatchWorkerSupervisorFactory))\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":["migrationsGroup","ActionsExecutionContainerHookFactory","ListenerStoreProvider","VariablesManager","EventsRepository","WebhookTargetHandler","WebhookFetcherNative","TargetHandlerResolver","EventDispatcher","ProjectDispatcherFactory","DispatchWorkerSupervisorFactory","Authorizator","AccessEvaluator","ActionsPermissionsFactory","ActionsGraphQLHandlerFactory","EventsQueryResolver","ProcessBatchMutationResolver","VariablesQueryResolver","SetVariablesMutationResolver","ResolversFactory","RetryEventMutationResolver","StopEventMutationResolver","ActionsContextResolver","ActionsApiMiddlewareFactory","ActionsWebsocketControllerFactory","LazyDispatchWorker"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAOA,MAAAA;AAAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAIC,0EAAqC,IAAIC,sBAAAA,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAIC,iBAAAA,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAIC,0CAAqB,IAAIC,eAAAA,sBAAsB;AAChF,cAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,oBAAoB;AAC5E,eAAO,IAAIC,gBAAAA,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAIC,kBAAAA,yBAAyB,uBAAuB;AACrF,eAAO,IAAIC,yBAAAA,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAIC,cAAAA,aAAa,QAAQ,IAAIC,cAAAA,gBAAgB,oBAAoB,IAAIC,0BAAAA,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAIC,0DAAA;AAC3B,gBAAM,sBAAsB,IAAIC,wCAAA;AAChC,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAIC,uBAAAA,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAIC,6BAAAA,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAIC,iBAAAA;AAAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAIC,2BAAAA,2BAA2B,uBAAuB;AAAA,YACtD,IAAIC,0BAAAA,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAIC,8CAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAIC,4BAAAA;AAAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAIC,kCAAAA;AAAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA;AAAA,QACA;AAAA,QACA,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,+BAA+B,mBAAmB;AACxH,cAAI,CAAE,aAAqB,cAAc;AACxC,eAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,UACnG,OAAO;AACN,eAAG,eAAe,KAAK,MAAM,IAAIC,sCAAmB,+BAA+B,uCAAuC,CAAC;AAAA,UAC5H;AAAA,QACD;AAAA,MAAA;AAAA,IAEH;AACA,WAAO;AAAA,EACR;AACD;;;;;;;;;"}
@@ -16,6 +16,7 @@ import { WebhookTargetHandler } from "./src/dispatch/WebhookTargetHandler.js";
16
16
  import { ActionsContextResolver } from "./src/graphql/http/ActionsContextResolver.js";
17
17
  import { ActionsWebsocketControllerFactory } from "./src/graphql/http/ActionsWebsocketControllerFactory.js";
18
18
  import { DispatchWorkerSupervisorFactory } from "./src/dispatch/DispatchWorkerSupervisor.js";
19
+ import { LazyDispatchWorker } from "./src/dispatch/LazyDispatchWorker.js";
19
20
  import { ProjectDispatcherFactory } from "./src/dispatch/ProjectDispatcher.js";
20
21
  import { VariablesQueryResolver } from "./src/graphql/resolvers/query/VariablesQueryResolver.js";
21
22
  import { VariablesManager } from "./src/model/VariablesManager.js";
@@ -96,11 +97,16 @@ class ActionsPlugin {
96
97
  it.addRoute("actions", "/actions/:projectSlug", actionsMiddlewareFactory.create());
97
98
  it.addWebsocketRoute("actions", "/actions/_worker", actionsWebsocketMiddlewareFactory.create());
98
99
  }
99
- ).setupService("applicationWorkers", (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {
100
- if (!serverConfig.projectGroup) {
101
- it.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer));
100
+ ).setupService(
101
+ "applicationWorkers",
102
+ (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, projectGroupContainerResolver, serverConfig }) => {
103
+ if (!serverConfig.projectGroup) {
104
+ it.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer));
105
+ } else {
106
+ it.registerWorker(this.name, new LazyDispatchWorker(projectGroupContainerResolver, actions_dispatchWorkerSupervisorFactory));
107
+ }
102
108
  }
103
- });
109
+ );
104
110
  };
105
111
  return hook;
106
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService('applicationWorkers', (it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, serverConfig }) => {\n\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t}\n\t\t\t\t}) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAO;AAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAI,qCAAqC,IAAI,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAI,qBAAqB,IAAI,sBAAsB;AAChF,cAAM,wBAAwB,IAAI,sBAAsB,oBAAoB;AAC5E,eAAO,IAAI,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAI,yBAAyB,uBAAuB;AACrF,eAAO,IAAI,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAI,aAAa,QAAQ,IAAI,gBAAgB,oBAAoB,IAAI,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAI,6BAAA;AAC3B,gBAAM,sBAAsB,IAAI,oBAAA;AAChC,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAI,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAI;AAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI,2BAA2B,uBAAuB;AAAA,YACtD,IAAI,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAI,uBAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAI;AAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAI;AAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA,aAAa,sBAAsB,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,mBAAmB;AAC7H,YAAI,CAAE,aAAqB,cAAc;AACxC,aAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,QACnG;AAAA,MACD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/engine-actions/src/index.ts"],"sourcesContent":["import { Plugin } from '@contember/engine-plugins'\nimport { migrationsGroup } from './migrations'\nimport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { MigrationGroup } from '@contember/database-migrations'\nimport { MasterContainerBuilder, MasterContainerHook } from '@contember/engine-http'\nimport { ActionsApiMiddlewareFactory } from './graphql/http/ActionsApiMiddlewareFactory'\nimport { ActionsGraphQLHandlerFactory } from './graphql/http/ActionsGraphQLHandlerFactory'\nimport { ResolversFactory } from './graphql/resolvers/ResolversFactory'\nimport {\n\tEventsQueryResolver,\n\tProcessBatchMutationResolver,\n\tRetryEventMutationResolver,\n\tSetVariablesMutationResolver,\n\tStopEventMutationResolver,\n} from './graphql/resolvers'\nimport { EventDispatcher } from './dispatch/EventDispatcher'\nimport { EventsRepository } from './dispatch/EventsRepository'\nimport { TargetHandlerResolver } from './dispatch/TargetHandlerResolver'\nimport { WebhookTargetHandler } from './dispatch/WebhookTargetHandler'\nimport { ActionsContextResolver } from './graphql/http/ActionsContextResolver'\nimport { ActionsWebsocketControllerFactory } from './graphql/http/ActionsWebsocketControllerFactory'\nimport { DispatchWorkerSupervisorFactory } from './dispatch/DispatchWorkerSupervisor'\nimport { LazyDispatchWorker } from './dispatch/LazyDispatchWorker'\nimport { ProjectDispatcherFactory } from './dispatch/ProjectDispatcher'\nimport { VariablesQueryResolver } from './graphql/resolvers/query/VariablesQueryResolver'\nimport { VariablesManager } from './model/VariablesManager'\nimport { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { ActionsPermissionsFactory } from './authorization'\nimport { WebhookFetcherNative } from './dispatch/WebhookFetcher'\n\nexport { TriggerHandler, TriggerIndirectChangesFetcher, TriggerListenersFactory, TriggerListenersStore, TriggerPayloadManager } from './triggers'\nexport { ActionsExecutionContainerHookFactory } from './ActionsExecutionContainerHookFactory'\nexport { ListenerStoreProvider } from './ListenerStoreProvider'\n\nexport default class ActionsPlugin implements Plugin {\n\tname = 'contember/actions'\n\n\tgetSystemMigrations(): MigrationGroup {\n\t\treturn migrationsGroup\n\t}\n\n\tgetExecutionContainerHook() {\n\t\tconst hookFactory = new ActionsExecutionContainerHookFactory(new ListenerStoreProvider())\n\t\treturn hookFactory.create()\n\t}\n\n\tgetMasterContainerHook() {\n\t\tconst hook: MasterContainerHook = (builder: MasterContainerBuilder) => {\n\t\t\treturn builder\n\t\t\t\t.addService('actions_variableManager', () => {\n\t\t\t\t\treturn new VariablesManager()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventRepository', () => {\n\t\t\t\t\treturn new EventsRepository()\n\t\t\t\t})\n\t\t\t\t.addService('actions_eventDispatcher', ({ actions_eventRepository, actions_variableManager }) => {\n\t\t\t\t\tconst webhookTargetHandler = new WebhookTargetHandler(new WebhookFetcherNative())\n\t\t\t\t\tconst targetHandlerResolver = new TargetHandlerResolver(webhookTargetHandler)\n\t\t\t\t\treturn new EventDispatcher(actions_eventRepository, actions_variableManager, targetHandlerResolver)\n\t\t\t\t})\n\t\t\t\t.addService('actions_dispatchWorkerSupervisorFactory', ({ actions_eventDispatcher }) => {\n\t\t\t\t\tconst projectDispatcherFactory = new ProjectDispatcherFactory(actions_eventDispatcher)\n\t\t\t\t\treturn new DispatchWorkerSupervisorFactory(projectDispatcherFactory)\n\t\t\t\t})\n\t\t\t\t.addService('actions_authorizator', () => {\n\t\t\t\t\treturn new Authorizator.Default(new AccessEvaluator.PermissionEvaluator(new ActionsPermissionsFactory().create()))\n\t\t\t\t})\n\t\t\t\t.setupService(\n\t\t\t\t\t'application',\n\t\t\t\t\t(\n\t\t\t\t\t\tit,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectContextResolver,\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactions_eventRepository,\n\t\t\t\t\t\t\tactions_eventDispatcher,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t\tactions_variableManager,\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t},\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst handlerFactory = new ActionsGraphQLHandlerFactory()\n\t\t\t\t\t\tconst eventsQueryResolver = new EventsQueryResolver()\n\t\t\t\t\t\tconst processBatchMutationResolver = new ProcessBatchMutationResolver(actions_eventDispatcher)\n\t\t\t\t\t\tconst variablesQueryResolver = new VariablesQueryResolver(actions_variableManager)\n\t\t\t\t\t\tconst setVariablesMutationResolver = new SetVariablesMutationResolver(actions_variableManager)\n\t\t\t\t\t\tconst resolversFactory = new ResolversFactory(\n\t\t\t\t\t\t\teventsQueryResolver,\n\t\t\t\t\t\t\tprocessBatchMutationResolver,\n\t\t\t\t\t\t\tvariablesQueryResolver,\n\t\t\t\t\t\t\tsetVariablesMutationResolver,\n\t\t\t\t\t\t\tnew RetryEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t\tnew StopEventMutationResolver(actions_eventRepository),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconst actionsContextResolver = new ActionsContextResolver(debugMode, projectContextResolver)\n\t\t\t\t\t\tconst actionsMiddlewareFactory = new ActionsApiMiddlewareFactory(\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\thandlerFactory.create(resolversFactory),\n\t\t\t\t\t\t\tactions_authorizator,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst actionsWebsocketMiddlewareFactory = new ActionsWebsocketControllerFactory(\n\t\t\t\t\t\t\tdebugMode,\n\t\t\t\t\t\t\tactionsContextResolver,\n\t\t\t\t\t\t\tactions_dispatchWorkerSupervisorFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tit.addRoute('actions', '/actions/:projectSlug', actionsMiddlewareFactory.create())\n\t\t\t\t\t\tit.addWebsocketRoute('actions', '/actions/_worker', actionsWebsocketMiddlewareFactory.create())\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.setupService(\n\t\t\t\t\t'applicationWorkers',\n\t\t\t\t\t(it, { actions_dispatchWorkerSupervisorFactory, projectGroupContainer, projectGroupContainerResolver, serverConfig }) => {\n\t\t\t\t\t\tif (!(serverConfig as any).projectGroup) {\n\t\t\t\t\t\t\tit.registerWorker(this.name, actions_dispatchWorkerSupervisorFactory.create(projectGroupContainer))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tit.registerWorker(this.name, new LazyDispatchWorker(projectGroupContainerResolver, actions_dispatchWorkerSupervisorFactory))\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t) as unknown as MasterContainerBuilder\n\t\t}\n\t\treturn hook\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAqB,cAAgC;AAAA,EAArD,cAAA;AACC,kBAAA,MAAA,QAAO,mBAAA;AAAA,EAAA;AAAA,EAEP,sBAAsC;AACrC,WAAO;AAAA,EACR;AAAA,EAEA,4BAA4B;AAC3B,UAAM,cAAc,IAAI,qCAAqC,IAAI,uBAAuB;AACxF,WAAO,YAAY,OAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB;AACxB,UAAM,OAA4B,CAAC,YAAoC;AACtE,aAAO,QACL,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,MAAM;AAC5C,eAAO,IAAI,iBAAA;AAAA,MACZ,CAAC,EACA,WAAW,2BAA2B,CAAC,EAAE,yBAAyB,8BAA8B;AAChG,cAAM,uBAAuB,IAAI,qBAAqB,IAAI,sBAAsB;AAChF,cAAM,wBAAwB,IAAI,sBAAsB,oBAAoB;AAC5E,eAAO,IAAI,gBAAgB,yBAAyB,yBAAyB,qBAAqB;AAAA,MACnG,CAAC,EACA,WAAW,2CAA2C,CAAC,EAAE,8BAA8B;AACvF,cAAM,2BAA2B,IAAI,yBAAyB,uBAAuB;AACrF,eAAO,IAAI,gCAAgC,wBAAwB;AAAA,MACpE,CAAC,EACA,WAAW,wBAAwB,MAAM;AACzC,eAAO,IAAI,aAAa,QAAQ,IAAI,gBAAgB,oBAAoB,IAAI,0BAAA,EAA4B,OAAA,CAAQ,CAAC;AAAA,MAClH,CAAC,EACA;AAAA,QACA;AAAA,QACA,CACC,IACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,MAEG;AACJ,gBAAM,iBAAiB,IAAI,6BAAA;AAC3B,gBAAM,sBAAsB,IAAI,oBAAA;AAChC,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,yBAAyB,IAAI,uBAAuB,uBAAuB;AACjF,gBAAM,+BAA+B,IAAI,6BAA6B,uBAAuB;AAC7F,gBAAM,mBAAmB,IAAI;AAAA,YAC5B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI,2BAA2B,uBAAuB;AAAA,YACtD,IAAI,0BAA0B,uBAAuB;AAAA,UAAA;AAGtD,gBAAM,yBAAyB,IAAI,uBAAuB,WAAW,sBAAsB;AAC3F,gBAAM,2BAA2B,IAAI;AAAA,YACpC;AAAA,YACA,eAAe,OAAO,gBAAgB;AAAA,YACtC;AAAA,UAAA;AAED,gBAAM,oCAAoC,IAAI;AAAA,YAC7C;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAED,aAAG,SAAS,WAAW,yBAAyB,yBAAyB,QAAQ;AACjF,aAAG,kBAAkB,WAAW,oBAAoB,kCAAkC,QAAQ;AAAA,QAC/F;AAAA,MAAA,EAEA;AAAA,QACA;AAAA,QACA,CAAC,IAAI,EAAE,yCAAyC,uBAAuB,+BAA+B,mBAAmB;AACxH,cAAI,CAAE,aAAqB,cAAc;AACxC,eAAG,eAAe,KAAK,MAAM,wCAAwC,OAAO,qBAAqB,CAAC;AAAA,UACnG,OAAO;AACN,eAAG,eAAe,KAAK,MAAM,IAAI,mBAAmB,+BAA+B,uCAAuC,CAAC;AAAA,UAC5H;AAAA,QACD;AAAA,MAAA;AAAA,IAEH;AACA,WAAO;AAAA,EACR;AACD;"}
@@ -14,7 +14,7 @@ class ActionsExecutionContainerHookFactory {
14
14
  return (builder) => {
15
15
  return builder.setupService(
16
16
  "mapperFactory",
17
- (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {
17
+ (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo, triggeredActionsCollector }) => {
18
18
  mapperFactory.hooks.push((mapper) => {
19
19
  const triggerPayloadPersister = new TriggerPayloadPersister.TriggerPayloadPersister(
20
20
  mapper,
@@ -24,7 +24,8 @@ class ActionsExecutionContainerHookFactory {
24
24
  stage.id,
25
25
  schemaMeta.id,
26
26
  mapper.identityId,
27
- userInfo
27
+ userInfo,
28
+ triggeredActionsCollector
28
29
  );
29
30
  const triggerPayloadBuilder = new TriggerPayloadBuilder.TriggerPayloadBuilder(mapper);
30
31
  const payloadManager = new TriggerPayloadManager.TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsExecutionContainerHookFactory.cjs","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["TriggerPayloadPersister","TriggerPayloadBuilder","TriggerPayloadManager","TriggerIndirectChangesFetcher","TriggerHandler"],"mappings":";;;;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,eAAe;AACrI,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAIA,wBAAAA;AAAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAIC,4CAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAIC,8BAAAA,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAIC,eAAAA,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;;"}
1
+ {"version":3,"file":"ActionsExecutionContainerHookFactory.cjs","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(\n\t\t\t\t\tmapperFactory,\n\t\t\t\t\t{ whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo, triggeredActionsCollector },\n\t\t\t\t) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t\ttriggeredActionsCollector,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["TriggerPayloadPersister","TriggerPayloadBuilder","TriggerPayloadManager","TriggerIndirectChangesFetcher","TriggerHandler"],"mappings":";;;;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CACC,eACA,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,UAAU,gCAC7G;AACJ,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAIA,wBAAAA;AAAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,cACA;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAIC,sBAAAA,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAIC,4CAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAIC,8BAAAA,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAIC,eAAAA,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;;"}
@@ -12,7 +12,7 @@ class ActionsExecutionContainerHookFactory {
12
12
  return (builder) => {
13
13
  return builder.setupService(
14
14
  "mapperFactory",
15
- (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {
15
+ (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo, triggeredActionsCollector }) => {
16
16
  mapperFactory.hooks.push((mapper) => {
17
17
  const triggerPayloadPersister = new TriggerPayloadPersister(
18
18
  mapper,
@@ -22,7 +22,8 @@ class ActionsExecutionContainerHookFactory {
22
22
  stage.id,
23
23
  schemaMeta.id,
24
24
  mapper.identityId,
25
- userInfo
25
+ userInfo,
26
+ triggeredActionsCollector
26
27
  );
27
28
  const triggerPayloadBuilder = new TriggerPayloadBuilder(mapper);
28
29
  const payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister);
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsExecutionContainerHookFactory.js","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo }) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CAAC,eAAe,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,eAAe;AACrI,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAI;AAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAI,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAI,sBAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAI,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAI,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"ActionsExecutionContainerHookFactory.js","sources":["../../../../packages/engine-actions/src/ActionsExecutionContainerHookFactory.ts"],"sourcesContent":["import { TriggerHandler, TriggerIndirectChangesFetcher, TriggerPayloadManager } from './triggers'\nimport { ListenerStoreProvider } from './ListenerStoreProvider'\nimport { TriggerPayloadBuilder } from './triggers/TriggerPayloadBuilder'\nimport { TriggerPayloadPersister } from './triggers/TriggerPayloadPersister'\nimport { ExecutionContainerHook } from '@contember/engine-content-api'\n\nexport class ActionsExecutionContainerHookFactory {\n\tconstructor(\n\t\tprivate readonly listenerStoreProvider: ListenerStoreProvider,\n\t) {\n\t}\n\n\tcreate(): ExecutionContainerHook {\n\t\treturn builder => {\n\t\t\treturn builder.setupService(\n\t\t\t\t'mapperFactory',\n\t\t\t\t(\n\t\t\t\t\tmapperFactory,\n\t\t\t\t\t{ whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta, joinBuilder, userInfo, triggeredActionsCollector },\n\t\t\t\t) => {\n\t\t\t\t\tmapperFactory.hooks.push(mapper => {\n\t\t\t\t\t\tconst triggerPayloadPersister = new TriggerPayloadPersister(\n\t\t\t\t\t\t\tmapper,\n\t\t\t\t\t\t\tmapper.db.forSchema(systemSchema),\n\t\t\t\t\t\t\tproviders,\n\t\t\t\t\t\t\tproject.slug,\n\t\t\t\t\t\t\tstage.id,\n\t\t\t\t\t\t\tschemaMeta.id,\n\t\t\t\t\t\t\tmapper.identityId,\n\t\t\t\t\t\t\tuserInfo,\n\t\t\t\t\t\t\ttriggeredActionsCollector,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)\n\t\t\t\t\t\tconst payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)\n\t\t\t\t\t\tconst changesFetcher = new TriggerIndirectChangesFetcher(schema.model, mapper, whereBuilder, joinBuilder, pathFactory)\n\t\t\t\t\t\tconst listenersStore = this.listenerStoreProvider.getListenerStore(schema)\n\t\t\t\t\t\tconst triggerHandler = new TriggerHandler(payloadManager, listenersStore, changesFetcher)\n\t\t\t\t\t\ttriggerHandler.attach(mapper.eventManager)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,qCAAqC;AAAA,EACjD,YACkB,uBAChB;AADgB,SAAA,wBAAA;AAAA,EAElB;AAAA,EAEA,SAAiC;AAChC,WAAO,CAAA,YAAW;AACjB,aAAO,QAAQ;AAAA,QACd;AAAA,QACA,CACC,eACA,EAAE,cAAc,QAAQ,aAAa,cAAc,WAAW,OAAO,SAAS,YAAY,aAAa,UAAU,gCAC7G;AACJ,wBAAc,MAAM,KAAK,CAAA,WAAU;AAClC,kBAAM,0BAA0B,IAAI;AAAA,cACnC;AAAA,cACA,OAAO,GAAG,UAAU,YAAY;AAAA,cAChC;AAAA,cACA,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP;AAAA,cACA;AAAA,YAAA;AAED,kBAAM,wBAAwB,IAAI,sBAAsB,MAAM;AAC9D,kBAAM,iBAAiB,IAAI,sBAAsB,uBAAuB,uBAAuB;AAC/F,kBAAM,iBAAiB,IAAI,8BAA8B,OAAO,OAAO,QAAQ,cAAc,aAAa,WAAW;AACrH,kBAAM,iBAAiB,KAAK,sBAAsB,iBAAiB,MAAM;AACzE,kBAAM,iBAAiB,IAAI,eAAe,gBAAgB,gBAAgB,cAAc;AACxF,2BAAe,OAAO,OAAO,YAAY;AAAA,UAC1C,CAAC;AAAA,QACF;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACD;"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const engineCommon = require("@contember/engine-common");
4
+ class LazyDispatchWorker {
5
+ constructor(projectGroupContainerResolver, supervisorFactory, supervisorOptions = { startupMax: 10 }) {
6
+ this.projectGroupContainerResolver = projectGroupContainerResolver;
7
+ this.supervisorFactory = supervisorFactory;
8
+ this.supervisorOptions = supervisorOptions;
9
+ }
10
+ async run({ logger, onError }) {
11
+ const running = /* @__PURE__ */ new Map();
12
+ let aborted = false;
13
+ const unlisten = this.projectGroupContainerResolver.on("create", ({ container, slug }) => {
14
+ const groupLabel = slug ?? "<default>";
15
+ const childLogger = logger.child({ projectGroup: groupLabel });
16
+ childLogger.debug(`Starting dispatch worker for project group ${groupLabel}`);
17
+ const supervised = new engineCommon.Supervisor(
18
+ this.supervisorFactory.create(container),
19
+ this.supervisorOptions
20
+ );
21
+ const runningPromise = supervised.run({
22
+ logger: childLogger,
23
+ onError: (e) => {
24
+ if (aborted) {
25
+ return;
26
+ }
27
+ childLogger.error(e, { message: `Dispatch worker for project group ${groupLabel} crashed` });
28
+ onError(e);
29
+ }
30
+ }).catch((e) => {
31
+ if (!aborted) {
32
+ childLogger.error(e, { message: `Failed to start dispatch worker for project group ${groupLabel}` });
33
+ onError(e);
34
+ }
35
+ return void 0;
36
+ });
37
+ running.set(slug, runningPromise);
38
+ return () => {
39
+ running.delete(slug);
40
+ (async () => {
41
+ try {
42
+ const r = await runningPromise;
43
+ await r?.end();
44
+ } catch {
45
+ }
46
+ })();
47
+ };
48
+ });
49
+ return {
50
+ end: async () => {
51
+ aborted = true;
52
+ unlisten();
53
+ const all = [...running.values()];
54
+ running.clear();
55
+ await Promise.allSettled(all.map(async (p) => {
56
+ try {
57
+ const r = await p;
58
+ await r?.end();
59
+ } catch {
60
+ }
61
+ }));
62
+ }
63
+ };
64
+ }
65
+ }
66
+ exports.LazyDispatchWorker = LazyDispatchWorker;
67
+ //# sourceMappingURL=LazyDispatchWorker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyDispatchWorker.cjs","sources":["../../../../../packages/engine-actions/src/dispatch/LazyDispatchWorker.ts"],"sourcesContent":["import { Runnable, RunnableArgs, Running, Supervisor, SupervisorOptions } from '@contember/engine-common'\nimport { ProjectGroupContainerResolver } from '@contember/engine-http'\nimport { DispatchWorkerSupervisorFactory } from './DispatchWorkerSupervisor'\n\nexport class LazyDispatchWorker implements Runnable {\n\tconstructor(\n\t\tprivate readonly projectGroupContainerResolver: ProjectGroupContainerResolver,\n\t\tprivate readonly supervisorFactory: DispatchWorkerSupervisorFactory,\n\t\tprivate readonly supervisorOptions: SupervisorOptions = { startupMax: 10 },\n\t) {\n\t}\n\n\tpublic async run({ logger, onError }: RunnableArgs): Promise<Running> {\n\t\tconst running = new Map<string | undefined, Promise<Running | undefined>>()\n\t\tlet aborted = false\n\n\t\tconst unlisten = this.projectGroupContainerResolver.on('create', ({ container, slug }) => {\n\t\t\tconst groupLabel = slug ?? '<default>'\n\t\t\tconst childLogger = logger.child({ projectGroup: groupLabel })\n\t\t\tchildLogger.debug(`Starting dispatch worker for project group ${groupLabel}`)\n\n\t\t\tconst supervised = new Supervisor(\n\t\t\t\tthis.supervisorFactory.create(container),\n\t\t\t\tthis.supervisorOptions,\n\t\t\t)\n\t\t\tconst runningPromise: Promise<Running | undefined> = supervised.run({\n\t\t\t\tlogger: childLogger,\n\t\t\t\tonError: e => {\n\t\t\t\t\tif (aborted) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tchildLogger.error(e, { message: `Dispatch worker for project group ${groupLabel} crashed` })\n\t\t\t\t\tonError(e)\n\t\t\t\t},\n\t\t\t}).catch(e => {\n\t\t\t\tif (!aborted) {\n\t\t\t\t\tchildLogger.error(e, { message: `Failed to start dispatch worker for project group ${groupLabel}` })\n\t\t\t\t\tonError(e)\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})\n\t\t\trunning.set(slug, runningPromise)\n\n\t\t\treturn () => {\n\t\t\t\trunning.delete(slug)\n\t\t\t\t;(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst r = await runningPromise\n\t\t\t\t\t\tawait r?.end()\n\t\t\t\t\t} catch {\n\t\t\t\t\t}\n\t\t\t\t})()\n\t\t\t}\n\t\t})\n\n\t\treturn {\n\t\t\tend: async () => {\n\t\t\t\taborted = true\n\t\t\t\tunlisten()\n\t\t\t\tconst all = [...running.values()]\n\t\t\t\trunning.clear()\n\t\t\t\tawait Promise.allSettled(all.map(async p => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst r = await p\n\t\t\t\t\t\tawait r?.end()\n\t\t\t\t\t} catch {\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["Supervisor"],"mappings":";;;AAIO,MAAM,mBAAuC;AAAA,EACnD,YACkB,+BACA,mBACA,oBAAuC,EAAE,YAAY,MACrE;AAHgB,SAAA,gCAAA;AACA,SAAA,oBAAA;AACA,SAAA,oBAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,EAAE,QAAQ,WAA2C;AACrE,UAAM,8BAAc,IAAA;AACpB,QAAI,UAAU;AAEd,UAAM,WAAW,KAAK,8BAA8B,GAAG,UAAU,CAAC,EAAE,WAAW,WAAW;AACzF,YAAM,aAAa,QAAQ;AAC3B,YAAM,cAAc,OAAO,MAAM,EAAE,cAAc,YAAY;AAC7D,kBAAY,MAAM,8CAA8C,UAAU,EAAE;AAE5E,YAAM,aAAa,IAAIA,aAAAA;AAAAA,QACtB,KAAK,kBAAkB,OAAO,SAAS;AAAA,QACvC,KAAK;AAAA,MAAA;AAEN,YAAM,iBAA+C,WAAW,IAAI;AAAA,QACnE,QAAQ;AAAA,QACR,SAAS,CAAA,MAAK;AACb,cAAI,SAAS;AACZ;AAAA,UACD;AACA,sBAAY,MAAM,GAAG,EAAE,SAAS,qCAAqC,UAAU,YAAY;AAC3F,kBAAQ,CAAC;AAAA,QACV;AAAA,MAAA,CACA,EAAE,MAAM,CAAA,MAAK;AACb,YAAI,CAAC,SAAS;AACb,sBAAY,MAAM,GAAG,EAAE,SAAS,qDAAqD,UAAU,IAAI;AACnG,kBAAQ,CAAC;AAAA,QACV;AACA,eAAO;AAAA,MACR,CAAC;AACD,cAAQ,IAAI,MAAM,cAAc;AAEhC,aAAO,MAAM;AACZ,gBAAQ,OAAO,IAAI;AAClB,SAAC,YAAY;AACb,cAAI;AACH,kBAAM,IAAI,MAAM;AAChB,kBAAM,GAAG,IAAA;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACD,GAAA;AAAA,MACD;AAAA,IACD,CAAC;AAED,WAAO;AAAA,MACN,KAAK,YAAY;AAChB,kBAAU;AACV,iBAAA;AACA,cAAM,MAAM,CAAC,GAAG,QAAQ,QAAQ;AAChC,gBAAQ,MAAA;AACR,cAAM,QAAQ,WAAW,IAAI,IAAI,OAAM,MAAK;AAC3C,cAAI;AACH,kBAAM,IAAI,MAAM;AAChB,kBAAM,GAAG,IAAA;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACD,CAAC,CAAC;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AACD;;"}
@@ -0,0 +1,67 @@
1
+ import { Supervisor } from "@contember/engine-common";
2
+ class LazyDispatchWorker {
3
+ constructor(projectGroupContainerResolver, supervisorFactory, supervisorOptions = { startupMax: 10 }) {
4
+ this.projectGroupContainerResolver = projectGroupContainerResolver;
5
+ this.supervisorFactory = supervisorFactory;
6
+ this.supervisorOptions = supervisorOptions;
7
+ }
8
+ async run({ logger, onError }) {
9
+ const running = /* @__PURE__ */ new Map();
10
+ let aborted = false;
11
+ const unlisten = this.projectGroupContainerResolver.on("create", ({ container, slug }) => {
12
+ const groupLabel = slug ?? "<default>";
13
+ const childLogger = logger.child({ projectGroup: groupLabel });
14
+ childLogger.debug(`Starting dispatch worker for project group ${groupLabel}`);
15
+ const supervised = new Supervisor(
16
+ this.supervisorFactory.create(container),
17
+ this.supervisorOptions
18
+ );
19
+ const runningPromise = supervised.run({
20
+ logger: childLogger,
21
+ onError: (e) => {
22
+ if (aborted) {
23
+ return;
24
+ }
25
+ childLogger.error(e, { message: `Dispatch worker for project group ${groupLabel} crashed` });
26
+ onError(e);
27
+ }
28
+ }).catch((e) => {
29
+ if (!aborted) {
30
+ childLogger.error(e, { message: `Failed to start dispatch worker for project group ${groupLabel}` });
31
+ onError(e);
32
+ }
33
+ return void 0;
34
+ });
35
+ running.set(slug, runningPromise);
36
+ return () => {
37
+ running.delete(slug);
38
+ (async () => {
39
+ try {
40
+ const r = await runningPromise;
41
+ await r?.end();
42
+ } catch {
43
+ }
44
+ })();
45
+ };
46
+ });
47
+ return {
48
+ end: async () => {
49
+ aborted = true;
50
+ unlisten();
51
+ const all = [...running.values()];
52
+ running.clear();
53
+ await Promise.allSettled(all.map(async (p) => {
54
+ try {
55
+ const r = await p;
56
+ await r?.end();
57
+ } catch {
58
+ }
59
+ }));
60
+ }
61
+ };
62
+ }
63
+ }
64
+ export {
65
+ LazyDispatchWorker
66
+ };
67
+ //# sourceMappingURL=LazyDispatchWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyDispatchWorker.js","sources":["../../../../../packages/engine-actions/src/dispatch/LazyDispatchWorker.ts"],"sourcesContent":["import { Runnable, RunnableArgs, Running, Supervisor, SupervisorOptions } from '@contember/engine-common'\nimport { ProjectGroupContainerResolver } from '@contember/engine-http'\nimport { DispatchWorkerSupervisorFactory } from './DispatchWorkerSupervisor'\n\nexport class LazyDispatchWorker implements Runnable {\n\tconstructor(\n\t\tprivate readonly projectGroupContainerResolver: ProjectGroupContainerResolver,\n\t\tprivate readonly supervisorFactory: DispatchWorkerSupervisorFactory,\n\t\tprivate readonly supervisorOptions: SupervisorOptions = { startupMax: 10 },\n\t) {\n\t}\n\n\tpublic async run({ logger, onError }: RunnableArgs): Promise<Running> {\n\t\tconst running = new Map<string | undefined, Promise<Running | undefined>>()\n\t\tlet aborted = false\n\n\t\tconst unlisten = this.projectGroupContainerResolver.on('create', ({ container, slug }) => {\n\t\t\tconst groupLabel = slug ?? '<default>'\n\t\t\tconst childLogger = logger.child({ projectGroup: groupLabel })\n\t\t\tchildLogger.debug(`Starting dispatch worker for project group ${groupLabel}`)\n\n\t\t\tconst supervised = new Supervisor(\n\t\t\t\tthis.supervisorFactory.create(container),\n\t\t\t\tthis.supervisorOptions,\n\t\t\t)\n\t\t\tconst runningPromise: Promise<Running | undefined> = supervised.run({\n\t\t\t\tlogger: childLogger,\n\t\t\t\tonError: e => {\n\t\t\t\t\tif (aborted) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tchildLogger.error(e, { message: `Dispatch worker for project group ${groupLabel} crashed` })\n\t\t\t\t\tonError(e)\n\t\t\t\t},\n\t\t\t}).catch(e => {\n\t\t\t\tif (!aborted) {\n\t\t\t\t\tchildLogger.error(e, { message: `Failed to start dispatch worker for project group ${groupLabel}` })\n\t\t\t\t\tonError(e)\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})\n\t\t\trunning.set(slug, runningPromise)\n\n\t\t\treturn () => {\n\t\t\t\trunning.delete(slug)\n\t\t\t\t;(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst r = await runningPromise\n\t\t\t\t\t\tawait r?.end()\n\t\t\t\t\t} catch {\n\t\t\t\t\t}\n\t\t\t\t})()\n\t\t\t}\n\t\t})\n\n\t\treturn {\n\t\t\tend: async () => {\n\t\t\t\taborted = true\n\t\t\t\tunlisten()\n\t\t\t\tconst all = [...running.values()]\n\t\t\t\trunning.clear()\n\t\t\t\tawait Promise.allSettled(all.map(async p => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst r = await p\n\t\t\t\t\t\tawait r?.end()\n\t\t\t\t\t} catch {\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,mBAAuC;AAAA,EACnD,YACkB,+BACA,mBACA,oBAAuC,EAAE,YAAY,MACrE;AAHgB,SAAA,gCAAA;AACA,SAAA,oBAAA;AACA,SAAA,oBAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,EAAE,QAAQ,WAA2C;AACrE,UAAM,8BAAc,IAAA;AACpB,QAAI,UAAU;AAEd,UAAM,WAAW,KAAK,8BAA8B,GAAG,UAAU,CAAC,EAAE,WAAW,WAAW;AACzF,YAAM,aAAa,QAAQ;AAC3B,YAAM,cAAc,OAAO,MAAM,EAAE,cAAc,YAAY;AAC7D,kBAAY,MAAM,8CAA8C,UAAU,EAAE;AAE5E,YAAM,aAAa,IAAI;AAAA,QACtB,KAAK,kBAAkB,OAAO,SAAS;AAAA,QACvC,KAAK;AAAA,MAAA;AAEN,YAAM,iBAA+C,WAAW,IAAI;AAAA,QACnE,QAAQ;AAAA,QACR,SAAS,CAAA,MAAK;AACb,cAAI,SAAS;AACZ;AAAA,UACD;AACA,sBAAY,MAAM,GAAG,EAAE,SAAS,qCAAqC,UAAU,YAAY;AAC3F,kBAAQ,CAAC;AAAA,QACV;AAAA,MAAA,CACA,EAAE,MAAM,CAAA,MAAK;AACb,YAAI,CAAC,SAAS;AACb,sBAAY,MAAM,GAAG,EAAE,SAAS,qDAAqD,UAAU,IAAI;AACnG,kBAAQ,CAAC;AAAA,QACV;AACA,eAAO;AAAA,MACR,CAAC;AACD,cAAQ,IAAI,MAAM,cAAc;AAEhC,aAAO,MAAM;AACZ,gBAAQ,OAAO,IAAI;AAClB,SAAC,YAAY;AACb,cAAI;AACH,kBAAM,IAAI,MAAM;AAChB,kBAAM,GAAG,IAAA;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACD,GAAA;AAAA,MACD;AAAA,IACD,CAAC;AAED,WAAO;AAAA,MACN,KAAK,YAAY;AAChB,kBAAU;AACV,iBAAA;AACA,cAAM,MAAM,CAAC,GAAG,QAAQ,QAAQ;AAChC,gBAAQ,MAAA;AACR,cAAM,QAAQ,WAAW,IAAI,IAAI,OAAM,MAAK;AAC3C,cAAI;AACH,kBAAM,IAAI,MAAM;AAChB,kBAAM,GAAG,IAAA;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACD,CAAC,CAAC;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AACD;"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Database = require("@contember/database");
4
4
  const notifyChannel = require("../utils/notifyChannel.cjs");
5
5
  class TriggerPayloadPersister {
6
- constructor(mapper, client, providers, projectSlug, stageId, schemaId, identityId, userInfo) {
6
+ constructor(mapper, client, providers, projectSlug, stageId, schemaId, identityId, userInfo, triggeredActionsCollector) {
7
7
  this.mapper = mapper;
8
8
  this.client = client;
9
9
  this.providers = providers;
@@ -12,33 +12,45 @@ class TriggerPayloadPersister {
12
12
  this.schemaId = schemaId;
13
13
  this.identityId = identityId;
14
14
  this.userInfo = userInfo;
15
+ this.triggeredActionsCollector = triggeredActionsCollector;
15
16
  }
16
17
  async persist(trigger, payloads) {
17
18
  const chunkSize = 100;
18
19
  if (!this.schemaId) {
19
20
  throw new Error("Schema id is not set");
20
21
  }
22
+ const collector = this.triggeredActionsCollector;
21
23
  for (let i = 0; i < payloads.length; i += chunkSize) {
22
24
  const chunk = payloads.slice(i, i + chunkSize);
23
- await Database.InsertBuilder.create().into("actions_event").values(chunk.map((it) => ({
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: trigger.priority ?? 0,
35
- payload: it,
36
- resolved_at: null,
37
- last_state_change: "now",
38
- identity_id: this.identityId,
39
- ip_address: this.userInfo.ipAddress,
40
- user_agent: this.userInfo.userAgent
41
- }))).execute(this.client);
25
+ const collected = collector ? [] : void 0;
26
+ const rows = chunk.map((it) => {
27
+ const id = this.providers.uuid();
28
+ const transactionId = this.mapper.transactionId;
29
+ collected?.push({ id, trigger: trigger.name, target: trigger.target, transactionId });
30
+ return {
31
+ id,
32
+ transaction_id: transactionId,
33
+ created_at: "now",
34
+ visible_at: "now",
35
+ num_retries: 0,
36
+ state: "created",
37
+ stage_id: this.stageId,
38
+ schema_id: this.schemaId,
39
+ target: trigger.target,
40
+ trigger: trigger.name,
41
+ priority: trigger.priority ?? 0,
42
+ payload: it,
43
+ resolved_at: null,
44
+ last_state_change: "now",
45
+ identity_id: this.identityId,
46
+ ip_address: this.userInfo.ipAddress,
47
+ user_agent: this.userInfo.userAgent
48
+ };
49
+ });
50
+ await Database.InsertBuilder.create().into("actions_event").values(rows).execute(this.client);
51
+ if (collected && collected.length > 0) {
52
+ collector.add(collected);
53
+ }
42
54
  }
43
55
  await notifyChannel.notify(this.client, this.projectSlug);
44
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerPayloadPersister.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerPayloadPersister.ts"],"sourcesContent":["import { Client, InsertBuilder } from '@contember/database'\nimport { Mapper } from '@contember/engine-content-api'\nimport { Actions, ActionsPayload } from '@contember/schema'\nimport { EventRow } from '../model/types'\nimport { notify } from '../utils/notifyChannel'\n\ntype EventRowToInsert = Omit<EventRow, 'created_at' | 'visible_at' | 'last_state_change' | 'log'> & {\n\tcreated_at: string | Date\n\tvisible_at: string | Date\n\tlast_state_change: string | Date\n}\n\nexport class TriggerPayloadPersister {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly client: Client,\n\t\tprivate readonly providers: { uuid: () => string },\n\t\tprivate readonly projectSlug: string,\n\t\tprivate readonly stageId: string,\n\t\tprivate readonly schemaId: number | undefined,\n\t\tprivate readonly identityId: string,\n\t\tprivate readonly userInfo: { ipAddress: string | null; userAgent: string | null },\n\t) {\n\t}\n\n\tpublic async persist(trigger: Actions.AnyTrigger, payloads: ActionsPayload.AnyEventPayload[]): Promise<void> {\n\t\tconst chunkSize = 100\n\t\tif (!this.schemaId) {\n\t\t\tthrow new Error('Schema id is not set')\n\t\t}\n\t\tfor (let i = 0; i < payloads.length; i += chunkSize) {\n\t\t\tconst chunk = payloads.slice(i, i + chunkSize)\n\t\t\tawait InsertBuilder.create()\n\t\t\t\t.into('actions_event')\n\t\t\t\t.values(chunk.map((it): EventRowToInsert => ({\n\t\t\t\t\tid: this.providers.uuid(),\n\t\t\t\t\ttransaction_id: this.mapper.transactionId,\n\t\t\t\t\tcreated_at: 'now',\n\t\t\t\t\tvisible_at: 'now',\n\t\t\t\t\tnum_retries: 0,\n\t\t\t\t\tstate: 'created',\n\t\t\t\t\tstage_id: this.stageId,\n\t\t\t\t\tschema_id: this.schemaId!,\n\t\t\t\t\ttarget: trigger.target,\n\t\t\t\t\ttrigger: trigger.name,\n\t\t\t\t\tpriority: trigger.priority ?? 0,\n\t\t\t\t\tpayload: it,\n\t\t\t\t\tresolved_at: null,\n\t\t\t\t\tlast_state_change: 'now',\n\t\t\t\t\tidentity_id: this.identityId,\n\t\t\t\t\tip_address: this.userInfo.ipAddress,\n\t\t\t\t\tuser_agent: this.userInfo.userAgent,\n\t\t\t\t})))\n\t\t\t\t.execute(this.client)\n\t\t}\n\n\t\tawait notify(this.client, this.projectSlug)\n\t}\n}\n"],"names":["InsertBuilder","notify"],"mappings":";;;;AAYO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QACA,QACA,WACA,aACA,SACA,UACA,YACA,UAChB;AARgB,SAAA,SAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AACA,SAAA,cAAA;AACA,SAAA,UAAA;AACA,SAAA,WAAA;AACA,SAAA,aAAA;AACA,SAAA,WAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAA6B,UAA2D;AAC5G,UAAM,YAAY;AAClB,QAAI,CAAC,KAAK,UAAU;AACnB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACvC;AACA,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,SAAS,MAAM,GAAG,IAAI,SAAS;AAC7C,YAAMA,SAAAA,cAAc,OAAA,EAClB,KAAK,eAAe,EACpB,OAAO,MAAM,IAAI,CAAC,QAA0B;AAAA,QAC5C,IAAI,KAAK,UAAU,KAAA;AAAA,QACnB,gBAAgB,KAAK,OAAO;AAAA,QAC5B,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,UAAU,KAAK;AAAA,QACf,WAAW,KAAK;AAAA,QAChB,QAAQ,QAAQ;AAAA,QAChB,SAAS,QAAQ;AAAA,QACjB,UAAU,QAAQ,YAAY;AAAA,QAC9B,SAAS;AAAA,QACT,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,YAAY,KAAK,SAAS;AAAA,QAC1B,YAAY,KAAK,SAAS;AAAA,MAAA,EACzB,CAAC,EACF,QAAQ,KAAK,MAAM;AAAA,IACtB;AAEA,UAAMC,cAAAA,OAAO,KAAK,QAAQ,KAAK,WAAW;AAAA,EAC3C;AACD;;"}
1
+ {"version":3,"file":"TriggerPayloadPersister.cjs","sources":["../../../../../packages/engine-actions/src/triggers/TriggerPayloadPersister.ts"],"sourcesContent":["import { Client, InsertBuilder } from '@contember/database'\nimport { Mapper, TriggeredActionEvent, TriggeredActionsCollector } from '@contember/engine-content-api'\nimport { Actions, ActionsPayload } from '@contember/schema'\nimport { EventRow } from '../model/types'\nimport { notify } from '../utils/notifyChannel'\n\ntype EventRowToInsert = Omit<EventRow, 'created_at' | 'visible_at' | 'last_state_change' | 'log'> & {\n\tcreated_at: string | Date\n\tvisible_at: string | Date\n\tlast_state_change: string | Date\n}\n\nexport class TriggerPayloadPersister {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly client: Client,\n\t\tprivate readonly providers: { uuid: () => string },\n\t\tprivate readonly projectSlug: string,\n\t\tprivate readonly stageId: string,\n\t\tprivate readonly schemaId: number | undefined,\n\t\tprivate readonly identityId: string,\n\t\tprivate readonly userInfo: { ipAddress: string | null; userAgent: string | null },\n\t\tprivate readonly triggeredActionsCollector: TriggeredActionsCollector | undefined,\n\t) {\n\t}\n\n\tpublic async persist(trigger: Actions.AnyTrigger, payloads: ActionsPayload.AnyEventPayload[]): Promise<void> {\n\t\tconst chunkSize = 100\n\t\tif (!this.schemaId) {\n\t\t\tthrow new Error('Schema id is not set')\n\t\t}\n\t\tconst collector = this.triggeredActionsCollector\n\t\tfor (let i = 0; i < payloads.length; i += chunkSize) {\n\t\t\tconst chunk = payloads.slice(i, i + chunkSize)\n\t\t\tconst collected: TriggeredActionEvent[] | undefined = collector ? [] : undefined\n\t\t\tconst rows = chunk.map((it): EventRowToInsert => {\n\t\t\t\tconst id = this.providers.uuid()\n\t\t\t\tconst transactionId = this.mapper.transactionId\n\t\t\t\tcollected?.push({ id, trigger: trigger.name, target: trigger.target, transactionId })\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\ttransaction_id: transactionId,\n\t\t\t\t\tcreated_at: 'now',\n\t\t\t\t\tvisible_at: 'now',\n\t\t\t\t\tnum_retries: 0,\n\t\t\t\t\tstate: 'created',\n\t\t\t\t\tstage_id: this.stageId,\n\t\t\t\t\tschema_id: this.schemaId!,\n\t\t\t\t\ttarget: trigger.target,\n\t\t\t\t\ttrigger: trigger.name,\n\t\t\t\t\tpriority: trigger.priority ?? 0,\n\t\t\t\t\tpayload: it,\n\t\t\t\t\tresolved_at: null,\n\t\t\t\t\tlast_state_change: 'now',\n\t\t\t\t\tidentity_id: this.identityId,\n\t\t\t\t\tip_address: this.userInfo.ipAddress,\n\t\t\t\t\tuser_agent: this.userInfo.userAgent,\n\t\t\t\t}\n\t\t\t})\n\t\t\tawait InsertBuilder.create()\n\t\t\t\t.into('actions_event')\n\t\t\t\t.values(rows)\n\t\t\t\t.execute(this.client)\n\n\t\t\tif (collected && collected.length > 0) {\n\t\t\t\tcollector!.add(collected)\n\t\t\t}\n\t\t}\n\n\t\tawait notify(this.client, this.projectSlug)\n\t}\n}\n"],"names":["InsertBuilder","notify"],"mappings":";;;;AAYO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QACA,QACA,WACA,aACA,SACA,UACA,YACA,UACA,2BAChB;AATgB,SAAA,SAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AACA,SAAA,cAAA;AACA,SAAA,UAAA;AACA,SAAA,WAAA;AACA,SAAA,aAAA;AACA,SAAA,WAAA;AACA,SAAA,4BAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAA6B,UAA2D;AAC5G,UAAM,YAAY;AAClB,QAAI,CAAC,KAAK,UAAU;AACnB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACvC;AACA,UAAM,YAAY,KAAK;AACvB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,SAAS,MAAM,GAAG,IAAI,SAAS;AAC7C,YAAM,YAAgD,YAAY,CAAA,IAAK;AACvE,YAAM,OAAO,MAAM,IAAI,CAAC,OAAyB;AAChD,cAAM,KAAK,KAAK,UAAU,KAAA;AAC1B,cAAM,gBAAgB,KAAK,OAAO;AAClC,mBAAW,KAAK,EAAE,IAAI,SAAS,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,cAAA,CAAe;AACpF,eAAO;AAAA,UACN;AAAA,UACA,gBAAgB;AAAA,UAChB,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU,KAAK;AAAA,UACf,WAAW,KAAK;AAAA,UAChB,QAAQ,QAAQ;AAAA,UAChB,SAAS,QAAQ;AAAA,UACjB,UAAU,QAAQ,YAAY;AAAA,UAC9B,SAAS;AAAA,UACT,aAAa;AAAA,UACb,mBAAmB;AAAA,UACnB,aAAa,KAAK;AAAA,UAClB,YAAY,KAAK,SAAS;AAAA,UAC1B,YAAY,KAAK,SAAS;AAAA,QAAA;AAAA,MAE5B,CAAC;AACD,YAAMA,uBAAc,SAClB,KAAK,eAAe,EACpB,OAAO,IAAI,EACX,QAAQ,KAAK,MAAM;AAErB,UAAI,aAAa,UAAU,SAAS,GAAG;AACtC,kBAAW,IAAI,SAAS;AAAA,MACzB;AAAA,IACD;AAEA,UAAMC,cAAAA,OAAO,KAAK,QAAQ,KAAK,WAAW;AAAA,EAC3C;AACD;;"}
@@ -1,7 +1,7 @@
1
1
  import { InsertBuilder as InsertBuilder$1 } from "@contember/database";
2
2
  import { notify } from "../utils/notifyChannel.js";
3
3
  class TriggerPayloadPersister {
4
- constructor(mapper, client, providers, projectSlug, stageId, schemaId, identityId, userInfo) {
4
+ constructor(mapper, client, providers, projectSlug, stageId, schemaId, identityId, userInfo, triggeredActionsCollector) {
5
5
  this.mapper = mapper;
6
6
  this.client = client;
7
7
  this.providers = providers;
@@ -10,33 +10,45 @@ class TriggerPayloadPersister {
10
10
  this.schemaId = schemaId;
11
11
  this.identityId = identityId;
12
12
  this.userInfo = userInfo;
13
+ this.triggeredActionsCollector = triggeredActionsCollector;
13
14
  }
14
15
  async persist(trigger, payloads) {
15
16
  const chunkSize = 100;
16
17
  if (!this.schemaId) {
17
18
  throw new Error("Schema id is not set");
18
19
  }
20
+ const collector = this.triggeredActionsCollector;
19
21
  for (let i = 0; i < payloads.length; i += chunkSize) {
20
22
  const chunk = payloads.slice(i, i + chunkSize);
21
- await InsertBuilder$1.create().into("actions_event").values(chunk.map((it) => ({
22
- id: this.providers.uuid(),
23
- transaction_id: this.mapper.transactionId,
24
- created_at: "now",
25
- visible_at: "now",
26
- num_retries: 0,
27
- state: "created",
28
- stage_id: this.stageId,
29
- schema_id: this.schemaId,
30
- target: trigger.target,
31
- trigger: trigger.name,
32
- priority: trigger.priority ?? 0,
33
- payload: it,
34
- resolved_at: null,
35
- last_state_change: "now",
36
- identity_id: this.identityId,
37
- ip_address: this.userInfo.ipAddress,
38
- user_agent: this.userInfo.userAgent
39
- }))).execute(this.client);
23
+ const collected = collector ? [] : void 0;
24
+ const rows = chunk.map((it) => {
25
+ const id = this.providers.uuid();
26
+ const transactionId = this.mapper.transactionId;
27
+ collected?.push({ id, trigger: trigger.name, target: trigger.target, transactionId });
28
+ return {
29
+ id,
30
+ transaction_id: transactionId,
31
+ created_at: "now",
32
+ visible_at: "now",
33
+ num_retries: 0,
34
+ state: "created",
35
+ stage_id: this.stageId,
36
+ schema_id: this.schemaId,
37
+ target: trigger.target,
38
+ trigger: trigger.name,
39
+ priority: trigger.priority ?? 0,
40
+ payload: it,
41
+ resolved_at: null,
42
+ last_state_change: "now",
43
+ identity_id: this.identityId,
44
+ ip_address: this.userInfo.ipAddress,
45
+ user_agent: this.userInfo.userAgent
46
+ };
47
+ });
48
+ await InsertBuilder$1.create().into("actions_event").values(rows).execute(this.client);
49
+ if (collected && collected.length > 0) {
50
+ collector.add(collected);
51
+ }
40
52
  }
41
53
  await notify(this.client, this.projectSlug);
42
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerPayloadPersister.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerPayloadPersister.ts"],"sourcesContent":["import { Client, InsertBuilder } from '@contember/database'\nimport { Mapper } from '@contember/engine-content-api'\nimport { Actions, ActionsPayload } from '@contember/schema'\nimport { EventRow } from '../model/types'\nimport { notify } from '../utils/notifyChannel'\n\ntype EventRowToInsert = Omit<EventRow, 'created_at' | 'visible_at' | 'last_state_change' | 'log'> & {\n\tcreated_at: string | Date\n\tvisible_at: string | Date\n\tlast_state_change: string | Date\n}\n\nexport class TriggerPayloadPersister {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly client: Client,\n\t\tprivate readonly providers: { uuid: () => string },\n\t\tprivate readonly projectSlug: string,\n\t\tprivate readonly stageId: string,\n\t\tprivate readonly schemaId: number | undefined,\n\t\tprivate readonly identityId: string,\n\t\tprivate readonly userInfo: { ipAddress: string | null; userAgent: string | null },\n\t) {\n\t}\n\n\tpublic async persist(trigger: Actions.AnyTrigger, payloads: ActionsPayload.AnyEventPayload[]): Promise<void> {\n\t\tconst chunkSize = 100\n\t\tif (!this.schemaId) {\n\t\t\tthrow new Error('Schema id is not set')\n\t\t}\n\t\tfor (let i = 0; i < payloads.length; i += chunkSize) {\n\t\t\tconst chunk = payloads.slice(i, i + chunkSize)\n\t\t\tawait InsertBuilder.create()\n\t\t\t\t.into('actions_event')\n\t\t\t\t.values(chunk.map((it): EventRowToInsert => ({\n\t\t\t\t\tid: this.providers.uuid(),\n\t\t\t\t\ttransaction_id: this.mapper.transactionId,\n\t\t\t\t\tcreated_at: 'now',\n\t\t\t\t\tvisible_at: 'now',\n\t\t\t\t\tnum_retries: 0,\n\t\t\t\t\tstate: 'created',\n\t\t\t\t\tstage_id: this.stageId,\n\t\t\t\t\tschema_id: this.schemaId!,\n\t\t\t\t\ttarget: trigger.target,\n\t\t\t\t\ttrigger: trigger.name,\n\t\t\t\t\tpriority: trigger.priority ?? 0,\n\t\t\t\t\tpayload: it,\n\t\t\t\t\tresolved_at: null,\n\t\t\t\t\tlast_state_change: 'now',\n\t\t\t\t\tidentity_id: this.identityId,\n\t\t\t\t\tip_address: this.userInfo.ipAddress,\n\t\t\t\t\tuser_agent: this.userInfo.userAgent,\n\t\t\t\t})))\n\t\t\t\t.execute(this.client)\n\t\t}\n\n\t\tawait notify(this.client, this.projectSlug)\n\t}\n}\n"],"names":["InsertBuilder"],"mappings":";;AAYO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QACA,QACA,WACA,aACA,SACA,UACA,YACA,UAChB;AARgB,SAAA,SAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AACA,SAAA,cAAA;AACA,SAAA,UAAA;AACA,SAAA,WAAA;AACA,SAAA,aAAA;AACA,SAAA,WAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAA6B,UAA2D;AAC5G,UAAM,YAAY;AAClB,QAAI,CAAC,KAAK,UAAU;AACnB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACvC;AACA,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,SAAS,MAAM,GAAG,IAAI,SAAS;AAC7C,YAAMA,gBAAc,OAAA,EAClB,KAAK,eAAe,EACpB,OAAO,MAAM,IAAI,CAAC,QAA0B;AAAA,QAC5C,IAAI,KAAK,UAAU,KAAA;AAAA,QACnB,gBAAgB,KAAK,OAAO;AAAA,QAC5B,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,UAAU,KAAK;AAAA,QACf,WAAW,KAAK;AAAA,QAChB,QAAQ,QAAQ;AAAA,QAChB,SAAS,QAAQ;AAAA,QACjB,UAAU,QAAQ,YAAY;AAAA,QAC9B,SAAS;AAAA,QACT,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,YAAY,KAAK,SAAS;AAAA,QAC1B,YAAY,KAAK,SAAS;AAAA,MAAA,EACzB,CAAC,EACF,QAAQ,KAAK,MAAM;AAAA,IACtB;AAEA,UAAM,OAAO,KAAK,QAAQ,KAAK,WAAW;AAAA,EAC3C;AACD;"}
1
+ {"version":3,"file":"TriggerPayloadPersister.js","sources":["../../../../../packages/engine-actions/src/triggers/TriggerPayloadPersister.ts"],"sourcesContent":["import { Client, InsertBuilder } from '@contember/database'\nimport { Mapper, TriggeredActionEvent, TriggeredActionsCollector } from '@contember/engine-content-api'\nimport { Actions, ActionsPayload } from '@contember/schema'\nimport { EventRow } from '../model/types'\nimport { notify } from '../utils/notifyChannel'\n\ntype EventRowToInsert = Omit<EventRow, 'created_at' | 'visible_at' | 'last_state_change' | 'log'> & {\n\tcreated_at: string | Date\n\tvisible_at: string | Date\n\tlast_state_change: string | Date\n}\n\nexport class TriggerPayloadPersister {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly client: Client,\n\t\tprivate readonly providers: { uuid: () => string },\n\t\tprivate readonly projectSlug: string,\n\t\tprivate readonly stageId: string,\n\t\tprivate readonly schemaId: number | undefined,\n\t\tprivate readonly identityId: string,\n\t\tprivate readonly userInfo: { ipAddress: string | null; userAgent: string | null },\n\t\tprivate readonly triggeredActionsCollector: TriggeredActionsCollector | undefined,\n\t) {\n\t}\n\n\tpublic async persist(trigger: Actions.AnyTrigger, payloads: ActionsPayload.AnyEventPayload[]): Promise<void> {\n\t\tconst chunkSize = 100\n\t\tif (!this.schemaId) {\n\t\t\tthrow new Error('Schema id is not set')\n\t\t}\n\t\tconst collector = this.triggeredActionsCollector\n\t\tfor (let i = 0; i < payloads.length; i += chunkSize) {\n\t\t\tconst chunk = payloads.slice(i, i + chunkSize)\n\t\t\tconst collected: TriggeredActionEvent[] | undefined = collector ? [] : undefined\n\t\t\tconst rows = chunk.map((it): EventRowToInsert => {\n\t\t\t\tconst id = this.providers.uuid()\n\t\t\t\tconst transactionId = this.mapper.transactionId\n\t\t\t\tcollected?.push({ id, trigger: trigger.name, target: trigger.target, transactionId })\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\ttransaction_id: transactionId,\n\t\t\t\t\tcreated_at: 'now',\n\t\t\t\t\tvisible_at: 'now',\n\t\t\t\t\tnum_retries: 0,\n\t\t\t\t\tstate: 'created',\n\t\t\t\t\tstage_id: this.stageId,\n\t\t\t\t\tschema_id: this.schemaId!,\n\t\t\t\t\ttarget: trigger.target,\n\t\t\t\t\ttrigger: trigger.name,\n\t\t\t\t\tpriority: trigger.priority ?? 0,\n\t\t\t\t\tpayload: it,\n\t\t\t\t\tresolved_at: null,\n\t\t\t\t\tlast_state_change: 'now',\n\t\t\t\t\tidentity_id: this.identityId,\n\t\t\t\t\tip_address: this.userInfo.ipAddress,\n\t\t\t\t\tuser_agent: this.userInfo.userAgent,\n\t\t\t\t}\n\t\t\t})\n\t\t\tawait InsertBuilder.create()\n\t\t\t\t.into('actions_event')\n\t\t\t\t.values(rows)\n\t\t\t\t.execute(this.client)\n\n\t\t\tif (collected && collected.length > 0) {\n\t\t\t\tcollector!.add(collected)\n\t\t\t}\n\t\t}\n\n\t\tawait notify(this.client, this.projectSlug)\n\t}\n}\n"],"names":["InsertBuilder"],"mappings":";;AAYO,MAAM,wBAAwB;AAAA,EACpC,YACkB,QACA,QACA,WACA,aACA,SACA,UACA,YACA,UACA,2BAChB;AATgB,SAAA,SAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AACA,SAAA,cAAA;AACA,SAAA,UAAA;AACA,SAAA,WAAA;AACA,SAAA,aAAA;AACA,SAAA,WAAA;AACA,SAAA,4BAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAA6B,UAA2D;AAC5G,UAAM,YAAY;AAClB,QAAI,CAAC,KAAK,UAAU;AACnB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACvC;AACA,UAAM,YAAY,KAAK;AACvB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,SAAS,MAAM,GAAG,IAAI,SAAS;AAC7C,YAAM,YAAgD,YAAY,CAAA,IAAK;AACvE,YAAM,OAAO,MAAM,IAAI,CAAC,OAAyB;AAChD,cAAM,KAAK,KAAK,UAAU,KAAA;AAC1B,cAAM,gBAAgB,KAAK,OAAO;AAClC,mBAAW,KAAK,EAAE,IAAI,SAAS,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,cAAA,CAAe;AACpF,eAAO;AAAA,UACN;AAAA,UACA,gBAAgB;AAAA,UAChB,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU,KAAK;AAAA,UACf,WAAW,KAAK;AAAA,UAChB,QAAQ,QAAQ;AAAA,UAChB,SAAS,QAAQ;AAAA,UACjB,UAAU,QAAQ,YAAY;AAAA,UAC9B,SAAS;AAAA,UACT,aAAa;AAAA,UACb,mBAAmB;AAAA,UACnB,aAAa,KAAK;AAAA,UAClB,YAAY,KAAK,SAAS;AAAA,UAC1B,YAAY,KAAK,SAAS;AAAA,QAAA;AAAA,MAE5B,CAAC;AACD,YAAMA,gBAAc,SAClB,KAAK,eAAe,EACpB,OAAO,IAAI,EACX,QAAQ,KAAK,MAAM;AAErB,UAAI,aAAa,UAAU,SAAS,GAAG;AACtC,kBAAW,IAAI,SAAS;AAAA,MACzB;AAAA,IACD;AAEA,UAAM,OAAO,KAAK,QAAQ,KAAK,WAAW;AAAA,EAC3C;AACD;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lazyDispatchWorker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyDispatchWorker.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/lazyDispatchWorker.test.ts"],"names":[],"mappings":""}