@webiny/app-headless-cms-workflows 0.0.0-unstable.0156a4c312

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 (417) hide show
  1. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.d.ts +2 -0
  2. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js +43 -0
  3. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js.map +1 -0
  4. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.d.ts +1 -0
  5. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js +118 -0
  6. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js.map +1 -0
  7. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.d.ts +2 -0
  8. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js +22 -0
  9. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js.map +1 -0
  10. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.d.ts +1 -0
  11. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js +98 -0
  12. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js.map +1 -0
  13. package/Components/ContentEntryForm/CmsEntryReviewBar.d.ts +2 -0
  14. package/Components/ContentEntryForm/CmsEntryReviewBar.js +32 -0
  15. package/Components/ContentEntryForm/CmsEntryReviewBar.js.map +1 -0
  16. package/Components/ContentEntryForm/CmsEntryReviewBar.test.d.ts +1 -0
  17. package/Components/ContentEntryForm/CmsEntryReviewBar.test.js +128 -0
  18. package/Components/ContentEntryForm/CmsEntryReviewBar.test.js.map +1 -0
  19. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.d.ts +2 -0
  20. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js +46 -0
  21. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js.map +1 -0
  22. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.d.ts +1 -0
  23. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js +222 -0
  24. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js.map +1 -0
  25. package/Components/ContentEntryForm/CmsEntryReviewFormLock.d.ts +2 -0
  26. package/Components/ContentEntryForm/CmsEntryReviewFormLock.js +32 -0
  27. package/Components/ContentEntryForm/CmsEntryReviewFormLock.js.map +1 -0
  28. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.d.ts +1 -0
  29. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js +94 -0
  30. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js.map +1 -0
  31. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.d.ts +2 -0
  32. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js +56 -0
  33. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js.map +1 -0
  34. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.d.ts +1 -0
  35. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js +186 -0
  36. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js.map +1 -0
  37. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.d.ts +2 -0
  38. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js +26 -0
  39. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js.map +1 -0
  40. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.d.ts +1 -0
  41. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js +78 -0
  42. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js.map +1 -0
  43. package/Components/ContentEntryForm/getModelFieldLabels.d.ts +3 -0
  44. package/Components/ContentEntryForm/getModelFieldLabels.js +8 -0
  45. package/Components/ContentEntryForm/getModelFieldLabels.js.map +1 -0
  46. package/Components/ContentEntryForm/index.d.ts +5 -0
  47. package/Components/ContentEntryForm/index.js +5 -0
  48. package/Components/ContentReviews/CmsContentReviews.d.ts +2 -0
  49. package/Components/ContentReviews/CmsContentReviews.js +11 -0
  50. package/Components/ContentReviews/CmsContentReviews.js.map +1 -0
  51. package/Components/ContentReviews/CmsContentReviews.test.d.ts +1 -0
  52. package/Components/ContentReviews/CmsContentReviews.test.js +214 -0
  53. package/Components/ContentReviews/CmsContentReviews.test.js.map +1 -0
  54. package/Components/ContentReviews/CmsContentReviewsMount.d.ts +4 -0
  55. package/Components/ContentReviews/CmsContentReviewsMount.js +44 -0
  56. package/Components/ContentReviews/CmsContentReviewsMount.js.map +1 -0
  57. package/Components/ContentReviews/CmsContentReviewsSidebarItem.d.ts +2 -0
  58. package/Components/ContentReviews/CmsContentReviewsSidebarItem.js +20 -0
  59. package/Components/ContentReviews/CmsContentReviewsSidebarItem.js.map +1 -0
  60. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.d.ts +1 -0
  61. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js +83 -0
  62. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js.map +1 -0
  63. package/Components/ModelDelete/ModelBoundToWorkflowErrorData.d.ts +8 -0
  64. package/Components/ModelDelete/ModelBoundToWorkflowErrorData.js +0 -0
  65. package/Components/ModelDelete/ModelDeleteWorkflowCopy.d.ts +10 -0
  66. package/Components/ModelDelete/ModelDeleteWorkflowCopy.js +0 -0
  67. package/Components/ModelDelete/ModelDeleteWorkflowError.d.ts +2 -0
  68. package/Components/ModelDelete/ModelDeleteWorkflowError.js +34 -0
  69. package/Components/ModelDelete/ModelDeleteWorkflowError.js.map +1 -0
  70. package/Components/ModelDelete/ModelDeleteWorkflowError.test.d.ts +1 -0
  71. package/Components/ModelDelete/ModelDeleteWorkflowError.test.js +73 -0
  72. package/Components/ModelDelete/ModelDeleteWorkflowError.test.js.map +1 -0
  73. package/Components/ModelDelete/getModelDeleteWorkflowCopy.d.ts +3 -0
  74. package/Components/ModelDelete/getModelDeleteWorkflowCopy.js +17 -0
  75. package/Components/ModelDelete/getModelDeleteWorkflowCopy.js.map +1 -0
  76. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.d.ts +1 -0
  77. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js +28 -0
  78. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js.map +1 -0
  79. package/Components/ignoreAction.d.ts +1 -0
  80. package/Components/ignoreAction.js +4 -0
  81. package/Components/ignoreAction.js.map +1 -0
  82. package/LICENSE +21 -0
  83. package/README.md +11 -0
  84. package/Routes/CmsWorkflowEditor.d.ts +2 -0
  85. package/Routes/CmsWorkflowEditor.js +23 -0
  86. package/Routes/CmsWorkflowEditor.js.map +1 -0
  87. package/Routes/CmsWorkflowEditor.test.d.ts +1 -0
  88. package/Routes/CmsWorkflowEditor.test.js +141 -0
  89. package/Routes/CmsWorkflowEditor.test.js.map +1 -0
  90. package/Routes/index.d.ts +1 -0
  91. package/Routes/index.js +1 -0
  92. package/features/cache/CmsReviewCacheSyncHandler.d.ts +8 -0
  93. package/features/cache/CmsReviewCacheSyncHandler.js +14 -0
  94. package/features/cache/CmsReviewCacheSyncHandler.js.map +1 -0
  95. package/features/cache/CmsReviewCacheWriter.d.ts +14 -0
  96. package/features/cache/CmsReviewCacheWriter.js +39 -0
  97. package/features/cache/CmsReviewCacheWriter.js.map +1 -0
  98. package/features/cache/CmsReviewCacheWriter.test.d.ts +1 -0
  99. package/features/cache/CmsReviewCacheWriter.test.js +207 -0
  100. package/features/cache/CmsReviewCacheWriter.test.js.map +1 -0
  101. package/features/cache/CmsReviewEntriesCacheProviderDecorator.d.ts +12 -0
  102. package/features/cache/CmsReviewEntriesCacheProviderDecorator.js +17 -0
  103. package/features/cache/CmsReviewEntriesCacheProviderDecorator.js.map +1 -0
  104. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.d.ts +1 -0
  105. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js +129 -0
  106. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js.map +1 -0
  107. package/features/cache/ReviewPreservingEntriesCache.d.ts +18 -0
  108. package/features/cache/ReviewPreservingEntriesCache.js +54 -0
  109. package/features/cache/ReviewPreservingEntriesCache.js.map +1 -0
  110. package/features/cache/abstractions.d.ts +5 -0
  111. package/features/cache/abstractions.js +5 -0
  112. package/features/cache/abstractions.js.map +1 -0
  113. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.d.ts +26 -0
  114. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js +104 -0
  115. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js.map +1 -0
  116. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.d.ts +1 -0
  117. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js +589 -0
  118. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js.map +1 -0
  119. package/features/editorGateway/feature.d.ts +1 -0
  120. package/features/editorGateway/feature.js +11 -0
  121. package/features/editorGateway/feature.js.map +1 -0
  122. package/features/editorGateway/feature.test.d.ts +1 -0
  123. package/features/editorGateway/feature.test.js +272 -0
  124. package/features/editorGateway/feature.test.js.map +1 -0
  125. package/features/editorGateway/graphql/cmsEntryFolderExists.d.ts +1 -0
  126. package/features/editorGateway/graphql/cmsEntryFolderExists.js +16 -0
  127. package/features/editorGateway/graphql/cmsEntryFolderExists.js.map +1 -0
  128. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.d.ts +1 -0
  129. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js +19 -0
  130. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js.map +1 -0
  131. package/features/editorGateway/graphql/getCmsEntryWorkflow.d.ts +1 -0
  132. package/features/editorGateway/graphql/getCmsEntryWorkflow.js +19 -0
  133. package/features/editorGateway/graphql/getCmsEntryWorkflow.js.map +1 -0
  134. package/features/editorGateway/graphql/inspectCmsEntryRouting.d.ts +1 -0
  135. package/features/editorGateway/graphql/inspectCmsEntryRouting.js +19 -0
  136. package/features/editorGateway/graphql/inspectCmsEntryRouting.js.map +1 -0
  137. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.d.ts +1 -0
  138. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js +29 -0
  139. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js.map +1 -0
  140. package/features/editorGateway/graphql/storeCmsEntryWorkflow.d.ts +1 -0
  141. package/features/editorGateway/graphql/storeCmsEntryWorkflow.js +19 -0
  142. package/features/editorGateway/graphql/storeCmsEntryWorkflow.js.map +1 -0
  143. package/features/editorMounting/CmsWorkflowEditorAppAdapter.d.ts +25 -0
  144. package/features/editorMounting/CmsWorkflowEditorAppAdapter.js +51 -0
  145. package/features/editorMounting/CmsWorkflowEditorAppAdapter.js.map +1 -0
  146. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.d.ts +1 -0
  147. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js +185 -0
  148. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js.map +1 -0
  149. package/features/editorMounting/abstractions.d.ts +5 -0
  150. package/features/editorMounting/abstractions.js +5 -0
  151. package/features/editorMounting/abstractions.js.map +1 -0
  152. package/features/editorMounting/feature.d.ts +3 -0
  153. package/features/editorMounting/feature.js +19 -0
  154. package/features/editorMounting/feature.js.map +1 -0
  155. package/features/editorMounting/feature.test.d.ts +1 -0
  156. package/features/editorMounting/feature.test.js +100 -0
  157. package/features/editorMounting/feature.test.js.map +1 -0
  158. package/features/editorReview/CmsEntryReview.d.ts +8 -0
  159. package/features/editorReview/CmsEntryReview.js +14 -0
  160. package/features/editorReview/CmsEntryReview.js.map +1 -0
  161. package/features/editorReview/abstractions.d.ts +5 -0
  162. package/features/editorReview/abstractions.js +5 -0
  163. package/features/editorReview/abstractions.js.map +1 -0
  164. package/features/editorReview/feature.d.ts +3 -0
  165. package/features/editorReview/feature.js +17 -0
  166. package/features/editorReview/feature.js.map +1 -0
  167. package/features/editorReview/feature.test.d.ts +1 -0
  168. package/features/editorReview/feature.test.js +46 -0
  169. package/features/editorReview/feature.test.js.map +1 -0
  170. package/features/editorReview/useCmsEntryReview.d.ts +2 -0
  171. package/features/editorReview/useCmsEntryReview.js +8 -0
  172. package/features/editorReview/useCmsEntryReview.js.map +1 -0
  173. package/features/feature.d.ts +1 -0
  174. package/features/feature.js +15 -0
  175. package/features/feature.js.map +1 -0
  176. package/features/gateway/CmsReviewChangeMessageHandler.d.ts +8 -0
  177. package/features/gateway/CmsReviewChangeMessageHandler.js +16 -0
  178. package/features/gateway/CmsReviewChangeMessageHandler.js.map +1 -0
  179. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.d.ts +16 -0
  180. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js +39 -0
  181. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js.map +1 -0
  182. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.d.ts +1 -0
  183. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js +83 -0
  184. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js.map +1 -0
  185. package/features/gateway/CmsReviewContentAdapter/abstractions.d.ts +5 -0
  186. package/features/gateway/CmsReviewContentAdapter/abstractions.js +5 -0
  187. package/features/gateway/CmsReviewContentAdapter/abstractions.js.map +1 -0
  188. package/features/gateway/CmsReviewGateway/CmsReviewGateway.d.ts +52 -0
  189. package/features/gateway/CmsReviewGateway/CmsReviewGateway.js +221 -0
  190. package/features/gateway/CmsReviewGateway/CmsReviewGateway.js.map +1 -0
  191. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.d.ts +1 -0
  192. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js +689 -0
  193. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js.map +1 -0
  194. package/features/gateway/CmsReviewNotificationHandler.d.ts +8 -0
  195. package/features/gateway/CmsReviewNotificationHandler.js +16 -0
  196. package/features/gateway/CmsReviewNotificationHandler.js.map +1 -0
  197. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.d.ts +8 -0
  198. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js +14 -0
  199. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js.map +1 -0
  200. package/features/gateway/CmsReviewRowProvider/abstractions.d.ts +5 -0
  201. package/features/gateway/CmsReviewRowProvider/abstractions.js +5 -0
  202. package/features/gateway/CmsReviewRowProvider/abstractions.js.map +1 -0
  203. package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
  204. package/features/gateway/contentReviewsBindings.test.js +125 -0
  205. package/features/gateway/contentReviewsBindings.test.js.map +1 -0
  206. package/features/gateway/feature.d.ts +4 -0
  207. package/features/gateway/feature.js +27 -0
  208. package/features/gateway/feature.js.map +1 -0
  209. package/features/gateway/feature.test.d.ts +1 -0
  210. package/features/gateway/feature.test.js +79 -0
  211. package/features/gateway/feature.test.js.map +1 -0
  212. package/features/gateway/graphql/CmsOperationResponse.d.ts +3 -0
  213. package/features/gateway/graphql/CmsOperationResponse.js +0 -0
  214. package/features/gateway/graphql/approveCmsEntryReviewStep.d.ts +1 -0
  215. package/features/gateway/graphql/approveCmsEntryReviewStep.js +18 -0
  216. package/features/gateway/graphql/approveCmsEntryReviewStep.js.map +1 -0
  217. package/features/gateway/graphql/cancelCmsEntryReview.d.ts +1 -0
  218. package/features/gateway/graphql/cancelCmsEntryReview.js +18 -0
  219. package/features/gateway/graphql/cancelCmsEntryReview.js.map +1 -0
  220. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.d.ts +1 -0
  221. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js +28 -0
  222. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js.map +1 -0
  223. package/features/gateway/graphql/getCmsEntryReview.d.ts +1 -0
  224. package/features/gateway/graphql/getCmsEntryReview.js +18 -0
  225. package/features/gateway/graphql/getCmsEntryReview.js.map +1 -0
  226. package/features/gateway/graphql/getCmsEntryReviewStepRun.d.ts +1 -0
  227. package/features/gateway/graphql/getCmsEntryReviewStepRun.js +18 -0
  228. package/features/gateway/graphql/getCmsEntryReviewStepRun.js.map +1 -0
  229. package/features/gateway/graphql/getCmsEntryTargetReview.d.ts +1 -0
  230. package/features/gateway/graphql/getCmsEntryTargetReview.js +18 -0
  231. package/features/gateway/graphql/getCmsEntryTargetReview.js.map +1 -0
  232. package/features/gateway/graphql/listCmsEntryBlockingReviews.d.ts +1 -0
  233. package/features/gateway/graphql/listCmsEntryBlockingReviews.js +18 -0
  234. package/features/gateway/graphql/listCmsEntryBlockingReviews.js.map +1 -0
  235. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.d.ts +1 -0
  236. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js +18 -0
  237. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js.map +1 -0
  238. package/features/gateway/graphql/listCmsEntryReviews.d.ts +1 -0
  239. package/features/gateway/graphql/listCmsEntryReviews.js +34 -0
  240. package/features/gateway/graphql/listCmsEntryReviews.js.map +1 -0
  241. package/features/gateway/graphql/listCmsEntryStepCandidates.d.ts +1 -0
  242. package/features/gateway/graphql/listCmsEntryStepCandidates.js +28 -0
  243. package/features/gateway/graphql/listCmsEntryStepCandidates.js.map +1 -0
  244. package/features/gateway/graphql/listCmsEntryWorkflows.d.ts +1 -0
  245. package/features/gateway/graphql/listCmsEntryWorkflows.js +18 -0
  246. package/features/gateway/graphql/listCmsEntryWorkflows.js.map +1 -0
  247. package/features/gateway/graphql/reassignCmsEntryReviewStep.d.ts +1 -0
  248. package/features/gateway/graphql/reassignCmsEntryReviewStep.js +18 -0
  249. package/features/gateway/graphql/reassignCmsEntryReviewStep.js.map +1 -0
  250. package/features/gateway/graphql/rejectCmsEntryReviewStep.d.ts +1 -0
  251. package/features/gateway/graphql/rejectCmsEntryReviewStep.js +18 -0
  252. package/features/gateway/graphql/rejectCmsEntryReviewStep.js.map +1 -0
  253. package/features/gateway/graphql/requestCmsEntryReview.d.ts +1 -0
  254. package/features/gateway/graphql/requestCmsEntryReview.js +28 -0
  255. package/features/gateway/graphql/requestCmsEntryReview.js.map +1 -0
  256. package/features/gateway/graphql/restartCmsEntryReviewStep.d.ts +1 -0
  257. package/features/gateway/graphql/restartCmsEntryReviewStep.js +18 -0
  258. package/features/gateway/graphql/restartCmsEntryReviewStep.js.map +1 -0
  259. package/features/gateway/graphql/startCmsEntryReviewStep.d.ts +1 -0
  260. package/features/gateway/graphql/startCmsEntryReviewStep.js +18 -0
  261. package/features/gateway/graphql/startCmsEntryReviewStep.js.map +1 -0
  262. package/features/gateway/graphql/takeOverCmsEntryReviewStep.d.ts +1 -0
  263. package/features/gateway/graphql/takeOverCmsEntryReviewStep.js +22 -0
  264. package/features/gateway/graphql/takeOverCmsEntryReviewStep.js.map +1 -0
  265. package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +20 -0
  266. package/features/trash/BulkDeletePresenterReviewDecorator.js +81 -0
  267. package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
  268. package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
  269. package/features/trash/BulkDeletePresenterReviewDecorator.test.js +693 -0
  270. package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
  271. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.d.ts +13 -0
  272. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js +23 -0
  273. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js.map +1 -0
  274. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.d.ts +1 -0
  275. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js +123 -0
  276. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js.map +1 -0
  277. package/features/trash/DeleteEntryUseCaseReviewDecorator.d.ts +13 -0
  278. package/features/trash/DeleteEntryUseCaseReviewDecorator.js +23 -0
  279. package/features/trash/DeleteEntryUseCaseReviewDecorator.js.map +1 -0
  280. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
  281. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js +139 -0
  282. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
  283. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.d.ts +13 -0
  284. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js +23 -0
  285. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js.map +1 -0
  286. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
  287. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js +122 -0
  288. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
  289. package/features/trash/feature.d.ts +1 -0
  290. package/features/trash/feature.js +17 -0
  291. package/features/trash/feature.js.map +1 -0
  292. package/features/trash/feature.test.d.ts +1 -0
  293. package/features/trash/feature.test.js +213 -0
  294. package/features/trash/feature.test.js.map +1 -0
  295. package/index.d.ts +2 -0
  296. package/index.editor.test.d.ts +1 -0
  297. package/index.editor.test.js +149 -0
  298. package/index.editor.test.js.map +1 -0
  299. package/index.js +41 -0
  300. package/index.js.map +1 -0
  301. package/index.lists.test.d.ts +1 -0
  302. package/index.lists.test.js +172 -0
  303. package/index.lists.test.js.map +1 -0
  304. package/index.mount.test.d.ts +1 -0
  305. package/index.mount.test.js +49 -0
  306. package/index.mount.test.js.map +1 -0
  307. package/index.test.d.ts +1 -0
  308. package/index.test.js +414 -0
  309. package/index.test.js.map +1 -0
  310. package/package.json +54 -0
  311. package/presentation/CmsEntryContentReloader.d.ts +8 -0
  312. package/presentation/CmsEntryContentReloader.js +20 -0
  313. package/presentation/CmsEntryContentReloader.js.map +1 -0
  314. package/presentation/CmsEntryContentReloader.test.d.ts +1 -0
  315. package/presentation/CmsEntryContentReloader.test.js +118 -0
  316. package/presentation/CmsEntryContentReloader.test.js.map +1 -0
  317. package/presentation/CmsEntryFormPresenterReviewDecorator.d.ts +27 -0
  318. package/presentation/CmsEntryFormPresenterReviewDecorator.js +167 -0
  319. package/presentation/CmsEntryFormPresenterReviewDecorator.js.map +1 -0
  320. package/presentation/CmsEntryFormPresenterReviewDecorator.test.d.ts +1 -0
  321. package/presentation/CmsEntryFormPresenterReviewDecorator.test.js +601 -0
  322. package/presentation/CmsEntryFormPresenterReviewDecorator.test.js.map +1 -0
  323. package/presentation/CmsEntryUnsavedChanges.d.ts +7 -0
  324. package/presentation/CmsEntryUnsavedChanges.js +12 -0
  325. package/presentation/CmsEntryUnsavedChanges.js.map +1 -0
  326. package/presentation/CmsEntryUnsavedChanges.test.d.ts +1 -0
  327. package/presentation/CmsEntryUnsavedChanges.test.js +23 -0
  328. package/presentation/CmsEntryUnsavedChanges.test.js.map +1 -0
  329. package/presentation/CmsReviewFieldSelections.test.d.ts +1 -0
  330. package/presentation/CmsReviewFieldSelections.test.js +27 -0
  331. package/presentation/CmsReviewFieldSelections.test.js.map +1 -0
  332. package/presentation/CmsReviewGetEntryFieldSelection.d.ts +8 -0
  333. package/presentation/CmsReviewGetEntryFieldSelection.js +16 -0
  334. package/presentation/CmsReviewGetEntryFieldSelection.js.map +1 -0
  335. package/presentation/CmsReviewListEntriesFieldSelection.d.ts +8 -0
  336. package/presentation/CmsReviewListEntriesFieldSelection.js +16 -0
  337. package/presentation/CmsReviewListEntriesFieldSelection.js.map +1 -0
  338. package/presentation/CmsReviewTableRowMapperDecorator.d.ts +11 -0
  339. package/presentation/CmsReviewTableRowMapperDecorator.js +24 -0
  340. package/presentation/CmsReviewTableRowMapperDecorator.js.map +1 -0
  341. package/presentation/CmsReviewTableRowMapperDecorator.test.d.ts +1 -0
  342. package/presentation/CmsReviewTableRowMapperDecorator.test.js +120 -0
  343. package/presentation/CmsReviewTableRowMapperDecorator.test.js.map +1 -0
  344. package/presentation/CmsRevisionsListPresenterDecorator.d.ts +24 -0
  345. package/presentation/CmsRevisionsListPresenterDecorator.js +66 -0
  346. package/presentation/CmsRevisionsListPresenterDecorator.js.map +1 -0
  347. package/presentation/CmsRevisionsListPresenterDecorator.test.d.ts +1 -0
  348. package/presentation/CmsRevisionsListPresenterDecorator.test.js +174 -0
  349. package/presentation/CmsRevisionsListPresenterDecorator.test.js.map +1 -0
  350. package/presentation/contentReviews/CmsContentReviewsPresenter.d.ts +28 -0
  351. package/presentation/contentReviews/CmsContentReviewsPresenter.js +103 -0
  352. package/presentation/contentReviews/CmsContentReviewsPresenter.js.map +1 -0
  353. package/presentation/contentReviews/CmsContentReviewsPresenter.test.d.ts +1 -0
  354. package/presentation/contentReviews/CmsContentReviewsPresenter.test.js +238 -0
  355. package/presentation/contentReviews/CmsContentReviewsPresenter.test.js.map +1 -0
  356. package/presentation/contentReviews/abstractions.d.ts +31 -0
  357. package/presentation/contentReviews/abstractions.js +5 -0
  358. package/presentation/contentReviews/abstractions.js.map +1 -0
  359. package/presentation/contentReviews/feature.d.ts +3 -0
  360. package/presentation/contentReviews/feature.js +17 -0
  361. package/presentation/contentReviews/feature.js.map +1 -0
  362. package/presentation/contentReviews/toContentTypes.d.ts +3 -0
  363. package/presentation/contentReviews/toContentTypes.js +14 -0
  364. package/presentation/contentReviews/toContentTypes.js.map +1 -0
  365. package/presentation/contentReviews/toContentTypes.test.d.ts +1 -0
  366. package/presentation/contentReviews/toContentTypes.test.js +20 -0
  367. package/presentation/contentReviews/toContentTypes.test.js.map +1 -0
  368. package/presentation/feature.d.ts +1 -0
  369. package/presentation/feature.js +19 -0
  370. package/presentation/feature.js.map +1 -0
  371. package/presentation/getCmsEntryReviewContext.d.ts +4 -0
  372. package/presentation/getCmsEntryReviewContext.js +12 -0
  373. package/presentation/getCmsEntryReviewContext.js.map +1 -0
  374. package/presentation/getCmsEntryReviewInitParams.d.ts +13 -0
  375. package/presentation/getCmsEntryReviewInitParams.js +18 -0
  376. package/presentation/getCmsEntryReviewInitParams.js.map +1 -0
  377. package/presentation/getCmsEntryReviewInitParams.test.d.ts +1 -0
  378. package/presentation/getCmsEntryReviewInitParams.test.js +69 -0
  379. package/presentation/getCmsEntryReviewInitParams.test.js.map +1 -0
  380. package/routes.d.ts +11 -0
  381. package/routes.js +21 -0
  382. package/routes.js.map +1 -0
  383. package/testing/createEntry.d.ts +3 -0
  384. package/testing/createEntry.js +22 -0
  385. package/testing/createEntry.js.map +1 -0
  386. package/testing/createEntrySession.d.ts +9 -0
  387. package/testing/createEntrySession.js +29 -0
  388. package/testing/createEntrySession.js.map +1 -0
  389. package/testing/createFolder.d.ts +2 -0
  390. package/testing/createFolder.js +13 -0
  391. package/testing/createFolder.js.map +1 -0
  392. package/testing/createFormVm.d.ts +2 -0
  393. package/testing/createFormVm.js +22 -0
  394. package/testing/createFormVm.js.map +1 -0
  395. package/testing/models.d.ts +4 -0
  396. package/testing/models.js +23 -0
  397. package/testing/models.js.map +1 -0
  398. package/testing/renderEditorTree.d.ts +17 -0
  399. package/testing/renderEditorTree.js +93 -0
  400. package/testing/renderEditorTree.js.map +1 -0
  401. package/testing/reviewStates.d.ts +17 -0
  402. package/testing/reviewStates.js +65 -0
  403. package/testing/reviewStates.js.map +1 -0
  404. package/types.d.ts +10 -0
  405. package/types.js +0 -0
  406. package/utils/appName.d.ts +4 -0
  407. package/utils/appName.js +13 -0
  408. package/utils/appName.js.map +1 -0
  409. package/utils/isReviewableModel.d.ts +2 -0
  410. package/utils/isReviewableModel.js +7 -0
  411. package/utils/isReviewableModel.js.map +1 -0
  412. package/utils/renderModelIcon.d.ts +3 -0
  413. package/utils/renderModelIcon.js +19 -0
  414. package/utils/renderModelIcon.js.map +1 -0
  415. package/utils/renderModelIconOrFallback.d.ts +3 -0
  416. package/utils/renderModelIconOrFallback.js +17 -0
  417. package/utils/renderModelIconOrFallback.js.map +1 -0
