@webiny/api-website-builder 6.3.0 → 6.4.0-beta.1

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 (391) hide show
  1. package/constants.js +4 -3
  2. package/constants.js.map +1 -1
  3. package/domain/page/EntryToPageMapper.js +30 -28
  4. package/domain/page/EntryToPageMapper.js.map +1 -1
  5. package/domain/page/PagePath.js +20 -30
  6. package/domain/page/PagePath.js.map +1 -1
  7. package/domain/page/abstractions.d.ts +13 -0
  8. package/domain/page/abstractions.js +2 -5
  9. package/domain/page/abstractions.js.map +1 -1
  10. package/domain/page/errors.js +46 -51
  11. package/domain/page/errors.js.map +1 -1
  12. package/domain/page/page.model.d.ts +8 -1
  13. package/domain/page/page.model.js +25 -30
  14. package/domain/page/page.model.js.map +1 -1
  15. package/domain/permissionsSchema.js +49 -28
  16. package/domain/permissionsSchema.js.map +1 -1
  17. package/domain/redirect/EntryToRedirectMapper.js +21 -20
  18. package/domain/redirect/EntryToRedirectMapper.js.map +1 -1
  19. package/domain/redirect/abstractions.js +2 -9
  20. package/domain/redirect/abstractions.js.map +1 -1
  21. package/domain/redirect/errors.js +28 -31
  22. package/domain/redirect/errors.js.map +1 -1
  23. package/domain/redirect/redirect.model.d.ts +8 -1
  24. package/domain/redirect/redirect.model.js +24 -30
  25. package/domain/redirect/redirect.model.js.map +1 -1
  26. package/domain/shared/abstractions.js +0 -3
  27. package/exports/api/website-builder/nextjs.js +0 -2
  28. package/exports/api/website-builder/page.js +5 -7
  29. package/exports/api/website-builder/redirect.js +1 -3
  30. package/features/installer/ApiKeyInstaller.js +33 -30
  31. package/features/installer/ApiKeyInstaller.js.map +1 -1
  32. package/features/installer/feature.js +6 -5
  33. package/features/installer/feature.js.map +1 -1
  34. package/features/nextjs/MarkdownContentBuilder.js +67 -76
  35. package/features/nextjs/MarkdownContentBuilder.js.map +1 -1
  36. package/features/nextjs/MarkdownContentBuilder.test.js +266 -273
  37. package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -1
  38. package/features/nextjs/NextjsConfig.js +43 -46
  39. package/features/nextjs/NextjsConfig.js.map +1 -1
  40. package/features/nextjs/abstractions.js +2 -2
  41. package/features/nextjs/abstractions.js.map +1 -1
  42. package/features/nextjs/feature.js +6 -5
  43. package/features/nextjs/feature.js.map +1 -1
  44. package/features/nextjs/index.js +0 -2
  45. package/features/pages/CreatePage/CreatePageRepository.js +23 -25
  46. package/features/pages/CreatePage/CreatePageRepository.js.map +1 -1
  47. package/features/pages/CreatePage/CreatePageUseCase.js +29 -34
  48. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  49. package/features/pages/CreatePage/abstractions.js +5 -30
  50. package/features/pages/CreatePage/abstractions.js.map +1 -1
  51. package/features/pages/CreatePage/events.js +16 -14
  52. package/features/pages/CreatePage/events.js.map +1 -1
  53. package/features/pages/CreatePage/feature.js +7 -6
  54. package/features/pages/CreatePage/feature.js.map +1 -1
  55. package/features/pages/CreatePage/index.js +1 -3
  56. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +30 -36
  57. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -1
  58. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +33 -41
  59. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  60. package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -30
  61. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  62. package/features/pages/CreatePageRevisionFrom/events.js +16 -14
  63. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  64. package/features/pages/CreatePageRevisionFrom/feature.js +7 -6
  65. package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -1
  66. package/features/pages/CreatePageRevisionFrom/index.js +1 -3
  67. package/features/pages/DeletePage/DeletePageRepository.js +19 -18
  68. package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
  69. package/features/pages/DeletePage/DeletePageUseCase.js +32 -39
  70. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  71. package/features/pages/DeletePage/abstractions.js +5 -30
  72. package/features/pages/DeletePage/abstractions.js.map +1 -1
  73. package/features/pages/DeletePage/events.js +16 -14
  74. package/features/pages/DeletePage/events.js.map +1 -1
  75. package/features/pages/DeletePage/feature.js +7 -6
  76. package/features/pages/DeletePage/feature.js.map +1 -1
  77. package/features/pages/DeletePage/index.js +1 -3
  78. package/features/pages/DuplicatePage/DuplicatePageRepository.js +50 -53
  79. package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
  80. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +35 -43
  81. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  82. package/features/pages/DuplicatePage/abstractions.js +5 -30
  83. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  84. package/features/pages/DuplicatePage/events.js +16 -14
  85. package/features/pages/DuplicatePage/events.js.map +1 -1
  86. package/features/pages/DuplicatePage/feature.js +7 -6
  87. package/features/pages/DuplicatePage/feature.js.map +1 -1
  88. package/features/pages/DuplicatePage/index.js +1 -3
  89. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +20 -20
  90. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -1
  91. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +19 -21
  92. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -1
  93. package/features/pages/GetDeletedPageById/abstractions.js +3 -12
  94. package/features/pages/GetDeletedPageById/abstractions.js.map +1 -1
  95. package/features/pages/GetDeletedPageById/feature.js +7 -6
  96. package/features/pages/GetDeletedPageById/feature.js.map +1 -1
  97. package/features/pages/GetDeletedPageById/index.js +0 -2
  98. package/features/pages/GetPageById/GetPageByIdRepository.js +20 -18
  99. package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -1
  100. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -21
  101. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  102. package/features/pages/GetPageById/abstractions.js +3 -13
  103. package/features/pages/GetPageById/abstractions.js.map +1 -1
  104. package/features/pages/GetPageById/feature.js +7 -6
  105. package/features/pages/GetPageById/feature.js.map +1 -1
  106. package/features/pages/GetPageById/index.js +0 -2
  107. package/features/pages/GetPageByPath/GetPageByPathRepository.js +26 -26
  108. package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -1
  109. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -21
  110. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  111. package/features/pages/GetPageByPath/abstractions.js +3 -13
  112. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  113. package/features/pages/GetPageByPath/feature.js +7 -6
  114. package/features/pages/GetPageByPath/feature.js.map +1 -1
  115. package/features/pages/GetPageByPath/index.js +0 -2
  116. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +42 -48
  117. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -1
  118. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +14 -13
  119. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -1
  120. package/features/pages/GetPageLanguagePaths/abstractions.js +3 -3
  121. package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -1
  122. package/features/pages/GetPageLanguagePaths/feature.js +7 -6
  123. package/features/pages/GetPageLanguagePaths/feature.js.map +1 -1
  124. package/features/pages/GetPageLanguagePaths/index.js +0 -2
  125. package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +17 -15
  126. package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -1
  127. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -24
  128. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  129. package/features/pages/GetPageRevisions/abstractions.js +3 -13
  130. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  131. package/features/pages/GetPageRevisions/feature.js +7 -6
  132. package/features/pages/GetPageRevisions/feature.js.map +1 -1
  133. package/features/pages/GetPageRevisions/index.js +0 -2
  134. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +37 -36
  135. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -1
  136. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +27 -24
  137. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -1
  138. package/features/pages/ListDeletedPages/abstractions.js +3 -12
  139. package/features/pages/ListDeletedPages/abstractions.js.map +1 -1
  140. package/features/pages/ListDeletedPages/feature.js +7 -6
  141. package/features/pages/ListDeletedPages/feature.js.map +1 -1
  142. package/features/pages/ListDeletedPages/index.js +0 -2
  143. package/features/pages/ListPages/ListPagesRepository.js +37 -36
  144. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  145. package/features/pages/ListPages/ListPagesUseCase.js +27 -24
  146. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  147. package/features/pages/ListPages/abstractions.js +3 -13
  148. package/features/pages/ListPages/abstractions.js.map +1 -1
  149. package/features/pages/ListPages/feature.js +7 -6
  150. package/features/pages/ListPages/feature.js.map +1 -1
  151. package/features/pages/ListPages/index.js +0 -2
  152. package/features/pages/MovePage/MovePageRepository.js +25 -27
  153. package/features/pages/MovePage/MovePageRepository.js.map +1 -1
  154. package/features/pages/MovePage/MovePageUseCase.js +39 -49
  155. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  156. package/features/pages/MovePage/abstractions.js +5 -30
  157. package/features/pages/MovePage/abstractions.js.map +1 -1
  158. package/features/pages/MovePage/events.js +16 -14
  159. package/features/pages/MovePage/events.js.map +1 -1
  160. package/features/pages/MovePage/feature.js +7 -6
  161. package/features/pages/MovePage/feature.js.map +1 -1
  162. package/features/pages/MovePage/index.js +1 -3
  163. package/features/pages/PublishPage/PublishPageRepository.js +26 -28
  164. package/features/pages/PublishPage/PublishPageRepository.js.map +1 -1
  165. package/features/pages/PublishPage/PublishPageUseCase.js +36 -46
  166. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  167. package/features/pages/PublishPage/abstractions.js +5 -30
  168. package/features/pages/PublishPage/abstractions.js.map +1 -1
  169. package/features/pages/PublishPage/events.js +16 -14
  170. package/features/pages/PublishPage/events.js.map +1 -1
  171. package/features/pages/PublishPage/feature.js +7 -6
  172. package/features/pages/PublishPage/feature.js.map +1 -1
  173. package/features/pages/PublishPage/index.js +0 -2
  174. package/features/pages/RestorePage/RestorePageRepository.js +20 -19
  175. package/features/pages/RestorePage/RestorePageRepository.js.map +1 -1
  176. package/features/pages/RestorePage/RestorePageUseCase.js +32 -39
  177. package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -1
  178. package/features/pages/RestorePage/abstractions.js +5 -27
  179. package/features/pages/RestorePage/abstractions.js.map +1 -1
  180. package/features/pages/RestorePage/events.js +16 -14
  181. package/features/pages/RestorePage/events.js.map +1 -1
  182. package/features/pages/RestorePage/feature.js +7 -6
  183. package/features/pages/RestorePage/feature.js.map +1 -1
  184. package/features/pages/RestorePage/index.js +0 -2
  185. package/features/pages/TranslatePage/TranslatePageUseCase.js +46 -62
  186. package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -1
  187. package/features/pages/TranslatePage/abstractions.js +2 -11
  188. package/features/pages/TranslatePage/abstractions.js.map +1 -1
  189. package/features/pages/TranslatePage/feature.js +6 -5
  190. package/features/pages/TranslatePage/feature.js.map +1 -1
  191. package/features/pages/TranslatePage/index.js +0 -2
  192. package/features/pages/TrashPage/TrashPageRepository.js +21 -20
  193. package/features/pages/TrashPage/TrashPageRepository.js.map +1 -1
  194. package/features/pages/TrashPage/TrashPageUseCase.js +33 -40
  195. package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -1
  196. package/features/pages/TrashPage/abstractions.js +5 -27
  197. package/features/pages/TrashPage/abstractions.js.map +1 -1
  198. package/features/pages/TrashPage/events.js +16 -14
  199. package/features/pages/TrashPage/events.js.map +1 -1
  200. package/features/pages/TrashPage/feature.js +7 -6
  201. package/features/pages/TrashPage/feature.js.map +1 -1
  202. package/features/pages/TrashPage/index.js +0 -2
  203. package/features/pages/UnpublishPage/UnpublishPageRepository.js +26 -28
  204. package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -1
  205. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +35 -45
  206. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  207. package/features/pages/UnpublishPage/abstractions.js +5 -30
  208. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  209. package/features/pages/UnpublishPage/events.js +16 -14
  210. package/features/pages/UnpublishPage/events.js.map +1 -1
  211. package/features/pages/UnpublishPage/feature.js +7 -6
  212. package/features/pages/UnpublishPage/feature.js.map +1 -1
  213. package/features/pages/UnpublishPage/index.js +0 -2
  214. package/features/pages/UpdatePage/UpdatePageRepository.js +30 -34
  215. package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -1
  216. package/features/pages/UpdatePage/UpdatePageUseCase.js +44 -54
  217. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  218. package/features/pages/UpdatePage/abstractions.js +5 -30
  219. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  220. package/features/pages/UpdatePage/events.js +16 -14
  221. package/features/pages/UpdatePage/events.js.map +1 -1
  222. package/features/pages/UpdatePage/feature.js +7 -6
  223. package/features/pages/UpdatePage/feature.js.map +1 -1
  224. package/features/pages/UpdatePage/index.js +0 -2
  225. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
  226. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +40 -0
  227. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
  228. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
  229. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +56 -0
  230. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
  231. package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
  232. package/features/pages/UpdatePageRevisionDescription/abstractions.js +8 -0
  233. package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
  234. package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
  235. package/features/pages/UpdatePageRevisionDescription/events.js +21 -0
  236. package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
  237. package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
  238. package/features/pages/UpdatePageRevisionDescription/feature.js +13 -0
  239. package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
  240. package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
  241. package/features/pages/UpdatePageRevisionDescription/index.js +1 -0
  242. package/features/permissions/abstractions.js +2 -1
  243. package/features/permissions/abstractions.js.map +1 -1
  244. package/features/permissions/feature.js +2 -1
  245. package/features/permissions/feature.js.map +1 -1
  246. package/features/redirects/CreateRedirect/CreateRedirectRepository.js +23 -21
  247. package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -1
  248. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +29 -34
  249. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  250. package/features/redirects/CreateRedirect/abstractions.js +5 -30
  251. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  252. package/features/redirects/CreateRedirect/events.js +16 -14
  253. package/features/redirects/CreateRedirect/events.js.map +1 -1
  254. package/features/redirects/CreateRedirect/feature.js +7 -6
  255. package/features/redirects/CreateRedirect/feature.js.map +1 -1
  256. package/features/redirects/CreateRedirect/index.js +1 -3
  257. package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +19 -17
  258. package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -1
  259. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +34 -41
  260. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  261. package/features/redirects/DeleteRedirect/abstractions.js +5 -30
  262. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  263. package/features/redirects/DeleteRedirect/events.js +16 -14
  264. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  265. package/features/redirects/DeleteRedirect/feature.js +7 -6
  266. package/features/redirects/DeleteRedirect/feature.js.map +1 -1
  267. package/features/redirects/DeleteRedirect/index.js +1 -3
  268. package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +22 -21
  269. package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -1
  270. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +17 -15
  271. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  272. package/features/redirects/GetActiveRedirects/abstractions.js +3 -13
  273. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  274. package/features/redirects/GetActiveRedirects/feature.js +7 -6
  275. package/features/redirects/GetActiveRedirects/feature.js.map +1 -1
  276. package/features/redirects/GetActiveRedirects/index.js +0 -2
  277. package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +20 -18
  278. package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -1
  279. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +20 -22
  280. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  281. package/features/redirects/GetRedirectById/abstractions.js +3 -13
  282. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  283. package/features/redirects/GetRedirectById/feature.js +7 -6
  284. package/features/redirects/GetRedirectById/feature.js.map +1 -1
  285. package/features/redirects/GetRedirectById/index.js +0 -2
  286. package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +23 -20
  287. package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -1
  288. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +13 -16
  289. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
  290. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +13 -16
  291. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
  292. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +13 -17
  293. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
  294. package/features/redirects/InvalidateRedirectsCache/abstractions.js +2 -7
  295. package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
  296. package/features/redirects/InvalidateRedirectsCache/feature.js +9 -8
  297. package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -1
  298. package/features/redirects/InvalidateRedirectsCache/index.js +0 -2
  299. package/features/redirects/ListRedirects/ListRedirectsRepository.js +35 -34
  300. package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -1
  301. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +28 -25
  302. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  303. package/features/redirects/ListRedirects/abstractions.js +3 -17
  304. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  305. package/features/redirects/ListRedirects/feature.js +7 -6
  306. package/features/redirects/ListRedirects/feature.js.map +1 -1
  307. package/features/redirects/ListRedirects/index.js +0 -2
  308. package/features/redirects/MoveRedirect/MoveRedirectRepository.js +25 -27
  309. package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -1
  310. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +39 -49
  311. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  312. package/features/redirects/MoveRedirect/abstractions.js +5 -30
  313. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  314. package/features/redirects/MoveRedirect/events.js +16 -14
  315. package/features/redirects/MoveRedirect/events.js.map +1 -1
  316. package/features/redirects/MoveRedirect/feature.js +7 -6
  317. package/features/redirects/MoveRedirect/feature.js.map +1 -1
  318. package/features/redirects/MoveRedirect/index.js +1 -3
  319. package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +31 -35
  320. package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -1
  321. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +44 -54
  322. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  323. package/features/redirects/UpdateRedirect/abstractions.js +5 -30
  324. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  325. package/features/redirects/UpdateRedirect/events.js +16 -14
  326. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  327. package/features/redirects/UpdateRedirect/feature.js +7 -6
  328. package/features/redirects/UpdateRedirect/feature.js.map +1 -1
  329. package/features/redirects/UpdateRedirect/index.js +0 -2
  330. package/features/tenantManager/TenantModelExtension.js +52 -32
  331. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  332. package/features/tenantManager/feature.js +6 -5
  333. package/features/tenantManager/feature.js.map +1 -1
  334. package/graphql/createGraphQL.js +15 -12
  335. package/graphql/createGraphQL.js.map +1 -1
  336. package/graphql/nextjs/NextjsGraphQLSchema.js +28 -29
  337. package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -1
  338. package/graphql/pages/pages.gql.js +221 -324
  339. package/graphql/pages/pages.gql.js.map +1 -1
  340. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  341. package/graphql/pages/pages.typeDefs.js +7 -1
  342. package/graphql/pages/pages.typeDefs.js.map +1 -1
  343. package/graphql/redirects/redirects.gql.js +56 -86
  344. package/graphql/redirects/redirects.gql.js.map +1 -1
  345. package/graphql/redirects/redirects.typeDefs.js +3 -4
  346. package/graphql/redirects/redirects.typeDefs.js.map +1 -1
  347. package/index.d.ts +1 -1
  348. package/index.js +64 -61
  349. package/index.js.map +1 -1
  350. package/package.json +20 -20
  351. package/rest/ActiveRedirectDto.js +0 -3
  352. package/rest/ActiveRedirectRestMapper.js +10 -9
  353. package/rest/ActiveRedirectRestMapper.js.map +1 -1
  354. package/rest/getRedirects.js +19 -26
  355. package/rest/getRedirects.js.map +1 -1
  356. package/utils/ensureAuthentication.js +6 -9
  357. package/utils/ensureAuthentication.js.map +1 -1
  358. package/utils/resolve.js +7 -6
  359. package/utils/resolve.js.map +1 -1
  360. package/domain/shared/abstractions.js.map +0 -1
  361. package/exports/api/website-builder/nextjs.js.map +0 -1
  362. package/exports/api/website-builder/page.js.map +0 -1
  363. package/exports/api/website-builder/redirect.js.map +0 -1
  364. package/features/nextjs/index.js.map +0 -1
  365. package/features/pages/CreatePage/index.js.map +0 -1
  366. package/features/pages/CreatePageRevisionFrom/index.js.map +0 -1
  367. package/features/pages/DeletePage/index.js.map +0 -1
  368. package/features/pages/DuplicatePage/index.js.map +0 -1
  369. package/features/pages/GetDeletedPageById/index.js.map +0 -1
  370. package/features/pages/GetPageById/index.js.map +0 -1
  371. package/features/pages/GetPageByPath/index.js.map +0 -1
  372. package/features/pages/GetPageLanguagePaths/index.js.map +0 -1
  373. package/features/pages/GetPageRevisions/index.js.map +0 -1
  374. package/features/pages/ListDeletedPages/index.js.map +0 -1
  375. package/features/pages/ListPages/index.js.map +0 -1
  376. package/features/pages/MovePage/index.js.map +0 -1
  377. package/features/pages/PublishPage/index.js.map +0 -1
  378. package/features/pages/RestorePage/index.js.map +0 -1
  379. package/features/pages/TranslatePage/index.js.map +0 -1
  380. package/features/pages/TrashPage/index.js.map +0 -1
  381. package/features/pages/UnpublishPage/index.js.map +0 -1
  382. package/features/pages/UpdatePage/index.js.map +0 -1
  383. package/features/redirects/CreateRedirect/index.js.map +0 -1
  384. package/features/redirects/DeleteRedirect/index.js.map +0 -1
  385. package/features/redirects/GetActiveRedirects/index.js.map +0 -1
  386. package/features/redirects/GetRedirectById/index.js.map +0 -1
  387. package/features/redirects/InvalidateRedirectsCache/index.js.map +0 -1
  388. package/features/redirects/ListRedirects/index.js.map +0 -1
  389. package/features/redirects/MoveRedirect/index.js.map +0 -1
  390. package/features/redirects/UpdateRedirect/index.js.map +0 -1
  391. package/rest/ActiveRedirectDto.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Result","MovePageRepository","RepositoryAbstraction","PageModel","PagePersistenceError","MoveEntryRepository","GetPageByIdRepository","MovePageRepositoryImpl","constructor","moveEntry","getPageById","pageModel","execute","params","getResult","id","isFail","fail","error","result","folderId","movedPage","value","location","ok","createImplementation","implementation","dependencies"],"sources":["MovePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MovePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel, type WbPage } from \"~/domain/page/abstractions.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetPageByIdRepository } from \"~/features/pages/GetPageById/abstractions.js\";\n\nclass MovePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private moveEntry: MoveEntryRepository.Interface,\n private getPageById: GetPageByIdRepository.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the page location with the new folderId\n const result = await this.moveEntry.execute(this.pageModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const movedPage: WbPage = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n\n return Result.ok(movedPage);\n }\n}\n\nexport const MovePageRepository = RepositoryAbstraction.createImplementation({\n implementation: MovePageRepositoryImpl,\n dependencies: [MoveEntryRepository, GetPageByIdRepository, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,IAAIC,qBAAqB;AACpD,SAASC,SAAS;AAClB,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB,QAAQ,mEAAmE;AACvG,SAASC,qBAAqB;AAE9B,MAAMC,sBAAsB,CAA4C;EACpEC,WAAWA,CACCC,SAAwC,EACxCC,WAA4C,EAC5CC,SAA8B,EACxC;IAAA,KAHUF,SAAwC,GAAxCA,SAAwC;IAAA,KACxCC,WAA4C,GAA5CA,WAA4C;IAAA,KAC5CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOhB,MAAM,CAACiB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;;IAEA;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACV,SAAS,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,EAAEF,MAAM,CAACO,QAAQ,CAAC;IAEvF,IAAID,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOhB,MAAM,CAACiB,IAAI,CAAC,IAAIb,oBAAoB,CAACe,MAAM,CAACD,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMG,SAAiB,GAAG;MACtB,GAAGP,SAAS,CAACQ,KAAK;MAClBC,QAAQ,EAAE;QACNH,QAAQ,EAAEP,MAAM,CAACO;MACrB;IACJ,CAAC;IAED,OAAOpB,MAAM,CAACwB,EAAE,CAACH,SAAS,CAAC;EAC/B;AACJ;AAEA,OAAO,MAAMpB,kBAAkB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EACzEC,cAAc,EAAEnB,sBAAsB;EACtCoB,YAAY,EAAE,CAACtB,mBAAmB,EAAEC,qBAAqB,EAAEH,SAAS;AACxE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/MovePage/MovePageRepository.js","sources":["../../../../src/features/pages/MovePage/MovePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MovePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel, type WbPage } from \"~/domain/page/abstractions.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetPageByIdRepository } from \"~/features/pages/GetPageById/abstractions.js\";\n\nclass MovePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private moveEntry: MoveEntryRepository.Interface,\n private getPageById: GetPageByIdRepository.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the page location with the new folderId\n const result = await this.moveEntry.execute(this.pageModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const movedPage: WbPage = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n\n return Result.ok(movedPage);\n }\n}\n\nexport const MovePageRepository = RepositoryAbstraction.createImplementation({\n implementation: MovePageRepositoryImpl,\n dependencies: [MoveEntryRepository, GetPageByIdRepository, PageModel]\n});\n"],"names":["MovePageRepositoryImpl","moveEntry","getPageById","pageModel","params","getResult","Result","result","PagePersistenceError","movedPage","MovePageRepository","RepositoryAbstraction","MoveEntryRepository","GetPageByIdRepository","PageModel"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,SAAwC,EACxCC,WAA4C,EAC5CC,SAA8B,CACxC;aAHUF,SAAS,GAATA;aACAC,WAAW,GAAXA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACD,OAAO,EAAE;QAE1D,IAAIC,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAItC,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEH,OAAO,EAAE,EAAEA,OAAO,QAAQ;QAEtF,IAAIG,OAAO,MAAM,IACb,OAAOD,OAAO,IAAI,CAAC,IAAIE,qBAAqBD,OAAO,KAAK;QAG5D,MAAME,YAAoB;YACtB,GAAGJ,UAAU,KAAK;YAClB,UAAU;gBACN,UAAUD,OAAO,QAAQ;YAC7B;QACJ;QAEA,OAAOE,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAMC,wCAAqBC,mBAAAA,oBAA0C,CAAC;IACzE,gBAAgBX;IAChB,cAAc;QAACY;QAAqBC;QAAuBC;KAAU;AACzE"}
@@ -1,61 +1,51 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
2
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
- import { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from "./abstractions.js";
4
- import { PageBeforeMoveEvent, PageAfterMoveEvent } from "./events.js";
3
+ import { MovePageRepository, MovePageUseCase } from "./abstractions.js";
4
+ import { PageAfterMoveEvent, PageBeforeMoveEvent } from "./events.js";
5
5
  import { GetPageByIdUseCase } from "../GetPageById/index.js";
6
6
  import { WbPermissions } from "../../permissions/abstractions.js";
7
7
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
8
8
  class MovePageUseCaseImpl {
9
- constructor(permissions, eventPublisher, getPageById, repository) {
10
- this.permissions = permissions;
11
- this.eventPublisher = eventPublisher;
12
- this.getPageById = getPageById;
13
- this.repository = repository;
14
- }
15
- async execute(params) {
16
- const hasPermission = await this.permissions.canEdit("page");
17
- if (!hasPermission) {
18
- return Result.fail(new PageNotAuthorizedError());
9
+ constructor(permissions, eventPublisher, getPageById, repository){
10
+ this.permissions = permissions;
11
+ this.eventPublisher = eventPublisher;
12
+ this.getPageById = getPageById;
13
+ this.repository = repository;
19
14
  }
20
-
21
- // Get the original page for events
22
- const getResult = await this.getPageById.execute(params.id);
23
- if (getResult.isFail()) {
24
- return getResult;
25
- }
26
- const original = getResult.value;
27
- const canEdit = await this.permissions.canEdit("page", original);
28
- if (!canEdit) {
29
- return Result.fail(new PageNotAuthorizedError());
30
- }
31
-
32
- // Publish before move event
33
- const beforeEvent = new PageBeforeMoveEvent({
34
- original,
35
- input: params
36
- });
37
- await this.eventPublisher.publish(beforeEvent);
38
-
39
- // Execute the move operation
40
- const result = await this.repository.execute(params);
41
- if (result.isFail()) {
42
- return result;
15
+ async execute(params) {
16
+ const hasPermission = await this.permissions.canEdit("page");
17
+ if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
18
+ const getResult = await this.getPageById.execute(params.id);
19
+ if (getResult.isFail()) return getResult;
20
+ const original = getResult.value;
21
+ const canEdit = await this.permissions.canEdit("page", original);
22
+ if (!canEdit) return Result.fail(new PageNotAuthorizedError());
23
+ const beforeEvent = new PageBeforeMoveEvent({
24
+ original,
25
+ input: params
26
+ });
27
+ await this.eventPublisher.publish(beforeEvent);
28
+ const result = await this.repository.execute(params);
29
+ if (result.isFail()) return result;
30
+ const afterEvent = new PageAfterMoveEvent({
31
+ original,
32
+ input: params,
33
+ page: result.value
34
+ });
35
+ await this.eventPublisher.publish(afterEvent);
36
+ return Result.ok(result.value);
43
37
  }
44
-
45
- // Publish after move event
46
- const afterEvent = new PageAfterMoveEvent({
47
- original,
48
- input: params,
49
- page: result.value
50
- });
51
- await this.eventPublisher.publish(afterEvent);
52
- return Result.ok(result.value);
53
- }
54
38
  }
55
- export const MovePageUseCase = createImplementation({
56
- abstraction: UseCaseAbstraction,
57
- implementation: MovePageUseCaseImpl,
58
- dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]
39
+ const MovePageUseCase_MovePageUseCase = createImplementation({
40
+ abstraction: MovePageUseCase,
41
+ implementation: MovePageUseCaseImpl,
42
+ dependencies: [
43
+ WbPermissions,
44
+ EventPublisher,
45
+ GetPageByIdUseCase,
46
+ MovePageRepository
47
+ ]
59
48
  });
49
+ export { MovePageUseCase_MovePageUseCase as MovePageUseCase };
60
50
 
61
51
  //# sourceMappingURL=MovePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","MovePageUseCase","UseCaseAbstraction","MovePageRepository","PageBeforeMoveEvent","PageAfterMoveEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","MovePageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canEdit","fail","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","abstraction","implementation","dependencies"],"sources":["MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,eAAe,IAAIC,kBAAkB,EAAEC,kBAAkB;AAClE,SAASC,mBAAmB,EAAEC,kBAAkB;AAChD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,mBAAmB,CAAyC;EAC9DC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,EAClD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAwC,GAAxCA,UAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,QAAQ,GAAGH,SAAS,CAACI,KAAK;IAEhC,MAAMN,OAAO,GAAG,MAAM,IAAI,CAACP,WAAW,CAACO,OAAO,CAAC,MAAM,EAAEK,QAAQ,CAAC;IAChE,IAAI,CAACL,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,mBAAmB,CAAC;MACxCmB,QAAQ;MACRG,KAAK,EAAEV;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,kBAAkB,CAAC;MACtCkB,QAAQ;MACRG,KAAK,EAAEV,MAAM;MACbc,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACiC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,eAAe,GAAGF,oBAAoB,CAAC;EAChDiC,WAAW,EAAE9B,kBAAkB;EAC/B+B,cAAc,EAAExB,mBAAmB;EACnCyB,YAAY,EAAE,CAAC3B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,kBAAkB;AACxF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/MovePage/MovePageUseCase.js","sources":["../../../../src/features/pages/MovePage/MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]\n});\n"],"names":["MovePageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","hasPermission","Result","PageNotAuthorizedError","getResult","original","canEdit","beforeEvent","PageBeforeMoveEvent","result","afterEvent","PageAfterMoveEvent","MovePageUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","MovePageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACrD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE1D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,WAAWD,UAAU,KAAK;QAEhC,MAAME,UAAU,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQD;QACvD,IAAI,CAACC,SACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,oBAAoB;YACxCH;YACA,OAAOL;QACX;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACO;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACT;QAE7C,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,mBAAmB;YACtCN;YACA,OAAOL;YACP,MAAMS,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,kCAAkBC,qBAAqB;IAChD,aAAaC;IACb,gBAAgBnB;IAChB,cAAc;QAACoB;QAAeC;QAAgBC;QAAoBC;KAAmB;AACzF"}
@@ -1,33 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // ============================================================================
4
- // Type Definitions
5
- // ============================================================================
6
-
7
- // ============================================================================
8
- // Repository Abstraction
9
- // ============================================================================
10
-
11
- export const MovePageRepository = createAbstraction("Wb/MovePageRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- /** Move a page to a different folder. */
18
- export const MovePageUseCase = createAbstraction("Wb/MovePageUseCase");
19
-
20
- // ============================================================================
21
- // Event Payload Types
22
- // ============================================================================
23
-
24
- // ============================================================================
25
- // Event Handler Abstractions
26
- // ============================================================================
27
-
28
- /** Hook into page lifecycle before a page is moved. */
29
- export const PageBeforeMoveEventHandler = createAbstraction("Wb/PageBeforeMoveEventHandler");
30
- /** Hook into page lifecycle after a page is moved. */
31
- export const PageAfterMoveEventHandler = createAbstraction("Wb/PageAfterMoveEventHandler");
2
+ const MovePageRepository = createAbstraction("Wb/MovePageRepository");
3
+ const MovePageUseCase = createAbstraction("Wb/MovePageUseCase");
4
+ const PageBeforeMoveEventHandler = createAbstraction("Wb/PageBeforeMoveEventHandler");
5
+ const PageAfterMoveEventHandler = createAbstraction("Wb/PageAfterMoveEventHandler");
6
+ export { MovePageRepository, MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler };
32
7
 
33
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","MovePageRepository","MovePageUseCase","PageBeforeMoveEventHandler","PageAfterMoveEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\n/** Move a page to a different folder. */\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is moved. */\nexport const PageBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveEventHandler\");\n\nexport namespace PageBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is moved. */\nexport const PageAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterMovePayload>>\n>(\"Wb/PageAfterMoveEventHandler\");\n\nexport namespace PageAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAcA;AACA,OAAO,MAAME,eAAe,GAAGF,iBAAiB,CAAmB,oBAAoB,CAAC;;AAUxF;AACA;AACA;;AAaA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,0BAA0B,GAAGH,iBAAiB,CAEzD,+BAA+B,CAAC;AAQlC;AACA,OAAO,MAAMI,yBAAyB,GAAGJ,iBAAiB,CAExD,8BAA8B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/MovePage/abstractions.js","sources":["../../../../src/features/pages/MovePage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\n/** Move a page to a different folder. */\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is moved. */\nexport const PageBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveEventHandler\");\n\nexport namespace PageBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is moved. */\nexport const PageAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterMovePayload>>\n>(\"Wb/PageAfterMoveEventHandler\");\n\nexport namespace PageAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"names":["MovePageRepository","createAbstraction","MovePageUseCase","PageBeforeMoveEventHandler","PageAfterMoveEventHandler"],"mappings":";AAkCO,MAAMA,qBAAqBC,kBAAuC;AA0BlE,MAAMC,kBAAkBD,kBAAoC;AA8B5D,MAAME,6BAA6BF,kBAExC;AASK,MAAMG,4BAA4BH,kBAEvC"}
@@ -1,19 +1,21 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
- import { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from "./abstractions.js";
3
- // PageBeforeMove Event
4
- export class PageBeforeMoveEvent extends DomainEvent {
5
- eventType = "page.beforeMove";
6
- getHandlerAbstraction() {
7
- return PageBeforeMoveEventHandler;
8
- }
2
+ import { PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "./abstractions.js";
3
+ class PageBeforeMoveEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return PageBeforeMoveEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "page.beforeMove";
9
+ }
9
10
  }
10
-
11
- // PageAfterMove Event
12
- export class PageAfterMoveEvent extends DomainEvent {
13
- eventType = "page.afterMove";
14
- getHandlerAbstraction() {
15
- return PageAfterMoveEventHandler;
16
- }
11
+ class PageAfterMoveEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return PageAfterMoveEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "page.afterMove";
17
+ }
17
18
  }
19
+ export { PageAfterMoveEvent, PageBeforeMoveEvent };
18
20
 
19
21
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeMoveEventHandler","PageAfterMoveEventHandler","PageBeforeMoveEvent","eventType","getHandlerAbstraction","PageAfterMoveEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveEventHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,0BAA0B,EAAEC,yBAAyB;AAG9D;AACA,OAAO,MAAMC,mBAAmB,SAASH,WAAW,CAAwB;EACxEI,SAAS,GAAG,iBAAiB;EAE7BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,0BAA0B;EACrC;AACJ;;AAEA;AACA,OAAO,MAAMK,kBAAkB,SAASN,WAAW,CAAuB;EACtEI,SAAS,GAAG,gBAAgB;EAE5BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,yBAAyB;EACpC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/MovePage/events.js","sources":["../../../../src/features/pages/MovePage/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveEventHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveEventHandler;\n }\n}\n"],"names":["PageBeforeMoveEvent","DomainEvent","PageBeforeMoveEventHandler","PageAfterMoveEvent","PageAfterMoveEventHandler"],"mappings":";;AAKO,MAAMA,4BAA4BC;IAGrC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,2BAA2BF;IAGpC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { MovePageRepository } from "./MovePageRepository.js";
3
3
  import { MovePageUseCase } from "./MovePageUseCase.js";
4
- export const MovePageFeature = createFeature({
5
- name: "WebsiteBuilder/MovePage",
6
- register(container) {
7
- container.register(MovePageRepository).inSingletonScope();
8
- container.register(MovePageUseCase);
9
- }
4
+ const MovePageFeature = createFeature({
5
+ name: "WebsiteBuilder/MovePage",
6
+ register (container) {
7
+ container.register(MovePageRepository).inSingletonScope();
8
+ container.register(MovePageUseCase);
9
+ }
10
10
  });
11
+ export { MovePageFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","MovePageRepository","MovePageUseCase","MovePageFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MovePageRepository } from \"./MovePageRepository.js\";\nimport { MovePageUseCase } from \"./MovePageUseCase.js\";\n\nexport const MovePageFeature = createFeature({\n name: \"WebsiteBuilder/MovePage\",\n register(container) {\n container.register(MovePageRepository).inSingletonScope();\n container.register(MovePageUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AAExB,OAAO,MAAMC,eAAe,GAAGH,aAAa,CAAC;EACzCI,IAAI,EAAE,yBAAyB;EAC/BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,kBAAkB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACzDD,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;EACvC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/MovePage/feature.js","sources":["../../../../src/features/pages/MovePage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MovePageRepository } from \"./MovePageRepository.js\";\nimport { MovePageUseCase } from \"./MovePageUseCase.js\";\n\nexport const MovePageFeature = createFeature({\n name: \"WebsiteBuilder/MovePage\",\n register(container) {\n container.register(MovePageRepository).inSingletonScope();\n container.register(MovePageUseCase);\n }\n});\n"],"names":["MovePageFeature","createFeature","container","MovePageRepository","MovePageUseCase"],"mappings":";;;AAIO,MAAMA,kBAAkBC,cAAc;IACzC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,oBAAoB,gBAAgB;QACvDD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -1,3 +1 @@
1
- export { PageAfterMoveEventHandler, PageBeforeMoveEventHandler, MovePageUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "./abstractions.js";
@@ -1,41 +1,39 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { PublishPageRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { PublishPageRepository } from "./abstractions.js";
3
3
  import { PublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry";
4
4
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
5
5
  import { PageModel } from "../../../domain/page/abstractions.js";
6
6
  import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
7
7
  import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
8
8
  class PublishPageRepositoryImpl {
9
- constructor(publishEntry, getEntryById, pageModel) {
10
- this.publishEntry = publishEntry;
11
- this.getEntryById = getEntryById;
12
- this.pageModel = pageModel;
13
- }
14
- async execute(params) {
15
- // First, validate the page exists
16
- const getResult = await this.getEntryById.execute(this.pageModel, params.id);
17
- if (getResult.isFail()) {
18
- if (getResult.error.code === "Cms/Entry/NotFound") {
19
- return Result.fail(new PageNotFoundError(params.id));
20
- }
21
- return Result.fail(new PagePersistenceError(getResult.error));
9
+ constructor(publishEntry, getEntryById, pageModel){
10
+ this.publishEntry = publishEntry;
11
+ this.getEntryById = getEntryById;
12
+ this.pageModel = pageModel;
22
13
  }
23
-
24
- // Publish the entry
25
- const result = await this.publishEntry.execute(this.pageModel, params.id);
26
- if (result.isFail()) {
27
- if (result.error.code === "Cms/Entry/NotFound") {
28
- return Result.fail(new PageNotFoundError(params.id));
29
- }
30
- return Result.fail(new PagePersistenceError(result.error));
14
+ async execute(params) {
15
+ const getResult = await this.getEntryById.execute(this.pageModel, params.id);
16
+ if (getResult.isFail()) {
17
+ if ("Cms/Entry/NotFound" === getResult.error.code) return Result.fail(new PageNotFoundError(params.id));
18
+ return Result.fail(new PagePersistenceError(getResult.error));
19
+ }
20
+ const result = await this.publishEntry.execute(this.pageModel, params.id);
21
+ if (result.isFail()) {
22
+ if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(params.id));
23
+ return Result.fail(new PagePersistenceError(result.error));
24
+ }
25
+ const page = EntryToPageMapper.toPage(result.value);
26
+ return Result.ok(page);
31
27
  }
32
- const page = EntryToPageMapper.toPage(result.value);
33
- return Result.ok(page);
34
- }
35
28
  }
36
- export const PublishPageRepository = RepositoryAbstraction.createImplementation({
37
- implementation: PublishPageRepositoryImpl,
38
- dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]
29
+ const PublishPageRepository_PublishPageRepository = PublishPageRepository.createImplementation({
30
+ implementation: PublishPageRepositoryImpl,
31
+ dependencies: [
32
+ PublishEntryUseCase,
33
+ GetEntryByIdUseCase,
34
+ PageModel
35
+ ]
39
36
  });
37
+ export { PublishPageRepository_PublishPageRepository as PublishPageRepository };
40
38
 
41
39
  //# sourceMappingURL=PublishPageRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","PublishPageRepository","RepositoryAbstraction","PublishEntryUseCase","GetEntryByIdUseCase","PageModel","EntryToPageMapper","PageNotFoundError","PagePersistenceError","PublishPageRepositoryImpl","constructor","publishEntry","getEntryById","pageModel","execute","params","getResult","id","isFail","error","code","fail","result","page","toPage","value","ok","createImplementation","implementation","dependencies"],"sources":["PublishPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { PublishPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/PublishEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass PublishPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private publishEntry: PublishEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, params.id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Publish the entry\n const result = await this.publishEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const PublishPageRepository = RepositoryAbstraction.createImplementation({\n implementation: PublishPageRepositoryImpl,\n dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,qBAAqB,IAAIC,qBAAqB;AACvD,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,yBAAyB,CAA4C;EACvEC,WAAWA,CACCC,YAA2C,EAC3CC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAE5E,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,IAAIF,SAAS,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOjB,MAAM,CAACqB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,SAAS,CAACG,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,YAAY,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAEzE,IAAIK,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOjB,MAAM,CAACqB,IAAI,CAAC,IAAIb,oBAAoB,CAACc,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMI,IAAI,GAAGjB,iBAAiB,CAACkB,MAAM,CAACF,MAAM,CAACG,KAAK,CAAC;IACnD,OAAOzB,MAAM,CAAC0B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMtB,qBAAqB,GAAGC,qBAAqB,CAACyB,oBAAoB,CAAC;EAC5EC,cAAc,EAAEnB,yBAAyB;EACzCoB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,mBAAmB,EAAEC,SAAS;AACtE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/PublishPage/PublishPageRepository.js","sources":["../../../../src/features/pages/PublishPage/PublishPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { PublishPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/PublishEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass PublishPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private publishEntry: PublishEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, params.id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Publish the entry\n const result = await this.publishEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const PublishPageRepository = RepositoryAbstraction.createImplementation({\n implementation: PublishPageRepositoryImpl,\n dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"names":["PublishPageRepositoryImpl","publishEntry","getEntryById","pageModel","params","getResult","Result","PageNotFoundError","PagePersistenceError","result","page","EntryToPageMapper","PublishPageRepository","RepositoryAbstraction","PublishEntryUseCase","GetEntryByIdUseCase","PageModel"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,YAA2C,EAC3CC,SAA8B,CACxC;aAHUF,YAAY,GAAZA;aACAC,YAAY,GAAZA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,OAAO,EAAE;QAE3E,IAAIC,UAAU,MAAM,IAAI;YACpB,IAAIA,AAAyB,yBAAzBA,UAAU,KAAK,CAAC,IAAI,EACpB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,UAAU,KAAK;QAC/D;QAGA,MAAMI,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEL,OAAO,EAAE;QAExE,IAAIK,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBC,OAAO,KAAK;QAC5D;QAEA,MAAMC,OAAOC,kBAAkB,MAAM,CAACF,OAAO,KAAK;QAClD,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAME,8CAAwBC,sBAAAA,oBAA0C,CAAC;IAC5E,gBAAgBb;IAChB,cAAc;QAACc;QAAqBC;QAAqBC;KAAU;AACvE"}
@@ -1,58 +1,48 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
2
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
- import { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from "./abstractions.js";
4
- import { PageBeforePublishEvent, PageAfterPublishEvent } from "./events.js";
3
+ import { PublishPageRepository, PublishPageUseCase } from "./abstractions.js";
4
+ import { PageAfterPublishEvent, PageBeforePublishEvent } from "./events.js";
5
5
  import { GetPageByIdUseCase } from "../GetPageById/index.js";
6
6
  import { WbPermissions } from "../../permissions/abstractions.js";
7
7
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
8
8
  class PublishPageUseCaseImpl {
9
- constructor(permissions, eventPublisher, getPageById, repository) {
10
- this.permissions = permissions;
11
- this.eventPublisher = eventPublisher;
12
- this.getPageById = getPageById;
13
- this.repository = repository;
14
- }
15
- async execute(params) {
16
- const hasPermission = await this.permissions.canPublish("page");
17
- if (!hasPermission) {
18
- return Result.fail(new PageNotAuthorizedError());
9
+ constructor(permissions, eventPublisher, getPageById, repository){
10
+ this.permissions = permissions;
11
+ this.eventPublisher = eventPublisher;
12
+ this.getPageById = getPageById;
13
+ this.repository = repository;
19
14
  }
20
-
21
- // Get the page first for the before event
22
- const getResult = await this.getPageById.execute(params.id);
23
- if (getResult.isFail()) {
24
- return getResult;
25
- }
26
- const page = getResult.value;
27
- const canAccess = await this.permissions.canAccess("page", page);
28
- if (!canAccess) {
29
- return Result.fail(new PageNotAuthorizedError());
30
- }
31
-
32
- // Publish before publish event
33
- const beforeEvent = new PageBeforePublishEvent({
34
- page
35
- });
36
- await this.eventPublisher.publish(beforeEvent);
37
-
38
- // Execute the publish operation
39
- const result = await this.repository.execute(params);
40
- if (result.isFail()) {
41
- return result;
15
+ async execute(params) {
16
+ const hasPermission = await this.permissions.canPublish("page");
17
+ if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
18
+ const getResult = await this.getPageById.execute(params.id);
19
+ if (getResult.isFail()) return getResult;
20
+ const page = getResult.value;
21
+ const canAccess = await this.permissions.canAccess("page", page);
22
+ if (!canAccess) return Result.fail(new PageNotAuthorizedError());
23
+ const beforeEvent = new PageBeforePublishEvent({
24
+ page
25
+ });
26
+ await this.eventPublisher.publish(beforeEvent);
27
+ const result = await this.repository.execute(params);
28
+ if (result.isFail()) return result;
29
+ const afterEvent = new PageAfterPublishEvent({
30
+ page: result.value
31
+ });
32
+ await this.eventPublisher.publish(afterEvent);
33
+ return Result.ok(result.value);
42
34
  }
43
-
44
- // Publish after publish event
45
- const afterEvent = new PageAfterPublishEvent({
46
- page: result.value
47
- });
48
- await this.eventPublisher.publish(afterEvent);
49
- return Result.ok(result.value);
50
- }
51
35
  }
52
- export const PublishPageUseCase = createImplementation({
53
- abstraction: UseCaseAbstraction,
54
- implementation: PublishPageUseCaseImpl,
55
- dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]
36
+ const PublishPageUseCase_PublishPageUseCase = createImplementation({
37
+ abstraction: PublishPageUseCase,
38
+ implementation: PublishPageUseCaseImpl,
39
+ dependencies: [
40
+ WbPermissions,
41
+ EventPublisher,
42
+ GetPageByIdUseCase,
43
+ PublishPageRepository
44
+ ]
56
45
  });
46
+ export { PublishPageUseCase_PublishPageUseCase as PublishPageUseCase };
57
47
 
58
48
  //# sourceMappingURL=PublishPageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","PublishPageUseCase","UseCaseAbstraction","PublishPageRepository","PageBeforePublishEvent","PageAfterPublishEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","PublishPageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canPublish","fail","getResult","id","isFail","page","value","canAccess","beforeEvent","publish","result","afterEvent","ok","abstraction","implementation","dependencies"],"sources":["PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canPublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AACxE,SAASC,sBAAsB,EAAEC,qBAAqB;AACtD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,UAAU,CAAC,MAAM,CAAC;IAC/D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,IAAI,GAAGH,SAAS,CAACI,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACd,WAAW,CAACc,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAO3B,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAItB,sBAAsB,CAAC;MAC3CmB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,cAAc,CAACe,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB,IAAI,EAAEK,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACgC,EAAE,CAACF,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,kBAAkB,GAAGF,oBAAoB,CAAC;EACnDgC,WAAW,EAAE7B,kBAAkB;EAC/B8B,cAAc,EAAEvB,sBAAsB;EACtCwB,YAAY,EAAE,CAAC1B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,qBAAqB;AAC3F,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/PublishPage/PublishPageUseCase.js","sources":["../../../../src/features/pages/PublishPage/PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canPublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]\n});\n"],"names":["PublishPageUseCaseImpl","permissions","eventPublisher","getPageById","repository","params","hasPermission","Result","PageNotAuthorizedError","getResult","page","canAccess","beforeEvent","PageBeforePublishEvent","result","afterEvent","PageAfterPublishEvent","PublishPageUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","PublishPageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,CACrD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACxD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE1D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,OAAOD,UAAU,KAAK;QAE5B,MAAME,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQD;QAC3D,IAAI,CAACC,WACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,uBAAuB;YAC3CH;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACE;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACT;QAE7C,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,sBAAsB;YACzC,MAAMF,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,wCAAqBC,qBAAqB;IACnD,aAAaC;IACb,gBAAgBnB;IAChB,cAAc;QAACoB;QAAeC;QAAgBC;QAAoBC;KAAsB;AAC5F"}
@@ -1,33 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // ============================================================================
4
- // Type Definitions
5
- // ============================================================================
6
-
7
- // ============================================================================
8
- // Repository Abstraction
9
- // ============================================================================
10
-
11
- export const PublishPageRepository = createAbstraction("Wb/PublishPageRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- /** Publish a page. */
18
- export const PublishPageUseCase = createAbstraction("Wb/PublishPageUseCase");
19
-
20
- // ============================================================================
21
- // Event Payload Types
22
- // ============================================================================
23
-
24
- // ============================================================================
25
- // Event Handler Abstractions
26
- // ============================================================================
27
-
28
- /** Hook into page lifecycle before a page is published. */
29
- export const PageBeforePublishEventHandler = createAbstraction("Wb/PageBeforePublishEventHandler");
30
- /** Hook into page lifecycle after a page is published. */
31
- export const PageAfterPublishEventHandler = createAbstraction("Wb/PageAfterPublishEventHandler");
2
+ const PublishPageRepository = createAbstraction("Wb/PublishPageRepository");
3
+ const PublishPageUseCase = createAbstraction("Wb/PublishPageUseCase");
4
+ const PageBeforePublishEventHandler = createAbstraction("Wb/PageBeforePublishEventHandler");
5
+ const PageAfterPublishEventHandler = createAbstraction("Wb/PageAfterPublishEventHandler");
6
+ export { PageAfterPublishEventHandler, PageBeforePublishEventHandler, PublishPageRepository, PublishPageUseCase };
32
7
 
33
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","PublishPageRepository","PublishPageUseCase","PageBeforePublishEventHandler","PageAfterPublishEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\n/** Publish a page. */\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is published. */\nexport const PageBeforePublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishEventHandler\");\n\nexport namespace PageBeforePublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is published. */\nexport const PageAfterPublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishEventHandler\");\n\nexport namespace PageAfterPublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AAUjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC;AACA,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/PublishPage/abstractions.js","sources":["../../../../src/features/pages/PublishPage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\n/** Publish a page. */\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is published. */\nexport const PageBeforePublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishEventHandler\");\n\nexport namespace PageBeforePublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is published. */\nexport const PageAfterPublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishEventHandler\");\n\nexport namespace PageAfterPublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"names":["PublishPageRepository","createAbstraction","PublishPageUseCase","PageBeforePublishEventHandler","PageAfterPublishEventHandler"],"mappings":";AAiCO,MAAMA,wBAAwBC,kBACjC;AA2BG,MAAMC,qBAAqBD,kBAAuC;AA2BlE,MAAME,gCAAgCF,kBAE3C;AASK,MAAMG,+BAA+BH,kBAE1C"}