@webiny/api-workflows 0.0.0-unstable.61c048f412

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 (463) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/constants.d.ts +3 -0
  4. package/constants.js +5 -0
  5. package/constants.js.map +1 -0
  6. package/domain/notifications/abstractions.d.ts +64 -0
  7. package/domain/notifications/abstractions.js +10 -0
  8. package/domain/notifications/abstractions.js.map +1 -0
  9. package/domain/notifications/errors.d.ts +5 -0
  10. package/domain/notifications/errors.js +11 -0
  11. package/domain/notifications/errors.js.map +1 -0
  12. package/domain/workflow/WorkflowMapper.d.ts +12 -0
  13. package/domain/workflow/WorkflowMapper.js +29 -0
  14. package/domain/workflow/WorkflowMapper.js.map +1 -0
  15. package/domain/workflow/abstractions.d.ts +37 -0
  16. package/domain/workflow/abstractions.js +6 -0
  17. package/domain/workflow/abstractions.js.map +1 -0
  18. package/domain/workflow/errors.d.ts +23 -0
  19. package/domain/workflow/errors.js +36 -0
  20. package/domain/workflow/errors.js.map +1 -0
  21. package/domain/workflow/workflowModel.d.ts +9 -0
  22. package/domain/workflow/workflowModel.js +32 -0
  23. package/domain/workflow/workflowModel.js.map +1 -0
  24. package/domain/workflowState/WorkflowState.d.ts +55 -0
  25. package/domain/workflowState/WorkflowState.js +327 -0
  26. package/domain/workflowState/WorkflowState.js.map +1 -0
  27. package/domain/workflowState/WorkflowStateMapper.d.ts +9 -0
  28. package/domain/workflowState/WorkflowStateMapper.js +40 -0
  29. package/domain/workflowState/WorkflowStateMapper.js.map +1 -0
  30. package/domain/workflowState/abstractions.d.ts +75 -0
  31. package/domain/workflowState/abstractions.js +13 -0
  32. package/domain/workflowState/abstractions.js.map +1 -0
  33. package/domain/workflowState/errors.d.ts +86 -0
  34. package/domain/workflowState/errors.js +139 -0
  35. package/domain/workflowState/errors.js.map +1 -0
  36. package/domain/workflowState/guards/canReview.d.ts +2 -0
  37. package/domain/workflowState/guards/canReview.js +5 -0
  38. package/domain/workflowState/guards/canReview.js.map +1 -0
  39. package/domain/workflowState/guards/canTakeOver.d.ts +2 -0
  40. package/domain/workflowState/guards/canTakeOver.js +5 -0
  41. package/domain/workflowState/guards/canTakeOver.js.map +1 -0
  42. package/domain/workflowState/guards/isInReview.d.ts +2 -0
  43. package/domain/workflowState/guards/isInReview.js +6 -0
  44. package/domain/workflowState/guards/isInReview.js.map +1 -0
  45. package/domain/workflowState/guards/isRejected.d.ts +2 -0
  46. package/domain/workflowState/guards/isRejected.js +6 -0
  47. package/domain/workflowState/guards/isRejected.js.map +1 -0
  48. package/domain/workflowState/guards/isStepOwner.d.ts +2 -0
  49. package/domain/workflowState/guards/isStepOwner.js +5 -0
  50. package/domain/workflowState/guards/isStepOwner.js.map +1 -0
  51. package/domain/workflowState/stateModel.d.ts +9 -0
  52. package/domain/workflowState/stateModel.js +58 -0
  53. package/domain/workflowState/stateModel.js.map +1 -0
  54. package/features/internal/GetUserTeams/GetUserTeamsUseCase.d.ts +12 -0
  55. package/features/internal/GetUserTeams/GetUserTeamsUseCase.js +36 -0
  56. package/features/internal/GetUserTeams/GetUserTeamsUseCase.js.map +1 -0
  57. package/features/internal/GetUserTeams/abstractions.d.ts +10 -0
  58. package/features/internal/GetUserTeams/abstractions.js +4 -0
  59. package/features/internal/GetUserTeams/abstractions.js.map +1 -0
  60. package/features/internal/GetUserTeams/feature.d.ts +1 -0
  61. package/features/internal/GetUserTeams/feature.js +10 -0
  62. package/features/internal/GetUserTeams/feature.js.map +1 -0
  63. package/features/internal/GetUserTeams/index.d.ts +1 -0
  64. package/features/internal/GetUserTeams/index.js +3 -0
  65. package/features/internal/GetUserTeams/index.js.map +1 -0
  66. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.d.ts +11 -0
  67. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js +24 -0
  68. package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js.map +1 -0
  69. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.d.ts +13 -0
  70. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js +40 -0
  71. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js.map +1 -0
  72. package/features/notifications/ListNotificationTypes/abstractions.d.ts +31 -0
  73. package/features/notifications/ListNotificationTypes/abstractions.js +15 -0
  74. package/features/notifications/ListNotificationTypes/abstractions.js.map +1 -0
  75. package/features/notifications/ListNotificationTypes/feature.d.ts +1 -0
  76. package/features/notifications/ListNotificationTypes/feature.js +12 -0
  77. package/features/notifications/ListNotificationTypes/feature.js.map +1 -0
  78. package/features/notifications/ListNotificationTypes/index.d.ts +3 -0
  79. package/features/notifications/ListNotificationTypes/index.js +4 -0
  80. package/features/notifications/ListNotificationTypes/index.js.map +1 -0
  81. package/features/notifications/NotificationTransport/MailNotificationTransport.d.ts +13 -0
  82. package/features/notifications/NotificationTransport/MailNotificationTransport.js +47 -0
  83. package/features/notifications/NotificationTransport/MailNotificationTransport.js.map +1 -0
  84. package/features/notifications/NotificationTransport/abstractions.d.ts +21 -0
  85. package/features/notifications/NotificationTransport/abstractions.js +4 -0
  86. package/features/notifications/NotificationTransport/abstractions.js.map +1 -0
  87. package/features/notifications/NotificationTransport/feature.d.ts +1 -0
  88. package/features/notifications/NotificationTransport/feature.js +10 -0
  89. package/features/notifications/NotificationTransport/feature.js.map +1 -0
  90. package/features/notifications/NotificationTransport/index.d.ts +3 -0
  91. package/features/notifications/NotificationTransport/index.js +4 -0
  92. package/features/notifications/NotificationTransport/index.js.map +1 -0
  93. package/features/shared/abstractions.d.ts +21 -0
  94. package/features/shared/abstractions.js +3 -0
  95. package/features/shared/abstractions.js.map +1 -0
  96. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.d.ts +14 -0
  97. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +45 -0
  98. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -0
  99. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.d.ts +15 -0
  100. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js +57 -0
  101. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js.map +1 -0
  102. package/features/workflow/CreateWorkflow/abstractions.d.ts +56 -0
  103. package/features/workflow/CreateWorkflow/abstractions.js +19 -0
  104. package/features/workflow/CreateWorkflow/abstractions.js.map +1 -0
  105. package/features/workflow/CreateWorkflow/events.d.ts +21 -0
  106. package/features/workflow/CreateWorkflow/events.js +20 -0
  107. package/features/workflow/CreateWorkflow/events.js.map +1 -0
  108. package/features/workflow/CreateWorkflow/feature.d.ts +1 -0
  109. package/features/workflow/CreateWorkflow/feature.js +12 -0
  110. package/features/workflow/CreateWorkflow/feature.js.map +1 -0
  111. package/features/workflow/CreateWorkflow/index.d.ts +4 -0
  112. package/features/workflow/CreateWorkflow/index.js +5 -0
  113. package/features/workflow/CreateWorkflow/index.js.map +1 -0
  114. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.d.ts +13 -0
  115. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +33 -0
  116. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -0
  117. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.d.ts +17 -0
  118. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js +59 -0
  119. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js.map +1 -0
  120. package/features/workflow/DeleteWorkflow/abstractions.d.ts +50 -0
  121. package/features/workflow/DeleteWorkflow/abstractions.js +19 -0
  122. package/features/workflow/DeleteWorkflow/abstractions.js.map +1 -0
  123. package/features/workflow/DeleteWorkflow/events.d.ts +21 -0
  124. package/features/workflow/DeleteWorkflow/events.js +20 -0
  125. package/features/workflow/DeleteWorkflow/events.js.map +1 -0
  126. package/features/workflow/DeleteWorkflow/feature.d.ts +1 -0
  127. package/features/workflow/DeleteWorkflow/feature.js +12 -0
  128. package/features/workflow/DeleteWorkflow/feature.js.map +1 -0
  129. package/features/workflow/DeleteWorkflow/index.d.ts +4 -0
  130. package/features/workflow/DeleteWorkflow/index.js +5 -0
  131. package/features/workflow/DeleteWorkflow/index.js.map +1 -0
  132. package/features/workflow/GetWorkflow/GetWorkflowRepository.d.ts +14 -0
  133. package/features/workflow/GetWorkflow/GetWorkflowRepository.js +46 -0
  134. package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -0
  135. package/features/workflow/GetWorkflow/GetWorkflowUseCase.d.ts +13 -0
  136. package/features/workflow/GetWorkflow/GetWorkflowUseCase.js +34 -0
  137. package/features/workflow/GetWorkflow/GetWorkflowUseCase.js.map +1 -0
  138. package/features/workflow/GetWorkflow/abstractions.d.ts +45 -0
  139. package/features/workflow/GetWorkflow/abstractions.js +15 -0
  140. package/features/workflow/GetWorkflow/abstractions.js.map +1 -0
  141. package/features/workflow/GetWorkflow/feature.d.ts +1 -0
  142. package/features/workflow/GetWorkflow/feature.js +12 -0
  143. package/features/workflow/GetWorkflow/feature.js.map +1 -0
  144. package/features/workflow/GetWorkflow/index.d.ts +1 -0
  145. package/features/workflow/GetWorkflow/index.js +3 -0
  146. package/features/workflow/GetWorkflow/index.js.map +1 -0
  147. package/features/workflow/ListWorkflows/ListWorkflowsRepository.d.ts +18 -0
  148. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +67 -0
  149. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -0
  150. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.d.ts +10 -0
  151. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js +20 -0
  152. package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js.map +1 -0
  153. package/features/workflow/ListWorkflows/abstractions.d.ts +60 -0
  154. package/features/workflow/ListWorkflows/abstractions.js +15 -0
  155. package/features/workflow/ListWorkflows/abstractions.js.map +1 -0
  156. package/features/workflow/ListWorkflows/feature.d.ts +1 -0
  157. package/features/workflow/ListWorkflows/feature.js +12 -0
  158. package/features/workflow/ListWorkflows/feature.js.map +1 -0
  159. package/features/workflow/ListWorkflows/index.d.ts +1 -0
  160. package/features/workflow/ListWorkflows/index.js +3 -0
  161. package/features/workflow/ListWorkflows/index.js.map +1 -0
  162. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.d.ts +15 -0
  163. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js +37 -0
  164. package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js.map +1 -0
  165. package/features/workflow/StoreWorkflow/abstractions.d.ts +32 -0
  166. package/features/workflow/StoreWorkflow/abstractions.js +11 -0
  167. package/features/workflow/StoreWorkflow/abstractions.js.map +1 -0
  168. package/features/workflow/StoreWorkflow/feature.d.ts +1 -0
  169. package/features/workflow/StoreWorkflow/feature.js +17 -0
  170. package/features/workflow/StoreWorkflow/feature.js.map +1 -0
  171. package/features/workflow/StoreWorkflow/index.d.ts +3 -0
  172. package/features/workflow/StoreWorkflow/index.js +4 -0
  173. package/features/workflow/StoreWorkflow/index.js.map +1 -0
  174. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.d.ts +15 -0
  175. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +49 -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 +59 -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 +19 -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 +20 -0
  185. package/features/workflow/UpdateWorkflow/events.js.map +1 -0
  186. package/features/workflow/UpdateWorkflow/feature.d.ts +1 -0
  187. package/features/workflow/UpdateWorkflow/feature.js +12 -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 +5 -0
  191. package/features/workflow/UpdateWorkflow/index.js.map +1 -0
  192. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.d.ts +15 -0
  193. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js +39 -0
  194. package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js.map +1 -0
  195. package/features/workflowState/ApproveWorkflowStateStep/abstractions.d.ts +26 -0
  196. package/features/workflowState/ApproveWorkflowStateStep/abstractions.js +4 -0
  197. package/features/workflowState/ApproveWorkflowStateStep/abstractions.js.map +1 -0
  198. package/features/workflowState/ApproveWorkflowStateStep/events.d.ts +12 -0
  199. package/features/workflowState/ApproveWorkflowStateStep/events.js +11 -0
  200. package/features/workflowState/ApproveWorkflowStateStep/events.js.map +1 -0
  201. package/features/workflowState/ApproveWorkflowStateStep/feature.d.ts +1 -0
  202. package/features/workflowState/ApproveWorkflowStateStep/feature.js +10 -0
  203. package/features/workflowState/ApproveWorkflowStateStep/feature.js.map +1 -0
  204. package/features/workflowState/ApproveWorkflowStateStep/index.d.ts +2 -0
  205. package/features/workflowState/ApproveWorkflowStateStep/index.js +4 -0
  206. package/features/workflowState/ApproveWorkflowStateStep/index.js.map +1 -0
  207. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.d.ts +13 -0
  208. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js +29 -0
  209. package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js.map +1 -0
  210. package/features/workflowState/CancelWorkflowState/abstractions.d.ts +26 -0
  211. package/features/workflowState/CancelWorkflowState/abstractions.js +9 -0
  212. package/features/workflowState/CancelWorkflowState/abstractions.js.map +1 -0
  213. package/features/workflowState/CancelWorkflowState/events.d.ts +12 -0
  214. package/features/workflowState/CancelWorkflowState/events.js +11 -0
  215. package/features/workflowState/CancelWorkflowState/events.js.map +1 -0
  216. package/features/workflowState/CancelWorkflowState/feature.d.ts +1 -0
  217. package/features/workflowState/CancelWorkflowState/feature.js +10 -0
  218. package/features/workflowState/CancelWorkflowState/feature.js.map +1 -0
  219. package/features/workflowState/CancelWorkflowState/index.d.ts +2 -0
  220. package/features/workflowState/CancelWorkflowState/index.js +4 -0
  221. package/features/workflowState/CancelWorkflowState/index.js.map +1 -0
  222. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.d.ts +14 -0
  223. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +32 -0
  224. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -0
  225. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.d.ts +20 -0
  226. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +108 -0
  227. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -0
  228. package/features/workflowState/CreateWorkflowState/abstractions.d.ts +54 -0
  229. package/features/workflowState/CreateWorkflowState/abstractions.js +15 -0
  230. package/features/workflowState/CreateWorkflowState/abstractions.js.map +1 -0
  231. package/features/workflowState/CreateWorkflowState/events.d.ts +12 -0
  232. package/features/workflowState/CreateWorkflowState/events.js +11 -0
  233. package/features/workflowState/CreateWorkflowState/events.js.map +1 -0
  234. package/features/workflowState/CreateWorkflowState/feature.d.ts +1 -0
  235. package/features/workflowState/CreateWorkflowState/feature.js +12 -0
  236. package/features/workflowState/CreateWorkflowState/feature.js.map +1 -0
  237. package/features/workflowState/CreateWorkflowState/index.d.ts +2 -0
  238. package/features/workflowState/CreateWorkflowState/index.js +4 -0
  239. package/features/workflowState/CreateWorkflowState/index.js.map +1 -0
  240. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.d.ts +21 -0
  241. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +59 -0
  242. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -0
  243. package/features/workflowState/DeleteTargetWorkflowState/abstractions.d.ts +23 -0
  244. package/features/workflowState/DeleteTargetWorkflowState/abstractions.js +4 -0
  245. package/features/workflowState/DeleteTargetWorkflowState/abstractions.js.map +1 -0
  246. package/features/workflowState/DeleteTargetWorkflowState/events.d.ts +12 -0
  247. package/features/workflowState/DeleteTargetWorkflowState/events.js +11 -0
  248. package/features/workflowState/DeleteTargetWorkflowState/events.js.map +1 -0
  249. package/features/workflowState/DeleteTargetWorkflowState/feature.d.ts +1 -0
  250. package/features/workflowState/DeleteTargetWorkflowState/feature.js +10 -0
  251. package/features/workflowState/DeleteTargetWorkflowState/feature.js.map +1 -0
  252. package/features/workflowState/DeleteTargetWorkflowState/index.d.ts +2 -0
  253. package/features/workflowState/DeleteTargetWorkflowState/index.js +4 -0
  254. package/features/workflowState/DeleteTargetWorkflowState/index.js.map +1 -0
  255. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.d.ts +13 -0
  256. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +20 -0
  257. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -0
  258. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.d.ts +14 -0
  259. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js +32 -0
  260. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js.map +1 -0
  261. package/features/workflowState/DeleteWorkflowState/abstractions.d.ts +25 -0
  262. package/features/workflowState/DeleteWorkflowState/abstractions.js +5 -0
  263. package/features/workflowState/DeleteWorkflowState/abstractions.js.map +1 -0
  264. package/features/workflowState/DeleteWorkflowState/feature.d.ts +1 -0
  265. package/features/workflowState/DeleteWorkflowState/feature.js +12 -0
  266. package/features/workflowState/DeleteWorkflowState/feature.js.map +1 -0
  267. package/features/workflowState/DeleteWorkflowState/index.d.ts +1 -0
  268. package/features/workflowState/DeleteWorkflowState/index.js +3 -0
  269. package/features/workflowState/DeleteWorkflowState/index.js.map +1 -0
  270. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.d.ts +14 -0
  271. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +52 -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 +38 -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 +15 -0
  278. package/features/workflowState/GetTargetWorkflowState/abstractions.js.map +1 -0
  279. package/features/workflowState/GetTargetWorkflowState/feature.d.ts +1 -0
  280. package/features/workflowState/GetTargetWorkflowState/feature.js +12 -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 +3 -0
  284. package/features/workflowState/GetTargetWorkflowState/index.js.map +1 -0
  285. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.d.ts +14 -0
  286. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +32 -0
  287. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -0
  288. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.d.ts +14 -0
  289. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +30 -0
  290. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -0
  291. package/features/workflowState/GetWorkflowState/abstractions.d.ts +39 -0
  292. package/features/workflowState/GetWorkflowState/abstractions.js +15 -0
  293. package/features/workflowState/GetWorkflowState/abstractions.js.map +1 -0
  294. package/features/workflowState/GetWorkflowState/feature.d.ts +1 -0
  295. package/features/workflowState/GetWorkflowState/feature.js +12 -0
  296. package/features/workflowState/GetWorkflowState/feature.js.map +1 -0
  297. package/features/workflowState/GetWorkflowState/index.d.ts +1 -0
  298. package/features/workflowState/GetWorkflowState/index.js +3 -0
  299. package/features/workflowState/GetWorkflowState/index.js.map +1 -0
  300. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.d.ts +13 -0
  301. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js +41 -0
  302. package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js.map +1 -0
  303. package/features/workflowState/ListOwnWorkflowStates/abstractions.d.ts +22 -0
  304. package/features/workflowState/ListOwnWorkflowStates/abstractions.js +9 -0
  305. package/features/workflowState/ListOwnWorkflowStates/abstractions.js.map +1 -0
  306. package/features/workflowState/ListOwnWorkflowStates/feature.d.ts +1 -0
  307. package/features/workflowState/ListOwnWorkflowStates/feature.js +10 -0
  308. package/features/workflowState/ListOwnWorkflowStates/feature.js.map +1 -0
  309. package/features/workflowState/ListOwnWorkflowStates/index.d.ts +1 -0
  310. package/features/workflowState/ListOwnWorkflowStates/index.js +3 -0
  311. package/features/workflowState/ListOwnWorkflowStates/index.js.map +1 -0
  312. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.d.ts +15 -0
  313. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js +49 -0
  314. package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js.map +1 -0
  315. package/features/workflowState/ListRequestedWorkflowStates/abstractions.d.ts +22 -0
  316. package/features/workflowState/ListRequestedWorkflowStates/abstractions.js +9 -0
  317. package/features/workflowState/ListRequestedWorkflowStates/abstractions.js.map +1 -0
  318. package/features/workflowState/ListRequestedWorkflowStates/feature.d.ts +1 -0
  319. package/features/workflowState/ListRequestedWorkflowStates/feature.js +10 -0
  320. package/features/workflowState/ListRequestedWorkflowStates/feature.js.map +1 -0
  321. package/features/workflowState/ListRequestedWorkflowStates/index.d.ts +1 -0
  322. package/features/workflowState/ListRequestedWorkflowStates/index.js +3 -0
  323. package/features/workflowState/ListRequestedWorkflowStates/index.js.map +1 -0
  324. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.d.ts +16 -0
  325. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +43 -0
  326. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -0
  327. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.d.ts +14 -0
  328. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +36 -0
  329. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -0
  330. package/features/workflowState/ListWorkflowStates/abstractions.d.ts +56 -0
  331. package/features/workflowState/ListWorkflowStates/abstractions.js +15 -0
  332. package/features/workflowState/ListWorkflowStates/abstractions.js.map +1 -0
  333. package/features/workflowState/ListWorkflowStates/feature.d.ts +1 -0
  334. package/features/workflowState/ListWorkflowStates/feature.js +12 -0
  335. package/features/workflowState/ListWorkflowStates/feature.js.map +1 -0
  336. package/features/workflowState/ListWorkflowStates/index.d.ts +1 -0
  337. package/features/workflowState/ListWorkflowStates/index.js +3 -0
  338. package/features/workflowState/ListWorkflowStates/index.js.map +1 -0
  339. package/features/workflowState/README.md +8 -0
  340. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.d.ts +15 -0
  341. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js +39 -0
  342. package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js.map +1 -0
  343. package/features/workflowState/RejectWorkflowStateStep/abstractions.d.ts +26 -0
  344. package/features/workflowState/RejectWorkflowStateStep/abstractions.js +4 -0
  345. package/features/workflowState/RejectWorkflowStateStep/abstractions.js.map +1 -0
  346. package/features/workflowState/RejectWorkflowStateStep/events.d.ts +12 -0
  347. package/features/workflowState/RejectWorkflowStateStep/events.js +11 -0
  348. package/features/workflowState/RejectWorkflowStateStep/events.js.map +1 -0
  349. package/features/workflowState/RejectWorkflowStateStep/feature.d.ts +1 -0
  350. package/features/workflowState/RejectWorkflowStateStep/feature.js +10 -0
  351. package/features/workflowState/RejectWorkflowStateStep/feature.js.map +1 -0
  352. package/features/workflowState/RejectWorkflowStateStep/index.d.ts +2 -0
  353. package/features/workflowState/RejectWorkflowStateStep/index.js +4 -0
  354. package/features/workflowState/RejectWorkflowStateStep/index.js.map +1 -0
  355. package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.d.ts +15 -0
  356. package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.js +39 -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 +4 -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 +11 -0
  363. package/features/workflowState/StartWorkflowStateStep/events.js.map +1 -0
  364. package/features/workflowState/StartWorkflowStateStep/feature.d.ts +1 -0
  365. package/features/workflowState/StartWorkflowStateStep/feature.js +10 -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 +4 -0
  369. package/features/workflowState/StartWorkflowStateStep/index.js.map +1 -0
  370. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.d.ts +15 -0
  371. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js +39 -0
  372. package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js.map +1 -0
  373. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.d.ts +26 -0
  374. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js +4 -0
  375. package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js.map +1 -0
  376. package/features/workflowState/TakeOverWorkflowStateStep/events.d.ts +12 -0
  377. package/features/workflowState/TakeOverWorkflowStateStep/events.js +11 -0
  378. package/features/workflowState/TakeOverWorkflowStateStep/events.js.map +1 -0
  379. package/features/workflowState/TakeOverWorkflowStateStep/feature.d.ts +1 -0
  380. package/features/workflowState/TakeOverWorkflowStateStep/feature.js +10 -0
  381. package/features/workflowState/TakeOverWorkflowStateStep/feature.js.map +1 -0
  382. package/features/workflowState/TakeOverWorkflowStateStep/index.d.ts +2 -0
  383. package/features/workflowState/TakeOverWorkflowStateStep/index.js +4 -0
  384. package/features/workflowState/TakeOverWorkflowStateStep/index.js.map +1 -0
  385. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.d.ts +17 -0
  386. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +48 -0
  387. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -0
  388. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.d.ts +20 -0
  389. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +57 -0
  390. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -0
  391. package/features/workflowState/UpdateWorkflowState/abstractions.d.ts +48 -0
  392. package/features/workflowState/UpdateWorkflowState/abstractions.js +15 -0
  393. package/features/workflowState/UpdateWorkflowState/abstractions.js.map +1 -0
  394. package/features/workflowState/UpdateWorkflowState/events.d.ts +12 -0
  395. package/features/workflowState/UpdateWorkflowState/events.js +11 -0
  396. package/features/workflowState/UpdateWorkflowState/events.js.map +1 -0
  397. package/features/workflowState/UpdateWorkflowState/feature.d.ts +1 -0
  398. package/features/workflowState/UpdateWorkflowState/feature.js +12 -0
  399. package/features/workflowState/UpdateWorkflowState/feature.js.map +1 -0
  400. package/features/workflowState/UpdateWorkflowState/index.d.ts +2 -0
  401. package/features/workflowState/UpdateWorkflowState/index.js +4 -0
  402. package/features/workflowState/UpdateWorkflowState/index.js.map +1 -0
  403. package/graphql/notifications.d.ts +2 -0
  404. package/graphql/notifications.js +51 -0
  405. package/graphql/notifications.js.map +1 -0
  406. package/graphql/validation/approveWorkflowState.d.ts +11 -0
  407. package/graphql/validation/approveWorkflowState.js +7 -0
  408. package/graphql/validation/approveWorkflowState.js.map +1 -0
  409. package/graphql/validation/cancelWorkflowState.d.ts +8 -0
  410. package/graphql/validation/cancelWorkflowState.js +6 -0
  411. package/graphql/validation/cancelWorkflowState.js.map +1 -0
  412. package/graphql/validation/createWorkflowState.d.ts +14 -0
  413. package/graphql/validation/createWorkflowState.js +8 -0
  414. package/graphql/validation/createWorkflowState.js.map +1 -0
  415. package/graphql/validation/deleteWorkflow.d.ts +11 -0
  416. package/graphql/validation/deleteWorkflow.js +7 -0
  417. package/graphql/validation/deleteWorkflow.js.map +1 -0
  418. package/graphql/validation/getTargetWorkflowState.d.ts +11 -0
  419. package/graphql/validation/getTargetWorkflowState.js +7 -0
  420. package/graphql/validation/getTargetWorkflowState.js.map +1 -0
  421. package/graphql/validation/getWorkflow.d.ts +11 -0
  422. package/graphql/validation/getWorkflow.js +7 -0
  423. package/graphql/validation/getWorkflow.js.map +1 -0
  424. package/graphql/validation/getWorkflowState.d.ts +8 -0
  425. package/graphql/validation/getWorkflowState.js +6 -0
  426. package/graphql/validation/getWorkflowState.js.map +1 -0
  427. package/graphql/validation/listWorkflowStates.d.ts +108 -0
  428. package/graphql/validation/listWorkflowStates.js +42 -0
  429. package/graphql/validation/listWorkflowStates.js.map +1 -0
  430. package/graphql/validation/listWorkflows.d.ts +42 -0
  431. package/graphql/validation/listWorkflows.js +22 -0
  432. package/graphql/validation/listWorkflows.js.map +1 -0
  433. package/graphql/validation/rejectWorkflowState.d.ts +11 -0
  434. package/graphql/validation/rejectWorkflowState.js +7 -0
  435. package/graphql/validation/rejectWorkflowState.js.map +1 -0
  436. package/graphql/validation/startWorkflowState.d.ts +8 -0
  437. package/graphql/validation/startWorkflowState.js +6 -0
  438. package/graphql/validation/startWorkflowState.js.map +1 -0
  439. package/graphql/validation/step.d.ts +49 -0
  440. package/graphql/validation/step.js +21 -0
  441. package/graphql/validation/step.js.map +1 -0
  442. package/graphql/validation/storeWorkflow.d.ts +107 -0
  443. package/graphql/validation/storeWorkflow.js +9 -0
  444. package/graphql/validation/storeWorkflow.js.map +1 -0
  445. package/graphql/validation/takeOverWorkflowStateStep.d.ts +8 -0
  446. package/graphql/validation/takeOverWorkflowStateStep.js +6 -0
  447. package/graphql/validation/takeOverWorkflowStateStep.js.map +1 -0
  448. package/graphql/validation/workflow.d.ts +80 -0
  449. package/graphql/validation/workflow.js +10 -0
  450. package/graphql/validation/workflow.js.map +1 -0
  451. package/graphql/workflowState.d.ts +2 -0
  452. package/graphql/workflowState.js +398 -0
  453. package/graphql/workflowState.js.map +1 -0
  454. package/graphql/workflows.d.ts +2 -0
  455. package/graphql/workflows.js +216 -0
  456. package/graphql/workflows.js.map +1 -0
  457. package/index.d.ts +2 -0
  458. package/index.js +102 -0
  459. package/index.js.map +1 -0
  460. package/package.json +41 -0
  461. package/types.d.ts +13 -0
  462. package/types.js +7 -0
  463. package/types.js.map +1 -0
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListNotificationTypesUseCase } from "./ListNotificationTypesUseCase.js";
3
+ import { ListNotificationTypesRepository } from "./ListNotificationTypesRepository.js";
4
+ export const ListNotificationTypesFeature = createFeature({
5
+ name: "WorkflowNotifications/ListNotificationTypes",
6
+ register(container) {
7
+ container.register(ListNotificationTypesRepository).inSingletonScope();
8
+ container.register(ListNotificationTypesUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","ListNotificationTypesUseCase","ListNotificationTypesRepository","ListNotificationTypesFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListNotificationTypesUseCase } from \"./ListNotificationTypesUseCase.js\";\nimport { ListNotificationTypesRepository } from \"./ListNotificationTypesRepository.js\";\n\nexport const ListNotificationTypesFeature = createFeature({\n name: \"WorkflowNotifications/ListNotificationTypes\",\n register(container) {\n container.register(ListNotificationTypesRepository).inSingletonScope();\n container.register(ListNotificationTypesUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,4BAA4B;AACrC,SAASC,+BAA+B;AAExC,OAAO,MAAMC,4BAA4B,GAAGH,aAAa,CAAC;EACtDI,IAAI,EAAE,6CAA6C;EACnDC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,+BAA+B,CAAC,CAACK,gBAAgB,CAAC,CAAC;IACtED,SAAS,CAACD,QAAQ,CAACJ,4BAA4B,CAAC;EACpD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { ListNotificationTypesFeature } from "./feature.js";
2
+ export { ListNotificationTypesRepository, ListNotificationTypesUseCase } from "./abstractions.js";
3
+ export type { IListNotificationTypesUseCase, IListNotificationTypesRepository, IListNotificationTypesUseCaseErrors } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { ListNotificationTypesFeature } from "./feature.js";
2
+ export { ListNotificationTypesRepository, ListNotificationTypesUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListNotificationTypesFeature","ListNotificationTypesRepository","ListNotificationTypesUseCase"],"sources":["index.ts"],"sourcesContent":["export { ListNotificationTypesFeature } from \"./feature.js\";\nexport { ListNotificationTypesRepository, ListNotificationTypesUseCase } from \"./abstractions.js\";\nexport type {\n IListNotificationTypesUseCase,\n IListNotificationTypesRepository,\n IListNotificationTypesUseCaseErrors\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,4BAA4B;AACrC,SAASC,+BAA+B,EAAEC,4BAA4B","ignoreList":[]}
@@ -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,47 @@
1
+ import { MailerService } from "@webiny/api-mailer";
2
+ import { NotificationTransport } from "./abstractions.js";
3
+ class MailNotificationTransportImpl {
4
+ id = "e-mail";
5
+ title = "E-Mail";
6
+ constructor(mailer) {
7
+ this.mailer = mailer;
8
+ }
9
+ async send(params) {
10
+ const {
11
+ users,
12
+ message
13
+ } = params;
14
+ const bcc = users.map(user => {
15
+ if (!user.displayName) {
16
+ return user.email;
17
+ }
18
+ return `"${user.displayName}" <${user.email}>`;
19
+ })
20
+ /**
21
+ * Just in case...
22
+ */.filter(user => !!user);
23
+ if (bcc.length === 0) {
24
+ return;
25
+ }
26
+ const result = await this.mailer.sendMail({
27
+ bcc,
28
+ subject: message.title,
29
+ text: message.body,
30
+ html: `<p>${message.body.replace(/\n/g, "<br/>")}</p>`
31
+ });
32
+ if (result.isOk()) {
33
+ return;
34
+ }
35
+ console.error({
36
+ message: "Failed to send e-mail notification.",
37
+ error: result.error,
38
+ users: users.map(u => u.email)
39
+ });
40
+ }
41
+ }
42
+ export const MailNotificationTransport = NotificationTransport.createImplementation({
43
+ implementation: MailNotificationTransportImpl,
44
+ dependencies: [MailerService]
45
+ });
46
+
47
+ //# sourceMappingURL=MailNotificationTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MailerService","NotificationTransport","MailNotificationTransportImpl","id","title","constructor","mailer","send","params","users","message","bcc","map","user","displayName","email","filter","length","result","sendMail","subject","text","body","html","replace","isOk","console","error","u","MailNotificationTransport","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,oBAAoB;AAClD,SAASC,qBAAqB;AAE9B,MAAMC,6BAA6B,CAA4C;EAC3DC,EAAE,GAAG,QAAQ;EACbC,KAAK,GAAG,QAAQ;EAIzBC,WAAWA,CAACC,MAA+B,EAAE;IAChD,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,MAAaC,IAAIA,CAACC,MAAwC,EAAiB;IACvE,MAAM;MAAEC,KAAK;MAAEC;IAAQ,CAAC,GAAGF,MAAM;IAEjC,MAAMG,GAAG,GAAGF,KAAK,CACZG,GAAG,CAACC,IAAI,IAAI;MACT,IAAI,CAACA,IAAI,CAACC,WAAW,EAAE;QACnB,OAAOD,IAAI,CAACE,KAAK;MACrB;MACA,OAAO,IAAIF,IAAI,CAACC,WAAW,MAAMD,IAAI,CAACE,KAAK,GAAG;IAClD,CAAC;IACD;AACZ;AACA,OAFY,CAGCC,MAAM,CAACH,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC;IAE3B,IAAIF,GAAG,CAACM,MAAM,KAAK,CAAC,EAAE;MAClB;IACJ;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACZ,MAAM,CAACa,QAAQ,CAAC;MACtCR,GAAG;MACHS,OAAO,EAAEV,OAAO,CAACN,KAAK;MACtBiB,IAAI,EAAEX,OAAO,CAACY,IAAI;MAClBC,IAAI,EAAE,MAAMb,OAAO,CAACY,IAAI,CAACE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;IACpD,CAAC,CAAC;IACF,IAAIN,MAAM,CAACO,IAAI,CAAC,CAAC,EAAE;MACf;IACJ;IACAC,OAAO,CAACC,KAAK,CAAC;MACVjB,OAAO,EAAE,qCAAqC;MAC9CiB,KAAK,EAAET,MAAM,CAACS,KAAK;MACnBlB,KAAK,EAAEA,KAAK,CAACG,GAAG,CAACgB,CAAC,IAAIA,CAAC,CAACb,KAAK;IACjC,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMc,yBAAyB,GAAG5B,qBAAqB,CAAC6B,oBAAoB,CAAC;EAChFC,cAAc,EAAE7B,6BAA6B;EAC7C8B,YAAY,EAAE,CAAChC,aAAa;AAChC,CAAC,CAAC","ignoreList":[]}
@@ -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,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const NotificationTransport = createAbstraction("WorkflowNotificationTransport");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","NotificationTransport"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAwBvD,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,+BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const NotificationTransportFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { MailNotificationTransport } from "./MailNotificationTransport.js";
3
+ export const NotificationTransportFeature = createFeature({
4
+ name: "WorkflowNotifications/NotificationTransport",
5
+ register(container) {
6
+ container.register(MailNotificationTransport);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","MailNotificationTransport","NotificationTransportFeature","name","register","container"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAElC,OAAO,MAAMC,4BAA4B,GAAGF,aAAa,CAAC;EACtDG,IAAI,EAAE,6CAA6C;EACnDC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,yBAAyB,CAAC;EACjD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -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,4 @@
1
+ export { NotificationTransportFeature } from "./feature.js";
2
+ export { NotificationTransport } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NotificationTransportFeature","NotificationTransport"],"sources":["index.ts"],"sourcesContent":["export { NotificationTransportFeature } from \"./feature.js\";\nexport { NotificationTransport } from \"./abstractions.js\";\nexport type {\n INotificationTransportSendParams,\n INotificationTransport,\n INotificationTransportUser\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,4BAA4B;AACrC,SAASC,qBAAqB","ignoreList":[]}
@@ -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
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["abstractions.ts"],"sourcesContent":["import type { NonEmptyArray } from \"@webiny/api/types.js\";\n\nexport interface IWorkflowStepTeamInput {\n id: string;\n}\n\nexport interface IWorkflowStepNotificationInput {\n id: string;\n}\n\nexport interface IWorkflowStepInput {\n id: string;\n title: string;\n color: string;\n description?: string;\n teams: NonEmptyArray<IWorkflowStepTeamInput>;\n notifications?: IWorkflowStepNotificationInput[];\n}\nexport interface IWorkflowInput {\n id: string;\n app: string;\n name: string;\n steps: NonEmptyArray<IWorkflowStepInput>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -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,45 @@
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 as Repository } 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 {
15
+ id
16
+ } = parseIdentifier(input.id);
17
+ const values = this.mapper.toCmsEntry({
18
+ id,
19
+ app: input.app,
20
+ name: input.name,
21
+ steps: input.steps
22
+ });
23
+ try {
24
+ const createResult = await this.createEntry.execute(this.model, {
25
+ id,
26
+ values
27
+ });
28
+ if (createResult.isFail()) {
29
+ return Result.fail(new WorkflowPersistenceError(createResult.error));
30
+ }
31
+ return Result.ok({
32
+ ...values,
33
+ id
34
+ });
35
+ } catch (error) {
36
+ return Result.fail(new WorkflowPersistenceError(error));
37
+ }
38
+ }
39
+ }
40
+ export const CreateWorkflowRepository = Repository.createImplementation({
41
+ implementation: CreateWorkflowRepositoryImpl,
42
+ dependencies: [CreateEntryUseCase, WorkflowModel, WorkflowMapper]
43
+ });
44
+
45
+ //# sourceMappingURL=CreateWorkflowRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","parseIdentifier","CreateEntryUseCase","WorkflowMapper","WorkflowModel","WorkflowPersistenceError","CreateWorkflowRepository","Repository","CreateWorkflowRepositoryImpl","constructor","createEntry","model","mapper","execute","input","id","values","toCmsEntry","app","name","steps","createResult","isFail","fail","error","ok","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,kCAAkC;AAClE,SAASC,kBAAkB,QAAQ,qEAAqE;AACxG,SAAyBC,cAAc,EAAEC,aAAa;AACtD,SAASC,wBAAwB;AACjC,SAASC,wBAAwB,IAAIC,UAAU;AAE/C,MAAMC,4BAA4B,CAAiC;EAC/DC,WAAWA,CACCC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,EAC1C;IAAA,KAHUF,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,KAA8B,GAA9BA,KAA8B;IAAA,KAC9BC,MAAgC,GAAhCA,MAAgC;EACzC;EAEH,MAAMC,OAAOA,CAACC,KAAuB,EAAqB;IACtD,MAAM;MAAEC;IAAG,CAAC,GAAGd,eAAe,CAACa,KAAK,CAACC,EAAE,CAAC;IAExC,MAAMC,MAAM,GAAG,IAAI,CAACJ,MAAM,CAACK,UAAU,CAAC;MAClCF,EAAE;MACFG,GAAG,EAAEJ,KAAK,CAACI,GAAG;MACdC,IAAI,EAAEL,KAAK,CAACK,IAAI;MAChBC,KAAK,EAAEN,KAAK,CAACM;IACjB,CAAC,CAAC;IACF,IAAI;MACA,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACX,WAAW,CAACG,OAAO,CAAY,IAAI,CAACF,KAAK,EAAE;QACvEI,EAAE;QACFC;MACJ,CAAC,CAAC;MAEF,IAAIK,YAAY,CAACC,MAAM,CAAC,CAAC,EAAE;QACvB,OAAOtB,MAAM,CAACuB,IAAI,CAAC,IAAIlB,wBAAwB,CAACgB,YAAY,CAACG,KAAK,CAAC,CAAC;MACxE;MAEA,OAAOxB,MAAM,CAACyB,EAAE,CAAC;QAAE,GAAGT,MAAM;QAAED;MAAG,CAAC,CAAC;IACvC,CAAC,CAAC,OAAOS,KAAK,EAAE;MACZ,OAAOxB,MAAM,CAACuB,IAAI,CAAC,IAAIlB,wBAAwB,CAACmB,KAAK,CAAC,CAAC;IAC3D;EACJ;AACJ;AAEA,OAAO,MAAMlB,wBAAwB,GAAGC,UAAU,CAACmB,oBAAoB,CAAC;EACpEC,cAAc,EAAEnB,4BAA4B;EAC5CoB,YAAY,EAAE,CAAC1B,kBAAkB,EAAEE,aAAa,EAAED,cAAc;AACpE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
+ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
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,57 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
+ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
4
+ import { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } 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
+ import { WorkflowsSecurityPermissionAccessLevel } from "../../../types.js";
9
+ class CreateWorkflowUseCaseImpl {
10
+ constructor(identityContext, eventPublisher, repository) {
11
+ this.identityContext = identityContext;
12
+ this.eventPublisher = eventPublisher;
13
+ this.repository = repository;
14
+ }
15
+ async execute(input) {
16
+ const hasAccess = await this.ensureManageAccess();
17
+ if (hasAccess.isFail()) {
18
+ return Result.fail(hasAccess.error);
19
+ }
20
+ const workflow = {
21
+ id: input.id,
22
+ app: input.app,
23
+ name: input.name,
24
+ steps: input.steps
25
+ };
26
+ await this.eventPublisher.publish(new WorkflowBeforeCreateEvent({
27
+ workflow,
28
+ input
29
+ }));
30
+ const result = await this.repository.execute(input);
31
+ if (result.isFail()) {
32
+ return result;
33
+ }
34
+ await this.eventPublisher.publish(new WorkflowAfterCreateEvent({
35
+ workflow: result.value,
36
+ input
37
+ }));
38
+ return Result.ok(result.value);
39
+ }
40
+ async ensureManageAccess() {
41
+ const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
42
+ for (const permission of permissions) {
43
+ if (permission.name === "*") {
44
+ return Result.ok();
45
+ } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {
46
+ return Result.ok();
47
+ }
48
+ }
49
+ return Result.fail(new WorkflowNotAuthorizedError("You cannot manage workflows."));
50
+ }
51
+ }
52
+ export const CreateWorkflowUseCase = UseCase.createImplementation({
53
+ implementation: CreateWorkflowUseCaseImpl,
54
+ dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]
55
+ });
56
+
57
+ //# sourceMappingURL=CreateWorkflowUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","CreateWorkflowRepository","CreateWorkflowUseCase","UseCase","WorkflowAfterCreateEvent","WorkflowBeforeCreateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","WorkflowsSecurityPermissionAccessLevel","CreateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","YES","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { WorkflowsSecurityPermissionAccessLevel } 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 === WorkflowsSecurityPermissionAccessLevel.YES) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const CreateWorkflowUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAE7B,SAASC,sCAAsC;AAE/C,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAkB;IAChD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAEP,KAAK,CAACO,EAAE;MACZC,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,IAAI,EAAET,KAAK,CAACS,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACU;IACjB,CAAC;IAED,MAAM,IAAI,CAACb,cAAc,CAACc,OAAO,CAC7B,IAAIrB,yBAAyB,CAAC;MAC1BgB,QAAQ;MACRN;IACJ,CAAC,CACL,CAAC;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAACf,cAAc,CAACc,OAAO,CAC7B,IAAItB,wBAAwB,CAAC;MACzBiB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb;IACJ,CAAC,CACL,CAAC;IAED,OAAOjB,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO1B,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,KAAKzB,sCAAsC,CAAC0B,GAAG,EAAE;QACzE,OAAOpC,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO/B,MAAM,CAACqB,IAAI,CAAC,IAAIb,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACgC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACtC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -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,19 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ // Input types
4
+
5
+ // Event payloads
6
+
7
+ /**
8
+ * CreateWorkflow use case interface
9
+ */
10
+
11
+ export const CreateWorkflowUseCase = createAbstraction("CreateWorkflowUseCase");
12
+
13
+ /**
14
+ * CreateWorkflow repository interface
15
+ */
16
+
17
+ export const CreateWorkflowRepository = createAbstraction("CreateWorkflowRepository");
18
+
19
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","CreateWorkflowUseCase","CreateWorkflowRepository"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAQA;;AAWA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAC9BD,iBAAiB,CAAyB,uBAAuB,CAAC;;AAStE;AACA;AACA;;AAWA,OAAO,MAAME,wBAAwB,GAAGF,iBAAiB,CACrD,0BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
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,20 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
+ // Before create event
4
+ export class WorkflowBeforeCreateEvent extends DomainEvent {
5
+ eventType = "workflow.beforeCreate";
6
+ getHandlerAbstraction() {
7
+ return WorkflowBeforeCreateHandler;
8
+ }
9
+ }
10
+ export const WorkflowBeforeCreateHandler = createAbstraction("WorkflowBeforeCreateHandler");
11
+ // After create event
12
+ export class WorkflowAfterCreateEvent extends DomainEvent {
13
+ eventType = "workflow.afterCreate";
14
+ getHandlerAbstraction() {
15
+ return WorkflowAfterCreateHandler;
16
+ }
17
+ }
18
+ export const WorkflowAfterCreateHandler = createAbstraction("WorkflowAfterCreateHandler");
19
+
20
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DomainEvent","WorkflowBeforeCreateEvent","eventType","getHandlerAbstraction","WorkflowBeforeCreateHandler","WorkflowAfterCreateEvent","WorkflowAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WorkflowBeforeCreatePayload, WorkflowAfterCreatePayload } from \"./abstractions.js\";\n\n// Before create event\nexport class WorkflowBeforeCreateEvent extends DomainEvent<WorkflowBeforeCreatePayload> {\n eventType = \"workflow.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeCreateHandler;\n }\n}\n\nexport const WorkflowBeforeCreateHandler = createAbstraction<\n IEventHandler<WorkflowBeforeCreateEvent>\n>(\"WorkflowBeforeCreateHandler\");\n\nexport namespace WorkflowBeforeCreateHandler {\n export type Interface = IEventHandler<WorkflowBeforeCreateEvent>;\n export type Event = WorkflowBeforeCreateEvent;\n}\n\n// After create event\nexport class WorkflowAfterCreateEvent extends DomainEvent<WorkflowAfterCreatePayload> {\n eventType = \"workflow.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterCreateHandler;\n }\n}\n\nexport const WorkflowAfterCreateHandler = createAbstraction<\n IEventHandler<WorkflowAfterCreateEvent>\n>(\"WorkflowAfterCreateHandler\");\n\nexport namespace WorkflowAfterCreateHandler {\n export type Interface = IEventHandler<WorkflowAfterCreateEvent>;\n export type Event = WorkflowAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAItE;AACA,OAAO,MAAMC,yBAAyB,SAASD,WAAW,CAA8B;EACpFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGL,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMM,wBAAwB,SAASL,WAAW,CAA6B;EAClFE,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,0BAA0B;EACrC;AACJ;AAEA,OAAO,MAAMA,0BAA0B,GAAGP,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const CreateWorkflowFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateWorkflowUseCase } from "./CreateWorkflowUseCase.js";
3
+ import { CreateWorkflowRepository } from "./CreateWorkflowRepository.js";
4
+ export const CreateWorkflowFeature = createFeature({
5
+ name: "Workflows/CreateWorkflow",
6
+ register(container) {
7
+ container.register(CreateWorkflowRepository).inSingletonScope();
8
+ container.register(CreateWorkflowUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateWorkflowUseCase","CreateWorkflowRepository","CreateWorkflowFeature","name","register","container","inSingletonScope"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,qBAAqB,GAAGH,aAAa,CAAC;EAC/CI,IAAI,EAAE,0BAA0B;EAChCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,wBAAwB,CAAC,CAACK,gBAAgB,CAAC,CAAC;IAC/DD,SAAS,CAACD,QAAQ,CAACJ,qBAAqB,CAAC;EAC7C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -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,5 @@
1
+ export { CreateWorkflowFeature } from "./feature.js";
2
+ export { CreateWorkflowUseCase, CreateWorkflowRepository } from "./abstractions.js";
3
+ export { WorkflowBeforeCreateEvent, WorkflowAfterCreateEvent, WorkflowBeforeCreateHandler, WorkflowAfterCreateHandler } from "./events.js";
4
+
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateWorkflowFeature","CreateWorkflowUseCase","CreateWorkflowRepository","WorkflowBeforeCreateEvent","WorkflowAfterCreateEvent","WorkflowBeforeCreateHandler","WorkflowAfterCreateHandler"],"sources":["index.ts"],"sourcesContent":["export { CreateWorkflowFeature } from \"./feature.js\";\nexport { CreateWorkflowUseCase, CreateWorkflowRepository } from \"./abstractions.js\";\nexport type { ICreateWorkflowInput } from \"./abstractions.js\";\nexport {\n WorkflowBeforeCreateEvent,\n WorkflowAfterCreateEvent,\n WorkflowBeforeCreateHandler,\n WorkflowAfterCreateHandler\n} from \"./events.js\";\n"],"mappings":"AAAA,SAASA,qBAAqB;AAC9B,SAASC,qBAAqB,EAAEC,wBAAwB;AAExD,SACIC,yBAAyB,EACzBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,0BAA0B","ignoreList":[]}
@@ -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,33 @@
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 as Repository } 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()) {
20
+ return Result.fail(new WorkflowPersistenceError(result.error));
21
+ }
22
+ return Result.ok();
23
+ } catch (error) {
24
+ return Result.fail(new WorkflowPersistenceError(error));
25
+ }
26
+ }
27
+ }
28
+ export const DeleteWorkflowRepository = Repository.createImplementation({
29
+ implementation: DeleteWorkflowRepositoryImpl,
30
+ dependencies: [DeleteEntryUseCase, WorkflowModel]
31
+ });
32
+
33
+ //# sourceMappingURL=DeleteWorkflowRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","createIdentifier","DeleteEntryUseCase","WorkflowModel","WorkflowPersistenceError","DeleteWorkflowRepository","Repository","DeleteWorkflowRepositoryImpl","constructor","deleteEntry","model","execute","input","workflowId","id","version","result","isFail","fail","error","ok","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,gBAAgB,QAAQ,eAAe;AAChD,SAASC,kBAAkB,QAAQ,qEAAqE;AACxG,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,wBAAwB,IAAIC,UAAU;AAE/C,MAAMC,4BAA4B,CAAiC;EAC/DC,WAAWA,CACCC,WAAyC,EACzCC,KAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,KAA8B,GAA9BA,KAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,KAAwB,EAAqB;IACvD,MAAMC,UAAU,GAAGZ,gBAAgB,CAAC;MAChCa,EAAE,EAAEF,KAAK,CAACE,EAAE;MACZC,OAAO,EAAE;IACb,CAAC,CAAC;IAEF,IAAI;MACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAAC,IAAI,CAACD,KAAK,EAAEG,UAAU,CAAC;MAErE,IAAIG,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;QACjB,OAAOjB,MAAM,CAACkB,IAAI,CAAC,IAAId,wBAAwB,CAACY,MAAM,CAACG,KAAK,CAAC,CAAC;MAClE;MAEA,OAAOnB,MAAM,CAACoB,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,OAAOD,KAAK,EAAE;MACZ,OAAOnB,MAAM,CAACkB,IAAI,CAAC,IAAId,wBAAwB,CAACe,KAAc,CAAC,CAAC;IACpE;EACJ;AACJ;AAEA,OAAO,MAAMd,wBAAwB,GAAGC,UAAU,CAACe,oBAAoB,CAAC;EACpEC,cAAc,EAAEf,4BAA4B;EAC5CgB,YAAY,EAAE,CAACrB,kBAAkB,EAAEC,aAAa;AACpD,CAAC,CAAC","ignoreList":[]}