@webiny/api-headless-cms-workflows 0.0.0-unstable.7c2def32a7 → 0.0.0-unstable.9609e4e0c9

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 (507) hide show
  1. package/CmsWorkflowsFeature.js +8 -4
  2. package/CmsWorkflowsFeature.js.map +1 -1
  3. package/domain/errors.d.ts +27 -0
  4. package/domain/errors.js +14 -0
  5. package/domain/errors.js.map +1 -0
  6. package/features/Workflows/feature.js +2 -0
  7. package/features/Workflows/feature.js.map +1 -1
  8. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.d.ts +18 -6
  9. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.js +30 -13
  10. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.js.map +1 -1
  11. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.d.ts +23 -0
  12. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.js +44 -0
  13. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.js.map +1 -0
  14. package/features/hooks/BlockDeleteMultipleWhileInReview.d.ts +22 -0
  15. package/features/hooks/BlockDeleteMultipleWhileInReview.js +64 -0
  16. package/features/hooks/BlockDeleteMultipleWhileInReview.js.map +1 -0
  17. package/features/hooks/BlockDeleteWhileInReview.d.ts +18 -0
  18. package/features/hooks/BlockDeleteWhileInReview.js +45 -0
  19. package/features/hooks/BlockDeleteWhileInReview.js.map +1 -0
  20. package/features/hooks/BlockFolderChangeWhileInReview.d.ts +21 -0
  21. package/features/hooks/BlockFolderChangeWhileInReview.js +44 -0
  22. package/features/hooks/BlockFolderChangeWhileInReview.js.map +1 -0
  23. package/features/hooks/BlockMoveWhileInReview.d.ts +19 -0
  24. package/features/hooks/BlockMoveWhileInReview.js +46 -0
  25. package/features/hooks/BlockMoveWhileInReview.js.map +1 -0
  26. package/features/hooks/BlockRevisionDeleteWhileInReview.d.ts +17 -0
  27. package/features/hooks/BlockRevisionDeleteWhileInReview.js +46 -0
  28. package/features/hooks/BlockRevisionDeleteWhileInReview.js.map +1 -0
  29. package/features/hooks/BlockUpdateWhileInReview.d.ts +25 -0
  30. package/features/hooks/BlockUpdateWhileInReview.js +43 -0
  31. package/features/hooks/BlockUpdateWhileInReview.js.map +1 -0
  32. package/features/hooks/DeleteModelBoundToWorkflowDecorator.d.ts +22 -0
  33. package/features/hooks/DeleteModelBoundToWorkflowDecorator.js +52 -0
  34. package/features/hooks/DeleteModelBoundToWorkflowDecorator.js.map +1 -0
  35. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.d.ts +27 -0
  36. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.js +64 -0
  37. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.js.map +1 -0
  38. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.d.ts +19 -0
  39. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.js +47 -0
  40. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.js.map +1 -0
  41. package/features/hooks/DeleteReviewsOnEntryDelete.d.ts +19 -0
  42. package/features/hooks/DeleteReviewsOnEntryDelete.js +46 -0
  43. package/features/hooks/DeleteReviewsOnEntryDelete.js.map +1 -0
  44. package/features/hooks/DeleteReviewsOnRevisionDelete.d.ts +18 -0
  45. package/features/hooks/DeleteReviewsOnRevisionDelete.js +46 -0
  46. package/features/hooks/DeleteReviewsOnRevisionDelete.js.map +1 -0
  47. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.d.ts +28 -0
  48. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.js +63 -0
  49. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.js.map +1 -0
  50. package/features/hooks/NullReviewStateOnRevisionCreate.d.ts +15 -0
  51. package/features/hooks/NullReviewStateOnRevisionCreate.js +17 -0
  52. package/features/hooks/NullReviewStateOnRevisionCreate.js.map +1 -0
  53. package/features/hooks/RequireApprovedReviewOnPublish.d.ts +22 -0
  54. package/features/hooks/RequireApprovedReviewOnPublish.js +43 -0
  55. package/features/hooks/RequireApprovedReviewOnPublish.js.map +1 -0
  56. package/features/hooks/RequireApprovedReviewOnRepublish.d.ts +23 -0
  57. package/features/hooks/RequireApprovedReviewOnRepublish.js +49 -0
  58. package/features/hooks/RequireApprovedReviewOnRepublish.js.map +1 -0
  59. package/features/hooks/feature.d.ts +8 -0
  60. package/features/hooks/feature.js +39 -0
  61. package/features/hooks/feature.js.map +1 -0
  62. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.d.ts +18 -0
  63. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.js +97 -0
  64. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.js.map +1 -0
  65. package/features/target/CandidateFolderReadRules/abstractions.d.ts +35 -0
  66. package/features/target/CandidateFolderReadRules/abstractions.js +5 -0
  67. package/features/target/CandidateFolderReadRules/abstractions.js.map +1 -0
  68. package/features/target/CandidateFolderReadRules/index.d.ts +1 -0
  69. package/features/target/CandidateFolderReadRules/index.js +1 -0
  70. package/features/target/CmsEntryAccess/CmsEntryAccess.d.ts +32 -0
  71. package/features/target/CmsEntryAccess/CmsEntryAccess.js +141 -0
  72. package/features/target/CmsEntryAccess/CmsEntryAccess.js.map +1 -0
  73. package/features/target/CmsEntryAccess/abstractions.d.ts +48 -0
  74. package/features/target/CmsEntryAccess/abstractions.js +5 -0
  75. package/features/target/CmsEntryAccess/abstractions.js.map +1 -0
  76. package/features/target/CmsEntryAccess/index.d.ts +2 -0
  77. package/features/target/CmsEntryAccess/index.js +2 -0
  78. package/features/target/CmsEntryAccess/unreadableCodes.d.ts +1 -0
  79. package/features/target/CmsEntryAccess/unreadableCodes.js +9 -0
  80. package/features/target/CmsEntryAccess/unreadableCodes.js.map +1 -0
  81. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.d.ts +21 -0
  82. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.js +66 -0
  83. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.js.map +1 -0
  84. package/features/target/CmsEntryDeniedFolders/abstractions.d.ts +23 -0
  85. package/features/target/CmsEntryDeniedFolders/abstractions.js +5 -0
  86. package/features/target/CmsEntryDeniedFolders/abstractions.js.map +1 -0
  87. package/features/target/CmsEntryDeniedFolders/index.d.ts +1 -0
  88. package/features/target/CmsEntryDeniedFolders/index.js +1 -0
  89. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.d.ts +18 -0
  90. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.js +43 -0
  91. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.js.map +1 -0
  92. package/features/target/CmsEntryFolderExistsService/abstractions.d.ts +23 -0
  93. package/features/target/CmsEntryFolderExistsService/abstractions.js +5 -0
  94. package/features/target/CmsEntryFolderExistsService/abstractions.js.map +1 -0
  95. package/features/target/CmsEntryFolderExistsService/index.d.ts +1 -0
  96. package/features/target/CmsEntryFolderExistsService/index.js +1 -0
  97. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.d.ts +10 -0
  98. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.js +14 -0
  99. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.js.map +1 -0
  100. package/features/target/CmsEntryReviewNamespace/abstractions.d.ts +17 -0
  101. package/features/target/CmsEntryReviewNamespace/abstractions.js +5 -0
  102. package/features/target/CmsEntryReviewNamespace/abstractions.js.map +1 -0
  103. package/features/target/CmsEntryReviewNamespace/index.d.ts +1 -0
  104. package/features/target/CmsEntryReviewNamespace/index.js +1 -0
  105. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.d.ts +20 -0
  106. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.js +80 -0
  107. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.js.map +1 -0
  108. package/features/target/CmsEntryReviewReadFilter/abstractions.d.ts +24 -0
  109. package/features/target/CmsEntryReviewReadFilter/abstractions.js +5 -0
  110. package/features/target/CmsEntryReviewReadFilter/abstractions.js.map +1 -0
  111. package/features/target/CmsEntryReviewReadFilter/index.d.ts +1 -0
  112. package/features/target/CmsEntryReviewReadFilter/index.js +1 -0
  113. package/features/target/CmsEntryReviewTargetEditor.d.ts +28 -0
  114. package/features/target/CmsEntryReviewTargetEditor.js +128 -0
  115. package/features/target/CmsEntryReviewTargetEditor.js.map +1 -0
  116. package/features/target/CmsEntryReviewTargetFolderChain.d.ts +22 -0
  117. package/features/target/CmsEntryReviewTargetFolderChain.js +37 -0
  118. package/features/target/CmsEntryReviewTargetFolderChain.js.map +1 -0
  119. package/features/target/CmsEntryReviewTargetLink.d.ts +17 -0
  120. package/features/target/CmsEntryReviewTargetLink.js +18 -0
  121. package/features/target/CmsEntryReviewTargetLink.js.map +1 -0
  122. package/features/target/CmsEntryReviewTargetLoader.d.ts +16 -0
  123. package/features/target/CmsEntryReviewTargetLoader.js +29 -0
  124. package/features/target/CmsEntryReviewTargetLoader.js.map +1 -0
  125. package/features/target/CmsEntryReviewTargetReadAccess.d.ts +41 -0
  126. package/features/target/CmsEntryReviewTargetReadAccess.js +91 -0
  127. package/features/target/CmsEntryReviewTargetReadAccess.js.map +1 -0
  128. package/features/target/CmsEntryReviewTargetSync.d.ts +23 -0
  129. package/features/target/CmsEntryReviewTargetSync.js +42 -0
  130. package/features/target/CmsEntryReviewTargetSync.js.map +1 -0
  131. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.d.ts +27 -0
  132. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.js +81 -0
  133. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.js.map +1 -0
  134. package/features/target/CmsEntryTargetReader/abstractions.d.ts +40 -0
  135. package/features/target/CmsEntryTargetReader/abstractions.js +5 -0
  136. package/features/target/CmsEntryTargetReader/abstractions.js.map +1 -0
  137. package/features/target/CmsEntryTargetReader/index.d.ts +1 -0
  138. package/features/target/CmsEntryTargetReader/index.js +1 -0
  139. package/features/target/CmsModelGroupService/CmsModelGroupService.d.ts +12 -0
  140. package/features/target/CmsModelGroupService/CmsModelGroupService.js +25 -0
  141. package/features/target/CmsModelGroupService/CmsModelGroupService.js.map +1 -0
  142. package/features/target/CmsModelGroupService/abstractions.d.ts +24 -0
  143. package/features/target/CmsModelGroupService/abstractions.js +5 -0
  144. package/features/target/CmsModelGroupService/abstractions.js.map +1 -0
  145. package/features/target/CmsModelGroupService/index.d.ts +1 -0
  146. package/features/target/CmsModelGroupService/index.js +1 -0
  147. package/features/target/CmsWorkflowModelParser.d.ts +9 -0
  148. package/features/target/CmsWorkflowModelParser.js +18 -0
  149. package/features/target/CmsWorkflowModelParser.js.map +1 -0
  150. package/features/target/FolderReadRule.d.ts +9 -0
  151. package/features/target/FolderReadRule.js +0 -0
  152. package/features/target/WorkflowEntrySystemField.d.ts +13 -0
  153. package/features/target/WorkflowEntrySystemField.js +35 -0
  154. package/features/target/WorkflowEntrySystemField.js.map +1 -0
  155. package/features/target/feature.d.ts +5 -0
  156. package/features/target/feature.js +41 -0
  157. package/features/target/feature.js.map +1 -0
  158. package/features/target/getModelSafeValidationMessage.d.ts +11 -0
  159. package/features/target/getModelSafeValidationMessage.js +28 -0
  160. package/features/target/getModelSafeValidationMessage.js.map +1 -0
  161. package/features/target/isEditorFieldValue.d.ts +9 -0
  162. package/features/target/isEditorFieldValue.js +30 -0
  163. package/features/target/isEditorFieldValue.js.map +1 -0
  164. package/features/target/toCmsReviewTarget.d.ts +4 -0
  165. package/features/target/toCmsReviewTarget.js +26 -0
  166. package/features/target/toCmsReviewTarget.js.map +1 -0
  167. package/features/target/toEditorFields.d.ts +9 -0
  168. package/features/target/toEditorFields.js +48 -0
  169. package/features/target/toEditorFields.js.map +1 -0
  170. package/features/target/toEntryValuesPatch.d.ts +9 -0
  171. package/features/target/toEntryValuesPatch.js +31 -0
  172. package/features/target/toEntryValuesPatch.js.map +1 -0
  173. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.d.ts +13 -0
  174. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.js +35 -0
  175. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.js.map +1 -0
  176. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.d.ts +26 -0
  177. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.js +5 -0
  178. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.js.map +1 -0
  179. package/features/wrappers/ApproveCmsEntryReviewStep/feature.d.ts +4 -0
  180. package/features/wrappers/ApproveCmsEntryReviewStep/feature.js +11 -0
  181. package/features/wrappers/ApproveCmsEntryReviewStep/feature.js.map +1 -0
  182. package/features/wrappers/ApproveCmsEntryReviewStep/index.d.ts +1 -0
  183. package/features/wrappers/ApproveCmsEntryReviewStep/index.js +1 -0
  184. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.d.ts +13 -0
  185. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.js +37 -0
  186. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.js.map +1 -0
  187. package/features/wrappers/CancelCmsEntryReview/abstractions.d.ts +30 -0
  188. package/features/wrappers/CancelCmsEntryReview/abstractions.js +5 -0
  189. package/features/wrappers/CancelCmsEntryReview/abstractions.js.map +1 -0
  190. package/features/wrappers/CancelCmsEntryReview/feature.d.ts +4 -0
  191. package/features/wrappers/CancelCmsEntryReview/feature.js +11 -0
  192. package/features/wrappers/CancelCmsEntryReview/feature.js.map +1 -0
  193. package/features/wrappers/CancelCmsEntryReview/index.d.ts +1 -0
  194. package/features/wrappers/CancelCmsEntryReview/index.js +1 -0
  195. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.d.ts +19 -0
  196. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.js +85 -0
  197. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.js.map +1 -0
  198. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.d.ts +41 -0
  199. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.js +5 -0
  200. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.js.map +1 -0
  201. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.d.ts +4 -0
  202. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.js +11 -0
  203. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.js.map +1 -0
  204. package/features/wrappers/CancelCmsEntryReviewsForDelete/index.d.ts +1 -0
  205. package/features/wrappers/CancelCmsEntryReviewsForDelete/index.js +1 -0
  206. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.d.ts +15 -0
  207. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.js +46 -0
  208. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.js.map +1 -0
  209. package/features/wrappers/CmsEntryFolderExists/abstractions.d.ts +29 -0
  210. package/features/wrappers/CmsEntryFolderExists/abstractions.js +5 -0
  211. package/features/wrappers/CmsEntryFolderExists/abstractions.js.map +1 -0
  212. package/features/wrappers/CmsEntryFolderExists/feature.d.ts +4 -0
  213. package/features/wrappers/CmsEntryFolderExists/feature.js +11 -0
  214. package/features/wrappers/CmsEntryFolderExists/feature.js.map +1 -0
  215. package/features/wrappers/CmsEntryFolderExists/index.d.ts +1 -0
  216. package/features/wrappers/CmsEntryFolderExists/index.js +1 -0
  217. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.d.ts +17 -0
  218. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.js +63 -0
  219. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.js.map +1 -0
  220. package/features/wrappers/CmsEntryReviewGuardService/abstractions.d.ts +37 -0
  221. package/features/wrappers/CmsEntryReviewGuardService/abstractions.js +5 -0
  222. package/features/wrappers/CmsEntryReviewGuardService/abstractions.js.map +1 -0
  223. package/features/wrappers/CmsEntryReviewGuardService/index.d.ts +1 -0
  224. package/features/wrappers/CmsEntryReviewGuardService/index.js +1 -0
  225. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.d.ts +25 -0
  226. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.js +98 -0
  227. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.js.map +1 -0
  228. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.d.ts +32 -0
  229. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.js +5 -0
  230. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.js.map +1 -0
  231. package/features/wrappers/DeleteCmsEntryWorkflow/feature.d.ts +4 -0
  232. package/features/wrappers/DeleteCmsEntryWorkflow/feature.js +11 -0
  233. package/features/wrappers/DeleteCmsEntryWorkflow/feature.js.map +1 -0
  234. package/features/wrappers/DeleteCmsEntryWorkflow/index.d.ts +1 -0
  235. package/features/wrappers/DeleteCmsEntryWorkflow/index.js +1 -0
  236. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.d.ts +13 -0
  237. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.js +40 -0
  238. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.js.map +1 -0
  239. package/features/wrappers/GetCmsEntryReview/abstractions.d.ts +28 -0
  240. package/features/wrappers/GetCmsEntryReview/abstractions.js +5 -0
  241. package/features/wrappers/GetCmsEntryReview/abstractions.js.map +1 -0
  242. package/features/{EntryWorkflows → wrappers/GetCmsEntryReview}/feature.d.ts +1 -1
  243. package/features/wrappers/GetCmsEntryReview/feature.js +11 -0
  244. package/features/wrappers/GetCmsEntryReview/feature.js.map +1 -0
  245. package/features/wrappers/GetCmsEntryReview/index.d.ts +1 -0
  246. package/features/wrappers/GetCmsEntryReview/index.js +1 -0
  247. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.d.ts +13 -0
  248. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.js +39 -0
  249. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.js.map +1 -0
  250. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.d.ts +33 -0
  251. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.js +5 -0
  252. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.js.map +1 -0
  253. package/features/wrappers/GetCmsEntryReviewStepRun/feature.d.ts +4 -0
  254. package/features/wrappers/GetCmsEntryReviewStepRun/feature.js +11 -0
  255. package/features/wrappers/GetCmsEntryReviewStepRun/feature.js.map +1 -0
  256. package/features/wrappers/GetCmsEntryReviewStepRun/index.d.ts +1 -0
  257. package/features/wrappers/GetCmsEntryReviewStepRun/index.js +1 -0
  258. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.d.ts +19 -0
  259. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.js +76 -0
  260. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.js.map +1 -0
  261. package/features/wrappers/GetCmsEntryTargetReview/abstractions.d.ts +36 -0
  262. package/features/wrappers/GetCmsEntryTargetReview/abstractions.js +5 -0
  263. package/features/wrappers/GetCmsEntryTargetReview/abstractions.js.map +1 -0
  264. package/features/wrappers/GetCmsEntryTargetReview/feature.d.ts +4 -0
  265. package/features/wrappers/GetCmsEntryTargetReview/feature.js +11 -0
  266. package/features/wrappers/GetCmsEntryTargetReview/feature.js.map +1 -0
  267. package/features/wrappers/GetCmsEntryTargetReview/index.d.ts +1 -0
  268. package/features/wrappers/GetCmsEntryTargetReview/index.js +1 -0
  269. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.d.ts +13 -0
  270. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.js +34 -0
  271. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.js.map +1 -0
  272. package/features/wrappers/GetCmsEntryWorkflow/abstractions.d.ts +24 -0
  273. package/features/wrappers/GetCmsEntryWorkflow/abstractions.js +5 -0
  274. package/features/wrappers/GetCmsEntryWorkflow/abstractions.js.map +1 -0
  275. package/features/wrappers/GetCmsEntryWorkflow/feature.d.ts +4 -0
  276. package/features/wrappers/GetCmsEntryWorkflow/feature.js +11 -0
  277. package/features/wrappers/GetCmsEntryWorkflow/feature.js.map +1 -0
  278. package/features/wrappers/GetCmsEntryWorkflow/index.d.ts +1 -0
  279. package/features/wrappers/GetCmsEntryWorkflow/index.js +1 -0
  280. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.d.ts +19 -0
  281. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.js +54 -0
  282. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.js.map +1 -0
  283. package/features/wrappers/InspectCmsEntryRouting/abstractions.d.ts +37 -0
  284. package/features/wrappers/InspectCmsEntryRouting/abstractions.js +5 -0
  285. package/features/wrappers/InspectCmsEntryRouting/abstractions.js.map +1 -0
  286. package/features/wrappers/InspectCmsEntryRouting/feature.d.ts +4 -0
  287. package/features/wrappers/InspectCmsEntryRouting/feature.js +11 -0
  288. package/features/wrappers/InspectCmsEntryRouting/feature.js.map +1 -0
  289. package/features/wrappers/InspectCmsEntryRouting/index.d.ts +1 -0
  290. package/features/wrappers/InspectCmsEntryRouting/index.js +1 -0
  291. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.d.ts +25 -0
  292. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.js +109 -0
  293. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.js.map +1 -0
  294. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.d.ts +36 -0
  295. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.js +6 -0
  296. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.js.map +1 -0
  297. package/features/wrappers/ListCmsEntryBlockingReviews/feature.d.ts +4 -0
  298. package/features/wrappers/ListCmsEntryBlockingReviews/feature.js +11 -0
  299. package/features/wrappers/ListCmsEntryBlockingReviews/feature.js.map +1 -0
  300. package/features/wrappers/ListCmsEntryBlockingReviews/index.d.ts +1 -0
  301. package/features/wrappers/ListCmsEntryBlockingReviews/index.js +1 -0
  302. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.d.ts +13 -0
  303. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.js +41 -0
  304. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.js.map +1 -0
  305. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.d.ts +30 -0
  306. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.js +5 -0
  307. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.js.map +1 -0
  308. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.d.ts +4 -0
  309. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.js +11 -0
  310. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.js.map +1 -0
  311. package/features/wrappers/ListCmsEntryReviewStepCandidates/index.d.ts +1 -0
  312. package/features/wrappers/ListCmsEntryReviewStepCandidates/index.js +1 -0
  313. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.d.ts +17 -0
  314. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.js +85 -0
  315. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.js.map +1 -0
  316. package/features/wrappers/ListCmsEntryReviews/abstractions.d.ts +50 -0
  317. package/features/wrappers/ListCmsEntryReviews/abstractions.js +5 -0
  318. package/features/wrappers/ListCmsEntryReviews/abstractions.js.map +1 -0
  319. package/features/wrappers/ListCmsEntryReviews/feature.d.ts +4 -0
  320. package/features/wrappers/ListCmsEntryReviews/feature.js +11 -0
  321. package/features/wrappers/ListCmsEntryReviews/feature.js.map +1 -0
  322. package/features/wrappers/ListCmsEntryReviews/index.d.ts +1 -0
  323. package/features/wrappers/ListCmsEntryReviews/index.js +1 -0
  324. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.d.ts +25 -0
  325. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.js +83 -0
  326. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.js.map +1 -0
  327. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.d.ts +41 -0
  328. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.js +5 -0
  329. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.js.map +1 -0
  330. package/features/wrappers/ListCmsEntryStepCandidates/feature.d.ts +4 -0
  331. package/features/wrappers/ListCmsEntryStepCandidates/feature.js +11 -0
  332. package/features/wrappers/ListCmsEntryStepCandidates/feature.js.map +1 -0
  333. package/features/wrappers/ListCmsEntryStepCandidates/index.d.ts +1 -0
  334. package/features/wrappers/ListCmsEntryStepCandidates/index.js +1 -0
  335. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.d.ts +17 -0
  336. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.js +106 -0
  337. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.js.map +1 -0
  338. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.d.ts +58 -0
  339. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.js +5 -0
  340. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.js.map +1 -0
  341. package/features/wrappers/ListCmsEntryWorkflowModels/feature.d.ts +4 -0
  342. package/features/wrappers/ListCmsEntryWorkflowModels/feature.js +11 -0
  343. package/features/wrappers/ListCmsEntryWorkflowModels/feature.js.map +1 -0
  344. package/features/wrappers/ListCmsEntryWorkflowModels/index.d.ts +2 -0
  345. package/features/wrappers/ListCmsEntryWorkflowModels/index.js +1 -0
  346. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.d.ts +8 -0
  347. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.js +20 -0
  348. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.js.map +1 -0
  349. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.d.ts +17 -0
  350. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.js +43 -0
  351. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.js.map +1 -0
  352. package/features/wrappers/ListCmsEntryWorkflows/abstractions.d.ts +24 -0
  353. package/features/wrappers/ListCmsEntryWorkflows/abstractions.js +5 -0
  354. package/features/wrappers/ListCmsEntryWorkflows/abstractions.js.map +1 -0
  355. package/features/wrappers/ListCmsEntryWorkflows/feature.d.ts +4 -0
  356. package/features/wrappers/ListCmsEntryWorkflows/feature.js +11 -0
  357. package/features/wrappers/ListCmsEntryWorkflows/feature.js.map +1 -0
  358. package/features/wrappers/ListCmsEntryWorkflows/index.d.ts +1 -0
  359. package/features/wrappers/ListCmsEntryWorkflows/index.js +1 -0
  360. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.d.ts +13 -0
  361. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.js +40 -0
  362. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.js.map +1 -0
  363. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.d.ts +32 -0
  364. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.js +5 -0
  365. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.js.map +1 -0
  366. package/features/wrappers/ReassignCmsEntryReviewStep/feature.d.ts +4 -0
  367. package/features/wrappers/ReassignCmsEntryReviewStep/feature.js +11 -0
  368. package/features/wrappers/ReassignCmsEntryReviewStep/feature.js.map +1 -0
  369. package/features/wrappers/ReassignCmsEntryReviewStep/index.d.ts +1 -0
  370. package/features/wrappers/ReassignCmsEntryReviewStep/index.js +1 -0
  371. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.d.ts +13 -0
  372. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.js +35 -0
  373. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.js.map +1 -0
  374. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.d.ts +26 -0
  375. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.js +5 -0
  376. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.js.map +1 -0
  377. package/features/wrappers/RejectCmsEntryReviewStep/feature.d.ts +4 -0
  378. package/features/wrappers/RejectCmsEntryReviewStep/feature.js +11 -0
  379. package/features/wrappers/RejectCmsEntryReviewStep/feature.js.map +1 -0
  380. package/features/wrappers/RejectCmsEntryReviewStep/index.d.ts +1 -0
  381. package/features/wrappers/RejectCmsEntryReviewStep/index.js +1 -0
  382. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.d.ts +21 -0
  383. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.js +63 -0
  384. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.js.map +1 -0
  385. package/features/wrappers/RequestCmsEntryReview/abstractions.d.ts +38 -0
  386. package/features/wrappers/RequestCmsEntryReview/abstractions.js +5 -0
  387. package/features/wrappers/RequestCmsEntryReview/abstractions.js.map +1 -0
  388. package/features/wrappers/RequestCmsEntryReview/feature.d.ts +4 -0
  389. package/features/wrappers/RequestCmsEntryReview/feature.js +11 -0
  390. package/features/wrappers/RequestCmsEntryReview/feature.js.map +1 -0
  391. package/features/wrappers/RequestCmsEntryReview/index.d.ts +1 -0
  392. package/features/wrappers/RequestCmsEntryReview/index.js +1 -0
  393. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.d.ts +13 -0
  394. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.js +39 -0
  395. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.js.map +1 -0
  396. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.d.ts +30 -0
  397. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.js +5 -0
  398. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.js.map +1 -0
  399. package/features/wrappers/RestartCmsEntryReviewStep/feature.d.ts +4 -0
  400. package/features/wrappers/RestartCmsEntryReviewStep/feature.js +11 -0
  401. package/features/wrappers/RestartCmsEntryReviewStep/feature.js.map +1 -0
  402. package/features/wrappers/RestartCmsEntryReviewStep/index.d.ts +1 -0
  403. package/features/wrappers/RestartCmsEntryReviewStep/index.js +1 -0
  404. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.d.ts +13 -0
  405. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.js +34 -0
  406. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.js.map +1 -0
  407. package/features/wrappers/StartCmsEntryReviewStep/abstractions.d.ts +25 -0
  408. package/features/wrappers/StartCmsEntryReviewStep/abstractions.js +5 -0
  409. package/features/wrappers/StartCmsEntryReviewStep/abstractions.js.map +1 -0
  410. package/features/wrappers/StartCmsEntryReviewStep/feature.d.ts +4 -0
  411. package/features/wrappers/StartCmsEntryReviewStep/feature.js +11 -0
  412. package/features/wrappers/StartCmsEntryReviewStep/feature.js.map +1 -0
  413. package/features/wrappers/StartCmsEntryReviewStep/index.d.ts +1 -0
  414. package/features/wrappers/StartCmsEntryReviewStep/index.js +1 -0
  415. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.d.ts +17 -0
  416. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.js +57 -0
  417. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.js.map +1 -0
  418. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.d.ts +32 -0
  419. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.js +5 -0
  420. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.js.map +1 -0
  421. package/features/wrappers/StoreCmsEntryWorkflow/feature.d.ts +4 -0
  422. package/features/wrappers/StoreCmsEntryWorkflow/feature.js +11 -0
  423. package/features/wrappers/StoreCmsEntryWorkflow/feature.js.map +1 -0
  424. package/features/wrappers/StoreCmsEntryWorkflow/index.d.ts +1 -0
  425. package/features/wrappers/StoreCmsEntryWorkflow/index.js +1 -0
  426. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.d.ts +13 -0
  427. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.js +35 -0
  428. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.js.map +1 -0
  429. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.d.ts +27 -0
  430. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.js +5 -0
  431. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.js.map +1 -0
  432. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.d.ts +4 -0
  433. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.js +11 -0
  434. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.js.map +1 -0
  435. package/features/wrappers/TakeOverCmsEntryReviewStep/index.d.ts +1 -0
  436. package/features/wrappers/TakeOverCmsEntryReviewStep/index.js +1 -0
  437. package/features/wrappers/feature.d.ts +9 -0
  438. package/features/wrappers/feature.js +57 -0
  439. package/features/wrappers/feature.js.map +1 -0
  440. package/features/wrappers/shared/cmsWorkflows.d.ts +6 -0
  441. package/features/wrappers/shared/cmsWorkflows.js +8 -0
  442. package/features/wrappers/shared/cmsWorkflows.js.map +1 -0
  443. package/graphql/CmsWorkflowsSchemaFactory.d.ts +14 -0
  444. package/graphql/CmsWorkflowsSchemaFactory.js +695 -0
  445. package/graphql/CmsWorkflowsSchemaFactory.js.map +1 -0
  446. package/graphql/entrySystemSchema.d.ts +4 -0
  447. package/graphql/entrySystemSchema.js +3 -2
  448. package/graphql/entrySystemSchema.js.map +1 -1
  449. package/graphql/isValidRevisionId.d.ts +6 -0
  450. package/graphql/isValidRevisionId.js +9 -0
  451. package/graphql/isValidRevisionId.js.map +1 -0
  452. package/index.d.ts +1 -0
  453. package/package.json +22 -17
  454. package/types.d.ts +24 -0
  455. package/types.js +0 -0
  456. package/utils/appName.d.ts +9 -5
  457. package/utils/appName.js +6 -4
  458. package/utils/appName.js.map +1 -1
  459. package/utils/folderType.d.ts +4 -0
  460. package/utils/folderType.js +9 -0
  461. package/utils/folderType.js.map +1 -0
  462. package/utils/isBindableModel.d.ts +9 -0
  463. package/utils/isBindableModel.js +8 -0
  464. package/utils/isBindableModel.js.map +1 -0
  465. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.d.ts +0 -15
  466. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.js +0 -35
  467. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.js.map +0 -1
  468. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.d.ts +0 -13
  469. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.js +0 -45
  470. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.js.map +0 -1
  471. package/features/EntryWorkflows/errors.d.ts +0 -11
  472. package/features/EntryWorkflows/errors.js +0 -12
  473. package/features/EntryWorkflows/errors.js.map +0 -1
  474. package/features/EntryWorkflows/feature.js +0 -29
  475. package/features/EntryWorkflows/feature.js.map +0 -1
  476. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.d.ts +0 -11
  477. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.js +0 -37
  478. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.js.map +0 -1
  479. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.d.ts +0 -13
  480. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.js +0 -35
  481. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.js.map +0 -1
  482. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.d.ts +0 -13
  483. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.js +0 -35
  484. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.js.map +0 -1
  485. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.d.ts +0 -11
  486. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.js +0 -26
  487. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.js.map +0 -1
  488. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.d.ts +0 -13
  489. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.js +0 -42
  490. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.js.map +0 -1
  491. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.d.ts +0 -13
  492. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.js +0 -37
  493. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.js.map +0 -1
  494. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.d.ts +0 -13
  495. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.js +0 -36
  496. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.js.map +0 -1
  497. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.d.ts +0 -11
  498. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.js +0 -46
  499. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.js.map +0 -1
  500. package/features/EntryWorkflows/index.d.ts +0 -1
  501. package/features/EntryWorkflows/index.js +0 -1
  502. package/utils/modelAllowed.d.ts +0 -2
  503. package/utils/modelAllowed.js +0 -9
  504. package/utils/modelAllowed.js.map +0 -1
  505. package/utils/state.d.ts +0 -3
  506. package/utils/state.js +0 -12
  507. package/utils/state.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
