@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,46 +1,47 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { ListRedirectsRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { ListRedirectsRepository } from "./abstractions.js";
3
3
  import { RedirectModel } from "../../../domain/redirect/abstractions.js";
4
4
  import { RedirectPersistenceError } from "../../../domain/redirect/errors.js";
5
5
  import { EntryToRedirectMapper } from "../../../domain/redirect/EntryToRedirectMapper.js";
6
6
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
7
7
  import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
8
8
  class ListRedirectsRepositoryImpl {
9
- constructor(redirectModel, listEntries, cmsWhereMapper, cmsSortMapper) {
10
- this.redirectModel = redirectModel;
11
- this.listEntries = listEntries;
12
- this.cmsWhereMapper = cmsWhereMapper;
13
- this.cmsSortMapper = cmsSortMapper;
14
- }
15
- async execute(params) {
16
- const result = await this.listEntries.execute(this.redirectModel, {
17
- ...params,
18
- sort: this.cmsSortMapper.map({
19
- input: params.sort,
20
- fields: this.redirectModel.fields
21
- }),
22
- where: this.cmsWhereMapper.map({
23
- input: params.where,
24
- fields: this.redirectModel.fields
25
- })
26
- });
27
- if (result.isFail()) {
28
- return Result.fail(new RedirectPersistenceError(result.error));
9
+ constructor(redirectModel, listEntries, cmsWhereMapper, cmsSortMapper){
10
+ this.redirectModel = redirectModel;
11
+ this.listEntries = listEntries;
12
+ this.cmsWhereMapper = cmsWhereMapper;
13
+ this.cmsSortMapper = cmsSortMapper;
14
+ }
15
+ async execute(params) {
16
+ const result = await this.listEntries.execute(this.redirectModel, {
17
+ ...params,
18
+ sort: this.cmsSortMapper.map({
19
+ input: params.sort,
20
+ fields: this.redirectModel.fields
21
+ }),
22
+ where: this.cmsWhereMapper.map({
23
+ input: params.where,
24
+ fields: this.redirectModel.fields
25
+ })
26
+ });
27
+ if (result.isFail()) return Result.fail(new RedirectPersistenceError(result.error));
28
+ const { entries, meta } = result.value;
29
+ const redirects = entries.map((entry)=>EntryToRedirectMapper.toRedirect(entry));
30
+ return Result.ok({
31
+ redirects,
32
+ meta
33
+ });
29
34
  }
30
- const {
31
- entries,
32
- meta
33
- } = result.value;
34
- const redirects = entries.map(entry => EntryToRedirectMapper.toRedirect(entry));
35
- return Result.ok({
36
- redirects,
37
- meta
38
- });
39
- }
40
35
  }
41
- export const ListRedirectsRepository = RepositoryAbstraction.createImplementation({
42
- implementation: ListRedirectsRepositoryImpl,
43
- dependencies: [RedirectModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]
36
+ const ListRedirectsRepository_ListRedirectsRepository = ListRedirectsRepository.createImplementation({
37
+ implementation: ListRedirectsRepositoryImpl,
38
+ dependencies: [
39
+ RedirectModel,
40
+ ListLatestEntriesUseCase,
41
+ CmsWhereMapper,
42
+ CmsSortMapper
43
+ ]
44
44
  });
45
+ export { ListRedirectsRepository_ListRedirectsRepository as ListRedirectsRepository };
45
46
 
46
47
  //# sourceMappingURL=ListRedirectsRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListRedirectsRepository","RepositoryAbstraction","RedirectModel","RedirectPersistenceError","EntryToRedirectMapper","ListLatestEntriesUseCase","CmsSortMapper","CmsWhereMapper","ListRedirectsRepositoryImpl","constructor","redirectModel","listEntries","cmsWhereMapper","cmsSortMapper","execute","params","result","sort","map","input","fields","where","isFail","fail","error","entries","meta","value","redirects","entry","toRedirect","ok","createImplementation","implementation","dependencies"],"sources":["ListRedirectsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { type CmsEntryWbRedirect, RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { EntryToRedirectMapper } from \"~/domain/redirect/EntryToRedirectMapper.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListRedirectsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listEntries.execute<CmsEntryWbRedirect>(this.redirectModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: params.sort,\n fields: this.redirectModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: params.where,\n fields: this.redirectModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const redirects = entries.map(entry => EntryToRedirectMapper.toRedirect(entry));\n\n return Result.ok({ redirects, meta });\n }\n}\n\nexport const ListRedirectsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListRedirectsRepositoryImpl,\n dependencies: [RedirectModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,uBAAuB,IAAIC,qBAAqB;AACzD,SAAkCC,aAAa;AAC/C,SAASC,wBAAwB;AACjC,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB,QAAQ,qEAAqE;AAC9G,SAASC,aAAa,EAAEC,cAAc,QAAQ,0BAA0B;AAExE,MAAMC,2BAA2B,CAA4C;EACzEC,WAAWA,CACCC,aAAsC,EACtCC,WAA+C,EAC/CC,cAAwC,EACxCC,aAAsC,EAChD;IAAA,KAJUH,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,WAA+C,GAA/CA,WAA+C;IAAA,KAC/CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,WAAW,CAACG,OAAO,CAAqB,IAAI,CAACJ,aAAa,EAAE;MAClF,GAAGK,MAAM;MACTE,IAAI,EAAE,IAAI,CAACJ,aAAa,CAACK,GAAG,CAAC;QACzBC,KAAK,EAAEJ,MAAM,CAACE,IAAI;QAClBG,MAAM,EAAE,IAAI,CAACV,aAAa,CAACU;MAC/B,CAAC,CAAC;MACFC,KAAK,EAAE,IAAI,CAACT,cAAc,CAACM,GAAG,CAAC;QAC3BC,KAAK,EAAEJ,MAAM,CAACM,KAAK;QACnBD,MAAM,EAAE,IAAI,CAACV,aAAa,CAACU;MAC/B,CAAC;IACL,CAAC,CAAC;IAEF,IAAIJ,MAAM,CAACM,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOvB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,wBAAwB,CAACa,MAAM,CAACQ,KAAK,CAAC,CAAC;IAClE;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGV,MAAM,CAACW,KAAK;IACtC,MAAMC,SAAS,GAAGH,OAAO,CAACP,GAAG,CAACW,KAAK,IAAIzB,qBAAqB,CAAC0B,UAAU,CAACD,KAAK,CAAC,CAAC;IAE/E,OAAO9B,MAAM,CAACgC,EAAE,CAAC;MAAEH,SAAS;MAAEF;IAAK,CAAC,CAAC;EACzC;AACJ;AAEA,OAAO,MAAM1B,uBAAuB,GAAGC,qBAAqB,CAAC+B,oBAAoB,CAAC;EAC9EC,cAAc,EAAEzB,2BAA2B;EAC3C0B,YAAY,EAAE,CAAChC,aAAa,EAAEG,wBAAwB,EAAEE,cAAc,EAAED,aAAa;AACzF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/ListRedirects/ListRedirectsRepository.js","sources":["../../../../src/features/redirects/ListRedirects/ListRedirectsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { type CmsEntryWbRedirect, RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { EntryToRedirectMapper } from \"~/domain/redirect/EntryToRedirectMapper.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListRedirectsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private listEntries: ListLatestEntriesUseCase.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listEntries.execute<CmsEntryWbRedirect>(this.redirectModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: params.sort,\n fields: this.redirectModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: params.where,\n fields: this.redirectModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const redirects = entries.map(entry => EntryToRedirectMapper.toRedirect(entry));\n\n return Result.ok({ redirects, meta });\n }\n}\n\nexport const ListRedirectsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListRedirectsRepositoryImpl,\n dependencies: [RedirectModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"names":["ListRedirectsRepositoryImpl","redirectModel","listEntries","cmsWhereMapper","cmsSortMapper","params","result","Result","RedirectPersistenceError","entries","meta","redirects","entry","EntryToRedirectMapper","ListRedirectsRepository","RepositoryAbstraction","RedirectModel","ListLatestEntriesUseCase","CmsWhereMapper","CmsSortMapper"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,aAAsC,EACtCC,WAA+C,EAC/CC,cAAwC,EACxCC,aAAsC,CAChD;aAJUH,aAAa,GAAbA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAC9E,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqB,IAAI,CAAC,aAAa,EAAE;YAClF,GAAGD,MAAM;YACT,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBACzB,OAAOA,OAAO,IAAI;gBAClB,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM;YACrC;YACA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAOA,OAAO,KAAK;gBACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM;YACrC;QACJ;QAEA,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,OAAO,KAAK;QAGhE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,OAAO,KAAK;QACtC,MAAMK,YAAYF,QAAQ,GAAG,CAACG,CAAAA,QAASC,sBAAsB,UAAU,CAACD;QAExE,OAAOL,OAAO,EAAE,CAAC;YAAEI;YAAWD;QAAK;IACvC;AACJ;AAEO,MAAMI,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBf;IAChB,cAAc;QAACgB;QAAeC;QAA0BC;QAAgBC;KAAc;AAC1F"}
@@ -1,36 +1,39 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
- import { ListRedirectsUseCase as UseCaseAbstraction, ListRedirectsRepository } from "./abstractions.js";
2
+ import { ListRedirectsRepository, ListRedirectsUseCase } from "./abstractions.js";
3
3
  import { WbPermissions } from "../../permissions/abstractions.js";
4
4
  import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
5
5
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
6
6
  class ListRedirectsUseCaseImpl {
7
- constructor(permissions, identityContext, repository) {
8
- this.permissions = permissions;
9
- this.identityContext = identityContext;
10
- this.repository = repository;
11
- }
12
- async execute(params) {
13
- const hasPermission = await this.permissions.canRead("redirect");
14
- if (!hasPermission) {
15
- return Result.fail(new RedirectNotAuthorizedError());
7
+ constructor(permissions, identityContext, repository){
8
+ this.permissions = permissions;
9
+ this.identityContext = identityContext;
10
+ this.repository = repository;
16
11
  }
17
- const where = {
18
- ...params.where
19
- };
20
- if (await this.permissions.onlyOwnRecords("redirect")) {
21
- const identity = this.identityContext.getIdentity();
22
- where.createdBy = identity.id;
12
+ async execute(params) {
13
+ const hasPermission = await this.permissions.canRead("redirect");
14
+ if (!hasPermission) return Result.fail(new RedirectNotAuthorizedError());
15
+ const where = {
16
+ ...params.where
17
+ };
18
+ if (await this.permissions.onlyOwnRecords("redirect")) {
19
+ const identity = this.identityContext.getIdentity();
20
+ where.createdBy = identity.id;
21
+ }
22
+ return await this.repository.execute({
23
+ ...params,
24
+ where
25
+ });
23
26
  }
24
- return await this.repository.execute({
25
- ...params,
26
- where
27
- });
28
- }
29
27
  }
30
- export const ListRedirectsUseCase = createImplementation({
31
- abstraction: UseCaseAbstraction,
32
- implementation: ListRedirectsUseCaseImpl,
33
- dependencies: [WbPermissions, IdentityContext, ListRedirectsRepository]
28
+ const ListRedirectsUseCase_ListRedirectsUseCase = createImplementation({
29
+ abstraction: ListRedirectsUseCase,
30
+ implementation: ListRedirectsUseCaseImpl,
31
+ dependencies: [
32
+ WbPermissions,
33
+ IdentityContext,
34
+ ListRedirectsRepository
35
+ ]
34
36
  });
37
+ export { ListRedirectsUseCase_ListRedirectsUseCase as ListRedirectsUseCase };
35
38
 
36
39
  //# sourceMappingURL=ListRedirectsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","ListRedirectsUseCase","UseCaseAbstraction","ListRedirectsRepository","WbPermissions","RedirectNotAuthorizedError","IdentityContext","ListRedirectsUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","abstraction","implementation","dependencies"],"sources":["ListRedirectsUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n ListRedirectsUseCase as UseCaseAbstraction,\n ListRedirectsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListRedirectsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListRedirectsRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"redirect\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return await this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListRedirectsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListRedirectsUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListRedirectsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAE3B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AACnC,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAA6C,EACvD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAA6C,GAA7CA,UAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOf,MAAM,CAACiB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,UAAU,CAAC,EAAE;MACnD,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EAC9D;AACJ;AAEA,OAAO,MAAMhB,oBAAoB,GAAGD,oBAAoB,CAAC;EACrDuB,WAAW,EAAErB,kBAAkB;EAC/BsB,cAAc,EAAEjB,wBAAwB;EACxCkB,YAAY,EAAE,CAACrB,aAAa,EAAEE,eAAe,EAAEH,uBAAuB;AAC1E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/ListRedirects/ListRedirectsUseCase.js","sources":["../../../../src/features/redirects/ListRedirects/ListRedirectsUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n ListRedirectsUseCase as UseCaseAbstraction,\n ListRedirectsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListRedirectsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListRedirectsRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"redirect\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return await this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListRedirectsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListRedirectsUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListRedirectsRepository]\n});\n"],"names":["ListRedirectsUseCaseImpl","permissions","identityContext","repository","params","hasPermission","Result","RedirectNotAuthorizedError","where","identity","ListRedirectsUseCase","createImplementation","UseCaseAbstraction","WbPermissions","IdentityContext","ListRedirectsRepository"],"mappings":";;;;;AASA,MAAMA;IACF,YACYC,WAAoC,EACpCC,eAA0C,EAC1CC,UAA6C,CACvD;aAHUF,WAAW,GAAXA;aACAC,eAAe,GAAfA;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;QAG3B,MAAMC,QAAQ;YAAE,GAAGJ,OAAO,KAAK;QAAC;QAEhC,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa;YACnD,MAAMK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;YACjDD,MAAM,SAAS,GAAGC,SAAS,EAAE;QACjC;QAEA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,GAAGL,MAAM;YAAEI;QAAM;IAC5D;AACJ;AAEO,MAAME,4CAAuBC,qBAAqB;IACrD,aAAaC;IACb,gBAAgBZ;IAChB,cAAc;QAACa;QAAeC;QAAiBC;KAAwB;AAC3E"}
@@ -1,20 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // ============================================================================
4
- // Type Definitions
5
- // ============================================================================
6
-
7
- // ============================================================================
8
- // Repository Abstraction
9
- // ============================================================================
10
-
11
- export const ListRedirectsRepository = createAbstraction("Wb/ListRedirectsRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- /** List URL redirects with filtering. */
18
- export const ListRedirectsUseCase = createAbstraction("Wb/ListRedirectsUseCase");
2
+ const ListRedirectsRepository = createAbstraction("Wb/ListRedirectsRepository");
3
+ const ListRedirectsUseCase = createAbstraction("Wb/ListRedirectsUseCase");
4
+ export { ListRedirectsRepository, ListRedirectsUseCase };
19
5
 
20
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListRedirectsRepository","ListRedirectsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type {\n RedirectPersistenceError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IListWbRedirectsWhere {\n latest?: boolean;\n createdBy?: string;\n redirectFrom?: string;\n redirectFrom_not?: string;\n redirectFrom_in?: string[];\n redirectFrom_not_in?: string[];\n\n redirectTo?: string;\n redirectTo_not?: string;\n redirectTo_in?: string[];\n redirectTo_not_in?: string[];\n\n redirectType?: string;\n redirectType_not?: string;\n redirectType_in?: string[];\n redirectType_not_in?: string[];\n\n isEnabled?: boolean;\n}\n\nexport interface ListWbRedirectsParams {\n where?: IListWbRedirectsWhere;\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string | null;\n search?: string;\n}\n\nexport interface WbListMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type ListRedirectsResult = { redirects: WbRedirect[]; meta: WbListMeta };\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IListRedirectsRepository {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, RepositoryError>>;\n}\n\nexport interface IListRedirectsRepositoryErrors {\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IListRedirectsRepositoryErrors[keyof IListRedirectsRepositoryErrors];\n\nexport const ListRedirectsRepository = createAbstraction<IListRedirectsRepository>(\n \"Wb/ListRedirectsRepository\"\n);\n\nexport namespace ListRedirectsRepository {\n export type Interface = IListRedirectsRepository;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IListRedirectsUseCase {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, UseCaseError>>;\n}\n\nexport interface IListRedirectsUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IListRedirectsUseCaseErrors[keyof IListRedirectsUseCaseErrors];\n\n/** List URL redirects with filtering. */\nexport const ListRedirectsUseCase =\n createAbstraction<IListRedirectsUseCase>(\"Wb/ListRedirectsUseCase\");\n\nexport namespace ListRedirectsUseCase {\n export type Interface = IListRedirectsUseCase;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAuCA;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAUD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/ListRedirects/abstractions.js","sources":["../../../../src/features/redirects/ListRedirects/abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type {\n RedirectPersistenceError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IListWbRedirectsWhere {\n latest?: boolean;\n createdBy?: string;\n redirectFrom?: string;\n redirectFrom_not?: string;\n redirectFrom_in?: string[];\n redirectFrom_not_in?: string[];\n\n redirectTo?: string;\n redirectTo_not?: string;\n redirectTo_in?: string[];\n redirectTo_not_in?: string[];\n\n redirectType?: string;\n redirectType_not?: string;\n redirectType_in?: string[];\n redirectType_not_in?: string[];\n\n isEnabled?: boolean;\n}\n\nexport interface ListWbRedirectsParams {\n where?: IListWbRedirectsWhere;\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string | null;\n search?: string;\n}\n\nexport interface WbListMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type ListRedirectsResult = { redirects: WbRedirect[]; meta: WbListMeta };\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IListRedirectsRepository {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, RepositoryError>>;\n}\n\nexport interface IListRedirectsRepositoryErrors {\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IListRedirectsRepositoryErrors[keyof IListRedirectsRepositoryErrors];\n\nexport const ListRedirectsRepository = createAbstraction<IListRedirectsRepository>(\n \"Wb/ListRedirectsRepository\"\n);\n\nexport namespace ListRedirectsRepository {\n export type Interface = IListRedirectsRepository;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IListRedirectsUseCase {\n execute(params: ListWbRedirectsParams): Promise<Result<ListRedirectsResult, UseCaseError>>;\n}\n\nexport interface IListRedirectsUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IListRedirectsUseCaseErrors[keyof IListRedirectsUseCaseErrors];\n\n/** List URL redirects with filtering. */\nexport const ListRedirectsUseCase =\n createAbstraction<IListRedirectsUseCase>(\"Wb/ListRedirectsUseCase\");\n\nexport namespace ListRedirectsUseCase {\n export type Interface = IListRedirectsUseCase;\n export type Params = ListWbRedirectsParams;\n export type Return = Promise<Result<ListRedirectsResult, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n"],"names":["ListRedirectsRepository","createAbstraction","ListRedirectsUseCase"],"mappings":";AAgEO,MAAMA,0BAA0BC,kBACnC;AA2BG,MAAMC,uBACTD,kBAAyC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListRedirectsRepository } from "./ListRedirectsRepository.js";
3
3
  import { ListRedirectsUseCase } from "./ListRedirectsUseCase.js";
4
- export const ListRedirectsFeature = createFeature({
5
- name: "WebsiteBuilder/ListRedirects",
6
- register(container) {
7
- container.register(ListRedirectsRepository).inSingletonScope();
8
- container.register(ListRedirectsUseCase);
9
- }
4
+ const ListRedirectsFeature = createFeature({
5
+ name: "WebsiteBuilder/ListRedirects",
6
+ register (container) {
7
+ container.register(ListRedirectsRepository).inSingletonScope();
8
+ container.register(ListRedirectsUseCase);
9
+ }
10
10
  });
11
+ export { ListRedirectsFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListRedirectsRepository","ListRedirectsUseCase","ListRedirectsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository } from \"./ListRedirectsRepository.js\";\nimport { ListRedirectsUseCase } from \"./ListRedirectsUseCase.js\";\n\nexport const ListRedirectsFeature = createFeature({\n name: \"WebsiteBuilder/ListRedirects\",\n register(container) {\n container.register(ListRedirectsRepository).inSingletonScope();\n container.register(ListRedirectsUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,uBAAuB;AAChC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGH,aAAa,CAAC;EAC9CI,IAAI,EAAE,8BAA8B;EACpCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,uBAAuB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC9DD,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/ListRedirects/feature.js","sources":["../../../../src/features/redirects/ListRedirects/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListRedirectsRepository } from \"./ListRedirectsRepository.js\";\nimport { ListRedirectsUseCase } from \"./ListRedirectsUseCase.js\";\n\nexport const ListRedirectsFeature = createFeature({\n name: \"WebsiteBuilder/ListRedirects\",\n register(container) {\n container.register(ListRedirectsRepository).inSingletonScope();\n container.register(ListRedirectsUseCase);\n }\n});\n"],"names":["ListRedirectsFeature","createFeature","container","ListRedirectsRepository","ListRedirectsUseCase"],"mappings":";;;AAIO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,yBAAyB,gBAAgB;QAC5DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export { ListRedirectsUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,39 +1,37 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { MoveRedirectRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { MoveRedirectRepository } from "./abstractions.js";
3
3
  import { RedirectModel } from "../../../domain/redirect/abstractions.js";
4
4
  import { RedirectPersistenceError } from "../../../domain/redirect/errors.js";
5
5
  import { MoveEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js";
6
6
  import { GetRedirectByIdRepository } from "../GetRedirectById/abstractions.js";
7
7
  class MoveRedirectRepositoryImpl {
8
- constructor(redirectModel, moveEntry, getRedirectById) {
9
- this.redirectModel = redirectModel;
10
- this.moveEntry = moveEntry;
11
- this.getRedirectById = getRedirectById;
12
- }
13
- async execute(params) {
14
- // First, validate the redirect exists
15
- const getResult = await this.getRedirectById.execute(params.id);
16
- if (getResult.isFail()) {
17
- return Result.fail(getResult.error);
8
+ constructor(redirectModel, moveEntry, getRedirectById){
9
+ this.redirectModel = redirectModel;
10
+ this.moveEntry = moveEntry;
11
+ this.getRedirectById = getRedirectById;
18
12
  }
19
-
20
- // Update the redirect location with the new folderId
21
- const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);
22
- if (result.isFail()) {
23
- return Result.fail(new RedirectPersistenceError(result.error));
13
+ async execute(params) {
14
+ const getResult = await this.getRedirectById.execute(params.id);
15
+ if (getResult.isFail()) return Result.fail(getResult.error);
16
+ const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);
17
+ if (result.isFail()) return Result.fail(new RedirectPersistenceError(result.error));
18
+ const movedRedirect = {
19
+ ...getResult.value,
20
+ location: {
21
+ folderId: params.folderId
22
+ }
23
+ };
24
+ return Result.ok(movedRedirect);
24
25
  }
25
- const movedRedirect = {
26
- ...getResult.value,
27
- location: {
28
- folderId: params.folderId
29
- }
30
- };
31
- return Result.ok(movedRedirect);
32
- }
33
26
  }
34
- export const MoveRedirectRepository = RepositoryAbstraction.createImplementation({
35
- implementation: MoveRedirectRepositoryImpl,
36
- dependencies: [RedirectModel, MoveEntryRepository, GetRedirectByIdRepository]
27
+ const MoveRedirectRepository_MoveRedirectRepository = MoveRedirectRepository.createImplementation({
28
+ implementation: MoveRedirectRepositoryImpl,
29
+ dependencies: [
30
+ RedirectModel,
31
+ MoveEntryRepository,
32
+ GetRedirectByIdRepository
33
+ ]
37
34
  });
35
+ export { MoveRedirectRepository_MoveRedirectRepository as MoveRedirectRepository };
38
36
 
39
37
  //# sourceMappingURL=MoveRedirectRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","MoveRedirectRepository","RepositoryAbstraction","RedirectModel","RedirectPersistenceError","MoveEntryRepository","GetRedirectByIdRepository","MoveRedirectRepositoryImpl","constructor","redirectModel","moveEntry","getRedirectById","execute","params","getResult","id","isFail","fail","error","result","folderId","movedRedirect","value","location","ok","createImplementation","implementation","dependencies"],"sources":["MoveRedirectRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MoveRedirectRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { RedirectModel, type WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetRedirectByIdRepository } from \"~/features/redirects/GetRedirectById/abstractions.js\";\n\nclass MoveRedirectRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private moveEntry: MoveEntryRepository.Interface,\n private getRedirectById: GetRedirectByIdRepository.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the redirect exists\n const getResult = await this.getRedirectById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the redirect location with the new folderId\n const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const movedRedirect: WbRedirect = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n return Result.ok(movedRedirect);\n }\n}\n\nexport const MoveRedirectRepository = RepositoryAbstraction.createImplementation({\n implementation: MoveRedirectRepositoryImpl,\n dependencies: [RedirectModel, MoveEntryRepository, GetRedirectByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,sBAAsB,IAAIC,qBAAqB;AACxD,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,mBAAmB,QAAQ,mEAAmE;AACvG,SAASC,yBAAyB;AAElC,MAAMC,0BAA0B,CAA4C;EACxEC,WAAWA,CACCC,aAAsC,EACtCC,SAAwC,EACxCC,eAAoD,EAC9D;IAAA,KAHUF,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,SAAwC,GAAxCA,SAAwC;IAAA,KACxCC,eAAoD,GAApDA,eAAoD;EAC7D;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,eAAe,CAACC,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE/D,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,CAACT,SAAS,CAACE,OAAO,CAAC,IAAI,CAACH,aAAa,EAAEI,MAAM,CAACE,EAAE,EAAEF,MAAM,CAACO,QAAQ,CAAC;IAE3F,IAAID,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOhB,MAAM,CAACiB,IAAI,CAAC,IAAIb,wBAAwB,CAACe,MAAM,CAACD,KAAK,CAAC,CAAC;IAClE;IAEA,MAAMG,aAAyB,GAAG;MAC9B,GAAGP,SAAS,CAACQ,KAAK;MAClBC,QAAQ,EAAE;QACNH,QAAQ,EAAEP,MAAM,CAACO;MACrB;IACJ,CAAC;IACD,OAAOpB,MAAM,CAACwB,EAAE,CAACH,aAAa,CAAC;EACnC;AACJ;AAEA,OAAO,MAAMpB,sBAAsB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EAC7EC,cAAc,EAAEnB,0BAA0B;EAC1CoB,YAAY,EAAE,CAACxB,aAAa,EAAEE,mBAAmB,EAAEC,yBAAyB;AAChF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/MoveRedirect/MoveRedirectRepository.js","sources":["../../../../src/features/redirects/MoveRedirect/MoveRedirectRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { MoveRedirectRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { RedirectModel, type WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError } from \"~/domain/redirect/errors.js\";\nimport { MoveEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/index.js\";\nimport { GetRedirectByIdRepository } from \"~/features/redirects/GetRedirectById/abstractions.js\";\n\nclass MoveRedirectRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private moveEntry: MoveEntryRepository.Interface,\n private getRedirectById: GetRedirectByIdRepository.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the redirect exists\n const getResult = await this.getRedirectById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n // Update the redirect location with the new folderId\n const result = await this.moveEntry.execute(this.redirectModel, params.id, params.folderId);\n\n if (result.isFail()) {\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const movedRedirect: WbRedirect = {\n ...getResult.value,\n location: {\n folderId: params.folderId\n }\n };\n return Result.ok(movedRedirect);\n }\n}\n\nexport const MoveRedirectRepository = RepositoryAbstraction.createImplementation({\n implementation: MoveRedirectRepositoryImpl,\n dependencies: [RedirectModel, MoveEntryRepository, GetRedirectByIdRepository]\n});\n"],"names":["MoveRedirectRepositoryImpl","redirectModel","moveEntry","getRedirectById","params","getResult","Result","result","RedirectPersistenceError","movedRedirect","MoveRedirectRepository","RepositoryAbstraction","RedirectModel","MoveEntryRepository","GetRedirectByIdRepository"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,aAAsC,EACtCC,SAAwC,EACxCC,eAAoD,CAC9D;aAHUF,aAAa,GAAbA;aACAC,SAAS,GAATA;aACAC,eAAe,GAAfA;IACT;IAEH,MAAM,QAAQC,MAAoC,EAAgC;QAE9E,MAAMC,YAAY,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAACD,OAAO,EAAE;QAE9D,IAAIC,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAItC,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAEH,OAAO,EAAE,EAAEA,OAAO,QAAQ;QAE1F,IAAIG,OAAO,MAAM,IACb,OAAOD,OAAO,IAAI,CAAC,IAAIE,yBAAyBD,OAAO,KAAK;QAGhE,MAAME,gBAA4B;YAC9B,GAAGJ,UAAU,KAAK;YAClB,UAAU;gBACN,UAAUD,OAAO,QAAQ;YAC7B;QACJ;QACA,OAAOE,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAA0C,CAAC;IAC7E,gBAAgBX;IAChB,cAAc;QAACY;QAAeC;QAAqBC;KAA0B;AACjF"}
@@ -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 { MoveRedirectUseCase as UseCaseAbstraction, MoveRedirectRepository } from "./abstractions.js";
4
- import { RedirectBeforeMoveEvent, RedirectAfterMoveEvent } from "./events.js";
3
+ import { MoveRedirectRepository, MoveRedirectUseCase } from "./abstractions.js";
4
+ import { RedirectAfterMoveEvent, RedirectBeforeMoveEvent } from "./events.js";
5
5
  import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
6
6
  import { WbPermissions } from "../../permissions/abstractions.js";
7
7
  import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
8
8
  class MoveRedirectUseCaseImpl {
9
- constructor(permissions, eventPublisher, getRedirectById, repository) {
10
- this.permissions = permissions;
11
- this.eventPublisher = eventPublisher;
12
- this.getRedirectById = getRedirectById;
13
- this.repository = repository;
14
- }
15
- async execute(params) {
16
- const hasPermission = await this.permissions.canEdit("redirect");
17
- if (!hasPermission) {
18
- return Result.fail(new RedirectNotAuthorizedError());
9
+ constructor(permissions, eventPublisher, getRedirectById, repository){
10
+ this.permissions = permissions;
11
+ this.eventPublisher = eventPublisher;
12
+ this.getRedirectById = getRedirectById;
13
+ this.repository = repository;
19
14
  }
20
-
21
- // Get the original redirect for events
22
- const getResult = await this.getRedirectById.execute(params.id);
23
- if (getResult.isFail()) {
24
- return getResult;
25
- }
26
- const original = getResult.value;
27
- const canEdit = await this.permissions.canEdit("redirect", original);
28
- if (!canEdit) {
29
- return Result.fail(new RedirectNotAuthorizedError());
30
- }
31
-
32
- // Publish before move event
33
- const beforeEvent = new RedirectBeforeMoveEvent({
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("redirect");
17
+ if (!hasPermission) return Result.fail(new RedirectNotAuthorizedError());
18
+ const getResult = await this.getRedirectById.execute(params.id);
19
+ if (getResult.isFail()) return getResult;
20
+ const original = getResult.value;
21
+ const canEdit = await this.permissions.canEdit("redirect", original);
22
+ if (!canEdit) return Result.fail(new RedirectNotAuthorizedError());
23
+ const beforeEvent = new RedirectBeforeMoveEvent({
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 RedirectAfterMoveEvent({
31
+ original,
32
+ input: params,
33
+ redirect: 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 RedirectAfterMoveEvent({
47
- original,
48
- input: params,
49
- redirect: result.value
50
- });
51
- await this.eventPublisher.publish(afterEvent);
52
- return Result.ok(result.value);
53
- }
54
38
  }
55
- export const MoveRedirectUseCase = createImplementation({
56
- abstraction: UseCaseAbstraction,
57
- implementation: MoveRedirectUseCaseImpl,
58
- dependencies: [WbPermissions, EventPublisher, GetRedirectByIdUseCase, MoveRedirectRepository]
39
+ const MoveRedirectUseCase_MoveRedirectUseCase = createImplementation({
40
+ abstraction: MoveRedirectUseCase,
41
+ implementation: MoveRedirectUseCaseImpl,
42
+ dependencies: [
43
+ WbPermissions,
44
+ EventPublisher,
45
+ GetRedirectByIdUseCase,
46
+ MoveRedirectRepository
47
+ ]
59
48
  });
49
+ export { MoveRedirectUseCase_MoveRedirectUseCase as MoveRedirectUseCase };
60
50
 
61
51
  //# sourceMappingURL=MoveRedirectUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","MoveRedirectUseCase","UseCaseAbstraction","MoveRedirectRepository","RedirectBeforeMoveEvent","RedirectAfterMoveEvent","GetRedirectByIdUseCase","WbPermissions","RedirectNotAuthorizedError","MoveRedirectUseCaseImpl","constructor","permissions","eventPublisher","getRedirectById","repository","execute","params","hasPermission","canEdit","fail","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","abstraction","implementation","dependencies"],"sources":["MoveRedirectUseCase.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 {\n MoveRedirectUseCase as UseCaseAbstraction,\n MoveRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeMoveEvent, RedirectAfterMoveEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass MoveRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: MoveRedirectRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.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(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new RedirectBeforeMoveEvent({\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 RedirectAfterMoveEvent({\n original,\n input: params,\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MoveRedirectUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MoveRedirectUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetRedirectByIdUseCase, MoveRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAE1B,SAASC,uBAAuB,EAAEC,sBAAsB;AACxD,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA4C,EACtD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,eAAe,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE/D,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,UAAU,EAAEK,QAAQ,CAAC;IACpE,IAAI,CAACL,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIX,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,uBAAuB,CAAC;MAC5CmB,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,sBAAsB,CAAC;MAC1CkB,QAAQ;MACRG,KAAK,EAAEV,MAAM;MACbc,QAAQ,EAAEF,MAAM,CAACJ;IACrB,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,mBAAmB,GAAGF,oBAAoB,CAAC;EACpDiC,WAAW,EAAE9B,kBAAkB;EAC/B+B,cAAc,EAAExB,uBAAuB;EACvCyB,YAAY,EAAE,CAAC3B,aAAa,EAAEP,cAAc,EAAEM,sBAAsB,EAAEH,sBAAsB;AAChG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/MoveRedirect/MoveRedirectUseCase.js","sources":["../../../../src/features/redirects/MoveRedirect/MoveRedirectUseCase.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 {\n MoveRedirectUseCase as UseCaseAbstraction,\n MoveRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeMoveEvent, RedirectAfterMoveEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass MoveRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: MoveRedirectRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.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(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new RedirectBeforeMoveEvent({\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 RedirectAfterMoveEvent({\n original,\n input: params,\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MoveRedirectUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MoveRedirectUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetRedirectByIdUseCase, MoveRedirectRepository]\n});\n"],"names":["MoveRedirectUseCaseImpl","permissions","eventPublisher","getRedirectById","repository","params","hasPermission","Result","RedirectNotAuthorizedError","getResult","original","canEdit","beforeEvent","RedirectBeforeMoveEvent","result","afterEvent","RedirectAfterMoveEvent","MoveRedirectUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","GetRedirectByIdUseCase","MoveRedirectRepository"],"mappings":";;;;;;;AAcA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA4C,CACtD;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,eAAe,GAAfA;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,eAAe,CAAC,OAAO,CAACJ,OAAO,EAAE;QAE9D,IAAII,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,WAAWD,UAAU,KAAK;QAEhC,MAAME,UAAU,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAYD;QAC3D,IAAI,CAACC,SACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,wBAAwB;YAC5CH;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,uBAAuB;YAC1CN;YACA,OAAOL;YACP,UAAUS,OAAO,KAAK;QAC1B;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,0CAAsBC,qBAAqB;IACpD,aAAaC;IACb,gBAAgBnB;IAChB,cAAc;QAACoB;QAAeC;QAAgBC;QAAwBC;KAAuB;AACjG"}
@@ -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 MoveRedirectRepository = createAbstraction("Wb/MoveRedirectRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- /** Move a URL redirect to a different folder. */
18
- export const MoveRedirectUseCase = createAbstraction("Wb/MoveRedirectUseCase");
19
-
20
- // ============================================================================
21
- // Event Payload Types
22
- // ============================================================================
23
-
24
- // ============================================================================
25
- // Event Handler Abstractions
26
- // ============================================================================
27
-
28
- /** Hook into redirect lifecycle before a redirect is moved. */
29
- export const RedirectBeforeMoveEventHandler = createAbstraction("Wb/RedirectBeforeMoveEventHandler");
30
- /** Hook into redirect lifecycle after a redirect is moved. */
31
- export const RedirectAfterMoveEventHandler = createAbstraction("Wb/RedirectAfterMoveEventHandler");
2
+ const MoveRedirectRepository = createAbstraction("Wb/MoveRedirectRepository");
3
+ const MoveRedirectUseCase = createAbstraction("Wb/MoveRedirectUseCase");
4
+ const RedirectBeforeMoveEventHandler = createAbstraction("Wb/RedirectBeforeMoveEventHandler");
5
+ const RedirectAfterMoveEventHandler = createAbstraction("Wb/RedirectAfterMoveEventHandler");
6
+ export { MoveRedirectRepository, MoveRedirectUseCase, RedirectAfterMoveEventHandler, RedirectBeforeMoveEventHandler };
32
7
 
33
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","MoveRedirectRepository","MoveRedirectUseCase","RedirectBeforeMoveEventHandler","RedirectAfterMoveEventHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbRedirectParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMoveRedirectRepository {\n execute(params: IMoveWbRedirectParams): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IMoveRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IMoveRedirectRepositoryErrors[keyof IMoveRedirectRepositoryErrors];\n\nexport const MoveRedirectRepository = createAbstraction<IMoveRedirectRepository>(\n \"Wb/MoveRedirectRepository\"\n);\n\nexport namespace MoveRedirectRepository {\n export type Interface = IMoveRedirectRepository;\n export type Params = IMoveWbRedirectParams;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMoveRedirectUseCase {\n execute(params: IMoveWbRedirectParams): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IMoveRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n notFound: RedirectNotFoundError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IMoveRedirectUseCaseErrors[keyof IMoveRedirectUseCaseErrors];\n\n/** Move a URL redirect to a different folder. */\nexport const MoveRedirectUseCase =\n createAbstraction<IMoveRedirectUseCase>(\"Wb/MoveRedirectUseCase\");\n\nexport namespace MoveRedirectUseCase {\n export type Interface = IMoveRedirectUseCase;\n export type Params = IMoveWbRedirectParams;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeMovePayload {\n original: WbRedirect;\n input: IMoveWbRedirectParams;\n}\n\nexport interface RedirectAfterMovePayload {\n original: WbRedirect;\n input: IMoveWbRedirectParams;\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into redirect lifecycle before a redirect is moved. */\nexport const RedirectBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeMovePayload>>\n>(\"Wb/RedirectBeforeMoveEventHandler\");\n\nexport namespace RedirectBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeMovePayload>>;\n export type Event = DomainEvent<RedirectBeforeMovePayload>;\n export type Redirect = WbRedirect;\n}\n\n/** Hook into redirect lifecycle after a redirect is moved. */\nexport const RedirectAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterMovePayload>>\n>(\"Wb/RedirectAfterMoveEventHandler\");\n\nexport namespace RedirectAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterMovePayload>>;\n export type Event = DomainEvent<RedirectAfterMovePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,sBAAsB,GAAGD,iBAAiB,CACnD,2BACJ,CAAC;;AAUD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,mBAAmB,GAC5BF,iBAAiB,CAAuB,wBAAwB,CAAC;;AAUrE;AACA;AACA;;AAaA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,8BAA8B,GAAGH,iBAAiB,CAE7D,mCAAmC,CAAC;AAQtC;AACA,OAAO,MAAMI,6BAA6B,GAAGJ,iBAAiB,CAE5D,kCAAkC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/MoveRedirect/abstractions.js","sources":["../../../../src/features/redirects/MoveRedirect/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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbRedirectParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMoveRedirectRepository {\n execute(params: IMoveWbRedirectParams): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IMoveRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IMoveRedirectRepositoryErrors[keyof IMoveRedirectRepositoryErrors];\n\nexport const MoveRedirectRepository = createAbstraction<IMoveRedirectRepository>(\n \"Wb/MoveRedirectRepository\"\n);\n\nexport namespace MoveRedirectRepository {\n export type Interface = IMoveRedirectRepository;\n export type Params = IMoveWbRedirectParams;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMoveRedirectUseCase {\n execute(params: IMoveWbRedirectParams): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IMoveRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n notFound: RedirectNotFoundError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IMoveRedirectUseCaseErrors[keyof IMoveRedirectUseCaseErrors];\n\n/** Move a URL redirect to a different folder. */\nexport const MoveRedirectUseCase =\n createAbstraction<IMoveRedirectUseCase>(\"Wb/MoveRedirectUseCase\");\n\nexport namespace MoveRedirectUseCase {\n export type Interface = IMoveRedirectUseCase;\n export type Params = IMoveWbRedirectParams;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeMovePayload {\n original: WbRedirect;\n input: IMoveWbRedirectParams;\n}\n\nexport interface RedirectAfterMovePayload {\n original: WbRedirect;\n input: IMoveWbRedirectParams;\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into redirect lifecycle before a redirect is moved. */\nexport const RedirectBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeMovePayload>>\n>(\"Wb/RedirectBeforeMoveEventHandler\");\n\nexport namespace RedirectBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeMovePayload>>;\n export type Event = DomainEvent<RedirectBeforeMovePayload>;\n export type Redirect = WbRedirect;\n}\n\n/** Hook into redirect lifecycle after a redirect is moved. */\nexport const RedirectAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterMovePayload>>\n>(\"Wb/RedirectAfterMoveEventHandler\");\n\nexport namespace RedirectAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterMovePayload>>;\n export type Event = DomainEvent<RedirectAfterMovePayload>;\n export type Redirect = WbRedirect;\n}\n"],"names":["MoveRedirectRepository","createAbstraction","MoveRedirectUseCase","RedirectBeforeMoveEventHandler","RedirectAfterMoveEventHandler"],"mappings":";AAkCO,MAAMA,yBAAyBC,kBAClC;AA4BG,MAAMC,sBACTD,kBAAwC;AA8BrC,MAAME,iCAAiCF,kBAE5C;AASK,MAAMG,gCAAgCH,kBAE3C"}
@@ -1,19 +1,21 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
- import { RedirectBeforeMoveEventHandler, RedirectAfterMoveEventHandler } from "./abstractions.js";
3
- // RedirectBeforeMove Event
4
- export class RedirectBeforeMoveEvent extends DomainEvent {
5
- eventType = "redirect.beforeMove";
6
- getHandlerAbstraction() {
7
- return RedirectBeforeMoveEventHandler;
8
- }
2
+ import { RedirectAfterMoveEventHandler, RedirectBeforeMoveEventHandler } from "./abstractions.js";
3
+ class RedirectBeforeMoveEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return RedirectBeforeMoveEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "redirect.beforeMove";
9
+ }
9
10
  }
10
-
11
- // RedirectAfterMove Event
12
- export class RedirectAfterMoveEvent extends DomainEvent {
13
- eventType = "redirect.afterMove";
14
- getHandlerAbstraction() {
15
- return RedirectAfterMoveEventHandler;
16
- }
11
+ class RedirectAfterMoveEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return RedirectAfterMoveEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "redirect.afterMove";
17
+ }
17
18
  }
19
+ export { RedirectAfterMoveEvent, RedirectBeforeMoveEvent };
18
20
 
19
21
  //# sourceMappingURL=events.js.map