@webiny/api-workflows 0.0.0-unstable.0d717d18dd

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 (458) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/WorkflowsFeature.d.ts +5 -0
  4. package/WorkflowsFeature.js +17 -0
  5. package/WorkflowsFeature.js.map +1 -0
  6. package/WorkflowsInitializer.d.ts +19 -0
  7. package/WorkflowsInitializer.js +97 -0
  8. package/WorkflowsInitializer.js.map +1 -0
  9. package/WorkflowsSchemaFactory.d.ts +8 -0
  10. package/WorkflowsSchemaFactory.js +19 -0
  11. package/WorkflowsSchemaFactory.js.map +1 -0
  12. package/constants.d.ts +3 -0
  13. package/constants.js +6 -0
  14. package/constants.js.map +1 -0
  15. package/domain/notifications/abstractions.d.ts +64 -0
  16. package/domain/notifications/abstractions.js +11 -0
  17. package/domain/notifications/abstractions.js.map +1 -0
  18. package/domain/notifications/errors.d.ts +5 -0
  19. package/domain/notifications/errors.js +11 -0
  20. package/domain/notifications/errors.js.map +1 -0
  21. package/domain/workflow/WorkflowMapper.d.ts +12 -0
  22. package/domain/workflow/WorkflowMapper.js +28 -0
  23. package/domain/workflow/WorkflowMapper.js.map +1 -0
  24. package/domain/workflow/abstractions.d.ts +37 -0
  25. package/domain/workflow/abstractions.js +6 -0
  26. package/domain/workflow/abstractions.js.map +1 -0
  27. package/domain/workflow/errors.d.ts +23 -0
  28. package/domain/workflow/errors.js +33 -0
  29. package/domain/workflow/errors.js.map +1 -0
  30. package/domain/workflow/workflowModel.d.ts +9 -0
  31. package/domain/workflow/workflowModel.js +34 -0
  32. package/domain/workflow/workflowModel.js.map +1 -0
  33. package/domain/workflowState/WorkflowState.d.ts +56 -0
  34. package/domain/workflowState/WorkflowState.js +227 -0
  35. package/domain/workflowState/WorkflowState.js.map +1 -0
  36. package/domain/workflowState/WorkflowStateMapper.d.ts +9 -0
  37. package/domain/workflowState/WorkflowStateMapper.js +43 -0
  38. package/domain/workflowState/WorkflowStateMapper.js.map +1 -0
  39. package/domain/workflowState/abstractions.d.ts +78 -0
  40. package/domain/workflowState/abstractions.js +13 -0
  41. package/domain/workflowState/abstractions.js.map +1 -0
  42. package/domain/workflowState/errors.d.ts +86 -0
  43. package/domain/workflowState/errors.js +126 -0
  44. package/domain/workflowState/errors.js.map +1 -0
  45. package/domain/workflowState/guards/canReview.d.ts +2 -0
  46. package/domain/workflowState/guards/canReview.js +4 -0
  47. package/domain/workflowState/guards/canReview.js.map +1 -0
  48. package/domain/workflowState/guards/canTakeOver.d.ts +2 -0
  49. package/domain/workflowState/guards/canTakeOver.js +4 -0
  50. package/domain/workflowState/guards/canTakeOver.js.map +1 -0
  51. package/domain/workflowState/guards/isInReview.d.ts +2 -0
  52. package/domain/workflowState/guards/isInReview.js +5 -0
  53. package/domain/workflowState/guards/isInReview.js.map +1 -0
  54. package/domain/workflowState/guards/isRejected.d.ts +2 -0
  55. package/domain/workflowState/guards/isRejected.js +5 -0
  56. package/domain/workflowState/guards/isRejected.js.map +1 -0
  57. package/domain/workflowState/guards/isStepOwner.d.ts +2 -0
  58. package/domain/workflowState/guards/isStepOwner.js +4 -0
  59. package/domain/workflowState/guards/isStepOwner.js.map +1 -0
  60. package/domain/workflowState/stateModel.d.ts +9 -0
  61. package/domain/workflowState/stateModel.js +67 -0
  62. package/domain/workflowState/stateModel.js.map +1 -0
  63. package/features/internal/GetUserTeams/GetUserTeamsUseCase.d.ts +12 -0
  64. package/features/internal/GetUserTeams/GetUserTeamsUseCase.js +29 -0
  65. package/features/internal/GetUserTeams/GetUserTeamsUseCase.js.map +1 -0
  66. package/features/internal/GetUserTeams/abstractions.d.ts +10 -0
  67. package/features/internal/GetUserTeams/abstractions.js +5 -0
  68. package/features/internal/GetUserTeams/abstractions.js.map +1 -0
  69. package/features/internal/GetUserTeams/feature.d.ts +4 -0
  70. package/features/internal/GetUserTeams/feature.js +11 -0
  71. package/features/internal/GetUserTeams/feature.js.map +1 -0
  72. package/features/internal/GetUserTeams/index.d.ts +1 -0
  73. package/features/internal/GetUserTeams/index.js +1 -0
  74. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.d.ts +11 -0
  75. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js +28 -0
  76. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js.map +1 -0
  77. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.d.ts +13 -0
  78. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js +34 -0
  79. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js.map +1 -0
  80. package/features/notifications/ListNotificationTypes/abstractions.d.ts +31 -0
  81. package/features/notifications/ListNotificationTypes/abstractions.js +6 -0
  82. package/features/notifications/ListNotificationTypes/abstractions.js.map +1 -0
  83. package/features/notifications/ListNotificationTypes/feature.d.ts +4 -0
  84. package/features/notifications/ListNotificationTypes/feature.js +13 -0
  85. package/features/notifications/ListNotificationTypes/feature.js.map +1 -0
  86. package/features/notifications/ListNotificationTypes/index.d.ts +3 -0
  87. package/features/notifications/ListNotificationTypes/index.js +2 -0
  88. package/features/notifications/NotificationTransport/MailNotificationTransport.d.ts +13 -0
  89. package/features/notifications/NotificationTransport/MailNotificationTransport.js +38 -0
  90. package/features/notifications/NotificationTransport/MailNotificationTransport.js.map +1 -0
  91. package/features/notifications/NotificationTransport/abstractions.d.ts +21 -0
  92. package/features/notifications/NotificationTransport/abstractions.js +5 -0
  93. package/features/notifications/NotificationTransport/abstractions.js.map +1 -0
  94. package/features/notifications/NotificationTransport/feature.d.ts +4 -0
  95. package/features/notifications/NotificationTransport/feature.js +11 -0
  96. package/features/notifications/NotificationTransport/feature.js.map +1 -0
  97. package/features/notifications/NotificationTransport/index.d.ts +3 -0
  98. package/features/notifications/NotificationTransport/index.js +2 -0
  99. package/features/shared/abstractions.d.ts +21 -0
  100. package/features/shared/abstractions.js +0 -0
  101. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.d.ts +14 -0
  102. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +46 -0
  103. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -0
  104. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.d.ts +15 -0
  105. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js +52 -0
  106. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js.map +1 -0
  107. package/features/workflow/CreateWorkflow/abstractions.d.ts +56 -0
  108. package/features/workflow/CreateWorkflow/abstractions.js +6 -0
  109. package/features/workflow/CreateWorkflow/abstractions.js.map +1 -0
  110. package/features/workflow/CreateWorkflow/events.d.ts +21 -0
  111. package/features/workflow/CreateWorkflow/events.js +23 -0
  112. package/features/workflow/CreateWorkflow/events.js.map +1 -0
  113. package/features/workflow/CreateWorkflow/feature.d.ts +4 -0
  114. package/features/workflow/CreateWorkflow/feature.js +13 -0
  115. package/features/workflow/CreateWorkflow/feature.js.map +1 -0
  116. package/features/workflow/CreateWorkflow/index.d.ts +4 -0
  117. package/features/workflow/CreateWorkflow/index.js +3 -0
  118. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.d.ts +13 -0
  119. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +35 -0
  120. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -0
  121. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.d.ts +17 -0
  122. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js +53 -0
  123. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js.map +1 -0
  124. package/features/workflow/DeleteWorkflow/abstractions.d.ts +50 -0
  125. package/features/workflow/DeleteWorkflow/abstractions.js +6 -0
  126. package/features/workflow/DeleteWorkflow/abstractions.js.map +1 -0
  127. package/features/workflow/DeleteWorkflow/events.d.ts +21 -0
  128. package/features/workflow/DeleteWorkflow/events.js +23 -0
  129. package/features/workflow/DeleteWorkflow/events.js.map +1 -0
  130. package/features/workflow/DeleteWorkflow/feature.d.ts +4 -0
  131. package/features/workflow/DeleteWorkflow/feature.js +13 -0
  132. package/features/workflow/DeleteWorkflow/feature.js.map +1 -0
  133. package/features/workflow/DeleteWorkflow/index.d.ts +4 -0
  134. package/features/workflow/DeleteWorkflow/index.js +3 -0
  135. package/features/workflow/GetWorkflow/GetWorkflowRepository.d.ts +14 -0
  136. package/features/workflow/GetWorkflow/GetWorkflowRepository.js +45 -0
  137. package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -0
  138. package/features/workflow/GetWorkflow/GetWorkflowUseCase.d.ts +13 -0
  139. package/features/workflow/GetWorkflow/GetWorkflowUseCase.js +32 -0
  140. package/features/workflow/GetWorkflow/GetWorkflowUseCase.js.map +1 -0
  141. package/features/workflow/GetWorkflow/abstractions.d.ts +45 -0
  142. package/features/workflow/GetWorkflow/abstractions.js +6 -0
  143. package/features/workflow/GetWorkflow/abstractions.js.map +1 -0
  144. package/features/workflow/GetWorkflow/feature.d.ts +4 -0
  145. package/features/workflow/GetWorkflow/feature.js +13 -0
  146. package/features/workflow/GetWorkflow/feature.js.map +1 -0
  147. package/features/workflow/GetWorkflow/index.d.ts +1 -0
  148. package/features/workflow/GetWorkflow/index.js +1 -0
  149. package/features/workflow/ListWorkflows/ListWorkflowsRepository.d.ts +18 -0
  150. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +62 -0
  151. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -0
  152. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.d.ts +10 -0
  153. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js +21 -0
  154. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js.map +1 -0
  155. package/features/workflow/ListWorkflows/abstractions.d.ts +60 -0
  156. package/features/workflow/ListWorkflows/abstractions.js +6 -0
  157. package/features/workflow/ListWorkflows/abstractions.js.map +1 -0
  158. package/features/workflow/ListWorkflows/feature.d.ts +4 -0
  159. package/features/workflow/ListWorkflows/feature.js +13 -0
  160. package/features/workflow/ListWorkflows/feature.js.map +1 -0
  161. package/features/workflow/ListWorkflows/index.d.ts +1 -0
  162. package/features/workflow/ListWorkflows/index.js +1 -0
  163. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.d.ts +15 -0
  164. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js +35 -0
  165. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js.map +1 -0
  166. package/features/workflow/StoreWorkflow/abstractions.d.ts +32 -0
  167. package/features/workflow/StoreWorkflow/abstractions.js +5 -0
  168. package/features/workflow/StoreWorkflow/abstractions.js.map +1 -0
  169. package/features/workflow/StoreWorkflow/feature.d.ts +4 -0
  170. package/features/workflow/StoreWorkflow/feature.js +15 -0
  171. package/features/workflow/StoreWorkflow/feature.js.map +1 -0
  172. package/features/workflow/StoreWorkflow/index.d.ts +3 -0
  173. package/features/workflow/StoreWorkflow/index.js +2 -0
  174. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.d.ts +15 -0
  175. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +50 -0
  176. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js.map +1 -0
  177. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.d.ts +15 -0
  178. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js +54 -0
  179. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js.map +1 -0
  180. package/features/workflow/UpdateWorkflow/abstractions.d.ts +57 -0
  181. package/features/workflow/UpdateWorkflow/abstractions.js +6 -0
  182. package/features/workflow/UpdateWorkflow/abstractions.js.map +1 -0
  183. package/features/workflow/UpdateWorkflow/events.d.ts +21 -0
  184. package/features/workflow/UpdateWorkflow/events.js +23 -0
  185. package/features/workflow/UpdateWorkflow/events.js.map +1 -0
  186. package/features/workflow/UpdateWorkflow/feature.d.ts +4 -0
  187. package/features/workflow/UpdateWorkflow/feature.js +13 -0
  188. package/features/workflow/UpdateWorkflow/feature.js.map +1 -0
  189. package/features/workflow/UpdateWorkflow/index.d.ts +4 -0
  190. package/features/workflow/UpdateWorkflow/index.js +3 -0
  191. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.d.ts +15 -0
  192. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js +38 -0
  193. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js.map +1 -0
  194. package/features/workflowState/ApproveWorkflowStateStep/abstractions.d.ts +26 -0
  195. package/features/workflowState/ApproveWorkflowStateStep/abstractions.js +5 -0
  196. package/features/workflowState/ApproveWorkflowStateStep/abstractions.js.map +1 -0
  197. package/features/workflowState/ApproveWorkflowStateStep/events.d.ts +12 -0
  198. package/features/workflowState/ApproveWorkflowStateStep/events.js +14 -0
  199. package/features/workflowState/ApproveWorkflowStateStep/events.js.map +1 -0
  200. package/features/workflowState/ApproveWorkflowStateStep/feature.d.ts +4 -0
  201. package/features/workflowState/ApproveWorkflowStateStep/feature.js +11 -0
  202. package/features/workflowState/ApproveWorkflowStateStep/feature.js.map +1 -0
  203. package/features/workflowState/ApproveWorkflowStateStep/index.d.ts +2 -0
  204. package/features/workflowState/ApproveWorkflowStateStep/index.js +2 -0
  205. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.d.ts +13 -0
  206. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js +31 -0
  207. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js.map +1 -0
  208. package/features/workflowState/CancelWorkflowState/abstractions.d.ts +26 -0
  209. package/features/workflowState/CancelWorkflowState/abstractions.js +5 -0
  210. package/features/workflowState/CancelWorkflowState/abstractions.js.map +1 -0
  211. package/features/workflowState/CancelWorkflowState/events.d.ts +12 -0
  212. package/features/workflowState/CancelWorkflowState/events.js +14 -0
  213. package/features/workflowState/CancelWorkflowState/events.js.map +1 -0
  214. package/features/workflowState/CancelWorkflowState/feature.d.ts +4 -0
  215. package/features/workflowState/CancelWorkflowState/feature.js +11 -0
  216. package/features/workflowState/CancelWorkflowState/feature.js.map +1 -0
  217. package/features/workflowState/CancelWorkflowState/index.d.ts +2 -0
  218. package/features/workflowState/CancelWorkflowState/index.js +2 -0
  219. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.d.ts +14 -0
  220. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +35 -0
  221. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -0
  222. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.d.ts +22 -0
  223. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +104 -0
  224. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -0
  225. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.d.ts +9 -0
  226. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js +13 -0
  227. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js.map +1 -0
  228. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.d.ts +13 -0
  229. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js +5 -0
  230. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js.map +1 -0
  231. package/features/workflowState/CreateWorkflowState/abstractions.d.ts +54 -0
  232. package/features/workflowState/CreateWorkflowState/abstractions.js +6 -0
  233. package/features/workflowState/CreateWorkflowState/abstractions.js.map +1 -0
  234. package/features/workflowState/CreateWorkflowState/events.d.ts +12 -0
  235. package/features/workflowState/CreateWorkflowState/events.js +14 -0
  236. package/features/workflowState/CreateWorkflowState/events.js.map +1 -0
  237. package/features/workflowState/CreateWorkflowState/feature.d.ts +4 -0
  238. package/features/workflowState/CreateWorkflowState/feature.js +15 -0
  239. package/features/workflowState/CreateWorkflowState/feature.js.map +1 -0
  240. package/features/workflowState/CreateWorkflowState/index.d.ts +3 -0
  241. package/features/workflowState/CreateWorkflowState/index.js +3 -0
  242. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.d.ts +21 -0
  243. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +61 -0
  244. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -0
  245. package/features/workflowState/DeleteTargetWorkflowState/abstractions.d.ts +23 -0
  246. package/features/workflowState/DeleteTargetWorkflowState/abstractions.js +5 -0
  247. package/features/workflowState/DeleteTargetWorkflowState/abstractions.js.map +1 -0
  248. package/features/workflowState/DeleteTargetWorkflowState/events.d.ts +12 -0
  249. package/features/workflowState/DeleteTargetWorkflowState/events.js +14 -0
  250. package/features/workflowState/DeleteTargetWorkflowState/events.js.map +1 -0
  251. package/features/workflowState/DeleteTargetWorkflowState/feature.d.ts +4 -0
  252. package/features/workflowState/DeleteTargetWorkflowState/feature.js +11 -0
  253. package/features/workflowState/DeleteTargetWorkflowState/feature.js.map +1 -0
  254. package/features/workflowState/DeleteTargetWorkflowState/index.d.ts +2 -0
  255. package/features/workflowState/DeleteTargetWorkflowState/index.js +2 -0
  256. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.d.ts +13 -0
  257. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +24 -0
  258. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -0
  259. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.d.ts +14 -0
  260. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js +33 -0
  261. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js.map +1 -0
  262. package/features/workflowState/DeleteWorkflowState/abstractions.d.ts +25 -0
  263. package/features/workflowState/DeleteWorkflowState/abstractions.js +6 -0
  264. package/features/workflowState/DeleteWorkflowState/abstractions.js.map +1 -0
  265. package/features/workflowState/DeleteWorkflowState/feature.d.ts +4 -0
  266. package/features/workflowState/DeleteWorkflowState/feature.js +13 -0
  267. package/features/workflowState/DeleteWorkflowState/feature.js.map +1 -0
  268. package/features/workflowState/DeleteWorkflowState/index.d.ts +1 -0
  269. package/features/workflowState/DeleteWorkflowState/index.js +1 -0
  270. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.d.ts +14 -0
  271. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +48 -0
  272. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map +1 -0
  273. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.d.ts +14 -0
  274. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +37 -0
  275. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -0
  276. package/features/workflowState/GetTargetWorkflowState/abstractions.d.ts +48 -0
  277. package/features/workflowState/GetTargetWorkflowState/abstractions.js +6 -0
  278. package/features/workflowState/GetTargetWorkflowState/abstractions.js.map +1 -0
  279. package/features/workflowState/GetTargetWorkflowState/feature.d.ts +4 -0
  280. package/features/workflowState/GetTargetWorkflowState/feature.js +13 -0
  281. package/features/workflowState/GetTargetWorkflowState/feature.js.map +1 -0
  282. package/features/workflowState/GetTargetWorkflowState/index.d.ts +1 -0
  283. package/features/workflowState/GetTargetWorkflowState/index.js +1 -0
  284. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.d.ts +14 -0
  285. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +35 -0
  286. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -0
  287. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.d.ts +14 -0
  288. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +33 -0
  289. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -0
  290. package/features/workflowState/GetWorkflowState/abstractions.d.ts +39 -0
  291. package/features/workflowState/GetWorkflowState/abstractions.js +6 -0
  292. package/features/workflowState/GetWorkflowState/abstractions.js.map +1 -0
  293. package/features/workflowState/GetWorkflowState/feature.d.ts +4 -0
  294. package/features/workflowState/GetWorkflowState/feature.js +13 -0
  295. package/features/workflowState/GetWorkflowState/feature.js.map +1 -0
  296. package/features/workflowState/GetWorkflowState/index.d.ts +1 -0
  297. package/features/workflowState/GetWorkflowState/index.js +1 -0
  298. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.d.ts +13 -0
  299. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js +42 -0
  300. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js.map +1 -0
  301. package/features/workflowState/ListOwnWorkflowStates/abstractions.d.ts +22 -0
  302. package/features/workflowState/ListOwnWorkflowStates/abstractions.js +5 -0
  303. package/features/workflowState/ListOwnWorkflowStates/abstractions.js.map +1 -0
  304. package/features/workflowState/ListOwnWorkflowStates/feature.d.ts +4 -0
  305. package/features/workflowState/ListOwnWorkflowStates/feature.js +11 -0
  306. package/features/workflowState/ListOwnWorkflowStates/feature.js.map +1 -0
  307. package/features/workflowState/ListOwnWorkflowStates/index.d.ts +1 -0
  308. package/features/workflowState/ListOwnWorkflowStates/index.js +1 -0
  309. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.d.ts +15 -0
  310. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js +52 -0
  311. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js.map +1 -0
  312. package/features/workflowState/ListRequestedWorkflowStates/abstractions.d.ts +22 -0
  313. package/features/workflowState/ListRequestedWorkflowStates/abstractions.js +5 -0
  314. package/features/workflowState/ListRequestedWorkflowStates/abstractions.js.map +1 -0
  315. package/features/workflowState/ListRequestedWorkflowStates/feature.d.ts +4 -0
  316. package/features/workflowState/ListRequestedWorkflowStates/feature.js +11 -0
  317. package/features/workflowState/ListRequestedWorkflowStates/feature.js.map +1 -0
  318. package/features/workflowState/ListRequestedWorkflowStates/index.d.ts +1 -0
  319. package/features/workflowState/ListRequestedWorkflowStates/index.js +1 -0
  320. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.d.ts +9 -0
  321. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js +13 -0
  322. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js.map +1 -0
  323. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.d.ts +16 -0
  324. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +46 -0
  325. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -0
  326. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.d.ts +16 -0
  327. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +67 -0
  328. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -0
  329. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.d.ts +8 -0
  330. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js +5 -0
  331. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js.map +1 -0
  332. package/features/workflowState/ListWorkflowStates/abstractions.d.ts +71 -0
  333. package/features/workflowState/ListWorkflowStates/abstractions.js +6 -0
  334. package/features/workflowState/ListWorkflowStates/abstractions.js.map +1 -0
  335. package/features/workflowState/ListWorkflowStates/feature.d.ts +4 -0
  336. package/features/workflowState/ListWorkflowStates/feature.js +15 -0
  337. package/features/workflowState/ListWorkflowStates/feature.js.map +1 -0
  338. package/features/workflowState/ListWorkflowStates/index.d.ts +2 -0
  339. package/features/workflowState/ListWorkflowStates/index.js +2 -0
  340. package/features/workflowState/README.md +8 -0
  341. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.d.ts +15 -0
  342. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js +38 -0
  343. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js.map +1 -0
  344. package/features/workflowState/RejectWorkflowStateStep/abstractions.d.ts +26 -0
  345. package/features/workflowState/RejectWorkflowStateStep/abstractions.js +5 -0
  346. package/features/workflowState/RejectWorkflowStateStep/abstractions.js.map +1 -0
  347. package/features/workflowState/RejectWorkflowStateStep/events.d.ts +12 -0
  348. package/features/workflowState/RejectWorkflowStateStep/events.js +14 -0
  349. package/features/workflowState/RejectWorkflowStateStep/events.js.map +1 -0
  350. package/features/workflowState/RejectWorkflowStateStep/feature.d.ts +4 -0
  351. package/features/workflowState/RejectWorkflowStateStep/feature.js +11 -0
  352. package/features/workflowState/RejectWorkflowStateStep/feature.js.map +1 -0
  353. package/features/workflowState/RejectWorkflowStateStep/index.d.ts +2 -0
  354. package/features/workflowState/RejectWorkflowStateStep/index.js +2 -0
  355. package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.d.ts +15 -0
  356. package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.js +38 -0
  357. package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.js.map +1 -0
  358. package/features/workflowState/StartWorkflowStateStep/abstractions.d.ts +25 -0
  359. package/features/workflowState/StartWorkflowStateStep/abstractions.js +5 -0
  360. package/features/workflowState/StartWorkflowStateStep/abstractions.js.map +1 -0
  361. package/features/workflowState/StartWorkflowStateStep/events.d.ts +12 -0
  362. package/features/workflowState/StartWorkflowStateStep/events.js +14 -0
  363. package/features/workflowState/StartWorkflowStateStep/events.js.map +1 -0
  364. package/features/workflowState/StartWorkflowStateStep/feature.d.ts +4 -0
  365. package/features/workflowState/StartWorkflowStateStep/feature.js +11 -0
  366. package/features/workflowState/StartWorkflowStateStep/feature.js.map +1 -0
  367. package/features/workflowState/StartWorkflowStateStep/index.d.ts +2 -0
  368. package/features/workflowState/StartWorkflowStateStep/index.js +2 -0
  369. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.d.ts +15 -0
  370. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js +38 -0
  371. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js.map +1 -0
  372. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.d.ts +26 -0
  373. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js +5 -0
  374. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js.map +1 -0
  375. package/features/workflowState/TakeOverWorkflowStateStep/events.d.ts +12 -0
  376. package/features/workflowState/TakeOverWorkflowStateStep/events.js +14 -0
  377. package/features/workflowState/TakeOverWorkflowStateStep/events.js.map +1 -0
  378. package/features/workflowState/TakeOverWorkflowStateStep/feature.d.ts +4 -0
  379. package/features/workflowState/TakeOverWorkflowStateStep/feature.js +11 -0
  380. package/features/workflowState/TakeOverWorkflowStateStep/feature.js.map +1 -0
  381. package/features/workflowState/TakeOverWorkflowStateStep/index.d.ts +2 -0
  382. package/features/workflowState/TakeOverWorkflowStateStep/index.js +2 -0
  383. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.d.ts +17 -0
  384. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +50 -0
  385. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -0
  386. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.d.ts +20 -0
  387. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +59 -0
  388. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -0
  389. package/features/workflowState/UpdateWorkflowState/abstractions.d.ts +48 -0
  390. package/features/workflowState/UpdateWorkflowState/abstractions.js +6 -0
  391. package/features/workflowState/UpdateWorkflowState/abstractions.js.map +1 -0
  392. package/features/workflowState/UpdateWorkflowState/events.d.ts +12 -0
  393. package/features/workflowState/UpdateWorkflowState/events.js +14 -0
  394. package/features/workflowState/UpdateWorkflowState/events.js.map +1 -0
  395. package/features/workflowState/UpdateWorkflowState/feature.d.ts +4 -0
  396. package/features/workflowState/UpdateWorkflowState/feature.js +13 -0
  397. package/features/workflowState/UpdateWorkflowState/feature.js.map +1 -0
  398. package/features/workflowState/UpdateWorkflowState/index.d.ts +2 -0
  399. package/features/workflowState/UpdateWorkflowState/index.js +2 -0
  400. package/graphql/notifications.d.ts +2 -0
  401. package/graphql/notifications.js +49 -0
  402. package/graphql/notifications.js.map +1 -0
  403. package/graphql/validation/approveWorkflowState.d.ts +5 -0
  404. package/graphql/validation/approveWorkflowState.js +8 -0
  405. package/graphql/validation/approveWorkflowState.js.map +1 -0
  406. package/graphql/validation/cancelWorkflowState.d.ts +4 -0
  407. package/graphql/validation/cancelWorkflowState.js +7 -0
  408. package/graphql/validation/cancelWorkflowState.js.map +1 -0
  409. package/graphql/validation/createWorkflowState.d.ts +6 -0
  410. package/graphql/validation/createWorkflowState.js +9 -0
  411. package/graphql/validation/createWorkflowState.js.map +1 -0
  412. package/graphql/validation/deleteWorkflow.d.ts +5 -0
  413. package/graphql/validation/deleteWorkflow.js +8 -0
  414. package/graphql/validation/deleteWorkflow.js.map +1 -0
  415. package/graphql/validation/getTargetWorkflowState.d.ts +5 -0
  416. package/graphql/validation/getTargetWorkflowState.js +8 -0
  417. package/graphql/validation/getTargetWorkflowState.js.map +1 -0
  418. package/graphql/validation/getWorkflow.d.ts +5 -0
  419. package/graphql/validation/getWorkflow.js +8 -0
  420. package/graphql/validation/getWorkflow.js.map +1 -0
  421. package/graphql/validation/getWorkflowState.d.ts +4 -0
  422. package/graphql/validation/getWorkflowState.js +7 -0
  423. package/graphql/validation/getWorkflowState.js.map +1 -0
  424. package/graphql/validation/listWorkflowStates.d.ts +26 -0
  425. package/graphql/validation/listWorkflowStates.js +36 -0
  426. package/graphql/validation/listWorkflowStates.js.map +1 -0
  427. package/graphql/validation/listWorkflows.d.ts +12 -0
  428. package/graphql/validation/listWorkflows.js +19 -0
  429. package/graphql/validation/listWorkflows.js.map +1 -0
  430. package/graphql/validation/rejectWorkflowState.d.ts +5 -0
  431. package/graphql/validation/rejectWorkflowState.js +8 -0
  432. package/graphql/validation/rejectWorkflowState.js.map +1 -0
  433. package/graphql/validation/startWorkflowState.d.ts +4 -0
  434. package/graphql/validation/startWorkflowState.js +7 -0
  435. package/graphql/validation/startWorkflowState.js.map +1 -0
  436. package/graphql/validation/step.d.ts +21 -0
  437. package/graphql/validation/step.js +16 -0
  438. package/graphql/validation/step.js.map +1 -0
  439. package/graphql/validation/storeWorkflow.d.ts +35 -0
  440. package/graphql/validation/storeWorkflow.js +10 -0
  441. package/graphql/validation/storeWorkflow.js.map +1 -0
  442. package/graphql/validation/takeOverWorkflowStateStep.d.ts +4 -0
  443. package/graphql/validation/takeOverWorkflowStateStep.js +7 -0
  444. package/graphql/validation/takeOverWorkflowStateStep.js.map +1 -0
  445. package/graphql/validation/workflow.d.ts +33 -0
  446. package/graphql/validation/workflow.js +9 -0
  447. package/graphql/validation/workflow.js.map +1 -0
  448. package/graphql/workflowState.d.ts +2 -0
  449. package/graphql/workflowState.js +429 -0
  450. package/graphql/workflowState.js.map +1 -0
  451. package/graphql/workflows.d.ts +2 -0
  452. package/graphql/workflows.js +213 -0
  453. package/graphql/workflows.js.map +1 -0
  454. package/index.d.ts +1 -0
  455. package/index.js +1 -0
  456. package/package.json +48 -0
  457. package/types.d.ts +20 -0
  458. package/types.js +0 -0
