@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 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,15 @@
1
+ import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
2
+ import { CreateWorkflowUseCase } from "../CreateWorkflow/index.js";
3
+ import { UpdateWorkflowUseCase } from "../UpdateWorkflow/index.js";
4
+ import { StoreWorkflowUseCase as UseCase } from "./abstractions.js";
5
+ declare class StoreWorkflowUseCaseImpl implements UseCase.Interface {
6
+ private getWorkflow;
7
+ private createWorkflow;
8
+ private updateWorkflow;
9
+ constructor(getWorkflow: GetWorkflowUseCase.Interface, createWorkflow: CreateWorkflowUseCase.Interface, updateWorkflow: UpdateWorkflowUseCase.Interface);
10
+ execute(input: UseCase.Input): UseCase.Return;
11
+ }
12
+ export declare const StoreWorkflowUseCase: typeof StoreWorkflowUseCaseImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IStoreWorkflowUseCase>;
14
+ };
15
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
3
+ import { CreateWorkflowUseCase } from "../CreateWorkflow/index.js";
4
+ import { UpdateWorkflowUseCase } from "../UpdateWorkflow/index.js";
5
+ import { StoreWorkflowUseCase } from "./abstractions.js";
6
+ class StoreWorkflowUseCaseImpl {
7
+ constructor(getWorkflow, createWorkflow, updateWorkflow){
8
+ this.getWorkflow = getWorkflow;
9
+ this.createWorkflow = createWorkflow;
10
+ this.updateWorkflow = updateWorkflow;
11
+ }
12
+ async execute(input) {
13
+ const existingResult = await this.getWorkflow.execute({
14
+ app: input.app,
15
+ id: input.id
16
+ });
17
+ if (existingResult.isFail()) {
18
+ if ("Workflows/Workflow/NotFound" !== existingResult.error.code) return Result.fail(existingResult.error);
19
+ }
20
+ const existing = existingResult.isOk() ? existingResult.value : null;
21
+ if (!existing) return this.createWorkflow.execute(input);
22
+ return this.updateWorkflow.execute(input, existing);
23
+ }
24
+ }
25
+ const StoreWorkflowUseCase_StoreWorkflowUseCase = StoreWorkflowUseCase.createImplementation({
26
+ implementation: StoreWorkflowUseCaseImpl,
27
+ dependencies: [
28
+ GetWorkflowUseCase,
29
+ CreateWorkflowUseCase,
30
+ UpdateWorkflowUseCase
31
+ ]
32
+ });
33
+ export { StoreWorkflowUseCase_StoreWorkflowUseCase as StoreWorkflowUseCase };
34
+
35
+ //# sourceMappingURL=StoreWorkflowUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/StoreWorkflow/StoreWorkflowUseCase.js","sources":["../../../../src/features/workflow/StoreWorkflow/StoreWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { CreateWorkflowUseCase } from \"../CreateWorkflow/index.js\";\nimport { UpdateWorkflowUseCase } from \"../UpdateWorkflow/index.js\";\nimport { StoreWorkflowUseCase as UseCase } from \"./abstractions.js\";\n\nclass StoreWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private getWorkflow: GetWorkflowUseCase.Interface,\n private createWorkflow: CreateWorkflowUseCase.Interface,\n private updateWorkflow: UpdateWorkflowUseCase.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const existingResult = await this.getWorkflow.execute({\n app: input.app,\n id: input.id\n });\n\n // If getWorkflow fails with anything other than NotFound, propagate error\n if (existingResult.isFail()) {\n if (existingResult.error.code !== \"Workflows/Workflow/NotFound\") {\n return Result.fail(existingResult.error);\n }\n }\n\n const existing = existingResult.isOk() ? existingResult.value : null;\n\n if (!existing) {\n return this.createWorkflow.execute(input);\n } else {\n return this.updateWorkflow.execute(input, existing);\n }\n }\n}\n\nexport const StoreWorkflowUseCase = UseCase.createImplementation({\n implementation: StoreWorkflowUseCaseImpl,\n dependencies: [GetWorkflowUseCase, CreateWorkflowUseCase, UpdateWorkflowUseCase]\n});\n"],"names":["StoreWorkflowUseCaseImpl","getWorkflow","createWorkflow","updateWorkflow","input","existingResult","Result","existing","StoreWorkflowUseCase","UseCase","GetWorkflowUseCase","CreateWorkflowUseCase","UpdateWorkflowUseCase"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,WAAyC,EACzCC,cAA+C,EAC/CC,cAA+C,CACzD;aAHUF,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAkB;QAChD,MAAMC,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,KAAKD,MAAM,GAAG;YACd,IAAIA,MAAM,EAAE;QAChB;QAGA,IAAIC,eAAe,MAAM,IACrB;YAAA,IAAIA,AAA8B,kCAA9BA,eAAe,KAAK,CAAC,IAAI,EACzB,OAAOC,OAAO,IAAI,CAACD,eAAe,KAAK;QAC3C;QAGJ,MAAME,WAAWF,eAAe,IAAI,KAAKA,eAAe,KAAK,GAAG;QAEhE,IAAI,CAACE,UACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAACH;QAEnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAACA,OAAOG;IAElD;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAA4B,CAAC;IAC7D,gBAAgBT;IAChB,cAAc;QAACU;QAAoBC;QAAuBC;KAAsB;AACpF"}
@@ -0,0 +1,32 @@
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 WorkflowNotFoundError, type WorkflowNotAuthorizedError, type WorkflowPersistenceError, type WorkflowValidationError } from "../../../domain/workflow/errors.js";
5
+ import type { IWorkflowStepInput } from "../../../features/shared/abstractions.js";
6
+ export interface IStoreWorkflowInput {
7
+ app: string;
8
+ id: string;
9
+ name: string;
10
+ steps: NonEmptyArray<IWorkflowStepInput>;
11
+ }
12
+ /**
13
+ * StoreWorkflow use case interface - delegates to CreateWorkflow or UpdateWorkflow
14
+ */
15
+ export interface IStoreWorkflowUseCase {
16
+ execute(input: IStoreWorkflowInput): Promise<Result<IWorkflow, UseCaseError>>;
17
+ }
18
+ export interface IStoreWorkflowUseCaseErrors {
19
+ notFound: WorkflowNotFoundError;
20
+ notAuthorized: WorkflowNotAuthorizedError;
21
+ persistence: WorkflowPersistenceError;
22
+ validation: WorkflowValidationError;
23
+ }
24
+ type UseCaseError = IStoreWorkflowUseCaseErrors[keyof IStoreWorkflowUseCaseErrors];
25
+ export declare const StoreWorkflowUseCase: import("@webiny/di").Abstraction<IStoreWorkflowUseCase>;
26
+ export declare namespace StoreWorkflowUseCase {
27
+ type Interface = IStoreWorkflowUseCase;
28
+ type Input = IStoreWorkflowInput;
29
+ type Return = Promise<Result<IWorkflow, UseCaseError>>;
30
+ type Error = UseCaseError;
31
+ }
32
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const StoreWorkflowUseCase = createAbstraction("StoreWorkflowUseCase");
3
+ export { StoreWorkflowUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/StoreWorkflow/abstractions.js","sources":["../../../../src/features/workflow/StoreWorkflow/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 WorkflowNotFoundError,\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 (from context/abstractions/WorkflowsContext.ts)\nexport interface IStoreWorkflowInput {\n app: string;\n id: string;\n name: string;\n steps: NonEmptyArray<IWorkflowStepInput>;\n}\n\n/**\n * StoreWorkflow use case interface - delegates to CreateWorkflow or UpdateWorkflow\n */\nexport interface IStoreWorkflowUseCase {\n execute(input: IStoreWorkflowInput): Promise<Result<IWorkflow, UseCaseError>>;\n}\n\nexport interface IStoreWorkflowUseCaseErrors {\n notFound: WorkflowNotFoundError;\n notAuthorized: WorkflowNotAuthorizedError;\n persistence: WorkflowPersistenceError;\n validation: WorkflowValidationError;\n}\n\ntype UseCaseError = IStoreWorkflowUseCaseErrors[keyof IStoreWorkflowUseCaseErrors];\n\nexport const StoreWorkflowUseCase =\n createAbstraction<IStoreWorkflowUseCase>(\"StoreWorkflowUseCase\");\n\nexport namespace StoreWorkflowUseCase {\n export type Interface = IStoreWorkflowUseCase;\n export type Input = IStoreWorkflowInput;\n export type Return = Promise<Result<IWorkflow, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["StoreWorkflowUseCase","createAbstraction"],"mappings":";AAoCO,MAAMA,uBACTC,kBAAyC"}
@@ -0,0 +1,4 @@
1
+ export declare const StoreWorkflowFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,15 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { StoreWorkflowUseCase } from "./StoreWorkflowUseCase.js";
3
+ import { CreateWorkflowFeature } from "../CreateWorkflow/index.js";
4
+ import { UpdateWorkflowFeature } from "../UpdateWorkflow/index.js";
5
+ const StoreWorkflowFeature = createFeature({
6
+ name: "Workflows/StoreWorkflow",
7
+ register (container) {
8
+ CreateWorkflowFeature.register(container);
9
+ UpdateWorkflowFeature.register(container);
10
+ container.register(StoreWorkflowUseCase);
11
+ }
12
+ });
13
+ export { StoreWorkflowFeature };
14
+
15
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/StoreWorkflow/feature.js","sources":["../../../../src/features/workflow/StoreWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { StoreWorkflowUseCase } from \"./StoreWorkflowUseCase.js\";\nimport { CreateWorkflowFeature } from \"../CreateWorkflow/index.js\";\nimport { UpdateWorkflowFeature } from \"../UpdateWorkflow/index.js\";\n\nexport const StoreWorkflowFeature = createFeature({\n name: \"Workflows/StoreWorkflow\",\n register(container) {\n // Register dependencies\n CreateWorkflowFeature.register(container);\n UpdateWorkflowFeature.register(container);\n\n // Register StoreWorkflow use case\n container.register(StoreWorkflowUseCase);\n }\n});\n"],"names":["StoreWorkflowFeature","createFeature","container","CreateWorkflowFeature","UpdateWorkflowFeature","StoreWorkflowUseCase"],"mappings":";;;;AAKO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QAEdC,sBAAsB,QAAQ,CAACD;QAC/BE,sBAAsB,QAAQ,CAACF;QAG/BA,UAAU,QAAQ,CAACG;IACvB;AACJ"}
@@ -0,0 +1,3 @@
1
+ export { StoreWorkflowFeature } from "./feature.js";
2
+ export { StoreWorkflowUseCase } from "./abstractions.js";
3
+ export type { IStoreWorkflowInput } from "./abstractions.js";
@@ -0,0 +1,2 @@
1
+ export { StoreWorkflowFeature } from "./feature.js";
2
+ export { StoreWorkflowUseCase } from "./abstractions.js";
@@ -0,0 +1,15 @@
1
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
2
+ import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
3
+ import type { IUpdateWorkflowInput } from "./abstractions.js";
4
+ import { UpdateWorkflowRepository as Repository } from "./abstractions.js";
5
+ declare class UpdateWorkflowRepositoryImpl implements Repository.Interface {
6
+ private updateEntry;
7
+ private model;
8
+ private mapper;
9
+ constructor(updateEntry: UpdateEntryUseCase.Interface, model: WorkflowModel.Interface, mapper: WorkflowMapper.Interface);
10
+ execute(input: IUpdateWorkflowInput): Repository.Return;
11
+ }
12
+ export declare const UpdateWorkflowRepository: typeof UpdateWorkflowRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateWorkflowRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,50 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
3
+ import { createIdentifier } from "@webiny/utils";
4
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
5
+ import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
6
+ import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
7
+ import { UpdateWorkflowRepository } from "./abstractions.js";
8
+ class UpdateWorkflowRepositoryImpl {
9
+ constructor(updateEntry, model, mapper){
10
+ this.updateEntry = updateEntry;
11
+ this.model = model;
12
+ this.mapper = mapper;
13
+ }
14
+ async execute(input) {
15
+ const { id } = parseIdentifier(input.id);
16
+ const values = this.mapper.toCmsEntry({
17
+ id,
18
+ app: input.app,
19
+ name: input.name,
20
+ steps: input.steps
21
+ });
22
+ const workflowId = createIdentifier({
23
+ id,
24
+ version: 1
25
+ });
26
+ try {
27
+ const updateResult = await this.updateEntry.execute(this.model, workflowId, {
28
+ values
29
+ });
30
+ if (updateResult.isFail()) return Result.fail(new WorkflowPersistenceError(updateResult.error));
31
+ return Result.ok({
32
+ ...values,
33
+ id
34
+ });
35
+ } catch (error) {
36
+ return Result.fail(new WorkflowPersistenceError(error));
37
+ }
38
+ }
39
+ }
40
+ const UpdateWorkflowRepository_UpdateWorkflowRepository = UpdateWorkflowRepository.createImplementation({
41
+ implementation: UpdateWorkflowRepositoryImpl,
42
+ dependencies: [
43
+ UpdateEntryUseCase,
44
+ WorkflowModel,
45
+ WorkflowMapper
46
+ ]
47
+ });
48
+ export { UpdateWorkflowRepository_UpdateWorkflowRepository as UpdateWorkflowRepository };
49
+
50
+ //# sourceMappingURL=UpdateWorkflowRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { IUpdateWorkflowInput } from \"./abstractions.js\";\nimport { UpdateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass UpdateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: IUpdateWorkflowInput): 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\n const workflowId = createIdentifier({\n id,\n version: 1\n });\n\n try {\n const updateResult = await this.updateEntry.execute<IWorkflow>(this.model, workflowId, {\n values\n });\n\n if (updateResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(updateResult.error));\n }\n\n return Result.ok({\n ...values,\n id\n });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateWorkflowRepository = Repository.createImplementation({\n implementation: UpdateWorkflowRepositoryImpl,\n dependencies: [UpdateEntryUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["UpdateWorkflowRepositoryImpl","updateEntry","model","mapper","input","id","parseIdentifier","values","workflowId","createIdentifier","updateResult","Result","WorkflowPersistenceError","error","UpdateWorkflowRepository","Repository","UpdateEntryUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAA2B,EAAqB;QAC1D,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;QAEA,MAAMI,aAAaC,iBAAiB;YAChCJ;YACA,SAAS;QACb;QAEA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAEF,YAAY;gBACnFD;YACJ;YAEA,IAAIG,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBACb,GAAGJ,MAAM;gBACTF;YACJ;QACJ,EAAE,OAAOQ,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBf;IAChB,cAAc;QAACgB;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 { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from "./abstractions.js";
4
+ declare class UpdateWorkflowUseCaseImpl implements UseCase.Interface {
5
+ private identityContext;
6
+ private eventPublisher;
7
+ private repository;
8
+ constructor(identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface, repository: UpdateWorkflowRepository.Interface);
9
+ execute(input: UseCase.Input, original: UseCase.Input): UseCase.Return;
10
+ private ensureManageAccess;
11
+ }
12
+ export declare const UpdateWorkflowUseCase: typeof UpdateWorkflowUseCaseImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateWorkflowUseCase>;
14
+ };
15
+ export {};
@@ -0,0 +1,54 @@
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 { UpdateWorkflowRepository, UpdateWorkflowUseCase } from "./abstractions.js";
5
+ import { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from "./events.js";
6
+ import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
7
+ import { WORKFLOWS_PERMISSION } from "../../../constants.js";
8
+ class UpdateWorkflowUseCaseImpl {
9
+ constructor(identityContext, eventPublisher, repository){
10
+ this.identityContext = identityContext;
11
+ this.eventPublisher = eventPublisher;
12
+ this.repository = repository;
13
+ }
14
+ async execute(input, original) {
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 WorkflowBeforeUpdateEvent({
24
+ workflow,
25
+ original,
26
+ input
27
+ }));
28
+ const result = await this.repository.execute(input);
29
+ if (result.isFail()) return result;
30
+ await this.eventPublisher.publish(new WorkflowAfterUpdateEvent({
31
+ workflow: result.value,
32
+ original,
33
+ input
34
+ }));
35
+ return Result.ok(result.value);
36
+ }
37
+ async ensureManageAccess() {
38
+ const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
39
+ for (const permission of permissions)if ("*" === permission.name) return Result.ok();
40
+ else if (permission.editor) return Result.ok();
41
+ return Result.fail(new WorkflowNotAuthorizedError("You cannot manage workflows."));
42
+ }
43
+ }
44
+ const UpdateWorkflowUseCase_UpdateWorkflowUseCase = UpdateWorkflowUseCase.createImplementation({
45
+ implementation: UpdateWorkflowUseCaseImpl,
46
+ dependencies: [
47
+ IdentityContext,
48
+ EventPublisher,
49
+ UpdateWorkflowRepository
50
+ ]
51
+ });
52
+ export { UpdateWorkflowUseCase_UpdateWorkflowUseCase as UpdateWorkflowUseCase };
53
+
54
+ //# sourceMappingURL=UpdateWorkflowUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js","sources":["../../../../src/features/workflow/UpdateWorkflow/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"],"names":["UpdateWorkflowUseCaseImpl","identityContext","eventPublisher","repository","input","original","hasAccess","Result","workflow","WorkflowBeforeUpdateEvent","result","WorkflowAfterUpdateEvent","permissions","WORKFLOWS_PERMISSION","permission","WorkflowNotAuthorizedError","UpdateWorkflowUseCase","UseCase","IdentityContext","EventPublisher","UpdateWorkflowRepository"],"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,EAAEC,QAAuB,EAAkB;QACzE,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB;QAC/C,IAAIA,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,WAAW;YACb,IAAIJ,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIK,0BAA0B;YAC1BD;YACAH;YACAD;QACJ;QAGJ,MAAMM,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACN;QAC7C,IAAIM,OAAO,MAAM,IACb,OAAOA;QAGX,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,yBAAyB;YACzB,UAAUD,OAAO,KAAK;YACtBL;YACAD;QACJ;QAGJ,OAAOG,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,gBAAgBjB;IAChB,cAAc;QAACkB;QAAiBC;QAAgBC;KAAyB;AAC7E"}
@@ -0,0 +1,57 @@
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 IUpdateWorkflowInput {
7
+ app: string;
8
+ id: string;
9
+ name: string;
10
+ steps: NonEmptyArray<IWorkflowStepInput>;
11
+ }
12
+ export interface WorkflowBeforeUpdatePayload {
13
+ workflow: IWorkflow;
14
+ original: IWorkflow;
15
+ input: IUpdateWorkflowInput;
16
+ }
17
+ export interface WorkflowAfterUpdatePayload {
18
+ workflow: IWorkflow;
19
+ original: IWorkflow;
20
+ input: IUpdateWorkflowInput;
21
+ }
22
+ /**
23
+ * UpdateWorkflow use case interface
24
+ */
25
+ export interface IUpdateWorkflowUseCase {
26
+ execute(input: IUpdateWorkflowInput, original: IWorkflow): Promise<Result<IWorkflow, UseCaseError>>;
27
+ }
28
+ export interface IUpdateWorkflowUseCaseErrors {
29
+ notAuthorized: WorkflowNotAuthorizedError;
30
+ persistence: WorkflowPersistenceError;
31
+ validation: WorkflowValidationError;
32
+ }
33
+ type UseCaseError = IUpdateWorkflowUseCaseErrors[keyof IUpdateWorkflowUseCaseErrors];
34
+ export declare const UpdateWorkflowUseCase: import("@webiny/di").Abstraction<IUpdateWorkflowUseCase>;
35
+ export declare namespace UpdateWorkflowUseCase {
36
+ type Interface = IUpdateWorkflowUseCase;
37
+ type Input = IUpdateWorkflowInput;
38
+ type Return = Promise<Result<IWorkflow, UseCaseError>>;
39
+ type Error = UseCaseError;
40
+ }
41
+ /**
42
+ * UpdateWorkflow repository interface
43
+ */
44
+ export interface IUpdateWorkflowRepository {
45
+ execute(input: IUpdateWorkflowInput): Promise<Result<IWorkflow, RepositoryError>>;
46
+ }
47
+ export interface IUpdateWorkflowRepositoryErrors {
48
+ persistence: WorkflowPersistenceError;
49
+ }
50
+ type RepositoryError = IUpdateWorkflowRepositoryErrors[keyof IUpdateWorkflowRepositoryErrors];
51
+ export declare const UpdateWorkflowRepository: import("@webiny/di").Abstraction<IUpdateWorkflowRepository>;
52
+ export declare namespace UpdateWorkflowRepository {
53
+ type Interface = IUpdateWorkflowRepository;
54
+ type Return = Promise<Result<IWorkflow, RepositoryError>>;
55
+ type Error = RepositoryError;
56
+ }
57
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const UpdateWorkflowUseCase = createAbstraction("UpdateWorkflowUseCase");
3
+ const UpdateWorkflowRepository = createAbstraction("UpdateWorkflowRepository");
4
+ export { UpdateWorkflowRepository, UpdateWorkflowUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/abstractions.js","sources":["../../../../src/features/workflow/UpdateWorkflow/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 IUpdateWorkflowInput {\n app: string;\n id: string;\n name: string;\n steps: NonEmptyArray<IWorkflowStepInput>;\n}\n\n// Event payloads\nexport interface WorkflowBeforeUpdatePayload {\n workflow: IWorkflow;\n original: IWorkflow;\n input: IUpdateWorkflowInput;\n}\n\nexport interface WorkflowAfterUpdatePayload {\n workflow: IWorkflow;\n original: IWorkflow;\n input: IUpdateWorkflowInput;\n}\n\n/**\n * UpdateWorkflow use case interface\n */\nexport interface IUpdateWorkflowUseCase {\n execute(\n input: IUpdateWorkflowInput,\n original: IWorkflow\n ): Promise<Result<IWorkflow, UseCaseError>>;\n}\n\nexport interface IUpdateWorkflowUseCaseErrors {\n notAuthorized: WorkflowNotAuthorizedError;\n persistence: WorkflowPersistenceError;\n validation: WorkflowValidationError;\n}\n\ntype UseCaseError = IUpdateWorkflowUseCaseErrors[keyof IUpdateWorkflowUseCaseErrors];\n\nexport const UpdateWorkflowUseCase =\n createAbstraction<IUpdateWorkflowUseCase>(\"UpdateWorkflowUseCase\");\n\nexport namespace UpdateWorkflowUseCase {\n export type Interface = IUpdateWorkflowUseCase;\n export type Input = IUpdateWorkflowInput;\n export type Return = Promise<Result<IWorkflow, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * UpdateWorkflow repository interface\n */\nexport interface IUpdateWorkflowRepository {\n execute(input: IUpdateWorkflowInput): Promise<Result<IWorkflow, RepositoryError>>;\n}\n\nexport interface IUpdateWorkflowRepositoryErrors {\n persistence: WorkflowPersistenceError;\n}\n\ntype RepositoryError = IUpdateWorkflowRepositoryErrors[keyof IUpdateWorkflowRepositoryErrors];\n\nexport const UpdateWorkflowRepository = createAbstraction<IUpdateWorkflowRepository>(\n \"UpdateWorkflowRepository\"\n);\n\nexport namespace UpdateWorkflowRepository {\n export type Interface = IUpdateWorkflowRepository;\n export type Return = Promise<Result<IWorkflow, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"names":["UpdateWorkflowUseCase","createAbstraction","UpdateWorkflowRepository"],"mappings":";AAkDO,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 { WorkflowBeforeUpdatePayload, WorkflowAfterUpdatePayload } from "./abstractions.js";
4
+ export declare class WorkflowBeforeUpdateEvent extends DomainEvent<WorkflowBeforeUpdatePayload> {
5
+ eventType: "workflow.beforeUpdate";
6
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<WorkflowBeforeUpdateEvent>>;
7
+ }
8
+ export declare const WorkflowBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<WorkflowBeforeUpdateEvent>>;
9
+ export declare namespace WorkflowBeforeUpdateHandler {
10
+ type Interface = IEventHandler<WorkflowBeforeUpdateEvent>;
11
+ type Event = WorkflowBeforeUpdateEvent;
12
+ }
13
+ export declare class WorkflowAfterUpdateEvent extends DomainEvent<WorkflowAfterUpdatePayload> {
14
+ eventType: "workflow.afterUpdate";
15
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<WorkflowAfterUpdateEvent>>;
16
+ }
17
+ export declare const WorkflowAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<WorkflowAfterUpdateEvent>>;
18
+ export declare namespace WorkflowAfterUpdateHandler {
19
+ type Interface = IEventHandler<WorkflowAfterUpdateEvent>;
20
+ type Event = WorkflowAfterUpdateEvent;
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 WorkflowBeforeUpdateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return WorkflowBeforeUpdateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "workflow.beforeUpdate";
9
+ }
10
+ }
11
+ const WorkflowBeforeUpdateHandler = createAbstraction("WorkflowBeforeUpdateHandler");
12
+ class WorkflowAfterUpdateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return WorkflowAfterUpdateHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "workflow.afterUpdate";
18
+ }
19
+ }
20
+ const WorkflowAfterUpdateHandler = createAbstraction("WorkflowAfterUpdateHandler");
21
+ export { WorkflowAfterUpdateEvent, WorkflowAfterUpdateHandler, WorkflowBeforeUpdateEvent, WorkflowBeforeUpdateHandler };
22
+
23
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/events.js","sources":["../../../../src/features/workflow/UpdateWorkflow/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"],"names":["WorkflowBeforeUpdateEvent","DomainEvent","WorkflowBeforeUpdateHandler","createAbstraction","WorkflowAfterUpdateEvent","WorkflowAfterUpdateHandler"],"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 UpdateWorkflowFeature: {
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 { UpdateWorkflowUseCase } from "./UpdateWorkflowUseCase.js";
3
+ import { UpdateWorkflowRepository } from "./UpdateWorkflowRepository.js";
4
+ const UpdateWorkflowFeature = createFeature({
5
+ name: "Workflows/UpdateWorkflow",
6
+ register (container) {
7
+ container.register(UpdateWorkflowRepository).inSingletonScope();
8
+ container.register(UpdateWorkflowUseCase);
9
+ }
10
+ });
11
+ export { UpdateWorkflowFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/feature.js","sources":["../../../../src/features/workflow/UpdateWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateWorkflowUseCase } from \"./UpdateWorkflowUseCase.js\";\nimport { UpdateWorkflowRepository } from \"./UpdateWorkflowRepository.js\";\n\nexport const UpdateWorkflowFeature = createFeature({\n name: \"Workflows/UpdateWorkflow\",\n register(container) {\n container.register(UpdateWorkflowRepository).inSingletonScope();\n container.register(UpdateWorkflowUseCase);\n }\n});\n"],"names":["UpdateWorkflowFeature","createFeature","container","UpdateWorkflowRepository","UpdateWorkflowUseCase"],"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 { UpdateWorkflowFeature } from "./feature.js";
2
+ export { UpdateWorkflowUseCase, UpdateWorkflowRepository } from "./abstractions.js";
3
+ export type { IUpdateWorkflowInput } from "./abstractions.js";
4
+ export { WorkflowBeforeUpdateEvent, WorkflowAfterUpdateEvent, WorkflowBeforeUpdateHandler, WorkflowAfterUpdateHandler } from "./events.js";
@@ -0,0 +1,3 @@
1
+ export { UpdateWorkflowFeature } from "./feature.js";
2
+ export { UpdateWorkflowRepository, UpdateWorkflowUseCase } from "./abstractions.js";
3
+ export { WorkflowAfterUpdateEvent, WorkflowAfterUpdateHandler, WorkflowBeforeUpdateEvent, WorkflowBeforeUpdateHandler } from "./events.js";
@@ -0,0 +1,15 @@
1
+ import { GetWorkflowStateUseCase } from "../GetWorkflowState/index.js";
2
+ import { UpdateWorkflowStateRepository } from "../UpdateWorkflowState/index.js";
3
+ import { ApproveWorkflowStateStepUseCase as UseCase } from "./abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ declare class ApproveWorkflowStateStepUseCaseImpl implements UseCase.Interface {
6
+ private getWorkflowState;
7
+ private repository;
8
+ private eventPublisher;
9
+ constructor(getWorkflowState: GetWorkflowStateUseCase.Interface, repository: UpdateWorkflowStateRepository.Interface, eventPublisher: EventPublisher.Interface);
10
+ execute(id: string, comment?: string): UseCase.Return;
11
+ }
12
+ export declare const ApproveWorkflowStateStepUseCase: typeof ApproveWorkflowStateStepUseCaseImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IApproveWorkflowStateStepUseCase>;
14
+ };
15
+ export {};
@@ -0,0 +1,38 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetWorkflowStateUseCase } from "../GetWorkflowState/index.js";
3
+ import { UpdateWorkflowStateRepository } from "../UpdateWorkflowState/index.js";
4
+ import { ApproveWorkflowStateStepUseCase } from "./abstractions.js";
5
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
6
+ import { WorkflowStateApproveStepEvent } from "./events.js";
7
+ class ApproveWorkflowStateStepUseCaseImpl {
8
+ constructor(getWorkflowState, repository, eventPublisher){
9
+ this.getWorkflowState = getWorkflowState;
10
+ this.repository = repository;
11
+ this.eventPublisher = eventPublisher;
12
+ }
13
+ async execute(id, comment) {
14
+ const stateResult = await this.getWorkflowState.execute(id);
15
+ if (stateResult.isFail()) return Result.fail(stateResult.error);
16
+ const state = stateResult.value;
17
+ const approveResult = state.approve(comment);
18
+ if (approveResult.isFail()) return Result.fail(approveResult.error);
19
+ const updatedRecord = state.toRecord();
20
+ const updateResult = await this.repository.execute(id, updatedRecord);
21
+ if (updateResult.isFail()) return Result.fail(updateResult.error);
22
+ await this.eventPublisher.publish(new WorkflowStateApproveStepEvent({
23
+ state
24
+ }));
25
+ return Result.ok(state);
26
+ }
27
+ }
28
+ const ApproveWorkflowStateStepUseCase_ApproveWorkflowStateStepUseCase = ApproveWorkflowStateStepUseCase.createImplementation({
29
+ implementation: ApproveWorkflowStateStepUseCaseImpl,
30
+ dependencies: [
31
+ GetWorkflowStateUseCase,
32
+ UpdateWorkflowStateRepository,
33
+ EventPublisher
34
+ ]
35
+ });
36
+ export { ApproveWorkflowStateStepUseCase_ApproveWorkflowStateStepUseCase as ApproveWorkflowStateStepUseCase };
37
+
38
+ //# sourceMappingURL=ApproveWorkflowStateStepUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js","sources":["../../../../src/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWorkflowStateUseCase } from \"../GetWorkflowState/index.js\";\nimport { UpdateWorkflowStateRepository } from \"../UpdateWorkflowState/index.js\";\nimport { ApproveWorkflowStateStepUseCase as UseCase } from \"./abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { WorkflowStateApproveStepEvent } from \"./events.js\";\n\nclass ApproveWorkflowStateStepUseCaseImpl implements UseCase.Interface {\n constructor(\n private getWorkflowState: GetWorkflowStateUseCase.Interface,\n private repository: UpdateWorkflowStateRepository.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(id: string, comment?: string): UseCase.Return {\n const stateResult = await this.getWorkflowState.execute(id);\n if (stateResult.isFail()) {\n return Result.fail(stateResult.error);\n }\n\n const state = stateResult.value;\n\n const approveResult = state.approve(comment);\n if (approveResult.isFail()) {\n return Result.fail(approveResult.error);\n }\n\n const updatedRecord = state.toRecord();\n\n const updateResult = await this.repository.execute(id, updatedRecord);\n if (updateResult.isFail()) {\n return Result.fail(updateResult.error);\n }\n\n await this.eventPublisher.publish(\n new WorkflowStateApproveStepEvent({\n state\n })\n );\n\n return Result.ok(state);\n }\n}\n\nexport const ApproveWorkflowStateStepUseCase = UseCase.createImplementation({\n implementation: ApproveWorkflowStateStepUseCaseImpl,\n dependencies: [GetWorkflowStateUseCase, UpdateWorkflowStateRepository, EventPublisher]\n});\n"],"names":["ApproveWorkflowStateStepUseCaseImpl","getWorkflowState","repository","eventPublisher","id","comment","stateResult","Result","state","approveResult","updatedRecord","updateResult","WorkflowStateApproveStepEvent","ApproveWorkflowStateStepUseCase","UseCase","GetWorkflowStateUseCase","UpdateWorkflowStateRepository","EventPublisher"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,gBAAmD,EACnDC,UAAmD,EACnDC,cAAwC,CAClD;aAHUF,gBAAgB,GAAhBA;aACAC,UAAU,GAAVA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAEC,OAAgB,EAAkB;QACxD,MAAMC,cAAc,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAACF;QACxD,IAAIE,YAAY,MAAM,IAClB,OAAOC,OAAO,IAAI,CAACD,YAAY,KAAK;QAGxC,MAAME,QAAQF,YAAY,KAAK;QAE/B,MAAMG,gBAAgBD,MAAM,OAAO,CAACH;QACpC,IAAII,cAAc,MAAM,IACpB,OAAOF,OAAO,IAAI,CAACE,cAAc,KAAK;QAG1C,MAAMC,gBAAgBF,MAAM,QAAQ;QAEpC,MAAMG,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACP,IAAIM;QACvD,IAAIC,aAAa,MAAM,IACnB,OAAOJ,OAAO,IAAI,CAACI,aAAa,KAAK;QAGzC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,8BAA8B;YAC9BJ;QACJ;QAGJ,OAAOD,OAAO,EAAE,CAACC;IACrB;AACJ;AAEO,MAAMK,kEAAkCC,gCAAAA,oBAA4B,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QAACe;QAAyBC;QAA+BC;KAAe;AAC1F"}
@@ -0,0 +1,26 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import { type WorkflowStateNotFoundError, WorkflowStatePersistenceError, type WorkflowStateStepCannotReviewError, type WorkflowStateStepNotStepOwnerError } from "../../../domain/workflowState/errors.js";
3
+ import type { WorkflowNotFoundError } from "../../../domain/workflow/errors.js";
4
+ import { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
5
+ export interface WorkflowStateApproveStepPayload {
6
+ state: WorkflowState;
7
+ }
8
+ export interface IApproveWorkflowStateStepUseCase {
9
+ execute(id: string, comment?: string): Promise<Result<WorkflowState, UseCaseError>>;
10
+ }
11
+ export interface IApproveWorkflowStateStepUseCaseErrors {
12
+ notFound: WorkflowStateNotFoundError;
13
+ workflowNotFound: WorkflowNotFoundError;
14
+ cannotReview: WorkflowStateStepCannotReviewError;
15
+ notStepOwner: WorkflowStateStepNotStepOwnerError;
16
+ workflowState: WorkflowState.Error;
17
+ persistence: WorkflowStatePersistenceError;
18
+ }
19
+ type UseCaseError = IApproveWorkflowStateStepUseCaseErrors[keyof IApproveWorkflowStateStepUseCaseErrors];
20
+ export declare const ApproveWorkflowStateStepUseCase: import("@webiny/di").Abstraction<IApproveWorkflowStateStepUseCase>;
21
+ export declare namespace ApproveWorkflowStateStepUseCase {
22
+ type Interface = IApproveWorkflowStateStepUseCase;
23
+ type Return = Promise<Result<WorkflowState, UseCaseError>>;
24
+ type Error = UseCaseError;
25
+ }
26
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ApproveWorkflowStateStepUseCase = createAbstraction("ApproveWorkflowStateStepUseCase");
3
+ export { ApproveWorkflowStateStepUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/ApproveWorkflowStateStep/abstractions.js","sources":["../../../../src/features/workflowState/ApproveWorkflowStateStep/abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport {\n type WorkflowStateNotFoundError,\n WorkflowStatePersistenceError,\n type WorkflowStateStepCannotReviewError,\n type WorkflowStateStepNotStepOwnerError\n} from \"~/domain/workflowState/errors.js\";\nimport type { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\n\nexport interface WorkflowStateApproveStepPayload {\n state: WorkflowState;\n}\n\nexport interface IApproveWorkflowStateStepUseCase {\n execute(id: string, comment?: string): Promise<Result<WorkflowState, UseCaseError>>;\n}\n\nexport interface IApproveWorkflowStateStepUseCaseErrors {\n notFound: WorkflowStateNotFoundError;\n workflowNotFound: WorkflowNotFoundError;\n cannotReview: WorkflowStateStepCannotReviewError;\n notStepOwner: WorkflowStateStepNotStepOwnerError;\n workflowState: WorkflowState.Error;\n persistence: WorkflowStatePersistenceError;\n}\n\ntype UseCaseError =\n IApproveWorkflowStateStepUseCaseErrors[keyof IApproveWorkflowStateStepUseCaseErrors];\n\nexport const ApproveWorkflowStateStepUseCase = createAbstraction<IApproveWorkflowStateStepUseCase>(\n \"ApproveWorkflowStateStepUseCase\"\n);\n\nexport namespace ApproveWorkflowStateStepUseCase {\n export type Interface = IApproveWorkflowStateStepUseCase;\n export type Return = Promise<Result<WorkflowState, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["ApproveWorkflowStateStepUseCase","createAbstraction"],"mappings":";AA+BO,MAAMA,kCAAkCC,kBAC3C"}
@@ -0,0 +1,12 @@
1
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { WorkflowStateApproveStepPayload } from "./abstractions.js";
4
+ export declare class WorkflowStateApproveStepEvent extends DomainEvent<WorkflowStateApproveStepPayload> {
5
+ eventType: "workflowState.approveStep";
6
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<WorkflowStateApproveStepEvent>>;
7
+ }
8
+ export declare const WorkflowStateApproveStepHandler: import("@webiny/di").Abstraction<IEventHandler<WorkflowStateApproveStepEvent>>;
9
+ export declare namespace WorkflowStateApproveStepHandler {
10
+ type Interface = IEventHandler<WorkflowStateApproveStepEvent>;
11
+ type Event = WorkflowStateApproveStepEvent;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ class WorkflowStateApproveStepEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return WorkflowStateApproveStepHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "workflowState.approveStep";
9
+ }
10
+ }
11
+ const WorkflowStateApproveStepHandler = createAbstraction("WorkflowStateApproveStepHandler");
12
+ export { WorkflowStateApproveStepEvent, WorkflowStateApproveStepHandler };
13
+
14
+ //# sourceMappingURL=events.js.map