@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
@@ -0,0 +1,40 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
3
+ import { UpdatePageRevisionDescriptionRepository } from "./abstractions.js";
4
+ import { PageModel } from "../../../domain/page/abstractions.js";
5
+ import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
6
+ import { PageNotFoundError, PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
7
+ import { UpdateRevisionDescriptionUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateRevisionDescription/index.js";
8
+ class UpdatePageRevisionDescriptionRepositoryImpl {
9
+ constructor(updateEntryRevisionDescription, getEntryById, pageModel){
10
+ this.updateEntryRevisionDescription = updateEntryRevisionDescription;
11
+ this.getEntryById = getEntryById;
12
+ this.pageModel = pageModel;
13
+ }
14
+ async execute(id, revisionDescription) {
15
+ const getResult = await this.getEntryById.execute(this.pageModel, id);
16
+ if (getResult.isFail()) {
17
+ if ("Cms/Entry/NotFound" === getResult.error.code) return Result.fail(new PageNotFoundError(id));
18
+ return Result.fail(new PagePersistenceError(getResult.error));
19
+ }
20
+ const result = await this.updateEntryRevisionDescription.execute(this.pageModel, id, revisionDescription);
21
+ if (result.isFail()) {
22
+ if ("Cms/Entry/ValidationError" === result.error.code) return Result.fail(new PageValidationError(result.error.message));
23
+ if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new PageNotFoundError(id));
24
+ return Result.fail(new PagePersistenceError(result.error));
25
+ }
26
+ const page = EntryToPageMapper.toPage(result.value);
27
+ return Result.ok(page);
28
+ }
29
+ }
30
+ const UpdatePageRevisionDescriptionRepository_UpdatePageRevisionDescriptionRepository = UpdatePageRevisionDescriptionRepository.createImplementation({
31
+ implementation: UpdatePageRevisionDescriptionRepositoryImpl,
32
+ dependencies: [
33
+ UpdateRevisionDescriptionUseCase,
34
+ GetEntryByIdUseCase,
35
+ PageModel
36
+ ]
37
+ });
38
+ export { UpdatePageRevisionDescriptionRepository_UpdatePageRevisionDescriptionRepository as UpdatePageRevisionDescriptionRepository };
39
+
40
+ //# sourceMappingURL=UpdatePageRevisionDescriptionRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js","sources":["../../../../src/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { UpdatePageRevisionDescriptionRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError\n} from \"~/domain/page/errors.js\";\nimport { UpdateRevisionDescriptionUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateRevisionDescription/index.js\";\n\nclass UpdatePageRevisionDescriptionRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private updateEntryRevisionDescription: UpdateRevisionDescriptionUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(\n id: string,\n revisionDescription: string | undefined\n ): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Update the entry\n const result = await this.updateEntryRevisionDescription.execute(\n this.pageModel,\n id,\n revisionDescription\n );\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new PageValidationError(result.error.message));\n }\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(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 UpdatePageRevisionDescriptionRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdatePageRevisionDescriptionRepositoryImpl,\n dependencies: [UpdateRevisionDescriptionUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"names":["UpdatePageRevisionDescriptionRepositoryImpl","updateEntryRevisionDescription","getEntryById","pageModel","id","revisionDescription","getResult","Result","PageNotFoundError","PagePersistenceError","result","PageValidationError","page","EntryToPageMapper","UpdatePageRevisionDescriptionRepository","RepositoryAbstraction","UpdateRevisionDescriptionUseCase","GetEntryByIdUseCase","PageModel"],"mappings":";;;;;;;AAYA,MAAMA;IACF,YACYC,8BAA0E,EAC1EC,YAA2C,EAC3CC,SAA8B,CACxC;aAHUF,8BAA8B,GAA9BA;aACAC,YAAY,GAAZA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,EAAU,EACVC,mBAAuC,EACX;QAE5B,MAAMC,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAEF;QAElE,IAAIE,UAAU,MAAM,IAAI;YACpB,IAAIA,AAAyB,yBAAzBA,UAAU,KAAK,CAAC,IAAI,EACpB,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBJ;YAE7C,OAAOG,OAAO,IAAI,CAAC,IAAIE,qBAAqBH,UAAU,KAAK;QAC/D;QAGA,MAAMI,SAAS,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAC5D,IAAI,CAAC,SAAS,EACdN,IACAC;QAGJ,IAAIK,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,gCAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOH,OAAO,IAAI,CAAC,IAAII,oBAAoBD,OAAO,KAAK,CAAC,OAAO;YAEnE,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,kBAAkBJ;YAE7C,OAAOG,OAAO,IAAI,CAAC,IAAIE,qBAAqBC,OAAO,KAAK;QAC5D;QAEA,MAAME,OAAOC,kBAAkB,MAAM,CAACH,OAAO,KAAK;QAClD,OAAOH,OAAO,EAAE,CAACK;IACrB;AACJ;AAEO,MAAME,kFAA0CC,wCAAAA,oBAA0C,CAAC;IAC9F,gBAAgBf;IAChB,cAAc;QAACgB;QAAkCC;QAAqBC;KAAU;AACpF"}
@@ -0,0 +1,16 @@
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { UpdatePageRevisionDescriptionRepository, UpdatePageRevisionDescriptionUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
5
+ declare class UpdatePageRevisionDescriptionUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
7
+ private eventPublisher;
8
+ private getPageById;
9
+ private repository;
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: UpdatePageRevisionDescriptionRepository.Interface);
11
+ execute(id: string, revisionDescription: string): UseCaseAbstraction.Return;
12
+ }
13
+ export declare const UpdatePageRevisionDescriptionUseCase: typeof UpdatePageRevisionDescriptionUseCaseImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdatePageRevisionDescriptionUseCase>;
15
+ };
16
+ export {};
@@ -0,0 +1,56 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { UpdatePageRevisionDescriptionRepository, UpdatePageRevisionDescriptionUseCase } from "./abstractions.js";
4
+ import { PageAfterUpdateRevisionDescriptionEvent, PageBeforeUpdateRevisionDescriptionEvent } from "./events.js";
5
+ import { GetPageByIdUseCase } from "../GetPageById/index.js";
6
+ import { WbPermissions } from "../../permissions/abstractions.js";
7
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
8
+ class UpdatePageRevisionDescriptionUseCaseImpl {
9
+ constructor(permissions, eventPublisher, getPageById, repository){
10
+ this.permissions = permissions;
11
+ this.eventPublisher = eventPublisher;
12
+ this.getPageById = getPageById;
13
+ this.repository = repository;
14
+ }
15
+ async execute(id, revisionDescription) {
16
+ const hasPermission = await this.permissions.canEdit("page");
17
+ if (!hasPermission) return Result.fail(new PageNotAuthorizedError());
18
+ const getResult = await this.getPageById.execute(id);
19
+ if (getResult.isFail()) return getResult;
20
+ const original = getResult.value;
21
+ const canEdit = await this.permissions.canEdit("page", original);
22
+ if (!canEdit) return Result.fail(new PageNotAuthorizedError());
23
+ const beforeEvent = new PageBeforeUpdateRevisionDescriptionEvent({
24
+ original,
25
+ input: {
26
+ id,
27
+ revisionDescription
28
+ }
29
+ });
30
+ await this.eventPublisher.publish(beforeEvent);
31
+ const result = await this.repository.execute(id, revisionDescription);
32
+ if (result.isFail()) return result;
33
+ const afterEvent = new PageAfterUpdateRevisionDescriptionEvent({
34
+ original,
35
+ input: {
36
+ id,
37
+ revisionDescription
38
+ },
39
+ page: result.value
40
+ });
41
+ await this.eventPublisher.publish(afterEvent);
42
+ return Result.ok(result.value);
43
+ }
44
+ }
45
+ const UpdatePageRevisionDescriptionUseCase_UpdatePageRevisionDescriptionUseCase = UpdatePageRevisionDescriptionUseCase.createImplementation({
46
+ implementation: UpdatePageRevisionDescriptionUseCaseImpl,
47
+ dependencies: [
48
+ WbPermissions,
49
+ EventPublisher,
50
+ GetPageByIdUseCase,
51
+ UpdatePageRevisionDescriptionRepository
52
+ ]
53
+ });
54
+ export { UpdatePageRevisionDescriptionUseCase_UpdatePageRevisionDescriptionUseCase as UpdatePageRevisionDescriptionUseCase };
55
+
56
+ //# sourceMappingURL=UpdatePageRevisionDescriptionUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js","sources":["../../../../src/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.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 {\n UpdatePageRevisionDescriptionRepository,\n UpdatePageRevisionDescriptionUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport {\n PageAfterUpdateRevisionDescriptionEvent,\n PageBeforeUpdateRevisionDescriptionEvent\n} from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass UpdatePageRevisionDescriptionUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: UpdatePageRevisionDescriptionRepository.Interface\n ) {}\n\n async execute(id: string, revisionDescription: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before update event\n const beforeEvent = new PageBeforeUpdateRevisionDescriptionEvent({\n original,\n input: {\n id,\n revisionDescription\n }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, revisionDescription);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new PageAfterUpdateRevisionDescriptionEvent({\n original,\n input: {\n id,\n revisionDescription\n },\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdatePageRevisionDescriptionUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdatePageRevisionDescriptionUseCaseImpl,\n dependencies: [\n WbPermissions,\n EventPublisher,\n GetPageByIdUseCase,\n UpdatePageRevisionDescriptionRepository\n ]\n});\n"],"names":["UpdatePageRevisionDescriptionUseCaseImpl","permissions","eventPublisher","getPageById","repository","id","revisionDescription","hasPermission","Result","PageNotAuthorizedError","getResult","original","canEdit","beforeEvent","PageBeforeUpdateRevisionDescriptionEvent","result","afterEvent","PageAfterUpdateRevisionDescriptionEvent","UpdatePageRevisionDescriptionUseCase","UseCaseAbstraction","WbPermissions","EventPublisher","GetPageByIdUseCase","UpdatePageRevisionDescriptionRepository"],"mappings":";;;;;;;AAiBA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA6D,CACvE;aAJUH,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAEC,mBAA2B,EAA6B;QAC9E,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACrD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACL;QAEjD,IAAIK,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,WAAWD,UAAU,KAAK;QAEhC,MAAME,UAAU,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQD;QACvD,IAAI,CAACC,SACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMI,cAAc,IAAIC,yCAAyC;YAC7DH;YACA,OAAO;gBACHN;gBACAC;YACJ;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACO;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACV,IAAIC;QAEjD,IAAIS,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,aAAa,IAAIC,wCAAwC;YAC3DN;YACA,OAAO;gBACHN;gBACAC;YACJ;YACA,MAAMS,OAAO,KAAK;QACtB;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOR,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,4EAAuCC,qCAAAA,oBAAuC,CAAC;IACxF,gBAAgBnB;IAChB,cAAc;QACVoB;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,67 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { WbPage } from "../../../domain/page/abstractions.js";
4
+ import { PageNotAuthorizedError, PageNotFoundError, PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
5
+ export interface IUpdatePageRevisionDescriptionRepository {
6
+ execute(id: string, revisionDescription: string | undefined): Promise<Result<WbPage, RepositoryError>>;
7
+ }
8
+ export interface IUpdatePageRevisionDescriptionRepositoryErrors {
9
+ validation: PageValidationError;
10
+ notFound: PageNotFoundError;
11
+ persistence: PagePersistenceError;
12
+ }
13
+ type RepositoryError = IUpdatePageRevisionDescriptionRepositoryErrors[keyof IUpdatePageRevisionDescriptionRepositoryErrors];
14
+ export declare const UpdatePageRevisionDescriptionRepository: import("@webiny/di").Abstraction<IUpdatePageRevisionDescriptionRepository>;
15
+ export declare namespace UpdatePageRevisionDescriptionRepository {
16
+ type Interface = IUpdatePageRevisionDescriptionRepository;
17
+ type Return = Promise<Result<WbPage, RepositoryError>>;
18
+ type Error = RepositoryError;
19
+ }
20
+ export interface IUpdatePageRevisionDescriptionUseCase {
21
+ execute(id: string, revisionDescription: string | undefined): Promise<Result<WbPage, UseCaseError>>;
22
+ }
23
+ export interface IUpdatePageRevisionDescriptionUseCaseErrors {
24
+ notAuthorized: PageNotAuthorizedError;
25
+ validation: PageValidationError;
26
+ notFound: PageNotFoundError;
27
+ persistence: PagePersistenceError;
28
+ }
29
+ type UseCaseError = IUpdatePageRevisionDescriptionUseCaseErrors[keyof IUpdatePageRevisionDescriptionUseCaseErrors];
30
+ /** Update a page. */
31
+ export declare const UpdatePageRevisionDescriptionUseCase: import("@webiny/di").Abstraction<IUpdatePageRevisionDescriptionUseCase>;
32
+ export declare namespace UpdatePageRevisionDescriptionUseCase {
33
+ type Interface = IUpdatePageRevisionDescriptionUseCase;
34
+ type Return = Promise<Result<WbPage, UseCaseError>>;
35
+ type Error = UseCaseError;
36
+ type Page = WbPage;
37
+ }
38
+ export interface PageBeforeUpdateRevisionDescriptionPayload {
39
+ original: WbPage;
40
+ input: {
41
+ id: string;
42
+ revisionDescription: string | undefined;
43
+ };
44
+ }
45
+ export interface PageAfterUpdateRevisionDescriptionPayload {
46
+ original: WbPage;
47
+ input: {
48
+ id: string;
49
+ revisionDescription: string | undefined;
50
+ };
51
+ page: WbPage;
52
+ }
53
+ /** Hook into page lifecycle before a page is updated. */
54
+ export declare const PageBeforeUpdateRevisionDescriptionEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>>>;
55
+ export declare namespace PageBeforeUpdateRevisionDescriptionEventHandler {
56
+ type Interface = IEventHandler<DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>>;
57
+ type Event = DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>;
58
+ type Page = WbPage;
59
+ }
60
+ /** Hook into page lifecycle after a page is updated. */
61
+ export declare const PageAfterUpdateRevisionDescriptionEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterUpdateRevisionDescriptionPayload>>>;
62
+ export declare namespace PageAfterUpdateRevisionDescriptionEventHandler {
63
+ type Interface = IEventHandler<DomainEvent<PageAfterUpdateRevisionDescriptionPayload>>;
64
+ type Event = DomainEvent<PageAfterUpdateRevisionDescriptionPayload>;
65
+ type Page = WbPage;
66
+ }
67
+ export {};
@@ -0,0 +1,8 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const UpdatePageRevisionDescriptionRepository = createAbstraction("Wb/Page/UpdatePageRevisionDescriptionRepository");
3
+ const UpdatePageRevisionDescriptionUseCase = createAbstraction("Wb/Page/UpdatePageRevisionDescriptionUseCase");
4
+ const PageBeforeUpdateRevisionDescriptionEventHandler = createAbstraction("Wb/Page/BeforeUpdateRevisionDescriptionEventHandler");
5
+ const PageAfterUpdateRevisionDescriptionEventHandler = createAbstraction("Wb/Page/AfterUpdateRevisionDescriptionEventHandler");
6
+ export { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler, UpdatePageRevisionDescriptionRepository, UpdatePageRevisionDescriptionUseCase };
7
+
8
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/pages/UpdatePageRevisionDescription/abstractions.js","sources":["../../../../src/features/pages/UpdatePageRevisionDescription/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotAuthorizedError,\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError\n} from \"~/domain/page/errors.js\";\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdatePageRevisionDescriptionRepository {\n execute(\n id: string,\n revisionDescription: string | undefined\n ): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IUpdatePageRevisionDescriptionRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n IUpdatePageRevisionDescriptionRepositoryErrors[keyof IUpdatePageRevisionDescriptionRepositoryErrors];\n\nexport const UpdatePageRevisionDescriptionRepository =\n createAbstraction<IUpdatePageRevisionDescriptionRepository>(\n \"Wb/Page/UpdatePageRevisionDescriptionRepository\"\n );\n\nexport namespace UpdatePageRevisionDescriptionRepository {\n export type Interface = IUpdatePageRevisionDescriptionRepository;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdatePageRevisionDescriptionUseCase {\n execute(\n id: string,\n revisionDescription: string | undefined\n ): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IUpdatePageRevisionDescriptionUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n IUpdatePageRevisionDescriptionUseCaseErrors[keyof IUpdatePageRevisionDescriptionUseCaseErrors];\n\n/** Update a page. */\nexport const UpdatePageRevisionDescriptionUseCase =\n createAbstraction<IUpdatePageRevisionDescriptionUseCase>(\n \"Wb/Page/UpdatePageRevisionDescriptionUseCase\"\n );\n\nexport namespace UpdatePageRevisionDescriptionUseCase {\n export type Interface = IUpdatePageRevisionDescriptionUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeUpdateRevisionDescriptionPayload {\n original: WbPage;\n input: {\n id: string;\n revisionDescription: string | undefined;\n };\n}\n\nexport interface PageAfterUpdateRevisionDescriptionPayload {\n original: WbPage;\n input: {\n id: string;\n revisionDescription: string | undefined;\n };\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is updated. */\nexport const PageBeforeUpdateRevisionDescriptionEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>>\n>(\"Wb/Page/BeforeUpdateRevisionDescriptionEventHandler\");\n\nexport namespace PageBeforeUpdateRevisionDescriptionEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>>;\n export type Event = DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is updated. */\nexport const PageAfterUpdateRevisionDescriptionEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterUpdateRevisionDescriptionPayload>>\n>(\"Wb/Page/AfterUpdateRevisionDescriptionEventHandler\");\n\nexport namespace PageAfterUpdateRevisionDescriptionEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterUpdateRevisionDescriptionPayload>>;\n export type Event = DomainEvent<PageAfterUpdateRevisionDescriptionPayload>;\n export type Page = WbPage;\n}\n"],"names":["UpdatePageRevisionDescriptionRepository","createAbstraction","UpdatePageRevisionDescriptionUseCase","PageBeforeUpdateRevisionDescriptionEventHandler","PageAfterUpdateRevisionDescriptionEventHandler"],"mappings":";AA6BO,MAAMA,0CACTC,kBACI;AA+BD,MAAMC,uCACTD,kBACI;AAoCD,MAAME,kDAAkDF,kBAE7D;AASK,MAAMG,iDAAiDH,kBAE5D"}
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { PageBeforeUpdateRevisionDescriptionPayload, PageAfterUpdateRevisionDescriptionPayload } from "./abstractions.js";
3
+ export declare class PageBeforeUpdateRevisionDescriptionEvent extends DomainEvent<PageBeforeUpdateRevisionDescriptionPayload> {
4
+ eventType: "page.beforeUpdateRevisionDescription";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeUpdateRevisionDescriptionPayload>>>;
6
+ }
7
+ export declare class PageAfterUpdateRevisionDescriptionEvent extends DomainEvent<PageAfterUpdateRevisionDescriptionPayload> {
8
+ eventType: "page.afterUpdateRevisionDescription";
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterUpdateRevisionDescriptionPayload>>>;
10
+ }
@@ -0,0 +1,21 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler } from "./abstractions.js";
3
+ class PageBeforeUpdateRevisionDescriptionEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return PageBeforeUpdateRevisionDescriptionEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "page.beforeUpdateRevisionDescription";
9
+ }
10
+ }
11
+ class PageAfterUpdateRevisionDescriptionEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return PageAfterUpdateRevisionDescriptionEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "page.afterUpdateRevisionDescription";
17
+ }
18
+ }
19
+ export { PageAfterUpdateRevisionDescriptionEvent, PageBeforeUpdateRevisionDescriptionEvent };
20
+
21
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/pages/UpdatePageRevisionDescription/events.js","sources":["../../../../src/features/pages/UpdatePageRevisionDescription/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n PageBeforeUpdateRevisionDescriptionEventHandler,\n PageAfterUpdateRevisionDescriptionEventHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeUpdateRevisionDescriptionPayload,\n PageAfterUpdateRevisionDescriptionPayload\n} from \"./abstractions.js\";\n\n// PageBeforeUpdate Event\nexport class PageBeforeUpdateRevisionDescriptionEvent extends DomainEvent<PageBeforeUpdateRevisionDescriptionPayload> {\n eventType = \"page.beforeUpdateRevisionDescription\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeUpdateRevisionDescriptionEventHandler;\n }\n}\n\n// PageAfterUpdate Event\nexport class PageAfterUpdateRevisionDescriptionEvent extends DomainEvent<PageAfterUpdateRevisionDescriptionPayload> {\n eventType = \"page.afterUpdateRevisionDescription\" as const;\n\n getHandlerAbstraction() {\n return PageAfterUpdateRevisionDescriptionEventHandler;\n }\n}\n"],"names":["PageBeforeUpdateRevisionDescriptionEvent","DomainEvent","PageBeforeUpdateRevisionDescriptionEventHandler","PageAfterUpdateRevisionDescriptionEvent","PageAfterUpdateRevisionDescriptionEventHandler"],"mappings":";;AAWO,MAAMA,iDAAiDC;IAG1D,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,gDAAgDF;IAGzD,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -0,0 +1,4 @@
1
+ export declare const UpdatePageRevisionDescriptionFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdatePageRevisionDescriptionRepository } from "./UpdatePageRevisionDescriptionRepository.js";
3
+ import { UpdatePageRevisionDescriptionUseCase } from "./UpdatePageRevisionDescriptionUseCase.js";
4
+ const UpdatePageRevisionDescriptionFeature = createFeature({
5
+ name: "WebsiteBuilder/UpdatePageRevisionDescription",
6
+ register (container) {
7
+ container.register(UpdatePageRevisionDescriptionRepository).inSingletonScope();
8
+ container.register(UpdatePageRevisionDescriptionUseCase);
9
+ }
10
+ });
11
+ export { UpdatePageRevisionDescriptionFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/pages/UpdatePageRevisionDescription/feature.js","sources":["../../../../src/features/pages/UpdatePageRevisionDescription/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdatePageRevisionDescriptionRepository } from \"./UpdatePageRevisionDescriptionRepository.js\";\nimport { UpdatePageRevisionDescriptionUseCase } from \"./UpdatePageRevisionDescriptionUseCase.js\";\n\nexport const UpdatePageRevisionDescriptionFeature = createFeature({\n name: \"WebsiteBuilder/UpdatePageRevisionDescription\",\n register(container) {\n container.register(UpdatePageRevisionDescriptionRepository).inSingletonScope();\n container.register(UpdatePageRevisionDescriptionUseCase);\n }\n});\n"],"names":["UpdatePageRevisionDescriptionFeature","createFeature","container","UpdatePageRevisionDescriptionRepository","UpdatePageRevisionDescriptionUseCase"],"mappings":";;;AAIO,MAAMA,uCAAuCC,cAAc;IAC9D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,yCAAyC,gBAAgB;QAC5ED,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler, UpdatePageRevisionDescriptionUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler, UpdatePageRevisionDescriptionUseCase } from "./abstractions.js";
@@ -1,5 +1,6 @@
1
1
  import { createPermissionsAbstraction } from "@webiny/api-core/features/security/permissions/index.js";
