@webiny/api-headless-cms-workflows 0.0.0-unstable.a4f3e4ea8b → 0.0.0-unstable.a85ef555b2

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 (510) hide show
  1. package/{features/EntryWorkflows/feature.d.ts → CmsWorkflowsFeature.d.ts} +1 -1
  2. package/CmsWorkflowsFeature.js +28 -0
  3. package/CmsWorkflowsFeature.js.map +1 -0
  4. package/domain/errors.d.ts +27 -0
  5. package/domain/errors.js +14 -0
  6. package/domain/errors.js.map +1 -0
  7. package/features/Workflows/feature.js +2 -0
  8. package/features/Workflows/feature.js.map +1 -1
  9. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.d.ts +18 -6
  10. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.js +30 -13
  11. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeCreate.js.map +1 -1
  12. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.d.ts +23 -0
  13. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.js +44 -0
  14. package/features/Workflows/handlers/DisallowUnpublishableModelsOnBeforeUpdate.js.map +1 -0
  15. package/features/hooks/BlockDeleteMultipleWhileInReview.d.ts +22 -0
  16. package/features/hooks/BlockDeleteMultipleWhileInReview.js +64 -0
  17. package/features/hooks/BlockDeleteMultipleWhileInReview.js.map +1 -0
  18. package/features/hooks/BlockDeleteWhileInReview.d.ts +18 -0
  19. package/features/hooks/BlockDeleteWhileInReview.js +45 -0
  20. package/features/hooks/BlockDeleteWhileInReview.js.map +1 -0
  21. package/features/hooks/BlockFolderChangeWhileInReview.d.ts +21 -0
  22. package/features/hooks/BlockFolderChangeWhileInReview.js +44 -0
  23. package/features/hooks/BlockFolderChangeWhileInReview.js.map +1 -0
  24. package/features/hooks/BlockMoveWhileInReview.d.ts +19 -0
  25. package/features/hooks/BlockMoveWhileInReview.js +46 -0
  26. package/features/hooks/BlockMoveWhileInReview.js.map +1 -0
  27. package/features/hooks/BlockRevisionDeleteWhileInReview.d.ts +17 -0
  28. package/features/hooks/BlockRevisionDeleteWhileInReview.js +46 -0
  29. package/features/hooks/BlockRevisionDeleteWhileInReview.js.map +1 -0
  30. package/features/hooks/BlockUpdateWhileInReview.d.ts +25 -0
  31. package/features/hooks/BlockUpdateWhileInReview.js +43 -0
  32. package/features/hooks/BlockUpdateWhileInReview.js.map +1 -0
  33. package/features/hooks/DeleteModelBoundToWorkflowDecorator.d.ts +22 -0
  34. package/features/hooks/DeleteModelBoundToWorkflowDecorator.js +52 -0
  35. package/features/hooks/DeleteModelBoundToWorkflowDecorator.js.map +1 -0
  36. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.d.ts +27 -0
  37. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.js +64 -0
  38. package/features/hooks/DeleteModelTaskBoundToWorkflowDecorator.js.map +1 -0
  39. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.d.ts +19 -0
  40. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.js +47 -0
  41. package/features/hooks/DeleteReviewsOnEntriesDeleteMultiple.js.map +1 -0
  42. package/features/hooks/DeleteReviewsOnEntryDelete.d.ts +19 -0
  43. package/features/hooks/DeleteReviewsOnEntryDelete.js +46 -0
  44. package/features/hooks/DeleteReviewsOnEntryDelete.js.map +1 -0
  45. package/features/hooks/DeleteReviewsOnRevisionDelete.d.ts +18 -0
  46. package/features/hooks/DeleteReviewsOnRevisionDelete.js +46 -0
  47. package/features/hooks/DeleteReviewsOnRevisionDelete.js.map +1 -0
  48. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.d.ts +28 -0
  49. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.js +63 -0
  50. package/features/hooks/FullyDeleteModelBoundToWorkflowDecorator.js.map +1 -0
  51. package/features/hooks/NullReviewStateOnRevisionCreate.d.ts +15 -0
  52. package/features/hooks/NullReviewStateOnRevisionCreate.js +17 -0
  53. package/features/hooks/NullReviewStateOnRevisionCreate.js.map +1 -0
  54. package/features/hooks/RequireApprovedReviewOnPublish.d.ts +22 -0
  55. package/features/hooks/RequireApprovedReviewOnPublish.js +43 -0
  56. package/features/hooks/RequireApprovedReviewOnPublish.js.map +1 -0
  57. package/features/hooks/RequireApprovedReviewOnRepublish.d.ts +23 -0
  58. package/features/hooks/RequireApprovedReviewOnRepublish.js +49 -0
  59. package/features/hooks/RequireApprovedReviewOnRepublish.js.map +1 -0
  60. package/features/hooks/feature.d.ts +8 -0
  61. package/features/hooks/feature.js +39 -0
  62. package/features/hooks/feature.js.map +1 -0
  63. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.d.ts +18 -0
  64. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.js +97 -0
  65. package/features/target/CandidateFolderReadRules/CandidateFolderReadRules.js.map +1 -0
  66. package/features/target/CandidateFolderReadRules/abstractions.d.ts +35 -0
  67. package/features/target/CandidateFolderReadRules/abstractions.js +5 -0
  68. package/features/target/CandidateFolderReadRules/abstractions.js.map +1 -0
  69. package/features/target/CandidateFolderReadRules/index.d.ts +1 -0
  70. package/features/target/CandidateFolderReadRules/index.js +1 -0
  71. package/features/target/CmsEntryAccess/CmsEntryAccess.d.ts +32 -0
  72. package/features/target/CmsEntryAccess/CmsEntryAccess.js +141 -0
  73. package/features/target/CmsEntryAccess/CmsEntryAccess.js.map +1 -0
  74. package/features/target/CmsEntryAccess/abstractions.d.ts +48 -0
  75. package/features/target/CmsEntryAccess/abstractions.js +5 -0
  76. package/features/target/CmsEntryAccess/abstractions.js.map +1 -0
  77. package/features/target/CmsEntryAccess/index.d.ts +2 -0
  78. package/features/target/CmsEntryAccess/index.js +2 -0
  79. package/features/target/CmsEntryAccess/unreadableCodes.d.ts +1 -0
  80. package/features/target/CmsEntryAccess/unreadableCodes.js +9 -0
  81. package/features/target/CmsEntryAccess/unreadableCodes.js.map +1 -0
  82. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.d.ts +21 -0
  83. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.js +66 -0
  84. package/features/target/CmsEntryDeniedFolders/CmsEntryDeniedFolders.js.map +1 -0
  85. package/features/target/CmsEntryDeniedFolders/abstractions.d.ts +23 -0
  86. package/features/target/CmsEntryDeniedFolders/abstractions.js +5 -0
  87. package/features/target/CmsEntryDeniedFolders/abstractions.js.map +1 -0
  88. package/features/target/CmsEntryDeniedFolders/index.d.ts +1 -0
  89. package/features/target/CmsEntryDeniedFolders/index.js +1 -0
  90. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.d.ts +18 -0
  91. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.js +43 -0
  92. package/features/target/CmsEntryFolderExistsService/CmsEntryFolderExistsService.js.map +1 -0
  93. package/features/target/CmsEntryFolderExistsService/abstractions.d.ts +23 -0
  94. package/features/target/CmsEntryFolderExistsService/abstractions.js +5 -0
  95. package/features/target/CmsEntryFolderExistsService/abstractions.js.map +1 -0
  96. package/features/target/CmsEntryFolderExistsService/index.d.ts +1 -0
  97. package/features/target/CmsEntryFolderExistsService/index.js +1 -0
  98. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.d.ts +10 -0
  99. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.js +14 -0
  100. package/features/target/CmsEntryReviewNamespace/CmsModelReviewNamespace.js.map +1 -0
  101. package/features/target/CmsEntryReviewNamespace/abstractions.d.ts +17 -0
  102. package/features/target/CmsEntryReviewNamespace/abstractions.js +5 -0
  103. package/features/target/CmsEntryReviewNamespace/abstractions.js.map +1 -0
  104. package/features/target/CmsEntryReviewNamespace/index.d.ts +1 -0
  105. package/features/target/CmsEntryReviewNamespace/index.js +1 -0
  106. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.d.ts +20 -0
  107. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.js +80 -0
  108. package/features/target/CmsEntryReviewReadFilter/CmsEntryReviewReadFilter.js.map +1 -0
  109. package/features/target/CmsEntryReviewReadFilter/abstractions.d.ts +24 -0
  110. package/features/target/CmsEntryReviewReadFilter/abstractions.js +5 -0
  111. package/features/target/CmsEntryReviewReadFilter/abstractions.js.map +1 -0
  112. package/features/target/CmsEntryReviewReadFilter/index.d.ts +1 -0
  113. package/features/target/CmsEntryReviewReadFilter/index.js +1 -0
  114. package/features/target/CmsEntryReviewTargetEditor.d.ts +28 -0
  115. package/features/target/CmsEntryReviewTargetEditor.js +128 -0
  116. package/features/target/CmsEntryReviewTargetEditor.js.map +1 -0
  117. package/features/target/CmsEntryReviewTargetFolderChain.d.ts +22 -0
  118. package/features/target/CmsEntryReviewTargetFolderChain.js +37 -0
  119. package/features/target/CmsEntryReviewTargetFolderChain.js.map +1 -0
  120. package/features/target/CmsEntryReviewTargetLink.d.ts +17 -0
  121. package/features/target/CmsEntryReviewTargetLink.js +18 -0
  122. package/features/target/CmsEntryReviewTargetLink.js.map +1 -0
  123. package/features/target/CmsEntryReviewTargetLoader.d.ts +16 -0
  124. package/features/target/CmsEntryReviewTargetLoader.js +29 -0
  125. package/features/target/CmsEntryReviewTargetLoader.js.map +1 -0
  126. package/features/target/CmsEntryReviewTargetReadAccess.d.ts +41 -0
  127. package/features/target/CmsEntryReviewTargetReadAccess.js +91 -0
  128. package/features/target/CmsEntryReviewTargetReadAccess.js.map +1 -0
  129. package/features/target/CmsEntryReviewTargetSync.d.ts +23 -0
  130. package/features/target/CmsEntryReviewTargetSync.js +42 -0
  131. package/features/target/CmsEntryReviewTargetSync.js.map +1 -0
  132. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.d.ts +27 -0
  133. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.js +81 -0
  134. package/features/target/CmsEntryTargetReader/CmsEntryTargetReader.js.map +1 -0
  135. package/features/target/CmsEntryTargetReader/abstractions.d.ts +40 -0
  136. package/features/target/CmsEntryTargetReader/abstractions.js +5 -0
  137. package/features/target/CmsEntryTargetReader/abstractions.js.map +1 -0
  138. package/features/target/CmsEntryTargetReader/index.d.ts +1 -0
  139. package/features/target/CmsEntryTargetReader/index.js +1 -0
  140. package/features/target/CmsModelGroupService/CmsModelGroupService.d.ts +12 -0
  141. package/features/target/CmsModelGroupService/CmsModelGroupService.js +25 -0
  142. package/features/target/CmsModelGroupService/CmsModelGroupService.js.map +1 -0
  143. package/features/target/CmsModelGroupService/abstractions.d.ts +24 -0
  144. package/features/target/CmsModelGroupService/abstractions.js +5 -0
  145. package/features/target/CmsModelGroupService/abstractions.js.map +1 -0
  146. package/features/target/CmsModelGroupService/index.d.ts +1 -0
  147. package/features/target/CmsModelGroupService/index.js +1 -0
  148. package/features/target/CmsWorkflowModelParser.d.ts +9 -0
  149. package/features/target/CmsWorkflowModelParser.js +18 -0
  150. package/features/target/CmsWorkflowModelParser.js.map +1 -0
  151. package/features/target/FolderReadRule.d.ts +9 -0
  152. package/features/target/FolderReadRule.js +0 -0
  153. package/features/target/WorkflowEntrySystemField.d.ts +13 -0
  154. package/features/target/WorkflowEntrySystemField.js +35 -0
  155. package/features/target/WorkflowEntrySystemField.js.map +1 -0
  156. package/features/target/feature.d.ts +5 -0
  157. package/features/target/feature.js +41 -0
  158. package/features/target/feature.js.map +1 -0
  159. package/features/target/getModelSafeValidationMessage.d.ts +11 -0
  160. package/features/target/getModelSafeValidationMessage.js +28 -0
  161. package/features/target/getModelSafeValidationMessage.js.map +1 -0
  162. package/features/target/isEditorFieldValue.d.ts +9 -0
  163. package/features/target/isEditorFieldValue.js +30 -0
  164. package/features/target/isEditorFieldValue.js.map +1 -0
  165. package/features/target/toCmsReviewTarget.d.ts +4 -0
  166. package/features/target/toCmsReviewTarget.js +26 -0
  167. package/features/target/toCmsReviewTarget.js.map +1 -0
  168. package/features/target/toEditorFields.d.ts +9 -0
  169. package/features/target/toEditorFields.js +48 -0
  170. package/features/target/toEditorFields.js.map +1 -0
  171. package/features/target/toEntryValuesPatch.d.ts +9 -0
  172. package/features/target/toEntryValuesPatch.js +31 -0
  173. package/features/target/toEntryValuesPatch.js.map +1 -0
  174. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.d.ts +13 -0
  175. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.js +35 -0
  176. package/features/wrappers/ApproveCmsEntryReviewStep/ApproveCmsEntryReviewStepUseCase.js.map +1 -0
  177. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.d.ts +26 -0
  178. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.js +5 -0
  179. package/features/wrappers/ApproveCmsEntryReviewStep/abstractions.js.map +1 -0
  180. package/features/wrappers/ApproveCmsEntryReviewStep/feature.d.ts +4 -0
  181. package/features/wrappers/ApproveCmsEntryReviewStep/feature.js +11 -0
  182. package/features/wrappers/ApproveCmsEntryReviewStep/feature.js.map +1 -0
  183. package/features/wrappers/ApproveCmsEntryReviewStep/index.d.ts +1 -0
  184. package/features/wrappers/ApproveCmsEntryReviewStep/index.js +1 -0
  185. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.d.ts +13 -0
  186. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.js +37 -0
  187. package/features/wrappers/CancelCmsEntryReview/CancelCmsEntryReviewUseCase.js.map +1 -0
  188. package/features/wrappers/CancelCmsEntryReview/abstractions.d.ts +30 -0
  189. package/features/wrappers/CancelCmsEntryReview/abstractions.js +5 -0
  190. package/features/wrappers/CancelCmsEntryReview/abstractions.js.map +1 -0
  191. package/features/wrappers/CancelCmsEntryReview/feature.d.ts +4 -0
  192. package/features/wrappers/CancelCmsEntryReview/feature.js +11 -0
  193. package/features/wrappers/CancelCmsEntryReview/feature.js.map +1 -0
  194. package/features/wrappers/CancelCmsEntryReview/index.d.ts +1 -0
  195. package/features/wrappers/CancelCmsEntryReview/index.js +1 -0
  196. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.d.ts +19 -0
  197. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.js +85 -0
  198. package/features/wrappers/CancelCmsEntryReviewsForDelete/CancelCmsEntryReviewsForDeleteUseCase.js.map +1 -0
  199. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.d.ts +41 -0
  200. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.js +5 -0
  201. package/features/wrappers/CancelCmsEntryReviewsForDelete/abstractions.js.map +1 -0
  202. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.d.ts +4 -0
  203. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.js +11 -0
  204. package/features/wrappers/CancelCmsEntryReviewsForDelete/feature.js.map +1 -0
  205. package/features/wrappers/CancelCmsEntryReviewsForDelete/index.d.ts +1 -0
  206. package/features/wrappers/CancelCmsEntryReviewsForDelete/index.js +1 -0
  207. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.d.ts +15 -0
  208. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.js +46 -0
  209. package/features/wrappers/CmsEntryFolderExists/CmsEntryFolderExistsUseCase.js.map +1 -0
  210. package/features/wrappers/CmsEntryFolderExists/abstractions.d.ts +29 -0
  211. package/features/wrappers/CmsEntryFolderExists/abstractions.js +5 -0
  212. package/features/wrappers/CmsEntryFolderExists/abstractions.js.map +1 -0
  213. package/features/wrappers/CmsEntryFolderExists/feature.d.ts +4 -0
  214. package/features/wrappers/CmsEntryFolderExists/feature.js +11 -0
  215. package/features/wrappers/CmsEntryFolderExists/feature.js.map +1 -0
  216. package/features/wrappers/CmsEntryFolderExists/index.d.ts +1 -0
  217. package/features/wrappers/CmsEntryFolderExists/index.js +1 -0
  218. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.d.ts +17 -0
  219. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.js +63 -0
  220. package/features/wrappers/CmsEntryReviewGuardService/CmsEntryReviewGuardService.js.map +1 -0
  221. package/features/wrappers/CmsEntryReviewGuardService/abstractions.d.ts +37 -0
  222. package/features/wrappers/CmsEntryReviewGuardService/abstractions.js +5 -0
  223. package/features/wrappers/CmsEntryReviewGuardService/abstractions.js.map +1 -0
  224. package/features/wrappers/CmsEntryReviewGuardService/index.d.ts +1 -0
  225. package/features/wrappers/CmsEntryReviewGuardService/index.js +1 -0
  226. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.d.ts +25 -0
  227. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.js +98 -0
  228. package/features/wrappers/DeleteCmsEntryWorkflow/DeleteCmsEntryWorkflowUseCase.js.map +1 -0
  229. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.d.ts +32 -0
  230. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.js +5 -0
  231. package/features/wrappers/DeleteCmsEntryWorkflow/abstractions.js.map +1 -0
  232. package/features/wrappers/DeleteCmsEntryWorkflow/feature.d.ts +4 -0
  233. package/features/wrappers/DeleteCmsEntryWorkflow/feature.js +11 -0
  234. package/features/wrappers/DeleteCmsEntryWorkflow/feature.js.map +1 -0
  235. package/features/wrappers/DeleteCmsEntryWorkflow/index.d.ts +1 -0
  236. package/features/wrappers/DeleteCmsEntryWorkflow/index.js +1 -0
  237. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.d.ts +13 -0
  238. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.js +40 -0
  239. package/features/wrappers/GetCmsEntryReview/GetCmsEntryReviewUseCase.js.map +1 -0
  240. package/features/wrappers/GetCmsEntryReview/abstractions.d.ts +28 -0
  241. package/features/wrappers/GetCmsEntryReview/abstractions.js +5 -0
  242. package/features/wrappers/GetCmsEntryReview/abstractions.js.map +1 -0
  243. package/features/wrappers/GetCmsEntryReview/feature.d.ts +4 -0
  244. package/features/wrappers/GetCmsEntryReview/feature.js +11 -0
  245. package/features/wrappers/GetCmsEntryReview/feature.js.map +1 -0
  246. package/features/wrappers/GetCmsEntryReview/index.d.ts +1 -0
  247. package/features/wrappers/GetCmsEntryReview/index.js +1 -0
  248. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.d.ts +13 -0
  249. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.js +39 -0
  250. package/features/wrappers/GetCmsEntryReviewStepRun/GetCmsEntryReviewStepRunUseCase.js.map +1 -0
  251. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.d.ts +33 -0
  252. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.js +5 -0
  253. package/features/wrappers/GetCmsEntryReviewStepRun/abstractions.js.map +1 -0
  254. package/features/wrappers/GetCmsEntryReviewStepRun/feature.d.ts +4 -0
  255. package/features/wrappers/GetCmsEntryReviewStepRun/feature.js +11 -0
  256. package/features/wrappers/GetCmsEntryReviewStepRun/feature.js.map +1 -0
  257. package/features/wrappers/GetCmsEntryReviewStepRun/index.d.ts +1 -0
  258. package/features/wrappers/GetCmsEntryReviewStepRun/index.js +1 -0
  259. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.d.ts +19 -0
  260. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.js +76 -0
  261. package/features/wrappers/GetCmsEntryTargetReview/GetCmsEntryTargetReviewUseCase.js.map +1 -0
  262. package/features/wrappers/GetCmsEntryTargetReview/abstractions.d.ts +36 -0
  263. package/features/wrappers/GetCmsEntryTargetReview/abstractions.js +5 -0
  264. package/features/wrappers/GetCmsEntryTargetReview/abstractions.js.map +1 -0
  265. package/features/wrappers/GetCmsEntryTargetReview/feature.d.ts +4 -0
  266. package/features/wrappers/GetCmsEntryTargetReview/feature.js +11 -0
  267. package/features/wrappers/GetCmsEntryTargetReview/feature.js.map +1 -0
  268. package/features/wrappers/GetCmsEntryTargetReview/index.d.ts +1 -0
  269. package/features/wrappers/GetCmsEntryTargetReview/index.js +1 -0
  270. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.d.ts +13 -0
  271. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.js +34 -0
  272. package/features/wrappers/GetCmsEntryWorkflow/GetCmsEntryWorkflowUseCase.js.map +1 -0
  273. package/features/wrappers/GetCmsEntryWorkflow/abstractions.d.ts +24 -0
  274. package/features/wrappers/GetCmsEntryWorkflow/abstractions.js +5 -0
  275. package/features/wrappers/GetCmsEntryWorkflow/abstractions.js.map +1 -0
  276. package/features/wrappers/GetCmsEntryWorkflow/feature.d.ts +4 -0
  277. package/features/wrappers/GetCmsEntryWorkflow/feature.js +11 -0
  278. package/features/wrappers/GetCmsEntryWorkflow/feature.js.map +1 -0
  279. package/features/wrappers/GetCmsEntryWorkflow/index.d.ts +1 -0
  280. package/features/wrappers/GetCmsEntryWorkflow/index.js +1 -0
  281. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.d.ts +19 -0
  282. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.js +54 -0
  283. package/features/wrappers/InspectCmsEntryRouting/InspectCmsEntryRoutingUseCase.js.map +1 -0
  284. package/features/wrappers/InspectCmsEntryRouting/abstractions.d.ts +37 -0
  285. package/features/wrappers/InspectCmsEntryRouting/abstractions.js +5 -0
  286. package/features/wrappers/InspectCmsEntryRouting/abstractions.js.map +1 -0
  287. package/features/wrappers/InspectCmsEntryRouting/feature.d.ts +4 -0
  288. package/features/wrappers/InspectCmsEntryRouting/feature.js +11 -0
  289. package/features/wrappers/InspectCmsEntryRouting/feature.js.map +1 -0
  290. package/features/wrappers/InspectCmsEntryRouting/index.d.ts +1 -0
  291. package/features/wrappers/InspectCmsEntryRouting/index.js +1 -0
  292. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.d.ts +25 -0
  293. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.js +109 -0
  294. package/features/wrappers/ListCmsEntryBlockingReviews/ListCmsEntryBlockingReviewsUseCase.js.map +1 -0
  295. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.d.ts +36 -0
  296. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.js +6 -0
  297. package/features/wrappers/ListCmsEntryBlockingReviews/abstractions.js.map +1 -0
  298. package/features/wrappers/ListCmsEntryBlockingReviews/feature.d.ts +4 -0
  299. package/features/wrappers/ListCmsEntryBlockingReviews/feature.js +11 -0
  300. package/features/wrappers/ListCmsEntryBlockingReviews/feature.js.map +1 -0
  301. package/features/wrappers/ListCmsEntryBlockingReviews/index.d.ts +1 -0
  302. package/features/wrappers/ListCmsEntryBlockingReviews/index.js +1 -0
  303. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.d.ts +13 -0
  304. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.js +41 -0
  305. package/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.js.map +1 -0
  306. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.d.ts +30 -0
  307. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.js +5 -0
  308. package/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.js.map +1 -0
  309. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.d.ts +4 -0
  310. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.js +11 -0
  311. package/features/wrappers/ListCmsEntryReviewStepCandidates/feature.js.map +1 -0
  312. package/features/wrappers/ListCmsEntryReviewStepCandidates/index.d.ts +1 -0
  313. package/features/wrappers/ListCmsEntryReviewStepCandidates/index.js +1 -0
  314. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.d.ts +17 -0
  315. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.js +85 -0
  316. package/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.js.map +1 -0
  317. package/features/wrappers/ListCmsEntryReviews/abstractions.d.ts +50 -0
  318. package/features/wrappers/ListCmsEntryReviews/abstractions.js +5 -0
  319. package/features/wrappers/ListCmsEntryReviews/abstractions.js.map +1 -0
  320. package/features/wrappers/ListCmsEntryReviews/feature.d.ts +4 -0
  321. package/features/wrappers/ListCmsEntryReviews/feature.js +11 -0
  322. package/features/wrappers/ListCmsEntryReviews/feature.js.map +1 -0
  323. package/features/wrappers/ListCmsEntryReviews/index.d.ts +1 -0
  324. package/features/wrappers/ListCmsEntryReviews/index.js +1 -0
  325. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.d.ts +25 -0
  326. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.js +83 -0
  327. package/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.js.map +1 -0
  328. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.d.ts +41 -0
  329. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.js +5 -0
  330. package/features/wrappers/ListCmsEntryStepCandidates/abstractions.js.map +1 -0
  331. package/features/wrappers/ListCmsEntryStepCandidates/feature.d.ts +4 -0
  332. package/features/wrappers/ListCmsEntryStepCandidates/feature.js +11 -0
  333. package/features/wrappers/ListCmsEntryStepCandidates/feature.js.map +1 -0
  334. package/features/wrappers/ListCmsEntryStepCandidates/index.d.ts +1 -0
  335. package/features/wrappers/ListCmsEntryStepCandidates/index.js +1 -0
  336. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.d.ts +17 -0
  337. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.js +106 -0
  338. package/features/wrappers/ListCmsEntryWorkflowModels/ListCmsEntryWorkflowModelsUseCase.js.map +1 -0
  339. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.d.ts +58 -0
  340. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.js +5 -0
  341. package/features/wrappers/ListCmsEntryWorkflowModels/abstractions.js.map +1 -0
  342. package/features/wrappers/ListCmsEntryWorkflowModels/feature.d.ts +4 -0
  343. package/features/wrappers/ListCmsEntryWorkflowModels/feature.js +11 -0
  344. package/features/wrappers/ListCmsEntryWorkflowModels/feature.js.map +1 -0
  345. package/features/wrappers/ListCmsEntryWorkflowModels/index.d.ts +2 -0
  346. package/features/wrappers/ListCmsEntryWorkflowModels/index.js +1 -0
  347. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.d.ts +8 -0
  348. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.js +20 -0
  349. package/features/wrappers/ListCmsEntryWorkflowModels/modelListCursor.js.map +1 -0
  350. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.d.ts +17 -0
  351. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.js +43 -0
  352. package/features/wrappers/ListCmsEntryWorkflows/ListCmsEntryWorkflowsUseCase.js.map +1 -0
  353. package/features/wrappers/ListCmsEntryWorkflows/abstractions.d.ts +24 -0
  354. package/features/wrappers/ListCmsEntryWorkflows/abstractions.js +5 -0
  355. package/features/wrappers/ListCmsEntryWorkflows/abstractions.js.map +1 -0
  356. package/features/wrappers/ListCmsEntryWorkflows/feature.d.ts +4 -0
  357. package/features/wrappers/ListCmsEntryWorkflows/feature.js +11 -0
  358. package/features/wrappers/ListCmsEntryWorkflows/feature.js.map +1 -0
  359. package/features/wrappers/ListCmsEntryWorkflows/index.d.ts +1 -0
  360. package/features/wrappers/ListCmsEntryWorkflows/index.js +1 -0
  361. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.d.ts +13 -0
  362. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.js +40 -0
  363. package/features/wrappers/ReassignCmsEntryReviewStep/ReassignCmsEntryReviewStepUseCase.js.map +1 -0
  364. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.d.ts +32 -0
  365. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.js +5 -0
  366. package/features/wrappers/ReassignCmsEntryReviewStep/abstractions.js.map +1 -0
  367. package/features/wrappers/ReassignCmsEntryReviewStep/feature.d.ts +4 -0
  368. package/features/wrappers/ReassignCmsEntryReviewStep/feature.js +11 -0
  369. package/features/wrappers/ReassignCmsEntryReviewStep/feature.js.map +1 -0
  370. package/features/wrappers/ReassignCmsEntryReviewStep/index.d.ts +1 -0
  371. package/features/wrappers/ReassignCmsEntryReviewStep/index.js +1 -0
  372. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.d.ts +13 -0
  373. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.js +35 -0
  374. package/features/wrappers/RejectCmsEntryReviewStep/RejectCmsEntryReviewStepUseCase.js.map +1 -0
  375. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.d.ts +26 -0
  376. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.js +5 -0
  377. package/features/wrappers/RejectCmsEntryReviewStep/abstractions.js.map +1 -0
  378. package/features/wrappers/RejectCmsEntryReviewStep/feature.d.ts +4 -0
  379. package/features/wrappers/RejectCmsEntryReviewStep/feature.js +11 -0
  380. package/features/wrappers/RejectCmsEntryReviewStep/feature.js.map +1 -0
  381. package/features/wrappers/RejectCmsEntryReviewStep/index.d.ts +1 -0
  382. package/features/wrappers/RejectCmsEntryReviewStep/index.js +1 -0
  383. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.d.ts +21 -0
  384. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.js +63 -0
  385. package/features/wrappers/RequestCmsEntryReview/RequestCmsEntryReviewUseCase.js.map +1 -0
  386. package/features/wrappers/RequestCmsEntryReview/abstractions.d.ts +38 -0
  387. package/features/wrappers/RequestCmsEntryReview/abstractions.js +5 -0
  388. package/features/wrappers/RequestCmsEntryReview/abstractions.js.map +1 -0
  389. package/features/wrappers/RequestCmsEntryReview/feature.d.ts +4 -0
  390. package/features/wrappers/RequestCmsEntryReview/feature.js +11 -0
  391. package/features/wrappers/RequestCmsEntryReview/feature.js.map +1 -0
  392. package/features/wrappers/RequestCmsEntryReview/index.d.ts +1 -0
  393. package/features/wrappers/RequestCmsEntryReview/index.js +1 -0
  394. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.d.ts +13 -0
  395. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.js +39 -0
  396. package/features/wrappers/RestartCmsEntryReviewStep/RestartCmsEntryReviewStepUseCase.js.map +1 -0
  397. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.d.ts +30 -0
  398. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.js +5 -0
  399. package/features/wrappers/RestartCmsEntryReviewStep/abstractions.js.map +1 -0
  400. package/features/wrappers/RestartCmsEntryReviewStep/feature.d.ts +4 -0
  401. package/features/wrappers/RestartCmsEntryReviewStep/feature.js +11 -0
  402. package/features/wrappers/RestartCmsEntryReviewStep/feature.js.map +1 -0
  403. package/features/wrappers/RestartCmsEntryReviewStep/index.d.ts +1 -0
  404. package/features/wrappers/RestartCmsEntryReviewStep/index.js +1 -0
  405. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.d.ts +13 -0
  406. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.js +34 -0
  407. package/features/wrappers/StartCmsEntryReviewStep/StartCmsEntryReviewStepUseCase.js.map +1 -0
  408. package/features/wrappers/StartCmsEntryReviewStep/abstractions.d.ts +25 -0
  409. package/features/wrappers/StartCmsEntryReviewStep/abstractions.js +5 -0
  410. package/features/wrappers/StartCmsEntryReviewStep/abstractions.js.map +1 -0
  411. package/features/wrappers/StartCmsEntryReviewStep/feature.d.ts +4 -0
  412. package/features/wrappers/StartCmsEntryReviewStep/feature.js +11 -0
  413. package/features/wrappers/StartCmsEntryReviewStep/feature.js.map +1 -0
  414. package/features/wrappers/StartCmsEntryReviewStep/index.d.ts +1 -0
  415. package/features/wrappers/StartCmsEntryReviewStep/index.js +1 -0
  416. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.d.ts +17 -0
  417. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.js +57 -0
  418. package/features/wrappers/StoreCmsEntryWorkflow/StoreCmsEntryWorkflowUseCase.js.map +1 -0
  419. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.d.ts +32 -0
  420. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.js +5 -0
  421. package/features/wrappers/StoreCmsEntryWorkflow/abstractions.js.map +1 -0
  422. package/features/wrappers/StoreCmsEntryWorkflow/feature.d.ts +4 -0
  423. package/features/wrappers/StoreCmsEntryWorkflow/feature.js +11 -0
  424. package/features/wrappers/StoreCmsEntryWorkflow/feature.js.map +1 -0
  425. package/features/wrappers/StoreCmsEntryWorkflow/index.d.ts +1 -0
  426. package/features/wrappers/StoreCmsEntryWorkflow/index.js +1 -0
  427. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.d.ts +13 -0
  428. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.js +35 -0
  429. package/features/wrappers/TakeOverCmsEntryReviewStep/TakeOverCmsEntryReviewStepUseCase.js.map +1 -0
  430. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.d.ts +27 -0
  431. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.js +5 -0
  432. package/features/wrappers/TakeOverCmsEntryReviewStep/abstractions.js.map +1 -0
  433. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.d.ts +4 -0
  434. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.js +11 -0
  435. package/features/wrappers/TakeOverCmsEntryReviewStep/feature.js.map +1 -0
  436. package/features/wrappers/TakeOverCmsEntryReviewStep/index.d.ts +1 -0
  437. package/features/wrappers/TakeOverCmsEntryReviewStep/index.js +1 -0
  438. package/features/wrappers/feature.d.ts +9 -0
  439. package/features/wrappers/feature.js +57 -0
  440. package/features/wrappers/feature.js.map +1 -0
  441. package/features/wrappers/shared/cmsWorkflows.d.ts +6 -0
  442. package/features/wrappers/shared/cmsWorkflows.js +8 -0
  443. package/features/wrappers/shared/cmsWorkflows.js.map +1 -0
  444. package/graphql/CmsWorkflowsSchemaFactory.d.ts +14 -0
  445. package/graphql/CmsWorkflowsSchemaFactory.js +695 -0
  446. package/graphql/CmsWorkflowsSchemaFactory.js.map +1 -0
  447. package/graphql/entrySystemSchema.d.ts +5 -1
  448. package/graphql/entrySystemSchema.js +3 -2
  449. package/graphql/entrySystemSchema.js.map +1 -1
  450. package/graphql/isValidRevisionId.d.ts +6 -0
  451. package/graphql/isValidRevisionId.js +9 -0
  452. package/graphql/isValidRevisionId.js.map +1 -0
  453. package/index.d.ts +2 -1
  454. package/index.js +1 -19
  455. package/package.json +22 -16
  456. package/types.d.ts +24 -0
  457. package/types.js +0 -0
  458. package/utils/appName.d.ts +9 -5
  459. package/utils/appName.js +6 -4
  460. package/utils/appName.js.map +1 -1
  461. package/utils/folderType.d.ts +4 -0
  462. package/utils/folderType.js +9 -0
  463. package/utils/folderType.js.map +1 -0
  464. package/utils/isBindableModel.d.ts +9 -0
  465. package/utils/isBindableModel.js +8 -0
  466. package/utils/isBindableModel.js.map +1 -0
  467. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.d.ts +0 -15
  468. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.js +0 -35
  469. package/features/EntryWorkflows/decorators/CmsWorkflowStateContextProvider.js.map +0 -1
  470. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.d.ts +0 -13
  471. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.js +0 -45
  472. package/features/EntryWorkflows/decorators/CmsWorkflowStateFilter.js.map +0 -1
  473. package/features/EntryWorkflows/errors.d.ts +0 -11
  474. package/features/EntryWorkflows/errors.js +0 -12
  475. package/features/EntryWorkflows/errors.js.map +0 -1
  476. package/features/EntryWorkflows/feature.js +0 -29
  477. package/features/EntryWorkflows/feature.js.map +0 -1
  478. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.d.ts +0 -11
  479. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.js +0 -37
  480. package/features/EntryWorkflows/handlers/BlockMoveOnActiveWorkflowState.js.map +0 -1
  481. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.d.ts +0 -13
  482. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.js +0 -35
  483. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateAfterDelete.js.map +0 -1
  484. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.d.ts +0 -13
  485. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.js +0 -35
  486. package/features/EntryWorkflows/handlers/ClearEntryStateOnWorkflowStateCancel.js.map +0 -1
  487. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.d.ts +0 -11
  488. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.js +0 -26
  489. package/features/EntryWorkflows/handlers/DeleteWorkflowStateOnEntryAfterDelete.js.map +0 -1
  490. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.d.ts +0 -13
  491. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.js +0 -42
  492. package/features/EntryWorkflows/handlers/DeleteWorkflowsOnModelAfterDelete.js.map +0 -1
  493. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.d.ts +0 -13
  494. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.js +0 -37
  495. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterCreate.js.map +0 -1
  496. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.d.ts +0 -13
  497. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.js +0 -36
  498. package/features/EntryWorkflows/handlers/UpdateEntryOnWorkflowStateAfterUpdate.js.map +0 -1
  499. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.d.ts +0 -11
  500. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.js +0 -46
  501. package/features/EntryWorkflows/handlers/ValidateWorkflowStateOnEntryBeforePublish.js.map +0 -1
  502. package/features/EntryWorkflows/index.d.ts +0 -1
  503. package/features/EntryWorkflows/index.js +0 -1
  504. package/index.js.map +0 -1
  505. package/utils/modelAllowed.d.ts +0 -2
  506. package/utils/modelAllowed.js +0 -9
  507. package/utils/modelAllowed.js.map +0 -1
  508. package/utils/state.d.ts +0 -3
  509. package/utils/state.js +0 -12
  510. package/utils/state.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListCmsEntryBlockingReviewsUseCase } from "./ListCmsEntryBlockingReviewsUseCase.js";
