@webiny/api-website-builder 0.0.0-unstable.e622468070 → 0.0.0-unstable.e6f0dc8ca7

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 (388) hide show
  1. package/domain/page/EntryToPageMapper.js +4 -1
  2. package/domain/page/EntryToPageMapper.js.map +1 -1
  3. package/domain/page/PagePath.d.ts +7 -0
  4. package/domain/page/PagePath.js +36 -0
  5. package/domain/page/PagePath.js.map +1 -0
  6. package/domain/page/abstractions.d.ts +22 -3
  7. package/domain/page/abstractions.js.map +1 -1
  8. package/domain/page/errors.d.ts +12 -0
  9. package/domain/page/errors.js +22 -0
  10. package/domain/page/errors.js.map +1 -1
  11. package/domain/permissionsSchema.d.ts +29 -0
  12. package/domain/permissionsSchema.js +32 -0
  13. package/domain/permissionsSchema.js.map +1 -0
  14. package/exports/api/website-builder/page.d.ts +12 -8
  15. package/exports/api/website-builder/page.js +12 -8
  16. package/exports/api/website-builder/page.js.map +1 -1
  17. package/exports/api/website-builder/redirect.d.ts +4 -4
  18. package/exports/api/website-builder/redirect.js +4 -4
  19. package/exports/api/website-builder/redirect.js.map +1 -1
  20. package/features/installer/ApiKeyInstaller.d.ts +1 -1
  21. package/features/installer/ApiKeyInstaller.js +5 -2
  22. package/features/installer/ApiKeyInstaller.js.map +1 -1
  23. package/features/installer/feature.d.ts +4 -1
  24. package/features/nextjs/abstractions.d.ts +1 -0
  25. package/features/nextjs/abstractions.js +1 -0
  26. package/features/nextjs/abstractions.js.map +1 -1
  27. package/features/nextjs/feature.d.ts +4 -1
  28. package/features/pages/CreatePage/CreatePageUseCase.d.ts +4 -2
  29. package/features/pages/CreatePage/CreatePageUseCase.js +11 -3
  30. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  31. package/features/pages/CreatePage/abstractions.d.ts +10 -6
  32. package/features/pages/CreatePage/abstractions.js +5 -2
  33. package/features/pages/CreatePage/abstractions.js.map +1 -1
  34. package/features/pages/CreatePage/events.d.ts +3 -3
  35. package/features/pages/CreatePage/events.js +4 -4
  36. package/features/pages/CreatePage/events.js.map +1 -1
  37. package/features/pages/CreatePage/feature.d.ts +4 -1
  38. package/features/pages/CreatePage/index.d.ts +1 -1
  39. package/features/pages/CreatePage/index.js +1 -1
  40. package/features/pages/CreatePage/index.js.map +1 -1
  41. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +6 -2
  42. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +19 -3
  43. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  44. package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +11 -7
  45. package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -2
  46. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  47. package/features/pages/CreatePageRevisionFrom/events.d.ts +3 -3
  48. package/features/pages/CreatePageRevisionFrom/events.js +4 -4
  49. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  50. package/features/pages/CreatePageRevisionFrom/feature.d.ts +4 -1
  51. package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -1
  52. package/features/pages/CreatePageRevisionFrom/index.js +1 -1
  53. package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
  54. package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
  55. package/features/pages/DeletePage/DeletePageRepository.js +2 -13
  56. package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
  57. package/features/pages/DeletePage/DeletePageUseCase.d.ts +7 -5
  58. package/features/pages/DeletePage/DeletePageUseCase.js +16 -9
  59. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  60. package/features/pages/DeletePage/abstractions.d.ts +12 -7
  61. package/features/pages/DeletePage/abstractions.js +5 -2
  62. package/features/pages/DeletePage/abstractions.js.map +1 -1
  63. package/features/pages/DeletePage/events.d.ts +3 -3
  64. package/features/pages/DeletePage/events.js +4 -4
  65. package/features/pages/DeletePage/events.js.map +1 -1
  66. package/features/pages/DeletePage/feature.d.ts +4 -1
  67. package/features/pages/DeletePage/index.d.ts +1 -1
  68. package/features/pages/DeletePage/index.js +1 -1
  69. package/features/pages/DeletePage/index.js.map +1 -1
  70. package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +2 -2
  71. package/features/pages/DuplicatePage/DuplicatePageRepository.js +9 -1
  72. package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
  73. package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +4 -2
  74. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +11 -3
  75. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  76. package/features/pages/DuplicatePage/abstractions.d.ts +18 -8
  77. package/features/pages/DuplicatePage/abstractions.js +5 -2
  78. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  79. package/features/pages/DuplicatePage/events.d.ts +3 -3
  80. package/features/pages/DuplicatePage/events.js +4 -4
  81. package/features/pages/DuplicatePage/events.js.map +1 -1
  82. package/features/pages/DuplicatePage/feature.d.ts +4 -1
  83. package/features/pages/DuplicatePage/index.d.ts +2 -1
  84. package/features/pages/DuplicatePage/index.js +1 -1
  85. package/features/pages/DuplicatePage/index.js.map +1 -1
  86. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.d.ts +13 -0
  87. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +32 -0
  88. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -0
  89. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +12 -0
  90. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +31 -0
  91. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -0
  92. package/features/pages/GetDeletedPageById/abstractions.d.ts +42 -0
  93. package/features/pages/GetDeletedPageById/abstractions.js +15 -0
  94. package/features/pages/GetDeletedPageById/abstractions.js.map +1 -0
  95. package/features/pages/GetDeletedPageById/feature.d.ts +4 -0
  96. package/features/pages/GetDeletedPageById/feature.js +12 -0
  97. package/features/pages/GetDeletedPageById/feature.js.map +1 -0
  98. package/features/pages/GetDeletedPageById/index.d.ts +1 -0
  99. package/features/pages/GetDeletedPageById/index.js +3 -0
  100. package/features/pages/GetDeletedPageById/index.js.map +1 -0
  101. package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
  102. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
  103. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  104. package/features/pages/GetPageById/abstractions.d.ts +3 -1
  105. package/features/pages/GetPageById/abstractions.js +1 -0
  106. package/features/pages/GetPageById/abstractions.js.map +1 -1
  107. package/features/pages/GetPageById/feature.d.ts +4 -1
  108. package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
  109. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
  110. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  111. package/features/pages/GetPageByPath/abstractions.d.ts +3 -1
  112. package/features/pages/GetPageByPath/abstractions.js +1 -0
  113. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  114. package/features/pages/GetPageByPath/feature.d.ts +4 -1
  115. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.d.ts +15 -0
  116. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +61 -0
  117. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -0
  118. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.d.ts +10 -0
  119. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +20 -0
  120. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -0
  121. package/features/pages/GetPageLanguagePaths/abstractions.d.ts +20 -0
  122. package/features/pages/GetPageLanguagePaths/abstractions.js +6 -0
  123. package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -0
  124. package/features/pages/GetPageLanguagePaths/feature.d.ts +4 -0
  125. package/features/pages/GetPageLanguagePaths/feature.js +12 -0
  126. package/features/pages/GetPageLanguagePaths/feature.js.map +1 -0
  127. package/features/pages/GetPageLanguagePaths/index.d.ts +1 -0
  128. package/features/pages/GetPageLanguagePaths/index.js +3 -0
  129. package/features/pages/GetPageLanguagePaths/index.js.map +1 -0
  130. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
  131. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
  132. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  133. package/features/pages/GetPageRevisions/abstractions.d.ts +3 -1
  134. package/features/pages/GetPageRevisions/abstractions.js +1 -0
  135. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  136. package/features/pages/GetPageRevisions/feature.d.ts +4 -1
  137. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
  138. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +49 -0
  139. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -0
  140. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +14 -0
  141. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +35 -0
  142. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -0
  143. package/features/pages/ListDeletedPages/abstractions.d.ts +56 -0
  144. package/features/pages/ListDeletedPages/abstractions.js +15 -0
  145. package/features/pages/ListDeletedPages/abstractions.js.map +1 -0
  146. package/features/pages/ListDeletedPages/feature.d.ts +4 -0
  147. package/features/pages/ListDeletedPages/feature.js +12 -0
  148. package/features/pages/ListDeletedPages/feature.js.map +1 -0
  149. package/features/pages/ListDeletedPages/index.d.ts +1 -0
  150. package/features/pages/ListDeletedPages/index.js +3 -0
  151. package/features/pages/ListDeletedPages/index.js.map +1 -0
  152. package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
  153. package/features/pages/ListPages/ListPagesRepository.js +14 -4
  154. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  155. package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
  156. package/features/pages/ListPages/ListPagesUseCase.js +24 -4
  157. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  158. package/features/pages/ListPages/abstractions.d.ts +3 -1
  159. package/features/pages/ListPages/abstractions.js +1 -0
  160. package/features/pages/ListPages/abstractions.js.map +1 -1
  161. package/features/pages/ListPages/feature.d.ts +4 -1
  162. package/features/pages/MovePage/MovePageUseCase.d.ts +4 -2
  163. package/features/pages/MovePage/MovePageUseCase.js +15 -3
  164. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  165. package/features/pages/MovePage/abstractions.d.ts +11 -7
  166. package/features/pages/MovePage/abstractions.js +5 -2
  167. package/features/pages/MovePage/abstractions.js.map +1 -1
  168. package/features/pages/MovePage/events.d.ts +3 -3
  169. package/features/pages/MovePage/events.js +4 -4
  170. package/features/pages/MovePage/events.js.map +1 -1
  171. package/features/pages/MovePage/feature.d.ts +4 -1
  172. package/features/pages/MovePage/index.d.ts +1 -1
  173. package/features/pages/MovePage/index.js +1 -1
  174. package/features/pages/MovePage/index.js.map +1 -1
  175. package/features/pages/PublishPage/PublishPageUseCase.d.ts +4 -2
  176. package/features/pages/PublishPage/PublishPageUseCase.js +15 -3
  177. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  178. package/features/pages/PublishPage/abstractions.d.ts +11 -7
  179. package/features/pages/PublishPage/abstractions.js +5 -2
  180. package/features/pages/PublishPage/abstractions.js.map +1 -1
  181. package/features/pages/PublishPage/events.d.ts +3 -3
  182. package/features/pages/PublishPage/events.js +4 -4
  183. package/features/pages/PublishPage/events.js.map +1 -1
  184. package/features/pages/PublishPage/feature.d.ts +4 -1
  185. package/features/pages/PublishPage/index.d.ts +1 -1
  186. package/features/pages/PublishPage/index.js +1 -1
  187. package/features/pages/PublishPage/index.js.map +1 -1
  188. package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
  189. package/features/pages/RestorePage/RestorePageRepository.js +30 -0
  190. package/features/pages/RestorePage/RestorePageRepository.js.map +1 -0
  191. package/features/pages/RestorePage/RestorePageUseCase.d.ts +16 -0
  192. package/features/pages/RestorePage/RestorePageUseCase.js +52 -0
  193. package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -0
  194. package/features/pages/RestorePage/abstractions.d.ts +59 -0
  195. package/features/pages/RestorePage/abstractions.js +30 -0
  196. package/features/pages/RestorePage/abstractions.js.map +1 -0
  197. package/features/pages/RestorePage/events.d.ts +10 -0
  198. package/features/pages/RestorePage/events.js +19 -0
  199. package/features/pages/RestorePage/events.js.map +1 -0
  200. package/features/pages/RestorePage/feature.d.ts +4 -0
  201. package/features/pages/RestorePage/feature.js +12 -0
  202. package/features/pages/RestorePage/feature.js.map +1 -0
  203. package/features/pages/RestorePage/index.d.ts +1 -0
  204. package/features/pages/RestorePage/index.js +3 -0
  205. package/features/pages/RestorePage/index.js.map +1 -0
  206. package/features/pages/TranslatePage/TranslatePageUseCase.d.ts +17 -0
  207. package/features/pages/TranslatePage/TranslatePageUseCase.js +74 -0
  208. package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -0
  209. package/features/pages/TranslatePage/abstractions.d.ts +29 -0
  210. package/features/pages/TranslatePage/abstractions.js +14 -0
  211. package/features/pages/TranslatePage/abstractions.js.map +1 -0
  212. package/features/pages/TranslatePage/feature.d.ts +4 -0
  213. package/features/pages/TranslatePage/feature.js +10 -0
  214. package/features/pages/TranslatePage/feature.js.map +1 -0
  215. package/features/pages/TranslatePage/index.d.ts +1 -0
  216. package/features/pages/TranslatePage/index.js +3 -0
  217. package/features/pages/TranslatePage/index.js.map +1 -0
  218. package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
  219. package/features/pages/TrashPage/TrashPageRepository.js +30 -0
  220. package/features/pages/TrashPage/TrashPageRepository.js.map +1 -0
  221. package/features/pages/TrashPage/TrashPageUseCase.d.ts +16 -0
  222. package/features/pages/TrashPage/TrashPageUseCase.js +52 -0
  223. package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -0
  224. package/features/pages/TrashPage/abstractions.d.ts +58 -0
  225. package/features/pages/TrashPage/abstractions.js +30 -0
  226. package/features/pages/TrashPage/abstractions.js.map +1 -0
  227. package/features/pages/TrashPage/events.d.ts +10 -0
  228. package/features/pages/TrashPage/events.js +19 -0
  229. package/features/pages/TrashPage/events.js.map +1 -0
  230. package/features/pages/TrashPage/feature.d.ts +4 -0
  231. package/features/pages/TrashPage/feature.js +12 -0
  232. package/features/pages/TrashPage/feature.js.map +1 -0
  233. package/features/pages/TrashPage/index.d.ts +1 -0
  234. package/features/pages/TrashPage/index.js +3 -0
  235. package/features/pages/TrashPage/index.js.map +1 -0
  236. package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +4 -2
  237. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +15 -3
  238. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  239. package/features/pages/UnpublishPage/abstractions.d.ts +11 -7
  240. package/features/pages/UnpublishPage/abstractions.js +5 -2
  241. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  242. package/features/pages/UnpublishPage/events.d.ts +3 -3
  243. package/features/pages/UnpublishPage/events.js +4 -4
  244. package/features/pages/UnpublishPage/events.js.map +1 -1
  245. package/features/pages/UnpublishPage/feature.d.ts +4 -1
  246. package/features/pages/UnpublishPage/index.d.ts +1 -1
  247. package/features/pages/UnpublishPage/index.js +1 -1
  248. package/features/pages/UnpublishPage/index.js.map +1 -1
  249. package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +4 -2
  250. package/features/pages/UpdatePage/UpdatePageUseCase.js +15 -3
  251. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  252. package/features/pages/UpdatePage/abstractions.d.ts +12 -9
  253. package/features/pages/UpdatePage/abstractions.js +5 -2
  254. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  255. package/features/pages/UpdatePage/events.d.ts +3 -3
  256. package/features/pages/UpdatePage/events.js +4 -4
  257. package/features/pages/UpdatePage/events.js.map +1 -1
  258. package/features/pages/UpdatePage/feature.d.ts +4 -1
  259. package/features/pages/UpdatePage/index.d.ts +1 -1
  260. package/features/pages/UpdatePage/index.js +1 -1
  261. package/features/pages/UpdatePage/index.js.map +1 -1
  262. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
  263. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +44 -0
  264. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
  265. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
  266. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +66 -0
  267. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
  268. package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
  269. package/features/pages/UpdatePageRevisionDescription/abstractions.js +29 -0
  270. package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
  271. package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
  272. package/features/pages/UpdatePageRevisionDescription/events.js +19 -0
  273. package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
  274. package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
  275. package/features/pages/UpdatePageRevisionDescription/feature.js +12 -0
  276. package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
  277. package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
  278. package/features/pages/UpdatePageRevisionDescription/index.js +3 -0
  279. package/features/pages/UpdatePageRevisionDescription/index.js.map +1 -0
  280. package/features/permissions/abstractions.d.ts +34 -0
  281. package/features/permissions/abstractions.js +5 -0
  282. package/features/permissions/abstractions.js.map +1 -0
  283. package/features/permissions/feature.d.ts +4 -0
  284. package/features/permissions/feature.js +6 -0
  285. package/features/permissions/feature.js.map +1 -0
  286. package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +4 -2
  287. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +11 -3
  288. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  289. package/features/redirects/CreateRedirect/abstractions.d.ts +11 -7
  290. package/features/redirects/CreateRedirect/abstractions.js +5 -2
  291. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  292. package/features/redirects/CreateRedirect/events.d.ts +3 -3
  293. package/features/redirects/CreateRedirect/events.js +4 -4
  294. package/features/redirects/CreateRedirect/events.js.map +1 -1
  295. package/features/redirects/CreateRedirect/feature.d.ts +4 -1
  296. package/features/redirects/CreateRedirect/index.d.ts +1 -1
  297. package/features/redirects/CreateRedirect/index.js +1 -1
  298. package/features/redirects/CreateRedirect/index.js.map +1 -1
  299. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +4 -2
  300. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +11 -4
  301. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  302. package/features/redirects/DeleteRedirect/abstractions.d.ts +11 -7
  303. package/features/redirects/DeleteRedirect/abstractions.js +5 -2
  304. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  305. package/features/redirects/DeleteRedirect/events.d.ts +3 -3
  306. package/features/redirects/DeleteRedirect/events.js +4 -4
  307. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  308. package/features/redirects/DeleteRedirect/feature.d.ts +4 -1
  309. package/features/redirects/DeleteRedirect/index.d.ts +1 -1
  310. package/features/redirects/DeleteRedirect/index.js +1 -1
  311. package/features/redirects/DeleteRedirect/index.js.map +1 -1
  312. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
  313. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
  314. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  315. package/features/redirects/GetActiveRedirects/abstractions.d.ts +3 -1
  316. package/features/redirects/GetActiveRedirects/abstractions.js +1 -0
  317. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  318. package/features/redirects/GetActiveRedirects/feature.d.ts +4 -1
  319. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
  320. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
  321. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  322. package/features/redirects/GetRedirectById/abstractions.d.ts +3 -1
  323. package/features/redirects/GetRedirectById/abstractions.js +1 -0
  324. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  325. package/features/redirects/GetRedirectById/feature.d.ts +4 -1
  326. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +3 -3
  327. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +2 -2
  328. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
  329. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +3 -3
  330. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +2 -2
  331. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
  332. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +3 -3
  333. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +2 -2
  334. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
  335. package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
  336. package/features/redirects/InvalidateRedirectsCache/abstractions.js +1 -0
  337. package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
  338. package/features/redirects/InvalidateRedirectsCache/feature.d.ts +4 -1
  339. package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
  340. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
  341. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  342. package/features/redirects/ListRedirects/abstractions.d.ts +4 -1
  343. package/features/redirects/ListRedirects/abstractions.js +1 -0
  344. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  345. package/features/redirects/ListRedirects/feature.d.ts +4 -1
  346. package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +4 -2
  347. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +15 -3
  348. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  349. package/features/redirects/MoveRedirect/abstractions.d.ts +11 -7
  350. package/features/redirects/MoveRedirect/abstractions.js +5 -2
  351. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  352. package/features/redirects/MoveRedirect/events.d.ts +3 -3
  353. package/features/redirects/MoveRedirect/events.js +4 -4
  354. package/features/redirects/MoveRedirect/events.js.map +1 -1
  355. package/features/redirects/MoveRedirect/feature.d.ts +4 -1
  356. package/features/redirects/MoveRedirect/index.d.ts +1 -1
  357. package/features/redirects/MoveRedirect/index.js +1 -1
  358. package/features/redirects/MoveRedirect/index.js.map +1 -1
  359. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +4 -2
  360. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +15 -3
  361. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  362. package/features/redirects/UpdateRedirect/abstractions.d.ts +11 -7
  363. package/features/redirects/UpdateRedirect/abstractions.js +5 -2
  364. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  365. package/features/redirects/UpdateRedirect/events.d.ts +3 -3
  366. package/features/redirects/UpdateRedirect/events.js +4 -4
  367. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  368. package/features/redirects/UpdateRedirect/feature.d.ts +4 -1
  369. package/features/redirects/UpdateRedirect/index.d.ts +1 -1
  370. package/features/redirects/UpdateRedirect/index.js +1 -1
  371. package/features/redirects/UpdateRedirect/index.js.map +1 -1
  372. package/features/tenantManager/TenantModelExtension.js +5 -5
  373. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  374. package/features/tenantManager/feature.d.ts +4 -1
  375. package/graphql/pages/pages.gql.js +96 -3
  376. package/graphql/pages/pages.gql.js.map +1 -1
  377. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  378. package/graphql/pages/pages.typeDefs.js +22 -1
  379. package/graphql/pages/pages.typeDefs.js.map +1 -1
  380. package/index.js +21 -6
  381. package/index.js.map +1 -1
  382. package/package.json +27 -25
  383. package/features/pages/PagePermissions/feature.d.ts +0 -1
  384. package/features/pages/PagePermissions/feature.js +0 -53
  385. package/features/pages/PagePermissions/feature.js.map +0 -1
  386. package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
  387. package/features/redirects/RedirectPermissions/feature.js +0 -45
  388. package/features/redirects/RedirectPermissions/feature.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdatePageRepository","UpdatePageUseCase","PageBeforeUpdateHandler","PageAfterUpdateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport type { IEntryState } from \"@webiny/api-headless-cms/types/index.js\";\nimport {\n PageValidationError,\n PageNotFoundError,\n PagePersistenceError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbPageData {\n location?: WbLocation;\n properties?: Record<string, any>;\n metadata?: Record<string, any>;\n bindings?: Record<string, any>;\n elements?: Record<string, any>;\n // Workflows - remove when workflows are more generic\n state?: Partial<IEntryState>;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdatePageRepository {\n execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IUpdatePageRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IUpdatePageRepositoryErrors[keyof IUpdatePageRepositoryErrors];\n\nexport const UpdatePageRepository =\n createAbstraction<IUpdatePageRepository>(\"Wb/UpdatePageRepository\");\n\nexport namespace UpdatePageRepository {\n export type Interface = IUpdatePageRepository;\n export type UpdateData = IUpdateWbPageData;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdatePageUseCase {\n execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IUpdatePageUseCaseErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IUpdatePageUseCaseErrors[keyof IUpdatePageUseCaseErrors];\n\nexport const UpdatePageUseCase = createAbstraction<IUpdatePageUseCase>(\"Wb/UpdatePageUseCase\");\n\nexport namespace UpdatePageUseCase {\n export type Interface = IUpdatePageUseCase;\n export type UpdateData = IUpdateWbPageData;\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 PageBeforeUpdatePayload {\n original: WbPage;\n input: {\n id: string;\n data: IUpdateWbPageData;\n };\n}\n\nexport interface PageAfterUpdatePayload {\n original: WbPage;\n input: {\n id: string;\n data: IUpdateWbPageData;\n };\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeUpdatePayload>>\n>(\"Wb/PageBeforeUpdateHandler\");\n\nexport namespace PageBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeUpdatePayload>>;\n export type Event = DomainEvent<PageBeforeUpdatePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterUpdatePayload>>\n>(\"Wb/PageAfterUpdateHandler\");\n\nexport namespace PageAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterUpdatePayload>>;\n export type Event = DomainEvent<PageAfterUpdatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAYpE;AACA;AACA;;AAYA;AACA;AACA;;AAcA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAmBA;AACA;AACA;;AAEA,OAAO,MAAMG,uBAAuB,GAAGH,iBAAiB,CAEtD,4BAA4B,CAAC;AAQ/B,OAAO,MAAMI,sBAAsB,GAAGJ,iBAAiB,CAErD,2BAA2B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdatePageRepository","UpdatePageUseCase","PageBeforeUpdateEventHandler","PageAfterUpdateEventHandler"],"sources":["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 type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport type { ICmsEntrySystem } from \"@webiny/api-headless-cms/types/index.js\";\nimport {\n PageNotAuthorizedError,\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbPageData {\n location?: WbLocation;\n properties?: Record<string, any>;\n metadata?: Record<string, any>;\n bindings?: Record<string, any>;\n elements?: Record<string, any>;\n system?: ICmsEntrySystem;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdatePageRepository {\n execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IUpdatePageRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IUpdatePageRepositoryErrors[keyof IUpdatePageRepositoryErrors];\n\nexport const UpdatePageRepository =\n createAbstraction<IUpdatePageRepository>(\"Wb/UpdatePageRepository\");\n\nexport namespace UpdatePageRepository {\n export type Interface = IUpdatePageRepository;\n export type UpdateData = IUpdateWbPageData;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdatePageUseCase {\n execute(id: string, data: IUpdateWbPageData): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IUpdatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IUpdatePageUseCaseErrors[keyof IUpdatePageUseCaseErrors];\n\n/** Update a page. */\nexport const UpdatePageUseCase = createAbstraction<IUpdatePageUseCase>(\"Wb/UpdatePageUseCase\");\n\nexport namespace UpdatePageUseCase {\n export type Interface = IUpdatePageUseCase;\n export type UpdateData = IUpdateWbPageData;\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 PageBeforeUpdatePayload {\n original: WbPage;\n input: {\n id: string;\n data: IUpdateWbPageData;\n };\n}\n\nexport interface PageAfterUpdatePayload {\n original: WbPage;\n input: {\n id: string;\n data: IUpdateWbPageData;\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 PageBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeUpdatePayload>>\n>(\"Wb/PageBeforeUpdateEventHandler\");\n\nexport namespace PageBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeUpdatePayload>>;\n export type Event = DomainEvent<PageBeforeUpdatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is updated. */\nexport const PageAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterUpdatePayload>>\n>(\"Wb/PageAfterUpdateEventHandler\");\n\nexport namespace PageAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterUpdatePayload>>;\n export type Event = DomainEvent<PageAfterUpdatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAYpE;AACA;AACA;;AAWA;AACA;AACA;;AAcA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAeA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAmBA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import type { PageBeforeUpdatePayload, PageAfterUpdatePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeUpdateEvent extends DomainEvent<PageBeforeUpdatePayload> {
4
4
  eventType: "page.beforeUpdate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeUpdatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeUpdatePayload>>>;
6
6
  }