@@ -0,0 +1,589 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { Container } from "@webiny/di";
3
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
4
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
5
+ import { EDITOR_ROUTING_INSPECTION_FIELDS, EDITOR_WORKFLOW_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
6
+ import { EDITOR_SAVED_ON, createEditorWorkflowDto, createRoutingInspectionDto, createWorkflowModelRowDto } from "@webiny/app-workflows/editor/testing/editorFixtures.js";
7
+ import { WorkflowEditorAppGateway } from "@webiny/app-workflows/editor/appGateway/abstractions.js";
8
+ import { CmsWorkflowEditorGateway } from "./CmsWorkflowEditorGateway.js";
9
+ const input = {
10
+ id: "workflow-1",
11
+ name: "Article review",
12
+ models: [
13
+ "cms.article"
14
+ ],
15
+ steps: [
16
+ {
17
+ id: "step-1",
18
+ title: "Editorial check",
19
+ color: "var(--color-primary-500)",
20
+ description: null,
21
+ type: "review",
22
+ notifications: [
23
+ {
24
+ id: "e-mail"
25
+ }
26
+ ],
27
+ config: {
28
+ teams: [
29
+ "team-1"
30
+ ]
31
+ }
32
+ }
33
+ ]
34
+ };
35
+ const inspectParams = {
36
+ stepConfig: {
37
+ teams: [
38
+ "team-1"
39
+ ],
40
+ assignment: {
41
+ strategy: "roundRobin",
42
+ allowManualPick: false,
43
+ rules: [
44
+ {
45
+ id: "rule-1",
46
+ conditions: {},
47
+ target: {
48
+ type: "team",
49
+ id: "team-1"
50
+ }
51
+ }
52
+ ]
53
+ }
54
+ },
55
+ requesterId: "user-1",
56
+ folderId: "folder-1",
57
+ modelId: "article"
58
+ };
59
+ const folderParams = {
60
+ id: "folder-1",
61
+ type: "cms:article"
62
+ };
63
+ describe("CmsWorkflowEditorGateway", ()=>{
64
+ const client = {
65
+ execute: vi.fn()
66
+ };
67
+ let gateway;
68
+ beforeEach(()=>{
69
+ client.execute.mockReset();
70
+ const container = new Container();
71
+ container.registerInstance(MainGraphQLClient, client);
72
+ container.register(CmsWorkflowEditorGateway);
73
+ gateway = container.resolve(WorkflowEditorAppGateway);
74
+ });
75
+ it("declares the cms app, the key the routing gateway picks it by (R347)", ()=>{
76
+ expect(gateway.app).toBe("cms");
77
+ });
78
+ describe("listModels", ()=>{
79
+ it("sends search, limit and after and folds data and meta into one page", async ()=>{
80
+ const rows = [
81
+ createWorkflowModelRowDto()
82
+ ];
83
+ client.execute.mockResolvedValue({
84
+ cms: {
85
+ listCmsEntryWorkflowModels: {
86
+ data: rows,
87
+ meta: {
88
+ cursor: "cursor-2",
89
+ hasMoreItems: true
90
+ },
91
+ error: null
92
+ }
93
+ }
94
+ });
95
+ const result = await gateway.listModels({
96
+ search: "art",
97
+ limit: 20,
98
+ after: "cursor-1"
99
+ });
100
+ expect(result).toEqual({
101
+ data: {
102
+ rows,
103
+ meta: {
104
+ cursor: "cursor-2",
105
+ hasMoreItems: true
106
+ }
107
+ },
108
+ error: null
109
+ });
110
+ expect(client.execute).toHaveBeenCalledTimes(1);
111
+ const request = client.execute.mock.calls[0][0];
112
+ expect(request.variables).toEqual({
113
+ search: "art",
114
+ limit: 20,
115
+ after: "cursor-1"
116
+ });
117
+ expect(request.query).toContain("listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after)");
118
+ expect(request.query).toContain("meta");
119
+ expect(request.query).toContain(ERROR_FIELDS);
120
+ });
121
+ it("selects the model, its name and the bound workflow's id and name", async ()=>{
122
+ client.execute.mockResolvedValue({
123
+ cms: {
124
+ listCmsEntryWorkflowModels: {
125
+ data: [],
126
+ meta: null,
127
+ error: null
128
+ }
129
+ }
130
+ });
131
+ await gateway.listModels({
132
+ search: "",
133
+ limit: 20,
134
+ after: null
135
+ });
136
+ const query = client.execute.mock.calls[0][0].query;
137
+ expect(query).toMatch(/model\s+modelId\s+name\s+workflow\s*\{\s*id\s+name\s+stepCount\s*\}/);
138
+ });
139
+ it("sends an empty search as null", async ()=>{
140
+ client.execute.mockResolvedValue({
141
+ cms: {
142
+ listCmsEntryWorkflowModels: {
143
+ data: [],
144
+ meta: null,
145
+ error: null
146
+ }
147
+ }
148
+ });
149
+ await gateway.listModels({
150
+ search: "",
151
+ limit: 20,
152
+ after: null
153
+ });
154
+ const request = client.execute.mock.calls[0][0];
155
+ expect(request.variables).toEqual({
156
+ search: null,
157
+ limit: 20,
158
+ after: null
159
+ });
160
+ });
161
+ it("answers the default meta when the server sends none", async ()=>{
162
+ client.execute.mockResolvedValue({
163
+ cms: {
164
+ listCmsEntryWorkflowModels: {
165
+ data: [],
166
+ meta: null,
167
+ error: null
168
+ }
169
+ }
170
+ });
171
+ const result = await gateway.listModels({
172
+ search: "",
173
+ limit: 20,
174
+ after: null
175
+ });
176
+ expect(result).toEqual({
177
+ data: {
178
+ rows: [],
179
+ meta: {
180
+ cursor: null,
181
+ hasMoreItems: false
182
+ }
183
+ },
184
+ error: null
185
+ });
186
+ });
187
+ it("answers an error envelope without data and does not throw (R204)", async ()=>{
188
+ const error = {
189
+ code: "Workflows/NotAuthorized",
190
+ message: "No.",
191
+ data: null
192
+ };
193
+ client.execute.mockResolvedValue({
194
+ cms: {
195
+ listCmsEntryWorkflowModels: {
196
+ data: null,
197
+ meta: null,
198
+ error
199
+ }
200
+ }
201
+ });
202
+ const result = await gateway.listModels({
203
+ search: "",
204
+ limit: 20,
205
+ after: null
206
+ });
207
+ expect(result).toEqual({
208
+ data: null,
209
+ error
210
+ });
211
+ });
212
+ it("answers neither data nor error when the server sends neither", async ()=>{
213
+ client.execute.mockResolvedValue({
214
+ cms: {
215
+ listCmsEntryWorkflowModels: {
216
+ data: null,
217
+ meta: null,
218
+ error: null
219
+ }
220
+ }
221
+ });
222
+ const result = await gateway.listModels({
223
+ search: "",
224
+ limit: 20,
225
+ after: null
226
+ });
227
+ expect(result).toEqual({
228
+ data: null,
229
+ error: null
230
+ });
231
+ });
232
+ it("lets a transport failure pass as it is", async ()=>{
233
+ const failure = new Error("Network down.");
234
+ client.execute.mockRejectedValue(failure);
235
+ await expect(gateway.listModels({
236
+ search: "",
237
+ limit: 20,
238
+ after: null
239
+ })).rejects.toBe(failure);
240
+ });
241
+ });
242
+ describe("getWorkflow", ()=>{
243
+ it("reads the workflow by id and returns the envelope as it is", async ()=>{
244
+ const envelope = {
245
+ data: createEditorWorkflowDto(),
246
+ error: null
247
+ };
248
+ client.execute.mockResolvedValue({
249
+ cms: {
250
+ getCmsEntryWorkflow: envelope
251
+ }
252
+ });
253
+ const result = await gateway.getWorkflow("workflow-1");
254
+ expect(result).toEqual(envelope);
255
+ const request = client.execute.mock.calls[0][0];
256
+ expect(request.variables).toEqual({
257
+ id: "workflow-1"
258
+ });
259
+ expect(request.query).toContain("getCmsEntryWorkflow(id: $id)");
260
+ expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
261
+ expect(request.query).toContain(ERROR_FIELDS);
262
+ });
263
+ it("returns an error envelope as it is", async ()=>{
264
+ const envelope = {
265
+ data: null,
266
+ error: {
267
+ code: "Workflows/Workflow/NotFound",
268
+ message: "Gone.",
269
+ data: {
270
+ id: "x"
271
+ }
272
+ }
273
+ };
274
+ client.execute.mockResolvedValue({
275
+ cms: {
276
+ getCmsEntryWorkflow: envelope
277
+ }
278
+ });
279
+ expect(await gateway.getWorkflow("x")).toEqual(envelope);
280
+ });
281
+ });
282
+ describe("storeWorkflow", ()=>{
283
+ it("sends the data and the loaded savedOn string unchanged (D131)", async ()=>{
284
+ const envelope = {
285
+ data: createEditorWorkflowDto(),
286
+ error: null
287
+ };
288
+ client.execute.mockResolvedValue({
289
+ cms: {
290
+ storeCmsEntryWorkflow: envelope
291
+ }
292
+ });
293
+ const result = await gateway.storeWorkflow({
294
+ data: input,
295
+ savedOn: EDITOR_SAVED_ON
296
+ });
297
+ expect(result).toEqual(envelope);
298
+ const request = client.execute.mock.calls[0][0];
299
+ expect(request.variables).toEqual({
300
+ data: input,
301
+ savedOn: "2026-10-18T09:15:30.123Z"
302
+ });
303
+ expect(request.variables.data).toBe(input);
304
+ expect(request.query).toContain("mutation");
305
+ expect(request.query).toContain("storeCmsEntryWorkflow(data: $data, savedOn: $savedOn)");
306
+ expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
307
+ expect(request.query).toContain(ERROR_FIELDS);
308
+ });
309
+ it("sends a null savedOn for a new workflow", async ()=>{
310
+ client.execute.mockResolvedValue({
311
+ cms: {
312
+ storeCmsEntryWorkflow: {
313
+ data: createEditorWorkflowDto(),
314
+ error: null
315
+ }
316
+ }
317
+ });
318
+ await gateway.storeWorkflow({
319
+ data: input,
320
+ savedOn: null
321
+ });
322
+ const request = client.execute.mock.calls[0][0];
323
+ expect(request.variables).toEqual({
324
+ data: input,
325
+ savedOn: null
326
+ });
327
+ });
328
+ it("returns a conflict envelope as it is and does not throw (R204)", async ()=>{
329
+ const envelope = {
330
+ data: null,
331
+ error: {
332
+ code: "Workflows/Workflow/Conflict",
333
+ message: "The workflow was changed.",
334
+ data: {
335
+ savedOn: "2026-10-18T10:00:00.000Z"
336
+ }
337
+ }
338
+ };
339
+ client.execute.mockResolvedValue({
340
+ cms: {
341
+ storeCmsEntryWorkflow: envelope
342
+ }
343
+ });
344
+ const result = await gateway.storeWorkflow({
345
+ data: input,
346
+ savedOn: EDITOR_SAVED_ON
347
+ });
348
+ expect(result).toEqual(envelope);
349
+ });
350
+ it("returns a validation envelope with the rule id as it is (R288)", async ()=>{
351
+ const envelope = {
352
+ data: null,
353
+ error: {
354
+ code: "Workflows/Workflow/Validation",
355
+ message: "The target team is not one of the step's reviewing teams.",
356
+ data: {
357
+ stepId: "step-1",
358
+ field: "config.assignment.rules.target",
359
+ workflowId: null,
360
+ ruleId: "r-1"
361
+ }
362
+ }
363
+ };
364
+ client.execute.mockResolvedValue({
365
+ cms: {
366
+ storeCmsEntryWorkflow: envelope
367
+ }
368
+ });
369
+ const result = await gateway.storeWorkflow({
370
+ data: input,
371
+ savedOn: EDITOR_SAVED_ON
372
+ });
373
+ expect(result).toEqual(envelope);
374
+ expect(result.error?.data).toMatchObject({
375
+ ruleId: "r-1"
376
+ });
377
+ });
378
+ it("lets a transport failure pass as it is", async ()=>{
379
+ const failure = new Error("Network down.");
380
+ client.execute.mockRejectedValue(failure);
381
+ await expect(gateway.storeWorkflow({
382
+ data: input,
383
+ savedOn: EDITOR_SAVED_ON
384
+ })).rejects.toBe(failure);
385
+ });
386
+ });
387
+ describe("inspectRouting", ()=>{
388
+ it("sends the step config, the bare model id, the requester and the folder as variables", async ()=>{
389
+ const envelope = {
390
+ data: createRoutingInspectionDto(),
391
+ error: null
392
+ };
393
+ client.execute.mockResolvedValue({
394
+ cms: {
395
+ inspectCmsEntryRouting: envelope
396
+ }
397
+ });
398
+ const result = await gateway.inspectRouting(inspectParams);
399
+ expect(result).toEqual(envelope);
400
+ expect(client.execute).toHaveBeenCalledTimes(1);
401
+ const request = client.execute.mock.calls[0][0];
402
+ expect(request.variables).toEqual({
403
+ stepConfig: inspectParams.stepConfig,
404
+ modelId: "article",
405
+ requesterId: "user-1",
406
+ folderId: "folder-1"
407
+ });
408
+ expect(request.query).toContain("query InspectCmsEntryRouting");
409
+ expect(request.query).toContain("cms");
410
+ expect(request.query).toContain("inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId)");
411
+ expect(request.query).toContain("$stepConfig: JSON!");
412
+ expect(request.query).toContain("$modelId: ID!");
413
+ expect(request.query).toContain("$requesterId: ID!");
414
+ expect(request.query).toContain("$folderId: ID");
415
+ expect(request.query).toContain(EDITOR_ROUTING_INSPECTION_FIELDS);
416
+ expect(request.query).toContain(ERROR_FIELDS);
417
+ });
418
+ it("sends a null folder as the root", async ()=>{
419
+ client.execute.mockResolvedValue({
420
+ cms: {
421
+ inspectCmsEntryRouting: {
422
+ data: createRoutingInspectionDto(),
423
+ error: null
424
+ }
425
+ }
426
+ });
427
+ await gateway.inspectRouting({
428
+ ...inspectParams,
429
+ folderId: null
430
+ });
431
+ const request = client.execute.mock.calls[0][0];
432
+ expect(request.variables.folderId).toBeNull();
433
+ });
434
+ it("selects every field of the extended inspection (R289)", async ()=>{
435
+ client.execute.mockResolvedValue({
436
+ cms: {
437
+ inspectCmsEntryRouting: {
438
+ data: createRoutingInspectionDto(),
439
+ error: null
440
+ }
441
+ }
442
+ });
443
+ await gateway.inspectRouting(inspectParams);
444
+ const query = client.execute.mock.calls[0][0].query;
445
+ expect(query).toMatch(/narrowedTeamId\s+candidateIds\s+candidateCount/);
446
+ expect(query).toMatch(/trace\s*\{\s*ruleId\s+outcome\s+reason\s+failedConditions\s*\}/);
447
+ expect(query).toMatch(/skipped\s*\{\s*userId\s+displayName\s+reason\s*\}/);
448
+ });
449
+ it("returns a validation error of a rule as an envelope and does not throw (R204)", async ()=>{
450
+ const error = {
451
+ code: "Workflows/Workflow/Validation",
452
+ message: "The target user is not a member of the step's teams.",
453
+ data: {
454
+ stepId: "step-1",
455
+ field: "config.assignment.rules.target",
456
+ ruleId: "rule-1",
457
+ workflowId: null
458
+ }
459
+ };
460
+ client.execute.mockResolvedValue({
461
+ cms: {
462
+ inspectCmsEntryRouting: {
463
+ data: null,
464
+ error
465
+ }
466
+ }
467
+ });
468
+ const result = await gateway.inspectRouting(inspectParams);
469
+ expect(result).toEqual({
470
+ data: null,
471
+ error
472
+ });
473
+ });
474
+ it("lets a transport failure pass as it is", async ()=>{
475
+ const failure = new Error("Network down.");
476
+ client.execute.mockRejectedValue(failure);
477
+ await expect(gateway.inspectRouting(inspectParams)).rejects.toBe(failure);
478
+ });
479
+ });
480
+ describe("folderExists", ()=>{
481
+ it("sends the folder id and the folder type as variables", async ()=>{
482
+ const envelope = {
483
+ data: true,
484
+ error: null
485
+ };
486
+ client.execute.mockResolvedValue({
487
+ cms: {
488
+ cmsEntryFolderExists: envelope
489
+ }
490
+ });
491
+ const result = await gateway.folderExists(folderParams);
492
+ expect(result).toEqual(envelope);
493
+ const request = client.execute.mock.calls[0][0];
494
+ expect(request.variables).toEqual({
495
+ id: "folder-1",
496
+ type: "cms:article"
497
+ });
498
+ expect(request.query).toContain("query CmsEntryFolderExists");
499
+ expect(request.query).toContain("cmsEntryFolderExists(id: $id, type: $type)");
500
+ expect(request.query).toContain("$id: ID!");
501
+ expect(request.query).toContain("$type: String!");
502
+ expect(request.query).toContain(ERROR_FIELDS);
503
+ });
504
+ it("returns false as an answer, not an error", async ()=>{
505
+ const envelope = {
506
+ data: false,
507
+ error: null
508
+ };
509
+ client.execute.mockResolvedValue({
510
+ cms: {
511
+ cmsEntryFolderExists: envelope
512
+ }
513
+ });
514
+ const result = await gateway.folderExists(folderParams);
515
+ expect(result).toEqual({
516
+ data: false,
517
+ error: null
518
+ });
519
+ });
520
+ it("returns a server error as an envelope and does not throw (R204)", async ()=>{
521
+ const error = {
522
+ code: "Workflows/NotAuthorized",
523
+ message: "No.",
524
+ data: null
525
+ };
526
+ client.execute.mockResolvedValue({
527
+ cms: {
528
+ cmsEntryFolderExists: {
529
+ data: null,
530
+ error
531
+ }
532
+ }
533
+ });
534
+ const result = await gateway.folderExists(folderParams);
535
+ expect(result).toEqual({
536
+ data: null,
537
+ error
538
+ });
539
+ });
540
+ it("lets a transport failure pass as it is", async ()=>{
541
+ const failure = new Error("Network down.");
542
+ client.execute.mockRejectedValue(failure);
543
+ await expect(gateway.folderExists(folderParams)).rejects.toBe(failure);
544
+ });
545
+ });
546
+ describe("deleteWorkflow", ()=>{
547
+ it("deletes the workflow by id and returns the envelope as it is", async ()=>{
548
+ const envelope = {
549
+ data: createEditorWorkflowDto(),
550
+ error: null
551
+ };
552
+ client.execute.mockResolvedValue({
553
+ cms: {
554
+ deleteCmsEntryWorkflow: envelope
555
+ }
556
+ });
557
+ const result = await gateway.deleteWorkflow("workflow-1");
558
+ expect(result).toEqual(envelope);
559
+ const request = client.execute.mock.calls[0][0];
560
+ expect(request.variables).toEqual({
561
+ id: "workflow-1"
562
+ });
563
+ expect(request.query).toContain("mutation");
564
+ expect(request.query).toContain("deleteCmsEntryWorkflow(id: $id)");
565
+ expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
566
+ });
567
+ it("returns a blocked delete envelope as it is", async ()=>{
568
+ const envelope = {
569
+ data: null,
570
+ error: {
571
+ code: "Workflows/Workflow/HasActiveReviews",
572
+ message: "In use.",
573
+ data: {
574
+ count: 2,
575
+ reviews: []
576
+ }
577
+ }
578
+ };
579
+ client.execute.mockResolvedValue({
580
+ cms: {
581
+ deleteCmsEntryWorkflow: envelope
582
+ }
583
+ });
584
+ expect(await gateway.deleteWorkflow("workflow-1")).toEqual(envelope);
585
+ });
586
+ });
587
+ });
588
+
589
+ //# sourceMappingURL=CmsWorkflowEditorGateway.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js","sources":["../../../../src/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.ts"],"sourcesContent":["import { beforeEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/abstractions.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\nimport { EDITOR_ROUTING_INSPECTION_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { EDITOR_WORKFLOW_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport type { EditorWorkflowInput } from \"@webiny/app-workflows/editor/domain/types.js\";\nimport type { FolderExistsParams } from \"@webiny/app-workflows/editor/appGateway/IWorkflowEditorAppGateway.js\";\nimport type { InspectRoutingParams } from \"@webiny/app-workflows/editor/appGateway/IWorkflowEditorAppGateway.js\";\nimport { EDITOR_SAVED_ON } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createEditorWorkflowDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createRoutingInspectionDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createWorkflowModelRowDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { WorkflowEditorAppGateway as GatewayAbstraction } from \"@webiny/app-workflows/editor/appGateway/abstractions.js\";\nimport { CmsWorkflowEditorGateway } from \"./CmsWorkflowEditorGateway.js\";\n\nconst input: EditorWorkflowInput = {\n id: \"workflow-1\",\n name: \"Article review\",\n models: [\"cms.article\"],\n steps: [\n {\n id: \"step-1\",\n title: \"Editorial check\",\n color: \"var(--color-primary-500)\",\n description: null,\n type: \"review\",\n notifications: [{ id: \"e-mail\" }],\n config: { teams: [\"team-1\"] }\n }\n ]\n};\n\nconst inspectParams: InspectRoutingParams = {\n stepConfig: {\n teams: [\"team-1\"],\n assignment: {\n strategy: \"roundRobin\",\n allowManualPick: false,\n rules: [{ id: \"rule-1\", conditions: {}, target: { type: \"team\", id: \"team-1\" } }]\n }\n },\n requesterId: \"user-1\",\n folderId: \"folder-1\",\n modelId: \"article\"\n};\n\nconst folderParams: FolderExistsParams = { id: \"folder-1\", type: \"cms:article\" };\n\ndescribe(\"CmsWorkflowEditorGateway\", () => {\n const client = { execute: vi.fn() };\n let gateway: GatewayAbstraction.Interface;\n\n beforeEach(() => {\n client.execute.mockReset();\n\n const container = new Container();\n container.registerInstance(MainGraphQLClient, client);\n container.register(CmsWorkflowEditorGateway);\n gateway = container.resolve(GatewayAbstraction);\n });\n\n it(\"declares the cms app, the key the routing gateway picks it by (R347)\", () => {\n expect(gateway.app).toBe(\"cms\");\n });\n\n describe(\"listModels\", () => {\n it(\"sends search, limit and after and folds data and meta into one page\", async () => {\n const rows = [createWorkflowModelRowDto()];\n client.execute.mockResolvedValue({\n cms: {\n listCmsEntryWorkflowModels: {\n data: rows,\n meta: { cursor: \"cursor-2\", hasMoreItems: true },\n error: null\n }\n }\n });\n\n const result = await gateway.listModels({\n search: \"art\",\n limit: 20,\n after: \"cursor-1\"\n });\n\n expect(result).toEqual({\n data: { rows, meta: { cursor: \"cursor-2\", hasMoreItems: true } },\n error: null\n });\n expect(client.execute).toHaveBeenCalledTimes(1);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ search: \"art\", limit: 20, after: \"cursor-1\" });\n expect(request.query).toContain(\n \"listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after)\"\n );\n expect(request.query).toContain(\"meta\");\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"selects the model, its name and the bound workflow's id and name\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n const query: string = client.execute.mock.calls[0][0].query;\n expect(query).toMatch(\n /model\\s+modelId\\s+name\\s+workflow\\s*\\{\\s*id\\s+name\\s+stepCount\\s*\\}/\n );\n });\n\n it(\"sends an empty search as null\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ search: null, limit: 20, after: null });\n });\n\n it(\"answers the default meta when the server sends none\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({\n data: { rows: [], meta: { cursor: null, hasMoreItems: false } },\n error: null\n });\n });\n\n it(\"answers an error envelope without data and does not throw (R204)\", async () => {\n const error = { code: \"Workflows/NotAuthorized\", message: \"No.\", data: null };\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: null, meta: null, error } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"answers neither data nor error when the server sends neither\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: null, meta: null, error: null } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({ data: null, error: null });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.listModels({ search: \"\", limit: 20, after: null })).rejects.toBe(\n failure\n );\n });\n });\n\n describe(\"getWorkflow\", () => {\n it(\"reads the workflow by id and returns the envelope as it is\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { getCmsEntryWorkflow: envelope } });\n\n const result = await gateway.getWorkflow(\"workflow-1\");\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"workflow-1\" });\n expect(request.query).toContain(\"getCmsEntryWorkflow(id: $id)\");\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"returns an error envelope as it is\", async () => {\n const envelope = {\n data: null,\n error: { code: \"Workflows/Workflow/NotFound\", message: \"Gone.\", data: { id: \"x\" } }\n };\n client.execute.mockResolvedValue({ cms: { getCmsEntryWorkflow: envelope } });\n\n expect(await gateway.getWorkflow(\"x\")).toEqual(envelope);\n });\n });\n\n describe(\"storeWorkflow\", () => {\n it(\"sends the data and the loaded savedOn string unchanged (D131)\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ data: input, savedOn: \"2026-10-18T09:15:30.123Z\" });\n expect(request.variables.data).toBe(input);\n expect(request.query).toContain(\"mutation\");\n expect(request.query).toContain(\n \"storeCmsEntryWorkflow(data: $data, savedOn: $savedOn)\"\n );\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"sends a null savedOn for a new workflow\", async () => {\n client.execute.mockResolvedValue({\n cms: { storeCmsEntryWorkflow: { data: createEditorWorkflowDto(), error: null } }\n });\n\n await gateway.storeWorkflow({ data: input, savedOn: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ data: input, savedOn: null });\n });\n\n it(\"returns a conflict envelope as it is and does not throw (R204)\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/Conflict\",\n message: \"The workflow was changed.\",\n data: { savedOn: \"2026-10-18T10:00:00.000Z\" }\n }\n };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n });\n\n it(\"returns a validation envelope with the rule id as it is (R288)\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/Validation\",\n message: \"The target team is not one of the step's reviewing teams.\",\n data: {\n stepId: \"step-1\",\n field: \"config.assignment.rules.target\",\n workflowId: null,\n ruleId: \"r-1\"\n }\n }\n };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n expect(result.error?.data).toMatchObject({ ruleId: \"r-1\" });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(\n gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON })\n ).rejects.toBe(failure);\n });\n });\n\n describe(\"inspectRouting\", () => {\n it(\"sends the step config, the bare model id, the requester and the folder as variables\", async () => {\n const envelope = { data: createRoutingInspectionDto(), error: null };\n client.execute.mockResolvedValue({ cms: { inspectCmsEntryRouting: envelope } });\n\n const result = await gateway.inspectRouting(inspectParams);\n\n expect(result).toEqual(envelope);\n expect(client.execute).toHaveBeenCalledTimes(1);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({\n stepConfig: inspectParams.stepConfig,\n modelId: \"article\",\n requesterId: \"user-1\",\n folderId: \"folder-1\"\n });\n expect(request.query).toContain(\"query InspectCmsEntryRouting\");\n expect(request.query).toContain(\"cms\");\n expect(request.query).toContain(\n \"inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId)\"\n );\n expect(request.query).toContain(\"$stepConfig: JSON!\");\n expect(request.query).toContain(\"$modelId: ID!\");\n expect(request.query).toContain(\"$requesterId: ID!\");\n expect(request.query).toContain(\"$folderId: ID\");\n expect(request.query).toContain(EDITOR_ROUTING_INSPECTION_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"sends a null folder as the root\", async () => {\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: createRoutingInspectionDto(), error: null } }\n });\n\n await gateway.inspectRouting({ ...inspectParams, folderId: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables.folderId).toBeNull();\n });\n\n it(\"selects every field of the extended inspection (R289)\", async () => {\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: createRoutingInspectionDto(), error: null } }\n });\n\n await gateway.inspectRouting(inspectParams);\n\n const query: string = client.execute.mock.calls[0][0].query;\n expect(query).toMatch(/narrowedTeamId\\s+candidateIds\\s+candidateCount/);\n expect(query).toMatch(/trace\\s*\\{\\s*ruleId\\s+outcome\\s+reason\\s+failedConditions\\s*\\}/);\n expect(query).toMatch(/skipped\\s*\\{\\s*userId\\s+displayName\\s+reason\\s*\\}/);\n });\n\n it(\"returns a validation error of a rule as an envelope and does not throw (R204)\", async () => {\n const error = {\n code: \"Workflows/Workflow/Validation\",\n message: \"The target user is not a member of the step's teams.\",\n data: {\n stepId: \"step-1\",\n field: \"config.assignment.rules.target\",\n ruleId: \"rule-1\",\n workflowId: null\n }\n };\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: null, error } }\n });\n\n const result = await gateway.inspectRouting(inspectParams);\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.inspectRouting(inspectParams)).rejects.toBe(failure);\n });\n });\n\n describe(\"folderExists\", () => {\n it(\"sends the folder id and the folder type as variables\", async () => {\n const envelope = { data: true, error: null };\n client.execute.mockResolvedValue({ cms: { cmsEntryFolderExists: envelope } });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"folder-1\", type: \"cms:article\" });\n expect(request.query).toContain(\"query CmsEntryFolderExists\");\n expect(request.query).toContain(\"cmsEntryFolderExists(id: $id, type: $type)\");\n expect(request.query).toContain(\"$id: ID!\");\n expect(request.query).toContain(\"$type: String!\");\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"returns false as an answer, not an error\", async () => {\n const envelope = { data: false, error: null };\n client.execute.mockResolvedValue({ cms: { cmsEntryFolderExists: envelope } });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual({ data: false, error: null });\n });\n\n it(\"returns a server error as an envelope and does not throw (R204)\", async () => {\n const error = { code: \"Workflows/NotAuthorized\", message: \"No.\", data: null };\n client.execute.mockResolvedValue({\n cms: { cmsEntryFolderExists: { data: null, error } }\n });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.folderExists(folderParams)).rejects.toBe(failure);\n });\n });\n\n describe(\"deleteWorkflow\", () => {\n it(\"deletes the workflow by id and returns the envelope as it is\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { deleteCmsEntryWorkflow: envelope } });\n\n const result = await gateway.deleteWorkflow(\"workflow-1\");\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"workflow-1\" });\n expect(request.query).toContain(\"mutation\");\n expect(request.query).toContain(\"deleteCmsEntryWorkflow(id: $id)\");\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n });\n\n it(\"returns a blocked delete envelope as it is\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/HasActiveReviews\",\n message: \"In use.\",\n data: { count: 2, reviews: [] }\n }\n };\n client.execute.mockResolvedValue({ cms: { deleteCmsEntryWorkflow: envelope } });\n\n expect(await gateway.deleteWorkflow(\"workflow-1\")).toEqual(envelope);\n });\n });\n});\n"],"names":["input","inspectParams","folderParams","describe","client","vi","gateway","beforeEach","container","Container","MainGraphQLClient","CmsWorkflowEditorGateway","GatewayAbstraction","it","expect","rows","createWorkflowModelRowDto","result","request","ERROR_FIELDS","query","error","failure","Error","envelope","createEditorWorkflowDto","EDITOR_WORKFLOW_FIELDS","EDITOR_SAVED_ON","createRoutingInspectionDto","EDITOR_ROUTING_INSPECTION_FIELDS"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const CmsWorkflowEditorFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { CmsWorkflowEditorGateway } from "./CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js";
3
+ const CmsWorkflowEditorFeature = createFeature({
4
+ name: "CmsWorkflows/WorkflowEditor",
5
+ register (container) {
6
+ container.register(CmsWorkflowEditorGateway).inSingletonScope();
7
+ }
8
+ });
9
+ export { CmsWorkflowEditorFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/feature.js","sources":["../../../src/features/editorGateway/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { CmsWorkflowEditorGateway } from \"./CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js\";\n\n/*\n * Registers the CMS editor gateway under the shared `WorkflowEditorAppGateway` token (R347, R354);\n * the routing gateway of app-workflows picks it for `app: \"cms\"`. Nothing to resolve.\n */\nexport const CmsWorkflowEditorFeature = createFeature({\n name: \"CmsWorkflows/WorkflowEditor\",\n register(container) {\n container.register(CmsWorkflowEditorGateway).inSingletonScope();\n }\n});\n"],"names":["CmsWorkflowEditorFeature","createFeature","container","CmsWorkflowEditorGateway"],"mappings":";;AAOO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,0BAA0B,gBAAgB;IACjE;AACJ"}
@@ -0,0 +1 @@
1
+ export {};