2
2
  import { WB_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
- export const WbPermissions = createPermissionsAbstraction(WB_PERMISSIONS_SCHEMA);
3
+ const WbPermissions = createPermissionsAbstraction(WB_PERMISSIONS_SCHEMA);
4
+ export { WbPermissions };
4
5
 
5
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createPermissionsAbstraction","WB_PERMISSIONS_SCHEMA","WbPermissions"],"sources":["abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport type { Permissions } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const WbPermissions = createPermissionsAbstraction(WB_PERMISSIONS_SCHEMA);\n\nexport namespace WbPermissions {\n export type Interface = Permissions<typeof WB_PERMISSIONS_SCHEMA>;\n}\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,yDAAyD;AAEtG,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,aAAa,GAAGF,4BAA4B,CAACC,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport type { Permissions } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const WbPermissions = createPermissionsAbstraction(WB_PERMISSIONS_SCHEMA);\n\nexport namespace WbPermissions {\n export type Interface = Permissions<typeof WB_PERMISSIONS_SCHEMA>;\n}\n"],"names":["WbPermissions","createPermissionsAbstraction","WB_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,gBAAgBC,6BAA6BC"}
@@ -1,6 +1,7 @@
1
1
  import { createPermissionsFeature } from "@webiny/api-core/features/security/permissions/index.js";
2
2
  import { WB_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
3
  import { WbPermissions } from "./abstractions.js";
4
- export const WbPermissionsFeature = createPermissionsFeature(WB_PERMISSIONS_SCHEMA, WbPermissions);
4
+ const WbPermissionsFeature = createPermissionsFeature(WB_PERMISSIONS_SCHEMA, WbPermissions);
5
+ export { WbPermissionsFeature };
5
6
 
6
7
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createPermissionsFeature","WB_PERMISSIONS_SCHEMA","WbPermissions","WbPermissionsFeature"],"sources":["feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { WbPermissions } from \"./abstractions.js\";\n\nexport const WbPermissionsFeature = createPermissionsFeature(WB_PERMISSIONS_SCHEMA, WbPermissions);\n"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,yDAAyD;AAClG,SAASC,qBAAqB;AAC9B,SAASC,aAAa;AAEtB,OAAO,MAAMC,oBAAoB,GAAGH,wBAAwB,CAACC,qBAAqB,EAAEC,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { WbPermissions } from \"./abstractions.js\";\n\nexport const WbPermissionsFeature = createPermissionsFeature(WB_PERMISSIONS_SCHEMA, WbPermissions);\n"],"names":["WbPermissionsFeature","createPermissionsFeature","WB_PERMISSIONS_SCHEMA","WbPermissions"],"mappings":";;;AAIO,MAAMA,uBAAuBC,yBAAyBC,uBAAuBC"}
@@ -1,32 +1,34 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
3
- import { CreateRedirectRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { CreateRedirectRepository } from "./abstractions.js";
4
4
  import { RedirectModel } from "../../../domain/redirect/abstractions.js";
5
5
  import { RedirectPersistenceError, RedirectValidationError } from "../../../domain/redirect/errors.js";
6
6
  import { EntryToRedirectMapper } from "../../../domain/redirect/EntryToRedirectMapper.js";
7
7
  class CreateRedirectRepositoryImpl {
8
- constructor(redirectModel, createEntry) {
9
- this.redirectModel = redirectModel;
10
- this.createEntry = createEntry;
11
- }
12
- async execute(data) {
13
- const result = await this.createEntry.execute(this.redirectModel, {
14
- location: data.location,
15
- values: data
16
- });
17
- if (result.isFail()) {
18
- if (result.error.code === "Cms/Entry/ValidationError") {
19
- return Result.fail(new RedirectValidationError(result.error.message));
20
- }
21
- return Result.fail(new RedirectPersistenceError(result.error));
8
+ constructor(redirectModel, createEntry){
9
+ this.redirectModel = redirectModel;
10
+ this.createEntry = createEntry;
11
+ }
12
+ async execute(data) {
13
+ const result = await this.createEntry.execute(this.redirectModel, {
14
+ location: data.location,
15
+ values: data
16
+ });
17
+ if (result.isFail()) {
18
+ if ("Cms/Entry/ValidationError" === result.error.code) return Result.fail(new RedirectValidationError(result.error.message));
19
+ return Result.fail(new RedirectPersistenceError(result.error));
20
+ }
21
+ const redirect = EntryToRedirectMapper.toRedirect(result.value);
22
+ return Result.ok(redirect);
22
23
  }
23
- const redirect = EntryToRedirectMapper.toRedirect(result.value);
24
- return Result.ok(redirect);
25
- }
26
24
  }
27
- export const CreateRedirectRepository = RepositoryAbstraction.createImplementation({
28
- implementation: CreateRedirectRepositoryImpl,
29
- dependencies: [RedirectModel, CreateEntryUseCase]
25
+ const CreateRedirectRepository_CreateRedirectRepository = CreateRedirectRepository.createImplementation({
26
+ implementation: CreateRedirectRepositoryImpl,
27
+ dependencies: [
28
+ RedirectModel,
29
+ CreateEntryUseCase
30
+ ]
30
31
  });
32
+ export { CreateRedirectRepository_CreateRedirectRepository as CreateRedirectRepository };
31
33
 
32
34
  //# sourceMappingURL=CreateRedirectRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","CreateEntryUseCase","CreateRedirectRepository","RepositoryAbstraction","RedirectModel","RedirectPersistenceError","RedirectValidationError","EntryToRedirectMapper","CreateRedirectRepositoryImpl","constructor","redirectModel","createEntry","execute","data","result","location","values","isFail","error","code","fail","message","redirect","toRedirect","value","ok","createImplementation","implementation","dependencies"],"sources":["CreateRedirectRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { CreateRedirectRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError, RedirectValidationError } from \"~/domain/redirect/errors.js\";\nimport { EntryToRedirectMapper } from \"~/domain/redirect/EntryToRedirectMapper.js\";\n\nclass CreateRedirectRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private createEntry: CreateEntryUseCase.Interface\n ) {}\n\n async execute(data: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.createEntry.execute(this.redirectModel, {\n location: data.location,\n values: data\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new RedirectValidationError(result.error.message));\n }\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const redirect = EntryToRedirectMapper.toRedirect(result.value);\n return Result.ok(redirect);\n }\n}\n\nexport const CreateRedirectRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateRedirectRepositoryImpl,\n dependencies: [RedirectModel, CreateEntryUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,wBAAwB,IAAIC,qBAAqB;AAC1D,SAASC,aAAa;AACtB,SAASC,wBAAwB,EAAEC,uBAAuB;AAC1D,SAASC,qBAAqB;AAE9B,MAAMC,4BAA4B,CAA4C;EAC1EC,WAAWA,CACCC,aAAsC,EACtCC,WAAyC,EACnD;IAAA,KAFUD,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,WAAyC,GAAzCA,WAAyC;EAClD;EAEH,MAAMC,OAAOA,CAACC,IAAkC,EAAgC;IAC5E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,WAAW,CAACC,OAAO,CAAC,IAAI,CAACF,aAAa,EAAE;MAC9DK,QAAQ,EAAEF,IAAI,CAACE,QAAQ;MACvBC,MAAM,EAAEH;IACZ,CAAC,CAAC;IAEF,IAAIC,MAAM,CAACG,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIH,MAAM,CAACI,KAAK,CAACC,IAAI,KAAK,2BAA2B,EAAE;QACnD,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,uBAAuB,CAACQ,MAAM,CAACI,KAAK,CAACG,OAAO,CAAC,CAAC;MACzE;MACA,OAAOrB,MAAM,CAACoB,IAAI,CAAC,IAAIf,wBAAwB,CAACS,MAAM,CAACI,KAAK,CAAC,CAAC;IAClE;IAEA,MAAMI,QAAQ,GAAGf,qBAAqB,CAACgB,UAAU,CAACT,MAAM,CAACU,KAAK,CAAC;IAC/D,OAAOxB,MAAM,CAACyB,EAAE,CAACH,QAAQ,CAAC;EAC9B;AACJ;AAEA,OAAO,MAAMpB,wBAAwB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EAC/EC,cAAc,EAAEnB,4BAA4B;EAC5CoB,YAAY,EAAE,CAACxB,aAAa,EAAEH,kBAAkB;AACpD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/CreateRedirect/CreateRedirectRepository.js","sources":["../../../../src/features/redirects/CreateRedirect/CreateRedirectRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { CreateRedirectRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { RedirectPersistenceError, RedirectValidationError } from \"~/domain/redirect/errors.js\";\nimport { EntryToRedirectMapper } from \"~/domain/redirect/EntryToRedirectMapper.js\";\n\nclass CreateRedirectRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private redirectModel: RedirectModel.Interface,\n private createEntry: CreateEntryUseCase.Interface\n ) {}\n\n async execute(data: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.createEntry.execute(this.redirectModel, {\n location: data.location,\n values: data\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new RedirectValidationError(result.error.message));\n }\n return Result.fail(new RedirectPersistenceError(result.error));\n }\n\n const redirect = EntryToRedirectMapper.toRedirect(result.value);\n return Result.ok(redirect);\n }\n}\n\nexport const CreateRedirectRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateRedirectRepositoryImpl,\n dependencies: [RedirectModel, CreateEntryUseCase]\n});\n"],"names":["CreateRedirectRepositoryImpl","redirectModel","createEntry","data","result","Result","RedirectValidationError","RedirectPersistenceError","redirect","EntryToRedirectMapper","CreateRedirectRepository","RepositoryAbstraction","RedirectModel","CreateEntryUseCase"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,aAAsC,EACtCC,WAAyC,CACnD;aAFUD,aAAa,GAAbA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QAAQC,IAAkC,EAAgC;QAC5E,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9D,UAAUD,KAAK,QAAQ;YACvB,QAAQA;QACZ;QAEA,IAAIC,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,gCAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,wBAAwBF,OAAO,KAAK,CAAC,OAAO;YAEvE,OAAOC,OAAO,IAAI,CAAC,IAAIE,yBAAyBH,OAAO,KAAK;QAChE;QAEA,MAAMI,WAAWC,sBAAsB,UAAU,CAACL,OAAO,KAAK;QAC9D,OAAOC,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAME,oDAA2BC,yBAAAA,oBAA0C,CAAC;IAC/E,gBAAgBX;IAChB,cAAc;QAACY;QAAeC;KAAmB;AACrD"}
@@ -1,45 +1,40 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
2
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
- import { CreateRedirectUseCase as UseCaseAbstraction, CreateRedirectRepository } from "./abstractions.js";
4
- import { RedirectBeforeCreateEvent, RedirectAfterCreateEvent } from "./events.js";
3
+ import { CreateRedirectRepository, CreateRedirectUseCase } from "./abstractions.js";
4
+ import { RedirectAfterCreateEvent, RedirectBeforeCreateEvent } from "./events.js";
5
5
  import { WbPermissions } from "../../permissions/abstractions.js";
6
6
  import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
7
7
  class CreateRedirectUseCaseImpl {
8
- constructor(permissions, eventPublisher, repository) {
9
- this.permissions = permissions;
10
- this.eventPublisher = eventPublisher;
11
- this.repository = repository;
12
- }
13
- async execute(data) {
14
- const hasPermission = await this.permissions.canCreate("redirect");
15
- if (!hasPermission) {
16
- return Result.fail(new RedirectNotAuthorizedError());
8
+ constructor(permissions, eventPublisher, repository){
9
+ this.permissions = permissions;
10
+ this.eventPublisher = eventPublisher;
11
+ this.repository = repository;
17
12
  }
18
-
19
- // Publish before create event
20
- const beforeCreateEvent = new RedirectBeforeCreateEvent({
21
- input: data
22
- });
23
- await this.eventPublisher.publish(beforeCreateEvent);
24
-
25
- // Execute the create operation
26
- const result = await this.repository.execute(data);
27
- if (result.isFail()) {
28
- return result;
13
+ async execute(data) {
14
+ const hasPermission = await this.permissions.canCreate("redirect");
15
+ if (!hasPermission) return Result.fail(new RedirectNotAuthorizedError());
16
+ const beforeCreateEvent = new RedirectBeforeCreateEvent({
17
+ input: data
18
+ });
19
+ await this.eventPublisher.publish(beforeCreateEvent);
20
+ const result = await this.repository.execute(data);
21
+ if (result.isFail()) return result;
22
+ const afterCreateEvent = new RedirectAfterCreateEvent({
23
+ redirect: result.value
24
+ });
25
+ await this.eventPublisher.publish(afterCreateEvent);
26
+ return Result.ok(result.value);
29
27
  }
30
-
31
- // Publish after create event
32
- const afterCreateEvent = new RedirectAfterCreateEvent({
33
- redirect: result.value
34
- });
35
- await this.eventPublisher.publish(afterCreateEvent);
36
- return Result.ok(result.value);
37
- }
38
28
  }
39
- export const CreateRedirectUseCase = createImplementation({
40
- abstraction: UseCaseAbstraction,
41
- implementation: CreateRedirectUseCaseImpl,
42
- dependencies: [WbPermissions, EventPublisher, CreateRedirectRepository]
29
+ const CreateRedirectUseCase_CreateRedirectUseCase = createImplementation({
30
+ abstraction: CreateRedirectUseCase,
31
+ implementation: CreateRedirectUseCaseImpl,
32
+ dependencies: [
33
+ WbPermissions,
34
+ EventPublisher,
35
+ CreateRedirectRepository
36
+ ]
43
37
  });
38
+ export { CreateRedirectUseCase_CreateRedirectUseCase as CreateRedirectUseCase };
44
39
 
45
40
  //# sourceMappingURL=CreateRedirectUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","CreateRedirectUseCase","UseCaseAbstraction","CreateRedirectRepository","RedirectBeforeCreateEvent","RedirectAfterCreateEvent","WbPermissions","RedirectNotAuthorizedError","CreateRedirectUseCaseImpl","constructor","permissions","eventPublisher","repository","execute","data","hasPermission","canCreate","fail","beforeCreateEvent","input","publish","result","isFail","afterCreateEvent","redirect","value","ok","abstraction","implementation","dependencies"],"sources":["CreateRedirectUseCase.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 CreateRedirectUseCase as UseCaseAbstraction,\n CreateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeCreateEvent, RedirectAfterCreateEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass CreateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateRedirectRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before create event\n const beforeCreateEvent = new RedirectBeforeCreateEvent({ input: data });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after create event\n const afterCreateEvent = new RedirectAfterCreateEvent({ redirect: result.value });\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const CreateRedirectUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateRedirectUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, CreateRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,UAA8C,EACxD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,IAA+B,EAA6B;IACtE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,SAAS,CAAC,UAAU,CAAC;IAClE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOjB,MAAM,CAACmB,IAAI,CAAC,IAAIV,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMW,iBAAiB,GAAG,IAAId,yBAAyB,CAAC;MAAEe,KAAK,EAAEL;IAAK,CAAC,CAAC;IACxE,MAAM,IAAI,CAACH,cAAc,CAACS,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACT,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAIO,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;;IAEA;IACA,MAAME,gBAAgB,GAAG,IAAIlB,wBAAwB,CAAC;MAAEmB,QAAQ,EAAEH,MAAM,CAACI;IAAM,CAAC,CAAC;IACjF,MAAM,IAAI,CAACd,cAAc,CAACS,OAAO,CAACG,gBAAgB,CAAC;IAEnD,OAAOzB,MAAM,CAAC4B,EAAE,CAACL,MAAM,CAACI,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMxB,qBAAqB,GAAGF,oBAAoB,CAAC;EACtD4B,WAAW,EAAEzB,kBAAkB;EAC/B0B,cAAc,EAAEpB,yBAAyB;EACzCqB,YAAY,EAAE,CAACvB,aAAa,EAAEN,cAAc,EAAEG,wBAAwB;AAC1E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/CreateRedirect/CreateRedirectUseCase.js","sources":["../../../../src/features/redirects/CreateRedirect/CreateRedirectUseCase.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 CreateRedirectUseCase as UseCaseAbstraction,\n CreateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeCreateEvent, RedirectAfterCreateEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass CreateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateRedirectRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before create event\n const beforeCreateEvent = new RedirectBeforeCreateEvent({ input: data });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after create event\n const afterCreateEvent = new RedirectAfterCreateEvent({ redirect: result.value });\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const CreateRedirectUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateRedirectUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, CreateRedirectRepository]\n});\n"],"names":["CreateRedirectUseCaseImpl","permissions","eventPublisher","repository","data","hasPermission","Result","RedirectNotAuthorizedError","beforeCreateEvent","RedirectBeforeCreateEvent","result","afterCreateEvent","RedirectAfterCreateEvent","CreateRedirectUseCase","createImplementation","UseCaseAbstraction","WbPermissions","EventPublisher","CreateRedirectRepository"],"mappings":";;;;;;AAaA,MAAMA;IACF,YACYC,WAAoC,EACpCC,cAAmD,EACnDC,UAA8C,CACxD;aAHUF,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,IAA+B,EAA6B;QACtE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,oBAAoB,IAAIC,0BAA0B;YAAE,OAAOL;QAAK;QACtE,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACI;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACN;QAE7C,IAAIM,OAAO,MAAM,IACb,OAAOA;QAIX,MAAMC,mBAAmB,IAAIC,yBAAyB;YAAE,UAAUF,OAAO,KAAK;QAAC;QAC/E,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOL,OAAO,EAAE,CAACI,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMG,8CAAwBC,qBAAqB;IACtD,aAAaC;IACb,gBAAgBf;IAChB,cAAc;QAACgB;QAAeC;QAAgBC;KAAyB;AAC3E"}
@@ -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 CreateRedirectRepository = createAbstraction("Wb/CreateRedirectRepository");
12
-
13
- // ============================================================================
14
- // Use Case Abstraction
15
- // ============================================================================
16
-
17
- /** Create a URL redirect. */
18
- export const CreateRedirectUseCase = createAbstraction("Wb/CreateRedirectUseCase");
19
-
20
- // ============================================================================
21
- // Event Payload Types
22
- // ============================================================================
23
-
24
- // ============================================================================
25
- // Event Handler Abstractions
26
- // ============================================================================
27
-
28
- /** Hook into redirect lifecycle before a redirect is created. */
29
- export const RedirectBeforeCreateEventHandler = createAbstraction("Wb/RedirectBeforeCreateEventHandler");
30
- /** Hook into redirect lifecycle after a redirect is created. */
31
- export const RedirectAfterCreateEventHandler = createAbstraction("Wb/RedirectAfterCreateEventHandler");
2
+ const CreateRedirectRepository = createAbstraction("Wb/CreateRedirectRepository");
3
+ const CreateRedirectUseCase = createAbstraction("Wb/CreateRedirectUseCase");
4
+ const RedirectBeforeCreateEventHandler = createAbstraction("Wb/RedirectBeforeCreateEventHandler");
5
+ const RedirectAfterCreateEventHandler = createAbstraction("Wb/RedirectAfterCreateEventHandler");
6
+ export { CreateRedirectRepository, CreateRedirectUseCase, RedirectAfterCreateEventHandler, RedirectBeforeCreateEventHandler };
32
7
 
33
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreateRedirectRepository","CreateRedirectUseCase","RedirectBeforeCreateEventHandler","RedirectAfterCreateEventHandler"],"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 RedirectPersistenceError,\n RedirectValidationError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbRedirectData = Pick<\n WbRedirect,\n \"redirectFrom\" | \"redirectTo\" | \"redirectType\" | \"isEnabled\" | \"location\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreateRedirectRepository {\n execute(data: ICreateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface ICreateRedirectRepositoryErrors {\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = ICreateRedirectRepositoryErrors[keyof ICreateRedirectRepositoryErrors];\n\nexport const CreateRedirectRepository = createAbstraction<ICreateRedirectRepository>(\n \"Wb/CreateRedirectRepository\"\n);\n\nexport namespace CreateRedirectRepository {\n export type Interface = ICreateRedirectRepository;\n export type Params = ICreateWbRedirectData;\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 ICreateRedirectUseCase {\n execute(data: ICreateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface ICreateRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = ICreateRedirectUseCaseErrors[keyof ICreateRedirectUseCaseErrors];\n\n/** Create a URL redirect. */\nexport const CreateRedirectUseCase = createAbstraction<ICreateRedirectUseCase>(\n \"Wb/CreateRedirectUseCase\"\n);\n\nexport namespace CreateRedirectUseCase {\n export type Interface = ICreateRedirectUseCase;\n export type Params = ICreateWbRedirectData;\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 RedirectBeforeCreatePayload {\n input: ICreateWbRedirectData;\n}\n\nexport interface RedirectAfterCreatePayload {\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into redirect lifecycle before a redirect is created. */\nexport const RedirectBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeCreatePayload>>\n>(\"Wb/RedirectBeforeCreateEventHandler\");\n\nexport namespace RedirectBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeCreatePayload>>;\n export type Event = DomainEvent<RedirectBeforeCreatePayload>;\n export type Redirect = WbRedirect;\n}\n\n/** Hook into redirect lifecycle after a redirect is created. */\nexport const RedirectAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterCreatePayload>>\n>(\"Wb/RedirectAfterCreateEventHandler\");\n\nexport namespace RedirectAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterCreatePayload>>;\n export type Event = DomainEvent<RedirectAfterCreatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,gCAAgC,GAAGH,iBAAiB,CAE/D,qCAAqC,CAAC;AAQxC;AACA,OAAO,MAAMI,+BAA+B,GAAGJ,iBAAiB,CAE9D,oCAAoC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/redirects/CreateRedirect/abstractions.js","sources":["../../../../src/features/redirects/CreateRedirect/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 RedirectPersistenceError,\n RedirectValidationError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbRedirectData = Pick<\n WbRedirect,\n \"redirectFrom\" | \"redirectTo\" | \"redirectType\" | \"isEnabled\" | \"location\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreateRedirectRepository {\n execute(data: ICreateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface ICreateRedirectRepositoryErrors {\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = ICreateRedirectRepositoryErrors[keyof ICreateRedirectRepositoryErrors];\n\nexport const CreateRedirectRepository = createAbstraction<ICreateRedirectRepository>(\n \"Wb/CreateRedirectRepository\"\n);\n\nexport namespace CreateRedirectRepository {\n export type Interface = ICreateRedirectRepository;\n export type Params = ICreateWbRedirectData;\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 ICreateRedirectUseCase {\n execute(data: ICreateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface ICreateRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = ICreateRedirectUseCaseErrors[keyof ICreateRedirectUseCaseErrors];\n\n/** Create a URL redirect. */\nexport const CreateRedirectUseCase = createAbstraction<ICreateRedirectUseCase>(\n \"Wb/CreateRedirectUseCase\"\n);\n\nexport namespace CreateRedirectUseCase {\n export type Interface = ICreateRedirectUseCase;\n export type Params = ICreateWbRedirectData;\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 RedirectBeforeCreatePayload {\n input: ICreateWbRedirectData;\n}\n\nexport interface RedirectAfterCreatePayload {\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into redirect lifecycle before a redirect is created. */\nexport const RedirectBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeCreatePayload>>\n>(\"Wb/RedirectBeforeCreateEventHandler\");\n\nexport namespace RedirectBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeCreatePayload>>;\n export type Event = DomainEvent<RedirectBeforeCreatePayload>;\n export type Redirect = WbRedirect;\n}\n\n/** Hook into redirect lifecycle after a redirect is created. */\nexport const RedirectAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterCreatePayload>>\n>(\"Wb/RedirectAfterCreateEventHandler\");\n\nexport namespace RedirectAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterCreatePayload>>;\n export type Event = DomainEvent<RedirectAfterCreatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"names":["CreateRedirectRepository","createAbstraction","CreateRedirectUseCase","RedirectBeforeCreateEventHandler","RedirectAfterCreateEventHandler"],"mappings":";AAkCO,MAAMA,2BAA2BC,kBACpC;AA4BG,MAAMC,wBAAwBD,kBACjC;AA4BG,MAAME,mCAAmCF,kBAE9C;AASK,MAAMG,kCAAkCH,kBAE7C"}