2
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
3
+ import { WorkflowsPermissions } from "@webiny/api-workflows/features/permissions/WorkflowsPermissions/index.js";
4
+ import { ListCmsEntryWorkflowsUseCase } from "../ListCmsEntryWorkflows/index.js";
5
+ import { ListCmsEntryWorkflowModelsUseCase as UseCase } from "./abstractions.js";
6
+ declare class ListCmsEntryWorkflowModelsUseCaseImpl implements UseCase.Interface {
7
+ private viewer;
8
+ private permissions;
9
+ private listModels;
10
+ private listWorkflows;
11
+ constructor(viewer: CurrentReviewViewer.Interface, permissions: WorkflowsPermissions.Interface, listModels: ListModelsUseCase.Interface, listWorkflows: ListCmsEntryWorkflowsUseCase.Interface);
12
+ execute(input: UseCase.Input): UseCase.Return;
13
+ }
14
+ export declare const ListCmsEntryWorkflowModelsUseCase: typeof ListCmsEntryWorkflowModelsUseCaseImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListCmsEntryWorkflowModelsUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,106 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CMS_MODEL_SINGLETON_TAG } from "@webiny/api-headless-cms/constants.js";
3
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
4
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
5
+ import { WorkflowsPermissions } from "@webiny/api-workflows/features/permissions/WorkflowsPermissions/index.js";
6
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
7
+ import { WorkflowPersistenceError, WorkflowValidationError } from "@webiny/api-workflows/domain/workflow/errors.js";
8
+ import { toCmsNamespace } from "../../../utils/appName.js";
9
+ import { isBindableModel } from "../../../utils/isBindableModel.js";
10
+ import { ListCmsEntryWorkflowsUseCase } from "../ListCmsEntryWorkflows/index.js";
11
+ import { ListCmsEntryWorkflowModelsUseCase } from "./abstractions.js";
12
+ import { decodeModelListCursor, encodeModelListCursor } from "./modelListCursor.js";
13
+ const DEFAULT_LIMIT = 20;
14
+ const MAX_LIMIT = 100;
15
+ const MODEL_NOT_AUTHORIZED = "Cms/Model/NotAuthorized";
16
+ const isSingletonModel = (model)=>(model.tags ?? []).includes(CMS_MODEL_SINGLETON_TAG);
17
+ const compareModels = (a, b)=>a.name.localeCompare(b.name) || a.modelId.localeCompare(b.modelId);
18
+ class ListCmsEntryWorkflowModelsUseCaseImpl {
19
+ constructor(viewer, permissions, listModels, listWorkflows){
20
+ this.viewer = viewer;
21
+ this.permissions = permissions;
22
+ this.listModels = listModels;
23
+ this.listWorkflows = listWorkflows;
24
+ }
25
+ async execute(input) {
26
+ const actor = this.viewer.getActor();
27
+ if (actor.isFail()) return Result.fail(actor.error);
28
+ let canEdit;
29
+ try {
30
+ canEdit = await this.permissions.canEdit();
31
+ } catch (error) {
32
+ return Result.fail(new WorkflowPersistenceError(error instanceof Error ? error : new Error(String(error))));
33
+ }
34
+ if (!canEdit) return Result.fail(new WorkflowsNotAuthorizedError({
35
+ action: "manage workflows"
36
+ }));
37
+ const cursor = input.after ? decodeModelListCursor(input.after) : {
38
+ offset: 0
39
+ };
40
+ if (!cursor) return Result.fail(new WorkflowValidationError("The model list cursor is not valid."));
41
+ let models;
42
+ try {
43
+ models = await this.listModels.execute({
44
+ includePrivate: false,
45
+ includePlugins: true
46
+ });
47
+ } catch (error) {
48
+ return Result.fail(new WorkflowPersistenceError(error instanceof Error ? error : new Error(String(error))));
49
+ }
50
+ if (models.isFail() && models.error.code !== MODEL_NOT_AUTHORIZED) return Result.fail(new WorkflowPersistenceError(models.error));
51
+ const search = (input.search ?? "").trim().toLowerCase();
52
+ const matching = (models.isOk() ? models.value : []).filter((model)=>isBindableModel(model)).filter((model)=>!isSingletonModel(model)).filter((model)=>{
53
+ if (!search) return true;
54
+ return model.name.toLowerCase().includes(search) || model.modelId.toLowerCase().includes(search);
55
+ }).sort(compareModels);
56
+ const requested = "number" == typeof input.limit && Number.isFinite(input.limit) ? Math.floor(input.limit) : DEFAULT_LIMIT;
57
+ const limit = Math.min(Math.max(requested, 1), MAX_LIMIT);
58
+ const page = matching.slice(cursor.offset, cursor.offset + limit);
59
+ const nextOffset = cursor.offset + page.length;
60
+ const hasMoreItems = nextOffset < matching.length;
61
+ if (0 === page.length) return Result.ok({
62
+ items: [],
63
+ meta: {
64
+ cursor: null,
65
+ hasMoreItems: false
66
+ }
67
+ });
68
+ const workflows = await this.listWorkflows.execute();
69
+ if (workflows.isFail()) return Result.fail(workflows.error);
70
+ const bound = new Map();
71
+ for (const workflow of workflows.value)for (const namespace of workflow.models)bound.set(namespace, {
72
+ id: workflow.id,
73
+ name: workflow.name,
74
+ stepCount: workflow.steps.length
75
+ });
76
+ return Result.ok({
77
+ items: page.map((model)=>{
78
+ const namespace = toCmsNamespace(model.modelId);
79
+ return {
80
+ model: namespace,
81
+ modelId: model.modelId,
82
+ name: model.name,
83
+ workflow: bound.get(namespace) ?? null
84
+ };
85
+ }),
86
+ meta: {
87
+ cursor: hasMoreItems ? encodeModelListCursor({
88
+ offset: nextOffset
89
+ }) : null,
90
+ hasMoreItems
91
+ }
92
+ });
93
+ }
94
+ }
95
+ const ListCmsEntryWorkflowModelsUseCase_ListCmsEntryWorkflowModelsUseCase = ListCmsEntryWorkflowModelsUseCase.createImplementation({
96
+ implementation: ListCmsEntryWorkflowModelsUseCaseImpl,
97
+ dependencies: [
98
+ CurrentReviewViewer,
99
+ WorkflowsPermissions,
100
+ ListModelsUseCase,
101
+ ListCmsEntryWorkflowsUseCase
102
+ ]
103
+ });
104
+ export { ListCmsEntryWorkflowModelsUseCase_ListCmsEntryWorkflowModelsUseCase as ListCmsEntryWorkflowModelsUseCase };
105
+
106
+ //# sourceMappingURL=ListCmsEntryWorkflowModelsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/api-headless-cms/constants.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CurrentReviewViewer } from \"@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js\";\nimport { WorkflowsPermissions } from \"@webiny/api-workflows/features/permissions/WorkflowsPermissions/index.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport {\n WorkflowPersistenceError,\n WorkflowValidationError\n} from \"@webiny/api-workflows/domain/workflow/errors.js\";\nimport { toCmsNamespace } from \"~/utils/appName.js\";\nimport { isBindableModel } from \"~/utils/isBindableModel.js\";\nimport { ListCmsEntryWorkflowsUseCase } from \"../ListCmsEntryWorkflows/index.js\";\nimport type { CmsEntryWorkflowModelWorkflow } from \"./abstractions.js\";\nimport { ListCmsEntryWorkflowModelsUseCase as UseCase } from \"./abstractions.js\";\nimport { decodeModelListCursor, encodeModelListCursor } from \"./modelListCursor.js\";\n\nconst DEFAULT_LIMIT = 20;\nconst MAX_LIMIT = 100;\n\n/** `ListModelsUseCase` fails with this when the identity can read no model at all. */\nconst MODEL_NOT_AUTHORIZED = \"Cms/Model/NotAuthorized\";\n\n/** A singleton model holds one entry, so the editor does not offer it. Pure. */\nconst isSingletonModel = (model: CmsModel): boolean => {\n return (model.tags ?? []).includes(CMS_MODEL_SINGLETON_TAG);\n};\n\n/** By name, then by model id, so equal names keep a stable order. Pure. */\nconst compareModels = (a: CmsModel, b: CmsModel): number => {\n return a.name.localeCompare(b.name) || a.modelId.localeCompare(b.modelId);\n};\n\nclass ListCmsEntryWorkflowModelsUseCaseImpl implements UseCase.Interface {\n public constructor(\n private viewer: CurrentReviewViewer.Interface,\n private permissions: WorkflowsPermissions.Interface,\n private listModels: ListModelsUseCase.Interface,\n private listWorkflows: ListCmsEntryWorkflowsUseCase.Interface\n ) {}\n\n public async execute(input: UseCase.Input): UseCase.Return {\n const actor = this.viewer.getActor();\n if (actor.isFail()) {\n return Result.fail(actor.error);\n }\n let canEdit: boolean;\n try {\n canEdit = await this.permissions.canEdit();\n } catch (error) {\n return Result.fail(\n new WorkflowPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n if (!canEdit) {\n return Result.fail(new WorkflowsNotAuthorizedError({ action: \"manage workflows\" }));\n }\n\n const cursor = input.after ? decodeModelListCursor(input.after) : { offset: 0 };\n if (!cursor) {\n return Result.fail(new WorkflowValidationError(\"The model list cursor is not valid.\"));\n }\n\n let models: Awaited<ListModelsUseCase.Return>;\n try {\n models = await this.listModels.execute({ includePrivate: false, includePlugins: true });\n } catch (error) {\n return Result.fail(\n new WorkflowPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n if (models.isFail() && models.error.code !== MODEL_NOT_AUTHORIZED) {\n return Result.fail(new WorkflowPersistenceError(models.error));\n }\n\n const search = (input.search ?? \"\").trim().toLowerCase();\n const matching = (models.isOk() ? models.value : [])\n .filter(model => isBindableModel(model))\n .filter(model => !isSingletonModel(model))\n .filter(model => {\n if (!search) {\n return true;\n }\n return (\n model.name.toLowerCase().includes(search) ||\n model.modelId.toLowerCase().includes(search)\n );\n })\n .sort(compareModels);\n const requested =\n typeof input.limit === \"number\" && Number.isFinite(input.limit)\n ? Math.floor(input.limit)\n : DEFAULT_LIMIT;\n const limit = Math.min(Math.max(requested, 1), MAX_LIMIT);\n const page = matching.slice(cursor.offset, cursor.offset + limit);\n const nextOffset = cursor.offset + page.length;\n const hasMoreItems = nextOffset < matching.length;\n if (page.length === 0) {\n return Result.ok({ items: [], meta: { cursor: null, hasMoreItems: false } });\n }\n\n // One list for every row; v1 binds one model per workflow (D15).\n const workflows = await this.listWorkflows.execute();\n if (workflows.isFail()) {\n return Result.fail(workflows.error);\n }\n const bound = new Map<string, CmsEntryWorkflowModelWorkflow>();\n for (const workflow of workflows.value) {\n for (const namespace of workflow.models) {\n bound.set(namespace, {\n id: workflow.id,\n name: workflow.name,\n stepCount: workflow.steps.length\n });\n }\n }\n\n return Result.ok({\n items: page.map(model => {\n const namespace = toCmsNamespace(model.modelId);\n return {\n model: namespace,\n modelId: model.modelId,\n name: model.name,\n workflow: bound.get(namespace) ?? null\n };\n }),\n meta: {\n cursor: hasMoreItems ? encodeModelListCursor({ offset: nextOffset }) : null,\n hasMoreItems\n }\n });\n }\n}\n\nexport const ListCmsEntryWorkflowModelsUseCase = UseCase.createImplementation({\n implementation: ListCmsEntryWorkflowModelsUseCaseImpl,\n dependencies: [\n CurrentReviewViewer,\n WorkflowsPermissions,\n ListModelsUseCase,\n ListCmsEntryWorkflowsUseCase\n ]\n});\n"],"names":["DEFAULT_LIMIT","MAX_LIMIT","MODEL_NOT_AUTHORIZED","isSingletonModel","model","CMS_MODEL_SINGLETON_TAG","compareModels","a","b","ListCmsEntryWorkflowModelsUseCaseImpl","viewer","permissions","listModels","listWorkflows","input","actor","Result","canEdit","error","WorkflowPersistenceError","Error","String","WorkflowsNotAuthorizedError","cursor","decodeModelListCursor","WorkflowValidationError","models","search","matching","isBindableModel","requested","Number","Math","limit","page","nextOffset","hasMoreItems","workflows","bound","Map","workflow","namespace","toCmsNamespace","encodeModelListCursor","ListCmsEntryWorkflowModelsUseCase","UseCase","CurrentReviewViewer","WorkflowsPermissions","ListModelsUseCase","ListCmsEntryWorkflowsUseCase"],"mappings":";;;;;;;;;;;;AAkBA,MAAMA,gBAAgB;AACtB,MAAMC,YAAY;AAGlB,MAAMC,uBAAuB;AAG7B,MAAMC,mBAAmB,CAACC,QACdA,AAAAA,CAAAA,MAAM,IAAI,IAAI,EAAC,EAAG,QAAQ,CAACC;AAIvC,MAAMC,gBAAgB,CAACC,GAAaC,IACzBD,EAAE,IAAI,CAAC,aAAa,CAACC,EAAE,IAAI,KAAKD,EAAE,OAAO,CAAC,aAAa,CAACC,EAAE,OAAO;AAG5E,MAAMC;IACF,YACYC,MAAqC,EACrCC,WAA2C,EAC3CC,UAAuC,EACvCC,aAAqD,CAC/D;aAJUH,MAAM,GAANA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QACvD,MAAMC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;QAClC,IAAIA,MAAM,MAAM,IACZ,OAAOC,OAAO,IAAI,CAACD,MAAM,KAAK;QAElC,IAAIE;QACJ,IAAI;YACAA,UAAU,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;QAC5C,EAAE,OAAOC,OAAO;YACZ,OAAOF,OAAO,IAAI,CACd,IAAIG,yBACAD,iBAAiBE,QAAQF,QAAQ,IAAIE,MAAMC,OAAOH;QAG9D;QACA,IAAI,CAACD,SACD,OAAOD,OAAO,IAAI,CAAC,IAAIM,4BAA4B;YAAE,QAAQ;QAAmB;QAGpF,MAAMC,SAAST,MAAM,KAAK,GAAGU,sBAAsBV,MAAM,KAAK,IAAI;YAAE,QAAQ;QAAE;QAC9E,IAAI,CAACS,QACD,OAAOP,OAAO,IAAI,CAAC,IAAIS,wBAAwB;QAGnD,IAAIC;QACJ,IAAI;YACAA,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,gBAAgB;gBAAO,gBAAgB;YAAK;QACzF,EAAE,OAAOR,OAAO;YACZ,OAAOF,OAAO,IAAI,CACd,IAAIG,yBACAD,iBAAiBE,QAAQF,QAAQ,IAAIE,MAAMC,OAAOH;QAG9D;QACA,IAAIQ,OAAO,MAAM,MAAMA,OAAO,KAAK,CAAC,IAAI,KAAKxB,sBACzC,OAAOc,OAAO,IAAI,CAAC,IAAIG,yBAAyBO,OAAO,KAAK;QAGhE,MAAMC,SAAUb,AAAAA,CAAAA,MAAM,MAAM,IAAI,EAAC,EAAG,IAAI,GAAG,WAAW;QACtD,MAAMc,WAAYF,AAAAA,CAAAA,OAAO,IAAI,KAAKA,OAAO,KAAK,GAAG,EAAC,EAC7C,MAAM,CAACtB,CAAAA,QAASyB,gBAAgBzB,QAChC,MAAM,CAACA,CAAAA,QAAS,CAACD,iBAAiBC,QAClC,MAAM,CAACA,CAAAA;YACJ,IAAI,CAACuB,QACD,OAAO;YAEX,OACIvB,MAAM,IAAI,CAAC,WAAW,GAAG,QAAQ,CAACuB,WAClCvB,MAAM,OAAO,CAAC,WAAW,GAAG,QAAQ,CAACuB;QAE7C,GACC,IAAI,CAACrB;QACV,MAAMwB,YACF,AAAuB,YAAvB,OAAOhB,MAAM,KAAK,IAAiBiB,OAAO,QAAQ,CAACjB,MAAM,KAAK,IACxDkB,KAAK,KAAK,CAAClB,MAAM,KAAK,IACtBd;QACV,MAAMiC,QAAQD,KAAK,GAAG,CAACA,KAAK,GAAG,CAACF,WAAW,IAAI7B;QAC/C,MAAMiC,OAAON,SAAS,KAAK,CAACL,OAAO,MAAM,EAAEA,OAAO,MAAM,GAAGU;QAC3D,MAAME,aAAaZ,OAAO,MAAM,GAAGW,KAAK,MAAM;QAC9C,MAAME,eAAeD,aAAaP,SAAS,MAAM;QACjD,IAAIM,AAAgB,MAAhBA,KAAK,MAAM,EACX,OAAOlB,OAAO,EAAE,CAAC;YAAE,OAAO,EAAE;YAAE,MAAM;gBAAE,QAAQ;gBAAM,cAAc;YAAM;QAAE;QAI9E,MAAMqB,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO;QAClD,IAAIA,UAAU,MAAM,IAChB,OAAOrB,OAAO,IAAI,CAACqB,UAAU,KAAK;QAEtC,MAAMC,QAAQ,IAAIC;QAClB,KAAK,MAAMC,YAAYH,UAAU,KAAK,CAClC,KAAK,MAAMI,aAAaD,SAAS,MAAM,CACnCF,MAAM,GAAG,CAACG,WAAW;YACjB,IAAID,SAAS,EAAE;YACf,MAAMA,SAAS,IAAI;YACnB,WAAWA,SAAS,KAAK,CAAC,MAAM;QACpC;QAIR,OAAOxB,OAAO,EAAE,CAAC;YACb,OAAOkB,KAAK,GAAG,CAAC9B,CAAAA;gBACZ,MAAMqC,YAAYC,eAAetC,MAAM,OAAO;gBAC9C,OAAO;oBACH,OAAOqC;oBACP,SAASrC,MAAM,OAAO;oBACtB,MAAMA,MAAM,IAAI;oBAChB,UAAUkC,MAAM,GAAG,CAACG,cAAc;gBACtC;YACJ;YACA,MAAM;gBACF,QAAQL,eAAeO,sBAAsB;oBAAE,QAAQR;gBAAW,KAAK;gBACvEC;YACJ;QACJ;IACJ;AACJ;AAEO,MAAMQ,sEAAoCC,kCAAAA,oBAA4B,CAAC;IAC1E,gBAAgBpC;IAChB,cAAc;QACVqC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,58 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { WorkflowsNotAuthenticatedError, WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
3
+ import type { WorkflowPersistenceError, WorkflowValidationError } from "@webiny/api-workflows/domain/workflow/errors.js";
4
+ import type { ListCmsEntryWorkflowsUseCase } from "../ListCmsEntryWorkflows/index.js";
5
+ export interface ListCmsEntryWorkflowModelsInput {
6
+ /** Case-insensitive, on the model name and the model id. */
7
+ search?: string | null;
8
+ /** Default 20, max 100. */
9
+ limit?: number | null;
10
+ /** `meta.cursor` of the previous page. */
11
+ after?: string | null;
12
+ }
13
+ export interface CmsEntryWorkflowModelWorkflow {
14
+ id: string;
15
+ name: string;
16
+ stepCount: number;
17
+ }
18
+ export interface CmsEntryWorkflowModel {
19
+ /** Namespace id, `cms.<modelId>`, as a workflow's `models` holds it. */
20
+ model: string;
21
+ modelId: string;
22
+ name: string;
23
+ /** The workflow bound to the model (one model per workflow, D15). */
24
+ workflow: CmsEntryWorkflowModelWorkflow | null;
25
+ }
26
+ export interface CmsEntryWorkflowModelListMeta {
27
+ cursor: string | null;
28
+ hasMoreItems: boolean;
29
+ }
30
+ export interface ListCmsEntryWorkflowModelsResult {
31
+ items: CmsEntryWorkflowModel[];
32
+ meta: CmsEntryWorkflowModelListMeta;
33
+ }
34
+ export interface IListCmsEntryWorkflowModelsUseCaseErrors {
35
+ notAuthenticated: WorkflowsNotAuthenticatedError;
36
+ notAuthorized: WorkflowsNotAuthorizedError;
37
+ validation: WorkflowValidationError;
38
+ persistence: WorkflowPersistenceError;
39
+ workflows: ListCmsEntryWorkflowsUseCase.Error;
40
+ }
41
+ type UseCaseError = IListCmsEntryWorkflowModelsUseCaseErrors[keyof IListCmsEntryWorkflowModelsUseCaseErrors];
42
+ export interface IListCmsEntryWorkflowModelsUseCase {
43
+ execute(input: ListCmsEntryWorkflowModelsInput): Promise<Result<ListCmsEntryWorkflowModelsResult, UseCaseError>>;
44
+ }
45
+ /**
46
+ * The models the workflow editor can bind, one page at a time (D116, R99): needs `editor`; only
47
+ * readable, public, publishable models; each row names its bound workflow.
48
+ */
49
+ export declare const ListCmsEntryWorkflowModelsUseCase: import("@webiny/di").Abstraction<IListCmsEntryWorkflowModelsUseCase>;
50
+ export declare namespace ListCmsEntryWorkflowModelsUseCase {
51
+ type Interface = IListCmsEntryWorkflowModelsUseCase;
52
+ type Input = ListCmsEntryWorkflowModelsInput;
53
+ type Row = CmsEntryWorkflowModel;
54
+ type Value = ListCmsEntryWorkflowModelsResult;
55
+ type Error = UseCaseError;
56
+ type Return = Promise<Result<ListCmsEntryWorkflowModelsResult, UseCaseError>>;
57
+ }
58
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListCmsEntryWorkflowModelsUseCase = createAbstraction("ListCmsEntryWorkflowModelsUseCase");
3
+ export { ListCmsEntryWorkflowModelsUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflowModels/abstractions.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflowModels/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type {\n WorkflowsNotAuthenticatedError,\n WorkflowsNotAuthorizedError\n} from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type {\n WorkflowPersistenceError,\n WorkflowValidationError\n} from \"@webiny/api-workflows/domain/workflow/errors.js\";\nimport type { ListCmsEntryWorkflowsUseCase } from \"../ListCmsEntryWorkflows/index.js\";\n\nexport interface ListCmsEntryWorkflowModelsInput {\n /** Case-insensitive, on the model name and the model id. */\n search?: string | null;\n /** Default 20, max 100. */\n limit?: number | null;\n /** `meta.cursor` of the previous page. */\n after?: string | null;\n}\n\nexport interface CmsEntryWorkflowModelWorkflow {\n id: string;\n name: string;\n stepCount: number;\n}\n\nexport interface CmsEntryWorkflowModel {\n /** Namespace id, `cms.<modelId>`, as a workflow's `models` holds it. */\n model: string;\n modelId: string;\n name: string;\n /** The workflow bound to the model (one model per workflow, D15). */\n workflow: CmsEntryWorkflowModelWorkflow | null;\n}\n\nexport interface CmsEntryWorkflowModelListMeta {\n cursor: string | null;\n hasMoreItems: boolean;\n}\n\nexport interface ListCmsEntryWorkflowModelsResult {\n items: CmsEntryWorkflowModel[];\n meta: CmsEntryWorkflowModelListMeta;\n}\n\nexport interface IListCmsEntryWorkflowModelsUseCaseErrors {\n notAuthenticated: WorkflowsNotAuthenticatedError;\n notAuthorized: WorkflowsNotAuthorizedError;\n validation: WorkflowValidationError;\n persistence: WorkflowPersistenceError;\n workflows: ListCmsEntryWorkflowsUseCase.Error;\n}\n\ntype UseCaseError =\n IListCmsEntryWorkflowModelsUseCaseErrors[keyof IListCmsEntryWorkflowModelsUseCaseErrors];\n\nexport interface IListCmsEntryWorkflowModelsUseCase {\n execute(\n input: ListCmsEntryWorkflowModelsInput\n ): Promise<Result<ListCmsEntryWorkflowModelsResult, UseCaseError>>;\n}\n\n/**\n * The models the workflow editor can bind, one page at a time (D116, R99): needs `editor`; only\n * readable, public, publishable models; each row names its bound workflow.\n */\nexport const ListCmsEntryWorkflowModelsUseCase =\n createAbstraction<IListCmsEntryWorkflowModelsUseCase>(\"ListCmsEntryWorkflowModelsUseCase\");\n\nexport namespace ListCmsEntryWorkflowModelsUseCase {\n export type Interface = IListCmsEntryWorkflowModelsUseCase;\n export type Input = ListCmsEntryWorkflowModelsInput;\n export type Row = CmsEntryWorkflowModel;\n export type Value = ListCmsEntryWorkflowModelsResult;\n export type Error = UseCaseError;\n export type Return = Promise<Result<ListCmsEntryWorkflowModelsResult, UseCaseError>>;\n}\n"],"names":["ListCmsEntryWorkflowModelsUseCase","createAbstraction"],"mappings":";AAkEO,MAAMA,oCACTC,kBAAsD"}
@@ -0,0 +1,4 @@
1
+ export declare const ListCmsEntryWorkflowModelsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListCmsEntryWorkflowModelsUseCase } from "./ListCmsEntryWorkflowModelsUseCase.js";
3
+ const ListCmsEntryWorkflowModelsFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryWorkflowModels",
5
+ register (container) {
6
+ container.register(ListCmsEntryWorkflowModelsUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryWorkflowModelsFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflowModels/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflowModels/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryWorkflowModelsUseCase } from \"./ListCmsEntryWorkflowModelsUseCase.js\";\n\nexport const ListCmsEntryWorkflowModelsFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryWorkflowModels\",\n register(container) {\n container.register(ListCmsEntryWorkflowModelsUseCase);\n }\n});\n"],"names":["ListCmsEntryWorkflowModelsFeature","createFeature","container","ListCmsEntryWorkflowModelsUseCase"],"mappings":";;AAGO,MAAMA,oCAAoCC,cAAc;IAC3D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { ListCmsEntryWorkflowModelsUseCase } from "./abstractions.js";
2
+ export type { CmsEntryWorkflowModel, CmsEntryWorkflowModelWorkflow } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListCmsEntryWorkflowModelsUseCase } from "./abstractions.js";
@@ -0,0 +1,8 @@
1
+ /** Where the next page of the editor model list starts (R99). */
2
+ export interface ModelListCursor {
3
+ offset: number;
4
+ }
5
+ /** Opaque: base64 of JSON `{ offset }`. Pure. */
6
+ export declare const encodeModelListCursor: (cursor: ModelListCursor) => string;
7
+ /** `null` for anything `encodeModelListCursor` does not produce. Pure. */
8
+ export declare const decodeModelListCursor: (value: string) => ModelListCursor | null;
@@ -0,0 +1,20 @@
1
+ const encodeModelListCursor = (cursor)=>Buffer.from(JSON.stringify({
2
+ offset: cursor.offset
3
+ })).toString("base64");
4
+ const decodeModelListCursor = (value)=>{
5
+ let parsed;
6
+ try {
7
+ parsed = JSON.parse(Buffer.from(value, "base64").toString("utf8"));
8
+ } catch {
9
+ return null;
10
+ }
11
+ if ("object" != typeof parsed || null === parsed) return null;
12
+ const offset = parsed.offset;
13
+ if ("number" != typeof offset || !Number.isInteger(offset) || offset < 0) return null;
14
+ return {
15
+ offset
16
+ };
17
+ };
18
+ export { decodeModelListCursor, encodeModelListCursor };
19
+
20
+ //# sourceMappingURL=modelListCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.ts"],"sourcesContent":["/** Where the next page of the editor model list starts (R99). */\nexport interface ModelListCursor {\n offset: number;\n}\n\ninterface ParsedModelListCursor {\n offset?: unknown;\n}\n\n/** Opaque: base64 of JSON `{ offset }`. Pure. */\nexport const encodeModelListCursor = (cursor: ModelListCursor): string => {\n return Buffer.from(JSON.stringify({ offset: cursor.offset })).toString(\"base64\");\n};\n\n/** `null` for anything `encodeModelListCursor` does not produce. Pure. */\nexport const decodeModelListCursor = (value: string): ModelListCursor | null => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(Buffer.from(value, \"base64\").toString(\"utf8\"));\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null) {\n return null;\n }\n const offset = (parsed as ParsedModelListCursor).offset;\n if (typeof offset !== \"number\" || !Number.isInteger(offset) || offset < 0) {\n return null;\n }\n return { offset };\n};\n"],"names":["encodeModelListCursor","cursor","Buffer","JSON","decodeModelListCursor","value","parsed","offset","Number"],"mappings":"AAUO,MAAMA,wBAAwB,CAACC,SAC3BC,OAAO,IAAI,CAACC,KAAK,SAAS,CAAC;QAAE,QAAQF,OAAO,MAAM;IAAC,IAAI,QAAQ,CAAC;AAIpE,MAAMG,wBAAwB,CAACC;IAClC,IAAIC;IACJ,IAAI;QACAA,SAASH,KAAK,KAAK,CAACD,OAAO,IAAI,CAACG,OAAO,UAAU,QAAQ,CAAC;IAC9D,EAAE,OAAM;QACJ,OAAO;IACX;IACA,IAAI,AAAkB,YAAlB,OAAOC,UAAuBA,AAAW,SAAXA,QAC9B,OAAO;IAEX,MAAMC,SAAUD,OAAiC,MAAM;IACvD,IAAI,AAAkB,YAAlB,OAAOC,UAAuB,CAACC,OAAO,SAAS,CAACD,WAAWA,SAAS,GACpE,OAAO;IAEX,OAAO;QAAEA;IAAO;AACpB"}
@@ -0,0 +1,17 @@
1
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
2
+ import { ListWorkflowsUseCase } from "@webiny/api-workflows/features/workflow/ListWorkflows/index.js";
3
+ import { ListCmsEntryWorkflowsUseCase as UseCase } from "./abstractions.js";
4
+ /**
5
+ * The CMS where-filters cannot express "every `cms.*` model", so this pages through every
6
+ * workflow and keeps the Headless CMS ones (R59).
7
+ */
8
+ declare class ListCmsEntryWorkflowsUseCaseImpl implements UseCase.Interface {
9
+ private viewer;
10
+ private listWorkflows;
11
+ constructor(viewer: CurrentReviewViewer.Interface, listWorkflows: ListWorkflowsUseCase.Interface);
12
+ execute(): UseCase.Return;
13
+ }
14
+ export declare const ListCmsEntryWorkflowsUseCase: typeof ListCmsEntryWorkflowsUseCaseImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListCmsEntryWorkflowsUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,43 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
3
+ import { ListWorkflowsUseCase } from "@webiny/api-workflows/features/workflow/ListWorkflows/index.js";
4
+ import { isCmsWorkflow } from "../shared/cmsWorkflows.js";
5
+ import { ListCmsEntryWorkflowsUseCase } from "./abstractions.js";
6
+ const PAGE_SIZE = 100;
7
+ class ListCmsEntryWorkflowsUseCaseImpl {
8
+ constructor(viewer, listWorkflows){
9
+ this.viewer = viewer;
10
+ this.listWorkflows = listWorkflows;
11
+ }
12
+ async execute() {
13
+ const actor = this.viewer.getActor();
14
+ if (actor.isFail()) return Result.fail(actor.error);
15
+ const workflows = [];
16
+ const seenCursors = new Set();
17
+ let after = null;
18
+ do {
19
+ const page = await this.listWorkflows.execute({
20
+ limit: PAGE_SIZE,
21
+ after
22
+ });
23
+ if (page.isFail()) return Result.fail(page.error);
24
+ workflows.push(...page.value.items.filter(isCmsWorkflow));
25
+ after = page.value.meta.hasMoreItems ? page.value.meta.cursor : null;
26
+ if (after) {
27
+ if (seenCursors.has(after)) break;
28
+ seenCursors.add(after);
29
+ }
30
+ }while (after)
31
+ return Result.ok(workflows);
32
+ }
33
+ }
34
+ const ListCmsEntryWorkflowsUseCase_ListCmsEntryWorkflowsUseCase = ListCmsEntryWorkflowsUseCase.createImplementation({
35
+ implementation: ListCmsEntryWorkflowsUseCaseImpl,
36
+ dependencies: [
37
+ CurrentReviewViewer,
38
+ ListWorkflowsUseCase
39
+ ]
40
+ });
41
+ export { ListCmsEntryWorkflowsUseCase_ListCmsEntryWorkflowsUseCase as ListCmsEntryWorkflowsUseCase };
42
+
43
+ //# sourceMappingURL=ListCmsEntryWorkflowsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CurrentReviewViewer } from \"@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js\";\nimport { ListWorkflowsUseCase } from \"@webiny/api-workflows/features/workflow/ListWorkflows/index.js\";\nimport type { Workflow } from \"@webiny/api-workflows/domain/workflow/types.js\";\nimport { isCmsWorkflow } from \"../shared/cmsWorkflows.js\";\nimport { ListCmsEntryWorkflowsUseCase as UseCase } from \"./abstractions.js\";\n\nconst PAGE_SIZE = 100;\n\n/**\n * The CMS where-filters cannot express \"every `cms.*` model\", so this pages through every\n * workflow and keeps the Headless CMS ones (R59).\n */\nclass ListCmsEntryWorkflowsUseCaseImpl implements UseCase.Interface {\n public constructor(\n private viewer: CurrentReviewViewer.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface\n ) {}\n\n public async execute(): UseCase.Return {\n const actor = this.viewer.getActor();\n if (actor.isFail()) {\n return Result.fail(actor.error);\n }\n\n const workflows: Workflow[] = [];\n const seenCursors = new Set<string>();\n let after: string | null = null;\n do {\n // oxlint-disable-next-line no-await-in-loop -- one query per page of workflows.\n const page: Awaited<ListWorkflowsUseCase.Return> = await this.listWorkflows.execute({\n limit: PAGE_SIZE,\n after\n });\n if (page.isFail()) {\n return Result.fail(page.error);\n }\n workflows.push(...page.value.items.filter(isCmsWorkflow));\n after = page.value.meta.hasMoreItems ? page.value.meta.cursor : null;\n // Defensive: stop when the engine returns a cursor it returned before.\n if (after) {\n if (seenCursors.has(after)) {\n break;\n }\n seenCursors.add(after);\n }\n } while (after);\n\n return Result.ok(workflows);\n }\n}\n\nexport const ListCmsEntryWorkflowsUseCase = UseCase.createImplementation({\n implementation: ListCmsEntryWorkflowsUseCaseImpl,\n dependencies: [CurrentReviewViewer, ListWorkflowsUseCase]\n});\n"],"names":["PAGE_SIZE","ListCmsEntryWorkflowsUseCaseImpl","viewer","listWorkflows","actor","Result","workflows","seenCursors","Set","after","page","isCmsWorkflow","ListCmsEntryWorkflowsUseCase","UseCase","CurrentReviewViewer","ListWorkflowsUseCase"],"mappings":";;;;;AAOA,MAAMA,YAAY;AAMlB,MAAMC;IACF,YACYC,MAAqC,EACrCC,aAA6C,CACvD;aAFUD,MAAM,GAANA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAa,UAA0B;QACnC,MAAMC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;QAClC,IAAIA,MAAM,MAAM,IACZ,OAAOC,OAAO,IAAI,CAACD,MAAM,KAAK;QAGlC,MAAME,YAAwB,EAAE;QAChC,MAAMC,cAAc,IAAIC;QACxB,IAAIC,QAAuB;QAC3B,GAAG;YAEC,MAAMC,OAA6C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAChF,OAAOV;gBACPS;YACJ;YACA,IAAIC,KAAK,MAAM,IACX,OAAOL,OAAO,IAAI,CAACK,KAAK,KAAK;YAEjCJ,UAAU,IAAI,IAAII,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAACC;YAC1CF,QAAQC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,GAAGA,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG;YAEhE,IAAID,OAAO;gBACP,IAAIF,YAAY,GAAG,CAACE,QAChB;gBAEJF,YAAY,GAAG,CAACE;YACpB;QACJ,QAASA,MAAO;QAEhB,OAAOJ,OAAO,EAAE,CAACC;IACrB;AACJ;AAEO,MAAMM,4DAA+BC,6BAAAA,oBAA4B,CAAC;IACrE,gBAAgBZ;IAChB,cAAc;QAACa;QAAqBC;KAAqB;AAC7D"}
@@ -0,0 +1,24 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { Workflow } from "@webiny/api-workflows/domain/workflow/types.js";
3
+ import type { WorkflowsNotAuthenticatedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { WorkflowPersistenceError } from "@webiny/api-workflows/domain/workflow/errors.js";
5
+ export interface IListCmsEntryWorkflowsUseCaseErrors {
6
+ notAuthenticated: WorkflowsNotAuthenticatedError;
7
+ persistence: WorkflowPersistenceError;
8
+ }
9
+ type UseCaseError = IListCmsEntryWorkflowsUseCaseErrors[keyof IListCmsEntryWorkflowsUseCaseErrors];
10
+ export interface IListCmsEntryWorkflowsUseCase {
11
+ execute(): Promise<Result<Workflow[], UseCaseError>>;
12
+ }
13
+ /**
14
+ * Every Headless CMS workflow, for any signed-in identity (D78). The API takes no paging input: v1
15
+ * binds one model per workflow, so the list is at most the model count (R59, A23); the
16
+ * implementation reads every page of the engine's list.
17
+ */
18
+ export declare const ListCmsEntryWorkflowsUseCase: import("@webiny/di").Abstraction<IListCmsEntryWorkflowsUseCase>;
19
+ export declare namespace ListCmsEntryWorkflowsUseCase {
20
+ type Interface = IListCmsEntryWorkflowsUseCase;
21
+ type Error = UseCaseError;
22
+ type Return = Promise<Result<Workflow[], UseCaseError>>;
23
+ }
24
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListCmsEntryWorkflowsUseCase = createAbstraction("ListCmsEntryWorkflowsUseCase");
3
+ export { ListCmsEntryWorkflowsUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflows/abstractions.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflows/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Workflow } from \"@webiny/api-workflows/domain/workflow/types.js\";\nimport type { WorkflowsNotAuthenticatedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type { WorkflowPersistenceError } from \"@webiny/api-workflows/domain/workflow/errors.js\";\n\nexport interface IListCmsEntryWorkflowsUseCaseErrors {\n notAuthenticated: WorkflowsNotAuthenticatedError;\n persistence: WorkflowPersistenceError;\n}\n\ntype UseCaseError = IListCmsEntryWorkflowsUseCaseErrors[keyof IListCmsEntryWorkflowsUseCaseErrors];\n\nexport interface IListCmsEntryWorkflowsUseCase {\n execute(): Promise<Result<Workflow[], UseCaseError>>;\n}\n\n/**\n * Every Headless CMS workflow, for any signed-in identity (D78). The API takes no paging input: v1\n * binds one model per workflow, so the list is at most the model count (R59, A23); the\n * implementation reads every page of the engine's list.\n */\nexport const ListCmsEntryWorkflowsUseCase = createAbstraction<IListCmsEntryWorkflowsUseCase>(\n \"ListCmsEntryWorkflowsUseCase\"\n);\n\nexport namespace ListCmsEntryWorkflowsUseCase {\n export type Interface = IListCmsEntryWorkflowsUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<Workflow[], UseCaseError>>;\n}\n"],"names":["ListCmsEntryWorkflowsUseCase","createAbstraction"],"mappings":";AAqBO,MAAMA,+BAA+BC,kBACxC"}
@@ -0,0 +1,4 @@
1
+ export declare const ListCmsEntryWorkflowsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListCmsEntryWorkflowsUseCase } from "./ListCmsEntryWorkflowsUseCase.js";
3
+ const ListCmsEntryWorkflowsFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryWorkflows",
5
+ register (container) {
6
+ container.register(ListCmsEntryWorkflowsUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryWorkflowsFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryWorkflows/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryWorkflows/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryWorkflowsUseCase } from \"./ListCmsEntryWorkflowsUseCase.js\";\n\nexport const ListCmsEntryWorkflowsFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryWorkflows\",\n register(container) {\n container.register(ListCmsEntryWorkflowsUseCase);\n }\n});\n"],"names":["ListCmsEntryWorkflowsFeature","createFeature","container","ListCmsEntryWorkflowsUseCase"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ListCmsEntryWorkflowsUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListCmsEntryWorkflowsUseCase } from "./abstractions.js";
@@ -0,0 +1,13 @@
1
+ import { ReassignReviewStepUseCase } from "@webiny/api-workflows/features/review/ReassignReviewStep/index.js";
2
+ import { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
3
+ import { ReassignCmsEntryReviewStepUseCase as UseCase } from "./abstractions.js";
4
+ declare class ReassignCmsEntryReviewStepUseCaseImpl implements UseCase.Interface {
5
+ private guard;
6
+ private reassignStep;
7
+ constructor(guard: CmsEntryReviewGuardService.Interface, reassignStep: ReassignReviewStepUseCase.Interface);
8
+ execute(input: UseCase.Input): UseCase.Return;
9
+ }
10
+ export declare const ReassignCmsEntryReviewStepUseCase: typeof ReassignCmsEntryReviewStepUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IReassignCmsEntryReviewStepUseCase>;
12
+ };
13
+ export {};
@@ -0,0 +1,40 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ReassignReviewStepUseCase } from "@webiny/api-workflows/features/review/ReassignReviewStep/index.js";
3
+ import { canReassignByPermission } from "@webiny/api-workflows/domain/review/canReassignByPermission.js";
4
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
5
+ import { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
6
+ import { ReassignCmsEntryReviewStepUseCase } from "./abstractions.js";
7
+ const ACTION = "reassign this step";
8
+ class ReassignCmsEntryReviewStepUseCaseImpl {
9
+ constructor(guard, reassignStep){
10
+ this.guard = guard;
11
+ this.reassignStep = reassignStep;
12
+ }
13
+ async execute(input) {
14
+ const authorized = await this.guard.authorize({
15
+ reviewId: input.reviewId,
16
+ action: ACTION
17
+ });
18
+ if (authorized.isFail()) return Result.fail(authorized.error);
19
+ const { viewer } = authorized.value;
20
+ if (!canReassignByPermission(viewer)) return Result.fail(new WorkflowsNotAuthorizedError({
21
+ action: ACTION
22
+ }));
23
+ return this.reassignStep.execute({
24
+ reviewId: input.reviewId,
25
+ stepId: input.stepId,
26
+ userId: input.userId,
27
+ actor: viewer.actor
28
+ });
29
+ }
30
+ }
31
+ const ReassignCmsEntryReviewStepUseCase_ReassignCmsEntryReviewStepUseCase = ReassignCmsEntryReviewStepUseCase.createImplementation({
32
+ implementation: ReassignCmsEntryReviewStepUseCaseImpl,
33
+ dependencies: [
34
+ CmsEntryReviewGuardService,
35
+ ReassignReviewStepUseCase
36
+ ]
37
+ });
38
+ export { ReassignCmsEntryReviewStepUseCase_ReassignCmsEntryReviewStepUseCase as ReassignCmsEntryReviewStepUseCase };
39
+
40
+ //# sourceMappingURL=ReassignCmsEntryReviewStepUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.js","sources":["../../../../src/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ReassignReviewStepUseCase } from \"@webiny/api-workflows/features/review/ReassignReviewStep/index.js\";\nimport { canReassignByPermission } from \"@webiny/api-workflows/domain/review/canReassignByPermission.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport { CmsEntryReviewGuardService } from \"../CmsEntryReviewGuardService/index.js\";\nimport { ReassignCmsEntryReviewStepUseCase as UseCase } from \"./abstractions.js\";\n\nconst ACTION = \"reassign this step\";\n\nclass ReassignCmsEntryReviewStepUseCaseImpl implements UseCase.Interface {\n public constructor(\n private guard: CmsEntryReviewGuardService.Interface,\n private reassignStep: ReassignReviewStepUseCase.Interface\n ) {}\n\n public async execute(input: UseCase.Input): UseCase.Return {\n const authorized = await this.guard.authorize({\n reviewId: input.reviewId,\n action: ACTION\n });\n if (authorized.isFail()) {\n return Result.fail(authorized.error);\n }\n\n const { viewer } = authorized.value;\n // Permission only: whether the step can be reassigned is the engine's (1b R41).\n if (!canReassignByPermission(viewer)) {\n return Result.fail(new WorkflowsNotAuthorizedError({ action: ACTION }));\n }\n\n return this.reassignStep.execute({\n reviewId: input.reviewId,\n stepId: input.stepId,\n userId: input.userId,\n actor: viewer.actor\n });\n }\n}\n\nexport const ReassignCmsEntryReviewStepUseCase = UseCase.createImplementation({\n implementation: ReassignCmsEntryReviewStepUseCaseImpl,\n dependencies: [CmsEntryReviewGuardService, ReassignReviewStepUseCase]\n});\n"],"names":["ACTION","ReassignCmsEntryReviewStepUseCaseImpl","guard","reassignStep","input","authorized","Result","viewer","canReassignByPermission","WorkflowsNotAuthorizedError","ReassignCmsEntryReviewStepUseCase","UseCase","CmsEntryReviewGuardService","ReassignReviewStepUseCase"],"mappings":";;;;;;AAOA,MAAMA,SAAS;AAEf,MAAMC;IACF,YACYC,KAA2C,EAC3CC,YAAiD,CAC3D;aAFUD,KAAK,GAALA;aACAC,YAAY,GAAZA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QACvD,MAAMC,aAAa,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1C,UAAUD,MAAM,QAAQ;YACxB,QAAQJ;QACZ;QACA,IAAIK,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAACD,WAAW,KAAK;QAGvC,MAAM,EAAEE,MAAM,EAAE,GAAGF,WAAW,KAAK;QAEnC,IAAI,CAACG,wBAAwBD,SACzB,OAAOD,OAAO,IAAI,CAAC,IAAIG,4BAA4B;YAAE,QAAQT;QAAO;QAGxE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC7B,UAAUI,MAAM,QAAQ;YACxB,QAAQA,MAAM,MAAM;YACpB,QAAQA,MAAM,MAAM;YACpB,OAAOG,OAAO,KAAK;QACvB;IACJ;AACJ;AAEO,MAAMG,sEAAoCC,kCAAAA,oBAA4B,CAAC;IAC1E,gBAAgBV;IAChB,cAAc;QAACW;QAA4BC;KAA0B;AACzE"}
@@ -0,0 +1,32 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { ReviewData } from "@webiny/api-workflows/domain/review/types.js";
3
+ import type { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { ReassignReviewStepUseCase } from "@webiny/api-workflows/features/review/ReassignReviewStep/index.js";
5
+ import type { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
6
+ export interface ReassignCmsEntryReviewStepInput {
7
+ reviewId: string;
8
+ stepId: string;
9
+ /** The admin user who gets the step; validated like a pick by the engine (R112). */
10
+ userId: string;
11
+ }
12
+ export interface IReassignCmsEntryReviewStepUseCaseErrors {
13
+ guard: CmsEntryReviewGuardService.Error;
14
+ notAuthorized: WorkflowsNotAuthorizedError;
15
+ reassign: ReassignReviewStepUseCase.Error;
16
+ }
17
+ type UseCaseError = IReassignCmsEntryReviewStepUseCaseErrors[keyof IReassignCmsEntryReviewStepUseCaseErrors];
18
+ export interface IReassignCmsEntryReviewStepUseCase {
19
+ execute(input: ReassignCmsEntryReviewStepInput): Promise<Result<ReviewData, UseCaseError>>;
20
+ }
21
+ /**
22
+ * Give a CMS review step to another team member (spec 5.1, D25, D33, R119): read access to the
23
+ * target and `reassign` here, the step and the chosen user's rules in the engine.
24
+ */
25
+ export declare const ReassignCmsEntryReviewStepUseCase: import("@webiny/di").Abstraction<IReassignCmsEntryReviewStepUseCase>;
26
+ export declare namespace ReassignCmsEntryReviewStepUseCase {
27
+ type Interface = IReassignCmsEntryReviewStepUseCase;
28
+ type Input = ReassignCmsEntryReviewStepInput;
29
+ type Error = UseCaseError;
30
+ type Return = Promise<Result<ReviewData, UseCaseError>>;
31
+ }
32
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ReassignCmsEntryReviewStepUseCase = createAbstraction("ReassignCmsEntryReviewStepUseCase");
3
+ export { ReassignCmsEntryReviewStepUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ReassignCmsEntryReviewStep/abstractions.js","sources":["../../../../src/features/wrappers/ReassignCmsEntryReviewStep/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { ReviewData } from \"@webiny/api-workflows/domain/review/types.js\";\nimport type { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type { ReassignReviewStepUseCase } from \"@webiny/api-workflows/features/review/ReassignReviewStep/index.js\";\nimport type { CmsEntryReviewGuardService } from \"../CmsEntryReviewGuardService/index.js\";\n\nexport interface ReassignCmsEntryReviewStepInput {\n reviewId: string;\n stepId: string;\n /** The admin user who gets the step; validated like a pick by the engine (R112). */\n userId: string;\n}\n\nexport interface IReassignCmsEntryReviewStepUseCaseErrors {\n guard: CmsEntryReviewGuardService.Error;\n notAuthorized: WorkflowsNotAuthorizedError;\n reassign: ReassignReviewStepUseCase.Error;\n}\n\ntype UseCaseError =\n IReassignCmsEntryReviewStepUseCaseErrors[keyof IReassignCmsEntryReviewStepUseCaseErrors];\n\nexport interface IReassignCmsEntryReviewStepUseCase {\n execute(input: ReassignCmsEntryReviewStepInput): Promise<Result<ReviewData, UseCaseError>>;\n}\n\n/**\n * Give a CMS review step to another team member (spec 5.1, D25, D33, R119): read access to the\n * target and `reassign` here, the step and the chosen user's rules in the engine.\n */\nexport const ReassignCmsEntryReviewStepUseCase =\n createAbstraction<IReassignCmsEntryReviewStepUseCase>(\"ReassignCmsEntryReviewStepUseCase\");\n\nexport namespace ReassignCmsEntryReviewStepUseCase {\n export type Interface = IReassignCmsEntryReviewStepUseCase;\n export type Input = ReassignCmsEntryReviewStepInput;\n export type Error = UseCaseError;\n export type Return = Promise<Result<ReviewData, UseCaseError>>;\n}\n"],"names":["ReassignCmsEntryReviewStepUseCase","createAbstraction"],"mappings":";AA8BO,MAAMA,oCACTC,kBAAsD"}
@@ -0,0 +1,4 @@
1
+ export declare const ReassignCmsEntryReviewStepFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ReassignCmsEntryReviewStepUseCase } from "./ReassignCmsEntryReviewStepUseCase.js";
3
+ const ReassignCmsEntryReviewStepFeature = createFeature({
4
+ name: "CmsWorkflows/ReassignCmsEntryReviewStep",
5
+ register (container) {
6
+ container.register(ReassignCmsEntryReviewStepUseCase);
7
+ }
8
+ });
9
+ export { ReassignCmsEntryReviewStepFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ReassignCmsEntryReviewStep/feature.js","sources":["../../../../src/features/wrappers/ReassignCmsEntryReviewStep/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ReassignCmsEntryReviewStepUseCase } from \"./ReassignCmsEntryReviewStepUseCase.js\";\n\nexport const ReassignCmsEntryReviewStepFeature = createFeature({\n name: \"CmsWorkflows/ReassignCmsEntryReviewStep\",\n register(container) {\n container.register(ReassignCmsEntryReviewStepUseCase);\n }\n});\n"],"names":["ReassignCmsEntryReviewStepFeature","createFeature","container","ReassignCmsEntryReviewStepUseCase"],"mappings":";;AAGO,MAAMA,oCAAoCC,cAAc;IAC3D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ReassignCmsEntryReviewStepUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ReassignCmsEntryReviewStepUseCase } from "./abstractions.js";
@@ -0,0 +1,13 @@
1
+ import { RejectReviewStepUseCase } from "@webiny/api-workflows/features/review/RejectReviewStep/index.js";
2
+ import { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
3
+ import { RejectCmsEntryReviewStepUseCase as UseCase } from "./abstractions.js";
4
+ declare class RejectCmsEntryReviewStepUseCaseImpl implements UseCase.Interface {
5
+ private guard;
6
+ private engine;
7
+ constructor(guard: CmsEntryReviewGuardService.Interface, engine: RejectReviewStepUseCase.Interface);
8
+ execute(input: UseCase.Input): UseCase.Return;
9
+ }
10
+ export declare const RejectCmsEntryReviewStepUseCase: typeof RejectCmsEntryReviewStepUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IRejectCmsEntryReviewStepUseCase>;
12
+ };
13
+ export {};