@@ -0,0 +1,13 @@
1
+ import { MailerService } from "@webiny/api-mailer";
2
+ import { NotificationTransport } from "./abstractions.js";
3
+ declare class MailNotificationTransportImpl implements NotificationTransport.Interface {
4
+ readonly id = "e-mail";
5
+ readonly title = "E-Mail";
6
+ private readonly mailer;
7
+ constructor(mailer: MailerService.Interface);
8
+ send(params: NotificationTransport.SendParams): Promise<void>;
9
+ }
10
+ export declare const MailNotificationTransport: typeof MailNotificationTransportImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").INotificationTransport>;
12
+ };
13
+ export {};
@@ -0,0 +1,38 @@
1
+ import { MailerService } from "@webiny/api-mailer";
2
+ import { NotificationTransport } from "./abstractions.js";
3
+ class MailNotificationTransportImpl {
4
+ constructor(mailer){
5
+ this.id = "e-mail";
6
+ this.title = "E-Mail";
7
+ this.mailer = mailer;
8
+ }
9
+ async send(params) {
10
+ const { users, message } = params;
11
+ const bcc = users.map((user)=>{
12
+ if (!user.displayName) return user.email;
13
+ return `"${user.displayName}" <${user.email}>`;
14
+ }).filter((user)=>!!user);
15
+ if (0 === bcc.length) return;
16
+ const result = await this.mailer.sendMail({
17
+ bcc,
18
+ subject: message.title,
19
+ text: message.body,
20
+ html: `<p>${message.body.replace(/\n/g, "<br/>")}</p>`
21
+ });
22
+ if (result.isOk()) return;
23
+ console.error({
24
+ message: "Failed to send e-mail notification.",
25
+ error: result.error,
26
+ users: users.map((u)=>u.email)
27
+ });
28
+ }
29
+ }
30
+ const MailNotificationTransport = NotificationTransport.createImplementation({
31
+ implementation: MailNotificationTransportImpl,
32
+ dependencies: [
33
+ MailerService
34
+ ]
35
+ });
36
+ export { MailNotificationTransport };
37
+
38
+ //# sourceMappingURL=MailNotificationTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/notifications/NotificationTransport/MailNotificationTransport.js","sources":["../../../../src/features/notifications/NotificationTransport/MailNotificationTransport.ts"],"sourcesContent":["import { MailerService } from \"@webiny/api-mailer\";\nimport { NotificationTransport } from \"./abstractions.js\";\n\nclass MailNotificationTransportImpl implements NotificationTransport.Interface {\n public readonly id = \"e-mail\";\n public readonly title = \"E-Mail\";\n\n private readonly mailer: MailerService.Interface;\n\n public constructor(mailer: MailerService.Interface) {\n this.mailer = mailer;\n }\n\n public async send(params: NotificationTransport.SendParams): Promise<void> {\n const { users, message } = params;\n\n const bcc = users\n .map(user => {\n if (!user.displayName) {\n return user.email;\n }\n return `\"${user.displayName}\" <${user.email}>`;\n })\n /**\n * Just in case...\n */\n .filter(user => !!user);\n\n if (bcc.length === 0) {\n return;\n }\n\n const result = await this.mailer.sendMail({\n bcc,\n subject: message.title,\n text: message.body,\n html: `<p>${message.body.replace(/\\n/g, \"<br/>\")}</p>`\n });\n if (result.isOk()) {\n return;\n }\n console.error({\n message: \"Failed to send e-mail notification.\",\n error: result.error,\n users: users.map(u => u.email)\n });\n }\n}\n\nexport const MailNotificationTransport = NotificationTransport.createImplementation({\n implementation: MailNotificationTransportImpl,\n dependencies: [MailerService]\n});\n"],"names":["MailNotificationTransportImpl","mailer","params","users","message","bcc","user","result","console","u","MailNotificationTransport","NotificationTransport","MailerService"],"mappings":";;AAGA,MAAMA;IAMF,YAAmBC,MAA+B,CAAE;aALpC,EAAE,GAAG;aACL,KAAK,GAAG;QAKpB,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,MAAa,KAAKC,MAAwC,EAAiB;QACvE,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAE,GAAGF;QAE3B,MAAMG,MAAMF,MACP,GAAG,CAACG,CAAAA;YACD,IAAI,CAACA,KAAK,WAAW,EACjB,OAAOA,KAAK,KAAK;YAErB,OAAO,CAAC,CAAC,EAAEA,KAAK,WAAW,CAAC,GAAG,EAAEA,KAAK,KAAK,CAAC,CAAC,CAAC;QAClD,GAIC,MAAM,CAACA,CAAAA,OAAQ,CAAC,CAACA;QAEtB,IAAID,AAAe,MAAfA,IAAI,MAAM,EACV;QAGJ,MAAME,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACtCF;YACA,SAASD,QAAQ,KAAK;YACtB,MAAMA,QAAQ,IAAI;YAClB,MAAM,CAAC,GAAG,EAAEA,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,SAAS,IAAI,CAAC;QAC1D;QACA,IAAIG,OAAO,IAAI,IACX;QAEJC,QAAQ,KAAK,CAAC;YACV,SAAS;YACT,OAAOD,OAAO,KAAK;YACnB,OAAOJ,MAAM,GAAG,CAACM,CAAAA,IAAKA,EAAE,KAAK;QACjC;IACJ;AACJ;AAEO,MAAMC,4BAA4BC,sBAAsB,oBAAoB,CAAC;IAChF,gBAAgBX;IAChB,cAAc;QAACY;KAAc;AACjC"}
@@ -0,0 +1,21 @@
1
+ import type { INotificationType, INotificationTypeMessage } from "../../../domain/notifications/abstractions.js";
2
+ import type { NonEmptyArray } from "@webiny/api/types.js";
3
+ export interface INotificationTransportUser {
4
+ id: string;
5
+ email: string;
6
+ displayName: string;
7
+ }
8
+ export interface INotificationTransportSendParams {
9
+ users: NonEmptyArray<INotificationTransportUser>;
10
+ message: INotificationTypeMessage;
11
+ }
12
+ export interface INotificationTransport {
13
+ id: INotificationType["id"];
14
+ title: INotificationType["title"];
15
+ send(params: INotificationTransportSendParams): Promise<void>;
16
+ }
17
+ export declare const NotificationTransport: import("@webiny/di").Abstraction<INotificationTransport>;
18
+ export declare namespace NotificationTransport {
19
+ type Interface = INotificationTransport;
20
+ type SendParams = INotificationTransportSendParams;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const NotificationTransport = createAbstraction("WorkflowNotificationTransport");
3
+ export { NotificationTransport };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/notifications/NotificationTransport/abstractions.js","sources":["../../../../src/features/notifications/NotificationTransport/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n INotificationType,\n INotificationTypeMessage\n} from \"~/domain/notifications/abstractions.js\";\nimport type { NonEmptyArray } from \"@webiny/api/types.js\";\n\nexport interface INotificationTransportUser {\n id: string;\n email: string;\n displayName: string;\n}\n\nexport interface INotificationTransportSendParams {\n users: NonEmptyArray<INotificationTransportUser>;\n message: INotificationTypeMessage;\n}\n\nexport interface INotificationTransport {\n id: INotificationType[\"id\"];\n title: INotificationType[\"title\"];\n send(params: INotificationTransportSendParams): Promise<void>;\n}\n\nexport const NotificationTransport = createAbstraction<INotificationTransport>(\n \"WorkflowNotificationTransport\"\n);\n\nexport namespace NotificationTransport {\n export type Interface = INotificationTransport;\n export type SendParams = INotificationTransportSendParams;\n}\n"],"names":["NotificationTransport","createAbstraction"],"mappings":";AAwBO,MAAMA,wBAAwBC,kBACjC"}
@@ -0,0 +1,4 @@
1
+ export declare const NotificationTransportFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { MailNotificationTransport } from "./MailNotificationTransport.js";
3
+ const NotificationTransportFeature = createFeature({
4
+ name: "WorkflowNotifications/NotificationTransport",
5
+ register (container) {
6
+ container.register(MailNotificationTransport);
7
+ }
8
+ });
9
+ export { NotificationTransportFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/notifications/NotificationTransport/feature.js","sources":["../../../../src/features/notifications/NotificationTransport/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MailNotificationTransport } from \"./MailNotificationTransport.js\";\n\nexport const NotificationTransportFeature = createFeature({\n name: \"WorkflowNotifications/NotificationTransport\",\n register(container) {\n container.register(MailNotificationTransport);\n }\n});\n"],"names":["NotificationTransportFeature","createFeature","container","MailNotificationTransport"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,3 @@
1
+ export { NotificationTransportFeature } from "./feature.js";
2
+ export { NotificationTransport } from "./abstractions.js";
3
+ export type { INotificationTransportSendParams, INotificationTransport, INotificationTransportUser } from "./abstractions.js";
@@ -0,0 +1,2 @@
1
+ export { NotificationTransportFeature } from "./feature.js";
2
+ export { NotificationTransport } from "./abstractions.js";
@@ -0,0 +1,21 @@
1
+ import type { NonEmptyArray } from "@webiny/api/types.js";
2
+ export interface IWorkflowStepTeamInput {
3
+ id: string;
4
+ }
5
+ export interface IWorkflowStepNotificationInput {
6
+ id: string;
7
+ }
8
+ export interface IWorkflowStepInput {
9
+ id: string;
10
+ title: string;
11
+ color: string;
12
+ description?: string;
13
+ teams: NonEmptyArray<IWorkflowStepTeamInput>;
14
+ notifications?: IWorkflowStepNotificationInput[];
15
+ }
16
+ export interface IWorkflowInput {
17
+ id: string;
18
+ app: string;
19
+ name: string;
20
+ steps: NonEmptyArray<IWorkflowStepInput>;
21
+ }
File without changes
@@ -0,0 +1,14 @@
1
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
2
+ import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
3
+ import { CreateWorkflowRepository as Repository } from "./abstractions.js";
4
+ declare class CreateWorkflowRepositoryImpl implements Repository.Interface {
5
+ private createEntry;
6
+ private model;
7
+ private mapper;
8
+ constructor(createEntry: CreateEntryUseCase.Interface, model: WorkflowModel.Interface, mapper: WorkflowMapper.Interface);
9
+ execute(input: Repository.Input): Repository.Return;
10
+ }
11
+ export declare const CreateWorkflowRepository: typeof CreateWorkflowRepositoryImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWorkflowRepository>;
13
+ };
14
+ export {};
@@ -0,0 +1,46 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
4
+ import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
5
+ import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
6
+ import { CreateWorkflowRepository } from "./abstractions.js";
7
+ class CreateWorkflowRepositoryImpl {
8
+ constructor(createEntry, model, mapper){
9
+ this.createEntry = createEntry;
10
+ this.model = model;
11
+ this.mapper = mapper;
12
+ }
13
+ async execute(input) {
14
+ const { id } = parseIdentifier(input.id);
15
+ const values = this.mapper.toCmsEntry({
16
+ id,
17
+ app: input.app,
18
+ name: input.name,
19
+ steps: input.steps
20
+ });
21
+ try {
22
+ const createResult = await this.createEntry.execute(this.model, {
23
+ id,
24
+ values
25
+ });
26
+ if (createResult.isFail()) return Result.fail(new WorkflowPersistenceError(createResult.error));
27
+ return Result.ok({
28
+ ...values,
29
+ id
30
+ });
31
+ } catch (error) {
32
+ return Result.fail(new WorkflowPersistenceError(error));
33
+ }
34
+ }
35
+ }
36
+ const CreateWorkflowRepository_CreateWorkflowRepository = CreateWorkflowRepository.createImplementation({
37
+ implementation: CreateWorkflowRepositoryImpl,
38
+ dependencies: [
39
+ CreateEntryUseCase,
40
+ WorkflowModel,
41
+ WorkflowMapper
42
+ ]
43
+ });
44
+ export { CreateWorkflowRepository_CreateWorkflowRepository as CreateWorkflowRepository };
45
+
46
+ //# sourceMappingURL=CreateWorkflowRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/CreateWorkflowRepository.js","sources":["../../../../src/features/workflow/CreateWorkflow/CreateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { CreateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n try {\n const createResult = await this.createEntry.execute<IWorkflow>(this.model, {\n id,\n values\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(createResult.error));\n }\n\n return Result.ok({ ...values, id });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error));\n }\n }\n}\n\nexport const CreateWorkflowRepository = Repository.createImplementation({\n implementation: CreateWorkflowRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["CreateWorkflowRepositoryImpl","createEntry","model","mapper","input","id","parseIdentifier","values","createResult","Result","WorkflowPersistenceError","error","CreateWorkflowRepository","Repository","CreateEntryUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBF,MAAM,EAAE;QAEvC,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKD,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QACA,IAAI;YACA,MAAMI,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAE;gBACvEH;gBACAE;YACJ;YAEA,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBAAE,GAAGF,MAAM;gBAAEF;YAAG;QACrC,EAAE,OAAOM,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBb;IAChB,cAAc;QAACc;QAAoBC;QAAeC;KAAe;AACrE"}
@@ -0,0 +1,15 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from "./abstractions.js";
4
+ declare class CreateWorkflowUseCaseImpl implements UseCase.Interface {
5
+ private identityContext;
6
+ private eventPublisher;
7
+ private repository;
8
+ constructor(identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface, repository: CreateWorkflowRepository.Interface);
9
+ execute(input: UseCase.Input): UseCase.Return;
10
+ private ensureManageAccess;
11
+ }
12
+ export declare const CreateWorkflowUseCase: typeof CreateWorkflowUseCaseImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWorkflowUseCase>;
14
+ };
15
+ export {};
@@ -0,0 +1,52 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
+ import { CreateWorkflowRepository, CreateWorkflowUseCase } from "./abstractions.js";
5
+ import { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from "./events.js";
6
+ import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
7
+ import { WORKFLOWS_PERMISSION } from "../../../constants.js";
8
+ class CreateWorkflowUseCaseImpl {
9
+ constructor(identityContext, eventPublisher, repository){
10
+ this.identityContext = identityContext;
11
+ this.eventPublisher = eventPublisher;
12
+ this.repository = repository;
13
+ }
14
+ async execute(input) {
15
+ const hasAccess = await this.ensureManageAccess();
16
+ if (hasAccess.isFail()) return Result.fail(hasAccess.error);
17
+ const workflow = {
18
+ id: input.id,
19
+ app: input.app,
20
+ name: input.name,
21
+ steps: input.steps
22
+ };
23
+ await this.eventPublisher.publish(new WorkflowBeforeCreateEvent({
24
+ workflow,
25
+ input
26
+ }));
27
+ const result = await this.repository.execute(input);
28
+ if (result.isFail()) return result;
29
+ await this.eventPublisher.publish(new WorkflowAfterCreateEvent({
30
+ workflow: result.value,
31
+ input
32
+ }));
33
+ return Result.ok(result.value);
34
+ }
35
+ async ensureManageAccess() {
36
+ const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
37
+ for (const permission of permissions)if ("*" === permission.name) return Result.ok();
38
+ else if (permission.editor) return Result.ok();
39
+ return Result.fail(new WorkflowNotAuthorizedError("You cannot manage workflows."));
40
+ }
41
+ }
42
+ const CreateWorkflowUseCase_CreateWorkflowUseCase = CreateWorkflowUseCase.createImplementation({
43
+ implementation: CreateWorkflowUseCaseImpl,
44
+ dependencies: [
45
+ IdentityContext,
46
+ EventPublisher,
47
+ CreateWorkflowRepository
48
+ ]
49
+ });
50
+ export { CreateWorkflowUseCase_CreateWorkflowUseCase as CreateWorkflowUseCase };
51
+
52
+ //# sourceMappingURL=CreateWorkflowUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/CreateWorkflowUseCase.js","sources":["../../../../src/features/workflow/CreateWorkflow/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"],"names":["CreateWorkflowUseCaseImpl","identityContext","eventPublisher","repository","input","hasAccess","Result","workflow","WorkflowBeforeCreateEvent","result","WorkflowAfterCreateEvent","permissions","WORKFLOWS_PERMISSION","permission","WorkflowNotAuthorizedError","CreateWorkflowUseCase","UseCase","IdentityContext","EventPublisher","CreateWorkflowRepository"],"mappings":";;;;;;;AASA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,CACxD;aAHUF,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAkB;QAChD,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB;QAC/C,IAAIA,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,WAAW;YACb,IAAIH,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAII,0BAA0B;YAC1BD;YACAH;QACJ;QAGJ,MAAMK,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACL;QAC7C,IAAIK,OAAO,MAAM,IACb,OAAOA;QAGX,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,yBAAyB;YACzB,UAAUD,OAAO,KAAK;YACtBL;QACJ;QAGJ,OAAOE,OAAO,EAAE,CAACG,OAAO,KAAK;IACjC;IAEA,MAAc,qBAAwE;QAClF,MAAME,cACF,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CACrCC;QAGR,KAAK,MAAMC,cAAcF,YACrB,IAAIE,AAAoB,QAApBA,WAAW,IAAI,EACf,OAAOP,OAAO,EAAE;aACb,IAAIO,WAAW,MAAM,EACxB,OAAOP,OAAO,EAAE;QAIxB,OAAOA,OAAO,IAAI,CAAC,IAAIQ,2BAA2B;IACtD;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA4B,CAAC;IAC9D,gBAAgBhB;IAChB,cAAc;QAACiB;QAAiBC;QAAgBC;KAAyB;AAC7E"}
@@ -0,0 +1,56 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { IWorkflow } from "../../../domain/workflow/abstractions.js";
3
+ import type { NonEmptyArray } from "@webiny/api/types.js";
4
+ import { type WorkflowNotAuthorizedError, type WorkflowPersistenceError, type WorkflowValidationError } from "../../../domain/workflow/errors.js";
5
+ import type { IWorkflowStepInput } from "../../../features/shared/abstractions.js";
6
+ export interface ICreateWorkflowInput {
7
+ app: string;
8
+ id: string;
9
+ name: string;
10
+ steps: NonEmptyArray<IWorkflowStepInput>;
11
+ }
12
+ export interface WorkflowBeforeCreatePayload {
13
+ workflow: IWorkflow;
14
+ input: ICreateWorkflowInput;
15
+ }
16
+ export interface WorkflowAfterCreatePayload {
17
+ workflow: IWorkflow;
18
+ input: ICreateWorkflowInput;
19
+ }
20
+ /**
21
+ * CreateWorkflow use case interface
22
+ */
23
+ export interface ICreateWorkflowUseCase {
24
+ execute(input: ICreateWorkflowInput): Promise<Result<IWorkflow, UseCaseError>>;
25
+ }
26
+ export interface ICreateWorkflowUseCaseErrors {
27
+ notAuthorized: WorkflowNotAuthorizedError;
28
+ persistence: WorkflowPersistenceError;
29
+ validation: WorkflowValidationError;
30
+ }
31
+ type UseCaseError = ICreateWorkflowUseCaseErrors[keyof ICreateWorkflowUseCaseErrors];
32
+ export declare const CreateWorkflowUseCase: import("@webiny/di").Abstraction<ICreateWorkflowUseCase>;
33
+ export declare namespace CreateWorkflowUseCase {
34
+ type Interface = ICreateWorkflowUseCase;
35
+ type Input = ICreateWorkflowInput;
36
+ type Return = Promise<Result<IWorkflow, UseCaseError>>;
37
+ type Error = UseCaseError;
38
+ }
39
+ /**
40
+ * CreateWorkflow repository interface
41
+ */
42
+ export interface ICreateWorkflowRepository {
43
+ execute(input: ICreateWorkflowInput): Promise<Result<IWorkflow, RepositoryError>>;
44
+ }
45
+ export interface ICreateWorkflowRepositoryErrors {
46
+ persistence: WorkflowPersistenceError;
47
+ }
48
+ type RepositoryError = ICreateWorkflowRepositoryErrors[keyof ICreateWorkflowRepositoryErrors];
49
+ export declare const CreateWorkflowRepository: import("@webiny/di").Abstraction<ICreateWorkflowRepository>;
50
+ export declare namespace CreateWorkflowRepository {
51
+ type Interface = ICreateWorkflowRepository;
52
+ type Input = ICreateWorkflowInput;
53
+ type Return = Promise<Result<IWorkflow, RepositoryError>>;
54
+ type Error = RepositoryError;
55
+ }
56
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CreateWorkflowUseCase = createAbstraction("CreateWorkflowUseCase");
3
+ const CreateWorkflowRepository = createAbstraction("CreateWorkflowRepository");
4
+ export { CreateWorkflowRepository, CreateWorkflowUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/abstractions.js","sources":["../../../../src/features/workflow/CreateWorkflow/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { IWorkflow } from \"~/domain/workflow/abstractions.js\";\nimport type { NonEmptyArray } from \"@webiny/api/types.js\";\nimport {\n type WorkflowNotAuthorizedError,\n type WorkflowPersistenceError,\n type WorkflowValidationError\n} from \"~/domain/workflow/errors.js\";\nimport type { IWorkflowStepInput } from \"~/features/shared/abstractions.js\";\n\n// Input types\nexport interface ICreateWorkflowInput {\n app: string;\n id: string;\n name: string;\n steps: NonEmptyArray<IWorkflowStepInput>;\n}\n\n// Event payloads\nexport interface WorkflowBeforeCreatePayload {\n workflow: IWorkflow;\n input: ICreateWorkflowInput;\n}\n\nexport interface WorkflowAfterCreatePayload {\n workflow: IWorkflow;\n input: ICreateWorkflowInput;\n}\n\n/**\n * CreateWorkflow use case interface\n */\nexport interface ICreateWorkflowUseCase {\n execute(input: ICreateWorkflowInput): Promise<Result<IWorkflow, UseCaseError>>;\n}\n\nexport interface ICreateWorkflowUseCaseErrors {\n notAuthorized: WorkflowNotAuthorizedError;\n persistence: WorkflowPersistenceError;\n validation: WorkflowValidationError;\n}\n\ntype UseCaseError = ICreateWorkflowUseCaseErrors[keyof ICreateWorkflowUseCaseErrors];\n\nexport const CreateWorkflowUseCase =\n createAbstraction<ICreateWorkflowUseCase>(\"CreateWorkflowUseCase\");\n\nexport namespace CreateWorkflowUseCase {\n export type Interface = ICreateWorkflowUseCase;\n export type Input = ICreateWorkflowInput;\n export type Return = Promise<Result<IWorkflow, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * CreateWorkflow repository interface\n */\nexport interface ICreateWorkflowRepository {\n execute(input: ICreateWorkflowInput): Promise<Result<IWorkflow, RepositoryError>>;\n}\n\nexport interface ICreateWorkflowRepositoryErrors {\n persistence: WorkflowPersistenceError;\n}\n\ntype RepositoryError = ICreateWorkflowRepositoryErrors[keyof ICreateWorkflowRepositoryErrors];\n\nexport const CreateWorkflowRepository = createAbstraction<ICreateWorkflowRepository>(\n \"CreateWorkflowRepository\"\n);\n\nexport namespace CreateWorkflowRepository {\n export type Interface = ICreateWorkflowRepository;\n export type Input = ICreateWorkflowInput;\n export type Return = Promise<Result<IWorkflow, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"names":["CreateWorkflowUseCase","createAbstraction","CreateWorkflowRepository"],"mappings":";AA6CO,MAAMA,wBACTC,kBAA0C;AAsBvC,MAAMC,2BAA2BD,kBACpC"}
@@ -0,0 +1,21 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { WorkflowBeforeCreatePayload, WorkflowAfterCreatePayload } from "./abstractions.js";
4
+ export declare class WorkflowBeforeCreateEvent extends DomainEvent<WorkflowBeforeCreatePayload> {
5
+ eventType: "workflow.beforeCreate";
6
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<WorkflowBeforeCreateEvent>>;
7
+ }
8
+ export declare const WorkflowBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<WorkflowBeforeCreateEvent>>;
9
+ export declare namespace WorkflowBeforeCreateHandler {
10
+ type Interface = IEventHandler<WorkflowBeforeCreateEvent>;
11
+ type Event = WorkflowBeforeCreateEvent;
12
+ }
13
+ export declare class WorkflowAfterCreateEvent extends DomainEvent<WorkflowAfterCreatePayload> {
14
+ eventType: "workflow.afterCreate";
15
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<WorkflowAfterCreateEvent>>;
16
+ }
17
+ export declare const WorkflowAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<WorkflowAfterCreateEvent>>;
18
+ export declare namespace WorkflowAfterCreateHandler {
19
+ type Interface = IEventHandler<WorkflowAfterCreateEvent>;
20
+ type Event = WorkflowAfterCreateEvent;
21
+ }
@@ -0,0 +1,23 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ class WorkflowBeforeCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return WorkflowBeforeCreateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "workflow.beforeCreate";
9
+ }
10
+ }
11
+ const WorkflowBeforeCreateHandler = createAbstraction("WorkflowBeforeCreateHandler");
12
+ class WorkflowAfterCreateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return WorkflowAfterCreateHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "workflow.afterCreate";
18
+ }
19
+ }
20
+ const WorkflowAfterCreateHandler = createAbstraction("WorkflowAfterCreateHandler");
21
+ export { WorkflowAfterCreateEvent, WorkflowAfterCreateHandler, WorkflowBeforeCreateEvent, WorkflowBeforeCreateHandler };
22
+
23
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/events.js","sources":["../../../../src/features/workflow/CreateWorkflow/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"],"names":["WorkflowBeforeCreateEvent","DomainEvent","WorkflowBeforeCreateHandler","createAbstraction","WorkflowAfterCreateEvent","WorkflowAfterCreateHandler"],"mappings":";;AAMO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,8BAA8BC,kBAEzC;AAQK,MAAMC,iCAAiCH;IAG1C,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,6BAA6BF,kBAExC"}
@@ -0,0 +1,4 @@
1
+ export declare const CreateWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateWorkflowUseCase } from "./CreateWorkflowUseCase.js";
3
+ import { CreateWorkflowRepository } from "./CreateWorkflowRepository.js";
4
+ const CreateWorkflowFeature = createFeature({
5
+ name: "Workflows/CreateWorkflow",
6
+ register (container) {
7
+ container.register(CreateWorkflowRepository).inSingletonScope();
8
+ container.register(CreateWorkflowUseCase);
9
+ }
10
+ });
11
+ export { CreateWorkflowFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/feature.js","sources":["../../../../src/features/workflow/CreateWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWorkflowUseCase } from \"./CreateWorkflowUseCase.js\";\nimport { CreateWorkflowRepository } from \"./CreateWorkflowRepository.js\";\n\nexport const CreateWorkflowFeature = createFeature({\n name: \"Workflows/CreateWorkflow\",\n register(container) {\n container.register(CreateWorkflowRepository).inSingletonScope();\n container.register(CreateWorkflowUseCase);\n }\n});\n"],"names":["CreateWorkflowFeature","createFeature","container","CreateWorkflowRepository","CreateWorkflowUseCase"],"mappings":";;;AAIO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,0BAA0B,gBAAgB;QAC7DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -0,0 +1,4 @@
1
+ export { CreateWorkflowFeature } from "./feature.js";
2
+ export { CreateWorkflowUseCase, CreateWorkflowRepository } from "./abstractions.js";
3
+ export type { ICreateWorkflowInput } from "./abstractions.js";
4
+ export { WorkflowBeforeCreateEvent, WorkflowAfterCreateEvent, WorkflowBeforeCreateHandler, WorkflowAfterCreateHandler } from "./events.js";
@@ -0,0 +1,3 @@
1
+ export { CreateWorkflowFeature } from "./feature.js";
2
+ export { CreateWorkflowRepository, CreateWorkflowUseCase } from "./abstractions.js";
3
+ export { WorkflowAfterCreateEvent, WorkflowAfterCreateHandler, WorkflowBeforeCreateEvent, WorkflowBeforeCreateHandler } from "./events.js";
@@ -0,0 +1,13 @@
1
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
2
+ import { WorkflowModel } from "../../../domain/workflow/abstractions.js";
3
+ import { DeleteWorkflowRepository as Repository } from "./abstractions.js";
4
+ declare class DeleteWorkflowRepositoryImpl implements Repository.Interface {
5
+ private deleteEntry;
6
+ private model;
7
+ constructor(deleteEntry: DeleteEntryUseCase.Interface, model: WorkflowModel.Interface);
8
+ execute(input: Repository.Params): Repository.Return;
9
+ }
10
+ export declare const DeleteWorkflowRepository: typeof DeleteWorkflowRepositoryImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteWorkflowRepository>;
12
+ };
13
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { createIdentifier } from "@webiny/utils";
3
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
4
+ import { WorkflowModel } from "../../../domain/workflow/abstractions.js";
5
+ import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
6
+ import { DeleteWorkflowRepository } from "./abstractions.js";
7
+ class DeleteWorkflowRepositoryImpl {
8
+ constructor(deleteEntry, model){
9
+ this.deleteEntry = deleteEntry;
10
+ this.model = model;
11
+ }
12
+ async execute(input) {
13
+ const workflowId = createIdentifier({
14
+ id: input.id,
15
+ version: 1
16
+ });
17
+ try {
18
+ const result = await this.deleteEntry.execute(this.model, workflowId);
19
+ if (result.isFail()) return Result.fail(new WorkflowPersistenceError(result.error));
20
+ return Result.ok();
21
+ } catch (error) {
22
+ return Result.fail(new WorkflowPersistenceError(error));
23
+ }
24
+ }
25
+ }
26
+ const DeleteWorkflowRepository_DeleteWorkflowRepository = DeleteWorkflowRepository.createImplementation({
27
+ implementation: DeleteWorkflowRepositoryImpl,
28
+ dependencies: [
29
+ DeleteEntryUseCase,
30
+ WorkflowModel
31
+ ]
32
+ });
33
+ export { DeleteWorkflowRepository_DeleteWorkflowRepository as DeleteWorkflowRepository };
34
+
35
+ //# sourceMappingURL=DeleteWorkflowRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js","sources":["../../../../src/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { DeleteWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass DeleteWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private model: WorkflowModel.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const workflowId = createIdentifier({\n id: input.id,\n version: 1\n });\n\n try {\n const result = await this.deleteEntry.execute(this.model, workflowId);\n\n if (result.isFail()) {\n return Result.fail(new WorkflowPersistenceError(result.error));\n }\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const DeleteWorkflowRepository = Repository.createImplementation({\n implementation: DeleteWorkflowRepositoryImpl,\n dependencies: [DeleteEntryUseCase, WorkflowModel]\n});\n"],"names":["DeleteWorkflowRepositoryImpl","deleteEntry","model","input","workflowId","createIdentifier","result","Result","WorkflowPersistenceError","error","DeleteWorkflowRepository","Repository","DeleteEntryUseCase","WorkflowModel"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,CACxC;aAFUD,WAAW,GAAXA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,aAAaC,iBAAiB;YAChC,IAAIF,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,IAAI;YACA,MAAMG,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAEF;YAE1D,IAAIE,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,OAAO,KAAK;YAGhE,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOE,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBX;IAChB,cAAc;QAACY;QAAoBC;KAAc;AACrD"}
@@ -0,0 +1,17 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
4
+ import { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from "./abstractions.js";
5
+ declare class DeleteWorkflowUseCaseImpl implements UseCase.Interface {
6
+ private identityContext;
7
+ private eventPublisher;
8
+ private getWorkflow;
9
+ private repository;
10
+ constructor(identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface, getWorkflow: GetWorkflowUseCase.Interface, repository: DeleteWorkflowRepository.Interface);
11
+ execute(input: UseCase.Params): UseCase.Return;
12
+ private ensureManageAccess;
13
+ }
14
+ export declare const DeleteWorkflowUseCase: typeof DeleteWorkflowUseCaseImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteWorkflowUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,53 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
4
+ import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
5
+ import { DeleteWorkflowRepository, DeleteWorkflowUseCase } from "./abstractions.js";
6
+ import { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from "./events.js";
7
+ import { WorkflowNotAuthorizedError, WorkflowNotFoundError } from "../../../domain/workflow/errors.js";
8
+ import { WORKFLOWS_PERMISSION } from "../../../constants.js";
9
+ class DeleteWorkflowUseCaseImpl {
10
+ constructor(identityContext, eventPublisher, getWorkflow, repository){
11
+ this.identityContext = identityContext;
12
+ this.eventPublisher = eventPublisher;
13
+ this.getWorkflow = getWorkflow;
14
+ this.repository = repository;
15
+ }
16
+ async execute(input) {
17
+ const hasAccess = await this.ensureManageAccess();
18
+ if (hasAccess.isFail()) return Result.fail(hasAccess.error);
19
+ const workflowResult = await this.getWorkflow.execute(input);
20
+ if (workflowResult.isFail()) return Result.fail(new WorkflowNotFoundError({
21
+ id: input.id,
22
+ app: input.app
23
+ }));
24
+ const workflow = workflowResult.value;
25
+ await this.eventPublisher.publish(new WorkflowBeforeDeleteEvent({
26
+ workflow
27
+ }));
28
+ const result = await this.repository.execute(input);
29
+ if (result.isFail()) return result;
30
+ await this.eventPublisher.publish(new WorkflowAfterDeleteEvent({
31
+ workflow
32
+ }));
33
+ return Result.ok();
34
+ }
35
+ async ensureManageAccess() {
36
+ const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
37
+ for (const permission of permissions)if ("*" === permission.name) return Result.ok();
38
+ else if (permission.editor) return Result.ok();
39
+ return Result.fail(new WorkflowNotAuthorizedError("You cannot manage workflows."));
40
+ }
41
+ }
42
+ const DeleteWorkflowUseCase_DeleteWorkflowUseCase = DeleteWorkflowUseCase.createImplementation({
43
+ implementation: DeleteWorkflowUseCaseImpl,
44
+ dependencies: [
45
+ IdentityContext,
46
+ EventPublisher,
47
+ GetWorkflowUseCase,
48
+ DeleteWorkflowRepository
49
+ ]
50
+ });
51
+ export { DeleteWorkflowUseCase_DeleteWorkflowUseCase as DeleteWorkflowUseCase };
52
+
53
+ //# sourceMappingURL=DeleteWorkflowUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js","sources":["../../../../src/features/workflow/DeleteWorkflow/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"],"names":["DeleteWorkflowUseCaseImpl","identityContext","eventPublisher","getWorkflow","repository","input","hasAccess","Result","workflowResult","WorkflowNotFoundError","workflow","WorkflowBeforeDeleteEvent","result","WorkflowAfterDeleteEvent","permissions","WORKFLOWS_PERMISSION","permission","WorkflowNotAuthorizedError","DeleteWorkflowUseCase","UseCase","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,CACxD;aAJUH,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB;QAC/C,IAAIA,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACH;QACtD,IAAIG,eAAe,MAAM,IACrB,OAAOD,OAAO,IAAI,CACd,IAAIE,sBAAsB;YACtB,IAAIJ,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMK,WAAWF,eAAe,KAAK;QAErC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIG,0BAA0B;YAC1BD;QACJ;QAGJ,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACP;QAC7C,IAAIO,OAAO,MAAM,IACb,OAAOA;QAGX,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,yBAAyB;YACzBH;QACJ;QAGJ,OAAOH,OAAO,EAAE;IACpB;IAEA,MAAc,qBAAwE;QAClF,MAAMO,cACF,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CACrCC;QAGR,KAAK,MAAMC,cAAcF,YACrB,IAAIE,AAAoB,QAApBA,WAAW,IAAI,EACf,OAAOT,OAAO,EAAE;aACb,IAAIS,WAAW,MAAM,EACxB,OAAOT,OAAO,EAAE;QAIxB,OAAOA,OAAO,IAAI,CAAC,IAAIU,2BAA2B;IACtD;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA4B,CAAC;IAC9D,gBAAgBnB;IAChB,cAAc;QAACoB;QAAiBC;QAAgBC;QAAoBC;KAAyB;AACjG"}