@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,19 +1,21 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
- import { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from "./abstractions.js";
3
- // PageBeforePublish Event
4
- export class PageBeforePublishEvent extends DomainEvent {
5
- eventType = "page.beforePublish";
6
- getHandlerAbstraction() {
7
- return PageBeforePublishEventHandler;
8
- }
2
+ import { PageAfterPublishEventHandler, PageBeforePublishEventHandler } from "./abstractions.js";
3
+ class PageBeforePublishEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return PageBeforePublishEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "page.beforePublish";
9
+ }
9
10
  }
10
-
11
- // PageAfterPublish Event
12
- export class PageAfterPublishEvent extends DomainEvent {
13
- eventType = "page.afterPublish";
14
- getHandlerAbstraction() {
15
- return PageAfterPublishEventHandler;
16
- }
11
+ class PageAfterPublishEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return PageAfterPublishEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "page.afterPublish";
17
+ }
17
18
  }
19
+ export { PageAfterPublishEvent, PageBeforePublishEvent };
18
20
 
19
21
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforePublishEventHandler","PageAfterPublishEventHandler","PageBeforePublishEvent","eventType","getHandlerAbstraction","PageAfterPublishEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from \"./abstractions.js\";\nimport type { PageBeforePublishPayload, PageAfterPublishPayload } from \"./abstractions.js\";\n\n// PageBeforePublish Event\nexport class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {\n eventType = \"page.beforePublish\" as const;\n\n getHandlerAbstraction() {\n return PageBeforePublishEventHandler;\n }\n}\n\n// PageAfterPublish Event\nexport class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {\n eventType = \"page.afterPublish\" as const;\n\n getHandlerAbstraction() {\n return PageAfterPublishEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/PublishPage/events.js","sources":["../../../../src/features/pages/PublishPage/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from \"./abstractions.js\";\nimport type { PageBeforePublishPayload, PageAfterPublishPayload } from \"./abstractions.js\";\n\n// PageBeforePublish Event\nexport class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {\n eventType = \"page.beforePublish\" as const;\n\n getHandlerAbstraction() {\n return PageBeforePublishEventHandler;\n }\n}\n\n// PageAfterPublish Event\nexport class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {\n eventType = \"page.afterPublish\" as const;\n\n getHandlerAbstraction() {\n return PageAfterPublishEventHandler;\n }\n}\n"],"names":["PageBeforePublishEvent","DomainEvent","PageBeforePublishEventHandler","PageAfterPublishEvent","PageAfterPublishEventHandler"],"mappings":";;AAKO,MAAMA,+BAA+BC;IAGxC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,8BAA8BF;IAGvC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { PublishPageRepository } from "./PublishPageRepository.js";
3
3
  import { PublishPageUseCase } from "./PublishPageUseCase.js";
