@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,7 +1,7 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WbPage } from "../../../domain/page/abstractions.js";
4
- import { PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
4
+ import { PagePersistenceError, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
5
  export type ICreateWbPageParams = Pick<WbPage, "properties" | "metadata" | "bindings" | "elements" | "location" | "extensions">;
6
6
  export interface ICreatePageRepository {
7
7
  execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;
@@ -22,10 +22,12 @@ export interface ICreatePageUseCase {
22
22
  execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;
23
23
  }
24
24
  export interface ICreatePageUseCaseErrors {
25
+ notAuthorized: PageNotAuthorizedError;
25
26
  validation: PageValidationError;
26
27
  persistence: PagePersistenceError;
27
28
  }
28
29
  type UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];
30
+ /** Create a new page. */
29
31
  export declare const CreatePageUseCase: import("@webiny/di").Abstraction<ICreatePageUseCase>;
30
32
  export declare namespace CreatePageUseCase {
31
33
  type Interface = ICreatePageUseCase;
@@ -40,14 +42,16 @@ export interface PageBeforeCreatePayload {
40
42
  export interface PageAfterCreatePayload {
41
43
  page: WbPage;
42
44
  }
43
- export declare const PageBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
44
- export declare namespace PageBeforeCreateHandler {
45
+ /** Hook into page lifecycle before a page is created. */
46
+ export declare const PageBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
47
+ export declare namespace PageBeforeCreateEventHandler {
45
48
  type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;
46
49
  type Event = DomainEvent<PageBeforeCreatePayload>;
47
50
  type Page = WbPage;
48
51
  }
49
- export declare const PageAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
50
- export declare namespace PageAfterCreateHandler {
52
+ /** Hook into page lifecycle after a page is created. */
53
+ export declare const PageAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
54
+ export declare namespace PageAfterCreateEventHandler {
51
55
  type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;
52
56
  type Event = DomainEvent<PageAfterCreatePayload>;
53
57
  type Page = WbPage;
@@ -14,6 +14,7 @@ export const CreatePageRepository = createAbstraction("Wb/CreatePageRepository")
14
14
  // Use Case Abstraction
15
15
  // ============================================================================
16
16
 
17
+ /** Create a new page. */
17
18
  export const CreatePageUseCase = createAbstraction("Wb/CreatePageUseCase");
18
19
 
19
20
  // ============================================================================
@@ -24,7 +25,9 @@ export const CreatePageUseCase = createAbstraction("Wb/CreatePageUseCase");
24
25
  // Event Handler Abstractions
25
26
  // ============================================================================
26
27
 
27
- export const PageBeforeCreateHandler = createAbstraction("Wb/PageBeforeCreateHandler");
28
- export const PageAfterCreateHandler = createAbstraction("Wb/PageAfterCreateHandler");
28
+ /** Hook into page lifecycle before a page is created. */
29
+ export const PageBeforeCreateEventHandler = createAbstraction("Wb/PageBeforeCreateEventHandler");
30
+ /** Hook into page lifecycle after a page is created. */
31
+ export const PageAfterCreateEventHandler = createAbstraction("Wb/PageAfterCreateEventHandler");
29
32
 
30
33
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateHandler","PageAfterCreateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport { PagePersistenceError, PageValidationError } from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbPageParams = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"location\" | \"extensions\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRepository {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRepositoryErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];\n\nexport const CreatePageRepository =\n createAbstraction<ICreatePageRepository>(\"Wb/CreatePageRepository\");\n\nexport namespace CreatePageRepository {\n export type Interface = ICreatePageRepository;\n export type Params = ICreateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageUseCase {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageUseCaseErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];\n\nexport const CreatePageUseCase = createAbstraction<ICreatePageUseCase>(\"Wb/CreatePageUseCase\");\n\nexport namespace CreatePageUseCase {\n export type Interface = ICreatePageUseCase;\n export type Params = ICreateWbPageParams;\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 PageBeforeCreatePayload {\n input: ICreateWbPageParams;\n}\n\nexport interface PageAfterCreatePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateHandler\");\n\nexport namespace PageBeforeCreateHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateHandler\");\n\nexport namespace PageAfterCreateHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;\n export type Event = DomainEvent<PageAfterCreatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAKpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAaA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;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","CreatePageRepository","CreatePageUseCase","PageBeforeCreateEventHandler","PageAfterCreateEventHandler"],"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 PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbPageParams = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"location\" | \"extensions\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRepository {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRepositoryErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];\n\nexport const CreatePageRepository =\n createAbstraction<ICreatePageRepository>(\"Wb/CreatePageRepository\");\n\nexport namespace CreatePageRepository {\n export type Interface = ICreatePageRepository;\n export type Params = ICreateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageUseCase {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];\n\n/** Create a new page. */\nexport const CreatePageUseCase = createAbstraction<ICreatePageUseCase>(\"Wb/CreatePageUseCase\");\n\nexport namespace CreatePageUseCase {\n export type Interface = ICreatePageUseCase;\n export type Params = ICreateWbPageParams;\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 PageBeforeCreatePayload {\n input: ICreateWbPageParams;\n}\n\nexport interface PageAfterCreatePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is created. */\nexport const PageBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateEventHandler\");\n\nexport namespace PageBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is created. */\nexport const PageAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateEventHandler\");\n\nexport namespace PageAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;\n export type Event = DomainEvent<PageAfterCreatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AASpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;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 { PageBeforeCreatePayload, PageAfterCreatePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {
4
4
  eventType: "page.beforeCreate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
6
6
  }
7
7
  export declare class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {
8
8
  eventType: "page.afterCreate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { PageBeforeCreateHandler, PageAfterCreateHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { PageBeforeCreateEventHandler, PageAfterCreateEventHandler } from "./abstractions.js";
3
3
  // PageBeforeCreate Event
4
4
  export class PageBeforeCreateEvent extends DomainEvent {
5
5
  eventType = "page.beforeCreate";
6
6
  getHandlerAbstraction() {
7
- return PageBeforeCreateHandler;
7
+ return PageBeforeCreateEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class PageBeforeCreateEvent extends DomainEvent {
12
12
  export class PageAfterCreateEvent extends DomainEvent {
13
13
  eventType = "page.afterCreate";
14
14
  getHandlerAbstraction() {
15
- return PageAfterCreateHandler;
15
+ return PageAfterCreateEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeCreateHandler","PageAfterCreateHandler","PageBeforeCreateEvent","eventType","getHandlerAbstraction","PageAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeCreateHandler, PageAfterCreateHandler } from \"./abstractions.js\";\nimport type { PageBeforeCreatePayload, PageAfterCreatePayload } from \"./abstractions.js\";\n\n// PageBeforeCreate Event\nexport class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {\n eventType = \"page.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateHandler;\n }\n}\n\n// PageAfterCreate Event\nexport class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {\n eventType = \"page.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateHandler;\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","PageBeforeCreateEventHandler","PageAfterCreateEventHandler","PageBeforeCreateEvent","eventType","getHandlerAbstraction","PageAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeCreateEventHandler, PageAfterCreateEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeCreatePayload, PageAfterCreatePayload } from \"./abstractions.js\";\n\n// PageBeforeCreate Event\nexport class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {\n eventType = \"page.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateEventHandler;\n }\n}\n\n// PageAfterCreate Event\nexport class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {\n eventType = \"page.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateEventHandler;\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 CreatePageFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreatePageFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- export { PageAfterCreateHandler, PageBeforeCreateHandler, CreatePageUseCase } from "./abstractions.js";
1
+ export { PageAfterCreateEventHandler, PageBeforeCreateEventHandler, CreatePageUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { PageAfterCreateHandler, PageBeforeCreateHandler, CreatePageUseCase } from "./abstractions.js";
1
+ export { PageAfterCreateEventHandler, PageBeforeCreateEventHandler, CreatePageUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterCreateHandler","PageBeforeCreateHandler","CreatePageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateHandler,\n PageBeforeCreateHandler,\n CreatePageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,sBAAsB,EACtBC,uBAAuB,EACvBC,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["PageAfterCreateEventHandler","PageBeforeCreateEventHandler","CreatePageUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateEventHandler,\n PageBeforeCreateEventHandler,\n CreatePageUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,2BAA2B,EAC3BC,4BAA4B,EAC5BC,iBAAiB","ignoreList":[]}
@@ -1,9 +1,13 @@
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 { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } from "./abstractions.js";
3
+ import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
5
  declare class CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
4
7
  private eventPublisher;
8
+ private getPageById;
5
9
  private repository;
6
- constructor(eventPublisher: EventPublisherAbstraction.Interface, repository: CreatePageRevisionFromRepository.Interface);
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: CreatePageRevisionFromRepository.Interface);
7
11
  execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
8
12
  }
9
13
  export declare const CreatePageRevisionFromUseCase: typeof CreatePageRevisionFromUseCaseImpl & {
@@ -1,13 +1,29 @@
1
1
  import { Result } 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 { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } from "./abstractions.js";
4
4
  import { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } 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";
5
8
  class CreatePageRevisionFromUseCaseImpl {
6
- constructor(eventPublisher, repository) {
9
+ constructor(permissions, eventPublisher, getPageById, repository) {
10
+ this.permissions = permissions;
7
11
  this.eventPublisher = eventPublisher;
12
+ this.getPageById = getPageById;
8
13
  this.repository = repository;
9
14
  }
10
15
  async execute(params) {
16
+ const hasPermission = await this.permissions.canCreate("page");
17
+ if (!hasPermission) {
18
+ return Result.fail(new PageNotAuthorizedError());
19
+ }
20
+
21
+ // Verify ownership of the source page
22
+ const getResult = await this.getPageById.execute(params.id);
23
+ if (getResult.isFail()) {
24
+ return getResult;
25
+ }
26
+
11
27
  // Publish before event
12
28
  const beforeEvent = new PageBeforeCreateRevisionFromEvent({
13
29
  params
@@ -31,7 +47,7 @@ class CreatePageRevisionFromUseCaseImpl {
31
47
  }
32
48
  export const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({
33
49
  implementation: CreatePageRevisionFromUseCaseImpl,
34
- dependencies: [EventPublisher, CreatePageRevisionFromRepository]
50
+ dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, CreatePageRevisionFromRepository]
35
51
  });
36
52
 
37
53
  //# sourceMappingURL=CreatePageRevisionFromUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","CreatePageRevisionFromUseCase","UseCaseAbstraction","CreatePageRevisionFromRepository","PageBeforeCreateRevisionFromEvent","PageAfterCreateRevisionFromEvent","CreatePageRevisionFromUseCaseImpl","constructor","eventPublisher","repository","execute","params","beforeEvent","publish","result","isFail","page","value","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageRevisionFromUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n CreatePageRevisionFromUseCase as UseCaseAbstraction,\n CreatePageRevisionFromRepository\n} from \"./abstractions.js\";\nimport { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } from \"./events.js\";\n\nclass CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreatePageRevisionFromRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Publish before event\n const beforeEvent = new PageBeforeCreateRevisionFromEvent({\n params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the create revision operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after event\n const afterEvent = new PageAfterCreateRevisionFromEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageRevisionFromUseCaseImpl,\n dependencies: [EventPublisher, CreatePageRevisionFromRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,6BAA6B,IAAIC,kBAAkB,EACnDC,gCAAgC;AAEpC,SAASC,iCAAiC,EAAEC,gCAAgC;AAE5E,MAAMC,iCAAiC,CAAyC;EAC5EC,WAAWA,CACCC,cAAmD,EACnDC,UAAsD,EAChE;IAAA,KAFUD,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAAsD,GAAtDA,UAAsD;EAC/D;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,WAAW,GAAG,IAAIR,iCAAiC,CAAC;MACtDO;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACH,cAAc,CAACK,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACL,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIG,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,IAAI,GAAGF,MAAM,CAACG,KAAK;;IAEzB;IACA,MAAMC,UAAU,GAAG,IAAIb,gCAAgC,CAAC;MACpDW;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACR,cAAc,CAACK,OAAO,CAACK,UAAU,CAAC;IAE7C,OAAOnB,MAAM,CAACoB,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMf,6BAA6B,GAAGC,kBAAkB,CAACkB,oBAAoB,CAAC;EACjFC,cAAc,EAAEf,iCAAiC;EACjDgB,YAAY,EAAE,CAACtB,cAAc,EAAEG,gCAAgC;AACnE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","CreatePageRevisionFromUseCase","UseCaseAbstraction","CreatePageRevisionFromRepository","PageBeforeCreateRevisionFromEvent","PageAfterCreateRevisionFromEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","CreatePageRevisionFromUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canCreate","fail","getResult","id","isFail","beforeEvent","publish","result","page","value","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageRevisionFromUseCase.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 CreatePageRevisionFromUseCase as UseCaseAbstraction,\n CreatePageRevisionFromRepository\n} from \"./abstractions.js\";\nimport { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } 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 CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: CreatePageRevisionFromRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Verify ownership of the source page\n const getResult = await this.getPageById.execute(params.id);\n if (getResult.isFail()) {\n return getResult;\n }\n\n // Publish before event\n const beforeEvent = new PageBeforeCreateRevisionFromEvent({\n params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the create revision operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after event\n const afterEvent = new PageAfterCreateRevisionFromEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageRevisionFromUseCaseImpl,\n dependencies: [\n WbPermissions,\n EventPublisher,\n GetPageByIdUseCase,\n CreatePageRevisionFromRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,6BAA6B,IAAIC,kBAAkB,EACnDC,gCAAgC;AAEpC,SAASC,iCAAiC,EAAEC,gCAAgC;AAC5E,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,iCAAiC,CAAyC;EAC5EC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAsD,EAChE;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAsD,GAAtDA,UAAsD;EAC/D;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAC3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;;IAEA;IACA,MAAMG,WAAW,GAAG,IAAInB,iCAAiC,CAAC;MACtDY;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACY,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIS,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,MAAMC,IAAI,GAAGD,MAAM,CAACE,KAAK;;IAEzB;IACA,MAAMC,UAAU,GAAG,IAAIvB,gCAAgC,CAAC;MACpDqB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACd,cAAc,CAACY,OAAO,CAACI,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMzB,6BAA6B,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACjFC,cAAc,EAAEtB,iCAAiC;EACjDuB,YAAY,EAAE,CACVzB,aAAa,EACbP,cAAc,EACdM,kBAAkB,EAClBH,gCAAgC;AAExC,CAAC,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
- import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import type { WbPage } from "../../../domain/page/abstractions.js";
5
- import { PageNotFoundError, PagePersistenceError, PageValidationError } from "../../../domain/page/errors.js";
5
+ import { PageNotFoundError, PagePersistenceError, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
6
6
  export interface ICreateWbPageRevisionFromParams {
7
7
  id: string;
8
8
  }
@@ -26,11 +26,13 @@ export interface ICreatePageRevisionFromUseCase {
26
26
  execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;
27
27
  }
28
28
  export interface ICreatePageRevisionFromUseCaseErrors {
29
+ notAuthorized: PageNotAuthorizedError;
29
30
  validation: PageValidationError;
30
31
  notFound: PageNotFoundError;
31
32
  persistence: PagePersistenceError;
32
33
  }
33
34
  type UseCaseError = ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];
35
+ /** Create a page revision from an existing one. */
34
36
  export declare const CreatePageRevisionFromUseCase: import("@webiny/di").Abstraction<ICreatePageRevisionFromUseCase>;
35
37
  export declare namespace CreatePageRevisionFromUseCase {
36
38
  type Interface = ICreatePageRevisionFromUseCase;
@@ -45,14 +47,16 @@ export interface PageBeforeCreateRevisionFromPayload {
45
47
  export interface PageAfterCreateRevisionFromPayload {
46
48
  page: WbPage;
47
49
  }
48
- export declare const PageBeforeCreateRevisionFromHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
49
- export declare namespace PageBeforeCreateRevisionFromHandler {
50
+ /** Hook into page lifecycle before a revision is created from existing. */
51
+ export declare const PageBeforeCreateRevisionFromEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
52
+ export declare namespace PageBeforeCreateRevisionFromEventHandler {
50
53
  type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;
51
54
  type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;
52
55
  type Page = WbPage;
53
56
  }
54
- export declare const PageAfterCreateRevisionFromHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
55
- export declare namespace PageAfterCreateRevisionFromHandler {
57
+ /** Hook into page lifecycle after a revision is created from existing. */
58
+ export declare const PageAfterCreateRevisionFromEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
59
+ export declare namespace PageAfterCreateRevisionFromEventHandler {
56
60
  type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;
57
61
  type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;
58
62
  type Page = WbPage;
@@ -14,6 +14,7 @@ export const CreatePageRevisionFromRepository = createAbstraction("Wb/CreatePage
14
14
  // Use Case Abstraction
15
15
  // ============================================================================
16
16
 
17
+ /** Create a page revision from an existing one. */
17
18
  export const CreatePageRevisionFromUseCase = createAbstraction("Wb/CreatePageRevisionFromUseCase");
18
19
 
19
20
  // ============================================================================
@@ -24,7 +25,9 @@ export const CreatePageRevisionFromUseCase = createAbstraction("Wb/CreatePageRev
24
25
  // Event Handler Abstractions
25
26
  // ============================================================================
26
27
 
27
- export const PageBeforeCreateRevisionFromHandler = createAbstraction("Wb/PageBeforeCreateRevisionFromHandler");
28
- export const PageAfterCreateRevisionFromHandler = createAbstraction("Wb/PageAfterCreateRevisionFromHandler");
28
+ /** Hook into page lifecycle before a revision is created from existing. */
29
+ export const PageBeforeCreateRevisionFromEventHandler = createAbstraction("Wb/PageBeforeCreateRevisionFromEventHandler");
30
+ /** Hook into page lifecycle after a revision is created from existing. */
31
+ export const PageAfterCreateRevisionFromEventHandler = createAbstraction("Wb/PageAfterCreateRevisionFromEventHandler");
29
32
 
30
33
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromHandler","PageAfterCreateRevisionFromHandler"],"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 {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\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 PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeCreateRevisionFromHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromHandler\");\n\nexport namespace PageBeforeCreateRevisionFromHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterCreateRevisionFromHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromHandler\");\n\nexport namespace PageAfterCreateRevisionFromHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAeA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,mCAAmC,GAAGH,iBAAiB,CAElE,wCAAwC,CAAC;AAQ3C,OAAO,MAAMI,kCAAkC,GAAGJ,iBAAiB,CAEjE,uCAAuC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\n/** Create a page revision from an existing one. */\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\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 PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a revision is created from existing. */\nexport const PageBeforeCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromEventHandler\");\n\nexport namespace PageBeforeCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a revision is created from existing. */\nexport const PageAfterCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromEventHandler\");\n\nexport namespace PageAfterCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,wCAAwC,GAAGH,iBAAiB,CAEvE,6CAA6C,CAAC;AAQhD;AACA,OAAO,MAAMI,uCAAuC,GAAGJ,iBAAiB,CAEtE,4CAA4C,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 { PageBeforeCreateRevisionFromPayload, PageAfterCreateRevisionFromPayload } from "./abstractions.js";
3
3
  export declare class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {
4
4
  eventType: "page.beforeCreateRevisionFrom";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
6
6
  }
7
7
  export declare class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {
8
8
  eventType: "page.afterCreateRevisionFrom";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { PageBeforeCreateRevisionFromHandler, PageAfterCreateRevisionFromHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { PageBeforeCreateRevisionFromEventHandler, PageAfterCreateRevisionFromEventHandler } from "./abstractions.js";
3
3
  // PageBeforeCreateRevisionFrom Event
4
4
  export class PageBeforeCreateRevisionFromEvent extends DomainEvent {
5
5
  eventType = "page.beforeCreateRevisionFrom";
6
6
  getHandlerAbstraction() {
7
- return PageBeforeCreateRevisionFromHandler;
7
+ return PageBeforeCreateRevisionFromEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class PageBeforeCreateRevisionFromEvent extends DomainEvent {
12
12
  export class PageAfterCreateRevisionFromEvent extends DomainEvent {
13
13
  eventType = "page.afterCreateRevisionFrom";
14
14
  getHandlerAbstraction() {
15
- return PageAfterCreateRevisionFromHandler;
15
+ return PageAfterCreateRevisionFromEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeCreateRevisionFromHandler","PageAfterCreateRevisionFromHandler","PageBeforeCreateRevisionFromEvent","eventType","getHandlerAbstraction","PageAfterCreateRevisionFromEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n PageBeforeCreateRevisionFromHandler,\n PageAfterCreateRevisionFromHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeCreateRevisionFromPayload,\n PageAfterCreateRevisionFromPayload\n} from \"./abstractions.js\";\n\n// PageBeforeCreateRevisionFrom Event\nexport class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {\n eventType = \"page.beforeCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateRevisionFromHandler;\n }\n}\n\n// PageAfterCreateRevisionFrom Event\nexport class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {\n eventType = \"page.afterCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateRevisionFromHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SACIC,mCAAmC,EACnCC,kCAAkC;AAOtC;AACA,OAAO,MAAMC,iCAAiC,SAASH,WAAW,CAAsC;EACpGI,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,mCAAmC;EAC9C;AACJ;;AAEA;AACA,OAAO,MAAMK,gCAAgC,SAASN,WAAW,CAAqC;EAClGI,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,kCAAkC;EAC7C;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEvent","eventType","getHandlerAbstraction","PageAfterCreateRevisionFromEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n PageBeforeCreateRevisionFromEventHandler,\n PageAfterCreateRevisionFromEventHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeCreateRevisionFromPayload,\n PageAfterCreateRevisionFromPayload\n} from \"./abstractions.js\";\n\n// PageBeforeCreateRevisionFrom Event\nexport class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {\n eventType = \"page.beforeCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateRevisionFromEventHandler;\n }\n}\n\n// PageAfterCreateRevisionFrom Event\nexport class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {\n eventType = \"page.afterCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateRevisionFromEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SACIC,wCAAwC,EACxCC,uCAAuC;AAO3C;AACA,OAAO,MAAMC,iCAAiC,SAASH,WAAW,CAAsC;EACpGI,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,wCAAwC;EACnD;AACJ;;AAEA;AACA,OAAO,MAAMK,gCAAgC,SAASN,WAAW,CAAqC;EAClGI,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uCAAuC;EAClD;AACJ","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const CreatePageRevisionFromFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreatePageRevisionFromFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- export { PageAfterCreateRevisionFromHandler, PageBeforeCreateRevisionFromHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
1
+ export { PageAfterCreateRevisionFromEventHandler, PageBeforeCreateRevisionFromEventHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { PageAfterCreateRevisionFromHandler, PageBeforeCreateRevisionFromHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
1
+ export { PageAfterCreateRevisionFromEventHandler, PageBeforeCreateRevisionFromEventHandler, CreatePageRevisionFromUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterCreateRevisionFromHandler","PageBeforeCreateRevisionFromHandler","CreatePageRevisionFromUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateRevisionFromHandler,\n PageBeforeCreateRevisionFromHandler,\n CreatePageRevisionFromUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,kCAAkC,EAClCC,mCAAmC,EACnCC,6BAA6B","ignoreList":[]}
1
+ {"version":3,"names":["PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEventHandler","CreatePageRevisionFromUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n PageAfterCreateRevisionFromEventHandler,\n PageBeforeCreateRevisionFromEventHandler,\n CreatePageRevisionFromUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,uCAAuC,EACvCC,wCAAwC,EACxCC,6BAA6B","ignoreList":[]}
@@ -1,12 +1,10 @@
1
1
  import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
2
- import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
3
2
  import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
4
3
  import { PageModel } from "../../../domain/page/abstractions.js";
5
4
  declare class DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {
6
5
  private deleteEntry;
7
- private getEntryById;
8
6
  private pageModel;
9
- constructor(deleteEntry: DeleteEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, pageModel: PageModel.Interface);
7
+ constructor(deleteEntry: DeleteEntryUseCase.Interface, pageModel: PageModel.Interface);
10
8
  execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
11
9
  }
12
10
  export declare const DeletePageRepository: typeof DeletePageRepositoryImpl & {
@@ -1,25 +1,14 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
3
- import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
3
  import { DeletePageRepository as RepositoryAbstraction } from "./abstractions.js";
5
4
  import { PageModel } from "../../../domain/page/abstractions.js";
6
5
  import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
7
6
  class DeletePageRepositoryImpl {
8
- constructor(deleteEntry, getEntryById, pageModel) {
7
+ constructor(deleteEntry, pageModel) {
9
8
  this.deleteEntry = deleteEntry;
10
- this.getEntryById = getEntryById;
11
9
  this.pageModel = pageModel;
12
10
  }
13
11
  async execute(params) {
14
- // First, validate the page exists
15
- const getResult = await this.getEntryById.execute(this.pageModel, params.id);
16
- if (getResult.isFail()) {
17
- if (getResult.error.code === "Cms/Entry/NotFound") {
18
- return Result.fail(new PageNotFoundError(params.id));
19
- }
20
- return Result.fail(new PagePersistenceError(getResult.error));
21
- }
22
-
23
12
  // Delete the entry
24
13
  const result = await this.deleteEntry.execute(this.pageModel, params.id);
25
14
  if (result.isFail()) {
@@ -33,7 +22,7 @@ class DeletePageRepositoryImpl {
33
22
  }
34
23
  export const DeletePageRepository = RepositoryAbstraction.createImplementation({
35
24
  implementation: DeletePageRepositoryImpl,
36
- dependencies: [DeleteEntryUseCase, GetEntryByIdUseCase, PageModel]
25
+ dependencies: [DeleteEntryUseCase, PageModel]
37
26
  });
38
27
 
39
28
  //# sourceMappingURL=DeletePageRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","DeleteEntryUseCase","GetEntryByIdUseCase","DeletePageRepository","RepositoryAbstraction","PageModel","PageNotFoundError","PagePersistenceError","DeletePageRepositoryImpl","constructor","deleteEntry","getEntryById","pageModel","execute","params","getResult","id","isFail","error","code","fail","result","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { DeletePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, params.id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Delete the entry\n const result = await this.deleteEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const DeletePageRepository = RepositoryAbstraction.createImplementation({\n implementation: DeletePageRepositoryImpl,\n dependencies: [DeleteEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAE5E,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,IAAIF,SAAS,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOhB,MAAM,CAACoB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,SAAS,CAACG,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,WAAW,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAExE,IAAIK,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOhB,MAAM,CAACoB,IAAI,CAAC,IAAIb,oBAAoB,CAACc,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;IAEA,OAAOlB,MAAM,CAACsB,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMnB,oBAAoB,GAAGC,qBAAqB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,wBAAwB;EACxCiB,YAAY,EAAE,CAACxB,kBAAkB,EAAEC,mBAAmB,EAAEG,SAAS;AACrE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","DeleteEntryUseCase","DeletePageRepository","RepositoryAbstraction","PageModel","PageNotFoundError","PagePersistenceError","DeletePageRepositoryImpl","constructor","deleteEntry","pageModel","execute","params","result","id","isFail","error","code","fail","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { DeletePageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass DeletePageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // Delete the entry\n const result = await this.deleteEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const DeletePageRepository = RepositoryAbstraction.createImplementation({\n implementation: DeletePageRepositoryImpl,\n dependencies: [DeleteEntryUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,SAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAExE,IAAID,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOjB,MAAM,CAACkB,IAAI,CAAC,IAAIb,iBAAiB,CAACO,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOd,MAAM,CAACkB,IAAI,CAAC,IAAIZ,oBAAoB,CAACO,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,OAAOhB,MAAM,CAACmB,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMjB,oBAAoB,GAAGC,qBAAqB,CAACiB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEd,wBAAwB;EACxCe,YAAY,EAAE,CAACrB,kBAAkB,EAAEG,SAAS;AAChD,CAAC,CAAC","ignoreList":[]}
@@ -1,11 +1,13 @@
1
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
2
- import { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from "./abstractions.js";
3
- import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
4
+ import { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/index.js";
4
5
  declare class DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
5
7
  private eventPublisher;
6
- private getPageById;
8
+ private getDeletedPageById;
7
9
  private repository;
8
- constructor(eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: DeletePageRepository.Interface);
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getDeletedPageById: GetDeletedPageByIdUseCase.Interface, repository: DeletePageRepository.Interface);
9
11
  execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
10
12
  }
11
13
  export declare const DeletePageUseCase: typeof DeletePageUseCaseImpl & {
@@ -1,21 +1,28 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
3
- import { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from "./abstractions.js";
4
- import { PageBeforeDeleteEvent, PageAfterDeleteEvent } from "./events.js";
5
- import { GetPageByIdUseCase } from "../GetPageById/index.js";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { PageAfterDeleteEvent, PageBeforeDeleteEvent } from "./events.js";
5
+ import { WbPermissions } from "../../permissions/abstractions.js";
6
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
7
+ import { GetDeletedPageByIdUseCase } from "../GetDeletedPageById/index.js";
6
8
  class DeletePageUseCaseImpl {
7
- constructor(eventPublisher, getPageById, repository) {
9
+ constructor(permissions, eventPublisher, getDeletedPageById, repository) {
10
+ this.permissions = permissions;
8
11
  this.eventPublisher = eventPublisher;
9
- this.getPageById = getPageById;
12
+ this.getDeletedPageById = getDeletedPageById;
10
13
  this.repository = repository;
11
14
  }
12
15
  async execute(params) {
13
- // Get the page first to include in events
14
- const getResult = await this.getPageById.execute(params.id);
16
+ // Get the page first to include in events and for item-level permission check
17
+ const getResult = await this.getDeletedPageById.execute(params.id);
15
18
  if (getResult.isFail()) {
16
19
  return Result.fail(getResult.error);
17
20
  }
18
21
  const page = getResult.value;
22
+ const canDelete = await this.permissions.canDelete("page", page);
23
+ if (!canDelete) {
24
+ return Result.fail(new PageNotAuthorizedError());
25
+ }
19
26
 
20
27
  // Publish before delete event
21
28
  const beforeEvent = new PageBeforeDeleteEvent({
@@ -39,7 +46,7 @@ class DeletePageUseCaseImpl {
39
46
  }
40
47
  export const DeletePageUseCase = UseCaseAbstraction.createImplementation({
41
48
  implementation: DeletePageUseCaseImpl,
42
- dependencies: [EventPublisher, GetPageByIdUseCase, DeletePageRepository]
49
+ dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]
43
50
  });
44
51
 
45
52
  //# sourceMappingURL=DeletePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","DeletePageUseCase","UseCaseAbstraction","DeletePageRepository","PageBeforeDeleteEvent","PageAfterDeleteEvent","GetPageByIdUseCase","DeletePageUseCaseImpl","constructor","eventPublisher","getPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { DeletePageUseCase as UseCaseAbstraction, DeletePageRepository } from \"./abstractions.js\";\nimport { PageBeforeDeleteEvent, PageAfterDeleteEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\n\nclass DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n // Publish before delete event\n const beforeEvent = new PageBeforeDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [EventPublisher, GetPageByIdUseCase, DeletePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,kBAAkB;AAE3B,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA0C,EACpD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOjB,MAAM,CAACkB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;;IAE5B;IACA,MAAMC,WAAW,GAAG,IAAIjB,qBAAqB,CAAC;MAC1Ce;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACa,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACZ,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIU,MAAM,CAACP,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOO,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAInB,oBAAoB,CAAC;MACxCc;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACa,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOzB,MAAM,CAAC0B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMxB,iBAAiB,GAAGC,kBAAkB,CAACwB,oBAAoB,CAAC;EACrEC,cAAc,EAAEpB,qBAAqB;EACrCqB,YAAY,EAAE,CAAC5B,cAAc,EAAEM,kBAAkB,EAAEH,oBAAoB;AAC3E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","DeletePageRepository","DeletePageUseCase","UseCaseAbstraction","PageAfterDeleteEvent","PageBeforeDeleteEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","DeletePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageUseCase.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 { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterDeleteEvent, PageBeforeDeleteEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,oBAAoB,EAAEC,iBAAiB,IAAIC,kBAAkB;AACtE,SAASC,oBAAoB,EAAEC,qBAAqB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA0C,EACpD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,kBAAkB,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAElE,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIb,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAIpB,qBAAqB,CAAC;MAC1CiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,oBAAoB,CAAC;MACxCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM3B,iBAAiB,GAAGC,kBAAkB,CAAC2B,oBAAoB,CAAC;EACrEC,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CAAC1B,aAAa,EAAEN,cAAc,EAAEQ,yBAAyB,EAAEP,oBAAoB;AACjG,CAAC,CAAC","ignoreList":[]}