@webiny/api-website-builder-workflows 0.0.0-unstable.0156a4c312

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/WebsiteBuilderPageSchemaFactory.d.ts +15 -0
  4. package/WebsiteBuilderPageSchemaFactory.js +30 -0
  5. package/WebsiteBuilderPageSchemaFactory.js.map +1 -0
  6. package/WebsiteBuilderWorkflowsFeature.d.ts +5 -0
  7. package/WebsiteBuilderWorkflowsFeature.js +21 -0
  8. package/WebsiteBuilderWorkflowsFeature.js.map +1 -0
  9. package/constants.d.ts +4 -0
  10. package/constants.js +5 -0
  11. package/constants.js.map +1 -0
  12. package/features/hooks/BlockPageDeleteWhileInReview.d.ts +20 -0
  13. package/features/hooks/BlockPageDeleteWhileInReview.js +43 -0
  14. package/features/hooks/BlockPageDeleteWhileInReview.js.map +1 -0
  15. package/features/hooks/BlockPageFolderChangeWhileInReview.d.ts +19 -0
  16. package/features/hooks/BlockPageFolderChangeWhileInReview.js +27 -0
  17. package/features/hooks/BlockPageFolderChangeWhileInReview.js.map +1 -0
  18. package/features/hooks/BlockPageMoveWhileInReview.d.ts +18 -0
  19. package/features/hooks/BlockPageMoveWhileInReview.js +44 -0
  20. package/features/hooks/BlockPageMoveWhileInReview.js.map +1 -0
  21. package/features/hooks/BlockPageRevisionDeleteWhileInReview.d.ts +13 -0
  22. package/features/hooks/BlockPageRevisionDeleteWhileInReview.js +44 -0
  23. package/features/hooks/BlockPageRevisionDeleteWhileInReview.js.map +1 -0
  24. package/features/hooks/BlockPageTrashWhileInReview.d.ts +21 -0
  25. package/features/hooks/BlockPageTrashWhileInReview.js +43 -0
  26. package/features/hooks/BlockPageTrashWhileInReview.js.map +1 -0
  27. package/features/hooks/BlockPageUpdateWhileInReview.d.ts +20 -0
  28. package/features/hooks/BlockPageUpdateWhileInReview.js +25 -0
  29. package/features/hooks/BlockPageUpdateWhileInReview.js.map +1 -0
  30. package/features/hooks/DeleteReviewsOnPageDelete.d.ts +20 -0
  31. package/features/hooks/DeleteReviewsOnPageDelete.js +43 -0
  32. package/features/hooks/DeleteReviewsOnPageDelete.js.map +1 -0
  33. package/features/hooks/DeleteReviewsOnPageRevisionDelete.d.ts +13 -0
  34. package/features/hooks/DeleteReviewsOnPageRevisionDelete.js +44 -0
  35. package/features/hooks/DeleteReviewsOnPageRevisionDelete.js.map +1 -0
  36. package/features/hooks/NullReviewStateOnGraduatedVariantDecorator.d.ts +27 -0
  37. package/features/hooks/NullReviewStateOnGraduatedVariantDecorator.js +53 -0
  38. package/features/hooks/NullReviewStateOnGraduatedVariantDecorator.js.map +1 -0
  39. package/features/hooks/NullReviewStateOnPageRevisionCreate.d.ts +26 -0
  40. package/features/hooks/NullReviewStateOnPageRevisionCreate.js +43 -0
  41. package/features/hooks/NullReviewStateOnPageRevisionCreate.js.map +1 -0
  42. package/features/hooks/RequireApprovedReviewOnPagePublish.d.ts +20 -0
  43. package/features/hooks/RequireApprovedReviewOnPagePublish.js +42 -0
  44. package/features/hooks/RequireApprovedReviewOnPagePublish.js.map +1 -0
  45. package/features/hooks/feature.d.ts +9 -0
  46. package/features/hooks/feature.js +31 -0
  47. package/features/hooks/feature.js.map +1 -0
  48. package/features/target/WbPageAccess/WbPageAccess.d.ts +27 -0
  49. package/features/target/WbPageAccess/WbPageAccess.js +84 -0
  50. package/features/target/WbPageAccess/WbPageAccess.js.map +1 -0
  51. package/features/target/WbPageAccess/abstractions.d.ts +39 -0
  52. package/features/target/WbPageAccess/abstractions.js +5 -0
  53. package/features/target/WbPageAccess/abstractions.js.map +1 -0
  54. package/features/target/WbPageAccess/index.d.ts +1 -0
  55. package/features/target/WbPageAccess/index.js +1 -0
  56. package/features/target/WbPageDeniedFolders/WbPageDeniedFolders.d.ts +20 -0
  57. package/features/target/WbPageDeniedFolders/WbPageDeniedFolders.js +55 -0
  58. package/features/target/WbPageDeniedFolders/WbPageDeniedFolders.js.map +1 -0
  59. package/features/target/WbPageDeniedFolders/abstractions.d.ts +23 -0
  60. package/features/target/WbPageDeniedFolders/abstractions.js +5 -0
  61. package/features/target/WbPageDeniedFolders/abstractions.js.map +1 -0
  62. package/features/target/WbPageDeniedFolders/index.d.ts +1 -0
  63. package/features/target/WbPageDeniedFolders/index.js +1 -0
  64. package/features/target/WbPageFolderExistsService/WbPageFolderExistsService.d.ts +15 -0
  65. package/features/target/WbPageFolderExistsService/WbPageFolderExistsService.js +27 -0
  66. package/features/target/WbPageFolderExistsService/WbPageFolderExistsService.js.map +1 -0
  67. package/features/target/WbPageFolderExistsService/abstractions.d.ts +16 -0
  68. package/features/target/WbPageFolderExistsService/abstractions.js +5 -0
  69. package/features/target/WbPageFolderExistsService/abstractions.js.map +1 -0
  70. package/features/target/WbPageFolderExistsService/index.d.ts +1 -0
  71. package/features/target/WbPageFolderExistsService/index.js +1 -0
  72. package/features/target/WbPageReviewNamespace.d.ts +14 -0
  73. package/features/target/WbPageReviewNamespace.js +15 -0
  74. package/features/target/WbPageReviewNamespace.js.map +1 -0
  75. package/features/target/WbPageReviewReadFilter/WbPageReviewReadFilter.d.ts +17 -0
  76. package/features/target/WbPageReviewReadFilter/WbPageReviewReadFilter.js +53 -0
  77. package/features/target/WbPageReviewReadFilter/WbPageReviewReadFilter.js.map +1 -0
  78. package/features/target/WbPageReviewReadFilter/abstractions.d.ts +21 -0
  79. package/features/target/WbPageReviewReadFilter/abstractions.js +5 -0
  80. package/features/target/WbPageReviewReadFilter/abstractions.js.map +1 -0
  81. package/features/target/WbPageReviewReadFilter/index.d.ts +1 -0
  82. package/features/target/WbPageReviewReadFilter/index.js +1 -0
  83. package/features/target/WbPageReviewTargetEditor.d.ts +33 -0
  84. package/features/target/WbPageReviewTargetEditor.js +109 -0
  85. package/features/target/WbPageReviewTargetEditor.js.map +1 -0
  86. package/features/target/WbPageReviewTargetFolderChain.d.ts +22 -0
  87. package/features/target/WbPageReviewTargetFolderChain.js +34 -0
  88. package/features/target/WbPageReviewTargetFolderChain.js.map +1 -0
  89. package/features/target/WbPageReviewTargetLink.d.ts +17 -0
  90. package/features/target/WbPageReviewTargetLink.js +17 -0
  91. package/features/target/WbPageReviewTargetLink.js.map +1 -0
  92. package/features/target/WbPageReviewTargetLoader.d.ts +13 -0
  93. package/features/target/WbPageReviewTargetLoader.js +29 -0
  94. package/features/target/WbPageReviewTargetLoader.js.map +1 -0
  95. package/features/target/WbPageReviewTargetReadAccess.d.ts +33 -0
  96. package/features/target/WbPageReviewTargetReadAccess.js +72 -0
  97. package/features/target/WbPageReviewTargetReadAccess.js.map +1 -0
  98. package/features/target/WbPageReviewTargetSync.d.ts +23 -0
  99. package/features/target/WbPageReviewTargetSync.js +39 -0
  100. package/features/target/WbPageReviewTargetSync.js.map +1 -0
  101. package/features/target/WbPageTargetReader/WbPageTargetReader.d.ts +20 -0
  102. package/features/target/WbPageTargetReader/WbPageTargetReader.js +51 -0
  103. package/features/target/WbPageTargetReader/WbPageTargetReader.js.map +1 -0
  104. package/features/target/WbPageTargetReader/abstractions.d.ts +37 -0
  105. package/features/target/WbPageTargetReader/abstractions.js +5 -0
  106. package/features/target/WbPageTargetReader/abstractions.js.map +1 -0
  107. package/features/target/WbPageTargetReader/index.d.ts +1 -0
  108. package/features/target/WbPageTargetReader/index.js +1 -0
  109. package/features/target/WbWorkflowModelParser.d.ts +9 -0
  110. package/features/target/WbWorkflowModelParser.js +18 -0
  111. package/features/target/WbWorkflowModelParser.js.map +1 -0
  112. package/features/target/feature.d.ts +5 -0
  113. package/features/target/feature.js +35 -0
  114. package/features/target/feature.js.map +1 -0
  115. package/features/target/isWbPageEditorValue.d.ts +9 -0
  116. package/features/target/isWbPageEditorValue.js +34 -0
  117. package/features/target/isWbPageEditorValue.js.map +1 -0
  118. package/features/target/toWbPageEditorFields.d.ts +32 -0
  119. package/features/target/toWbPageEditorFields.js +102 -0
  120. package/features/target/toWbPageEditorFields.js.map +1 -0
  121. package/features/target/toWbPageProperties.d.ts +10 -0
  122. package/features/target/toWbPageProperties.js +27 -0
  123. package/features/target/toWbPageProperties.js.map +1 -0
  124. package/features/target/toWbPageReviewTarget.d.ts +4 -0
  125. package/features/target/toWbPageReviewTarget.js +25 -0
  126. package/features/target/toWbPageReviewTarget.js.map +1 -0
  127. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/ApproveWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  128. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/ApproveWebsiteBuilderPageReviewStepUseCase.js +35 -0
  129. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/ApproveWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  130. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/abstractions.d.ts +26 -0
  131. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  132. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  133. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  134. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/feature.js +11 -0
  135. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  136. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  137. package/features/wrappers/ApproveWebsiteBuilderPageReviewStep/index.js +1 -0
  138. package/features/wrappers/CancelWebsiteBuilderPageReview/CancelWebsiteBuilderPageReviewUseCase.d.ts +13 -0
  139. package/features/wrappers/CancelWebsiteBuilderPageReview/CancelWebsiteBuilderPageReviewUseCase.js +37 -0
  140. package/features/wrappers/CancelWebsiteBuilderPageReview/CancelWebsiteBuilderPageReviewUseCase.js.map +1 -0
  141. package/features/wrappers/CancelWebsiteBuilderPageReview/abstractions.d.ts +30 -0
  142. package/features/wrappers/CancelWebsiteBuilderPageReview/abstractions.js +5 -0
  143. package/features/wrappers/CancelWebsiteBuilderPageReview/abstractions.js.map +1 -0
  144. package/features/wrappers/CancelWebsiteBuilderPageReview/feature.d.ts +4 -0
  145. package/features/wrappers/CancelWebsiteBuilderPageReview/feature.js +11 -0
  146. package/features/wrappers/CancelWebsiteBuilderPageReview/feature.js.map +1 -0
  147. package/features/wrappers/CancelWebsiteBuilderPageReview/index.d.ts +1 -0
  148. package/features/wrappers/CancelWebsiteBuilderPageReview/index.js +1 -0
  149. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/CancelWebsiteBuilderPageReviewsForDeleteUseCase.d.ts +19 -0
  150. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/CancelWebsiteBuilderPageReviewsForDeleteUseCase.js +81 -0
  151. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/CancelWebsiteBuilderPageReviewsForDeleteUseCase.js.map +1 -0
  152. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/abstractions.d.ts +39 -0
  153. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/abstractions.js +5 -0
  154. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/abstractions.js.map +1 -0
  155. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/feature.d.ts +4 -0
  156. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/feature.js +11 -0
  157. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/feature.js.map +1 -0
  158. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/index.d.ts +1 -0
  159. package/features/wrappers/CancelWebsiteBuilderPageReviewsForDelete/index.js +1 -0
  160. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/DeleteWebsiteBuilderPageWorkflowUseCase.d.ts +25 -0
  161. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/DeleteWebsiteBuilderPageWorkflowUseCase.js +95 -0
  162. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/DeleteWebsiteBuilderPageWorkflowUseCase.js.map +1 -0
  163. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/abstractions.d.ts +32 -0
  164. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/abstractions.js +5 -0
  165. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/abstractions.js.map +1 -0
  166. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/feature.d.ts +4 -0
  167. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/feature.js +11 -0
  168. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/feature.js.map +1 -0
  169. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/index.d.ts +1 -0
  170. package/features/wrappers/DeleteWebsiteBuilderPageWorkflow/index.js +1 -0
  171. package/features/wrappers/GetWebsiteBuilderPageReview/GetWebsiteBuilderPageReviewUseCase.d.ts +13 -0
  172. package/features/wrappers/GetWebsiteBuilderPageReview/GetWebsiteBuilderPageReviewUseCase.js +40 -0
  173. package/features/wrappers/GetWebsiteBuilderPageReview/GetWebsiteBuilderPageReviewUseCase.js.map +1 -0
  174. package/features/wrappers/GetWebsiteBuilderPageReview/abstractions.d.ts +29 -0
  175. package/features/wrappers/GetWebsiteBuilderPageReview/abstractions.js +5 -0
  176. package/features/wrappers/GetWebsiteBuilderPageReview/abstractions.js.map +1 -0
  177. package/features/wrappers/GetWebsiteBuilderPageReview/feature.d.ts +4 -0
  178. package/features/wrappers/GetWebsiteBuilderPageReview/feature.js +11 -0
  179. package/features/wrappers/GetWebsiteBuilderPageReview/feature.js.map +1 -0
  180. package/features/wrappers/GetWebsiteBuilderPageReview/index.d.ts +1 -0
  181. package/features/wrappers/GetWebsiteBuilderPageReview/index.js +1 -0
  182. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/GetWebsiteBuilderPageReviewStepRunUseCase.d.ts +13 -0
  183. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/GetWebsiteBuilderPageReviewStepRunUseCase.js +39 -0
  184. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/GetWebsiteBuilderPageReviewStepRunUseCase.js.map +1 -0
  185. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/abstractions.d.ts +33 -0
  186. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/abstractions.js +5 -0
  187. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/abstractions.js.map +1 -0
  188. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/feature.d.ts +4 -0
  189. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/feature.js +11 -0
  190. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/feature.js.map +1 -0
  191. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/index.d.ts +1 -0
  192. package/features/wrappers/GetWebsiteBuilderPageReviewStepRun/index.js +1 -0
  193. package/features/wrappers/GetWebsiteBuilderPageTargetReview/GetWebsiteBuilderPageTargetReviewUseCase.d.ts +19 -0
  194. package/features/wrappers/GetWebsiteBuilderPageTargetReview/GetWebsiteBuilderPageTargetReviewUseCase.js +72 -0
  195. package/features/wrappers/GetWebsiteBuilderPageTargetReview/GetWebsiteBuilderPageTargetReviewUseCase.js.map +1 -0
  196. package/features/wrappers/GetWebsiteBuilderPageTargetReview/abstractions.d.ts +34 -0
  197. package/features/wrappers/GetWebsiteBuilderPageTargetReview/abstractions.js +5 -0
  198. package/features/wrappers/GetWebsiteBuilderPageTargetReview/abstractions.js.map +1 -0
  199. package/features/wrappers/GetWebsiteBuilderPageTargetReview/feature.d.ts +4 -0
  200. package/features/wrappers/GetWebsiteBuilderPageTargetReview/feature.js +11 -0
  201. package/features/wrappers/GetWebsiteBuilderPageTargetReview/feature.js.map +1 -0
  202. package/features/wrappers/GetWebsiteBuilderPageTargetReview/index.d.ts +1 -0
  203. package/features/wrappers/GetWebsiteBuilderPageTargetReview/index.js +1 -0
  204. package/features/wrappers/GetWebsiteBuilderPageWorkflow/GetWebsiteBuilderPageWorkflowUseCase.d.ts +13 -0
  205. package/features/wrappers/GetWebsiteBuilderPageWorkflow/GetWebsiteBuilderPageWorkflowUseCase.js +34 -0
  206. package/features/wrappers/GetWebsiteBuilderPageWorkflow/GetWebsiteBuilderPageWorkflowUseCase.js.map +1 -0
  207. package/features/wrappers/GetWebsiteBuilderPageWorkflow/abstractions.d.ts +24 -0
  208. package/features/wrappers/GetWebsiteBuilderPageWorkflow/abstractions.js +5 -0
  209. package/features/wrappers/GetWebsiteBuilderPageWorkflow/abstractions.js.map +1 -0
  210. package/features/wrappers/GetWebsiteBuilderPageWorkflow/feature.d.ts +4 -0
  211. package/features/wrappers/GetWebsiteBuilderPageWorkflow/feature.js +11 -0
  212. package/features/wrappers/GetWebsiteBuilderPageWorkflow/feature.js.map +1 -0
  213. package/features/wrappers/GetWebsiteBuilderPageWorkflow/index.d.ts +1 -0
  214. package/features/wrappers/GetWebsiteBuilderPageWorkflow/index.js +1 -0
  215. package/features/wrappers/InspectWebsiteBuilderPageRouting/InspectWebsiteBuilderPageRoutingUseCase.d.ts +19 -0
  216. package/features/wrappers/InspectWebsiteBuilderPageRouting/InspectWebsiteBuilderPageRoutingUseCase.js +51 -0
  217. package/features/wrappers/InspectWebsiteBuilderPageRouting/InspectWebsiteBuilderPageRoutingUseCase.js.map +1 -0
  218. package/features/wrappers/InspectWebsiteBuilderPageRouting/abstractions.d.ts +34 -0
  219. package/features/wrappers/InspectWebsiteBuilderPageRouting/abstractions.js +5 -0
  220. package/features/wrappers/InspectWebsiteBuilderPageRouting/abstractions.js.map +1 -0
  221. package/features/wrappers/InspectWebsiteBuilderPageRouting/feature.d.ts +4 -0
  222. package/features/wrappers/InspectWebsiteBuilderPageRouting/feature.js +11 -0
  223. package/features/wrappers/InspectWebsiteBuilderPageRouting/feature.js.map +1 -0
  224. package/features/wrappers/InspectWebsiteBuilderPageRouting/index.d.ts +1 -0
  225. package/features/wrappers/InspectWebsiteBuilderPageRouting/index.js +1 -0
  226. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/ListWebsiteBuilderPageReviewStepCandidatesUseCase.d.ts +13 -0
  227. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/ListWebsiteBuilderPageReviewStepCandidatesUseCase.js +41 -0
  228. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/ListWebsiteBuilderPageReviewStepCandidatesUseCase.js.map +1 -0
  229. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/abstractions.d.ts +30 -0
  230. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/abstractions.js +5 -0
  231. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/abstractions.js.map +1 -0
  232. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/feature.d.ts +4 -0
  233. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/feature.js +11 -0
  234. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/feature.js.map +1 -0
  235. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/index.d.ts +1 -0
  236. package/features/wrappers/ListWebsiteBuilderPageReviewStepCandidates/index.js +1 -0
  237. package/features/wrappers/ListWebsiteBuilderPageReviews/ListWebsiteBuilderPageReviewsUseCase.d.ts +15 -0
  238. package/features/wrappers/ListWebsiteBuilderPageReviews/ListWebsiteBuilderPageReviewsUseCase.js +68 -0
  239. package/features/wrappers/ListWebsiteBuilderPageReviews/ListWebsiteBuilderPageReviewsUseCase.js.map +1 -0
  240. package/features/wrappers/ListWebsiteBuilderPageReviews/abstractions.d.ts +43 -0
  241. package/features/wrappers/ListWebsiteBuilderPageReviews/abstractions.js +5 -0
  242. package/features/wrappers/ListWebsiteBuilderPageReviews/abstractions.js.map +1 -0
  243. package/features/wrappers/ListWebsiteBuilderPageReviews/feature.d.ts +4 -0
  244. package/features/wrappers/ListWebsiteBuilderPageReviews/feature.js +11 -0
  245. package/features/wrappers/ListWebsiteBuilderPageReviews/feature.js.map +1 -0
  246. package/features/wrappers/ListWebsiteBuilderPageReviews/index.d.ts +2 -0
  247. package/features/wrappers/ListWebsiteBuilderPageReviews/index.js +1 -0
  248. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/ListWebsiteBuilderPageStepCandidatesUseCase.d.ts +25 -0
  249. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/ListWebsiteBuilderPageStepCandidatesUseCase.js +93 -0
  250. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/ListWebsiteBuilderPageStepCandidatesUseCase.js.map +1 -0
  251. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/abstractions.d.ts +41 -0
  252. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/abstractions.js +5 -0
  253. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/abstractions.js.map +1 -0
  254. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/feature.d.ts +4 -0
  255. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/feature.js +11 -0
  256. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/feature.js.map +1 -0
  257. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/index.d.ts +1 -0
  258. package/features/wrappers/ListWebsiteBuilderPageStepCandidates/index.js +1 -0
  259. package/features/wrappers/ListWebsiteBuilderPageWorkflows/ListWebsiteBuilderPageWorkflowsUseCase.d.ts +13 -0
  260. package/features/wrappers/ListWebsiteBuilderPageWorkflows/ListWebsiteBuilderPageWorkflowsUseCase.js +37 -0
  261. package/features/wrappers/ListWebsiteBuilderPageWorkflows/ListWebsiteBuilderPageWorkflowsUseCase.js.map +1 -0
  262. package/features/wrappers/ListWebsiteBuilderPageWorkflows/abstractions.d.ts +20 -0
  263. package/features/wrappers/ListWebsiteBuilderPageWorkflows/abstractions.js +5 -0
  264. package/features/wrappers/ListWebsiteBuilderPageWorkflows/abstractions.js.map +1 -0
  265. package/features/wrappers/ListWebsiteBuilderPageWorkflows/feature.d.ts +4 -0
  266. package/features/wrappers/ListWebsiteBuilderPageWorkflows/feature.js +11 -0
  267. package/features/wrappers/ListWebsiteBuilderPageWorkflows/feature.js.map +1 -0
  268. package/features/wrappers/ListWebsiteBuilderPageWorkflows/index.d.ts +1 -0
  269. package/features/wrappers/ListWebsiteBuilderPageWorkflows/index.js +1 -0
  270. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/ReassignWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  271. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/ReassignWebsiteBuilderPageReviewStepUseCase.js +40 -0
  272. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/ReassignWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  273. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/abstractions.d.ts +32 -0
  274. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  275. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  276. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  277. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/feature.js +11 -0
  278. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  279. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  280. package/features/wrappers/ReassignWebsiteBuilderPageReviewStep/index.js +1 -0
  281. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/RejectWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  282. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/RejectWebsiteBuilderPageReviewStepUseCase.js +35 -0
  283. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/RejectWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  284. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/abstractions.d.ts +26 -0
  285. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  286. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  287. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  288. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/feature.js +11 -0
  289. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  290. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  291. package/features/wrappers/RejectWebsiteBuilderPageReviewStep/index.js +1 -0
  292. package/features/wrappers/RequestWebsiteBuilderPageReview/RequestWebsiteBuilderPageReviewUseCase.d.ts +23 -0
  293. package/features/wrappers/RequestWebsiteBuilderPageReview/RequestWebsiteBuilderPageReviewUseCase.js +72 -0
  294. package/features/wrappers/RequestWebsiteBuilderPageReview/RequestWebsiteBuilderPageReviewUseCase.js.map +1 -0
  295. package/features/wrappers/RequestWebsiteBuilderPageReview/abstractions.d.ts +41 -0
  296. package/features/wrappers/RequestWebsiteBuilderPageReview/abstractions.js +5 -0
  297. package/features/wrappers/RequestWebsiteBuilderPageReview/abstractions.js.map +1 -0
  298. package/features/wrappers/RequestWebsiteBuilderPageReview/feature.d.ts +4 -0
  299. package/features/wrappers/RequestWebsiteBuilderPageReview/feature.js +11 -0
  300. package/features/wrappers/RequestWebsiteBuilderPageReview/feature.js.map +1 -0
  301. package/features/wrappers/RequestWebsiteBuilderPageReview/index.d.ts +1 -0
  302. package/features/wrappers/RequestWebsiteBuilderPageReview/index.js +1 -0
  303. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/RestartWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  304. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/RestartWebsiteBuilderPageReviewStepUseCase.js +39 -0
  305. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/RestartWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  306. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/abstractions.d.ts +30 -0
  307. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  308. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  309. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  310. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/feature.js +11 -0
  311. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  312. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  313. package/features/wrappers/RestartWebsiteBuilderPageReviewStep/index.js +1 -0
  314. package/features/wrappers/StartWebsiteBuilderPageReviewStep/StartWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  315. package/features/wrappers/StartWebsiteBuilderPageReviewStep/StartWebsiteBuilderPageReviewStepUseCase.js +34 -0
  316. package/features/wrappers/StartWebsiteBuilderPageReviewStep/StartWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  317. package/features/wrappers/StartWebsiteBuilderPageReviewStep/abstractions.d.ts +25 -0
  318. package/features/wrappers/StartWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  319. package/features/wrappers/StartWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  320. package/features/wrappers/StartWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  321. package/features/wrappers/StartWebsiteBuilderPageReviewStep/feature.js +11 -0
  322. package/features/wrappers/StartWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  323. package/features/wrappers/StartWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  324. package/features/wrappers/StartWebsiteBuilderPageReviewStep/index.js +1 -0
  325. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/StoreWebsiteBuilderPageWorkflowUseCase.d.ts +17 -0
  326. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/StoreWebsiteBuilderPageWorkflowUseCase.js +57 -0
  327. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/StoreWebsiteBuilderPageWorkflowUseCase.js.map +1 -0
  328. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/abstractions.d.ts +33 -0
  329. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/abstractions.js +5 -0
  330. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/abstractions.js.map +1 -0
  331. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/feature.d.ts +4 -0
  332. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/feature.js +11 -0
  333. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/feature.js.map +1 -0
  334. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/index.d.ts +1 -0
  335. package/features/wrappers/StoreWebsiteBuilderPageWorkflow/index.js +1 -0
  336. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/TakeOverWebsiteBuilderPageReviewStepUseCase.d.ts +13 -0
  337. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/TakeOverWebsiteBuilderPageReviewStepUseCase.js +35 -0
  338. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/TakeOverWebsiteBuilderPageReviewStepUseCase.js.map +1 -0
  339. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/abstractions.d.ts +27 -0
  340. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/abstractions.js +5 -0
  341. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/abstractions.js.map +1 -0
  342. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/feature.d.ts +4 -0
  343. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/feature.js +11 -0
  344. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/feature.js.map +1 -0
  345. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/index.d.ts +1 -0
  346. package/features/wrappers/TakeOverWebsiteBuilderPageReviewStep/index.js +1 -0
  347. package/features/wrappers/WbPageReviewGuardService/WbPageReviewGuardService.d.ts +17 -0
  348. package/features/wrappers/WbPageReviewGuardService/WbPageReviewGuardService.js +63 -0
  349. package/features/wrappers/WbPageReviewGuardService/WbPageReviewGuardService.js.map +1 -0
  350. package/features/wrappers/WbPageReviewGuardService/abstractions.d.ts +37 -0
  351. package/features/wrappers/WbPageReviewGuardService/abstractions.js +5 -0
  352. package/features/wrappers/WbPageReviewGuardService/abstractions.js.map +1 -0
  353. package/features/wrappers/WbPageReviewGuardService/index.d.ts +1 -0
  354. package/features/wrappers/WbPageReviewGuardService/index.js +1 -0
  355. package/features/wrappers/WebsiteBuilderPageFolderExists/WebsiteBuilderPageFolderExistsUseCase.d.ts +15 -0
  356. package/features/wrappers/WebsiteBuilderPageFolderExists/WebsiteBuilderPageFolderExistsUseCase.js +43 -0
  357. package/features/wrappers/WebsiteBuilderPageFolderExists/WebsiteBuilderPageFolderExistsUseCase.js.map +1 -0
  358. package/features/wrappers/WebsiteBuilderPageFolderExists/abstractions.d.ts +28 -0
  359. package/features/wrappers/WebsiteBuilderPageFolderExists/abstractions.js +5 -0
  360. package/features/wrappers/WebsiteBuilderPageFolderExists/abstractions.js.map +1 -0
  361. package/features/wrappers/WebsiteBuilderPageFolderExists/feature.d.ts +4 -0
  362. package/features/wrappers/WebsiteBuilderPageFolderExists/feature.js +11 -0
  363. package/features/wrappers/WebsiteBuilderPageFolderExists/feature.js.map +1 -0
  364. package/features/wrappers/WebsiteBuilderPageFolderExists/index.d.ts +1 -0
  365. package/features/wrappers/WebsiteBuilderPageFolderExists/index.js +1 -0
  366. package/features/wrappers/feature.d.ts +9 -0
  367. package/features/wrappers/feature.js +53 -0
  368. package/features/wrappers/feature.js.map +1 -0
  369. package/features/wrappers/shared/wbWorkflows.d.ts +8 -0
  370. package/features/wrappers/shared/wbWorkflows.js +9 -0
  371. package/features/wrappers/shared/wbWorkflows.js.map +1 -0
  372. package/graphql/WebsiteBuilderWorkflowsSchemaFactory.d.ts +15 -0
  373. package/graphql/WebsiteBuilderWorkflowsSchemaFactory.js +616 -0
  374. package/graphql/WebsiteBuilderWorkflowsSchemaFactory.js.map +1 -0
  375. package/graphql/isValidRevisionId.d.ts +6 -0
  376. package/graphql/isValidRevisionId.js +9 -0
  377. package/graphql/isValidRevisionId.js.map +1 -0
  378. package/index.d.ts +1 -0
  379. package/index.js +1 -0
  380. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/target/isWbPageEditorValue.js","sources":["../../../src/features/target/isWbPageEditorValue.ts"],"sourcesContent":["/**\n * The pathname rule of the admin SEO group (`PATHNAME_REGEX` in\n * `packages/app-website-builder/src/presentation/pages/PageEditor/PageSettings/groups/SeoSettingsGroup.ts`),\n * copied here, not imported (the API must not depend on admin code). An empty string passes the\n * admin form (it is optional) but is rejected here: the model must send `null` to clear the key.\n */\nconst PATHNAME_REGEX = new RegExp(\n `^\\\\/(?:[a-zA-Z0-9._~:@!$&'()*+,;=%/-])*(?:\\\\?[a-zA-Z0-9._~:@!$&'()*+,;=?/%#[\\\\]-]*)?(?:#[a-zA-Z0-9._~:@!$&'()*+,;=?/%#[\\\\]-]*)?$`\n);\n\n/**\n * The admin rule lets `//host` through (its path class includes `/`), and a protocol-relative URL\n * is an external URL, so it is rejected on top of the copied rule.\n */\nconst isPathname = (value: unknown): boolean => {\n return typeof value === \"string\" && !value.startsWith(\"//\") && PATHNAME_REGEX.test(value);\n};\n\n/**\n * Whether `value` is acceptable for the writable page path (R172). The page model stores\n * `properties` as JSON and nothing type-checks it, so the editor does before writing. The title is\n * required and never cleared; the SEO text fields accept `null` (the key is removed); the canonical\n * URL must also be a pathname (`/path`, the admin rule); the SEO flags are booleans. Any other path is not writable. Pure.\n */\nexport const isWbPageEditorValue = (path: string, value: unknown): boolean => {\n switch (path) {\n case \"properties.title\":\n return typeof value === \"string\" && value.trim() !== \"\";\n case \"properties.seo.title\":\n case \"properties.seo.description\":\n return value === null || typeof value === \"string\";\n case \"properties.seo.canonicalUrl\":\n return value === null || isPathname(value);\n case \"properties.seo.noIndex\":\n case \"properties.seo.noFollow\":\n return typeof value === \"boolean\";\n default:\n return false;\n }\n};\n\n/** What the model should send for a writable page path, for the error text. Pure. */\nexport const describeWbPageEditorValue = (path: string): string => {\n switch (path) {\n case \"properties.title\":\n return \"a non-empty string\";\n case \"properties.seo.canonicalUrl\":\n return \"a pathname such as /path, or null\";\n case \"properties.seo.noIndex\":\n case \"properties.seo.noFollow\":\n return \"true or false\";\n default:\n return \"a string or null\";\n }\n};\n"],"names":["PATHNAME_REGEX","RegExp","isPathname","value","isWbPageEditorValue","path","describeWbPageEditorValue"],"mappings":"AAMA,MAAMA,iBAAiB,IAAIC,OACvB;AAOJ,MAAMC,aAAa,CAACC,QACT,AAAiB,YAAjB,OAAOA,SAAsB,CAACA,MAAM,UAAU,CAAC,SAASH,eAAe,IAAI,CAACG;AAShF,MAAMC,sBAAsB,CAACC,MAAcF;IAC9C,OAAQE;QACJ,KAAK;YACD,OAAO,AAAiB,YAAjB,OAAOF,SAAsBA,AAAiB,OAAjBA,MAAM,IAAI;QAClD,KAAK;QACL,KAAK;YACD,OAAOA,AAAU,SAAVA,SAAkB,AAAiB,YAAjB,OAAOA;QACpC,KAAK;YACD,OAAOA,AAAU,SAAVA,SAAkBD,WAAWC;QACxC,KAAK;QACL,KAAK;YACD,OAAO,AAAiB,aAAjB,OAAOA;QAClB;YACI,OAAO;IACf;AACJ;AAGO,MAAMG,4BAA4B,CAACD;IACtC,OAAQA;QACJ,KAAK;YACD,OAAO;QACX,KAAK;YACD,OAAO;QACX,KAAK;QACL,KAAK;YACD,OAAO;QACX;YACI,OAAO;IACf;AACJ"}