7
7
  export declare class PageAfterUpdateEvent extends DomainEvent<PageAfterUpdatePayload> {
8
8
  eventType: "page.afterUpdate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterUpdatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterUpdatePayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { PageBeforeUpdateHandler, PageAfterUpdateHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { PageBeforeUpdateEventHandler, PageAfterUpdateEventHandler } from "./abstractions.js";
3
3
  // PageBeforeUpdate Event
4
4
  export class PageBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "page.beforeUpdate";
6
6
  getHandlerAbstraction() {
7
- return PageBeforeUpdateHandler;
7
+ return PageBeforeUpdateEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class PageBeforeUpdateEvent extends DomainEvent {
12
12
  export class PageAfterUpdateEvent extends DomainEvent {
13
13
  eventType = "page.afterUpdate";
14
14
  getHandlerAbstraction() {
15
- return PageAfterUpdateHandler;
15
+ return PageAfterUpdateEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeUpdateHandler","PageAfterUpdateHandler","PageBeforeUpdateEvent","eventType","getHandlerAbstraction","PageAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeUpdateHandler, PageAfterUpdateHandler } from \"./abstractions.js\";\nimport type { PageBeforeUpdatePayload, PageAfterUpdatePayload } from \"./abstractions.js\";\n\n// PageBeforeUpdate Event\nexport class PageBeforeUpdateEvent extends DomainEvent<PageBeforeUpdatePayload> {\n eventType = \"page.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeUpdateHandler;\n }\n}\n\n// PageAfterUpdate Event\nexport class PageAfterUpdateEvent extends DomainEvent<PageAfterUpdatePayload> {\n eventType = \"page.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,uBAAuB,EAAEC,sBAAsB;AAGxD;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,uBAAuB;EAClC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeUpdateEventHandler","PageAfterUpdateEventHandler","PageBeforeUpdateEvent","eventType","getHandlerAbstraction","PageAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeUpdateEventHandler, PageAfterUpdateEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeUpdatePayload, PageAfterUpdatePayload } from \"./abstractions.js\";\n\n// PageBeforeUpdate Event\nexport class PageBeforeUpdateEvent extends DomainEvent<PageBeforeUpdatePayload> {\n eventType = \"page.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeUpdateEventHandler;\n }\n}\n\n// PageAfterUpdate Event\nexport class PageAfterUpdateEvent extends DomainEvent<PageAfterUpdatePayload> {\n eventType = \"page.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,4BAA4B,EAAEC,2BAA2B;AAGlE;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const UpdatePageFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const UpdatePageFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- export { PageAfterUpdateHandler, PageBeforeUpdateHandler, UpdatePageUseCase } from "./abstractions.js";
1
+ export { PageAfterUpdateEventHandler, PageBeforeUpdateEventHandler, UpdatePageUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { PageAfterUpdateHandler, PageBeforeUpdateHandler, UpdatePageUseCase } from "./abstractions.js";
1
+ export { PageAfterUpdateEventHandler, PageBeforeUpdateEventHandler, UpdatePageUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterUpdateHandler","PageBeforeUpdateHandler","UpdatePageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterUpdateHandler,\n PageBeforeUpdateHandler,\n UpdatePageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,sBAAsB,EACtBC,uBAAuB,EACvBC,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["PageAfterUpdateEventHandler","PageBeforeUpdateEventHandler","UpdatePageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterUpdateEventHandler,\n PageBeforeUpdateEventHandler,\n UpdatePageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,2BAA2B,EAC3BC,4BAA4B,EAC5BC,iBAAiB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
2
+ import { UpdatePageRevisionDescriptionRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { PageModel } from "../../../domain/page/abstractions.js";
4
+ import { UpdateRevisionDescriptionUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateRevisionDescription/index.js";
5
+ declare class UpdatePageRevisionDescriptionRepositoryImpl implements RepositoryAbstraction.Interface {
6
+ private updateEntryRevisionDescription;
7
+ private getEntryById;
8
+ private pageModel;
9
+ constructor(updateEntryRevisionDescription: UpdateRevisionDescriptionUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, pageModel: PageModel.Interface);
10
+ execute(id: string, revisionDescription: string | undefined): RepositoryAbstraction.Return;
11
+ }
12
+ export declare const UpdatePageRevisionDescriptionRepository: typeof UpdatePageRevisionDescriptionRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdatePageRevisionDescriptionRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,44 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
3
+ import { UpdatePageRevisionDescriptionRepository as RepositoryAbstraction } 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
+ // First, validate the page exists
16
+ const getResult = await this.getEntryById.execute(this.pageModel, id);
17
+ if (getResult.isFail()) {
18
+ if (getResult.error.code === "Cms/Entry/NotFound") {
19
+ return Result.fail(new PageNotFoundError(id));
20
+ }
21
+ return Result.fail(new PagePersistenceError(getResult.error));
22
+ }
23
+
24
+ // Update the entry
25
+ const result = await this.updateEntryRevisionDescription.execute(this.pageModel, id, revisionDescription);
26
+ if (result.isFail()) {
27
+ if (result.error.code === "Cms/Entry/ValidationError") {
28
+ return Result.fail(new PageValidationError(result.error.message));
29
+ }
30
+ if (result.error.code === "Cms/Entry/NotFound") {
31
+ return Result.fail(new PageNotFoundError(id));
32
+ }
33
+ return Result.fail(new PagePersistenceError(result.error));
34
+ }
35
+ const page = EntryToPageMapper.toPage(result.value);
36
+ return Result.ok(page);
37
+ }
38
+ }
39
+ export const UpdatePageRevisionDescriptionRepository = RepositoryAbstraction.createImplementation({
40
+ implementation: UpdatePageRevisionDescriptionRepositoryImpl,
41
+ dependencies: [UpdateRevisionDescriptionUseCase, GetEntryByIdUseCase, PageModel]
42
+ });
43
+
44
+ //# sourceMappingURL=UpdatePageRevisionDescriptionRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","GetEntryByIdUseCase","UpdatePageRevisionDescriptionRepository","RepositoryAbstraction","PageModel","EntryToPageMapper","PageNotFoundError","PagePersistenceError","PageValidationError","UpdateRevisionDescriptionUseCase","UpdatePageRevisionDescriptionRepositoryImpl","constructor","updateEntryRevisionDescription","getEntryById","pageModel","execute","id","revisionDescription","getResult","isFail","error","code","fail","result","message","page","toPage","value","ok","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,uCAAuC,IAAIC,qBAAqB;AACzE,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SACIC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB;AAEvB,SAASC,gCAAgC,QAAQ,mFAAmF;AAEpI,MAAMC,2CAA2C,CAA4C;EACzFC,WAAWA,CACCC,8BAA0E,EAC1EC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,8BAA0E,GAA1EA,8BAA0E;IAAA,KAC1EC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,mBAAuC,EACX;IAC5B;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACL,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,EAAE,CAAC;IAErE,IAAIE,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,IAAID,SAAS,CAACE,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,iBAAiB,CAACU,EAAE,CAAC,CAAC;MACjD;MACA,OAAOhB,MAAM,CAACsB,IAAI,CAAC,IAAIf,oBAAoB,CAACW,SAAS,CAACE,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,8BAA8B,CAACG,OAAO,CAC5D,IAAI,CAACD,SAAS,EACdE,EAAE,EACFC,mBACJ,CAAC;IAED,IAAIM,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,2BAA2B,EAAE;QACnD,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAId,mBAAmB,CAACe,MAAM,CAACH,KAAK,CAACI,OAAO,CAAC,CAAC;MACrE;MACA,IAAID,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,iBAAiB,CAACU,EAAE,CAAC,CAAC;MACjD;MACA,OAAOhB,MAAM,CAACsB,IAAI,CAAC,IAAIf,oBAAoB,CAACgB,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMK,IAAI,GAAGpB,iBAAiB,CAACqB,MAAM,CAACH,MAAM,CAACI,KAAK,CAAC;IACnD,OAAO3B,MAAM,CAAC4B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMvB,uCAAuC,GAAGC,qBAAqB,CAAC0B,oBAAoB,CAAC;EAC9FC,cAAc,EAAEpB,2CAA2C;EAC3DqB,YAAY,EAAE,CAACtB,gCAAgC,EAAER,mBAAmB,EAAEG,SAAS;AACnF,CAAC,CAAC","ignoreList":[]}
@@ -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,66 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { UpdatePageRevisionDescriptionRepository, UpdatePageRevisionDescriptionUseCase as UseCaseAbstraction } 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) {
18
+ return Result.fail(new PageNotAuthorizedError());
19
+ }
20
+
21
+ // Get the original page for events
22
+ const getResult = await this.getPageById.execute(id);
23
+ if (getResult.isFail()) {
24
+ return getResult;
25
+ }
26
+ const original = getResult.value;
27
+ const canEdit = await this.permissions.canEdit("page", original);
28
+ if (!canEdit) {
29
+ return Result.fail(new PageNotAuthorizedError());
30
+ }
31
+
32
+ // Publish before update event
33
+ const beforeEvent = new PageBeforeUpdateRevisionDescriptionEvent({
34
+ original,
35
+ input: {
36
+ id,
37
+ revisionDescription
38
+ }
39
+ });
40
+ await this.eventPublisher.publish(beforeEvent);
41
+
42
+ // Execute the update operation
43
+ const result = await this.repository.execute(id, revisionDescription);
44
+ if (result.isFail()) {
45
+ return result;
46
+ }
47
+
48
+ // Publish after update event
49
+ const afterEvent = new PageAfterUpdateRevisionDescriptionEvent({
50
+ original,
51
+ input: {
52
+ id,
53
+ revisionDescription
54
+ },
55
+ page: result.value
56
+ });
57
+ await this.eventPublisher.publish(afterEvent);
58
+ return Result.ok(result.value);
59
+ }
60
+ }
61
+ export const UpdatePageRevisionDescriptionUseCase = UseCaseAbstraction.createImplementation({
62
+ implementation: UpdatePageRevisionDescriptionUseCaseImpl,
63
+ dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, UpdatePageRevisionDescriptionRepository]
64
+ });
65
+
66
+ //# sourceMappingURL=UpdatePageRevisionDescriptionUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","EventPublisher","UpdatePageRevisionDescriptionRepository","UpdatePageRevisionDescriptionUseCase","UseCaseAbstraction","PageAfterUpdateRevisionDescriptionEvent","PageBeforeUpdateRevisionDescriptionEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","UpdatePageRevisionDescriptionUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","id","revisionDescription","hasPermission","canEdit","fail","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","createImplementation","implementation","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,uCAAuC,EACvCC,oCAAoC,IAAIC,kBAAkB;AAE9D,SACIC,uCAAuC,EACvCC,wCAAwC;AAE5C,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,wCAAwC,CAAyC;EACnFC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA6D,EACvE;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA6D,GAA7DA,UAA6D;EACtE;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,mBAA2B,EAA6B;IAC9E,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMa,SAAS,GAAG,MAAM,IAAI,CAACR,WAAW,CAACE,OAAO,CAACC,EAAE,CAAC;IAEpD,IAAIK,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;IAEhC,MAAML,OAAO,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,OAAO,CAAC,MAAM,EAAEI,QAAQ,CAAC;IAChE,IAAI,CAACJ,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIpB,wCAAwC,CAAC;MAC7DkB,QAAQ;MACRG,KAAK,EAAE;QACHV,EAAE;QACFC;MACJ;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,mBAAmB,CAAC;IAErE,IAAIW,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIzB,uCAAuC,CAAC;MAC3DmB,QAAQ;MACRG,KAAK,EAAE;QACHV,EAAE;QACFC;MACJ,CAAC;MACDa,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAACgC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMtB,oCAAoC,GAAGC,kBAAkB,CAAC6B,oBAAoB,CAAC;EACxFC,cAAc,EAAExB,wCAAwC;EACxDyB,YAAY,EAAE,CACV3B,aAAa,EACbP,cAAc,EACdM,kBAAkB,EAClBL,uCAAuC;AAE/C,CAAC,CAAC","ignoreList":[]}
@@ -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,29 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ // ============================================================================
4
+ // Repository Abstraction
5
+ // ============================================================================
6
+
7
+ export const UpdatePageRevisionDescriptionRepository = createAbstraction("Wb/Page/UpdatePageRevisionDescriptionRepository");
8
+
9
+ // ============================================================================
10
+ // Use Case Abstraction
11
+ // ============================================================================
12
+
13
+ /** Update a page. */
14
+ export const UpdatePageRevisionDescriptionUseCase = createAbstraction("Wb/Page/UpdatePageRevisionDescriptionUseCase");
15
+
16
+ // ============================================================================
17
+ // Event Payload Types
18
+ // ============================================================================
19
+
20
+ // ============================================================================
21
+ // Event Handler Abstractions
22
+ // ============================================================================
23
+
24
+ /** Hook into page lifecycle before a page is updated. */
25
+ export const PageBeforeUpdateRevisionDescriptionEventHandler = createAbstraction("Wb/Page/BeforeUpdateRevisionDescriptionEventHandler");
26
+ /** Hook into page lifecycle after a page is updated. */
27
+ export const PageAfterUpdateRevisionDescriptionEventHandler = createAbstraction("Wb/Page/AfterUpdateRevisionDescriptionEventHandler");
28
+
29
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","UpdatePageRevisionDescriptionRepository","UpdatePageRevisionDescriptionUseCase","PageBeforeUpdateRevisionDescriptionEventHandler","PageAfterUpdateRevisionDescriptionEventHandler"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AASpE;AACA;AACA;;AAkBA,OAAO,MAAMC,uCAAuC,GAChDD,iBAAiB,CACb,iDACJ,CAAC;;AAQL;AACA;AACA;;AAmBA;AACA,OAAO,MAAME,oCAAoC,GAC7CF,iBAAiB,CACb,8CACJ,CAAC;;AASL;AACA;AACA;;AAmBA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,+CAA+C,GAAGH,iBAAiB,CAE9E,qDAAqD,CAAC;AAQxD;AACA,OAAO,MAAMI,8CAA8C,GAAGJ,iBAAiB,CAE7E,oDAAoD,CAAC","ignoreList":[]}
@@ -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,19 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { PageBeforeUpdateRevisionDescriptionEventHandler, PageAfterUpdateRevisionDescriptionEventHandler } from "./abstractions.js";
3
+ // PageBeforeUpdate Event
4
+ export class PageBeforeUpdateRevisionDescriptionEvent extends DomainEvent {
5
+ eventType = "page.beforeUpdateRevisionDescription";
6
+ getHandlerAbstraction() {
7
+ return PageBeforeUpdateRevisionDescriptionEventHandler;
8
+ }
9
+ }
10
+
11
+ // PageAfterUpdate Event
12
+ export class PageAfterUpdateRevisionDescriptionEvent extends DomainEvent {
13
+ eventType = "page.afterUpdateRevisionDescription";
14
+ getHandlerAbstraction() {
15
+ return PageAfterUpdateRevisionDescriptionEventHandler;
16
+ }
17
+ }
18
+
19
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","PageBeforeUpdateRevisionDescriptionEventHandler","PageAfterUpdateRevisionDescriptionEventHandler","PageBeforeUpdateRevisionDescriptionEvent","eventType","getHandlerAbstraction","PageAfterUpdateRevisionDescriptionEvent"],"sources":["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"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SACIC,+CAA+C,EAC/CC,8CAA8C;AAOlD;AACA,OAAO,MAAMC,wCAAwC,SAASH,WAAW,CAA6C;EAClHI,SAAS,GAAG,sCAAsC;EAElDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,+CAA+C;EAC1D;AACJ;;AAEA;AACA,OAAO,MAAMK,uCAAuC,SAASN,WAAW,CAA4C;EAChHI,SAAS,GAAG,qCAAqC;EAEjDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,8CAA8C;EACzD;AACJ","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const UpdatePageRevisionDescriptionFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdatePageRevisionDescriptionRepository } from "./UpdatePageRevisionDescriptionRepository.js";
3
+ import { UpdatePageRevisionDescriptionUseCase } from "./UpdatePageRevisionDescriptionUseCase.js";
4
+ export const UpdatePageRevisionDescriptionFeature = createFeature({
5
+ name: "WebsiteBuilder/UpdatePageRevisionDescription",
6
+ register(container) {
7
+ container.register(UpdatePageRevisionDescriptionRepository).inSingletonScope();
8
+ container.register(UpdatePageRevisionDescriptionUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","UpdatePageRevisionDescriptionRepository","UpdatePageRevisionDescriptionUseCase","UpdatePageRevisionDescriptionFeature","name","register","container","inSingletonScope"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,uCAAuC;AAChD,SAASC,oCAAoC;AAE7C,OAAO,MAAMC,oCAAoC,GAAGH,aAAa,CAAC;EAC9DI,IAAI,EAAE,8CAA8C;EACpDC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,uCAAuC,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC9ED,SAAS,CAACD,QAAQ,CAACH,oCAAoC,CAAC;EAC5D;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler, UpdatePageRevisionDescriptionUseCase } from "./abstractions.js";
@@ -0,0 +1,3 @@
1
+ export { PageAfterUpdateRevisionDescriptionEventHandler, PageBeforeUpdateRevisionDescriptionEventHandler, UpdatePageRevisionDescriptionUseCase } from "./abstractions.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PageAfterUpdateRevisionDescriptionEventHandler","PageBeforeUpdateRevisionDescriptionEventHandler","UpdatePageRevisionDescriptionUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterUpdateRevisionDescriptionEventHandler,\n PageBeforeUpdateRevisionDescriptionEventHandler,\n UpdatePageRevisionDescriptionUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,8CAA8C,EAC9CC,+CAA+C,EAC/CC,oCAAoC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import type { Permissions } from "@webiny/api-core/features/security/permissions/index.js";
2
+ import { WB_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ export declare const WbPermissions: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
4
+ readonly prefix: "wb";
5
+ readonly fullAccess: true;
6
+ readonly entities: readonly [{
7
+ readonly id: "page";
8
+ readonly permission: "wb.page";
9
+ readonly scopes: readonly ["full", "own"];
10
+ readonly actions: readonly [{
11
+ readonly name: "rwd";
12
+ }, {
13
+ readonly name: "pw";
14
+ }];
15
+ }, {
16
+ readonly id: "redirect";
17
+ readonly permission: "wb.redirect";
18
+ readonly scopes: readonly ["full", "own"];
19
+ readonly actions: readonly [{
20
+ readonly name: "rwd";
21
+ }];
22
+ }, {
23
+ readonly id: "settings";
24
+ readonly permission: "wb.settings";
25
+ readonly scopes: readonly ["full"];
26
+ }, {
27
+ readonly id: "integrations";
28
+ readonly permission: "wb.integrations";
29
+ readonly scopes: readonly ["full"];
30
+ }];
31
+ }>>;
32
+ export declare namespace WbPermissions {
33
+ type Interface = Permissions<typeof WB_PERMISSIONS_SCHEMA>;
34
+ }
@@ -0,0 +1,5 @@
1
+ import { createPermissionsAbstraction } from "@webiny/api-core/features/security/permissions/index.js";
2
+ import { WB_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ export const WbPermissions = createPermissionsAbstraction(WB_PERMISSIONS_SCHEMA);
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,4 @@
1
+ export declare const WbPermissionsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,6 @@
1
+ import { createPermissionsFeature } from "@webiny/api-core/features/security/permissions/index.js";
2
+ import { WB_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ import { WbPermissions } from "./abstractions.js";
4
+ export const WbPermissionsFeature = createPermissionsFeature(WB_PERMISSIONS_SCHEMA, WbPermissions);
5
+
6
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +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,9 +1,11 @@
1
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { CreateRedirectUseCase as UseCaseAbstraction, CreateRedirectRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
4
  declare class CreateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private permissions;
4
6
  private eventPublisher;
5
7
  private repository;
6
- constructor(eventPublisher: EventPublisherAbstraction.Interface, repository: CreateRedirectRepository.Interface);
8
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, repository: CreateRedirectRepository.Interface);
7
9
  execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
8
10
  }
9
11
  export declare const CreateRedirectUseCase: import("@webiny/di").Implementation<typeof CreateRedirectUseCaseImpl>;
@@ -1,13 +1,21 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { CreateRedirectUseCase as UseCaseAbstraction, CreateRedirectRepository } from "./abstractions.js";
4
4
  import { RedirectBeforeCreateEvent, RedirectAfterCreateEvent } from "./events.js";
5
+ import { WbPermissions } from "../../permissions/abstractions.js";
6
+ import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
5
7
  class CreateRedirectUseCaseImpl {
6
- constructor(eventPublisher, repository) {
8
+ constructor(permissions, eventPublisher, repository) {
9
+ this.permissions = permissions;
7
10
  this.eventPublisher = eventPublisher;
8
11
  this.repository = repository;
9
12
  }
10
13
  async execute(data) {
14
+ const hasPermission = await this.permissions.canCreate("redirect");
15
+ if (!hasPermission) {
16
+ return Result.fail(new RedirectNotAuthorizedError());
17
+ }
18
+
11
19
  // Publish before create event
12
20
  const beforeCreateEvent = new RedirectBeforeCreateEvent({
13
21
  input: data
@@ -31,7 +39,7 @@ class CreateRedirectUseCaseImpl {
31
39
  export const CreateRedirectUseCase = createImplementation({
32
40
  abstraction: UseCaseAbstraction,
33
41
  implementation: CreateRedirectUseCaseImpl,
34
- dependencies: [EventPublisher, CreateRedirectRepository]
42
+ dependencies: [WbPermissions, EventPublisher, CreateRedirectRepository]
35
43
  });
36
44
 
37
45
  //# sourceMappingURL=CreateRedirectUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","CreateRedirectUseCase","UseCaseAbstraction","CreateRedirectRepository","RedirectBeforeCreateEvent","RedirectAfterCreateEvent","CreateRedirectUseCaseImpl","constructor","eventPublisher","repository","execute","data","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\";\nimport {\n CreateRedirectUseCase as UseCaseAbstraction,\n CreateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeCreateEvent, RedirectAfterCreateEvent } from \"./events.js\";\n\nclass CreateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateRedirectRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\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: [EventPublisher, CreateRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAE5D,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,cAAmD,EACnDC,UAA8C,EACxD;IAAA,KAFUD,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,IAA+B,EAA6B;IACtE;IACA,MAAMC,iBAAiB,GAAG,IAAIR,yBAAyB,CAAC;MAAES,KAAK,EAAEF;IAAK,CAAC,CAAC;IACxE,MAAM,IAAI,CAACH,cAAc,CAACM,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;;IAEA;IACA,MAAME,gBAAgB,GAAG,IAAIZ,wBAAwB,CAAC;MAAEa,QAAQ,EAAEH,MAAM,CAACI;IAAM,CAAC,CAAC;IACjF,MAAM,IAAI,CAACX,cAAc,CAACM,OAAO,CAACG,gBAAgB,CAAC;IAEnD,OAAOnB,MAAM,CAACsB,EAAE,CAACL,MAAM,CAACI,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMlB,qBAAqB,GAAGF,oBAAoB,CAAC;EACtDsB,WAAW,EAAEnB,kBAAkB;EAC/BoB,cAAc,EAAEhB,yBAAyB;EACzCiB,YAAY,EAAE,CAACvB,cAAc,EAAEG,wBAAwB;AAC3D,CAAC,CAAC","ignoreList":[]}
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":[]}