@webiny/api-workflows 0.0.0-unstable.e2758ee1cf → 0.0.0-unstable.e6f0dc8ca7

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 (111) hide show
  1. package/features/internal/GetUserTeams/feature.d.ts +4 -1
  2. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.d.ts +1 -1
  3. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js +1 -1
  4. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js.map +1 -1
  5. package/features/notifications/ListNotificationTypes/feature.d.ts +4 -1
  6. package/features/notifications/NotificationTransport/feature.d.ts +4 -1
  7. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.d.ts +2 -2
  8. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js +2 -2
  9. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js.map +1 -1
  10. package/features/workflow/CreateWorkflow/events.d.ts +2 -2
  11. package/features/workflow/CreateWorkflow/events.js +1 -1
  12. package/features/workflow/CreateWorkflow/events.js.map +1 -1
  13. package/features/workflow/CreateWorkflow/feature.d.ts +4 -1
  14. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.d.ts +2 -2
  15. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js +2 -2
  16. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js.map +1 -1
  17. package/features/workflow/DeleteWorkflow/events.d.ts +2 -2
  18. package/features/workflow/DeleteWorkflow/events.js +1 -1
  19. package/features/workflow/DeleteWorkflow/events.js.map +1 -1
  20. package/features/workflow/DeleteWorkflow/feature.d.ts +4 -1
  21. package/features/workflow/GetWorkflow/feature.d.ts +4 -1
  22. package/features/workflow/ListWorkflows/feature.d.ts +4 -1
  23. package/features/workflow/StoreWorkflow/feature.d.ts +4 -1
  24. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.d.ts +2 -2
  25. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js +2 -2
  26. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js.map +1 -1
  27. package/features/workflow/UpdateWorkflow/events.d.ts +2 -2
  28. package/features/workflow/UpdateWorkflow/events.js +1 -1
  29. package/features/workflow/UpdateWorkflow/events.js.map +1 -1
  30. package/features/workflow/UpdateWorkflow/feature.d.ts +4 -1
  31. package/features/workflowState/ApproveWorkflowStateStep/events.d.ts +2 -2
  32. package/features/workflowState/ApproveWorkflowStateStep/events.js +1 -1
  33. package/features/workflowState/ApproveWorkflowStateStep/events.js.map +1 -1
  34. package/features/workflowState/ApproveWorkflowStateStep/feature.d.ts +4 -1
  35. package/features/workflowState/CancelWorkflowState/events.d.ts +2 -2
  36. package/features/workflowState/CancelWorkflowState/events.js +1 -1
  37. package/features/workflowState/CancelWorkflowState/events.js.map +1 -1
  38. package/features/workflowState/CancelWorkflowState/feature.d.ts +4 -1
  39. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.d.ts +2 -2
  40. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +2 -2
  41. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -1
  42. package/features/workflowState/CreateWorkflowState/events.d.ts +2 -2
  43. package/features/workflowState/CreateWorkflowState/events.js +1 -1
  44. package/features/workflowState/CreateWorkflowState/events.js.map +1 -1
  45. package/features/workflowState/CreateWorkflowState/feature.d.ts +4 -1
  46. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.d.ts +2 -2
  47. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +2 -2
  48. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -1
  49. package/features/workflowState/DeleteTargetWorkflowState/events.d.ts +2 -2
  50. package/features/workflowState/DeleteTargetWorkflowState/events.js +1 -1
  51. package/features/workflowState/DeleteTargetWorkflowState/events.js.map +1 -1
  52. package/features/workflowState/DeleteTargetWorkflowState/feature.d.ts +4 -1
  53. package/features/workflowState/DeleteWorkflowState/feature.d.ts +4 -1
  54. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.d.ts +1 -1
  55. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +1 -1
  56. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -1
  57. package/features/workflowState/GetTargetWorkflowState/feature.d.ts +4 -1
  58. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.d.ts +1 -1
  59. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +1 -1
  60. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -1
  61. package/features/workflowState/GetWorkflowState/feature.d.ts +4 -1
  62. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.d.ts +1 -1
  63. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js +1 -1
  64. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js.map +1 -1
  65. package/features/workflowState/ListOwnWorkflowStates/feature.d.ts +4 -1
  66. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.d.ts +1 -1
  67. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js +1 -1
  68. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js.map +1 -1
  69. package/features/workflowState/ListRequestedWorkflowStates/feature.d.ts +4 -1
  70. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.d.ts +1 -1
  71. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +1 -1
  72. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -1
  73. package/features/workflowState/ListWorkflowStates/feature.d.ts +4 -1
  74. package/features/workflowState/README.md +2 -2
  75. package/features/workflowState/RejectWorkflowStateStep/events.d.ts +2 -2
  76. package/features/workflowState/RejectWorkflowStateStep/events.js +1 -1
  77. package/features/workflowState/RejectWorkflowStateStep/events.js.map +1 -1
  78. package/features/workflowState/RejectWorkflowStateStep/feature.d.ts +4 -1
  79. package/features/workflowState/StartWorkflowStateStep/events.d.ts +2 -2
  80. package/features/workflowState/StartWorkflowStateStep/events.js +1 -1
  81. package/features/workflowState/StartWorkflowStateStep/events.js.map +1 -1
  82. package/features/workflowState/StartWorkflowStateStep/feature.d.ts +4 -1
  83. package/features/workflowState/TakeOverWorkflowStateStep/events.d.ts +2 -2
  84. package/features/workflowState/TakeOverWorkflowStateStep/events.js +1 -1
  85. package/features/workflowState/TakeOverWorkflowStateStep/events.js.map +1 -1
  86. package/features/workflowState/TakeOverWorkflowStateStep/feature.d.ts +4 -1
  87. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.d.ts +2 -2
  88. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +2 -2
  89. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -1
  90. package/features/workflowState/UpdateWorkflowState/events.d.ts +2 -2
  91. package/features/workflowState/UpdateWorkflowState/events.js +1 -1
  92. package/features/workflowState/UpdateWorkflowState/events.js.map +1 -1
  93. package/features/workflowState/UpdateWorkflowState/feature.d.ts +4 -1
  94. package/graphql/validation/approveWorkflowState.d.ts +1 -7
  95. package/graphql/validation/cancelWorkflowState.d.ts +1 -5
  96. package/graphql/validation/createWorkflowState.d.ts +1 -9
  97. package/graphql/validation/deleteWorkflow.d.ts +1 -7
  98. package/graphql/validation/getTargetWorkflowState.d.ts +1 -7
  99. package/graphql/validation/getWorkflow.d.ts +1 -7
  100. package/graphql/validation/getWorkflowState.d.ts +1 -5
  101. package/graphql/validation/listWorkflowStates.d.ts +14 -96
  102. package/graphql/validation/listWorkflows.d.ts +6 -36
  103. package/graphql/validation/rejectWorkflowState.d.ts +1 -7
  104. package/graphql/validation/startWorkflowState.d.ts +1 -5
  105. package/graphql/validation/step.d.ts +8 -36
  106. package/graphql/validation/storeWorkflow.d.ts +14 -86
  107. package/graphql/validation/takeOverWorkflowStateStep.d.ts +1 -5
  108. package/graphql/validation/workflow.d.ts +13 -60
  109. package/index.js +1 -1
  110. package/index.js.map +1 -1
  111. package/package.json +22 -19