@@ -0,0 +1,32 @@
1
+ import type { WbPage } from "@webiny/api-website-builder/domain/page/abstractions.js";
2
+ import type { ReviewTargetEditorField } from "@webiny/api-workflows/features/review/ReviewTargetEditor/abstractions.js";
3
+ /** The parts of a page the editor reads. */
4
+ export type WbPageEditorSource = Pick<WbPage, "properties" | "location" | "status" | "metadata" | "bindings" | "elements" | "extensions">;
5
+ /** A field the AI may write (R172). */
6
+ export interface WbPageWritableField {
7
+ /** The key `update` takes. */
8
+ path: string;
9
+ /** The key inside `properties.seo`; empty for the page title. */
10
+ key: string;
11
+ label: string;
12
+ type: string;
13
+ }
14
+ /** What the model reads for the element tree instead of the tree itself. */
15
+ export interface WbElementsSummary {
16
+ count: number;
17
+ /** Component name to the number of elements that use it. */
18
+ components: Record<string, number>;
19
+ }
20
+ export declare const WB_PAGE_TITLE_FIELD: WbPageWritableField;
21
+ /** The SEO scalars of the page editor's SEO group (R172). `metaTags` and the rest are read-only. */
22
+ export declare const WB_PAGE_SEO_FIELDS: WbPageWritableField[];
23
+ /**
24
+ * The page as the target editor shows it (R172): the title, every other `properties` key as one
25
+ * read-only row with its whole value, the five writable SEO scalars, the rest of the SEO group as
26
+ * read-only rows, the read-only page parts (`location`, `status`, `metadata`, `bindings`,
27
+ * `extensions`) and a read-only summary of the element tree. `properties.path` and
28
+ * `properties.language` are never writable. A `properties` key that contains a dot is skipped: its
29
+ * row path could shadow an allowlisted path. Throws when `properties` is missing (the editor turns
30
+ * that into a failed Result). Pure.
31
+ */
32
+ export declare const toWbPageEditorFields: (page: WbPageEditorSource) => ReviewTargetEditorField[];
@@ -0,0 +1,102 @@
1
+ const WB_PAGE_TITLE_FIELD = {
2
+ path: "properties.title",
3
+ key: "",
4
+ label: "Page title",
5
+ type: "text"
6
+ };
7
+ const WB_PAGE_SEO_FIELDS = [
8
+ {
9
+ path: "properties.seo.title",
10
+ key: "title",
11
+ label: "SEO title",
12
+ type: "text"
13
+ },
14
+ {
15
+ path: "properties.seo.description",
16
+ key: "description",
17
+ label: "SEO description",
18
+ type: "long-text"
19
+ },
20
+ {
21
+ path: "properties.seo.canonicalUrl",
22
+ key: "canonicalUrl",
23
+ label: "SEO canonical URL",
24
+ type: "text"
25
+ },
26
+ {
27
+ path: "properties.seo.noIndex",
28
+ key: "noIndex",
29
+ label: "SEO no index",
30
+ type: "boolean"
31
+ },
32
+ {
33
+ path: "properties.seo.noFollow",
34
+ key: "noFollow",
35
+ label: "SEO no follow",
36
+ type: "boolean"
37
+ }
38
+ ];
39
+ const isRecord = (value)=>"object" == typeof value && null !== value && !Array.isArray(value);
40
+ const typeOfValue = (value)=>{
41
+ if (null == value) return "null";
42
+ if (Array.isArray(value)) return "list";
43
+ switch(typeof value){
44
+ case "string":
45
+ return "text";
46
+ case "number":
47
+ return "number";
48
+ case "boolean":
49
+ return "boolean";
50
+ default:
51
+ return "object";
52
+ }
53
+ };
54
+ const toWritableRow = (field, value)=>({
55
+ path: field.path,
56
+ label: field.label,
57
+ type: field.type,
58
+ value: void 0 === value ? null : value,
59
+ writable: true
60
+ });
61
+ const toReadOnlyRow = (path, value)=>({
62
+ path,
63
+ label: path,
64
+ type: typeOfValue(value),
65
+ value: void 0 === value ? null : value,
66
+ writable: false
67
+ });
68
+ const summarizeElements = (elements)=>{
69
+ const components = new Map();
70
+ let count = 0;
71
+ if (isRecord(elements)) for (const element of Object.values(elements)){
72
+ count++;
73
+ const component = isRecord(element) ? element.component : void 0;
74
+ const name = isRecord(component) && "string" == typeof component.name ? component.name : "(none)";
75
+ components.set(name, (components.get(name) ?? 0) + 1);
76
+ }
77
+ return {
78
+ count,
79
+ components: Object.fromEntries(components)
80
+ };
81
+ };
82
+ const toWbPageEditorFields = (page)=>{
83
+ const properties = page.properties;
84
+ const seo = isRecord(properties.seo) ? properties.seo : {};
85
+ const rows = [
86
+ toWritableRow(WB_PAGE_TITLE_FIELD, properties.title)
87
+ ];
88
+ for (const [key, value] of Object.entries(properties))if (!("title" === key || "seo" === key || key.includes("."))) rows.push(toReadOnlyRow(`properties.${key}`, value));
89
+ for (const field of WB_PAGE_SEO_FIELDS)rows.push(toWritableRow(field, seo[field.key]));
90
+ for (const [key, value] of Object.entries(seo))if (!(key.includes(".") || WB_PAGE_SEO_FIELDS.some((field)=>field.key === key))) rows.push(toReadOnlyRow(`properties.seo.${key}`, value));
91
+ rows.push(toReadOnlyRow("location", page.location), toReadOnlyRow("status", page.status), toReadOnlyRow("metadata", page.metadata), toReadOnlyRow("bindings", page.bindings), toReadOnlyRow("extensions", page.extensions), {
92
+ path: "elements",
93
+ label: "elements",
94
+ type: "object",
95
+ value: summarizeElements(page.elements),
96
+ writable: false
97
+ });
98
+ return rows;
99
+ };
100
+ export { WB_PAGE_SEO_FIELDS, WB_PAGE_TITLE_FIELD, toWbPageEditorFields };
101
+
102
+ //# sourceMappingURL=toWbPageEditorFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/target/toWbPageEditorFields.js","sources":["../../../src/features/target/toWbPageEditorFields.ts"],"sourcesContent":["import type { WbPage } from \"@webiny/api-website-builder/domain/page/abstractions.js\";\nimport type { ReviewTargetEditorField } from \"@webiny/api-workflows/features/review/ReviewTargetEditor/abstractions.js\";\n\n/** The parts of a page the editor reads. */\nexport type WbPageEditorSource = Pick<\n WbPage,\n \"properties\" | \"location\" | \"status\" | \"metadata\" | \"bindings\" | \"elements\" | \"extensions\"\n>;\n\n/** A field the AI may write (R172). */\nexport interface WbPageWritableField {\n /** The key `update` takes. */\n path: string;\n /** The key inside `properties.seo`; empty for the page title. */\n key: string;\n label: string;\n type: string;\n}\n\n/** What the model reads for the element tree instead of the tree itself. */\nexport interface WbElementsSummary {\n count: number;\n /** Component name to the number of elements that use it. */\n components: Record<string, number>;\n}\n\nexport const WB_PAGE_TITLE_FIELD: WbPageWritableField = {\n path: \"properties.title\",\n key: \"\",\n label: \"Page title\",\n type: \"text\"\n};\n\n/** The SEO scalars of the page editor's SEO group (R172). `metaTags` and the rest are read-only. */\nexport const WB_PAGE_SEO_FIELDS: WbPageWritableField[] = [\n { path: \"properties.seo.title\", key: \"title\", label: \"SEO title\", type: \"text\" },\n {\n path: \"properties.seo.description\",\n key: \"description\",\n label: \"SEO description\",\n type: \"long-text\"\n },\n {\n path: \"properties.seo.canonicalUrl\",\n key: \"canonicalUrl\",\n label: \"SEO canonical URL\",\n type: \"text\"\n },\n { path: \"properties.seo.noIndex\", key: \"noIndex\", label: \"SEO no index\", type: \"boolean\" },\n { path: \"properties.seo.noFollow\", key: \"noFollow\", label: \"SEO no follow\", type: \"boolean\" }\n];\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\nconst typeOfValue = (value: unknown): string => {\n if (value === null || value === undefined) {\n return \"null\";\n }\n if (Array.isArray(value)) {\n return \"list\";\n }\n switch (typeof value) {\n case \"string\":\n return \"text\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"object\";\n }\n};\n\nconst toWritableRow = (field: WbPageWritableField, value: unknown): ReviewTargetEditorField => {\n return {\n path: field.path,\n label: field.label,\n type: field.type,\n value: value === undefined ? null : value,\n writable: true\n };\n};\n\nconst toReadOnlyRow = (path: string, value: unknown): ReviewTargetEditorField => {\n return {\n path,\n label: path,\n type: typeOfValue(value),\n value: value === undefined ? null : value,\n writable: false\n };\n};\n\nconst summarizeElements = (elements: unknown): WbElementsSummary => {\n const components = new Map<string, number>();\n let count = 0;\n if (isRecord(elements)) {\n for (const element of Object.values(elements)) {\n count++;\n const component = isRecord(element) ? element.component : undefined;\n const name =\n isRecord(component) && typeof component.name === \"string\"\n ? component.name\n : \"(none)\";\n components.set(name, (components.get(name) ?? 0) + 1);\n }\n }\n return { count, components: Object.fromEntries(components) };\n};\n\n/**\n * The page as the target editor shows it (R172): the title, every other `properties` key as one\n * read-only row with its whole value, the five writable SEO scalars, the rest of the SEO group as\n * read-only rows, the read-only page parts (`location`, `status`, `metadata`, `bindings`,\n * `extensions`) and a read-only summary of the element tree. `properties.path` and\n * `properties.language` are never writable. A `properties` key that contains a dot is skipped: its\n * row path could shadow an allowlisted path. Throws when `properties` is missing (the editor turns\n * that into a failed Result). Pure.\n */\nexport const toWbPageEditorFields = (page: WbPageEditorSource): ReviewTargetEditorField[] => {\n const properties: Record<string, unknown> = page.properties;\n const seo = isRecord(properties.seo) ? properties.seo : {};\n const rows: ReviewTargetEditorField[] = [toWritableRow(WB_PAGE_TITLE_FIELD, properties.title)];\n\n for (const [key, value] of Object.entries(properties)) {\n if (key === \"title\" || key === \"seo\" || key.includes(\".\")) {\n continue;\n }\n rows.push(toReadOnlyRow(`properties.${key}`, value));\n }\n for (const field of WB_PAGE_SEO_FIELDS) {\n rows.push(toWritableRow(field, seo[field.key]));\n }\n for (const [key, value] of Object.entries(seo)) {\n if (key.includes(\".\") || WB_PAGE_SEO_FIELDS.some(field => field.key === key)) {\n continue;\n }\n rows.push(toReadOnlyRow(`properties.seo.${key}`, value));\n }\n\n rows.push(\n toReadOnlyRow(\"location\", page.location),\n toReadOnlyRow(\"status\", page.status),\n toReadOnlyRow(\"metadata\", page.metadata),\n toReadOnlyRow(\"bindings\", page.bindings),\n toReadOnlyRow(\"extensions\", page.extensions),\n {\n path: \"elements\",\n label: \"elements\",\n type: \"object\",\n value: summarizeElements(page.elements),\n writable: false\n }\n );\n return rows;\n};\n"],"names":["WB_PAGE_TITLE_FIELD","WB_PAGE_SEO_FIELDS","isRecord","value","Array","typeOfValue","toWritableRow","field","undefined","toReadOnlyRow","path","summarizeElements","elements","components","Map","count","element","Object","component","name","toWbPageEditorFields","page","properties","seo","rows","key"],"mappings":"AA0BO,MAAMA,sBAA2C;IACpD,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;AACV;AAGO,MAAMC,qBAA4C;IACrD;QAAE,MAAM;QAAwB,KAAK;QAAS,OAAO;QAAa,MAAM;IAAO;IAC/E;QACI,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;IACV;IACA;QACI,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;IACV;IACA;QAAE,MAAM;QAA0B,KAAK;QAAW,OAAO;QAAgB,MAAM;IAAU;IACzF;QAAE,MAAM;QAA2B,KAAK;QAAY,OAAO;QAAiB,MAAM;IAAU;CAC/F;AAED,MAAMC,WAAW,CAACC,QACP,AAAiB,YAAjB,OAAOA,SAAsBA,AAAU,SAAVA,SAAkB,CAACC,MAAM,OAAO,CAACD;AAGzE,MAAME,cAAc,CAACF;IACjB,IAAIA,QAAAA,OACA,OAAO;IAEX,IAAIC,MAAM,OAAO,CAACD,QACd,OAAO;IAEX,OAAQ,OAAOA;QACX,KAAK;YACD,OAAO;QACX,KAAK;YACD,OAAO;QACX,KAAK;YACD,OAAO;QACX;YACI,OAAO;IACf;AACJ;AAEA,MAAMG,gBAAgB,CAACC,OAA4BJ,QACxC;QACH,MAAMI,MAAM,IAAI;QAChB,OAAOA,MAAM,KAAK;QAClB,MAAMA,MAAM,IAAI;QAChB,OAAOJ,AAAUK,WAAVL,QAAsB,OAAOA;QACpC,UAAU;IACd;AAGJ,MAAMM,gBAAgB,CAACC,MAAcP,QAC1B;QACHO;QACA,OAAOA;QACP,MAAML,YAAYF;QAClB,OAAOA,AAAUK,WAAVL,QAAsB,OAAOA;QACpC,UAAU;IACd;AAGJ,MAAMQ,oBAAoB,CAACC;IACvB,MAAMC,aAAa,IAAIC;IACvB,IAAIC,QAAQ;IACZ,IAAIb,SAASU,WACT,KAAK,MAAMI,WAAWC,OAAO,MAAM,CAACL,UAAW;QAC3CG;QACA,MAAMG,YAAYhB,SAASc,WAAWA,QAAQ,SAAS,GAAGR;QAC1D,MAAMW,OACFjB,SAASgB,cAAc,AAA0B,YAA1B,OAAOA,UAAU,IAAI,GACtCA,UAAU,IAAI,GACd;QACVL,WAAW,GAAG,CAACM,MAAON,AAAAA,CAAAA,WAAW,GAAG,CAACM,SAAS,KAAK;IACvD;IAEJ,OAAO;QAAEJ;QAAO,YAAYE,OAAO,WAAW,CAACJ;IAAY;AAC/D;AAWO,MAAMO,uBAAuB,CAACC;IACjC,MAAMC,aAAsCD,KAAK,UAAU;IAC3D,MAAME,MAAMrB,SAASoB,WAAW,GAAG,IAAIA,WAAW,GAAG,GAAG,CAAC;IACzD,MAAME,OAAkC;QAAClB,cAAcN,qBAAqBsB,WAAW,KAAK;KAAE;IAE9F,KAAK,MAAM,CAACG,KAAKtB,MAAM,IAAIc,OAAO,OAAO,CAACK,YACtC,KAAIG,CAAAA,AAAQ,YAARA,OAAmBA,AAAQ,UAARA,OAAiBA,IAAI,QAAQ,CAAC,IAAG,GAGxDD,KAAK,IAAI,CAACf,cAAc,CAAC,WAAW,EAAEgB,KAAK,EAAEtB;IAEjD,KAAK,MAAMI,SAASN,mBAChBuB,KAAK,IAAI,CAAClB,cAAcC,OAAOgB,GAAG,CAAChB,MAAM,GAAG,CAAC;IAEjD,KAAK,MAAM,CAACkB,KAAKtB,MAAM,IAAIc,OAAO,OAAO,CAACM,KACtC,KAAIE,CAAAA,IAAI,QAAQ,CAAC,QAAQxB,mBAAmB,IAAI,CAACM,CAAAA,QAASA,MAAM,GAAG,KAAKkB,IAAG,GAG3ED,KAAK,IAAI,CAACf,cAAc,CAAC,eAAe,EAAEgB,KAAK,EAAEtB;IAGrDqB,KAAK,IAAI,CACLf,cAAc,YAAYY,KAAK,QAAQ,GACvCZ,cAAc,UAAUY,KAAK,MAAM,GACnCZ,cAAc,YAAYY,KAAK,QAAQ,GACvCZ,cAAc,YAAYY,KAAK,QAAQ,GACvCZ,cAAc,cAAcY,KAAK,UAAU,GAC3C;QACI,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAOV,kBAAkBU,KAAK,QAAQ;QACtC,UAAU;IACd;IAEJ,OAAOG;AACX"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The FULL `properties` object for the page update. The update replaces `properties` as a whole
3
+ * (the CMS update merges top-level keys only), so every key of the current blob is carried over
4
+ * (`path`, `language`, `social`, `seo.metaTags` and the rest) and only the written allowlisted keys
5
+ * change. `seo` is a copy when any SEO key is written, a missing or non-object `seo` is created,
6
+ * and an SEO key written as `null` is removed. The paths are already checked against the allowlist
7
+ * (`toWbPageEditorFields`, `isWbPageEditorValue`), so a path is the title or one of the SEO
8
+ * fields. The current values are never mutated. Pure.
9
+ */
10
+ export declare const toWbPageProperties: (current: Record<string, unknown>, updates: Record<string, unknown>) => Record<string, unknown>;
@@ -0,0 +1,27 @@
1
+ import { WB_PAGE_SEO_FIELDS, WB_PAGE_TITLE_FIELD } from "./toWbPageEditorFields.js";
2
+ const isRecord = (value)=>"object" == typeof value && null !== value && !Array.isArray(value);
3
+ const toWbPageProperties = (current, updates)=>{
4
+ const merged = {
5
+ ...current
6
+ };
7
+ let seo = null;
8
+ for (const [path, value] of Object.entries(updates)){
9
+ if (path === WB_PAGE_TITLE_FIELD.path) {
10
+ merged.title = value;
11
+ continue;
12
+ }
13
+ const field = WB_PAGE_SEO_FIELDS.find((item)=>item.path === path);
14
+ if (field) {
15
+ if (null === seo) seo = isRecord(current.seo) ? {
16
+ ...current.seo
17
+ } : {};
18
+ if (null === value) delete seo[field.key];
19
+ else seo[field.key] = value;
20
+ }
21
+ }
22
+ if (null !== seo) merged.seo = seo;
23
+ return merged;
24
+ };
25
+ export { toWbPageProperties };
26
+
27
+ //# sourceMappingURL=toWbPageProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/target/toWbPageProperties.js","sources":["../../../src/features/target/toWbPageProperties.ts"],"sourcesContent":["import { WB_PAGE_SEO_FIELDS, WB_PAGE_TITLE_FIELD } from \"./toWbPageEditorFields.js\";\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * The FULL `properties` object for the page update. The update replaces `properties` as a whole\n * (the CMS update merges top-level keys only), so every key of the current blob is carried over\n * (`path`, `language`, `social`, `seo.metaTags` and the rest) and only the written allowlisted keys\n * change. `seo` is a copy when any SEO key is written, a missing or non-object `seo` is created,\n * and an SEO key written as `null` is removed. The paths are already checked against the allowlist\n * (`toWbPageEditorFields`, `isWbPageEditorValue`), so a path is the title or one of the SEO\n * fields. The current values are never mutated. Pure.\n */\nexport const toWbPageProperties = (\n current: Record<string, unknown>,\n updates: Record<string, unknown>\n): Record<string, unknown> => {\n const merged: Record<string, unknown> = { ...current };\n let seo: Record<string, unknown> | null = null;\n for (const [path, value] of Object.entries(updates)) {\n if (path === WB_PAGE_TITLE_FIELD.path) {\n merged.title = value;\n continue;\n }\n const field = WB_PAGE_SEO_FIELDS.find(item => item.path === path);\n if (!field) {\n continue;\n }\n if (seo === null) {\n seo = isRecord(current.seo) ? { ...current.seo } : {};\n }\n if (value === null) {\n delete seo[field.key];\n } else {\n seo[field.key] = value;\n }\n }\n if (seo !== null) {\n merged.seo = seo;\n }\n return merged;\n};\n"],"names":["isRecord","value","Array","toWbPageProperties","current","updates","merged","seo","path","Object","WB_PAGE_TITLE_FIELD","field","WB_PAGE_SEO_FIELDS","item"],"mappings":";AAEA,MAAMA,WAAW,CAACC,QACP,AAAiB,YAAjB,OAAOA,SAAsBA,AAAU,SAAVA,SAAkB,CAACC,MAAM,OAAO,CAACD;AAYlE,MAAME,qBAAqB,CAC9BC,SACAC;IAEA,MAAMC,SAAkC;QAAE,GAAGF,OAAO;IAAC;IACrD,IAAIG,MAAsC;IAC1C,KAAK,MAAM,CAACC,MAAMP,MAAM,IAAIQ,OAAO,OAAO,CAACJ,SAAU;QACjD,IAAIG,SAASE,oBAAoB,IAAI,EAAE;YACnCJ,OAAO,KAAK,GAAGL;YACf;QACJ;QACA,MAAMU,QAAQC,mBAAmB,IAAI,CAACC,CAAAA,OAAQA,KAAK,IAAI,KAAKL;QAC5D,IAAKG;YAGL,IAAIJ,AAAQ,SAARA,KACAA,MAAMP,SAASI,QAAQ,GAAG,IAAI;gBAAE,GAAGA,QAAQ,GAAG;YAAC,IAAI,CAAC;YAExD,IAAIH,AAAU,SAAVA,OACA,OAAOM,GAAG,CAACI,MAAM,GAAG,CAAC;iBAErBJ,GAAG,CAACI,MAAM,GAAG,CAAC,GAAGV;;IAEzB;IACA,IAAIM,AAAQ,SAARA,KACAD,OAAO,GAAG,GAAGC;IAEjB,OAAOD;AACX"}
@@ -0,0 +1,4 @@
1
+ import type { ReviewTarget } from "@webiny/api-workflows/features/review/ReviewTargetLoader/index.js";
2
+ import type { WbPageTargetReader } from "./WbPageTargetReader/index.js";
3
+ /** Title and typed `TargetContext` of a page revision (spec 9.3, R66). Pure. */
4
+ export declare const toWbPageReviewTarget: (target: WbPageTargetReader.Target) => ReviewTarget;
@@ -0,0 +1,25 @@
1
+ import { ROOT_FOLDER } from "@webiny/api-website-builder/constants.js";
2
+ import { WB_PAGE_FOLDER_TYPE } from "../../constants.js";
3
+ const toWbPageReviewTarget = (target)=>{
4
+ const { model, page } = target;
5
+ const title = page.properties.title;
6
+ const folderId = page.location.folderId;
7
+ return {
8
+ title,
9
+ context: {
10
+ folder: folderId && folderId !== ROOT_FOLDER ? {
11
+ id: folderId,
12
+ type: WB_PAGE_FOLDER_TYPE
13
+ } : null,
14
+ modelId: model.modelId,
15
+ title,
16
+ author: {
17
+ id: page.createdBy.id,
18
+ displayName: page.createdBy.displayName
19
+ }
20
+ }
21
+ };
22
+ };
23
+ export { toWbPageReviewTarget };
24
+
25
+ //# sourceMappingURL=toWbPageReviewTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/target/toWbPageReviewTarget.js","sources":["../../../src/features/target/toWbPageReviewTarget.ts"],"sourcesContent":["import { ROOT_FOLDER } from \"@webiny/api-website-builder/constants.js\";\nimport type { ReviewTarget } from \"@webiny/api-workflows/features/review/ReviewTargetLoader/index.js\";\nimport { WB_PAGE_FOLDER_TYPE } from \"~/constants.js\";\nimport type { WbPageTargetReader } from \"./WbPageTargetReader/index.js\";\n\n/** Title and typed `TargetContext` of a page revision (spec 9.3, R66). Pure. */\nexport const toWbPageReviewTarget = (target: WbPageTargetReader.Target): ReviewTarget => {\n const { model, page } = target;\n const title = page.properties.title;\n const folderId = page.location.folderId;\n return {\n title,\n context: {\n folder:\n folderId && folderId !== ROOT_FOLDER\n ? { id: folderId, type: WB_PAGE_FOLDER_TYPE }\n : null,\n modelId: model.modelId,\n title,\n author: { id: page.createdBy.id, displayName: page.createdBy.displayName }\n }\n };\n};\n"],"names":["toWbPageReviewTarget","target","model","page","title","folderId","ROOT_FOLDER","WB_PAGE_FOLDER_TYPE"],"mappings":";;AAMO,MAAMA,uBAAuB,CAACC;IACjC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGF;IACxB,MAAMG,QAAQD,KAAK,UAAU,CAAC,KAAK;IACnC,MAAME,WAAWF,KAAK,QAAQ,CAAC,QAAQ;IACvC,OAAO;QACHC;QACA,SAAS;YACL,QACIC,YAAYA,aAAaC,cACnB;gBAAE,IAAID;gBAAU,MAAME;YAAoB,IAC1C;YACV,SAASL,MAAM,OAAO;YACtBE;YACA,QAAQ;gBAAE,IAAID,KAAK,SAAS,CAAC,EAAE;gBAAE,aAAaA,KAAK,SAAS,CAAC,WAAW;YAAC;QAC7E;IACJ;AACJ"}
@@ -0,0 +1,13 @@
1
+ import { ApproveReviewStepUseCase } from "@webiny/api-workflows/features/review/ApproveReviewStep/index.js";
2
+ import { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
3
+ import { ApproveWebsiteBuilderPageReviewStepUseCase as UseCase } from "./abstractions.js";
4
+ declare class ApproveWebsiteBuilderPageReviewStepUseCaseImpl implements UseCase.Interface {
5
+ private guard;
6
+ private engine;
7
+ constructor(guard: WbPageReviewGuardService.Interface, engine: ApproveReviewStepUseCase.Interface);
8
+ execute(input: UseCase.Input): UseCase.Return;
9
+ }
10
+ export declare const ApproveWebsiteBuilderPageReviewStepUseCase: typeof ApproveWebsiteBuilderPageReviewStepUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IApproveWebsiteBuilderPageReviewStepUseCase>;
12
+ };
13
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ApproveReviewStepUseCase } from "@webiny/api-workflows/features/review/ApproveReviewStep/index.js";
3
+ import { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
4
+ import { ApproveWebsiteBuilderPageReviewStepUseCase } from "./abstractions.js";
5
+ class ApproveWebsiteBuilderPageReviewStepUseCaseImpl {
6
+ constructor(guard, engine){
7
+ this.guard = guard;
8
+ this.engine = engine;
9
+ }
10
+ async execute(input) {
11
+ const authorized = await this.guard.authorize({
12
+ reviewId: input.reviewId,
13
+ action: "approve this step"
14
+ });
15
+ if (authorized.isFail()) return Result.fail(authorized.error);
16
+ const { viewer } = authorized.value;
17
+ return this.engine.execute({
18
+ reviewId: input.reviewId,
19
+ stepId: input.stepId,
20
+ actor: viewer.actor,
21
+ actorTeamIds: viewer.teamIds,
22
+ comment: input.comment ?? null
23
+ });
24
+ }
25
+ }
26
+ const ApproveWebsiteBuilderPageReviewStepUseCase_ApproveWebsiteBuilderPageReviewStepUseCase = ApproveWebsiteBuilderPageReviewStepUseCase.createImplementation({
27
+ implementation: ApproveWebsiteBuilderPageReviewStepUseCaseImpl,
28
+ dependencies: [
29
+ WbPageReviewGuardService,
30
+ ApproveReviewStepUseCase
31
+ ]
32
+ });
33
+ export { ApproveWebsiteBuilderPageReviewStepUseCase_ApproveWebsiteBuilderPageReviewStepUseCase as ApproveWebsiteBuilderPageReviewStepUseCase };
34
+
35
+ //# sourceMappingURL=ApproveWebsiteBuilderPageReviewStepUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ApproveWebsiteBuilderPageReviewStep/ApproveWebsiteBuilderPageReviewStepUseCase.js","sources":["../../../../src/features/wrappers/ApproveWebsiteBuilderPageReviewStep/ApproveWebsiteBuilderPageReviewStepUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ApproveReviewStepUseCase } from \"@webiny/api-workflows/features/review/ApproveReviewStep/index.js\";\nimport { WbPageReviewGuardService } from \"../WbPageReviewGuardService/index.js\";\nimport { ApproveWebsiteBuilderPageReviewStepUseCase as UseCase } from \"./abstractions.js\";\n\nclass ApproveWebsiteBuilderPageReviewStepUseCaseImpl implements UseCase.Interface {\n public constructor(\n private guard: WbPageReviewGuardService.Interface,\n private engine: ApproveReviewStepUseCase.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: \"approve this step\"\n });\n if (authorized.isFail()) {\n return Result.fail(authorized.error);\n }\n\n const { viewer } = authorized.value;\n return this.engine.execute({\n reviewId: input.reviewId,\n stepId: input.stepId,\n actor: viewer.actor,\n actorTeamIds: viewer.teamIds,\n comment: input.comment ?? null\n });\n }\n}\n\nexport const ApproveWebsiteBuilderPageReviewStepUseCase = UseCase.createImplementation({\n implementation: ApproveWebsiteBuilderPageReviewStepUseCaseImpl,\n dependencies: [WbPageReviewGuardService, ApproveReviewStepUseCase]\n});\n"],"names":["ApproveWebsiteBuilderPageReviewStepUseCaseImpl","guard","engine","input","authorized","Result","viewer","ApproveWebsiteBuilderPageReviewStepUseCase","UseCase","WbPageReviewGuardService","ApproveReviewStepUseCase"],"mappings":";;;;AAKA,MAAMA;IACF,YACYC,KAAyC,EACzCC,MAA0C,CACpD;aAFUD,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QACvD,MAAMC,aAAa,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1C,UAAUD,MAAM,QAAQ;YACxB,QAAQ;QACZ;QACA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAACD,WAAW,KAAK;QAGvC,MAAM,EAAEE,MAAM,EAAE,GAAGF,WAAW,KAAK;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvB,UAAUD,MAAM,QAAQ;YACxB,QAAQA,MAAM,MAAM;YACpB,OAAOG,OAAO,KAAK;YACnB,cAAcA,OAAO,OAAO;YAC5B,SAASH,MAAM,OAAO,IAAI;QAC9B;IACJ;AACJ;AAEO,MAAMI,wFAA6CC,2CAAAA,oBAA4B,CAAC;IACnF,gBAAgBR;IAChB,cAAc;QAACS;QAA0BC;KAAyB;AACtE"}
@@ -0,0 +1,26 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { ReviewData } from "@webiny/api-workflows/domain/review/types.js";
3
+ import type { ApproveReviewStepUseCase } from "@webiny/api-workflows/features/review/ApproveReviewStep/index.js";
4
+ import type { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
5
+ export interface ApproveWebsiteBuilderPageReviewStepInput {
6
+ reviewId: string;
7
+ stepId: string;
8
+ comment?: string | null;
9
+ }
10
+ export interface IApproveWebsiteBuilderPageReviewStepUseCaseErrors {
11
+ guard: WbPageReviewGuardService.Error;
12
+ approve: ApproveReviewStepUseCase.Error;
13
+ }
14
+ type UseCaseError = IApproveWebsiteBuilderPageReviewStepUseCaseErrors[keyof IApproveWebsiteBuilderPageReviewStepUseCaseErrors];
15
+ export interface IApproveWebsiteBuilderPageReviewStepUseCase {
16
+ execute(input: ApproveWebsiteBuilderPageReviewStepInput): Promise<Result<ReviewData, UseCaseError>>;
17
+ }
18
+ /** Approve the page review step the user owns (spec 5.1): read access here, ownership in the engine. */
19
+ export declare const ApproveWebsiteBuilderPageReviewStepUseCase: import("@webiny/di").Abstraction<IApproveWebsiteBuilderPageReviewStepUseCase>;
20
+ export declare namespace ApproveWebsiteBuilderPageReviewStepUseCase {
21
+ type Interface = IApproveWebsiteBuilderPageReviewStepUseCase;
22
+ type Input = ApproveWebsiteBuilderPageReviewStepInput;
23
+ type Error = UseCaseError;
24
+ type Return = Promise<Result<ReviewData, UseCaseError>>;
25
+ }
26
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ApproveWebsiteBuilderPageReviewStepUseCase = createAbstraction("ApproveWebsiteBuilderPageReviewStepUseCase");
3
+ export { ApproveWebsiteBuilderPageReviewStepUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ApproveWebsiteBuilderPageReviewStep/abstractions.js","sources":["../../../../src/features/wrappers/ApproveWebsiteBuilderPageReviewStep/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { ReviewData } from \"@webiny/api-workflows/domain/review/types.js\";\nimport type { ApproveReviewStepUseCase } from \"@webiny/api-workflows/features/review/ApproveReviewStep/index.js\";\nimport type { WbPageReviewGuardService } from \"../WbPageReviewGuardService/index.js\";\n\nexport interface ApproveWebsiteBuilderPageReviewStepInput {\n reviewId: string;\n stepId: string;\n comment?: string | null;\n}\n\nexport interface IApproveWebsiteBuilderPageReviewStepUseCaseErrors {\n guard: WbPageReviewGuardService.Error;\n approve: ApproveReviewStepUseCase.Error;\n}\n\ntype UseCaseError =\n IApproveWebsiteBuilderPageReviewStepUseCaseErrors[keyof IApproveWebsiteBuilderPageReviewStepUseCaseErrors];\n\nexport interface IApproveWebsiteBuilderPageReviewStepUseCase {\n execute(\n input: ApproveWebsiteBuilderPageReviewStepInput\n ): Promise<Result<ReviewData, UseCaseError>>;\n}\n\n/** Approve the page review step the user owns (spec 5.1): read access here, ownership in the engine. */\nexport const ApproveWebsiteBuilderPageReviewStepUseCase =\n createAbstraction<IApproveWebsiteBuilderPageReviewStepUseCase>(\n \"ApproveWebsiteBuilderPageReviewStepUseCase\"\n );\n\nexport namespace ApproveWebsiteBuilderPageReviewStepUseCase {\n export type Interface = IApproveWebsiteBuilderPageReviewStepUseCase;\n export type Input = ApproveWebsiteBuilderPageReviewStepInput;\n export type Error = UseCaseError;\n export type Return = Promise<Result<ReviewData, UseCaseError>>;\n}\n"],"names":["ApproveWebsiteBuilderPageReviewStepUseCase","createAbstraction"],"mappings":";AA0BO,MAAMA,6CACTC,kBACI"}
@@ -0,0 +1,4 @@
1
+ export declare const ApproveWebsiteBuilderPageReviewStepFeature: {
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 { ApproveWebsiteBuilderPageReviewStepUseCase } from "./ApproveWebsiteBuilderPageReviewStepUseCase.js";
3
+ const ApproveWebsiteBuilderPageReviewStepFeature = createFeature({
4
+ name: "WebsiteBuilderWorkflows/ApproveWebsiteBuilderPageReviewStep",
5
+ register (container) {
6
+ container.register(ApproveWebsiteBuilderPageReviewStepUseCase);
7
+ }
8
+ });
9
+ export { ApproveWebsiteBuilderPageReviewStepFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/ApproveWebsiteBuilderPageReviewStep/feature.js","sources":["../../../../src/features/wrappers/ApproveWebsiteBuilderPageReviewStep/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ApproveWebsiteBuilderPageReviewStepUseCase } from \"./ApproveWebsiteBuilderPageReviewStepUseCase.js\";\n\nexport const ApproveWebsiteBuilderPageReviewStepFeature = createFeature({\n name: \"WebsiteBuilderWorkflows/ApproveWebsiteBuilderPageReviewStep\",\n register(container) {\n container.register(ApproveWebsiteBuilderPageReviewStepUseCase);\n }\n});\n"],"names":["ApproveWebsiteBuilderPageReviewStepFeature","createFeature","container","ApproveWebsiteBuilderPageReviewStepUseCase"],"mappings":";;AAGO,MAAMA,6CAA6CC,cAAc;IACpE,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { ApproveWebsiteBuilderPageReviewStepUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ApproveWebsiteBuilderPageReviewStepUseCase } from "./abstractions.js";
@@ -0,0 +1,13 @@
1
+ import { CancelReviewUseCase } from "@webiny/api-workflows/features/review/CancelReview/index.js";
2
+ import { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
3
+ import { CancelWebsiteBuilderPageReviewUseCase as UseCase } from "./abstractions.js";
4
+ declare class CancelWebsiteBuilderPageReviewUseCaseImpl implements UseCase.Interface {
5
+ private guard;
6
+ private cancelReview;
7
+ constructor(guard: WbPageReviewGuardService.Interface, cancelReview: CancelReviewUseCase.Interface);
8
+ execute(input: UseCase.Input): UseCase.Return;
9
+ }
10
+ export declare const CancelWebsiteBuilderPageReviewUseCase: typeof CancelWebsiteBuilderPageReviewUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICancelWebsiteBuilderPageReviewUseCase>;
12
+ };
13
+ export {};
@@ -0,0 +1,37 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CancelReviewUseCase } from "@webiny/api-workflows/features/review/CancelReview/index.js";
3
+ import { canCancelByPermission } from "@webiny/api-workflows/domain/review/canCancelByPermission.js";
4
+ import { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
5
+ import { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
6
+ import { CancelWebsiteBuilderPageReviewUseCase } from "./abstractions.js";
7
+ class CancelWebsiteBuilderPageReviewUseCaseImpl {
8
+ constructor(guard, cancelReview){
9
+ this.guard = guard;
10
+ this.cancelReview = cancelReview;
11
+ }
12
+ async execute(input) {
13
+ const authorized = await this.guard.authorize({
14
+ reviewId: input.reviewId,
15
+ action: "cancel this review"
16
+ });
17
+ if (authorized.isFail()) return Result.fail(authorized.error);
18
+ const { review, viewer } = authorized.value;
19
+ if (!canCancelByPermission(review, viewer)) return Result.fail(new WorkflowsNotAuthorizedError({
20
+ action: "cancel a review requested by someone else"
21
+ }));
22
+ return this.cancelReview.execute({
23
+ reviewId: input.reviewId,
24
+ actor: viewer.actor
25
+ });
26
+ }
27
+ }
28
+ const CancelWebsiteBuilderPageReviewUseCase_CancelWebsiteBuilderPageReviewUseCase = CancelWebsiteBuilderPageReviewUseCase.createImplementation({
29
+ implementation: CancelWebsiteBuilderPageReviewUseCaseImpl,
30
+ dependencies: [
31
+ WbPageReviewGuardService,
32
+ CancelReviewUseCase
33
+ ]
34
+ });
35
+ export { CancelWebsiteBuilderPageReviewUseCase_CancelWebsiteBuilderPageReviewUseCase as CancelWebsiteBuilderPageReviewUseCase };
36
+
37
+ //# sourceMappingURL=CancelWebsiteBuilderPageReviewUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/CancelWebsiteBuilderPageReview/CancelWebsiteBuilderPageReviewUseCase.js","sources":["../../../../src/features/wrappers/CancelWebsiteBuilderPageReview/CancelWebsiteBuilderPageReviewUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CancelReviewUseCase } from \"@webiny/api-workflows/features/review/CancelReview/index.js\";\nimport { canCancelByPermission } from \"@webiny/api-workflows/domain/review/canCancelByPermission.js\";\nimport { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport { WbPageReviewGuardService } from \"../WbPageReviewGuardService/index.js\";\nimport { CancelWebsiteBuilderPageReviewUseCase as UseCase } from \"./abstractions.js\";\n\nclass CancelWebsiteBuilderPageReviewUseCaseImpl implements UseCase.Interface {\n public constructor(\n private guard: WbPageReviewGuardService.Interface,\n private cancelReview: CancelReviewUseCase.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: \"cancel this review\"\n });\n if (authorized.isFail()) {\n return Result.fail(authorized.error);\n }\n\n const { review, viewer } = authorized.value;\n // Permission only: the review's state is the engine's to report (1b R41).\n if (!canCancelByPermission(review, viewer)) {\n return Result.fail(\n new WorkflowsNotAuthorizedError({\n action: \"cancel a review requested by someone else\"\n })\n );\n }\n\n return this.cancelReview.execute({ reviewId: input.reviewId, actor: viewer.actor });\n }\n}\n\nexport const CancelWebsiteBuilderPageReviewUseCase = UseCase.createImplementation({\n implementation: CancelWebsiteBuilderPageReviewUseCaseImpl,\n dependencies: [WbPageReviewGuardService, CancelReviewUseCase]\n});\n"],"names":["CancelWebsiteBuilderPageReviewUseCaseImpl","guard","cancelReview","input","authorized","Result","review","viewer","canCancelByPermission","WorkflowsNotAuthorizedError","CancelWebsiteBuilderPageReviewUseCase","UseCase","WbPageReviewGuardService","CancelReviewUseCase"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,KAAyC,EACzCC,YAA2C,CACrD;aAFUD,KAAK,GAALA;aACAC,YAAY,GAAZA;IACT;IAEH,MAAa,QAAQC,KAAoB,EAAkB;QACvD,MAAMC,aAAa,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1C,UAAUD,MAAM,QAAQ;YACxB,QAAQ;QACZ;QACA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAACD,WAAW,KAAK;QAGvC,MAAM,EAAEE,MAAM,EAAEC,MAAM,EAAE,GAAGH,WAAW,KAAK;QAE3C,IAAI,CAACI,sBAAsBF,QAAQC,SAC/B,OAAOF,OAAO,IAAI,CACd,IAAII,4BAA4B;YAC5B,QAAQ;QACZ;QAIR,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,UAAUN,MAAM,QAAQ;YAAE,OAAOI,OAAO,KAAK;QAAC;IACrF;AACJ;AAEO,MAAMG,8EAAwCC,sCAAAA,oBAA4B,CAAC;IAC9E,gBAAgBX;IAChB,cAAc;QAACY;QAA0BC;KAAoB;AACjE"}
@@ -0,0 +1,30 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { ReviewData } from "@webiny/api-workflows/domain/review/types.js";
3
+ import type { WorkflowsNotAuthorizedError } from "@webiny/api-workflows/domain/permissions/errors.js";
4
+ import type { CancelReviewUseCase } from "@webiny/api-workflows/features/review/CancelReview/index.js";
5
+ import type { WbPageReviewGuardService } from "../WbPageReviewGuardService/index.js";
6
+ export interface CancelWebsiteBuilderPageReviewInput {
7
+ reviewId: string;
8
+ }
9
+ export interface ICancelWebsiteBuilderPageReviewUseCaseErrors {
10
+ guard: WbPageReviewGuardService.Error;
11
+ notAuthorized: WorkflowsNotAuthorizedError;
12
+ cancel: CancelReviewUseCase.Error;
13
+ }
14
+ type UseCaseError = ICancelWebsiteBuilderPageReviewUseCaseErrors[keyof ICancelWebsiteBuilderPageReviewUseCaseErrors];
15
+ export interface ICancelWebsiteBuilderPageReviewUseCase {
16
+ execute(input: CancelWebsiteBuilderPageReviewInput): Promise<Result<ReviewData, UseCaseError>>;
17
+ }
18
+ /**
19
+ * Cancel a page review (spec 5.1, D25, D133 point 7): read access to the target and the requester
20
+ * or `workflows.reassign` (`canCancelByPermission`, 1b R41). Finished reviews fail in the engine
21
+ * with `Workflows/Review/InvalidState`.
22
+ */
23
+ export declare const CancelWebsiteBuilderPageReviewUseCase: import("@webiny/di").Abstraction<ICancelWebsiteBuilderPageReviewUseCase>;
24
+ export declare namespace CancelWebsiteBuilderPageReviewUseCase {
25
+ type Interface = ICancelWebsiteBuilderPageReviewUseCase;
26
+ type Input = CancelWebsiteBuilderPageReviewInput;
27
+ type Error = UseCaseError;
28
+ type Return = Promise<Result<ReviewData, UseCaseError>>;
29
+ }
30
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CancelWebsiteBuilderPageReviewUseCase = createAbstraction("CancelWebsiteBuilderPageReviewUseCase");
3
+ export { CancelWebsiteBuilderPageReviewUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/CancelWebsiteBuilderPageReview/abstractions.js","sources":["../../../../src/features/wrappers/CancelWebsiteBuilderPageReview/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { ReviewData } from \"@webiny/api-workflows/domain/review/types.js\";\nimport type { WorkflowsNotAuthorizedError } from \"@webiny/api-workflows/domain/permissions/errors.js\";\nimport type { CancelReviewUseCase } from \"@webiny/api-workflows/features/review/CancelReview/index.js\";\nimport type { WbPageReviewGuardService } from \"../WbPageReviewGuardService/index.js\";\n\nexport interface CancelWebsiteBuilderPageReviewInput {\n reviewId: string;\n}\n\nexport interface ICancelWebsiteBuilderPageReviewUseCaseErrors {\n guard: WbPageReviewGuardService.Error;\n notAuthorized: WorkflowsNotAuthorizedError;\n cancel: CancelReviewUseCase.Error;\n}\n\ntype UseCaseError =\n ICancelWebsiteBuilderPageReviewUseCaseErrors[keyof ICancelWebsiteBuilderPageReviewUseCaseErrors];\n\nexport interface ICancelWebsiteBuilderPageReviewUseCase {\n execute(input: CancelWebsiteBuilderPageReviewInput): Promise<Result<ReviewData, UseCaseError>>;\n}\n\n/**\n * Cancel a page review (spec 5.1, D25, D133 point 7): read access to the target and the requester\n * or `workflows.reassign` (`canCancelByPermission`, 1b R41). Finished reviews fail in the engine\n * with `Workflows/Review/InvalidState`.\n */\nexport const CancelWebsiteBuilderPageReviewUseCase =\n createAbstraction<ICancelWebsiteBuilderPageReviewUseCase>(\n \"CancelWebsiteBuilderPageReviewUseCase\"\n );\n\nexport namespace CancelWebsiteBuilderPageReviewUseCase {\n export type Interface = ICancelWebsiteBuilderPageReviewUseCase;\n export type Input = CancelWebsiteBuilderPageReviewInput;\n export type Error = UseCaseError;\n export type Return = Promise<Result<ReviewData, UseCaseError>>;\n}\n"],"names":["CancelWebsiteBuilderPageReviewUseCase","createAbstraction"],"mappings":";AA4BO,MAAMA,wCACTC,kBACI"}
@@ -0,0 +1,4 @@
1
+ export declare const CancelWebsiteBuilderPageReviewFeature: {
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 { CancelWebsiteBuilderPageReviewUseCase } from "./CancelWebsiteBuilderPageReviewUseCase.js";
3
+ const CancelWebsiteBuilderPageReviewFeature = createFeature({
4
+ name: "WebsiteBuilderWorkflows/CancelWebsiteBuilderPageReview",
5
+ register (container) {
6
+ container.register(CancelWebsiteBuilderPageReviewUseCase);
7
+ }
8
+ });
9
+ export { CancelWebsiteBuilderPageReviewFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wrappers/CancelWebsiteBuilderPageReview/feature.js","sources":["../../../../src/features/wrappers/CancelWebsiteBuilderPageReview/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CancelWebsiteBuilderPageReviewUseCase } from \"./CancelWebsiteBuilderPageReviewUseCase.js\";\n\nexport const CancelWebsiteBuilderPageReviewFeature = createFeature({\n name: \"WebsiteBuilderWorkflows/CancelWebsiteBuilderPageReview\",\n register(container) {\n container.register(CancelWebsiteBuilderPageReviewUseCase);\n }\n});\n"],"names":["CancelWebsiteBuilderPageReviewFeature","createFeature","container","CancelWebsiteBuilderPageReviewUseCase"],"mappings":";;AAGO,MAAMA,wCAAwCC,cAAc;IAC/D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { CancelWebsiteBuilderPageReviewUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { CancelWebsiteBuilderPageReviewUseCase } from "./abstractions.js";
@@ -0,0 +1,19 @@
1
+ import { CurrentReviewViewer } from "@webiny/api-workflows/features/identity/CurrentReviewViewer/index.js";
2
+ import { ListTargetReviewsUseCase } from "@webiny/api-workflows/features/review/ListTargetReviews/index.js";
3
+ import { CancelTargetReviewsUseCase } from "@webiny/api-workflows/features/review/CancelTargetReviews/index.js";
4
+ import { WbPageTargetReader } from "../../../features/target/WbPageTargetReader/index.js";
5
+ import { WbPageAccess } from "../../../features/target/WbPageAccess/index.js";
6
+ import { CancelWebsiteBuilderPageReviewsForDeleteUseCase as UseCase } from "./abstractions.js";
7
+ declare class CancelWebsiteBuilderPageReviewsForDeleteUseCaseImpl implements UseCase.Interface {
8
+ private viewer;
9
+ private listTargetReviews;
10
+ private targets;
11
+ private access;
12
+ private cancelTargetReviews;
13
+ constructor(viewer: CurrentReviewViewer.Interface, listTargetReviews: ListTargetReviewsUseCase.Interface, targets: WbPageTargetReader.Interface, access: WbPageAccess.Interface, cancelTargetReviews: CancelTargetReviewsUseCase.Interface);
14
+ execute(input: UseCase.Input): UseCase.Return;
15
+ }
16
+ export declare const CancelWebsiteBuilderPageReviewsForDeleteUseCase: typeof CancelWebsiteBuilderPageReviewsForDeleteUseCaseImpl & {
17
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICancelWebsiteBuilderPageReviewsForDeleteUseCase>;
18
+ };
19
+ export {};