4
- export const PublishPageFeature = createFeature({
5
- name: "WebsiteBuilder/PublishPage",
6
- register(container) {
7
- container.register(PublishPageRepository).inSingletonScope();
8
- container.register(PublishPageUseCase);
9
- }
4
+ const PublishPageFeature = createFeature({
5
+ name: "WebsiteBuilder/PublishPage",
6
+ register (container) {
7
+ container.register(PublishPageRepository).inSingletonScope();
8
+ container.register(PublishPageUseCase);
9
+ }
10
10
  });
11
+ export { PublishPageFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","PublishPageRepository","PublishPageUseCase","PublishPageFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { PublishPageRepository } from \"./PublishPageRepository.js\";\nimport { PublishPageUseCase } from \"./PublishPageUseCase.js\";\n\nexport const PublishPageFeature = createFeature({\n name: \"WebsiteBuilder/PublishPage\",\n register(container) {\n container.register(PublishPageRepository).inSingletonScope();\n container.register(PublishPageUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,kBAAkB,GAAGH,aAAa,CAAC;EAC5CI,IAAI,EAAE,4BAA4B;EAClCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,qBAAqB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC5DD,SAAS,CAACD,QAAQ,CAACH,kBAAkB,CAAC;EAC1C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/PublishPage/feature.js","sources":["../../../../src/features/pages/PublishPage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { PublishPageRepository } from \"./PublishPageRepository.js\";\nimport { PublishPageUseCase } from \"./PublishPageUseCase.js\";\n\nexport const PublishPageFeature = createFeature({\n name: \"WebsiteBuilder/PublishPage\",\n register(container) {\n container.register(PublishPageRepository).inSingletonScope();\n container.register(PublishPageUseCase);\n }\n});\n"],"names":["PublishPageFeature","createFeature","container","PublishPageRepository","PublishPageUseCase"],"mappings":";;;AAIO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uBAAuB,gBAAgB;QAC1DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export { PageAfterPublishEventHandler, PageBeforePublishEventHandler, PublishPageUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,30 +1,31 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { RestoreEntryFromBinUseCase } from "@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin";
3
- import { RestorePageRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { RestorePageRepository } from "./abstractions.js";
4
4
  import { PageModel } from "../../../domain/page/abstractions.js";
5
5
  import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
6
6
  import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
7
7
  class RestorePageRepositoryImpl {
8
- constructor(restoreEntry, pageModel) {
9
- this.restoreEntry = restoreEntry;
10
- this.pageModel = pageModel;
11
- }
12
- async execute(params) {
13
- // Restore the entry
14
- const result = await this.restoreEntry.execute(this.pageModel, params.id);
15
- if (result.isFail()) {
16
- if (result.error.code === "Cms/Entry/NotFound") {
17
- return Result.fail(new PageNotFoundError(params.id));
18
- }
19
- return Result.fail(new PagePersistenceError(result.error));
8
+ constructor(restoreEntry, pageModel){
9
+ this.restoreEntry = restoreEntry;
10
+ this.pageModel = pageModel;
11
+ }
12
+ async execute(params) {
13
+ const result = await this.restoreEntry.execute(this.pageModel, params.id);
14
+ if (result.isFail()) {
15
+ if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(params.id));
16
+ return Result.fail(new PagePersistenceError(result.error));
17
+ }
18
+ const page = EntryToPageMapper.toPage(result.value);
19
+ return Result.ok(page);
20
20
  }
21
- const page = EntryToPageMapper.toPage(result.value);
22
- return Result.ok(page);
23
- }
24
21
  }
25
- export const RestorePageRepository = RepositoryAbstraction.createImplementation({
26
- implementation: RestorePageRepositoryImpl,
27
- dependencies: [RestoreEntryFromBinUseCase, PageModel]
22
+ const RestorePageRepository_RestorePageRepository = RestorePageRepository.createImplementation({
23
+ implementation: RestorePageRepositoryImpl,
24
+ dependencies: [
25
+ RestoreEntryFromBinUseCase,
26
+ PageModel
27
+ ]
28
28
  });
29
+ export { RestorePageRepository_RestorePageRepository as RestorePageRepository };
29
30
 
30
31
  //# sourceMappingURL=RestorePageRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","RestoreEntryFromBinUseCase","RestorePageRepository","RepositoryAbstraction","PageModel","PageNotFoundError","PagePersistenceError","EntryToPageMapper","RestorePageRepositoryImpl","constructor","restoreEntry","pageModel","execute","params","result","id","isFail","error","code","fail","page","toPage","value","ok","createImplementation","implementation","dependencies"],"sources":["RestorePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { RestoreEntryFromBinUseCase } from \"@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin\";\nimport { RestorePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\n\nclass RestorePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private restoreEntry: RestoreEntryFromBinUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Restore the entry\n const result = await this.restoreEntry.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 RestorePageRepository = RepositoryAbstraction.createImplementation({\n implementation: RestorePageRepositoryImpl,\n dependencies: [RestoreEntryFromBinUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,0BAA0B,QAAQ,oEAAoE;AAC/G,SAASC,qBAAqB,IAAIC,qBAAqB;AACvD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAChD,SAASC,iBAAiB;AAE1B,MAAMC,yBAAyB,CAA4C;EACvEC,WAAWA,CACCC,YAAkD,EAClDC,SAA8B,EACxC;IAAA,KAFUD,YAAkD,GAAlDA,YAAkD;IAAA,KAClDC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAEzE,IAAID,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOlB,MAAM,CAACmB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOf,MAAM,CAACmB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMG,IAAI,GAAGb,iBAAiB,CAACc,MAAM,CAACP,MAAM,CAACQ,KAAK,CAAC;IACnD,OAAOtB,MAAM,CAACuB,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMlB,qBAAqB,GAAGC,qBAAqB,CAACqB,oBAAoB,CAAC;EAC5EC,cAAc,EAAEjB,yBAAyB;EACzCkB,YAAY,EAAE,CAACzB,0BAA0B,EAAEG,SAAS;AACxD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/RestorePage/RestorePageRepository.js","sources":["../../../../src/features/pages/RestorePage/RestorePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { RestoreEntryFromBinUseCase } from \"@webiny/api-headless-cms/features/contentEntry/RestoreEntryFromBin\";\nimport { RestorePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\n\nclass RestorePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private restoreEntry: RestoreEntryFromBinUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Restore the entry\n const result = await this.restoreEntry.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 RestorePageRepository = RepositoryAbstraction.createImplementation({\n implementation: RestorePageRepositoryImpl,\n dependencies: [RestoreEntryFromBinUseCase, PageModel]\n});\n"],"names":["RestorePageRepositoryImpl","restoreEntry","pageModel","params","result","Result","PageNotFoundError","PagePersistenceError","page","EntryToPageMapper","RestorePageRepository","RepositoryAbstraction","RestoreEntryFromBinUseCase","PageModel"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,YAAkD,EAClDC,SAA8B,CACxC;aAFUD,YAAY,GAAZA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,OAAO,EAAE;QAExE,IAAIC,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBH,OAAO,EAAE;YAEtD,OAAOE,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,OAAO,KAAK;QAC5D;QAEA,MAAMI,OAAOC,kBAAkB,MAAM,CAACL,OAAO,KAAK;QAClD,OAAOC,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAME,8CAAwBC,sBAAAA,oBAA0C,CAAC;IAC5E,gBAAgBX;IAChB,cAAc;QAACY;QAA4BC;KAAU;AACzD"}
@@ -1,52 +1,45 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
- import { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { RestorePageRepository, RestorePageUseCase } from "./abstractions.js";
4
4
  import { PageAfterRestoreEvent, PageBeforeRestoreEvent } from "./events.js";
5
5
  import { WbPermissions } from "../../permissions/abstractions.js";
6
6
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
7
7
  import { GetDeletedPageByIdUseCase } from "../GetDeletedPageById/index.js";
8
8
  class RestorePageUseCaseImpl {
9
- constructor(permissions, eventPublisher, getDeletedPageById, repository) {
10
- this.permissions = permissions;
11
- this.eventPublisher = eventPublisher;
12
- this.getDeletedPageById = getDeletedPageById;
13
- this.repository = repository;
14
- }
15
- async execute(params) {
16
- // Get the page first to include in events and for item-level permission check
17
- const getResult = await this.getDeletedPageById.execute(params.id);
18
- if (getResult.isFail()) {
19
- return Result.fail(getResult.error);
9
+ constructor(permissions, eventPublisher, getDeletedPageById, repository){
10
+ this.permissions = permissions;
11
+ this.eventPublisher = eventPublisher;
12
+ this.getDeletedPageById = getDeletedPageById;
13
+ this.repository = repository;
20
14
  }
21
- const page = getResult.value;
22
- const canDelete = await this.permissions.canDelete("page", page);
23
- if (!canDelete) {
24
- return Result.fail(new PageNotAuthorizedError());
15
+ async execute(params) {
16
+ const getResult = await this.getDeletedPageById.execute(params.id);
17
+ if (getResult.isFail()) return Result.fail(getResult.error);
18
+ const page = getResult.value;
19
+ const canDelete = await this.permissions.canDelete("page", page);
20
+ if (!canDelete) return Result.fail(new PageNotAuthorizedError());
21
+ const beforeEvent = new PageBeforeRestoreEvent({
22
+ page
23
+ });
24
+ await this.eventPublisher.publish(beforeEvent);
25
+ const result = await this.repository.execute(params);
26
+ if (result.isFail()) return result;
27
+ const afterEvent = new PageAfterRestoreEvent({
28
+ page
29
+ });
30
+ await this.eventPublisher.publish(afterEvent);
31
+ return result;
25
32
  }
26
-
27
- // Publish before delete event
28
- const beforeEvent = new PageBeforeRestoreEvent({
29
- page
30
- });
31
- await this.eventPublisher.publish(beforeEvent);
32
-
33
- // Execute the delete operation
34
- const result = await this.repository.execute(params);
35
- if (result.isFail()) {
36
- return result;
37
- }
38
-
39
- // Publish after delete event
40
- const afterEvent = new PageAfterRestoreEvent({
41
- page
42
- });
43
- await this.eventPublisher.publish(afterEvent);
44
- return result;
45
- }
46
33
  }
47
- export const RestorePageUseCase = UseCaseAbstraction.createImplementation({
48
- implementation: RestorePageUseCaseImpl,
49
- dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]
34
+ const RestorePageUseCase_RestorePageUseCase = RestorePageUseCase.createImplementation({
35
+ implementation: RestorePageUseCaseImpl,
36
+ dependencies: [
37
+ WbPermissions,
38
+ EventPublisher,
39
+ GetDeletedPageByIdUseCase,
40
+ RestorePageRepository
41
+ ]
50
42
  });
43
+ export { RestorePageUseCase_RestorePageUseCase as RestorePageUseCase };
51
44
 
52
45
  //# sourceMappingURL=RestorePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","RestorePageRepository","RestorePageUseCase","UseCaseAbstraction","PageAfterRestoreEvent","PageBeforeRestoreEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","RestorePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","createImplementation","implementation","dependencies"],"sources":["RestorePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterRestoreEvent, PageBeforeRestoreEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass RestorePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: RestorePageRepository.Interface\n ) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return result;\n }\n}\n\nexport const RestorePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: RestorePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,qBAAqB,EAAEC,kBAAkB,IAAIC,kBAAkB;AACxE,SAASC,qBAAqB,EAAEC,sBAAsB;AACtD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,kBAAkB,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAElE,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIb,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAIpB,sBAAsB,CAAC;MAC3CiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOD,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMzB,kBAAkB,GAAGC,kBAAkB,CAAC0B,oBAAoB,CAAC;EACtEC,cAAc,EAAErB,sBAAsB;EACtCsB,YAAY,EAAE,CAACzB,aAAa,EAAEN,cAAc,EAAEQ,yBAAyB,EAAEP,qBAAqB;AAClG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/RestorePage/RestorePageUseCase.js","sources":["../../../../src/features/pages/RestorePage/RestorePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterRestoreEvent, PageBeforeRestoreEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass RestorePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: RestorePageRepository.Interface\n ) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return result;\n }\n}\n\nexport const RestorePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: RestorePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]\n});\n"],"names":["RestorePageUseCaseImpl","permissions","eventPublisher","getDeletedPageById","repository","params","getResult","Result","page","canDelete","PageNotAuthorizedError","beforeEvent","PageBeforeRestoreEvent","result","afterEvent","PageAfterRestoreEvent","RestorePageUseCase","UseCaseAbstraction","WbPermissions","EventPublisher","GetDeletedPageByIdUseCase","RestorePageRepository"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA2C,CACrD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,kBAAkB,GAAlBA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAa,QAAQC,MAAiC,EAA6B;QAE/E,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,OAAO,EAAE;QAEjE,IAAIC,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,OAAOF,UAAU,KAAK;QAE5B,MAAMG,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQD;QAC3D,IAAI,CAACC,WACD,OAAOF,OAAO,IAAI,CAAC,IAAIG;QAI3B,MAAMC,cAAc,IAAIC,uBAAuB;YAC3CJ;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACG;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACR;QAE7C,IAAIQ,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,sBAAsB;YACzCP;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACM;QAElC,OAAOD;IACX;AACJ;AAEO,MAAMG,wCAAqBC,mBAAAA,oBAAuC,CAAC;IACtE,gBAAgBjB;IAChB,cAAc;QAACkB;QAAeC;QAAgBC;QAA2BC;KAAsB;AACnG"}
@@ -1,30 +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 RestorePageRepository = createAbstraction("Wb/RestorePageRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- export const RestorePageUseCase = createAbstraction("Wb/RestorePageUseCase");
18
-
19
- // ============================================================================
20
- // Event Payload Types
21
- // ============================================================================
22
-
23
- // ============================================================================
24
- // Event Handler Abstractions
25
- // ============================================================================
26
-
27
- export const PageBeforeRestoreEventHandler = createAbstraction("Wb/PageBeforeRestoreEventHandler");
28
- export const PageAfterRestoreEventHandler = createAbstraction("Wb/PageAfterRestoreEventHandler");
2
+ const RestorePageRepository = createAbstraction("Wb/RestorePageRepository");
3
+ const RestorePageUseCase = createAbstraction("Wb/RestorePageUseCase");
4
+ const PageBeforeRestoreEventHandler = createAbstraction("Wb/PageBeforeRestoreEventHandler");
5
+ const PageAfterRestoreEventHandler = createAbstraction("Wb/PageAfterRestoreEventHandler");
6
+ export { PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler, RestorePageRepository, RestorePageUseCase };
29
7
 
30
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","RestorePageRepository","RestorePageUseCase","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler"],"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 type {\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IRestoreWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IRestorePageRepository {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IRestorePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IRestorePageRepositoryErrors[keyof IRestorePageRepositoryErrors];\n\nexport const RestorePageRepository = createAbstraction<IRestorePageRepository>(\n \"Wb/RestorePageRepository\"\n);\n\nexport namespace RestorePageRepository {\n export type Interface = IRestorePageRepository;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IRestorePageUseCase {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IRestorePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IRestorePageUseCaseErrors[keyof IRestorePageUseCaseErrors];\n\nexport const RestorePageUseCase = createAbstraction<IRestorePageUseCase>(\"Wb/RestorePageUseCase\");\n\nexport namespace RestorePageUseCase {\n export type Interface = IRestorePageUseCase;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeRestorePayload {\n page: WbPage;\n}\n\nexport interface PageAfterRestorePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeRestorePayload>>\n>(\"Wb/PageBeforeRestoreEventHandler\");\n\nexport namespace PageBeforeRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeRestorePayload>>;\n export type Event = DomainEvent<PageBeforeRestorePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterRestorePayload>>\n>(\"Wb/PageAfterRestoreEventHandler\");\n\nexport namespace PageAfterRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterRestorePayload>>;\n export type Event = DomainEvent<PageAfterRestorePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAeA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/RestorePage/abstractions.js","sources":["../../../../src/features/pages/RestorePage/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 type {\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IRestoreWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IRestorePageRepository {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IRestorePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IRestorePageRepositoryErrors[keyof IRestorePageRepositoryErrors];\n\nexport const RestorePageRepository = createAbstraction<IRestorePageRepository>(\n \"Wb/RestorePageRepository\"\n);\n\nexport namespace RestorePageRepository {\n export type Interface = IRestorePageRepository;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IRestorePageUseCase {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IRestorePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IRestorePageUseCaseErrors[keyof IRestorePageUseCaseErrors];\n\nexport const RestorePageUseCase = createAbstraction<IRestorePageUseCase>(\"Wb/RestorePageUseCase\");\n\nexport namespace RestorePageUseCase {\n export type Interface = IRestorePageUseCase;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeRestorePayload {\n page: WbPage;\n}\n\nexport interface PageAfterRestorePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeRestorePayload>>\n>(\"Wb/PageBeforeRestoreEventHandler\");\n\nexport namespace PageBeforeRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeRestorePayload>>;\n export type Event = DomainEvent<PageBeforeRestorePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterRestorePayload>>\n>(\"Wb/PageAfterRestoreEventHandler\");\n\nexport namespace PageAfterRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterRestorePayload>>;\n export type Event = DomainEvent<PageAfterRestorePayload>;\n export type Page = WbPage;\n}\n"],"names":["RestorePageRepository","createAbstraction","RestorePageUseCase","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler"],"mappings":";AAkCO,MAAMA,wBAAwBC,kBACjC;AA2BG,MAAMC,qBAAqBD,kBAAuC;AAyBlE,MAAME,gCAAgCF,kBAE3C;AAQK,MAAMG,+BAA+BH,kBAE1C"}
@@ -1,19 +1,21 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
- import { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from "./abstractions.js";
3
- // PageBeforeRestore Event
4
- export class PageBeforeRestoreEvent extends DomainEvent {
5
- eventType = "page.beforeRestore";
6
- getHandlerAbstraction() {
7
- return PageBeforeRestoreEventHandler;
8
- }
2
+ import { PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler } from "./abstractions.js";
3
+ class PageBeforeRestoreEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return PageBeforeRestoreEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "page.beforeRestore";
9
+ }
9
10
  }
10
-
11
- // PageAfterRestore Event
12
- export class PageAfterRestoreEvent extends DomainEvent {
13
- eventType = "page.afterRestore";
14
- getHandlerAbstraction() {
15
- return PageAfterRestoreEventHandler;
16
- }
11
+ class PageAfterRestoreEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return PageAfterRestoreEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "page.afterRestore";
17
+ }
17
18
  }
19
+ export { PageAfterRestoreEvent, PageBeforeRestoreEvent };
18
20
 
19
21
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler","PageBeforeRestoreEvent","eventType","getHandlerAbstraction","PageAfterRestoreEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeRestorePayload, PageAfterRestorePayload } from \"./abstractions.js\";\n\n// PageBeforeRestore Event\nexport class PageBeforeRestoreEvent extends DomainEvent<PageBeforeRestorePayload> {\n eventType = \"page.beforeRestore\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeRestoreEventHandler;\n }\n}\n\n// PageAfterRestore Event\nexport class PageAfterRestoreEvent extends DomainEvent<PageAfterRestorePayload> {\n eventType = \"page.afterRestore\" as const;\n\n getHandlerAbstraction() {\n return PageAfterRestoreEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/RestorePage/events.js","sources":["../../../../src/features/pages/RestorePage/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeRestorePayload, PageAfterRestorePayload } from \"./abstractions.js\";\n\n// PageBeforeRestore Event\nexport class PageBeforeRestoreEvent extends DomainEvent<PageBeforeRestorePayload> {\n eventType = \"page.beforeRestore\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeRestoreEventHandler;\n }\n}\n\n// PageAfterRestore Event\nexport class PageAfterRestoreEvent extends DomainEvent<PageAfterRestorePayload> {\n eventType = \"page.afterRestore\" as const;\n\n getHandlerAbstraction() {\n return PageAfterRestoreEventHandler;\n }\n}\n"],"names":["PageBeforeRestoreEvent","DomainEvent","PageBeforeRestoreEventHandler","PageAfterRestoreEvent","PageAfterRestoreEventHandler"],"mappings":";;AAKO,MAAMA,+BAA+BC;IAGxC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,8BAA8BF;IAGvC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { RestorePageRepository } from "./RestorePageRepository.js";
3
3
  import { RestorePageUseCase } from "./RestorePageUseCase.js";
4
- export const RestorePageFeature = createFeature({
5
- name: "WebsiteBuilder/RestorePage",
6
- register(container) {
7
- container.register(RestorePageRepository).inSingletonScope();
8
- container.register(RestorePageUseCase);
9
- }
4
+ const RestorePageFeature = createFeature({
5
+ name: "WebsiteBuilder/RestorePage",
6
+ register (container) {
7
+ container.register(RestorePageRepository).inSingletonScope();
8
+ container.register(RestorePageUseCase);
9
+ }
10
10
  });
11
+ export { RestorePageFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","RestorePageRepository","RestorePageUseCase","RestorePageFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { RestorePageRepository } from \"./RestorePageRepository.js\";\nimport { RestorePageUseCase } from \"./RestorePageUseCase.js\";\n\nexport const RestorePageFeature = createFeature({\n name: \"WebsiteBuilder/RestorePage\",\n register(container) {\n container.register(RestorePageRepository).inSingletonScope();\n container.register(RestorePageUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,kBAAkB,GAAGH,aAAa,CAAC;EAC5CI,IAAI,EAAE,4BAA4B;EAClCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,qBAAqB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC5DD,SAAS,CAACD,QAAQ,CAACH,kBAAkB,CAAC;EAC1C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/RestorePage/feature.js","sources":["../../../../src/features/pages/RestorePage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { RestorePageRepository } from \"./RestorePageRepository.js\";\nimport { RestorePageUseCase } from \"./RestorePageUseCase.js\";\n\nexport const RestorePageFeature = createFeature({\n name: \"WebsiteBuilder/RestorePage\",\n register(container) {\n container.register(RestorePageRepository).inSingletonScope();\n container.register(RestorePageUseCase);\n }\n});\n"],"names":["RestorePageFeature","createFeature","container","RestorePageRepository","RestorePageUseCase"],"mappings":";;;AAIO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uBAAuB,gBAAgB;QAC1DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export { PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler, RestorePageUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,74 +1,58 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
- import { TranslatePageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { TranslatePageUseCase } from "./abstractions.js";
3
3
  import { DuplicatePageRepository } from "../DuplicatePage/abstractions.js";
4
4
  import { GetPageByIdUseCase } from "../GetPageById/index.js";
5
- import { GetLanguageByCodeUseCase } from "@webiny/languages/exports/api/languages.js";
6
- import { ListLanguagesUseCase } from "@webiny/languages/exports/api/languages.js";
5
+ import { GetLanguageByCodeUseCase, ListLanguagesUseCase } from "@webiny/languages/exports/api/languages.js";
7
6
  import { WbPermissions } from "../../permissions/abstractions.js";
8
- import { PageNotAuthorizedError, PageTranslationError, PagePersistenceError } from "../../../domain/page/errors.js";
7
+ import { PageNotAuthorizedError, PagePersistenceError, PageTranslationError } from "../../../domain/page/errors.js";
9
8
  import { PagePath } from "../../../domain/page/PagePath.js";
10
9
  class TranslatePageUseCaseImpl {
11
- constructor(permissions, getPageById, getLanguageByCode, listLanguages, duplicatePageRepository) {
12
- this.permissions = permissions;
13
- this.getPageById = getPageById;
14
- this.getLanguageByCode = getLanguageByCode;
15
- this.listLanguages = listLanguages;
16
- this.duplicatePageRepository = duplicatePageRepository;
17
- }
18
- async execute(params) {
19
- const hasPermission = await this.permissions.canCreate("page");
20
- if (!hasPermission) {
21
- return Result.fail(new PageNotAuthorizedError());
10
+ constructor(permissions, getPageById, getLanguageByCode, listLanguages, duplicatePageRepository){
11
+ this.permissions = permissions;
12
+ this.getPageById = getPageById;
13
+ this.getLanguageByCode = getLanguageByCode;
14
+ this.listLanguages = listLanguages;
15
+ this.duplicatePageRepository = duplicatePageRepository;
22
16
  }
23
-
24
- // Validate language code.
25
- const languageResult = await this.getLanguageByCode.execute(params.languageCode);
26
- if (languageResult.isFail()) {
27
- return Result.fail(new PageTranslationError(params.languageCode));
28
- }
29
-
30
- // Get all supported language codes.
31
- const languagesResult = await this.listLanguages.execute();
32
- if (languagesResult.isFail()) {
33
- return Result.fail(new PagePersistenceError(new Error("Failed to fetch supported languages")));
34
- }
35
- const supportedCodes = languagesResult.value.map(lang => lang.code);
36
-
37
- // Fetch source page to resolve lineage.
38
- const getResult = await this.getPageById.execute(params.pageId);
39
- if (getResult.isFail()) {
40
- return getResult;
41
- }
42
- const sourcePage = getResult.value;
43
-
44
- // Resolve sourcePage: always point to the root base page.
45
- const resolvedSourcePageId = sourcePage.properties.sourcePage ?? sourcePage.entryId;
46
-
47
- // Duplicate the page with translation modifications.
48
- const result = await this.duplicatePageRepository.execute({
49
- id: params.pageId
50
- }, ({
51
- duplicate
52
- }) => {
53
- const originalPath = sourcePage.properties.path ?? "/";
54
- const pagePath = PagePath.create(originalPath);
55
- const translatedPath = pagePath.setLanguageCode(params.languageCode, supportedCodes).toString();
56
- duplicate.properties.language = params.languageCode;
57
- duplicate.properties.sourcePage = resolvedSourcePageId;
58
- duplicate.properties.path = translatedPath;
59
- duplicate.properties.title = sourcePage.properties.title;
60
- duplicate.location.folderId = params.folderId;
61
- });
62
- if (result.isFail()) {
63
- return result;
17
+ async execute(params) {
18
+ const hasPermission = await this.permissions.canCreate("page");
19
+ if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
20
+ const languageResult = await this.getLanguageByCode.execute(params.languageCode);
21
+ if (languageResult.isFail()) return Result.fail(new PageTranslationError(params.languageCode));
22
+ const languagesResult = await this.listLanguages.execute();
23
+ if (languagesResult.isFail()) return Result.fail(new PagePersistenceError(new Error("Failed to fetch supported languages")));
24
+ const supportedCodes = languagesResult.value.map((lang)=>lang.code);
25
+ const getResult = await this.getPageById.execute(params.pageId);
26
+ if (getResult.isFail()) return getResult;
27
+ const sourcePage = getResult.value;
28
+ const resolvedSourcePageId = sourcePage.properties.sourcePage ?? sourcePage.entryId;
29
+ const result = await this.duplicatePageRepository.execute({
30
+ id: params.pageId
31
+ }, ({ duplicate })=>{
32
+ const originalPath = sourcePage.properties.path ?? "/";
33
+ const pagePath = PagePath.create(originalPath);
34
+ const translatedPath = pagePath.setLanguageCode(params.languageCode, supportedCodes).toString();
35
+ duplicate.properties.language = params.languageCode;
36
+ duplicate.properties.sourcePage = resolvedSourcePageId;
37
+ duplicate.properties.path = translatedPath;
38
+ duplicate.properties.title = sourcePage.properties.title;
39
+ duplicate.location.folderId = params.folderId;
40
+ });
41
+ if (result.isFail()) return result;
42
+ return Result.ok(result.value);
64
43
  }
65
- return Result.ok(result.value);
66
- }
67
44
  }
68
- export const TranslatePageUseCase = createImplementation({
69
- abstraction: UseCaseAbstraction,
70
- implementation: TranslatePageUseCaseImpl,
71
- dependencies: [WbPermissions, GetPageByIdUseCase, GetLanguageByCodeUseCase, ListLanguagesUseCase, DuplicatePageRepository]
45
+ const TranslatePageUseCase_TranslatePageUseCase = createImplementation({
46
+ abstraction: TranslatePageUseCase,
47
+ implementation: TranslatePageUseCaseImpl,
48
+ dependencies: [
49
+ WbPermissions,
50
+ GetPageByIdUseCase,
51
+ GetLanguageByCodeUseCase,
52
+ ListLanguagesUseCase,
53
+ DuplicatePageRepository
54
+ ]
72
55
  });
56
+ export { TranslatePageUseCase_TranslatePageUseCase as TranslatePageUseCase };
73
57
 
74
58
  //# sourceMappingURL=TranslatePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","TranslatePageUseCase","UseCaseAbstraction","DuplicatePageRepository","GetPageByIdUseCase","GetLanguageByCodeUseCase","ListLanguagesUseCase","WbPermissions","PageNotAuthorizedError","PageTranslationError","PagePersistenceError","PagePath","TranslatePageUseCaseImpl","constructor","permissions","getPageById","getLanguageByCode","listLanguages","duplicatePageRepository","execute","params","hasPermission","canCreate","fail","languageResult","languageCode","isFail","languagesResult","Error","supportedCodes","value","map","lang","code","getResult","pageId","sourcePage","resolvedSourcePageId","properties","entryId","result","id","duplicate","originalPath","path","pagePath","create","translatedPath","setLanguageCode","toString","language","title","location","folderId","ok","abstraction","implementation","dependencies"],"sources":["TranslatePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport { TranslatePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DuplicatePageRepository } from \"~/features/pages/DuplicatePage/abstractions.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { GetLanguageByCodeUseCase } from \"@webiny/languages/exports/api/languages.js\";\nimport { ListLanguagesUseCase } from \"@webiny/languages/exports/api/languages.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport {\n PageNotAuthorizedError,\n PageTranslationError,\n PagePersistenceError\n} from \"~/domain/page/errors.js\";\nimport { PagePath } from \"~/domain/page/PagePath.js\";\n\nclass TranslatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private getLanguageByCode: GetLanguageByCodeUseCase.Interface,\n private listLanguages: ListLanguagesUseCase.Interface,\n private duplicatePageRepository: DuplicatePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Validate language code.\n const languageResult = await this.getLanguageByCode.execute(params.languageCode);\n if (languageResult.isFail()) {\n return Result.fail(new PageTranslationError(params.languageCode));\n }\n\n // Get all supported language codes.\n const languagesResult = await this.listLanguages.execute();\n if (languagesResult.isFail()) {\n return Result.fail(\n new PagePersistenceError(new Error(\"Failed to fetch supported languages\"))\n );\n }\n\n const supportedCodes = languagesResult.value.map(lang => lang.code);\n\n // Fetch source page to resolve lineage.\n const getResult = await this.getPageById.execute(params.pageId);\n if (getResult.isFail()) {\n return getResult;\n }\n\n const sourcePage = getResult.value;\n\n // Resolve sourcePage: always point to the root base page.\n const resolvedSourcePageId = sourcePage.properties.sourcePage ?? sourcePage.entryId;\n\n // Duplicate the page with translation modifications.\n const result = await this.duplicatePageRepository.execute(\n { id: params.pageId },\n ({ duplicate }) => {\n const originalPath: string = sourcePage.properties.path ?? \"/\";\n const pagePath = PagePath.create(originalPath);\n const translatedPath = pagePath\n .setLanguageCode(params.languageCode, supportedCodes)\n .toString();\n\n duplicate.properties.language = params.languageCode;\n duplicate.properties.sourcePage = resolvedSourcePageId;\n duplicate.properties.path = translatedPath;\n duplicate.properties.title = sourcePage.properties.title;\n duplicate.location.folderId = params.folderId;\n }\n );\n\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const TranslatePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: TranslatePageUseCaseImpl,\n dependencies: [\n WbPermissions,\n GetPageByIdUseCase,\n GetLanguageByCodeUseCase,\n ListLanguagesUseCase,\n DuplicatePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SAASC,oBAAoB,IAAIC,kBAAkB;AACnD,SAASC,uBAAuB;AAChC,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB,QAAQ,4CAA4C;AACrF,SAASC,oBAAoB,QAAQ,4CAA4C;AACjF,SAASC,aAAa;AACtB,SACIC,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB;AAExB,SAASC,QAAQ;AAEjB,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,WAAoC,EACpCC,WAAyC,EACzCC,iBAAqD,EACrDC,aAA6C,EAC7CC,uBAA0D,EACpE;IAAA,KALUJ,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,uBAA0D,GAA1DA,uBAA0D;EACnE;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOtB,MAAM,CAACwB,IAAI,CAAC,IAAIf,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMgB,cAAc,GAAG,MAAM,IAAI,CAACR,iBAAiB,CAACG,OAAO,CAACC,MAAM,CAACK,YAAY,CAAC;IAChF,IAAID,cAAc,CAACE,MAAM,CAAC,CAAC,EAAE;MACzB,OAAO3B,MAAM,CAACwB,IAAI,CAAC,IAAId,oBAAoB,CAACW,MAAM,CAACK,YAAY,CAAC,CAAC;IACrE;;IAEA;IACA,MAAME,eAAe,GAAG,MAAM,IAAI,CAACV,aAAa,CAACE,OAAO,CAAC,CAAC;IAC1D,IAAIQ,eAAe,CAACD,MAAM,CAAC,CAAC,EAAE;MAC1B,OAAO3B,MAAM,CAACwB,IAAI,CACd,IAAIb,oBAAoB,CAAC,IAAIkB,KAAK,CAAC,qCAAqC,CAAC,CAC7E,CAAC;IACL;IAEA,MAAMC,cAAc,GAAGF,eAAe,CAACG,KAAK,CAACC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,IAAI,CAAC;;IAEnE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACnB,WAAW,CAACI,OAAO,CAACC,MAAM,CAACe,MAAM,CAAC;IAC/D,IAAID,SAAS,CAACR,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOQ,SAAS;IACpB;IAEA,MAAME,UAAU,GAAGF,SAAS,CAACJ,KAAK;;IAElC;IACA,MAAMO,oBAAoB,GAAGD,UAAU,CAACE,UAAU,CAACF,UAAU,IAAIA,UAAU,CAACG,OAAO;;IAEnF;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACtB,uBAAuB,CAACC,OAAO,CACrD;MAAEsB,EAAE,EAAErB,MAAM,CAACe;IAAO,CAAC,EACrB,CAAC;MAAEO;IAAU,CAAC,KAAK;MACf,MAAMC,YAAoB,GAAGP,UAAU,CAACE,UAAU,CAACM,IAAI,IAAI,GAAG;MAC9D,MAAMC,QAAQ,GAAGlC,QAAQ,CAACmC,MAAM,CAACH,YAAY,CAAC;MAC9C,MAAMI,cAAc,GAAGF,QAAQ,CAC1BG,eAAe,CAAC5B,MAAM,CAACK,YAAY,EAAEI,cAAc,CAAC,CACpDoB,QAAQ,CAAC,CAAC;MAEfP,SAAS,CAACJ,UAAU,CAACY,QAAQ,GAAG9B,MAAM,CAACK,YAAY;MACnDiB,SAAS,CAACJ,UAAU,CAACF,UAAU,GAAGC,oBAAoB;MACtDK,SAAS,CAACJ,UAAU,CAACM,IAAI,GAAGG,cAAc;MAC1CL,SAAS,CAACJ,UAAU,CAACa,KAAK,GAAGf,UAAU,CAACE,UAAU,CAACa,KAAK;MACxDT,SAAS,CAACU,QAAQ,CAACC,QAAQ,GAAGjC,MAAM,CAACiC,QAAQ;IACjD,CACJ,CAAC;IAED,IAAIb,MAAM,CAACd,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOc,MAAM;IACjB;IAEA,OAAOzC,MAAM,CAACuD,EAAE,CAACd,MAAM,CAACV,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAM7B,oBAAoB,GAAGD,oBAAoB,CAAC;EACrDuD,WAAW,EAAErD,kBAAkB;EAC/BsD,cAAc,EAAE5C,wBAAwB;EACxC6C,YAAY,EAAE,CACVlD,aAAa,EACbH,kBAAkB,EAClBC,wBAAwB,EACxBC,oBAAoB,EACpBH,uBAAuB;AAE/B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/pages/TranslatePage/TranslatePageUseCase.js","sources":["../../../../src/features/pages/TranslatePage/TranslatePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport { TranslatePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DuplicatePageRepository } from \"~/features/pages/DuplicatePage/abstractions.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { GetLanguageByCodeUseCase } from \"@webiny/languages/exports/api/languages.js\";\nimport { ListLanguagesUseCase } from \"@webiny/languages/exports/api/languages.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport {\n PageNotAuthorizedError,\n PageTranslationError,\n PagePersistenceError\n} from \"~/domain/page/errors.js\";\nimport { PagePath } from \"~/domain/page/PagePath.js\";\n\nclass TranslatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private getLanguageByCode: GetLanguageByCodeUseCase.Interface,\n private listLanguages: ListLanguagesUseCase.Interface,\n private duplicatePageRepository: DuplicatePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Validate language code.\n const languageResult = await this.getLanguageByCode.execute(params.languageCode);\n if (languageResult.isFail()) {\n return Result.fail(new PageTranslationError(params.languageCode));\n }\n\n // Get all supported language codes.\n const languagesResult = await this.listLanguages.execute();\n if (languagesResult.isFail()) {\n return Result.fail(\n new PagePersistenceError(new Error(\"Failed to fetch supported languages\"))\n );\n }\n\n const supportedCodes = languagesResult.value.map(lang => lang.code);\n\n // Fetch source page to resolve lineage.\n const getResult = await this.getPageById.execute(params.pageId);\n if (getResult.isFail()) {\n return getResult;\n }\n\n const sourcePage = getResult.value;\n\n // Resolve sourcePage: always point to the root base page.\n const resolvedSourcePageId = sourcePage.properties.sourcePage ?? sourcePage.entryId;\n\n // Duplicate the page with translation modifications.\n const result = await this.duplicatePageRepository.execute(\n { id: params.pageId },\n ({ duplicate }) => {\n const originalPath: string = sourcePage.properties.path ?? \"/\";\n const pagePath = PagePath.create(originalPath);\n const translatedPath = pagePath\n .setLanguageCode(params.languageCode, supportedCodes)\n .toString();\n\n duplicate.properties.language = params.languageCode;\n duplicate.properties.sourcePage = resolvedSourcePageId;\n duplicate.properties.path = translatedPath;\n duplicate.properties.title = sourcePage.properties.title;\n duplicate.location.folderId = params.folderId;\n }\n );\n\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const TranslatePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: TranslatePageUseCaseImpl,\n dependencies: [\n WbPermissions,\n GetPageByIdUseCase,\n GetLanguageByCodeUseCase,\n ListLanguagesUseCase,\n DuplicatePageRepository\n ]\n});\n"],"names":["TranslatePageUseCaseImpl","permissions","getPageById","getLanguageByCode","listLanguages","duplicatePageRepository","params","hasPermission","Result","PageNotAuthorizedError","languageResult","PageTranslationError","languagesResult","PagePersistenceError","Error","supportedCodes","lang","getResult","sourcePage","resolvedSourcePageId","result","duplicate","originalPath","pagePath","PagePath","translatedPath","TranslatePageUseCase","createImplementation","UseCaseAbstraction","WbPermissions","GetPageByIdUseCase","GetLanguageByCodeUseCase","ListLanguagesUseCase","DuplicatePageRepository"],"mappings":";;;;;;;;AAcA,MAAMA;IACF,YACYC,WAAoC,EACpCC,WAAyC,EACzCC,iBAAqD,EACrDC,aAA6C,EAC7CC,uBAA0D,CACpE;aALUJ,WAAW,GAAXA;aACAC,WAAW,GAAXA;aACAC,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAAiC,EAA6B;QACxE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,iBAAiB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACJ,OAAO,YAAY;QAC/E,IAAII,eAAe,MAAM,IACrB,OAAOF,OAAO,IAAI,CAAC,IAAIG,qBAAqBL,OAAO,YAAY;QAInE,MAAMM,kBAAkB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO;QACxD,IAAIA,gBAAgB,MAAM,IACtB,OAAOJ,OAAO,IAAI,CACd,IAAIK,qBAAqB,IAAIC,MAAM;QAI3C,MAAMC,iBAAiBH,gBAAgB,KAAK,CAAC,GAAG,CAACI,CAAAA,OAAQA,KAAK,IAAI;QAGlE,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACX,OAAO,MAAM;QAC9D,IAAIW,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,aAAaD,UAAU,KAAK;QAGlC,MAAME,uBAAuBD,WAAW,UAAU,CAAC,UAAU,IAAIA,WAAW,OAAO;QAGnF,MAAME,SAAS,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CACrD;YAAE,IAAId,OAAO,MAAM;QAAC,GACpB,CAAC,EAAEe,SAAS,EAAE;YACV,MAAMC,eAAuBJ,WAAW,UAAU,CAAC,IAAI,IAAI;YAC3D,MAAMK,WAAWC,SAAS,MAAM,CAACF;YACjC,MAAMG,iBAAiBF,SAClB,eAAe,CAACjB,OAAO,YAAY,EAAES,gBACrC,QAAQ;YAEbM,UAAU,UAAU,CAAC,QAAQ,GAAGf,OAAO,YAAY;YACnDe,UAAU,UAAU,CAAC,UAAU,GAAGF;YAClCE,UAAU,UAAU,CAAC,IAAI,GAAGI;YAC5BJ,UAAU,UAAU,CAAC,KAAK,GAAGH,WAAW,UAAU,CAAC,KAAK;YACxDG,UAAU,QAAQ,CAAC,QAAQ,GAAGf,OAAO,QAAQ;QACjD;QAGJ,IAAIc,OAAO,MAAM,IACb,OAAOA;QAGX,OAAOZ,OAAO,EAAE,CAACY,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMM,4CAAuBC,qBAAqB;IACrD,aAAaC;IACb,gBAAgB5B;IAChB,cAAc;QACV6B;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -1,14 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // ============================================================================
4
- // Type Definitions
5
- // ============================================================================
6
-
7
- // ============================================================================
8
- // Use Case Abstraction
9
- // ============================================================================
10
-
11
- /** Translate a page to a different language. */
12
- export const TranslatePageUseCase = createAbstraction("Wb/TranslatePageUseCase");
2
+ const TranslatePageUseCase = createAbstraction("Wb/TranslatePageUseCase");
3
+ export { TranslatePageUseCase };
13
4
 
14
5
  //# sourceMappingURL=abstractions.js.map