@@ -1 +1,4 @@
1
- export declare const GetUserTeamsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetUserTeamsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,4 +1,4 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
2
  import { ListNotificationTypesRepository, ListNotificationTypesUseCase as UseCase } from "./abstractions.js";
3
3
  declare class ListNotificationTypesUseCaseImpl implements UseCase.Interface {
4
4
  private identityContext;
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
3
  import { ListNotificationTypesRepository, ListNotificationTypesUseCase as UseCase } from "./abstractions.js";
4
4
  import { WORKFLOWS_PERMISSION } from "../../../constants.js";
5
5
  import { NotificationAuthorizedError } from "../../../domain/notifications/errors.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","ListNotificationTypesRepository","ListNotificationTypesUseCase","UseCase","WORKFLOWS_PERMISSION","NotificationAuthorizedError","ListNotificationTypesUseCaseImpl","constructor","identityContext","repository","execute","hasAccess","ensureAccess","isFail","fail","error","result","ok","value","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["ListNotificationTypesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport {\n ListNotificationTypesRepository,\n ListNotificationTypesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { NotificationAuthorizedError } from \"~/domain/notifications/errors.js\";\n\nclass ListNotificationTypesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private identityContext: IdentityContext.Interface,\n private repository: ListNotificationTypesRepository.Interface\n ) {}\n\n public async execute(): UseCase.Return {\n const hasAccess = await this.ensureAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const result = await this.repository.execute();\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n\n private async ensureAccess(): Promise<Result<void, NotificationAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new NotificationAuthorizedError(\"You cannot list notifications.\"));\n }\n}\n\nexport const ListNotificationTypesUseCase = UseCase.createImplementation({\n implementation: ListNotificationTypesUseCaseImpl,\n dependencies: [IdentityContext, ListNotificationTypesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SACIC,+BAA+B,EAC/BC,4BAA4B,IAAIC,OAAO;AAE3C,SAASC,oBAAoB;AAE7B,SAASC,2BAA2B;AAEpC,MAAMC,gCAAgC,CAA8B;EACzDC,WAAWA,CACNC,eAA0C,EAC1CC,UAAqD,EAC/D;IAAA,KAFUD,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAqD,GAArDA,UAAqD;EAC9D;EAEH,MAAaC,OAAOA,CAAA,EAAmB;IACnC,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAC3C,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOd,MAAM,CAACe,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,UAAU,CAACC,OAAO,CAAC,CAAC;IAC9C,IAAIM,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,OAAOjB,MAAM,CAACkB,EAAE,CAACD,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAAcN,YAAYA,CAAA,EAAuD;IAC7E,MAAMO,WAAW,GACb,MAAM,IAAI,CAACX,eAAe,CAACY,cAAc,CACrChB,oBACJ,CAAC;IAEL,KAAK,MAAMiB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOvB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAII,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOxB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOlB,MAAM,CAACe,IAAI,CAAC,IAAIT,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;EACzF;AACJ;AAEA,OAAO,MAAMH,4BAA4B,GAAGC,OAAO,CAACqB,oBAAoB,CAAC;EACrEC,cAAc,EAAEnB,gCAAgC;EAChDoB,YAAY,EAAE,CAAC1B,eAAe,EAAEC,+BAA+B;AACnE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","ListNotificationTypesRepository","ListNotificationTypesUseCase","UseCase","WORKFLOWS_PERMISSION","NotificationAuthorizedError","ListNotificationTypesUseCaseImpl","constructor","identityContext","repository","execute","hasAccess","ensureAccess","isFail","fail","error","result","ok","value","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["ListNotificationTypesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport {\n ListNotificationTypesRepository,\n ListNotificationTypesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { NotificationAuthorizedError } from \"~/domain/notifications/errors.js\";\n\nclass ListNotificationTypesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private identityContext: IdentityContext.Interface,\n private repository: ListNotificationTypesRepository.Interface\n ) {}\n\n public async execute(): UseCase.Return {\n const hasAccess = await this.ensureAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const result = await this.repository.execute();\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n\n private async ensureAccess(): Promise<Result<void, NotificationAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new NotificationAuthorizedError(\"You cannot list notifications.\"));\n }\n}\n\nexport const ListNotificationTypesUseCase = UseCase.createImplementation({\n implementation: ListNotificationTypesUseCaseImpl,\n dependencies: [IdentityContext, ListNotificationTypesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SACIC,+BAA+B,EAC/BC,4BAA4B,IAAIC,OAAO;AAE3C,SAASC,oBAAoB;AAE7B,SAASC,2BAA2B;AAEpC,MAAMC,gCAAgC,CAA8B;EACzDC,WAAWA,CACNC,eAA0C,EAC1CC,UAAqD,EAC/D;IAAA,KAFUD,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAqD,GAArDA,UAAqD;EAC9D;EAEH,MAAaC,OAAOA,CAAA,EAAmB;IACnC,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAC3C,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOd,MAAM,CAACe,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,UAAU,CAACC,OAAO,CAAC,CAAC;IAC9C,IAAIM,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,OAAOjB,MAAM,CAACkB,EAAE,CAACD,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAAcN,YAAYA,CAAA,EAAuD;IAC7E,MAAMO,WAAW,GACb,MAAM,IAAI,CAACX,eAAe,CAACY,cAAc,CACrChB,oBACJ,CAAC;IAEL,KAAK,MAAMiB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOvB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAII,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOxB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOlB,MAAM,CAACe,IAAI,CAAC,IAAIT,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;EACzF;AACJ;AAEA,OAAO,MAAMH,4BAA4B,GAAGC,OAAO,CAACqB,oBAAoB,CAAC;EACrEC,cAAc,EAAEnB,gCAAgC;EAChDoB,YAAY,EAAE,CAAC1B,eAAe,EAAEC,+BAA+B;AACnE,CAAC,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const ListNotificationTypesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListNotificationTypesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const NotificationTransportFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const NotificationTransportFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,5 +1,5 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from "./abstractions.js";
4
4
  declare class CreateWorkflowUseCaseImpl implements UseCase.Interface {
5
5
  private identityContext;
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from "./abstractions.js";
5
5
  import { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from "./events.js";
6
6
  import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","CreateWorkflowRepository","CreateWorkflowUseCase","UseCase","WorkflowAfterCreateEvent","WorkflowBeforeCreateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","CreateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass CreateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: CreateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeCreateEvent({\n workflow,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterCreateEvent({\n workflow: result.value,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const CreateWorkflowUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAkB;IAChD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOnB,MAAM,CAACoB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAEP,KAAK,CAACO,EAAE;MACZC,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,IAAI,EAAET,KAAK,CAACS,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACU;IACjB,CAAC;IAED,MAAM,IAAI,CAACb,cAAc,CAACc,OAAO,CAC7B,IAAIpB,yBAAyB,CAAC;MAC1Be,QAAQ;MACRN;IACJ,CAAC,CACL,CAAC;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAACf,cAAc,CAACc,OAAO,CAC7B,IAAIrB,wBAAwB,CAAC;MACzBgB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC8B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOzB,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOlC,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO9B,MAAM,CAACoB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC8B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE1B,yBAAyB;EACzC2B,YAAY,EAAE,CAACpC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","CreateWorkflowRepository","CreateWorkflowUseCase","UseCase","WorkflowAfterCreateEvent","WorkflowBeforeCreateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","CreateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass CreateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: CreateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeCreateEvent({\n workflow,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterCreateEvent({\n workflow: result.value,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const CreateWorkflowUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,cAAc,QAAQ,mDAAmD;AAClF,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAkB;IAChD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOnB,MAAM,CAACoB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAEP,KAAK,CAACO,EAAE;MACZC,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,IAAI,EAAET,KAAK,CAACS,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACU;IACjB,CAAC;IAED,MAAM,IAAI,CAACb,cAAc,CAACc,OAAO,CAC7B,IAAIpB,yBAAyB,CAAC;MAC1Be,QAAQ;MACRN;IACJ,CAAC,CACL,CAAC;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAACf,cAAc,CAACc,OAAO,CAC7B,IAAIrB,wBAAwB,CAAC;MACzBgB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC8B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOzB,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOlC,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO9B,MAAM,CAACoB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC8B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE1B,yBAAyB;EACzC2B,YAAY,EAAE,CAACpC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowBeforeCreatePayload, WorkflowAfterCreatePayload } from "./abstractions.js";
4
4
  export declare class WorkflowBeforeCreateEvent extends DomainEvent<WorkflowBeforeCreatePayload> {
5
5
  eventType: "workflow.beforeCreate";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  // Before create event
4
4
  export class WorkflowBeforeCreateEvent extends DomainEvent {
5
5
  eventType = "workflow.beforeCreate";
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeCreateEvent","eventType","getHandlerAbstraction","WorkflowBeforeCreateHandler","WorkflowAfterCreateEvent","WorkflowAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowBeforeCreatePayload, WorkflowAfterCreatePayload } from \"./abstractions.js\";\n\n// Before create event\nexport class WorkflowBeforeCreateEvent extends DomainEvent<WorkflowBeforeCreatePayload> {\n eventType = \"workflow.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeCreateHandler;\n }\n}\n\nexport const WorkflowBeforeCreateHandler = createAbstraction<\n IEventHandler<WorkflowBeforeCreateEvent>\n>(\"WorkflowBeforeCreateHandler\");\n\nexport namespace WorkflowBeforeCreateHandler {\n export type Interface = IEventHandler<WorkflowBeforeCreateEvent>;\n export type Event = WorkflowBeforeCreateEvent;\n}\n\n// After create event\nexport class WorkflowAfterCreateEvent extends DomainEvent<WorkflowAfterCreatePayload> {\n eventType = \"workflow.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterCreateHandler;\n }\n}\n\nexport const WorkflowAfterCreateHandler = createAbstraction<\n IEventHandler<WorkflowAfterCreateEvent>\n>(\"WorkflowAfterCreateHandler\");\n\nexport namespace WorkflowAfterCreateHandler {\n export type Interface = IEventHandler<WorkflowAfterCreateEvent>;\n export type Event = WorkflowAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAItE;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeCreateEvent","eventType","getHandlerAbstraction","WorkflowBeforeCreateHandler","WorkflowAfterCreateEvent","WorkflowAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowBeforeCreatePayload, WorkflowAfterCreatePayload } from \"./abstractions.js\";\n\n// Before create event\nexport class WorkflowBeforeCreateEvent extends DomainEvent<WorkflowBeforeCreatePayload> {\n eventType = \"workflow.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeCreateHandler;\n }\n}\n\nexport const WorkflowBeforeCreateHandler = createAbstraction<\n IEventHandler<WorkflowBeforeCreateEvent>\n>(\"WorkflowBeforeCreateHandler\");\n\nexport namespace WorkflowBeforeCreateHandler {\n export type Interface = IEventHandler<WorkflowBeforeCreateEvent>;\n export type Event = WorkflowBeforeCreateEvent;\n}\n\n// After create event\nexport class WorkflowAfterCreateEvent extends DomainEvent<WorkflowAfterCreatePayload> {\n eventType = \"workflow.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterCreateHandler;\n }\n}\n\nexport const WorkflowAfterCreateHandler = createAbstraction<\n IEventHandler<WorkflowAfterCreateEvent>\n>(\"WorkflowAfterCreateHandler\");\n\nexport namespace WorkflowAfterCreateHandler {\n export type Interface = IEventHandler<WorkflowAfterCreateEvent>;\n export type Event = WorkflowAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;AAI/E;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const CreateWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreateWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,5 +1,5 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
4
4
  import { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from "./abstractions.js";
5
5
  declare class DeleteWorkflowUseCaseImpl implements UseCase.Interface {
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
5
5
  import { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from "./abstractions.js";
6
6
  import { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from "./events.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository","DeleteWorkflowUseCase","UseCase","WorkflowAfterDeleteEvent","WorkflowBeforeDeleteEvent","WorkflowNotAuthorizedError","WorkflowNotFoundError","WORKFLOWS_PERMISSION","DeleteWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","getWorkflow","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflowResult","id","app","workflow","value","publish","result","ok","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["DeleteWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError, WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass DeleteWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private repository: DeleteWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflowResult = await this.getWorkflow.execute(input);\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = workflowResult.value;\n\n await this.eventPublisher.publish(\n new WorkflowBeforeDeleteEvent({\n workflow\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterDeleteEvent({\n workflow\n })\n );\n\n return Result.ok();\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const DeleteWorkflowUseCase = UseCase.createImplementation({\n implementation: DeleteWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, GetWorkflowUseCase, DeleteWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B,EAAEC,qBAAqB;AAC1D,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,EACxD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAqB,EAAkB;IACjD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOtB,MAAM,CAACuB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACT,WAAW,CAACE,OAAO,CAACC,KAAK,CAAC;IAC5D,IAAIM,cAAc,CAACH,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOtB,MAAM,CAACuB,IAAI,CACd,IAAIb,qBAAqB,CAAC;QACtBgB,EAAE,EAAEP,KAAK,CAACO,EAAE;QACZC,GAAG,EAAER,KAAK,CAACQ;MACf,CAAC,CACL,CAAC;IACL;IAEA,MAAMC,QAAQ,GAAGH,cAAc,CAACI,KAAK;IAErC,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAItB,yBAAyB,CAAC;MAC1BoB;IACJ,CAAC,CACL,CAAC;IAED,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAIvB,wBAAwB,CAAC;MACzBqB;IACJ,CAAC,CACL,CAAC;IAED,OAAO5B,MAAM,CAACgC,EAAE,CAAC,CAAC;EACtB;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMY,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOpC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOrC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOhC,MAAM,CAACuB,IAAI,CAAC,IAAId,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACgC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACvC,eAAe,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,wBAAwB;AAChG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository","DeleteWorkflowUseCase","UseCase","WorkflowAfterDeleteEvent","WorkflowBeforeDeleteEvent","WorkflowNotAuthorizedError","WorkflowNotFoundError","WORKFLOWS_PERMISSION","DeleteWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","getWorkflow","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflowResult","id","app","workflow","value","publish","result","ok","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["DeleteWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError, WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass DeleteWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private repository: DeleteWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflowResult = await this.getWorkflow.execute(input);\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = workflowResult.value;\n\n await this.eventPublisher.publish(\n new WorkflowBeforeDeleteEvent({\n workflow\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterDeleteEvent({\n workflow\n })\n );\n\n return Result.ok();\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const DeleteWorkflowUseCase = UseCase.createImplementation({\n implementation: DeleteWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, GetWorkflowUseCase, DeleteWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,cAAc,QAAQ,mDAAmD;AAClF,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B,EAAEC,qBAAqB;AAC1D,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,EACxD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAqB,EAAkB;IACjD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOtB,MAAM,CAACuB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACT,WAAW,CAACE,OAAO,CAACC,KAAK,CAAC;IAC5D,IAAIM,cAAc,CAACH,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOtB,MAAM,CAACuB,IAAI,CACd,IAAIb,qBAAqB,CAAC;QACtBgB,EAAE,EAAEP,KAAK,CAACO,EAAE;QACZC,GAAG,EAAER,KAAK,CAACQ;MACf,CAAC,CACL,CAAC;IACL;IAEA,MAAMC,QAAQ,GAAGH,cAAc,CAACI,KAAK;IAErC,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAItB,yBAAyB,CAAC;MAC1BoB;IACJ,CAAC,CACL,CAAC;IAED,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAIvB,wBAAwB,CAAC;MACzBqB;IACJ,CAAC,CACL,CAAC;IAED,OAAO5B,MAAM,CAACgC,EAAE,CAAC,CAAC;EACtB;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMY,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOpC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOrC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOhC,MAAM,CAACuB,IAAI,CAAC,IAAId,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACgC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACvC,eAAe,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,wBAAwB;AAChG,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowBeforeDeletePayload, WorkflowAfterDeletePayload } from "./abstractions.js";
4
4
  export declare class WorkflowBeforeDeleteEvent extends DomainEvent<WorkflowBeforeDeletePayload> {
5
5
  eventType: "workflow.beforeDelete";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  // Before delete event
4
4
  export class WorkflowBeforeDeleteEvent extends DomainEvent {
5
5
  eventType = "workflow.beforeDelete";
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeDeleteEvent","eventType","getHandlerAbstraction","WorkflowBeforeDeleteHandler","WorkflowAfterDeleteEvent","WorkflowAfterDeleteHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowBeforeDeletePayload, WorkflowAfterDeletePayload } from \"./abstractions.js\";\n\n// Before delete event\nexport class WorkflowBeforeDeleteEvent extends DomainEvent<WorkflowBeforeDeletePayload> {\n eventType = \"workflow.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeDeleteHandler;\n }\n}\n\nexport const WorkflowBeforeDeleteHandler = createAbstraction<\n IEventHandler<WorkflowBeforeDeleteEvent>\n>(\"WorkflowBeforeDeleteHandler\");\n\nexport namespace WorkflowBeforeDeleteHandler {\n export type Interface = IEventHandler<WorkflowBeforeDeleteEvent>;\n export type Event = WorkflowBeforeDeleteEvent;\n}\n\n// After delete event\nexport class WorkflowAfterDeleteEvent extends DomainEvent<WorkflowAfterDeletePayload> {\n eventType = \"workflow.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterDeleteHandler;\n }\n}\n\nexport const WorkflowAfterDeleteHandler = createAbstraction<\n IEventHandler<WorkflowAfterDeleteEvent>\n>(\"WorkflowAfterDeleteHandler\");\n\nexport namespace WorkflowAfterDeleteHandler {\n export type Interface = IEventHandler<WorkflowAfterDeleteEvent>;\n export type Event = WorkflowAfterDeleteEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAItE;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeDeleteEvent","eventType","getHandlerAbstraction","WorkflowBeforeDeleteHandler","WorkflowAfterDeleteEvent","WorkflowAfterDeleteHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowBeforeDeletePayload, WorkflowAfterDeletePayload } from \"./abstractions.js\";\n\n// Before delete event\nexport class WorkflowBeforeDeleteEvent extends DomainEvent<WorkflowBeforeDeletePayload> {\n eventType = \"workflow.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeDeleteHandler;\n }\n}\n\nexport const WorkflowBeforeDeleteHandler = createAbstraction<\n IEventHandler<WorkflowBeforeDeleteEvent>\n>(\"WorkflowBeforeDeleteHandler\");\n\nexport namespace WorkflowBeforeDeleteHandler {\n export type Interface = IEventHandler<WorkflowBeforeDeleteEvent>;\n export type Event = WorkflowBeforeDeleteEvent;\n}\n\n// After delete event\nexport class WorkflowAfterDeleteEvent extends DomainEvent<WorkflowAfterDeletePayload> {\n eventType = \"workflow.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterDeleteHandler;\n }\n}\n\nexport const WorkflowAfterDeleteHandler = createAbstraction<\n IEventHandler<WorkflowAfterDeleteEvent>\n>(\"WorkflowAfterDeleteHandler\");\n\nexport namespace WorkflowAfterDeleteHandler {\n export type Interface = IEventHandler<WorkflowAfterDeleteEvent>;\n export type Event = WorkflowAfterDeleteEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;AAI/E;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const DeleteWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const DeleteWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const ListWorkflowsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListWorkflowsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const StoreWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const StoreWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,5 +1,5 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from "./abstractions.js";
4
4
  declare class UpdateWorkflowUseCaseImpl implements UseCase.Interface {
5
5
  private identityContext;
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from "./abstractions.js";
5
5
  import { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from "./events.js";
6
6
  import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","UpdateWorkflowRepository","UpdateWorkflowUseCase","UseCase","WorkflowAfterUpdateEvent","WorkflowBeforeUpdateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","UpdateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","original","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["UpdateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass UpdateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input, original: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeUpdateEvent({\n workflow,\n original,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterUpdateEvent({\n workflow: result.value,\n original,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const UpdateWorkflowUseCase = UseCase.createImplementation({\n implementation: UpdateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, UpdateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAEC,QAAuB,EAAkB;IACzE,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,GAAG,EAAET,KAAK,CAACS,GAAG;MACdC,IAAI,EAAEV,KAAK,CAACU,IAAI;MAChBC,KAAK,EAAEX,KAAK,CAACW;IACjB,CAAC;IAED,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAIrB,yBAAyB,CAAC;MAC1BgB,QAAQ;MACRN,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACf,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIa,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAItB,wBAAwB,CAAC;MACzBiB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACpB,eAAe,CAACqB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO1B,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOnC,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO/B,MAAM,CAACqB,IAAI,CAAC,IAAIb,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC+B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACrC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","UpdateWorkflowRepository","UpdateWorkflowUseCase","UseCase","WorkflowAfterUpdateEvent","WorkflowBeforeUpdateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","UpdateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","original","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["UpdateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass UpdateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input, original: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeUpdateEvent({\n workflow,\n original,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterUpdateEvent({\n workflow: result.value,\n original,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const UpdateWorkflowUseCase = UseCase.createImplementation({\n implementation: UpdateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, UpdateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,cAAc,QAAQ,mDAAmD;AAClF,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAEC,QAAuB,EAAkB;IACzE,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,GAAG,EAAET,KAAK,CAACS,GAAG;MACdC,IAAI,EAAEV,KAAK,CAACU,IAAI;MAChBC,KAAK,EAAEX,KAAK,CAACW;IACjB,CAAC;IAED,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAIrB,yBAAyB,CAAC;MAC1BgB,QAAQ;MACRN,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACf,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIa,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAItB,wBAAwB,CAAC;MACzBiB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACpB,eAAe,CAACqB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO1B,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOnC,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO/B,MAAM,CAACqB,IAAI,CAAC,IAAIb,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC+B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACrC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowBeforeUpdatePayload, WorkflowAfterUpdatePayload } from "./abstractions.js";
4
4
  export declare class WorkflowBeforeUpdateEvent extends DomainEvent<WorkflowBeforeUpdatePayload> {
5
5
  eventType: "workflow.beforeUpdate";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  // Before update event
4
4
  export class WorkflowBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "workflow.beforeUpdate";
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeUpdateEvent","eventType","getHandlerAbstraction","WorkflowBeforeUpdateHandler","WorkflowAfterUpdateEvent","WorkflowAfterUpdateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowBeforeUpdatePayload, WorkflowAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before update event\nexport class WorkflowBeforeUpdateEvent extends DomainEvent<WorkflowBeforeUpdatePayload> {\n eventType = \"workflow.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeUpdateHandler;\n }\n}\n\nexport const WorkflowBeforeUpdateHandler = createAbstraction<\n IEventHandler<WorkflowBeforeUpdateEvent>\n>(\"WorkflowBeforeUpdateHandler\");\n\nexport namespace WorkflowBeforeUpdateHandler {\n export type Interface = IEventHandler<WorkflowBeforeUpdateEvent>;\n export type Event = WorkflowBeforeUpdateEvent;\n}\n\n// After update event\nexport class WorkflowAfterUpdateEvent extends DomainEvent<WorkflowAfterUpdatePayload> {\n eventType = \"workflow.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterUpdateHandler;\n }\n}\n\nexport const WorkflowAfterUpdateHandler = createAbstraction<\n IEventHandler<WorkflowAfterUpdateEvent>\n>(\"WorkflowAfterUpdateHandler\");\n\nexport namespace WorkflowAfterUpdateHandler {\n export type Interface = IEventHandler<WorkflowAfterUpdateEvent>;\n export type Event = WorkflowAfterUpdateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAItE;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeUpdateEvent","eventType","getHandlerAbstraction","WorkflowBeforeUpdateHandler","WorkflowAfterUpdateEvent","WorkflowAfterUpdateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowBeforeUpdatePayload, WorkflowAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before update event\nexport class WorkflowBeforeUpdateEvent extends DomainEvent<WorkflowBeforeUpdatePayload> {\n eventType = \"workflow.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeUpdateHandler;\n }\n}\n\nexport const WorkflowBeforeUpdateHandler = createAbstraction<\n IEventHandler<WorkflowBeforeUpdateEvent>\n>(\"WorkflowBeforeUpdateHandler\");\n\nexport namespace WorkflowBeforeUpdateHandler {\n export type Interface = IEventHandler<WorkflowBeforeUpdateEvent>;\n export type Event = WorkflowBeforeUpdateEvent;\n}\n\n// After update event\nexport class WorkflowAfterUpdateEvent extends DomainEvent<WorkflowAfterUpdatePayload> {\n eventType = \"workflow.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterUpdateHandler;\n }\n}\n\nexport const WorkflowAfterUpdateHandler = createAbstraction<\n IEventHandler<WorkflowAfterUpdateEvent>\n>(\"WorkflowAfterUpdateHandler\");\n\nexport namespace WorkflowAfterUpdateHandler {\n export type Interface = IEventHandler<WorkflowAfterUpdateEvent>;\n export type Event = WorkflowAfterUpdateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;AAI/E;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const UpdateWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const UpdateWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,5 +1,5 @@
1
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowStateApproveStepPayload } from "./abstractions.js";
4
4
  export declare class WorkflowStateApproveStepEvent extends DomainEvent<WorkflowStateApproveStepPayload> {
5
5
  eventType: "workflowState.approveStep";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  export class WorkflowStateApproveStepEvent extends DomainEvent {
4
4
  eventType = "workflowState.approveStep";
5
5
  getHandlerAbstraction() {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateApproveStepEvent","eventType","getHandlerAbstraction","WorkflowStateApproveStepHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowStateApproveStepPayload } from \"./abstractions.js\";\n\nexport class WorkflowStateApproveStepEvent extends DomainEvent<WorkflowStateApproveStepPayload> {\n eventType = \"workflowState.approveStep\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateApproveStepHandler;\n }\n}\n\nexport const WorkflowStateApproveStepHandler = createAbstraction<\n IEventHandler<WorkflowStateApproveStepEvent>\n>(\"WorkflowStateApproveStepHandler\");\n\nexport namespace WorkflowStateApproveStepHandler {\n export type Interface = IEventHandler<WorkflowStateApproveStepEvent>;\n export type Event = WorkflowStateApproveStepEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,0CAA0C;AAGtE,OAAO,MAAMC,6BAA6B,SAASD,WAAW,CAAkC;EAC5FE,SAAS,GAAG,2BAA2B;EAEvCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,+BAA+B;EAC1C;AACJ;AAEA,OAAO,MAAMA,+BAA+B,GAAGL,iBAAiB,CAE9D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateApproveStepEvent","eventType","getHandlerAbstraction","WorkflowStateApproveStepHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowStateApproveStepPayload } from \"./abstractions.js\";\n\nexport class WorkflowStateApproveStepEvent extends DomainEvent<WorkflowStateApproveStepPayload> {\n eventType = \"workflowState.approveStep\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateApproveStepHandler;\n }\n}\n\nexport const WorkflowStateApproveStepHandler = createAbstraction<\n IEventHandler<WorkflowStateApproveStepEvent>\n>(\"WorkflowStateApproveStepHandler\");\n\nexport namespace WorkflowStateApproveStepHandler {\n export type Interface = IEventHandler<WorkflowStateApproveStepEvent>;\n export type Event = WorkflowStateApproveStepEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,mDAAmD;AAG/E,OAAO,MAAMC,6BAA6B,SAASD,WAAW,CAAkC;EAC5FE,SAAS,GAAG,2BAA2B;EAEvCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,+BAA+B;EAC1C;AACJ;AAEA,OAAO,MAAMA,+BAA+B,GAAGL,iBAAiB,CAE9D,iCAAiC,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const ApproveWorkflowStateStepFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ApproveWorkflowStateStepFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,5 +1,5 @@
1
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowStateCancelPayload } from "./abstractions.js";
4
4
  export declare class WorkflowStateCancelEvent extends DomainEvent<WorkflowStateCancelPayload> {
5
5
  eventType: "workflowState.cancel";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  export class WorkflowStateCancelEvent extends DomainEvent {
4
4
  eventType = "workflowState.cancel";
5
5
  getHandlerAbstraction() {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateCancelEvent","eventType","getHandlerAbstraction","WorkflowStateCancelHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowStateCancelPayload } from \"./abstractions.js\";\n\nexport class WorkflowStateCancelEvent extends DomainEvent<WorkflowStateCancelPayload> {\n eventType = \"workflowState.cancel\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateCancelHandler;\n }\n}\n\nexport const WorkflowStateCancelHandler = createAbstraction<\n IEventHandler<WorkflowStateCancelEvent>\n>(\"WorkflowStateCancelHandler\");\n\nexport namespace WorkflowStateCancelHandler {\n export type Interface = IEventHandler<WorkflowStateCancelEvent>;\n export type Event = WorkflowStateCancelEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,0CAA0C;AAGtE,OAAO,MAAMC,wBAAwB,SAASD,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGL,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateCancelEvent","eventType","getHandlerAbstraction","WorkflowStateCancelHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowStateCancelPayload } from \"./abstractions.js\";\n\nexport class WorkflowStateCancelEvent extends DomainEvent<WorkflowStateCancelPayload> {\n eventType = \"workflowState.cancel\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateCancelHandler;\n }\n}\n\nexport const WorkflowStateCancelHandler = createAbstraction<\n IEventHandler<WorkflowStateCancelEvent>\n>(\"WorkflowStateCancelHandler\");\n\nexport namespace WorkflowStateCancelHandler {\n export type Interface = IEventHandler<WorkflowStateCancelEvent>;\n export type Event = WorkflowStateCancelEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,mDAAmD;AAG/E,OAAO,MAAMC,wBAAwB,SAASD,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGL,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const CancelWorkflowStateFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CancelWorkflowStateFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,6 +1,6 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
2
  import { GetUserTeamsUseCase } from "../../../features/internal/GetUserTeams/index.js";
3
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import { ListWorkflowsUseCase } from "../../../features/workflow/ListWorkflows/index.js";
5
5
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
6
6
  import { CreateWorkflowStateRepository, CreateWorkflowStateUseCase as UseCase } from "./abstractions.js";
@@ -1,8 +1,8 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
3
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
4
  import { GetUserTeamsUseCase } from "../../internal/GetUserTeams/index.js";
5
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
5
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
6
6
  import { ListWorkflowsUseCase } from "../../workflow/ListWorkflows/index.js";
7
7
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
8
8
  import { CreateWorkflowStateRepository, CreateWorkflowStateUseCase as UseCase } from "./abstractions.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Result","parseIdentifier","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository","CreateWorkflowStateUseCase","UseCase","WorkflowStateAfterCreateEvent","WorkflowState","WorkflowStateRecordState","WorkflowStateValidationError","ActiveStateExistsError","MultipleWorkflowsFoundError","WorkflowStatePersistenceError","WorkflowNotFoundError","CreateWorkflowStateUseCaseImpl","constructor","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","execute","input","id","targetId","version","targetRevisionId","fail","workflowsResult","where","app","limit","isFail","error","items","workflows","meta","value","workflow","totalCount","existingStateResult","isOk","steps","length","identity","getIdentity","record","workflowId","comment","undefined","state","pending","title","isActive","map","step","savedBy","createResult","createdRecord","teamsResult","teams","workflowState","publish","ok","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository\n ]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Result","parseIdentifier","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository","CreateWorkflowStateUseCase","UseCase","WorkflowStateAfterCreateEvent","WorkflowState","WorkflowStateRecordState","WorkflowStateValidationError","ActiveStateExistsError","MultipleWorkflowsFoundError","WorkflowStatePersistenceError","WorkflowNotFoundError","CreateWorkflowStateUseCaseImpl","constructor","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","execute","input","id","targetId","version","targetRevisionId","fail","workflowsResult","where","app","limit","isFail","error","items","workflows","meta","value","workflow","totalCount","existingStateResult","isOk","steps","length","identity","getIdentity","record","workflowId","comment","undefined","state","pending","title","isActive","map","step","savedBy","createResult","createdRecord","teamsResult","teams","workflowState","publish","ok","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository\n ]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WorkflowStateAfterCreatePayload } from "./abstractions.js";
4
4
  export declare class WorkflowStateAfterCreateEvent extends DomainEvent<WorkflowStateAfterCreatePayload> {
5
5
  eventType: "workflowState.afterCreate";
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  export class WorkflowStateAfterCreateEvent extends DomainEvent {
4
4
  eventType = "workflowState.afterCreate";
5
5
  getHandlerAbstraction() {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateAfterCreateEvent","eventType","getHandlerAbstraction","WorkflowStateAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowStateAfterCreatePayload } from \"./abstractions.js\";\n\nexport class WorkflowStateAfterCreateEvent extends DomainEvent<WorkflowStateAfterCreatePayload> {\n eventType = \"workflowState.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateAfterCreateHandler;\n }\n}\n\nexport const WorkflowStateAfterCreateHandler = createAbstraction<\n IEventHandler<WorkflowStateAfterCreateEvent>\n>(\"WorkflowStateAfterCreateHandler\");\n\nexport namespace WorkflowStateAfterCreateHandler {\n export type Interface = IEventHandler<WorkflowStateAfterCreateEvent>;\n export type Event = WorkflowStateAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAItE,OAAO,MAAMC,6BAA6B,SAASD,WAAW,CAAkC;EAC5FE,SAAS,GAAG,2BAA2B;EAEvCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,+BAA+B;EAC1C;AACJ;AAEA,OAAO,MAAMA,+BAA+B,GAAGL,iBAAiB,CAE9D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowStateAfterCreateEvent","eventType","getHandlerAbstraction","WorkflowStateAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowStateAfterCreatePayload } from \"./abstractions.js\";\n\nexport class WorkflowStateAfterCreateEvent extends DomainEvent<WorkflowStateAfterCreatePayload> {\n eventType = \"workflowState.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowStateAfterCreateHandler;\n }\n}\n\nexport const WorkflowStateAfterCreateHandler = createAbstraction<\n IEventHandler<WorkflowStateAfterCreateEvent>\n>(\"WorkflowStateAfterCreateHandler\");\n\nexport namespace WorkflowStateAfterCreateHandler {\n export type Interface = IEventHandler<WorkflowStateAfterCreateEvent>;\n export type Event = WorkflowStateAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;AAI/E,OAAO,MAAMC,6BAA6B,SAASD,WAAW,CAAkC;EAC5FE,SAAS,GAAG,2BAA2B;EAEvCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,+BAA+B;EAC1C;AACJ;AAEA,OAAO,MAAMA,+BAA+B,GAAGL,iBAAiB,CAE9D,iCAAiC,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const CreateWorkflowStateFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreateWorkflowStateFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,6 +1,6 @@
1
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
2
  import { GetUserTeamsUseCase } from "../../../features/internal/GetUserTeams/index.js";
3
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import { GetWorkflowUseCase } from "../../../features/workflow/GetWorkflow/index.js";
5
5
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
6
6
  import { DeleteWorkflowStateRepository } from "../DeleteWorkflowState/index.js";
@@ -1,7 +1,7 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
3
  import { GetUserTeamsUseCase } from "../../internal/GetUserTeams/index.js";
4
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
5
  import { GetWorkflowUseCase } from "../../workflow/GetWorkflow/index.js";
6
6
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
7
7
  import { DeleteWorkflowStateRepository } from "../DeleteWorkflowState/index.js";