3
+ const ListCmsEntryBlockingReviewsFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryBlockingReviews",
5
+ register (container) {
6
+ container.register(ListCmsEntryBlockingReviewsUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryBlockingReviewsFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryBlockingReviews/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryBlockingReviews/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryBlockingReviewsUseCase } from \"./ListCmsEntryBlockingReviewsUseCase.js\";\n\nexport const ListCmsEntryBlockingReviewsFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryBlockingReviews\",\n register(container) {\n container.register(ListCmsEntryBlockingReviewsUseCase);\n }\n});\n"],"names":["ListCmsEntryBlockingReviewsFeature","createFeature","container","ListCmsEntryBlockingReviewsUseCase"],"mappings":";;AAGO,MAAMA,qCAAqCC,cAAc;IAC5D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { BLOCKING_REVIEWS_MAX_IDS, ListCmsEntryBlockingReviewsUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { BLOCKING_REVIEWS_MAX_IDS, ListCmsEntryBlockingReviewsUseCase } from "./abstractions.js";
@@ -0,0 +1,13 @@
1
+ import { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
2
+ import { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
3
+ import { ListCmsEntryReviewStepCandidatesUseCase as UseCase } from "./abstractions.js";
4
+ declare class ListCmsEntryReviewStepCandidatesUseCaseImpl implements UseCase.Interface {
5
+ private guard;
6
+ private listCandidates;
7
+ constructor(guard: CmsEntryReviewGuardService.Interface, listCandidates: ListStepCandidatesUseCase.Interface);
8
+ execute(input: UseCase.Input): UseCase.Return;
9
+ }
10
+ export declare const ListCmsEntryReviewStepCandidatesUseCase: typeof ListCmsEntryReviewStepCandidatesUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListCmsEntryReviewStepCandidatesUseCase>;
12
+ };
13
+ export {};
@@ -0,0 +1,41 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
3
+ import { canReassignByPermission } from "@webiny/api-workflows/domain/review/canReassignByPermission.js";
4
+ import { redactStepCandidates } from "@webiny/api-workflows/domain/routing/redactStepCandidates.js";
5
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
6
+ import { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
7
+ import { ListCmsEntryReviewStepCandidatesUseCase } from "./abstractions.js";
8
+ const ACTION = "list the step's candidates";
9
+ class ListCmsEntryReviewStepCandidatesUseCaseImpl {
10
+ constructor(guard, listCandidates){
11
+ this.guard = guard;
12
+ this.listCandidates = listCandidates;
13
+ }
14
+ async execute(input) {
15
+ const authorized = await this.guard.authorize({
16
+ reviewId: input.reviewId,
17
+ action: ACTION
18
+ });
19
+ if (authorized.isFail()) return Result.fail(authorized.error);
20
+ const { viewer } = authorized.value;
21
+ if (!canReassignByPermission(viewer)) return Result.fail(new WorkflowsNotAuthorizedError({
22
+ action: ACTION
23
+ }));
24
+ const candidates = await this.listCandidates.execute({
25
+ reviewId: input.reviewId,
26
+ stepId: input.stepId
27
+ });
28
+ if (candidates.isFail()) return Result.fail(candidates.error);
29
+ return Result.ok(redactStepCandidates(candidates.value, viewer.permissions));
30
+ }
31
+ }
32
+ const ListCmsEntryReviewStepCandidatesUseCase_ListCmsEntryReviewStepCandidatesUseCase = ListCmsEntryReviewStepCandidatesUseCase.createImplementation({
33
+ implementation: ListCmsEntryReviewStepCandidatesUseCaseImpl,
34
+ dependencies: [
35
+ CmsEntryReviewGuardService,
36
+ ListStepCandidatesUseCase
37
+ ]
38
+ });
39
+ export { ListCmsEntryReviewStepCandidatesUseCase_ListCmsEntryReviewStepCandidatesUseCase as ListCmsEntryReviewStepCandidatesUseCase };
40
+
41
+ //# sourceMappingURL=ListCmsEntryReviewStepCandidatesUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviewStepCandidates/ListCmsEntryReviewStepCandidatesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListStepCandidatesUseCase } from \"@webiny/api-workflows/features/routing/ListStepCandidates/index.js\";\nimport { canReassignByPermission } from \"@webiny/api-workflows/domain/review/canReassignByPermission.js\";\nimport { redactStepCandidates } from \"@webiny/api-workflows/domain/routing/redactStepCandidates.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport { CmsEntryReviewGuardService } from \"../CmsEntryReviewGuardService/index.js\";\nimport { ListCmsEntryReviewStepCandidatesUseCase as UseCase } from \"./abstractions.js\";\n\nconst ACTION = \"list the step's candidates\";\n\nclass ListCmsEntryReviewStepCandidatesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private guard: CmsEntryReviewGuardService.Interface,\n private listCandidates: ListStepCandidatesUseCase.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 if (!canReassignByPermission(viewer)) {\n return Result.fail(new WorkflowsNotAuthorizedError({ action: ACTION }));\n }\n\n const candidates = await this.listCandidates.execute({\n reviewId: input.reviewId,\n stepId: input.stepId\n });\n if (candidates.isFail()) {\n return Result.fail(candidates.error);\n }\n // This path requires `reassign`, so the call never clears a reason; kept so both candidate\n // lists share one redaction rule (R120).\n return Result.ok(redactStepCandidates(candidates.value, viewer.permissions));\n }\n}\n\nexport const ListCmsEntryReviewStepCandidatesUseCase = UseCase.createImplementation({\n implementation: ListCmsEntryReviewStepCandidatesUseCaseImpl,\n dependencies: [CmsEntryReviewGuardService, ListStepCandidatesUseCase]\n});\n"],"names":["ACTION","ListCmsEntryReviewStepCandidatesUseCaseImpl","guard","listCandidates","input","authorized","Result","viewer","canReassignByPermission","WorkflowsNotAuthorizedError","candidates","redactStepCandidates","ListCmsEntryReviewStepCandidatesUseCase","UseCase","CmsEntryReviewGuardService","ListStepCandidatesUseCase"],"mappings":";;;;;;;AAQA,MAAMA,SAAS;AAEf,MAAMC;IACF,YACYC,KAA2C,EAC3CC,cAAmD,CAC7D;aAFUD,KAAK,GAALA;aACAC,cAAc,GAAdA;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;QACnC,IAAI,CAACG,wBAAwBD,SACzB,OAAOD,OAAO,IAAI,CAAC,IAAIG,4BAA4B;YAAE,QAAQT;QAAO;QAGxE,MAAMU,aAAa,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACjD,UAAUN,MAAM,QAAQ;YACxB,QAAQA,MAAM,MAAM;QACxB;QACA,IAAIM,WAAW,MAAM,IACjB,OAAOJ,OAAO,IAAI,CAACI,WAAW,KAAK;QAIvC,OAAOJ,OAAO,EAAE,CAACK,qBAAqBD,WAAW,KAAK,EAAEH,OAAO,WAAW;IAC9E;AACJ;AAEO,MAAMK,kFAA0CC,wCAAAA,oBAA4B,CAAC;IAChF,gBAAgBZ;IAChB,cAAc;QAACa;QAA4BC;KAA0B;AACzE"}
@@ -0,0 +1,30 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { StepCandidate } from "@webiny/api-workflows/domain/routing/types.js";
3
+ import type { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
5
+ import type { CmsEntryReviewGuardService } from "../CmsEntryReviewGuardService/index.js";
6
+ export interface ListCmsEntryReviewStepCandidatesInput {
7
+ reviewId: string;
8
+ stepId: string;
9
+ }
10
+ export interface IListCmsEntryReviewStepCandidatesUseCaseErrors {
11
+ guard: CmsEntryReviewGuardService.Error;
12
+ notAuthorized: WorkflowsNotAuthorizedError;
13
+ candidates: ListStepCandidatesUseCase.Error;
14
+ }
15
+ type UseCaseError = IListCmsEntryReviewStepCandidatesUseCaseErrors[keyof IListCmsEntryReviewStepCandidatesUseCaseErrors];
16
+ export interface IListCmsEntryReviewStepCandidatesUseCase {
17
+ execute(input: ListCmsEntryReviewStepCandidatesInput): Promise<Result<StepCandidate[], UseCaseError>>;
18
+ }
19
+ /**
20
+ * Who a CMS review step can be reassigned to (spec 10, D128, R120): read access to the target and
21
+ * `reassign`, as for the reassign itself (R125); the step from the review's snapshot.
22
+ */
23
+ export declare const ListCmsEntryReviewStepCandidatesUseCase: import("@webiny/di").Abstraction<IListCmsEntryReviewStepCandidatesUseCase>;
24
+ export declare namespace ListCmsEntryReviewStepCandidatesUseCase {
25
+ type Interface = IListCmsEntryReviewStepCandidatesUseCase;
26
+ type Input = ListCmsEntryReviewStepCandidatesInput;
27
+ type Error = UseCaseError;
28
+ type Return = Promise<Result<StepCandidate[], UseCaseError>>;
29
+ }
30
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListCmsEntryReviewStepCandidatesUseCase = createAbstraction("ListCmsEntryReviewStepCandidatesUseCase");
3
+ export { ListCmsEntryReviewStepCandidatesUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviewStepCandidates/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { StepCandidate } from \"@webiny/api-workflows/domain/routing/types.js\";\nimport type { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type { ListStepCandidatesUseCase } from \"@webiny/api-workflows/features/routing/ListStepCandidates/index.js\";\nimport type { CmsEntryReviewGuardService } from \"../CmsEntryReviewGuardService/index.js\";\n\nexport interface ListCmsEntryReviewStepCandidatesInput {\n reviewId: string;\n stepId: string;\n}\n\nexport interface IListCmsEntryReviewStepCandidatesUseCaseErrors {\n guard: CmsEntryReviewGuardService.Error;\n notAuthorized: WorkflowsNotAuthorizedError;\n candidates: ListStepCandidatesUseCase.Error;\n}\n\ntype UseCaseError =\n IListCmsEntryReviewStepCandidatesUseCaseErrors[keyof IListCmsEntryReviewStepCandidatesUseCaseErrors];\n\nexport interface IListCmsEntryReviewStepCandidatesUseCase {\n execute(\n input: ListCmsEntryReviewStepCandidatesInput\n ): Promise<Result<StepCandidate[], UseCaseError>>;\n}\n\n/**\n * Who a CMS review step can be reassigned to (spec 10, D128, R120): read access to the target and\n * `reassign`, as for the reassign itself (R125); the step from the review's snapshot.\n */\nexport const ListCmsEntryReviewStepCandidatesUseCase =\n createAbstraction<IListCmsEntryReviewStepCandidatesUseCase>(\n \"ListCmsEntryReviewStepCandidatesUseCase\"\n );\n\nexport namespace ListCmsEntryReviewStepCandidatesUseCase {\n export type Interface = IListCmsEntryReviewStepCandidatesUseCase;\n export type Input = ListCmsEntryReviewStepCandidatesInput;\n export type Error = UseCaseError;\n export type Return = Promise<Result<StepCandidate[], UseCaseError>>;\n}\n"],"names":["ListCmsEntryReviewStepCandidatesUseCase","createAbstraction"],"mappings":";AA8BO,MAAMA,0CACTC,kBACI"}
@@ -0,0 +1,4 @@
1
+ export declare const ListCmsEntryReviewStepCandidatesFeature: {
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 { ListCmsEntryReviewStepCandidatesUseCase } from "./ListCmsEntryReviewStepCandidatesUseCase.js";
3
+ const ListCmsEntryReviewStepCandidatesFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryReviewStepCandidates",
5
+ register (container) {
6
+ container.register(ListCmsEntryReviewStepCandidatesUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryReviewStepCandidatesFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviewStepCandidates/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviewStepCandidates/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryReviewStepCandidatesUseCase } from \"./ListCmsEntryReviewStepCandidatesUseCase.js\";\n\nexport const ListCmsEntryReviewStepCandidatesFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryReviewStepCandidates\",\n register(container) {\n container.register(ListCmsEntryReviewStepCandidatesUseCase);\n }\n});\n"],"names":["ListCmsEntryReviewStepCandidatesFeature","createFeature","container","ListCmsEntryReviewStepCandidatesUseCase"],"mappings":";;AAGO,MAAMA,0CAA0CC,cAAc;IACjE,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ListCmsEntryReviewStepCandidatesUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListCmsEntryReviewStepCandidatesUseCase } from "./abstractions.js";
@@ -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 { ListReviewsUseCase } from "@webiny/api-workflows/features/review/ListReviews/index.js";
4
+ import { CmsEntryReviewReadFilter } from "../../../features/target/CmsEntryReviewReadFilter/index.js";
5
+ import { ListCmsEntryReviewsUseCase as UseCase } from "./abstractions.js";
6
+ declare class ListCmsEntryReviewsUseCaseImpl implements UseCase.Interface {
7
+ private viewer;
8
+ private listModels;
9
+ private listReviews;
10
+ private readFilter;
11
+ constructor(viewer: CurrentReviewViewer.Interface, listModels: ListModelsUseCase.Interface, listReviews: ListReviewsUseCase.Interface, readFilter: CmsEntryReviewReadFilter.Interface);
12
+ execute(input: UseCase.Input): UseCase.Return;
13
+ }
14
+ export declare const ListCmsEntryReviewsUseCase: typeof ListCmsEntryReviewsUseCaseImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListCmsEntryReviewsUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,85 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
3
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
4
+ import { ListReviewsUseCase } from "@webiny/api-workflows/features/review/ListReviews/index.js";
5
+ import { getReviewViewerFlags } from "@webiny/api-workflows/domain/review/getReviewViewerFlags.js";
6
+ import { canReassignByPermission } from "@webiny/api-workflows/domain/review/canReassignByPermission.js";
7
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
8
+ import { ReviewPersistenceError } from "@webiny/api-workflows/domain/review/errors.js";
9
+ import { CmsEntryReviewReadFilter } from "../../target/CmsEntryReviewReadFilter/index.js";
10
+ import { isBindableModel } from "../../../utils/isBindableModel.js";
11
+ import { ListCmsEntryReviewsUseCase } from "./abstractions.js";
12
+ const MODEL_NOT_AUTHORIZED = "Cms/Model/NotAuthorized";
13
+ class ListCmsEntryReviewsUseCaseImpl {
14
+ constructor(viewer, listModels, listReviews, readFilter){
15
+ this.viewer = viewer;
16
+ this.listModels = listModels;
17
+ this.listReviews = listReviews;
18
+ this.readFilter = readFilter;
19
+ }
20
+ async execute(input) {
21
+ let viewer;
22
+ try {
23
+ viewer = await this.viewer.get();
24
+ } catch (error) {
25
+ return Result.fail(new ReviewPersistenceError(error instanceof Error ? error : new Error(String(error))));
26
+ }
27
+ if (viewer.isFail()) return Result.fail(viewer.error);
28
+ if ("failedSteps" === input.list && !canReassignByPermission(viewer.value)) return Result.fail(new WorkflowsNotAuthorizedError({
29
+ action: "list failed steps"
30
+ }));
31
+ let models;
32
+ try {
33
+ models = await this.listModels.execute({
34
+ includePrivate: false,
35
+ includePlugins: true
36
+ });
37
+ } catch (error) {
38
+ return Result.fail(new ReviewPersistenceError(error instanceof Error ? error : new Error(String(error))));
39
+ }
40
+ if (models.isFail() && models.error.code !== MODEL_NOT_AUTHORIZED) return Result.fail(new ReviewPersistenceError(models.error));
41
+ const where = input.where ?? {};
42
+ const { modelId, ...listWhere } = where;
43
+ const listedModels = (models.isOk() ? models.value : []).filter((model)=>isBindableModel(model)).filter((model)=>null == modelId || model.modelId === modelId);
44
+ const readFilter = await this.readFilter.build(listedModels);
45
+ if (readFilter.isFail()) return Result.fail(readFilter.error);
46
+ const readable = readFilter.value;
47
+ if (0 === readable.models.length && 0 === readable.ownOnlyModels.length) return Result.ok({
48
+ items: [],
49
+ meta: {
50
+ cursor: null,
51
+ hasMoreItems: false
52
+ }
53
+ });
54
+ const page = await this.listReviews.execute({
55
+ list: input.list,
56
+ viewerUserId: viewer.value.actor.id,
57
+ viewerTeamIds: viewer.value.teamIds,
58
+ readFilter: readable,
59
+ where: listWhere,
60
+ sort: input.sort ?? void 0,
61
+ limit: input.limit ?? void 0,
62
+ after: input.after ?? null
63
+ });
64
+ if (page.isFail()) return Result.fail(page.error);
65
+ return Result.ok({
66
+ items: page.value.items.map((review)=>({
67
+ review,
68
+ flags: getReviewViewerFlags(review, viewer.value)
69
+ })),
70
+ meta: page.value.meta
71
+ });
72
+ }
73
+ }
74
+ const ListCmsEntryReviewsUseCase_ListCmsEntryReviewsUseCase = ListCmsEntryReviewsUseCase.createImplementation({
75
+ implementation: ListCmsEntryReviewsUseCaseImpl,
76
+ dependencies: [
77
+ CurrentReviewViewer,
78
+ ListModelsUseCase,
79
+ ListReviewsUseCase,
80
+ CmsEntryReviewReadFilter
81
+ ]
82
+ });
83
+ export { ListCmsEntryReviewsUseCase_ListCmsEntryReviewsUseCase as ListCmsEntryReviewsUseCase };
84
+
85
+ //# sourceMappingURL=ListCmsEntryReviewsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviews/ListCmsEntryReviewsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CurrentReviewViewer } from \"@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js\";\nimport { ListReviewsUseCase } from \"@webiny/api-workflows/features/review/ListReviews/index.js\";\nimport { getReviewViewerFlags } from \"@webiny/api-workflows/domain/review/getReviewViewerFlags.js\";\nimport { canReassignByPermission } from \"@webiny/api-workflows/domain/review/canReassignByPermission.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport { ReviewPersistenceError } from \"@webiny/api-workflows/domain/review/errors.js\";\nimport { CmsEntryReviewReadFilter } from \"~/features/target/CmsEntryReviewReadFilter/index.js\";\nimport { isBindableModel } from \"~/utils/isBindableModel.js\";\nimport { ListCmsEntryReviewsUseCase as UseCase } from \"./abstractions.js\";\n\n/** `ListModelsUseCase` fails with this when the identity can read no model at all. */\nconst MODEL_NOT_AUTHORIZED = \"Cms/Model/NotAuthorized\";\n\nclass ListCmsEntryReviewsUseCaseImpl implements UseCase.Interface {\n public constructor(\n private viewer: CurrentReviewViewer.Interface,\n private listModels: ListModelsUseCase.Interface,\n private listReviews: ListReviewsUseCase.Interface,\n private readFilter: CmsEntryReviewReadFilter.Interface\n ) {}\n\n public async execute(input: UseCase.Input): UseCase.Return {\n // A failed team or permission load is a persistence error, never a rejection (R87).\n let viewer: Awaited<CurrentReviewViewer.Return>;\n try {\n viewer = await this.viewer.get();\n } catch (error) {\n return Result.fail(\n new ReviewPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n if (viewer.isFail()) {\n return Result.fail(viewer.error);\n }\n if (input.list === \"failedSteps\" && !canReassignByPermission(viewer.value)) {\n return Result.fail(new WorkflowsNotAuthorizedError({ action: \"list failed steps\" }));\n }\n\n // The models the viewer can list (R94); a viewer who can read none gets an empty page.\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 ReviewPersistenceError(\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 ReviewPersistenceError(models.error));\n }\n const where: UseCase.Where = input.where ?? {};\n const { modelId, ...listWhere } = where;\n const listedModels = (models.isOk() ? models.value : [])\n .filter(model => isBindableModel(model))\n .filter(\n model => modelId === null || modelId === undefined || model.modelId === modelId\n );\n\n // Read access as the CMS entry list applies it, once per call, as query filters (Q77).\n const readFilter = await this.readFilter.build(listedModels);\n if (readFilter.isFail()) {\n return Result.fail(readFilter.error);\n }\n const readable = readFilter.value;\n if (readable.models.length === 0 && readable.ownOnlyModels.length === 0) {\n return Result.ok({ items: [], meta: { cursor: null, hasMoreItems: false } });\n }\n\n const page = await this.listReviews.execute({\n list: input.list,\n viewerUserId: viewer.value.actor.id,\n viewerTeamIds: viewer.value.teamIds,\n readFilter: readable,\n where: listWhere,\n sort: input.sort ?? undefined,\n limit: input.limit ?? undefined,\n after: input.after ?? null\n });\n if (page.isFail()) {\n return Result.fail(page.error);\n }\n\n // A listed row is readable by construction; the flags need no target access (A43).\n return Result.ok({\n items: page.value.items.map(review => {\n return { review, flags: getReviewViewerFlags(review, viewer.value) };\n }),\n meta: page.value.meta\n });\n }\n}\n\nexport const ListCmsEntryReviewsUseCase = UseCase.createImplementation({\n implementation: ListCmsEntryReviewsUseCaseImpl,\n dependencies: [\n CurrentReviewViewer,\n ListModelsUseCase,\n ListReviewsUseCase,\n CmsEntryReviewReadFilter\n ]\n});\n"],"names":["MODEL_NOT_AUTHORIZED","ListCmsEntryReviewsUseCaseImpl","viewer","listModels","listReviews","readFilter","input","error","Result","ReviewPersistenceError","Error","String","canReassignByPermission","WorkflowsNotAuthorizedError","models","where","modelId","listWhere","listedModels","model","isBindableModel","readable","page","undefined","review","getReviewViewerFlags","ListCmsEntryReviewsUseCase","UseCase","CurrentReviewViewer","ListModelsUseCase","ListReviewsUseCase","CmsEntryReviewReadFilter"],"mappings":";;;;;;;;;;;AAaA,MAAMA,uBAAuB;AAE7B,MAAMC;IACF,YACYC,MAAqC,EACrCC,UAAuC,EACvCC,WAAyC,EACzCC,UAA8C,CACxD;aAJUH,MAAM,GAANA;aACAC,UAAU,GAAVA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QAEvD,IAAIJ;QACJ,IAAI;YACAA,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;QAClC,EAAE,OAAOK,OAAO;YACZ,OAAOC,OAAO,IAAI,CACd,IAAIC,uBACAF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ;QAG9D;QACA,IAAIL,OAAO,MAAM,IACb,OAAOM,OAAO,IAAI,CAACN,OAAO,KAAK;QAEnC,IAAII,AAAe,kBAAfA,MAAM,IAAI,IAAsB,CAACM,wBAAwBV,OAAO,KAAK,GACrE,OAAOM,OAAO,IAAI,CAAC,IAAIK,4BAA4B;YAAE,QAAQ;QAAoB;QAIrF,IAAIC;QACJ,IAAI;YACAA,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,gBAAgB;gBAAO,gBAAgB;YAAK;QACzF,EAAE,OAAOP,OAAO;YACZ,OAAOC,OAAO,IAAI,CACd,IAAIC,uBACAF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ;QAG9D;QACA,IAAIO,OAAO,MAAM,MAAMA,OAAO,KAAK,CAAC,IAAI,KAAKd,sBACzC,OAAOQ,OAAO,IAAI,CAAC,IAAIC,uBAAuBK,OAAO,KAAK;QAE9D,MAAMC,QAAuBT,MAAM,KAAK,IAAI,CAAC;QAC7C,MAAM,EAAEU,OAAO,EAAE,GAAGC,WAAW,GAAGF;QAClC,MAAMG,eAAgBJ,AAAAA,CAAAA,OAAO,IAAI,KAAKA,OAAO,KAAK,GAAG,EAAC,EACjD,MAAM,CAACK,CAAAA,QAASC,gBAAgBD,QAChC,MAAM,CACHA,CAAAA,QAASH,QAAAA,WAA6CG,MAAM,OAAO,KAAKH;QAIhF,MAAMX,aAAa,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAACa;QAC/C,IAAIb,WAAW,MAAM,IACjB,OAAOG,OAAO,IAAI,CAACH,WAAW,KAAK;QAEvC,MAAMgB,WAAWhB,WAAW,KAAK;QACjC,IAAIgB,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,IAAUA,AAAkC,MAAlCA,SAAS,aAAa,CAAC,MAAM,EAC7D,OAAOb,OAAO,EAAE,CAAC;YAAE,OAAO,EAAE;YAAE,MAAM;gBAAE,QAAQ;gBAAM,cAAc;YAAM;QAAE;QAG9E,MAAMc,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACxC,MAAMhB,MAAM,IAAI;YAChB,cAAcJ,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE;YACnC,eAAeA,OAAO,KAAK,CAAC,OAAO;YACnC,YAAYmB;YACZ,OAAOJ;YACP,MAAMX,MAAM,IAAI,IAAIiB;YACpB,OAAOjB,MAAM,KAAK,IAAIiB;YACtB,OAAOjB,MAAM,KAAK,IAAI;QAC1B;QACA,IAAIgB,KAAK,MAAM,IACX,OAAOd,OAAO,IAAI,CAACc,KAAK,KAAK;QAIjC,OAAOd,OAAO,EAAE,CAAC;YACb,OAAOc,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAACE,CAAAA,SACjB;oBAAEA;oBAAQ,OAAOC,qBAAqBD,QAAQtB,OAAO,KAAK;gBAAE;YAEvE,MAAMoB,KAAK,KAAK,CAAC,IAAI;QACzB;IACJ;AACJ;AAEO,MAAMI,wDAA6BC,2BAAAA,oBAA4B,CAAC;IACnE,gBAAgB1B;IAChB,cAAc;QACV2B;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,50 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { ReviewListKind, ReviewListMeta, ReviewListSort, ReviewListWhere, ReviewWithViewerFlags } from "@webiny/api-workflows/domain/review/types.js";
3
+ import type { WorkflowsNotAuthenticatedError, WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { ReviewPersistenceError } from "@webiny/api-workflows/domain/review/errors.js";
5
+ import type { ListReviewsUseCase } from "@webiny/api-workflows/features/review/ListReviews/index.js";
6
+ export interface ListCmsEntryReviewsWhere extends ReviewListWhere {
7
+ /** Only the reviews of this model (the model id, without `cms.`, R94). */
8
+ modelId?: string | null;
9
+ }
10
+ export interface ListCmsEntryReviewsInput {
11
+ list: ReviewListKind;
12
+ where?: ListCmsEntryReviewsWhere | null;
13
+ /** Default per list (D119). */
14
+ sort?: ReviewListSort | null;
15
+ /** Default 20, max 100 (R92). */
16
+ limit?: number | null;
17
+ /** `meta.cursor` of the previous page. */
18
+ after?: string | null;
19
+ }
20
+ export interface ListCmsEntryReviewsResult {
21
+ items: ReviewWithViewerFlags[];
22
+ meta: ReviewListMeta;
23
+ }
24
+ export interface IListCmsEntryReviewsUseCaseErrors {
25
+ notAuthenticated: WorkflowsNotAuthenticatedError;
26
+ notAuthorized: WorkflowsNotAuthorizedError;
27
+ persistence: ReviewPersistenceError;
28
+ list: ListReviewsUseCase.Error;
29
+ }
30
+ type UseCaseError = IListCmsEntryReviewsUseCaseErrors[keyof IListCmsEntryReviewsUseCaseErrors];
31
+ export interface IListCmsEntryReviewsUseCase {
32
+ execute(input: ListCmsEntryReviewsInput): Promise<Result<ListCmsEntryReviewsResult, UseCaseError>>;
33
+ }
34
+ /**
35
+ * One page of a review list of the Headless CMS (spec 11, R94): only reviews of bindable models the
36
+ * viewer can read, and only rows whose entry the CMS entry list would show the viewer (D76, Q77):
37
+ * own entries only with an own-only permission, none in a folder the viewer cannot read. A custom
38
+ * per-entry read check added with a decorator is not applied, as CMS lists do not apply it either.
39
+ * Failed steps need `reassign` (D112, R95). Each row carries the viewer's flags (A43).
40
+ */
41
+ export declare const ListCmsEntryReviewsUseCase: import("@webiny/di").Abstraction<IListCmsEntryReviewsUseCase>;
42
+ export declare namespace ListCmsEntryReviewsUseCase {
43
+ type Interface = IListCmsEntryReviewsUseCase;
44
+ type Input = ListCmsEntryReviewsInput;
45
+ type Where = ListCmsEntryReviewsWhere;
46
+ type Value = ListCmsEntryReviewsResult;
47
+ type Error = UseCaseError;
48
+ type Return = Promise<Result<ListCmsEntryReviewsResult, UseCaseError>>;
49
+ }
50
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListCmsEntryReviewsUseCase = createAbstraction("ListCmsEntryReviewsUseCase");
3
+ export { ListCmsEntryReviewsUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviews/abstractions.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviews/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type {\n ReviewListKind,\n ReviewListMeta,\n ReviewListSort,\n ReviewListWhere,\n ReviewWithViewerFlags\n} from \"@webiny/api-workflows/domain/review/types.js\";\nimport type {\n WorkflowsNotAuthenticatedError,\n WorkflowsNotAuthorizedError\n} from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type { ReviewPersistenceError } from \"@webiny/api-workflows/domain/review/errors.js\";\nimport type { ListReviewsUseCase } from \"@webiny/api-workflows/features/review/ListReviews/index.js\";\n\nexport interface ListCmsEntryReviewsWhere extends ReviewListWhere {\n /** Only the reviews of this model (the model id, without `cms.`, R94). */\n modelId?: string | null;\n}\n\nexport interface ListCmsEntryReviewsInput {\n list: ReviewListKind;\n where?: ListCmsEntryReviewsWhere | null;\n /** Default per list (D119). */\n sort?: ReviewListSort | null;\n /** Default 20, max 100 (R92). */\n limit?: number | null;\n /** `meta.cursor` of the previous page. */\n after?: string | null;\n}\n\nexport interface ListCmsEntryReviewsResult {\n items: ReviewWithViewerFlags[];\n meta: ReviewListMeta;\n}\n\nexport interface IListCmsEntryReviewsUseCaseErrors {\n notAuthenticated: WorkflowsNotAuthenticatedError;\n notAuthorized: WorkflowsNotAuthorizedError;\n persistence: ReviewPersistenceError;\n list: ListReviewsUseCase.Error;\n}\n\ntype UseCaseError = IListCmsEntryReviewsUseCaseErrors[keyof IListCmsEntryReviewsUseCaseErrors];\n\nexport interface IListCmsEntryReviewsUseCase {\n execute(\n input: ListCmsEntryReviewsInput\n ): Promise<Result<ListCmsEntryReviewsResult, UseCaseError>>;\n}\n\n/**\n * One page of a review list of the Headless CMS (spec 11, R94): only reviews of bindable models the\n * viewer can read, and only rows whose entry the CMS entry list would show the viewer (D76, Q77):\n * own entries only with an own-only permission, none in a folder the viewer cannot read. A custom\n * per-entry read check added with a decorator is not applied, as CMS lists do not apply it either.\n * Failed steps need `reassign` (D112, R95). Each row carries the viewer's flags (A43).\n */\nexport const ListCmsEntryReviewsUseCase = createAbstraction<IListCmsEntryReviewsUseCase>(\n \"ListCmsEntryReviewsUseCase\"\n);\n\nexport namespace ListCmsEntryReviewsUseCase {\n export type Interface = IListCmsEntryReviewsUseCase;\n export type Input = ListCmsEntryReviewsInput;\n export type Where = ListCmsEntryReviewsWhere;\n export type Value = ListCmsEntryReviewsResult;\n export type Error = UseCaseError;\n export type Return = Promise<Result<ListCmsEntryReviewsResult, UseCaseError>>;\n}\n"],"names":["ListCmsEntryReviewsUseCase","createAbstraction"],"mappings":";AA0DO,MAAMA,6BAA6BC,kBACtC"}
@@ -0,0 +1,4 @@
1
+ export declare const ListCmsEntryReviewsFeature: {
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 { ListCmsEntryReviewsUseCase } from "./ListCmsEntryReviewsUseCase.js";
3
+ const ListCmsEntryReviewsFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryReviews",
5
+ register (container) {
6
+ container.register(ListCmsEntryReviewsUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryReviewsFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryReviews/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryReviews/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryReviewsUseCase } from \"./ListCmsEntryReviewsUseCase.js\";\n\nexport const ListCmsEntryReviewsFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryReviews\",\n register(container) {\n container.register(ListCmsEntryReviewsUseCase);\n }\n});\n"],"names":["ListCmsEntryReviewsFeature","createFeature","container","ListCmsEntryReviewsUseCase"],"mappings":";;AAGO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ListCmsEntryReviewsUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListCmsEntryReviewsUseCase } from "./abstractions.js";
@@ -0,0 +1,25 @@
1
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
2
+ import { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
3
+ import { GetWorkflowUseCase } from "@webiny/api-workflows/features/workflow/GetWorkflow/index.js";
4
+ import { CmsEntryTargetReader } from "../../../features/target/CmsEntryTargetReader/index.js";
5
+ import { CmsEntryAccess } from "../../../features/target/CmsEntryAccess/index.js";
6
+ import { ListCmsEntryStepCandidatesUseCase as UseCase } from "./abstractions.js";
7
+ /**
8
+ * The target checks are `RequestCmsEntryReviewUseCase`'s: a target of another app or one the
9
+ * viewer cannot see is not found (R46), a visible target without write access is not authorized.
10
+ * A workflow of another app is not found either (R128), as `GetCmsEntryWorkflowUseCase` answers.
11
+ * The viewer is the requester the engine leaves out of the list.
12
+ */
13
+ declare class ListCmsEntryStepCandidatesUseCaseImpl implements UseCase.Interface {
14
+ private viewer;
15
+ private targets;
16
+ private access;
17
+ private getWorkflow;
18
+ private listCandidates;
19
+ constructor(viewer: CurrentReviewViewer.Interface, targets: CmsEntryTargetReader.Interface, access: CmsEntryAccess.Interface, getWorkflow: GetWorkflowUseCase.Interface, listCandidates: ListStepCandidatesUseCase.Interface);
20
+ execute(input: UseCase.Input): UseCase.Return;
21
+ }
22
+ export declare const ListCmsEntryStepCandidatesUseCase: typeof ListCmsEntryStepCandidatesUseCaseImpl & {
23
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListCmsEntryStepCandidatesUseCase>;
24
+ };
25
+ export {};
@@ -0,0 +1,83 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
3
+ import { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
4
+ import { GetWorkflowUseCase } from "@webiny/api-workflows/features/workflow/GetWorkflow/index.js";
5
+ import { redactStepCandidates } from "@webiny/api-workflows/domain/routing/redactStepCandidates.js";
6
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
7
+ import { WorkflowNotFoundError } from "@webiny/api-workflows/domain/workflow/errors.js";
8
+ import { ReviewPersistenceError, ReviewTargetNotFoundError } from "@webiny/api-workflows/domain/review/errors.js";
9
+ import { CmsEntryTargetReader } from "../../target/CmsEntryTargetReader/index.js";
10
+ import { CmsEntryAccess } from "../../target/CmsEntryAccess/index.js";
11
+ import { isCmsNamespace } from "../../../utils/appName.js";
12
+ import { isCmsWorkflow } from "../shared/cmsWorkflows.js";
13
+ import { ListCmsEntryStepCandidatesUseCase } from "./abstractions.js";
14
+ class ListCmsEntryStepCandidatesUseCaseImpl {
15
+ constructor(viewer, targets, access, getWorkflow, listCandidates){
16
+ this.viewer = viewer;
17
+ this.targets = targets;
18
+ this.access = access;
19
+ this.getWorkflow = getWorkflow;
20
+ this.listCandidates = listCandidates;
21
+ }
22
+ async execute(input) {
23
+ let viewer;
24
+ try {
25
+ viewer = await this.viewer.get();
26
+ } catch (error) {
27
+ return Result.fail(new ReviewPersistenceError(error instanceof Error ? error : new Error(String(error))));
28
+ }
29
+ if (viewer.isFail()) return Result.fail(viewer.error);
30
+ let target = null;
31
+ if (isCmsNamespace(input.model)) try {
32
+ target = await this.targets.read({
33
+ model: input.model,
34
+ targetRevisionId: input.targetRevisionId
35
+ });
36
+ } catch (error) {
37
+ return Result.fail(new ReviewPersistenceError(error instanceof Error ? error : new Error(String(error))));
38
+ }
39
+ if (!target || target.entry.entryId !== input.targetId) return Result.fail(new ReviewTargetNotFoundError({
40
+ model: input.model,
41
+ targetRevisionId: input.targetRevisionId
42
+ }));
43
+ let canWrite;
44
+ try {
45
+ canWrite = await this.access.canWrite(target);
46
+ } catch (error) {
47
+ return Result.fail(new ReviewPersistenceError(error instanceof Error ? error : new Error(String(error))));
48
+ }
49
+ if (!canWrite) return Result.fail(new WorkflowsNotAuthorizedError({
50
+ action: "list the step's candidates"
51
+ }));
52
+ const workflow = await this.getWorkflow.execute({
53
+ id: input.workflowId
54
+ });
55
+ if (workflow.isFail()) return Result.fail(workflow.error);
56
+ if (!isCmsWorkflow(workflow.value)) return Result.fail(new WorkflowNotFoundError({
57
+ id: input.workflowId
58
+ }));
59
+ const candidates = await this.listCandidates.execute({
60
+ workflowId: input.workflowId,
61
+ stepId: input.stepId,
62
+ model: input.model,
63
+ targetId: input.targetId,
64
+ targetRevisionId: input.targetRevisionId,
65
+ requesterId: viewer.value.actor.id
66
+ });
67
+ if (candidates.isFail()) return Result.fail(candidates.error);
68
+ return Result.ok(redactStepCandidates(candidates.value, viewer.value.permissions));
69
+ }
70
+ }
71
+ const ListCmsEntryStepCandidatesUseCase_ListCmsEntryStepCandidatesUseCase = ListCmsEntryStepCandidatesUseCase.createImplementation({
72
+ implementation: ListCmsEntryStepCandidatesUseCaseImpl,
73
+ dependencies: [
74
+ CurrentReviewViewer,
75
+ CmsEntryTargetReader,
76
+ CmsEntryAccess,
77
+ GetWorkflowUseCase,
78
+ ListStepCandidatesUseCase
79
+ ]
80
+ });
81
+ export { ListCmsEntryStepCandidatesUseCase_ListCmsEntryStepCandidatesUseCase as ListCmsEntryStepCandidatesUseCase };
82
+
83
+ //# sourceMappingURL=ListCmsEntryStepCandidatesUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.js","sources":["../../../../src/features/wrappers/ListCmsEntryStepCandidates/ListCmsEntryStepCandidatesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CurrentReviewViewer } from \"@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js\";\nimport { ListStepCandidatesUseCase } from \"@webiny/api-workflows/features/routing/ListStepCandidates/index.js\";\nimport { GetWorkflowUseCase } from \"@webiny/api-workflows/features/workflow/GetWorkflow/index.js\";\nimport { redactStepCandidates } from \"@webiny/api-workflows/domain/routing/redactStepCandidates.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport { WorkflowNotFoundError } from \"@webiny/api-workflows/domain/workflow/errors.js\";\nimport {\n ReviewPersistenceError,\n ReviewTargetNotFoundError\n} from \"@webiny/api-workflows/domain/review/errors.js\";\nimport { CmsEntryTargetReader } from \"~/features/target/CmsEntryTargetReader/index.js\";\nimport { CmsEntryAccess } from \"~/features/target/CmsEntryAccess/index.js\";\nimport { isCmsNamespace } from \"~/utils/appName.js\";\nimport { isCmsWorkflow } from \"../shared/cmsWorkflows.js\";\nimport { ListCmsEntryStepCandidatesUseCase as UseCase } from \"./abstractions.js\";\n\n/**\n * The target checks are `RequestCmsEntryReviewUseCase`'s: a target of another app or one the\n * viewer cannot see is not found (R46), a visible target without write access is not authorized.\n * A workflow of another app is not found either (R128), as `GetCmsEntryWorkflowUseCase` answers.\n * The viewer is the requester the engine leaves out of the list.\n */\nclass ListCmsEntryStepCandidatesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private viewer: CurrentReviewViewer.Interface,\n private targets: CmsEntryTargetReader.Interface,\n private access: CmsEntryAccess.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private listCandidates: ListStepCandidatesUseCase.Interface\n ) {}\n\n public async execute(input: UseCase.Input): UseCase.Return {\n // A failed team or permission load is a persistence error, never a rejection (R87).\n let viewer: Awaited<CurrentReviewViewer.Return>;\n try {\n viewer = await this.viewer.get();\n } catch (error) {\n return Result.fail(\n new ReviewPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n if (viewer.isFail()) {\n return Result.fail(viewer.error);\n }\n\n let target: CmsEntryTargetReader.Target | null = null;\n if (isCmsNamespace(input.model)) {\n try {\n target = await this.targets.read({\n model: input.model,\n targetRevisionId: input.targetRevisionId\n });\n } catch (error) {\n return Result.fail(\n new ReviewPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n }\n if (!target || target.entry.entryId !== input.targetId) {\n return Result.fail(\n new ReviewTargetNotFoundError({\n model: input.model,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n let canWrite: boolean;\n try {\n canWrite = await this.access.canWrite(target);\n } catch (error) {\n return Result.fail(\n new ReviewPersistenceError(\n error instanceof Error ? error : new Error(String(error))\n )\n );\n }\n if (!canWrite) {\n return Result.fail(\n new WorkflowsNotAuthorizedError({ action: \"list the step's candidates\" })\n );\n }\n\n const workflow = await this.getWorkflow.execute({ id: input.workflowId });\n if (workflow.isFail()) {\n return Result.fail(workflow.error);\n }\n // R128, R46: another app's workflow is not found here; its name never leaks.\n if (!isCmsWorkflow(workflow.value)) {\n return Result.fail(new WorkflowNotFoundError({ id: input.workflowId }));\n }\n\n const candidates = await this.listCandidates.execute({\n workflowId: input.workflowId,\n stepId: input.stepId,\n model: input.model,\n targetId: input.targetId,\n targetRevisionId: input.targetRevisionId,\n requesterId: viewer.value.actor.id\n });\n if (candidates.isFail()) {\n return Result.fail(candidates.error);\n }\n return Result.ok(redactStepCandidates(candidates.value, viewer.value.permissions));\n }\n}\n\nexport const ListCmsEntryStepCandidatesUseCase = UseCase.createImplementation({\n implementation: ListCmsEntryStepCandidatesUseCaseImpl,\n dependencies: [\n CurrentReviewViewer,\n CmsEntryTargetReader,\n CmsEntryAccess,\n GetWorkflowUseCase,\n ListStepCandidatesUseCase\n ]\n});\n"],"names":["ListCmsEntryStepCandidatesUseCaseImpl","viewer","targets","access","getWorkflow","listCandidates","input","error","Result","ReviewPersistenceError","Error","String","target","isCmsNamespace","ReviewTargetNotFoundError","canWrite","WorkflowsNotAuthorizedError","workflow","isCmsWorkflow","WorkflowNotFoundError","candidates","redactStepCandidates","ListCmsEntryStepCandidatesUseCase","UseCase","CurrentReviewViewer","CmsEntryTargetReader","CmsEntryAccess","GetWorkflowUseCase","ListStepCandidatesUseCase"],"mappings":";;;;;;;;;;;;;AAuBA,MAAMA;IACF,YACYC,MAAqC,EACrCC,OAAuC,EACvCC,MAAgC,EAChCC,WAAyC,EACzCC,cAAmD,CAC7D;aALUJ,MAAM,GAANA;aACAC,OAAO,GAAPA;aACAC,MAAM,GAANA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QAEvD,IAAIL;QACJ,IAAI;YACAA,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;QAClC,EAAE,OAAOM,OAAO;YACZ,OAAOC,OAAO,IAAI,CACd,IAAIC,uBACAF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ;QAG9D;QACA,IAAIN,OAAO,MAAM,IACb,OAAOO,OAAO,IAAI,CAACP,OAAO,KAAK;QAGnC,IAAIW,SAA6C;QACjD,IAAIC,eAAeP,MAAM,KAAK,GAC1B,IAAI;YACAM,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,OAAON,MAAM,KAAK;gBAClB,kBAAkBA,MAAM,gBAAgB;YAC5C;QACJ,EAAE,OAAOC,OAAO;YACZ,OAAOC,OAAO,IAAI,CACd,IAAIC,uBACAF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ;QAG9D;QAEJ,IAAI,CAACK,UAAUA,OAAO,KAAK,CAAC,OAAO,KAAKN,MAAM,QAAQ,EAClD,OAAOE,OAAO,IAAI,CACd,IAAIM,0BAA0B;YAC1B,OAAOR,MAAM,KAAK;YAClB,kBAAkBA,MAAM,gBAAgB;QAC5C;QAGR,IAAIS;QACJ,IAAI;YACAA,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACH;QAC1C,EAAE,OAAOL,OAAO;YACZ,OAAOC,OAAO,IAAI,CACd,IAAIC,uBACAF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ;QAG9D;QACA,IAAI,CAACQ,UACD,OAAOP,OAAO,IAAI,CACd,IAAIQ,4BAA4B;YAAE,QAAQ;QAA6B;QAI/E,MAAMC,WAAW,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,IAAIX,MAAM,UAAU;QAAC;QACvE,IAAIW,SAAS,MAAM,IACf,OAAOT,OAAO,IAAI,CAACS,SAAS,KAAK;QAGrC,IAAI,CAACC,cAAcD,SAAS,KAAK,GAC7B,OAAOT,OAAO,IAAI,CAAC,IAAIW,sBAAsB;YAAE,IAAIb,MAAM,UAAU;QAAC;QAGxE,MAAMc,aAAa,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACjD,YAAYd,MAAM,UAAU;YAC5B,QAAQA,MAAM,MAAM;YACpB,OAAOA,MAAM,KAAK;YAClB,UAAUA,MAAM,QAAQ;YACxB,kBAAkBA,MAAM,gBAAgB;YACxC,aAAaL,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE;QACtC;QACA,IAAImB,WAAW,MAAM,IACjB,OAAOZ,OAAO,IAAI,CAACY,WAAW,KAAK;QAEvC,OAAOZ,OAAO,EAAE,CAACa,qBAAqBD,WAAW,KAAK,EAAEnB,OAAO,KAAK,CAAC,WAAW;IACpF;AACJ;AAEO,MAAMqB,sEAAoCC,kCAAAA,oBAA4B,CAAC;IAC1E,gBAAgBvB;IAChB,cAAc;QACVwB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,41 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { StepCandidate } from "@webiny/api-workflows/domain/routing/types.js";
3
+ import type { WorkflowsNotAuthenticatedError, WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { ReviewPersistenceError, ReviewTargetNotFoundError } from "@webiny/api-workflows/domain/review/errors.js";
5
+ import type { ListStepCandidatesUseCase } from "@webiny/api-workflows/features/routing/ListStepCandidates/index.js";
6
+ import type { GetWorkflowUseCase } from "@webiny/api-workflows/features/workflow/GetWorkflow/index.js";
7
+ import type { WorkflowNotFoundError } from "@webiny/api-workflows/domain/workflow/errors.js";
8
+ export interface ListCmsEntryStepCandidatesInput {
9
+ workflowId: string;
10
+ stepId: string;
11
+ /** Namespace id, `cms.<modelId>`. */
12
+ model: string;
13
+ targetId: string;
14
+ targetRevisionId: string;
15
+ }
16
+ export interface IListCmsEntryStepCandidatesUseCaseErrors {
17
+ notAuthenticated: WorkflowsNotAuthenticatedError;
18
+ notAuthorized: WorkflowsNotAuthorizedError;
19
+ targetNotFound: ReviewTargetNotFoundError;
20
+ persistence: ReviewPersistenceError;
21
+ workflow: GetWorkflowUseCase.Error;
22
+ workflowNotFound: WorkflowNotFoundError;
23
+ candidates: ListStepCandidatesUseCase.Error;
24
+ }
25
+ type UseCaseError = IListCmsEntryStepCandidatesUseCaseErrors[keyof IListCmsEntryStepCandidatesUseCaseErrors];
26
+ export interface IListCmsEntryStepCandidatesUseCase {
27
+ execute(input: ListCmsEntryStepCandidatesInput): Promise<Result<StepCandidate[], UseCaseError>>;
28
+ }
29
+ /**
30
+ * Who could take a step of a review the viewer is about to request (spec 10, D128, R120): write
31
+ * access to the revision, as for the request itself (D77); a workflow of another app is not found
32
+ * (R46, R128); exclusion reasons only for `editor` / `reassign` (D97).
33
+ */
34
+ export declare const ListCmsEntryStepCandidatesUseCase: import("@webiny/di").Abstraction<IListCmsEntryStepCandidatesUseCase>;
35
+ export declare namespace ListCmsEntryStepCandidatesUseCase {
36
+ type Interface = IListCmsEntryStepCandidatesUseCase;
37
+ type Input = ListCmsEntryStepCandidatesInput;
38
+ type Error = UseCaseError;
39
+ type Return = Promise<Result<StepCandidate[], UseCaseError>>;
40
+ }
41
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListCmsEntryStepCandidatesUseCase = createAbstraction("ListCmsEntryStepCandidatesUseCase");
3
+ export { ListCmsEntryStepCandidatesUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryStepCandidates/abstractions.js","sources":["../../../../src/features/wrappers/ListCmsEntryStepCandidates/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { StepCandidate } from \"@webiny/api-workflows/domain/routing/types.js\";\nimport type {\n WorkflowsNotAuthenticatedError,\n WorkflowsNotAuthorizedError\n} from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type {\n ReviewPersistenceError,\n ReviewTargetNotFoundError\n} from \"@webiny/api-workflows/domain/review/errors.js\";\nimport type { ListStepCandidatesUseCase } from \"@webiny/api-workflows/features/routing/ListStepCandidates/index.js\";\nimport type { GetWorkflowUseCase } from \"@webiny/api-workflows/features/workflow/GetWorkflow/index.js\";\nimport type { WorkflowNotFoundError } from \"@webiny/api-workflows/domain/workflow/errors.js\";\n\nexport interface ListCmsEntryStepCandidatesInput {\n workflowId: string;\n stepId: string;\n /** Namespace id, `cms.<modelId>`. */\n model: string;\n targetId: string;\n targetRevisionId: string;\n}\n\nexport interface IListCmsEntryStepCandidatesUseCaseErrors {\n notAuthenticated: WorkflowsNotAuthenticatedError;\n notAuthorized: WorkflowsNotAuthorizedError;\n targetNotFound: ReviewTargetNotFoundError;\n persistence: ReviewPersistenceError;\n workflow: GetWorkflowUseCase.Error;\n workflowNotFound: WorkflowNotFoundError;\n candidates: ListStepCandidatesUseCase.Error;\n}\n\ntype UseCaseError =\n IListCmsEntryStepCandidatesUseCaseErrors[keyof IListCmsEntryStepCandidatesUseCaseErrors];\n\nexport interface IListCmsEntryStepCandidatesUseCase {\n execute(input: ListCmsEntryStepCandidatesInput): Promise<Result<StepCandidate[], UseCaseError>>;\n}\n\n/**\n * Who could take a step of a review the viewer is about to request (spec 10, D128, R120): write\n * access to the revision, as for the request itself (D77); a workflow of another app is not found\n * (R46, R128); exclusion reasons only for `editor` / `reassign` (D97).\n */\nexport const ListCmsEntryStepCandidatesUseCase =\n createAbstraction<IListCmsEntryStepCandidatesUseCase>(\"ListCmsEntryStepCandidatesUseCase\");\n\nexport namespace ListCmsEntryStepCandidatesUseCase {\n export type Interface = IListCmsEntryStepCandidatesUseCase;\n export type Input = ListCmsEntryStepCandidatesInput;\n export type Error = UseCaseError;\n export type Return = Promise<Result<StepCandidate[], UseCaseError>>;\n}\n"],"names":["ListCmsEntryStepCandidatesUseCase","createAbstraction"],"mappings":";AA6CO,MAAMA,oCACTC,kBAAsD"}
@@ -0,0 +1,4 @@
1
+ export declare const ListCmsEntryStepCandidatesFeature: {
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 { ListCmsEntryStepCandidatesUseCase } from "./ListCmsEntryStepCandidatesUseCase.js";
3
+ const ListCmsEntryStepCandidatesFeature = createFeature({
4
+ name: "CmsWorkflows/ListCmsEntryStepCandidates",
5
+ register (container) {
6
+ container.register(ListCmsEntryStepCandidatesUseCase);
7
+ }
8
+ });
9
+ export { ListCmsEntryStepCandidatesFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ListCmsEntryStepCandidates/feature.js","sources":["../../../../src/features/wrappers/ListCmsEntryStepCandidates/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListCmsEntryStepCandidatesUseCase } from \"./ListCmsEntryStepCandidatesUseCase.js\";\n\nexport const ListCmsEntryStepCandidatesFeature = createFeature({\n name: \"CmsWorkflows/ListCmsEntryStepCandidates\",\n register(container) {\n container.register(ListCmsEntryStepCandidatesUseCase);\n }\n});\n"],"names":["ListCmsEntryStepCandidatesFeature","createFeature","container","ListCmsEntryStepCandidatesUseCase"],"mappings":";;AAGO,MAAMA,oCAAoCC,cAAc;IAC3D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ListCmsEntryStepCandidatesUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListCmsEntryStepCandidatesUseCase } from "./abstractions.js";