@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,272 @@
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 { GraphQLOperationError } from "@webiny/app/errors/index.js";
5
+ import { WorkflowEditorAppGateway } from "@webiny/app-workflows/editor/appGateway/abstractions.js";
6
+ import { WorkflowErrorCode } from "@webiny/app-workflows/editor/domain/WorkflowErrorCode.js";
7
+ import { WorkflowEditorRepositoryFeature } from "@webiny/app-workflows/editor/repository/feature.js";
8
+ import { ReviewRepositoryFeature } from "@webiny/app-workflows/review/repository/feature.js";
9
+ import { DeleteWorkflowUseCase } from "@webiny/app-workflows/editor/useCases/deleteWorkflow/abstractions.js";
10
+ import { DeleteWorkflowFeature } from "@webiny/app-workflows/editor/useCases/deleteWorkflow/feature.js";
11
+ import { FolderExistsUseCase } from "@webiny/app-workflows/editor/useCases/folderExists/abstractions.js";
12
+ import { FolderExistsFeature } from "@webiny/app-workflows/editor/useCases/folderExists/feature.js";
13
+ import { GetWorkflowUseCase } from "@webiny/app-workflows/editor/useCases/getWorkflow/abstractions.js";
14
+ import { GetWorkflowFeature } from "@webiny/app-workflows/editor/useCases/getWorkflow/feature.js";
15
+ import { InspectRoutingUseCase } from "@webiny/app-workflows/editor/useCases/inspectRouting/abstractions.js";
16
+ import { InspectRoutingFeature } from "@webiny/app-workflows/editor/useCases/inspectRouting/feature.js";
17
+ import { ListWorkflowModelsUseCase } from "@webiny/app-workflows/editor/useCases/listWorkflowModels/abstractions.js";
18
+ import { ListWorkflowModelsFeature } from "@webiny/app-workflows/editor/useCases/listWorkflowModels/feature.js";
19
+ import { StoreWorkflowUseCase } from "@webiny/app-workflows/editor/useCases/storeWorkflow/abstractions.js";
20
+ import { StoreWorkflowFeature } from "@webiny/app-workflows/editor/useCases/storeWorkflow/feature.js";
21
+ import { EDITOR_SAVED_ON, createEditorWorkflowDto, createRoutingInspectionDto, createWorkflowModelRowDto } from "@webiny/app-workflows/editor/testing/editorFixtures.js";
22
+ import { CmsWorkflowEditorFeature } from "./feature.js";
23
+ describe("CmsWorkflowEditorFeature", ()=>{
24
+ const client = {
25
+ execute: vi.fn()
26
+ };
27
+ let container;
28
+ beforeEach(()=>{
29
+ client.execute.mockReset();
30
+ container = new Container();
31
+ container.registerInstance(MainGraphQLClient, client);
32
+ CmsWorkflowEditorFeature.register(container);
33
+ });
34
+ it("registers only the CMS gateway under the shared app gateway token (R347, R362)", ()=>{
35
+ const gateways = container.resolveAll(WorkflowEditorAppGateway);
36
+ expect(gateways).toHaveLength(1);
37
+ expect(gateways[0].app).toBe("cms");
38
+ });
39
+ it("registers the gateway as a singleton", ()=>{
40
+ expect(container.resolve(WorkflowEditorAppGateway)).toBe(container.resolve(WorkflowEditorAppGateway));
41
+ });
42
+ describe("the shared editor use cases over the CMS gateway", ()=>{
43
+ beforeEach(()=>{
44
+ WorkflowEditorRepositoryFeature.register(container);
45
+ ReviewRepositoryFeature.register(container);
46
+ ListWorkflowModelsFeature.register(container);
47
+ GetWorkflowFeature.register(container);
48
+ StoreWorkflowFeature.register(container);
49
+ DeleteWorkflowFeature.register(container);
50
+ InspectRoutingFeature.register(container);
51
+ FolderExistsFeature.register(container);
52
+ });
53
+ it("runs the routing inspection with the bare model id", async ()=>{
54
+ client.execute.mockResolvedValue({
55
+ cms: {
56
+ inspectCmsEntryRouting: {
57
+ data: createRoutingInspectionDto({
58
+ ruleId: "rule-2",
59
+ narrowedTeamId: "team-2",
60
+ candidateIds: [
61
+ "user-3"
62
+ ],
63
+ candidateCount: 4
64
+ }),
65
+ error: null
66
+ }
67
+ }
68
+ });
69
+ const useCase = container.resolve(InspectRoutingUseCase);
70
+ const inspection = await useCase.execute({
71
+ app: "cms",
72
+ stepConfig: {
73
+ teams: [
74
+ "team-2"
75
+ ],
76
+ assignment: {
77
+ strategy: "none",
78
+ rules: []
79
+ }
80
+ },
81
+ requesterId: "user-1",
82
+ folderId: null,
83
+ modelId: "article"
84
+ });
85
+ expect(inspection.ruleId).toBe("rule-2");
86
+ expect(inspection.narrowedTeamId).toBe("team-2");
87
+ expect(inspection.candidateIds).toEqual([
88
+ "user-3"
89
+ ]);
90
+ expect(inspection.candidateCount).toBe(4);
91
+ expect(client.execute.mock.calls[0][0].variables.modelId).toBe("article");
92
+ expect(client.execute.mock.calls[0][0].variables.folderId).toBeNull();
93
+ });
94
+ it("answers false for a deleted folder, not an error", async ()=>{
95
+ client.execute.mockResolvedValue({
96
+ cms: {
97
+ cmsEntryFolderExists: {
98
+ data: false,
99
+ error: null
100
+ }
101
+ }
102
+ });
103
+ const useCase = container.resolve(FolderExistsUseCase);
104
+ const exists = await useCase.execute({
105
+ app: "cms",
106
+ id: "folder-1",
107
+ type: "cms:article"
108
+ });
109
+ expect(exists).toBe(false);
110
+ expect(client.execute.mock.calls[0][0].variables).toEqual({
111
+ id: "folder-1",
112
+ type: "cms:article"
113
+ });
114
+ });
115
+ it("turns a rule validation error of the inspector into a GraphQLOperationError that keeps the rule id", async ()=>{
116
+ const data = {
117
+ stepId: "step-1",
118
+ field: "config.assignment.rules.target",
119
+ ruleId: "rule-1",
120
+ workflowId: null
121
+ };
122
+ client.execute.mockResolvedValue({
123
+ cms: {
124
+ inspectCmsEntryRouting: {
125
+ data: null,
126
+ error: {
127
+ code: WorkflowErrorCode.Validation,
128
+ message: "The target team is not one of the step's reviewing teams.",
129
+ data
130
+ }
131
+ }
132
+ }
133
+ });
134
+ const useCase = container.resolve(InspectRoutingUseCase);
135
+ const promise = useCase.execute({
136
+ app: "cms",
137
+ stepConfig: {
138
+ teams: [
139
+ "team-1"
140
+ ],
141
+ assignment: {
142
+ rules: []
143
+ }
144
+ },
145
+ requesterId: "user-1",
146
+ folderId: null,
147
+ modelId: "article"
148
+ });
149
+ await expect(promise).rejects.toBeInstanceOf(GraphQLOperationError);
150
+ await expect(promise).rejects.toMatchObject({
151
+ code: WorkflowErrorCode.Validation,
152
+ data
153
+ });
154
+ });
155
+ it("lists the models with the page meta", async ()=>{
156
+ client.execute.mockResolvedValue({
157
+ cms: {
158
+ listCmsEntryWorkflowModels: {
159
+ data: [
160
+ createWorkflowModelRowDto()
161
+ ],
162
+ meta: {
163
+ cursor: "cursor-2",
164
+ hasMoreItems: true
165
+ },
166
+ error: null
167
+ }
168
+ }
169
+ });
170
+ const useCase = container.resolve(ListWorkflowModelsUseCase);
171
+ const page = await useCase.execute({
172
+ app: "cms",
173
+ search: "",
174
+ limit: 20,
175
+ after: null
176
+ });
177
+ expect(page.cursor).toBe("cursor-2");
178
+ expect(page.hasMoreItems).toBe(true);
179
+ expect(page.rows[0].model).toBe("cms.article");
180
+ });
181
+ it("keeps savedOn as the identical string from the read to the store (D131)", async ()=>{
182
+ client.execute.mockResolvedValueOnce({
183
+ cms: {
184
+ getCmsEntryWorkflow: {
185
+ data: createEditorWorkflowDto({
186
+ savedOn: "2026-10-18T09:15:30.123Z"
187
+ }),
188
+ error: null
189
+ }
190
+ }
191
+ });
192
+ client.execute.mockResolvedValueOnce({
193
+ cms: {
194
+ storeCmsEntryWorkflow: {
195
+ data: createEditorWorkflowDto({
196
+ savedOn: "2026-10-18T09:20:00.000Z"
197
+ }),
198
+ error: null
199
+ }
200
+ }
201
+ });
202
+ const getWorkflow = container.resolve(GetWorkflowUseCase);
203
+ const storeWorkflow = container.resolve(StoreWorkflowUseCase);
204
+ const loaded = await getWorkflow.execute({
205
+ app: "cms",
206
+ id: "workflow-1"
207
+ });
208
+ const stored = await storeWorkflow.execute({
209
+ app: "cms",
210
+ data: {
211
+ id: loaded.id,
212
+ name: loaded.name,
213
+ models: loaded.models,
214
+ steps: []
215
+ },
216
+ savedOn: loaded.savedOn
217
+ });
218
+ expect(loaded.savedOn).toBe(EDITOR_SAVED_ON);
219
+ expect(client.execute.mock.calls[1][0].variables.savedOn).toBe(EDITOR_SAVED_ON);
220
+ expect(stored.savedOn).toBe("2026-10-18T09:20:00.000Z");
221
+ });
222
+ it("turns an envelope error into a GraphQLOperationError that keeps code and data", async ()=>{
223
+ const data = {
224
+ savedOn: "2026-10-18T10:00:00.000Z",
225
+ savedBy: {
226
+ displayName: "Grace"
227
+ }
228
+ };
229
+ client.execute.mockResolvedValue({
230
+ cms: {
231
+ storeCmsEntryWorkflow: {
232
+ data: null,
233
+ error: {
234
+ code: WorkflowErrorCode.Conflict,
235
+ message: "The workflow was changed.",
236
+ data
237
+ }
238
+ }
239
+ }
240
+ });
241
+ const useCase = container.resolve(StoreWorkflowUseCase);
242
+ const promise = useCase.execute({
243
+ app: "cms",
244
+ data: {
245
+ id: "workflow-1",
246
+ name: "A",
247
+ models: [
248
+ "cms.article"
249
+ ],
250
+ steps: []
251
+ },
252
+ savedOn: EDITOR_SAVED_ON
253
+ });
254
+ await expect(promise).rejects.toBeInstanceOf(GraphQLOperationError);
255
+ await expect(promise).rejects.toMatchObject({
256
+ code: WorkflowErrorCode.Conflict,
257
+ data
258
+ });
259
+ });
260
+ it("lets a transport failure pass through the use cases as it is", async ()=>{
261
+ const failure = new Error("Network down.");
262
+ client.execute.mockRejectedValue(failure);
263
+ const useCase = container.resolve(DeleteWorkflowUseCase);
264
+ await expect(useCase.execute({
265
+ app: "cms",
266
+ id: "workflow-1"
267
+ })).rejects.toBe(failure);
268
+ });
269
+ });
270
+ });
271
+
272
+ //# sourceMappingURL=feature.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/feature.test.js","sources":["../../../src/features/editorGateway/feature.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 { GraphQLOperationError } from \"@webiny/app/errors/index.js\";\nimport { WorkflowEditorAppGateway } from \"@webiny/app-workflows/editor/appGateway/abstractions.js\";\nimport { WorkflowErrorCode } from \"@webiny/app-workflows/editor/domain/WorkflowErrorCode.js\";\nimport { WorkflowEditorRepositoryFeature } from \"@webiny/app-workflows/editor/repository/feature.js\";\nimport { ReviewRepositoryFeature } from \"@webiny/app-workflows/review/repository/feature.js\";\nimport { DeleteWorkflowUseCase } from \"@webiny/app-workflows/editor/useCases/deleteWorkflow/abstractions.js\";\nimport { DeleteWorkflowFeature } from \"@webiny/app-workflows/editor/useCases/deleteWorkflow/feature.js\";\nimport { FolderExistsUseCase } from \"@webiny/app-workflows/editor/useCases/folderExists/abstractions.js\";\nimport { FolderExistsFeature } from \"@webiny/app-workflows/editor/useCases/folderExists/feature.js\";\nimport { GetWorkflowUseCase } from \"@webiny/app-workflows/editor/useCases/getWorkflow/abstractions.js\";\nimport { GetWorkflowFeature } from \"@webiny/app-workflows/editor/useCases/getWorkflow/feature.js\";\nimport { InspectRoutingUseCase } from \"@webiny/app-workflows/editor/useCases/inspectRouting/abstractions.js\";\nimport { InspectRoutingFeature } from \"@webiny/app-workflows/editor/useCases/inspectRouting/feature.js\";\nimport { ListWorkflowModelsUseCase } from \"@webiny/app-workflows/editor/useCases/listWorkflowModels/abstractions.js\";\nimport { ListWorkflowModelsFeature } from \"@webiny/app-workflows/editor/useCases/listWorkflowModels/feature.js\";\nimport { StoreWorkflowUseCase } from \"@webiny/app-workflows/editor/useCases/storeWorkflow/abstractions.js\";\nimport { StoreWorkflowFeature } from \"@webiny/app-workflows/editor/useCases/storeWorkflow/feature.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 { CmsWorkflowEditorFeature } from \"./feature.js\";\n\ndescribe(\"CmsWorkflowEditorFeature\", () => {\n const client = { execute: vi.fn() };\n let container: Container;\n\n beforeEach(() => {\n client.execute.mockReset();\n\n container = new Container();\n container.registerInstance(MainGraphQLClient, client);\n CmsWorkflowEditorFeature.register(container);\n });\n\n it(\"registers only the CMS gateway under the shared app gateway token (R347, R362)\", () => {\n const gateways = container.resolveAll(WorkflowEditorAppGateway);\n\n expect(gateways).toHaveLength(1);\n expect(gateways[0].app).toBe(\"cms\");\n });\n\n it(\"registers the gateway as a singleton\", () => {\n expect(container.resolve(WorkflowEditorAppGateway)).toBe(\n container.resolve(WorkflowEditorAppGateway)\n );\n });\n\n describe(\"the shared editor use cases over the CMS gateway\", () => {\n beforeEach(() => {\n WorkflowEditorRepositoryFeature.register(container);\n // The store and delete use cases clear the review workflow cache (R350).\n ReviewRepositoryFeature.register(container);\n ListWorkflowModelsFeature.register(container);\n GetWorkflowFeature.register(container);\n StoreWorkflowFeature.register(container);\n DeleteWorkflowFeature.register(container);\n InspectRoutingFeature.register(container);\n FolderExistsFeature.register(container);\n });\n\n it(\"runs the routing inspection with the bare model id\", async () => {\n client.execute.mockResolvedValue({\n cms: {\n inspectCmsEntryRouting: {\n data: createRoutingInspectionDto({\n ruleId: \"rule-2\",\n narrowedTeamId: \"team-2\",\n candidateIds: [\"user-3\"],\n candidateCount: 4\n }),\n error: null\n }\n }\n });\n const useCase = container.resolve(InspectRoutingUseCase);\n\n const inspection = await useCase.execute({\n app: \"cms\",\n stepConfig: { teams: [\"team-2\"], assignment: { strategy: \"none\", rules: [] } },\n requesterId: \"user-1\",\n folderId: null,\n modelId: \"article\"\n });\n\n expect(inspection.ruleId).toBe(\"rule-2\");\n expect(inspection.narrowedTeamId).toBe(\"team-2\");\n expect(inspection.candidateIds).toEqual([\"user-3\"]);\n expect(inspection.candidateCount).toBe(4);\n expect(client.execute.mock.calls[0][0].variables.modelId).toBe(\"article\");\n expect(client.execute.mock.calls[0][0].variables.folderId).toBeNull();\n });\n\n it(\"answers false for a deleted folder, not an error\", async () => {\n client.execute.mockResolvedValue({\n cms: { cmsEntryFolderExists: { data: false, error: null } }\n });\n const useCase = container.resolve(FolderExistsUseCase);\n\n const exists = await useCase.execute({\n app: \"cms\",\n id: \"folder-1\",\n type: \"cms:article\"\n });\n\n expect(exists).toBe(false);\n expect(client.execute.mock.calls[0][0].variables).toEqual({\n id: \"folder-1\",\n type: \"cms:article\"\n });\n });\n\n it(\"turns a rule validation error of the inspector into a GraphQLOperationError that keeps the rule id\", async () => {\n const data = {\n stepId: \"step-1\",\n field: \"config.assignment.rules.target\",\n ruleId: \"rule-1\",\n workflowId: null\n };\n client.execute.mockResolvedValue({\n cms: {\n inspectCmsEntryRouting: {\n data: null,\n error: {\n code: WorkflowErrorCode.Validation,\n message: \"The target team is not one of the step's reviewing teams.\",\n data\n }\n }\n }\n });\n const useCase = container.resolve(InspectRoutingUseCase);\n\n const promise = useCase.execute({\n app: \"cms\",\n stepConfig: { teams: [\"team-1\"], assignment: { rules: [] } },\n requesterId: \"user-1\",\n folderId: null,\n modelId: \"article\"\n });\n\n await expect(promise).rejects.toBeInstanceOf(GraphQLOperationError);\n await expect(promise).rejects.toMatchObject({\n code: WorkflowErrorCode.Validation,\n data\n });\n });\n\n it(\"lists the models with the page meta\", async () => {\n client.execute.mockResolvedValue({\n cms: {\n listCmsEntryWorkflowModels: {\n data: [createWorkflowModelRowDto()],\n meta: { cursor: \"cursor-2\", hasMoreItems: true },\n error: null\n }\n }\n });\n const useCase = container.resolve(ListWorkflowModelsUseCase);\n\n const page = await useCase.execute({ app: \"cms\", search: \"\", limit: 20, after: null });\n\n expect(page.cursor).toBe(\"cursor-2\");\n expect(page.hasMoreItems).toBe(true);\n expect(page.rows[0].model).toBe(\"cms.article\");\n });\n\n it(\"keeps savedOn as the identical string from the read to the store (D131)\", async () => {\n client.execute.mockResolvedValueOnce({\n cms: {\n getCmsEntryWorkflow: {\n data: createEditorWorkflowDto({ savedOn: \"2026-10-18T09:15:30.123Z\" }),\n error: null\n }\n }\n });\n client.execute.mockResolvedValueOnce({\n cms: {\n storeCmsEntryWorkflow: {\n data: createEditorWorkflowDto({ savedOn: \"2026-10-18T09:20:00.000Z\" }),\n error: null\n }\n }\n });\n const getWorkflow = container.resolve(GetWorkflowUseCase);\n const storeWorkflow = container.resolve(StoreWorkflowUseCase);\n\n const loaded = await getWorkflow.execute({ app: \"cms\", id: \"workflow-1\" });\n const stored = await storeWorkflow.execute({\n app: \"cms\",\n data: { id: loaded.id, name: loaded.name, models: loaded.models, steps: [] },\n savedOn: loaded.savedOn\n });\n\n expect(loaded.savedOn).toBe(EDITOR_SAVED_ON);\n expect(client.execute.mock.calls[1][0].variables.savedOn).toBe(EDITOR_SAVED_ON);\n expect(stored.savedOn).toBe(\"2026-10-18T09:20:00.000Z\");\n });\n\n it(\"turns an envelope error into a GraphQLOperationError that keeps code and data\", async () => {\n const data = {\n savedOn: \"2026-10-18T10:00:00.000Z\",\n savedBy: { displayName: \"Grace\" }\n };\n client.execute.mockResolvedValue({\n cms: {\n storeCmsEntryWorkflow: {\n data: null,\n error: {\n code: WorkflowErrorCode.Conflict,\n message: \"The workflow was changed.\",\n data\n }\n }\n }\n });\n const useCase = container.resolve(StoreWorkflowUseCase);\n\n const promise = useCase.execute({\n app: \"cms\",\n data: { id: \"workflow-1\", name: \"A\", models: [\"cms.article\"], steps: [] },\n savedOn: EDITOR_SAVED_ON\n });\n\n await expect(promise).rejects.toBeInstanceOf(GraphQLOperationError);\n await expect(promise).rejects.toMatchObject({ code: WorkflowErrorCode.Conflict, data });\n });\n\n it(\"lets a transport failure pass through the use cases as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n const useCase = container.resolve(DeleteWorkflowUseCase);\n\n await expect(useCase.execute({ app: \"cms\", id: \"workflow-1\" })).rejects.toBe(failure);\n });\n });\n});\n"],"names":["describe","client","vi","container","beforeEach","Container","MainGraphQLClient","CmsWorkflowEditorFeature","it","gateways","WorkflowEditorAppGateway","expect","WorkflowEditorRepositoryFeature","ReviewRepositoryFeature","ListWorkflowModelsFeature","GetWorkflowFeature","StoreWorkflowFeature","DeleteWorkflowFeature","InspectRoutingFeature","FolderExistsFeature","createRoutingInspectionDto","useCase","InspectRoutingUseCase","inspection","FolderExistsUseCase","exists","data","WorkflowErrorCode","promise","GraphQLOperationError","createWorkflowModelRowDto","ListWorkflowModelsUseCase","page","createEditorWorkflowDto","getWorkflow","GetWorkflowUseCase","storeWorkflow","StoreWorkflowUseCase","loaded","stored","EDITOR_SAVED_ON","failure","Error","DeleteWorkflowUseCase"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const CMS_ENTRY_FOLDER_EXISTS = "\n query CmsEntryFolderExists($id: ID!, $type: String!) {\n cms {\n cmsEntryFolderExists(id: $id, type: $type) {\n data\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,16 @@
1
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
2
+ const CMS_ENTRY_FOLDER_EXISTS = `
3
+ query CmsEntryFolderExists($id: ID!, $type: String!) {
4
+ cms {
5
+ cmsEntryFolderExists(id: $id, type: $type) {
6
+ data
7
+ error {
8
+ ${ERROR_FIELDS}
9
+ }
10
+ }
11
+ }
12
+ }
13
+ `;
14
+ export { CMS_ENTRY_FOLDER_EXISTS };
15
+
16
+ //# sourceMappingURL=cmsEntryFolderExists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/cmsEntryFolderExists.js","sources":["../../../../src/features/editorGateway/graphql/cmsEntryFolderExists.ts"],"sourcesContent":["import { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const CMS_ENTRY_FOLDER_EXISTS = /* GraphQL */ `\n query CmsEntryFolderExists($id: ID!, $type: String!) {\n cms {\n cmsEntryFolderExists(id: $id, type: $type) {\n data\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["CMS_ENTRY_FOLDER_EXISTS","ERROR_FIELDS"],"mappings":";AAEO,MAAMA,0BAAwC,CAAC;;;;;;oBAMlC,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const DELETE_CMS_ENTRY_WORKFLOW = "\n mutation DeleteCmsEntryWorkflow($id: ID!) {\n cms {\n deleteCmsEntryWorkflow(id: $id) {\n data {\n \n id\n name\n models\n steps {\n id\n title\n color\n description\n type\n notifications {\n id\n }\n config\n }\n createdOn\n savedOn\n createdBy {\n id\n displayName\n }\n savedBy {\n id\n displayName\n }\n\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,19 @@
1
+ import { EDITOR_WORKFLOW_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
2
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
3
+ const DELETE_CMS_ENTRY_WORKFLOW = `
4
+ mutation DeleteCmsEntryWorkflow($id: ID!) {
5
+ cms {
6
+ deleteCmsEntryWorkflow(id: $id) {
7
+ data {
8
+ ${EDITOR_WORKFLOW_FIELDS}
9
+ }
10
+ error {
11
+ ${ERROR_FIELDS}
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ export { DELETE_CMS_ENTRY_WORKFLOW };
18
+
19
+ //# sourceMappingURL=deleteCmsEntryWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/deleteCmsEntryWorkflow.js","sources":["../../../../src/features/editorGateway/graphql/deleteCmsEntryWorkflow.ts"],"sourcesContent":["import { EDITOR_WORKFLOW_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const DELETE_CMS_ENTRY_WORKFLOW = /* GraphQL */ `\n mutation DeleteCmsEntryWorkflow($id: ID!) {\n cms {\n deleteCmsEntryWorkflow(id: $id) {\n data {\n ${EDITOR_WORKFLOW_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["DELETE_CMS_ENTRY_WORKFLOW","EDITOR_WORKFLOW_FIELDS","ERROR_FIELDS"],"mappings":";;AAGO,MAAMA,4BAA0C,CAAC;;;;;oBAKpC,EAAEC,uBAAuB;;;oBAGzB,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const GET_CMS_ENTRY_WORKFLOW = "\n query GetCmsEntryWorkflow($id: ID!) {\n cms {\n getCmsEntryWorkflow(id: $id) {\n data {\n \n id\n name\n models\n steps {\n id\n title\n color\n description\n type\n notifications {\n id\n }\n config\n }\n createdOn\n savedOn\n createdBy {\n id\n displayName\n }\n savedBy {\n id\n displayName\n }\n\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,19 @@
1
+ import { EDITOR_WORKFLOW_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
2
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
3
+ const GET_CMS_ENTRY_WORKFLOW = `
4
+ query GetCmsEntryWorkflow($id: ID!) {
5
+ cms {
6
+ getCmsEntryWorkflow(id: $id) {
7
+ data {
8
+ ${EDITOR_WORKFLOW_FIELDS}
9
+ }
10
+ error {
11
+ ${ERROR_FIELDS}
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ export { GET_CMS_ENTRY_WORKFLOW };
18
+
19
+ //# sourceMappingURL=getCmsEntryWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/getCmsEntryWorkflow.js","sources":["../../../../src/features/editorGateway/graphql/getCmsEntryWorkflow.ts"],"sourcesContent":["import { EDITOR_WORKFLOW_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const GET_CMS_ENTRY_WORKFLOW = /* GraphQL */ `\n query GetCmsEntryWorkflow($id: ID!) {\n cms {\n getCmsEntryWorkflow(id: $id) {\n data {\n ${EDITOR_WORKFLOW_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["GET_CMS_ENTRY_WORKFLOW","EDITOR_WORKFLOW_FIELDS","ERROR_FIELDS"],"mappings":";;AAGO,MAAMA,yBAAuC,CAAC;;;;;oBAKjC,EAAEC,uBAAuB;;;oBAGzB,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const INSPECT_CMS_ENTRY_ROUTING = "\n query InspectCmsEntryRouting($stepConfig: JSON!, $modelId: ID!, $requesterId: ID!, $folderId: ID) {\n cms {\n inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId) {\n data {\n \n owner {\n id\n displayName\n }\n source\n ruleId\n strategy\n narrowedTeamId\n candidateIds\n candidateCount\n trace {\n ruleId\n outcome\n reason\n failedConditions\n }\n skipped {\n userId\n displayName\n reason\n }\n\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,19 @@
1
+ import { EDITOR_ROUTING_INSPECTION_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
2
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
3
+ const INSPECT_CMS_ENTRY_ROUTING = `
4
+ query InspectCmsEntryRouting($stepConfig: JSON!, $modelId: ID!, $requesterId: ID!, $folderId: ID) {
5
+ cms {
6
+ inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId) {
7
+ data {
8
+ ${EDITOR_ROUTING_INSPECTION_FIELDS}
9
+ }
10
+ error {
11
+ ${ERROR_FIELDS}
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ export { INSPECT_CMS_ENTRY_ROUTING };
18
+
19
+ //# sourceMappingURL=inspectCmsEntryRouting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/inspectCmsEntryRouting.js","sources":["../../../../src/features/editorGateway/graphql/inspectCmsEntryRouting.ts"],"sourcesContent":["import { EDITOR_ROUTING_INSPECTION_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const INSPECT_CMS_ENTRY_ROUTING = /* GraphQL */ `\n query InspectCmsEntryRouting($stepConfig: JSON!, $modelId: ID!, $requesterId: ID!, $folderId: ID) {\n cms {\n inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId) {\n data {\n ${EDITOR_ROUTING_INSPECTION_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["INSPECT_CMS_ENTRY_ROUTING","EDITOR_ROUTING_INSPECTION_FIELDS","ERROR_FIELDS"],"mappings":";;AAGO,MAAMA,4BAA0C,CAAC;;;;;oBAKpC,EAAEC,iCAAiC;;;oBAGnC,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const LIST_CMS_ENTRY_WORKFLOW_MODELS = "\n query ListCmsEntryWorkflowModels($search: String, $limit: Int, $after: String) {\n cms {\n listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after) {\n data {\n model\n modelId\n name\n workflow {\n id\n name\n stepCount\n }\n }\n meta {\n cursor\n hasMoreItems\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,29 @@
1
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
2
+ const LIST_CMS_ENTRY_WORKFLOW_MODELS = `
3
+ query ListCmsEntryWorkflowModels($search: String, $limit: Int, $after: String) {
4
+ cms {
5
+ listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after) {
6
+ data {
7
+ model
8
+ modelId
9
+ name
10
+ workflow {
11
+ id
12
+ name
13
+ stepCount
14
+ }
15
+ }
16
+ meta {
17
+ cursor
18
+ hasMoreItems
19
+ }
20
+ error {
21
+ ${ERROR_FIELDS}
22
+ }
23
+ }
24
+ }
25
+ }
26
+ `;
27
+ export { LIST_CMS_ENTRY_WORKFLOW_MODELS };
28
+
29
+ //# sourceMappingURL=listCmsEntryWorkflowModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/listCmsEntryWorkflowModels.js","sources":["../../../../src/features/editorGateway/graphql/listCmsEntryWorkflowModels.ts"],"sourcesContent":["import { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const LIST_CMS_ENTRY_WORKFLOW_MODELS = /* GraphQL */ `\n query ListCmsEntryWorkflowModels($search: String, $limit: Int, $after: String) {\n cms {\n listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after) {\n data {\n model\n modelId\n name\n workflow {\n id\n name\n stepCount\n }\n }\n meta {\n cursor\n hasMoreItems\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["LIST_CMS_ENTRY_WORKFLOW_MODELS","ERROR_FIELDS"],"mappings":";AAEO,MAAMA,iCAA+C,CAAC;;;;;;;;;;;;;;;;;;;oBAmBzC,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const STORE_CMS_ENTRY_WORKFLOW = "\n mutation StoreCmsEntryWorkflow($data: WorkflowsWorkflowInput!, $savedOn: String) {\n cms {\n storeCmsEntryWorkflow(data: $data, savedOn: $savedOn) {\n data {\n \n id\n name\n models\n steps {\n id\n title\n color\n description\n type\n notifications {\n id\n }\n config\n }\n createdOn\n savedOn\n createdBy {\n id\n displayName\n }\n savedBy {\n id\n displayName\n }\n\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
@@ -0,0 +1,19 @@
1
+ import { EDITOR_WORKFLOW_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
2
+ import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
3
+ const STORE_CMS_ENTRY_WORKFLOW = `
4
+ mutation StoreCmsEntryWorkflow($data: WorkflowsWorkflowInput!, $savedOn: String) {
5
+ cms {
6
+ storeCmsEntryWorkflow(data: $data, savedOn: $savedOn) {
7
+ data {
8
+ ${EDITOR_WORKFLOW_FIELDS}
9
+ }
10
+ error {
11
+ ${ERROR_FIELDS}
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ export { STORE_CMS_ENTRY_WORKFLOW };
18
+
19
+ //# sourceMappingURL=storeCmsEntryWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorGateway/graphql/storeCmsEntryWorkflow.js","sources":["../../../../src/features/editorGateway/graphql/storeCmsEntryWorkflow.ts"],"sourcesContent":["import { EDITOR_WORKFLOW_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const STORE_CMS_ENTRY_WORKFLOW = /* GraphQL */ `\n mutation StoreCmsEntryWorkflow($data: WorkflowsWorkflowInput!, $savedOn: String) {\n cms {\n storeCmsEntryWorkflow(data: $data, savedOn: $savedOn) {\n data {\n ${EDITOR_WORKFLOW_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["STORE_CMS_ENTRY_WORKFLOW","EDITOR_WORKFLOW_FIELDS","ERROR_FIELDS"],"mappings":";;AAGO,MAAMA,2BAAyC,CAAC;;;;;oBAKnC,EAAEC,uBAAuB;;;oBAGzB,EAAEC,aAAa;;;;;AAKnC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import { ListFoldersGateway } from "@webiny/app-aco/features/folders/listFolders/abstractions.js";
3
+ import { ModelsCache } from "@webiny/app-headless-cms/features/model/abstractions.js";
4
+ import { ListModelsUseCase } from "@webiny/app-headless-cms/features/model/listModels/abstractions.js";
5
+ import type { AppFolder } from "@webiny/app-workflows/editor/WorkflowEditorAppAdapter.js";
6
+ import { CmsReviewContentAdapter } from "../../features/gateway/CmsReviewContentAdapter/abstractions.js";
7
+ import { CmsWorkflowEditorAppAdapter as AdapterAbstraction } from "./abstractions.js";
8
+ declare class CmsWorkflowEditorAppAdapterImpl implements AdapterAbstraction.Interface {
9
+ private listModels;
10
+ private modelsCache;
11
+ readonly contentAdapter: CmsReviewContentAdapter.Interface;
12
+ private listFoldersGateway;
13
+ readonly appKind = "cms";
14
+ readonly panelLabel = "Content models";
15
+ readonly appliesToLabel = "Headless CMS model";
16
+ constructor(listModels: ListModelsUseCase.Interface, modelsCache: ModelsCache.Interface, contentAdapter: CmsReviewContentAdapter.Interface, listFoldersGateway: ListFoldersGateway.Interface);
17
+ init(): Promise<void>;
18
+ renderModelIcon(modelId: string): React.ReactNode;
19
+ getFolderType(modelId: string | null): string;
20
+ listFolders(modelId: string | null): Promise<AppFolder[]>;
21
+ }
22
+ export declare const CmsWorkflowEditorAppAdapter: typeof CmsWorkflowEditorAppAdapterImpl & {
23
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-workflows/editor/WorkflowEditorAppAdapter.js").WorkflowEditorAppAdapter>;
24
+ };
25
+ export {};
@@ -0,0 +1,51 @@
1
+ import "react";
2
+ import { ROOT_FOLDER } from "@webiny/app-aco/constants.js";
3
+ import { ListFoldersGateway } from "@webiny/app-aco/features/folders/listFolders/abstractions.js";
4
+ import { ModelsCache } from "@webiny/app-headless-cms/features/model/abstractions.js";
5
+ import { ListModelsUseCase } from "@webiny/app-headless-cms/features/model/listModels/abstractions.js";
6
+ import { buildAppFolders } from "@webiny/app-workflows/editor/folders/buildAppFolders.js";
7
+ import { CmsReviewContentAdapter } from "../gateway/CmsReviewContentAdapter/abstractions.js";
8
+ import { renderModelIconOrFallback } from "../../utils/renderModelIconOrFallback.js";
9
+ import { CmsWorkflowEditorAppAdapter } from "./abstractions.js";
10
+ class CmsWorkflowEditorAppAdapterImpl {
11
+ constructor(listModels, modelsCache, contentAdapter, listFoldersGateway){
12
+ this.listModels = listModels;
13
+ this.modelsCache = modelsCache;
14
+ this.contentAdapter = contentAdapter;
15
+ this.listFoldersGateway = listFoldersGateway;
16
+ this.appKind = "cms";
17
+ this.panelLabel = "Content models";
18
+ this.appliesToLabel = "Headless CMS model";
19
+ }
20
+ async init() {
21
+ try {
22
+ await this.listModels.execute();
23
+ } catch {}
24
+ }
25
+ renderModelIcon(modelId) {
26
+ const model = this.modelsCache.getItem((item)=>item.modelId === modelId);
27
+ if (!model) return null;
28
+ return renderModelIconOrFallback(model, modelId);
29
+ }
30
+ getFolderType(modelId) {
31
+ return `cms:${modelId ?? ""}`;
32
+ }
33
+ async listFolders(modelId) {
34
+ if (null === modelId) return [];
35
+ const type = this.getFolderType(modelId);
36
+ const folders = await this.listFoldersGateway.execute(type);
37
+ return buildAppFolders(folders, ROOT_FOLDER);
38
+ }
39
+ }
40
+ const CmsWorkflowEditorAppAdapter_CmsWorkflowEditorAppAdapter = CmsWorkflowEditorAppAdapter.createImplementation({
41
+ implementation: CmsWorkflowEditorAppAdapterImpl,
42
+ dependencies: [
43
+ ListModelsUseCase,
44
+ ModelsCache,
45
+ CmsReviewContentAdapter,
46
+ ListFoldersGateway
47
+ ]
48
+ });
49
+ export { CmsWorkflowEditorAppAdapter_CmsWorkflowEditorAppAdapter as CmsWorkflowEditorAppAdapter };
50
+
51
+ //# sourceMappingURL=CmsWorkflowEditorAppAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/editorMounting/CmsWorkflowEditorAppAdapter.js","sources":["../../../src/features/editorMounting/CmsWorkflowEditorAppAdapter.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROOT_FOLDER } from \"@webiny/app-aco/constants.js\";\nimport { ListFoldersGateway } from \"@webiny/app-aco/features/folders/listFolders/abstractions.js\";\nimport { ModelsCache } from \"@webiny/app-headless-cms/features/model/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/app-headless-cms/features/model/listModels/abstractions.js\";\nimport type { AppFolder } from \"@webiny/app-workflows/editor/WorkflowEditorAppAdapter.js\";\nimport { buildAppFolders } from \"@webiny/app-workflows/editor/folders/buildAppFolders.js\";\nimport { CmsReviewContentAdapter } from \"~/features/gateway/CmsReviewContentAdapter/abstractions.js\";\nimport { renderModelIconOrFallback } from \"~/utils/renderModelIconOrFallback.js\";\nimport { CmsWorkflowEditorAppAdapter as AdapterAbstraction } from \"./abstractions.js\";\n\n/*\n * The CMS knowledge of the shared editor view (R280): the models list fills the admin\n * `ModelsCache` (the editor's own list carries no icons), the icon is drawn from `CmsModel.icon`.\n * `ListModelsUseCase` fills the cache once and serves it afterwards. The folders of a model are the\n * ACO folders of type `cms:<modelId>` the admin can see (R292).\n */\nclass CmsWorkflowEditorAppAdapterImpl implements AdapterAbstraction.Interface {\n public readonly appKind = \"cms\";\n public readonly panelLabel = \"Content models\";\n public readonly appliesToLabel = \"Headless CMS model\";\n\n constructor(\n private listModels: ListModelsUseCase.Interface,\n private modelsCache: ModelsCache.Interface,\n public readonly contentAdapter: CmsReviewContentAdapter.Interface,\n private listFoldersGateway: ListFoldersGateway.Interface\n ) {}\n\n async init(): Promise<void> {\n try {\n await this.listModels.execute();\n } catch {\n // The icons are cosmetic; an editor without CMS model permissions must still get the editor.\n }\n }\n\n renderModelIcon(modelId: string): React.ReactNode {\n const model = this.modelsCache.getItem(item => item.modelId === modelId);\n if (!model) {\n return null;\n }\n\n return renderModelIconOrFallback(model, modelId);\n }\n\n getFolderType(modelId: string | null): string {\n return `cms:${modelId ?? \"\"}`;\n }\n\n async listFolders(modelId: string | null): Promise<AppFolder[]> {\n // Without a model there is no folder type to ask for.\n if (modelId === null) {\n return [];\n }\n\n const type = this.getFolderType(modelId);\n const folders = await this.listFoldersGateway.execute(type);\n\n return buildAppFolders(folders, ROOT_FOLDER);\n }\n}\n\nexport const CmsWorkflowEditorAppAdapter = AdapterAbstraction.createImplementation({\n implementation: CmsWorkflowEditorAppAdapterImpl,\n dependencies: [ListModelsUseCase, ModelsCache, CmsReviewContentAdapter, ListFoldersGateway]\n});\n"],"names":["CmsWorkflowEditorAppAdapterImpl","listModels","modelsCache","contentAdapter","listFoldersGateway","modelId","model","item","renderModelIconOrFallback","type","folders","buildAppFolders","ROOT_FOLDER","CmsWorkflowEditorAppAdapter","AdapterAbstraction","ListModelsUseCase","ModelsCache","CmsReviewContentAdapter","ListFoldersGateway"],"mappings":";;;;;;;;;AAiBA,MAAMA;IAKF,YACYC,UAAuC,EACvCC,WAAkC,EAC1BC,cAAiD,EACzDC,kBAAgD,CAC1D;aAJUH,UAAU,GAAVA;aACAC,WAAW,GAAXA;aACQC,cAAc,GAAdA;aACRC,kBAAkB,GAAlBA;aARI,OAAO,GAAG;aACV,UAAU,GAAG;aACb,cAAc,GAAG;IAO9B;IAEH,MAAM,OAAsB;QACxB,IAAI;YACA,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO;QACjC,EAAE,OAAM,CAER;IACJ;IAEA,gBAAgBC,OAAe,EAAmB;QAC9C,MAAMC,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAACC,CAAAA,OAAQA,KAAK,OAAO,KAAKF;QAChE,IAAI,CAACC,OACD,OAAO;QAGX,OAAOE,0BAA0BF,OAAOD;IAC5C;IAEA,cAAcA,OAAsB,EAAU;QAC1C,OAAO,CAAC,IAAI,EAAEA,WAAW,IAAI;IACjC;IAEA,MAAM,YAAYA,OAAsB,EAAwB;QAE5D,IAAIA,AAAY,SAAZA,SACA,OAAO,EAAE;QAGb,MAAMI,OAAO,IAAI,CAAC,aAAa,CAACJ;QAChC,MAAMK,UAAU,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD;QAEtD,OAAOE,gBAAgBD,SAASE;IACpC;AACJ;AAEO,MAAMC,0DAA8BC,4BAAAA,oBAAuC,CAAC;IAC/E,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;QAAaC;QAAyBC;KAAmB;AAC/F"}