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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/domain/page/EntryToPageMapper.js +4 -1
  2. package/domain/page/EntryToPageMapper.js.map +1 -1
  3. package/domain/page/PagePath.d.ts +7 -0
  4. package/domain/page/PagePath.js +36 -0
  5. package/domain/page/PagePath.js.map +1 -0
  6. package/domain/page/abstractions.d.ts +22 -3
  7. package/domain/page/abstractions.js.map +1 -1
  8. package/domain/page/errors.d.ts +12 -0
  9. package/domain/page/errors.js +22 -0
  10. package/domain/page/errors.js.map +1 -1
  11. package/domain/permissionsSchema.d.ts +29 -0
  12. package/domain/permissionsSchema.js +32 -0
  13. package/domain/permissionsSchema.js.map +1 -0
  14. package/exports/api/website-builder/page.d.ts +12 -8
  15. package/exports/api/website-builder/page.js +12 -8
  16. package/exports/api/website-builder/page.js.map +1 -1
  17. package/exports/api/website-builder/redirect.d.ts +4 -4
  18. package/exports/api/website-builder/redirect.js +4 -4
  19. package/exports/api/website-builder/redirect.js.map +1 -1
  20. package/features/installer/ApiKeyInstaller.d.ts +1 -1
  21. package/features/installer/ApiKeyInstaller.js +5 -2
  22. package/features/installer/ApiKeyInstaller.js.map +1 -1
  23. package/features/installer/feature.d.ts +4 -1
  24. package/features/nextjs/abstractions.d.ts +1 -0
  25. package/features/nextjs/abstractions.js +1 -0
  26. package/features/nextjs/abstractions.js.map +1 -1
  27. package/features/nextjs/feature.d.ts +4 -1
  28. package/features/pages/CreatePage/CreatePageUseCase.d.ts +4 -2
  29. package/features/pages/CreatePage/CreatePageUseCase.js +11 -3
  30. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  31. package/features/pages/CreatePage/abstractions.d.ts +10 -6
  32. package/features/pages/CreatePage/abstractions.js +5 -2
  33. package/features/pages/CreatePage/abstractions.js.map +1 -1
  34. package/features/pages/CreatePage/events.d.ts +3 -3
  35. package/features/pages/CreatePage/events.js +4 -4
  36. package/features/pages/CreatePage/events.js.map +1 -1
  37. package/features/pages/CreatePage/feature.d.ts +4 -1
  38. package/features/pages/CreatePage/index.d.ts +1 -1
  39. package/features/pages/CreatePage/index.js +1 -1
  40. package/features/pages/CreatePage/index.js.map +1 -1
  41. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +6 -2
  42. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +19 -3
  43. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  44. package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +11 -7
  45. package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -2
  46. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  47. package/features/pages/CreatePageRevisionFrom/events.d.ts +3 -3
  48. package/features/pages/CreatePageRevisionFrom/events.js +4 -4
  49. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  50. package/features/pages/CreatePageRevisionFrom/feature.d.ts +4 -1
  51. package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -1
  52. package/features/pages/CreatePageRevisionFrom/index.js +1 -1
  53. package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
  54. package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
  55. package/features/pages/DeletePage/DeletePageRepository.js +2 -13
  56. package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
  57. package/features/pages/DeletePage/DeletePageUseCase.d.ts +7 -5
  58. package/features/pages/DeletePage/DeletePageUseCase.js +16 -9
  59. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  60. package/features/pages/DeletePage/abstractions.d.ts +12 -7
  61. package/features/pages/DeletePage/abstractions.js +5 -2
  62. package/features/pages/DeletePage/abstractions.js.map +1 -1
  63. package/features/pages/DeletePage/events.d.ts +3 -3
  64. package/features/pages/DeletePage/events.js +4 -4
  65. package/features/pages/DeletePage/events.js.map +1 -1
  66. package/features/pages/DeletePage/feature.d.ts +4 -1
  67. package/features/pages/DeletePage/index.d.ts +1 -1
  68. package/features/pages/DeletePage/index.js +1 -1
  69. package/features/pages/DeletePage/index.js.map +1 -1
  70. package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +2 -2
  71. package/features/pages/DuplicatePage/DuplicatePageRepository.js +9 -1
  72. package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
  73. package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +4 -2
  74. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +11 -3
  75. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  76. package/features/pages/DuplicatePage/abstractions.d.ts +18 -8
  77. package/features/pages/DuplicatePage/abstractions.js +5 -2
  78. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  79. package/features/pages/DuplicatePage/events.d.ts +3 -3
  80. package/features/pages/DuplicatePage/events.js +4 -4
  81. package/features/pages/DuplicatePage/events.js.map +1 -1
  82. package/features/pages/DuplicatePage/feature.d.ts +4 -1
  83. package/features/pages/DuplicatePage/index.d.ts +2 -1
  84. package/features/pages/DuplicatePage/index.js +1 -1
  85. package/features/pages/DuplicatePage/index.js.map +1 -1
  86. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.d.ts +13 -0
  87. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +32 -0
  88. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -0
  89. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +12 -0
  90. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +31 -0
  91. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -0
  92. package/features/pages/GetDeletedPageById/abstractions.d.ts +42 -0
  93. package/features/pages/GetDeletedPageById/abstractions.js +15 -0
  94. package/features/pages/GetDeletedPageById/abstractions.js.map +1 -0
  95. package/features/pages/GetDeletedPageById/feature.d.ts +4 -0
  96. package/features/pages/GetDeletedPageById/feature.js +12 -0
  97. package/features/pages/GetDeletedPageById/feature.js.map +1 -0
  98. package/features/pages/GetDeletedPageById/index.d.ts +1 -0
  99. package/features/pages/GetDeletedPageById/index.js +3 -0
  100. package/features/pages/GetDeletedPageById/index.js.map +1 -0
  101. package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
  102. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
  103. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  104. package/features/pages/GetPageById/abstractions.d.ts +3 -1
  105. package/features/pages/GetPageById/abstractions.js +1 -0
  106. package/features/pages/GetPageById/abstractions.js.map +1 -1
  107. package/features/pages/GetPageById/feature.d.ts +4 -1
  108. package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
  109. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
  110. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  111. package/features/pages/GetPageByPath/abstractions.d.ts +3 -1
  112. package/features/pages/GetPageByPath/abstractions.js +1 -0
  113. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  114. package/features/pages/GetPageByPath/feature.d.ts +4 -1
  115. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.d.ts +15 -0
  116. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +61 -0
  117. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -0
  118. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.d.ts +10 -0
  119. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +20 -0
  120. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -0
  121. package/features/pages/GetPageLanguagePaths/abstractions.d.ts +20 -0
  122. package/features/pages/GetPageLanguagePaths/abstractions.js +6 -0
  123. package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -0
  124. package/features/pages/GetPageLanguagePaths/feature.d.ts +4 -0
  125. package/features/pages/GetPageLanguagePaths/feature.js +12 -0
  126. package/features/pages/GetPageLanguagePaths/feature.js.map +1 -0
  127. package/features/pages/GetPageLanguagePaths/index.d.ts +1 -0
  128. package/features/pages/GetPageLanguagePaths/index.js +3 -0
  129. package/features/pages/GetPageLanguagePaths/index.js.map +1 -0
  130. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
  131. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
  132. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  133. package/features/pages/GetPageRevisions/abstractions.d.ts +3 -1
  134. package/features/pages/GetPageRevisions/abstractions.js +1 -0
  135. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  136. package/features/pages/GetPageRevisions/feature.d.ts +4 -1
  137. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
  138. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +49 -0
  139. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -0
  140. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +14 -0
  141. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +35 -0
  142. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -0
  143. package/features/pages/ListDeletedPages/abstractions.d.ts +56 -0
  144. package/features/pages/ListDeletedPages/abstractions.js +15 -0
  145. package/features/pages/ListDeletedPages/abstractions.js.map +1 -0
  146. package/features/pages/ListDeletedPages/feature.d.ts +4 -0
  147. package/features/pages/ListDeletedPages/feature.js +12 -0
  148. package/features/pages/ListDeletedPages/feature.js.map +1 -0
  149. package/features/pages/ListDeletedPages/index.d.ts +1 -0
  150. package/features/pages/ListDeletedPages/index.js +3 -0
  151. package/features/pages/ListDeletedPages/index.js.map +1 -0
  152. package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
  153. package/features/pages/ListPages/ListPagesRepository.js +14 -4
  154. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  155. package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
  156. package/features/pages/ListPages/ListPagesUseCase.js +24 -4
  157. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  158. package/features/pages/ListPages/abstractions.d.ts +3 -1
  159. package/features/pages/ListPages/abstractions.js +1 -0
  160. package/features/pages/ListPages/abstractions.js.map +1 -1
  161. package/features/pages/ListPages/feature.d.ts +4 -1
  162. package/features/pages/MovePage/MovePageUseCase.d.ts +4 -2
  163. package/features/pages/MovePage/MovePageUseCase.js +15 -3
  164. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  165. package/features/pages/MovePage/abstractions.d.ts +11 -7
  166. package/features/pages/MovePage/abstractions.js +5 -2
  167. package/features/pages/MovePage/abstractions.js.map +1 -1
  168. package/features/pages/MovePage/events.d.ts +3 -3
  169. package/features/pages/MovePage/events.js +4 -4
  170. package/features/pages/MovePage/events.js.map +1 -1
  171. package/features/pages/MovePage/feature.d.ts +4 -1
  172. package/features/pages/MovePage/index.d.ts +1 -1
  173. package/features/pages/MovePage/index.js +1 -1
  174. package/features/pages/MovePage/index.js.map +1 -1
  175. package/features/pages/PublishPage/PublishPageUseCase.d.ts +4 -2
  176. package/features/pages/PublishPage/PublishPageUseCase.js +15 -3
  177. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  178. package/features/pages/PublishPage/abstractions.d.ts +11 -7
  179. package/features/pages/PublishPage/abstractions.js +5 -2
  180. package/features/pages/PublishPage/abstractions.js.map +1 -1
  181. package/features/pages/PublishPage/events.d.ts +3 -3
  182. package/features/pages/PublishPage/events.js +4 -4
  183. package/features/pages/PublishPage/events.js.map +1 -1
  184. package/features/pages/PublishPage/feature.d.ts +4 -1
  185. package/features/pages/PublishPage/index.d.ts +1 -1
  186. package/features/pages/PublishPage/index.js +1 -1
  187. package/features/pages/PublishPage/index.js.map +1 -1
  188. package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
  189. package/features/pages/RestorePage/RestorePageRepository.js +30 -0
  190. package/features/pages/RestorePage/RestorePageRepository.js.map +1 -0
  191. package/features/pages/RestorePage/RestorePageUseCase.d.ts +16 -0
  192. package/features/pages/RestorePage/RestorePageUseCase.js +52 -0
  193. package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -0
  194. package/features/pages/RestorePage/abstractions.d.ts +59 -0
  195. package/features/pages/RestorePage/abstractions.js +30 -0
  196. package/features/pages/RestorePage/abstractions.js.map +1 -0
  197. package/features/pages/RestorePage/events.d.ts +10 -0
  198. package/features/pages/RestorePage/events.js +19 -0
  199. package/features/pages/RestorePage/events.js.map +1 -0
  200. package/features/pages/RestorePage/feature.d.ts +4 -0
  201. package/features/pages/RestorePage/feature.js +12 -0
  202. package/features/pages/RestorePage/feature.js.map +1 -0
  203. package/features/pages/RestorePage/index.d.ts +1 -0
  204. package/features/pages/RestorePage/index.js +3 -0
  205. package/features/pages/RestorePage/index.js.map +1 -0
  206. package/features/pages/TranslatePage/TranslatePageUseCase.d.ts +17 -0
  207. package/features/pages/TranslatePage/TranslatePageUseCase.js +74 -0
  208. package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -0
  209. package/features/pages/TranslatePage/abstractions.d.ts +29 -0
  210. package/features/pages/TranslatePage/abstractions.js +14 -0
  211. package/features/pages/TranslatePage/abstractions.js.map +1 -0
  212. package/features/pages/TranslatePage/feature.d.ts +4 -0
  213. package/features/pages/TranslatePage/feature.js +10 -0
  214. package/features/pages/TranslatePage/feature.js.map +1 -0
  215. package/features/pages/TranslatePage/index.d.ts +1 -0
  216. package/features/pages/TranslatePage/index.js +3 -0
  217. package/features/pages/TranslatePage/index.js.map +1 -0
  218. package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
  219. package/features/pages/TrashPage/TrashPageRepository.js +30 -0
  220. package/features/pages/TrashPage/TrashPageRepository.js.map +1 -0
  221. package/features/pages/TrashPage/TrashPageUseCase.d.ts +16 -0
  222. package/features/pages/TrashPage/TrashPageUseCase.js +52 -0
  223. package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -0
  224. package/features/pages/TrashPage/abstractions.d.ts +58 -0
  225. package/features/pages/TrashPage/abstractions.js +30 -0
  226. package/features/pages/TrashPage/abstractions.js.map +1 -0
  227. package/features/pages/TrashPage/events.d.ts +10 -0
  228. package/features/pages/TrashPage/events.js +19 -0
  229. package/features/pages/TrashPage/events.js.map +1 -0
  230. package/features/pages/TrashPage/feature.d.ts +4 -0
  231. package/features/pages/TrashPage/feature.js +12 -0
  232. package/features/pages/TrashPage/feature.js.map +1 -0
  233. package/features/pages/TrashPage/index.d.ts +1 -0
  234. package/features/pages/TrashPage/index.js +3 -0
  235. package/features/pages/TrashPage/index.js.map +1 -0
  236. package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +4 -2
  237. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +15 -3
  238. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  239. package/features/pages/UnpublishPage/abstractions.d.ts +11 -7
  240. package/features/pages/UnpublishPage/abstractions.js +5 -2
  241. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  242. package/features/pages/UnpublishPage/events.d.ts +3 -3
  243. package/features/pages/UnpublishPage/events.js +4 -4
  244. package/features/pages/UnpublishPage/events.js.map +1 -1
  245. package/features/pages/UnpublishPage/feature.d.ts +4 -1
  246. package/features/pages/UnpublishPage/index.d.ts +1 -1
  247. package/features/pages/UnpublishPage/index.js +1 -1
  248. package/features/pages/UnpublishPage/index.js.map +1 -1
  249. package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +4 -2
  250. package/features/pages/UpdatePage/UpdatePageUseCase.js +15 -3
  251. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  252. package/features/pages/UpdatePage/abstractions.d.ts +12 -9
  253. package/features/pages/UpdatePage/abstractions.js +5 -2
  254. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  255. package/features/pages/UpdatePage/events.d.ts +3 -3
  256. package/features/pages/UpdatePage/events.js +4 -4
  257. package/features/pages/UpdatePage/events.js.map +1 -1
  258. package/features/pages/UpdatePage/feature.d.ts +4 -1
  259. package/features/pages/UpdatePage/index.d.ts +1 -1
  260. package/features/pages/UpdatePage/index.js +1 -1
  261. package/features/pages/UpdatePage/index.js.map +1 -1
  262. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
  263. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +44 -0
  264. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
  265. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
  266. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +66 -0
  267. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
  268. package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
  269. package/features/pages/UpdatePageRevisionDescription/abstractions.js +29 -0
  270. package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
  271. package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
  272. package/features/pages/UpdatePageRevisionDescription/events.js +19 -0
  273. package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
  274. package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
  275. package/features/pages/UpdatePageRevisionDescription/feature.js +12 -0
  276. package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
  277. package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
  278. package/features/pages/UpdatePageRevisionDescription/index.js +3 -0
  279. package/features/pages/UpdatePageRevisionDescription/index.js.map +1 -0
  280. package/features/permissions/abstractions.d.ts +34 -0
  281. package/features/permissions/abstractions.js +5 -0
  282. package/features/permissions/abstractions.js.map +1 -0
  283. package/features/permissions/feature.d.ts +4 -0
  284. package/features/permissions/feature.js +6 -0
  285. package/features/permissions/feature.js.map +1 -0
  286. package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +4 -2
  287. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +11 -3
  288. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  289. package/features/redirects/CreateRedirect/abstractions.d.ts +11 -7
  290. package/features/redirects/CreateRedirect/abstractions.js +5 -2
  291. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  292. package/features/redirects/CreateRedirect/events.d.ts +3 -3
  293. package/features/redirects/CreateRedirect/events.js +4 -4
  294. package/features/redirects/CreateRedirect/events.js.map +1 -1
  295. package/features/redirects/CreateRedirect/feature.d.ts +4 -1
  296. package/features/redirects/CreateRedirect/index.d.ts +1 -1
  297. package/features/redirects/CreateRedirect/index.js +1 -1
  298. package/features/redirects/CreateRedirect/index.js.map +1 -1
  299. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +4 -2
  300. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +11 -4
  301. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  302. package/features/redirects/DeleteRedirect/abstractions.d.ts +11 -7
  303. package/features/redirects/DeleteRedirect/abstractions.js +5 -2
  304. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  305. package/features/redirects/DeleteRedirect/events.d.ts +3 -3
  306. package/features/redirects/DeleteRedirect/events.js +4 -4
  307. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  308. package/features/redirects/DeleteRedirect/feature.d.ts +4 -1
  309. package/features/redirects/DeleteRedirect/index.d.ts +1 -1
  310. package/features/redirects/DeleteRedirect/index.js +1 -1
  311. package/features/redirects/DeleteRedirect/index.js.map +1 -1
  312. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
  313. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
  314. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  315. package/features/redirects/GetActiveRedirects/abstractions.d.ts +3 -1
  316. package/features/redirects/GetActiveRedirects/abstractions.js +1 -0
  317. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  318. package/features/redirects/GetActiveRedirects/feature.d.ts +4 -1
  319. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
  320. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
  321. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  322. package/features/redirects/GetRedirectById/abstractions.d.ts +3 -1
  323. package/features/redirects/GetRedirectById/abstractions.js +1 -0
  324. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  325. package/features/redirects/GetRedirectById/feature.d.ts +4 -1
  326. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +3 -3
  327. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +2 -2
  328. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
  329. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +3 -3
  330. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +2 -2
  331. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
  332. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +3 -3
  333. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +2 -2
  334. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
  335. package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
  336. package/features/redirects/InvalidateRedirectsCache/abstractions.js +1 -0
  337. package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
  338. package/features/redirects/InvalidateRedirectsCache/feature.d.ts +4 -1
  339. package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
  340. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
  341. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  342. package/features/redirects/ListRedirects/abstractions.d.ts +4 -1
  343. package/features/redirects/ListRedirects/abstractions.js +1 -0
  344. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  345. package/features/redirects/ListRedirects/feature.d.ts +4 -1
  346. package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +4 -2
  347. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +15 -3
  348. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  349. package/features/redirects/MoveRedirect/abstractions.d.ts +11 -7
  350. package/features/redirects/MoveRedirect/abstractions.js +5 -2
  351. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  352. package/features/redirects/MoveRedirect/events.d.ts +3 -3
  353. package/features/redirects/MoveRedirect/events.js +4 -4
  354. package/features/redirects/MoveRedirect/events.js.map +1 -1
  355. package/features/redirects/MoveRedirect/feature.d.ts +4 -1
  356. package/features/redirects/MoveRedirect/index.d.ts +1 -1
  357. package/features/redirects/MoveRedirect/index.js +1 -1
  358. package/features/redirects/MoveRedirect/index.js.map +1 -1
  359. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +4 -2
  360. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +15 -3
  361. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  362. package/features/redirects/UpdateRedirect/abstractions.d.ts +11 -7
  363. package/features/redirects/UpdateRedirect/abstractions.js +5 -2
  364. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  365. package/features/redirects/UpdateRedirect/events.d.ts +3 -3
  366. package/features/redirects/UpdateRedirect/events.js +4 -4
  367. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  368. package/features/redirects/UpdateRedirect/feature.d.ts +4 -1
  369. package/features/redirects/UpdateRedirect/index.d.ts +1 -1
  370. package/features/redirects/UpdateRedirect/index.js +1 -1
  371. package/features/redirects/UpdateRedirect/index.js.map +1 -1
  372. package/features/tenantManager/TenantModelExtension.js +5 -5
  373. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  374. package/features/tenantManager/feature.d.ts +4 -1
  375. package/graphql/pages/pages.gql.js +96 -3
  376. package/graphql/pages/pages.gql.js.map +1 -1
  377. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  378. package/graphql/pages/pages.typeDefs.js +22 -1
  379. package/graphql/pages/pages.typeDefs.js.map +1 -1
  380. package/index.js +21 -6
  381. package/index.js.map +1 -1
  382. package/package.json +27 -25
  383. package/features/pages/PagePermissions/feature.d.ts +0 -1
  384. package/features/pages/PagePermissions/feature.js +0 -53
  385. package/features/pages/PagePermissions/feature.js.map +0 -1
  386. package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
  387. package/features/redirects/RedirectPermissions/feature.js +0 -45
  388. package/features/redirects/RedirectPermissions/feature.js.map +0 -1
@@ -1 +1,4 @@
1
- export declare const MoveRedirectFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const MoveRedirectFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- export { RedirectAfterMoveHandler, RedirectBeforeMoveHandler, MoveRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterMoveEventHandler, RedirectBeforeMoveEventHandler, MoveRedirectUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { RedirectAfterMoveHandler, RedirectBeforeMoveHandler, MoveRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterMoveEventHandler, RedirectBeforeMoveEventHandler, MoveRedirectUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RedirectAfterMoveHandler","RedirectBeforeMoveHandler","MoveRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterMoveHandler,\n RedirectBeforeMoveHandler,\n MoveRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["RedirectAfterMoveEventHandler","RedirectBeforeMoveEventHandler","MoveRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterMoveEventHandler,\n RedirectBeforeMoveEventHandler,\n MoveRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,6BAA6B,EAC7BC,8BAA8B,EAC9BC,mBAAmB","ignoreList":[]}
@@ -1,11 +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 { UpdateRedirectUseCase as UseCaseAbstraction, UpdateRedirectRepository } from "./abstractions.js";
3
3
  import { GetRedirectByIdUseCase } from "../../../features/redirects/GetRedirectById/index.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
4
5
  declare class UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
5
7
  private eventPublisher;
6
8
  private getRedirectById;
7
9
  private repository;
8
- constructor(eventPublisher: EventPublisherAbstraction.Interface, getRedirectById: GetRedirectByIdUseCase.Interface, repository: UpdateRedirectRepository.Interface);
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getRedirectById: GetRedirectByIdUseCase.Interface, repository: UpdateRedirectRepository.Interface);
9
11
  execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return;
10
12
  }
11
13
  export declare const UpdateRedirectUseCase: typeof UpdateRedirectUseCaseImpl & {
@@ -1,21 +1,33 @@
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 { UpdateRedirectUseCase as UseCaseAbstraction, UpdateRedirectRepository } from "./abstractions.js";
4
4
  import { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from "./events.js";
5
5
  import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
6
+ import { WbPermissions } from "../../permissions/abstractions.js";
7
+ import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
6
8
  class UpdateRedirectUseCaseImpl {
7
- constructor(eventPublisher, getRedirectById, repository) {
9
+ constructor(permissions, eventPublisher, getRedirectById, repository) {
10
+ this.permissions = permissions;
8
11
  this.eventPublisher = eventPublisher;
9
12
  this.getRedirectById = getRedirectById;
10
13
  this.repository = repository;
11
14
  }
12
15
  async execute(id, data) {
16
+ const hasPermission = await this.permissions.canEdit("redirect");
17
+ if (!hasPermission) {
18
+ return Result.fail(new RedirectNotAuthorizedError());
19
+ }
20
+
13
21
  // Get the original redirect for events
14
22
  const getResult = await this.getRedirectById.execute(id);
15
23
  if (getResult.isFail()) {
16
24
  return getResult;
17
25
  }
18
26
  const original = getResult.value;
27
+ const canEdit = await this.permissions.canEdit("redirect", original);
28
+ if (!canEdit) {
29
+ return Result.fail(new RedirectNotAuthorizedError());
30
+ }
19
31
 
20
32
  // Publish before update event
21
33
  const beforeEvent = new RedirectBeforeUpdateEvent({
@@ -48,7 +60,7 @@ class UpdateRedirectUseCaseImpl {
48
60
  }
49
61
  export const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({
50
62
  implementation: UpdateRedirectUseCaseImpl,
51
- dependencies: [EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
63
+ dependencies: [WbPermissions, EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
52
64
  });
53
65
 
54
66
  //# sourceMappingURL=UpdateRedirectUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","UpdateRedirectUseCaseImpl","constructor","eventPublisher","getRedirectById","repository","execute","id","data","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies"],"sources":["UpdateRedirectUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,sBAAsB;AAE/B,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA8C,EACxD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACL,eAAe,CAACE,OAAO,CAACC,EAAE,CAAC;IAExD,IAAIE,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;;IAEhC;IACA,MAAMC,WAAW,GAAG,IAAIf,yBAAyB,CAAC;MAC9Ca,QAAQ;MACRG,KAAK,EAAE;QAAEP,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACY,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIQ,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIlB,wBAAwB,CAAC;MAC5CY,QAAQ;MACRG,KAAK,EAAE;QAAEP,EAAE;QAAEC;MAAK,CAAC;MACnBU,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACT,cAAc,CAACY,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOxB,MAAM,CAAC0B,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMjB,qBAAqB,GAAGC,kBAAkB,CAACwB,oBAAoB,CAAC;EACzEC,cAAc,EAAEpB,yBAAyB;EACzCqB,YAAY,EAAE,CAAC5B,cAAc,EAAEM,sBAAsB,EAAEH,wBAAwB;AACnF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","WbPermissions","RedirectNotAuthorizedError","UpdateRedirectUseCaseImpl","constructor","permissions","eventPublisher","getRedirectById","repository","execute","id","data","hasPermission","canEdit","fail","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies"],"sources":["UpdateRedirectUseCase.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 UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA8C,EACxD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMa,SAAS,GAAG,MAAM,IAAI,CAACR,eAAe,CAACE,OAAO,CAACC,EAAE,CAAC;IAExD,IAAIK,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;IAEhC,MAAML,OAAO,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,OAAO,CAAC,UAAU,EAAEI,QAAQ,CAAC;IACpE,IAAI,CAACJ,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,yBAAyB,CAAC;MAC9CmB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIW,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,wBAAwB,CAAC;MAC5CkB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK,CAAC;MACnBa,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAACgC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,qBAAqB,GAAGC,kBAAkB,CAAC8B,oBAAoB,CAAC;EACzEC,cAAc,EAAExB,yBAAyB;EACzCyB,YAAY,EAAE,CAAC3B,aAAa,EAAEP,cAAc,EAAEM,sBAAsB,EAAEH,wBAAwB;AAClG,CAAC,CAAC","ignoreList":[]}
@@ -1,9 +1,9 @@
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 { WbRedirect } from "../../../domain/redirect/abstractions.js";
5
5
  import type { WbLocation } from "../../../domain/shared/abstractions.js";
6
- import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError } from "../../../domain/redirect/errors.js";
6
+ import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError, RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
7
7
  export interface IUpdateWbRedirectData {
8
8
  location?: WbLocation;
9
9
  redirectFrom?: string;
@@ -32,11 +32,13 @@ export interface IUpdateRedirectUseCase {
32
32
  execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;
33
33
  }
34
34
  export interface IUpdateRedirectUseCaseErrors {
35
+ notAuthorized: RedirectNotAuthorizedError;
35
36
  notFound: RedirectNotFoundError;
36
37
  validation: RedirectValidationError;
37
38
  persistence: RedirectPersistenceError;
38
39
  }
39
40
  type UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];
41
+ /** Update a URL redirect. */
40
42
  export declare const UpdateRedirectUseCase: import("@webiny/di").Abstraction<IUpdateRedirectUseCase>;
41
43
  export declare namespace UpdateRedirectUseCase {
42
44
  type Interface = IUpdateRedirectUseCase;
@@ -60,14 +62,16 @@ export interface RedirectAfterUpdatePayload {
60
62
  };
61
63
  redirect: WbRedirect;
62
64
  }
63
- export declare const RedirectBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
64
- export declare namespace RedirectBeforeUpdateHandler {
65
+ /** Hook into redirect lifecycle before a redirect is updated. */
66
+ export declare const RedirectBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
67
+ export declare namespace RedirectBeforeUpdateEventHandler {
65
68
  type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;
66
69
  type Event = DomainEvent<RedirectBeforeUpdatePayload>;
67
70
  type Redirect = WbRedirect;
68
71
  }
69
- export declare const RedirectAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
70
- export declare namespace RedirectAfterUpdateHandler {
72
+ /** Hook into redirect lifecycle after a redirect is updated. */
73
+ export declare const RedirectAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
74
+ export declare namespace RedirectAfterUpdateEventHandler {
71
75
  type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;
72
76
  type Event = DomainEvent<RedirectAfterUpdatePayload>;
73
77
  type Redirect = WbRedirect;
@@ -14,6 +14,7 @@ export const UpdateRedirectRepository = createAbstraction("Wb/UpdateRedirectRepo
14
14
  // Use Case Abstraction
15
15
  // ============================================================================
16
16
 
17
+ /** Update a URL redirect. */
17
18
  export const UpdateRedirectUseCase = createAbstraction("Wb/UpdateRedirectUseCase");
18
19
 
19
20
  // ============================================================================
@@ -24,7 +25,9 @@ export const UpdateRedirectUseCase = createAbstraction("Wb/UpdateRedirectUseCase
24
25
  // Event Handler Abstractions
25
26
  // ============================================================================
26
27
 
27
- export const RedirectBeforeUpdateHandler = createAbstraction("Wb/RedirectBeforeUpdateHandler");
28
- export const RedirectAfterUpdateHandler = createAbstraction("Wb/RedirectAfterUpdateHandler");
28
+ /** Hook into redirect lifecycle before a redirect is updated. */
29
+ export const RedirectBeforeUpdateEventHandler = createAbstraction("Wb/RedirectBeforeUpdateEventHandler");
30
+ /** Hook into redirect lifecycle after a redirect is updated. */
31
+ export const RedirectAfterUpdateEventHandler = createAbstraction("Wb/RedirectAfterUpdateEventHandler");
29
32
 
30
33
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const RedirectBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateHandler\");\n\nexport namespace RedirectBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\nexport const RedirectAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateHandler\");\n\nexport namespace RedirectAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAUA;AACA;AACA;;AAcA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAcA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAmBA;AACA;AACA;;AAEA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,gCAAgC,CAAC;AAQnC,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,+BAA+B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateEventHandler","RedirectAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\n/** Update a URL redirect. */\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into redirect lifecycle before a redirect is updated. */\nexport const RedirectBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateEventHandler\");\n\nexport namespace RedirectBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\n/** Hook into redirect lifecycle after a redirect is updated. */\nexport const RedirectAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateEventHandler\");\n\nexport namespace RedirectAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAYpE;AACA;AACA;;AAUA;AACA;AACA;;AAcA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAeA;AACA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAmBA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,gCAAgC,GAAGH,iBAAiB,CAE/D,qCAAqC,CAAC;AAQxC;AACA,OAAO,MAAMI,+BAA+B,GAAGJ,iBAAiB,CAE9D,oCAAoC,CAAC","ignoreList":[]}
@@ -1,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 { RedirectBeforeUpdatePayload, RedirectAfterUpdatePayload } from "./abstractions.js";
3
3
  export declare class RedirectBeforeUpdateEvent extends DomainEvent<RedirectBeforeUpdatePayload> {
4
4
  eventType: "redirect.beforeUpdate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
6
6
  }
7
7
  export declare class RedirectAfterUpdateEvent extends DomainEvent<RedirectAfterUpdatePayload> {
8
8
  eventType: "redirect.afterUpdate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { RedirectBeforeUpdateHandler, RedirectAfterUpdateHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { RedirectBeforeUpdateEventHandler, RedirectAfterUpdateEventHandler } from "./abstractions.js";
3
3
  // RedirectBeforeUpdate Event
4
4
  export class RedirectBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "redirect.beforeUpdate";
6
6
  getHandlerAbstraction() {
7
- return RedirectBeforeUpdateHandler;
7
+ return RedirectBeforeUpdateEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class RedirectBeforeUpdateEvent extends DomainEvent {
12
12
  export class RedirectAfterUpdateEvent extends DomainEvent {
13
13
  eventType = "redirect.afterUpdate";
14
14
  getHandlerAbstraction() {
15
- return RedirectAfterUpdateHandler;
15
+ return RedirectAfterUpdateEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler","RedirectBeforeUpdateEvent","eventType","getHandlerAbstraction","RedirectAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { RedirectBeforeUpdateHandler, RedirectAfterUpdateHandler } from \"./abstractions.js\";\nimport type { RedirectBeforeUpdatePayload, RedirectAfterUpdatePayload } from \"./abstractions.js\";\n\n// RedirectBeforeUpdate Event\nexport class RedirectBeforeUpdateEvent extends DomainEvent<RedirectBeforeUpdatePayload> {\n eventType = \"redirect.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectBeforeUpdateHandler;\n }\n}\n\n// RedirectAfterUpdate Event\nexport class RedirectAfterUpdateEvent extends DomainEvent<RedirectAfterUpdatePayload> {\n eventType = \"redirect.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,2BAA2B,EAAEC,0BAA0B;AAGhE;AACA,OAAO,MAAMC,yBAAyB,SAASH,WAAW,CAA8B;EACpFI,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,2BAA2B;EACtC;AACJ;;AAEA;AACA,OAAO,MAAMK,wBAAwB,SAASN,WAAW,CAA6B;EAClFI,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,0BAA0B;EACrC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","RedirectBeforeUpdateEventHandler","RedirectAfterUpdateEventHandler","RedirectBeforeUpdateEvent","eventType","getHandlerAbstraction","RedirectAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n RedirectBeforeUpdateEventHandler,\n RedirectAfterUpdateEventHandler\n} from \"./abstractions.js\";\nimport type { RedirectBeforeUpdatePayload, RedirectAfterUpdatePayload } from \"./abstractions.js\";\n\n// RedirectBeforeUpdate Event\nexport class RedirectBeforeUpdateEvent extends DomainEvent<RedirectBeforeUpdatePayload> {\n eventType = \"redirect.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectBeforeUpdateEventHandler;\n }\n}\n\n// RedirectAfterUpdate Event\nexport class RedirectAfterUpdateEvent extends DomainEvent<RedirectAfterUpdatePayload> {\n eventType = \"redirect.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SACIC,gCAAgC,EAChCC,+BAA+B;AAInC;AACA,OAAO,MAAMC,yBAAyB,SAASH,WAAW,CAA8B;EACpFI,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,gCAAgC;EAC3C;AACJ;;AAEA;AACA,OAAO,MAAMK,wBAAwB,SAASN,WAAW,CAA6B;EAClFI,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,+BAA+B;EAC1C;AACJ","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const UpdateRedirectFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const UpdateRedirectFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- export { RedirectAfterUpdateHandler, RedirectBeforeUpdateHandler, UpdateRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler, UpdateRedirectUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { RedirectAfterUpdateHandler, RedirectBeforeUpdateHandler, UpdateRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler, UpdateRedirectUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RedirectAfterUpdateHandler","RedirectBeforeUpdateHandler","UpdateRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterUpdateHandler,\n RedirectBeforeUpdateHandler,\n UpdateRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,0BAA0B,EAC1BC,2BAA2B,EAC3BC,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["RedirectAfterUpdateEventHandler","RedirectBeforeUpdateEventHandler","UpdateRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterUpdateEventHandler,\n RedirectBeforeUpdateEventHandler,\n UpdateRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,+BAA+B,EAC/BC,gCAAgC,EAChCC,qBAAqB","ignoreList":[]}
@@ -2,17 +2,17 @@ import { TenantModelExtension as ModelExtension } from "@webiny/tenant-manager/a
2
2
  class TenantModelExtension {
3
3
  execute(extension) {
4
4
  extension.fields(fields => ({
5
- websiteTheme: fields.object().label("Website Theme").helpText("Configure a Website Builder theme for this tenant.").renderer("object-accordion", {
5
+ websiteTheme: fields.object().label("Website Theme").description("Configure a Website Builder theme for this tenant.").renderer("objectAccordionSingle", {
6
6
  open: false
7
7
  }).fields(fields => ({
8
- websiteTitle: fields.text().label("Website Title").helpText("Enter a website title").renderer("text-input"),
9
- primaryColor: fields.text().label("Primary Color").helpText("Enter a color code (e.g., #000000)").renderer("text-input").defaultValue(""),
10
- additionalColors: fields.text().list().label("Additional Colors").helpText("Enter a color code (e.g., #000000)").defaultValue([]).renderer("text-inputs", {
8
+ websiteTitle: fields.text().label("Website Title").description("Enter a website title").renderer("textInput"),
9
+ primaryColor: fields.text().label("Primary Color").description("Enter a color code (e.g., #000000)").renderer("textInput").defaultValue(""),
10
+ additionalColors: fields.text().list().label("Additional Colors").description("Enter a color code (e.g., #000000)").defaultValue([]).renderer("textInputs", {
11
11
  multiValue: {
12
12
  addValueButtonLabel: "Add Color"
13
13
  }
14
14
  }),
15
- font: fields.text().label("Font").helpText("Select a font").renderer("radio-buttons").predefinedValues([{
15
+ font: fields.text().label("Font").description("Select a font").renderer("radioButtons").predefinedValues([{
16
16
  value: "InterVariable, sans-serif",
17
17
  label: "Inter"
18
18
  }, {
@@ -1 +1 @@
1
- {"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","helpText","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .helpText(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"object-accordion\", { open: false })\n .fields(fields => ({\n websiteTitle: fields\n .text()\n .label(\"Website Title\")\n .helpText(\"Enter a website title\")\n .renderer(\"text-input\"),\n primaryColor: fields\n .text()\n .label(\"Primary Color\")\n .helpText(\"Enter a color code (e.g., #000000)\")\n .renderer(\"text-input\")\n .defaultValue(\"\"),\n additionalColors: fields\n .text()\n .list()\n .label(\"Additional Colors\")\n .helpText(\"Enter a color code (e.g., #000000)\")\n .defaultValue([])\n .renderer(\"text-inputs\", {\n multiValue: {\n addValueButtonLabel: \"Add Color\"\n }\n }),\n font: fields\n .text()\n .label(\"Font\")\n .helpText(\"Select a font\")\n .renderer(\"radio-buttons\")\n .predefinedValues([\n {\n value: \"InterVariable, sans-serif\",\n label: \"Inter\"\n },\n {\n value: \"Menlo, Consolas, Monaco, monospace\",\n label: \"Menlo\"\n },\n {\n value: \"Roboto, sans-serif\",\n label: \"Roboto\"\n }\n ])\n }))\n .layout([[\"websiteTitle\"], [\"primaryColor\"], [\"additionalColors\"], [\"font\"]])\n }))\n .layout(layout => {\n layout.addRow([\"websiteTheme\"]);\n });\n }\n}\n\nexport default ModelExtension.createImplementation({\n implementation: TenantModelExtension,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,cAAc,QAAQ,2DAA2D;AAElH,MAAMD,oBAAoB,CAAqC;EAC3DE,OAAOA,CAACC,SAAmC,EAAE;IACzCA,SAAS,CACJC,MAAM,CAACA,MAAM,KAAK;MACfC,YAAY,EAAED,MAAM,CACfE,MAAM,CAAC,CAAC,CACRC,KAAK,CAAC,eAAe,CAAC,CACtBC,QAAQ,CAAC,oDAAoD,CAAC,CAC9DC,QAAQ,CAAC,kBAAkB,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC,CAC7CN,MAAM,CAACA,MAAM,KAAK;QACfO,YAAY,EAAEP,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,QAAQ,CAAC,uBAAuB,CAAC,CACjCC,QAAQ,CAAC,YAAY,CAAC;QAC3BI,YAAY,EAAET,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,QAAQ,CAAC,oCAAoC,CAAC,CAC9CC,QAAQ,CAAC,YAAY,CAAC,CACtBK,YAAY,CAAC,EAAE,CAAC;QACrBC,gBAAgB,EAAEX,MAAM,CACnBQ,IAAI,CAAC,CAAC,CACNI,IAAI,CAAC,CAAC,CACNT,KAAK,CAAC,mBAAmB,CAAC,CAC1BC,QAAQ,CAAC,oCAAoC,CAAC,CAC9CM,YAAY,CAAC,EAAE,CAAC,CAChBL,QAAQ,CAAC,aAAa,EAAE;UACrBQ,UAAU,EAAE;YACRC,mBAAmB,EAAE;UACzB;QACJ,CAAC,CAAC;QACNC,IAAI,EAAEf,MAAM,CACPQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,MAAM,CAAC,CACbC,QAAQ,CAAC,eAAe,CAAC,CACzBC,QAAQ,CAAC,eAAe,CAAC,CACzBW,gBAAgB,CAAC,CACd;UACIC,KAAK,EAAE,2BAA2B;UAClCd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oCAAoC;UAC3Cd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oBAAoB;UAC3Bd,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFe,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,CACFA,MAAM,CAACA,MAAM,IAAI;MACdA,MAAM,CAACC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC;EACV;AACJ;AAEA,eAAetB,cAAc,CAACuB,oBAAoB,CAAC;EAC/CC,cAAc,EAAEzB,oBAAoB;EACpC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","description","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .description(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"objectAccordionSingle\", { open: false })\n .fields(fields => ({\n websiteTitle: fields\n .text()\n .label(\"Website Title\")\n .description(\"Enter a website title\")\n .renderer(\"textInput\"),\n primaryColor: fields\n .text()\n .label(\"Primary Color\")\n .description(\"Enter a color code (e.g., #000000)\")\n .renderer(\"textInput\")\n .defaultValue(\"\"),\n additionalColors: fields\n .text()\n .list()\n .label(\"Additional Colors\")\n .description(\"Enter a color code (e.g., #000000)\")\n .defaultValue([])\n .renderer(\"textInputs\", {\n multiValue: {\n addValueButtonLabel: \"Add Color\"\n }\n }),\n font: fields\n .text()\n .label(\"Font\")\n .description(\"Select a font\")\n .renderer(\"radioButtons\")\n .predefinedValues([\n {\n value: \"InterVariable, sans-serif\",\n label: \"Inter\"\n },\n {\n value: \"Menlo, Consolas, Monaco, monospace\",\n label: \"Menlo\"\n },\n {\n value: \"Roboto, sans-serif\",\n label: \"Roboto\"\n }\n ])\n }))\n .layout([[\"websiteTitle\"], [\"primaryColor\"], [\"additionalColors\"], [\"font\"]])\n }))\n .layout(layout => {\n layout.addRow([\"websiteTheme\"]);\n });\n }\n}\n\nexport default ModelExtension.createImplementation({\n implementation: TenantModelExtension,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,cAAc,QAAQ,2DAA2D;AAElH,MAAMD,oBAAoB,CAAqC;EAC3DE,OAAOA,CAACC,SAAmC,EAAE;IACzCA,SAAS,CACJC,MAAM,CAACA,MAAM,KAAK;MACfC,YAAY,EAAED,MAAM,CACfE,MAAM,CAAC,CAAC,CACRC,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oDAAoD,CAAC,CACjEC,QAAQ,CAAC,uBAAuB,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC,CAClDN,MAAM,CAACA,MAAM,KAAK;QACfO,YAAY,EAAEP,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,QAAQ,CAAC,WAAW,CAAC;QAC1BI,YAAY,EAAET,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,QAAQ,CAAC,WAAW,CAAC,CACrBK,YAAY,CAAC,EAAE,CAAC;QACrBC,gBAAgB,EAAEX,MAAM,CACnBQ,IAAI,CAAC,CAAC,CACNI,IAAI,CAAC,CAAC,CACNT,KAAK,CAAC,mBAAmB,CAAC,CAC1BC,WAAW,CAAC,oCAAoC,CAAC,CACjDM,YAAY,CAAC,EAAE,CAAC,CAChBL,QAAQ,CAAC,YAAY,EAAE;UACpBQ,UAAU,EAAE;YACRC,mBAAmB,EAAE;UACzB;QACJ,CAAC,CAAC;QACNC,IAAI,EAAEf,MAAM,CACPQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,MAAM,CAAC,CACbC,WAAW,CAAC,eAAe,CAAC,CAC5BC,QAAQ,CAAC,cAAc,CAAC,CACxBW,gBAAgB,CAAC,CACd;UACIC,KAAK,EAAE,2BAA2B;UAClCd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oCAAoC;UAC3Cd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oBAAoB;UAC3Bd,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFe,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,CACFA,MAAM,CAACA,MAAM,IAAI;MACdA,MAAM,CAACC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC;EACV;AACJ;AAEA,eAAetB,cAAc,CAACuB,oBAAoB,CAAC;EAC/CC,cAAc,EAAEzB,oBAAoB;EACpC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const TenantModelExtensionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const TenantModelExtensionFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -15,8 +15,14 @@ import { PublishPageUseCase } from "../../features/pages/PublishPage/index.js";
15
15
  import { UnpublishPageUseCase } from "../../features/pages/UnpublishPage/index.js";
16
16
  import { MovePageUseCase } from "../../features/pages/MovePage/index.js";
17
17
  import { DuplicatePageUseCase } from "../../features/pages/DuplicatePage/index.js";
18
+ import { TranslatePageUseCase } from "../../features/pages/TranslatePage/index.js";
18
19
  import { CreatePageRevisionFromUseCase } from "../../features/pages/CreatePageRevisionFrom/index.js";
19
20
  import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
21
+ import { ListDeletedPagesUseCase } from "../../features/pages/ListDeletedPages/index.js";
22
+ import { TrashPageUseCase } from "../../features/pages/TrashPage/index.js";
23
+ import { RestorePageUseCase } from "../../features/pages/RestorePage/index.js";
24
+ import { GetPageLanguagePathsUseCase } from "../../features/pages/GetPageLanguagePaths/index.js";
25
+ import { UpdatePageRevisionDescriptionUseCase } from "../../features/pages/UpdatePageRevisionDescription/index.js";
20
26
  export const createPagesSchema = () => {
21
27
  const pageGraphQL = new GraphQLSchemaPlugin({
22
28
  typeDefs: pagesTypeDefs,
@@ -41,6 +47,7 @@ export const createPagesSchema = () => {
41
47
  const page = result.value;
42
48
  return {
43
49
  id: page.id,
50
+ entryId: page.entryId,
44
51
  properties: page.properties,
45
52
  bindings: page.bindings,
46
53
  elements: page.elements
@@ -79,7 +86,10 @@ export const createPagesSchema = () => {
79
86
  title: page.properties.title,
80
87
  status: page.status,
81
88
  locked: page.locked,
82
- savedOn: page.savedOn
89
+ savedOn: page.savedOn,
90
+ createdOn: page.createdOn,
91
+ createdBy: page.createdBy,
92
+ revisionDescription: page.revisionDescription
83
93
  };
84
94
  });
85
95
  });
@@ -101,6 +111,23 @@ export const createPagesSchema = () => {
101
111
  return new ErrorResponse(e);
102
112
  }
103
113
  },
114
+ listDeletedPages: async (_, args, context) => {
115
+ try {
116
+ ensureAuthentication(context);
117
+ const listPages = context.container.resolve(ListDeletedPagesUseCase);
118
+ const result = await listPages.execute(args);
119
+ if (result.isFail()) {
120
+ throw result.error;
121
+ }
122
+ const {
123
+ pages,
124
+ meta
125
+ } = result.value;
126
+ return new ListResponse(pages, meta);
127
+ } catch (e) {
128
+ return new ErrorResponse(e);
129
+ }
130
+ },
104
131
  getSettings: async (_, __, context) => {
105
132
  ensureAuthentication(context);
106
133
  const keyValueStore = context.container.resolve(KeyValueStore);
@@ -155,6 +182,20 @@ export const createPagesSchema = () => {
155
182
  return result.value;
156
183
  });
157
184
  },
185
+ updatePageRevisionDescription: async (_, {
186
+ id,
187
+ revisionDescription
188
+ }, context) => {
189
+ return resolve(async () => {
190
+ ensureAuthentication(context);
191
+ const updatePageRevisionDescription = context.container.resolve(UpdatePageRevisionDescriptionUseCase);
192
+ const result = await updatePageRevisionDescription.execute(id, revisionDescription);
193
+ if (result.isFail()) {
194
+ throw new Error(result.error.message);
195
+ }
196
+ return result.value;
197
+ });
198
+ },
158
199
  duplicatePage: async (_, {
159
200
  id
160
201
  }, context) => {
@@ -170,6 +211,25 @@ export const createPagesSchema = () => {
170
211
  return result.value;
171
212
  });
172
213
  },
214
+ translatePage: async (_, {
215
+ pageId,
216
+ languageCode,
217
+ folderId
218
+ }, context) => {
219
+ return resolve(async () => {
220
+ ensureAuthentication(context);
221
+ const translatePage = context.container.resolve(TranslatePageUseCase);
222
+ const result = await translatePage.execute({
223
+ pageId,
224
+ languageCode,
225
+ folderId
226
+ });
227
+ if (result.isFail()) {
228
+ throw new Error(result.error.message);
229
+ }
230
+ return result.value;
231
+ });
232
+ },
173
233
  publishPage: async (_, {
174
234
  id
175
235
  }, context) => {
@@ -233,11 +293,17 @@ export const createPagesSchema = () => {
233
293
  });
234
294
  },
235
295
  deletePage: async (_, {
236
- id
296
+ id,
297
+ permanently
237
298
  }, context) => {
238
299
  return resolve(async () => {
239
300
  ensureAuthentication(context);
240
- const deletePage = context.container.resolve(DeletePageUseCase);
301
+ const deletePage = context.container.resolve(
302
+ /**
303
+ * If "permanent" flag is set, we want to permanently delete the page. Otherwise, we just want to trash it.
304
+ * This allows us to have a two-step deletion process, where pages are first moved to trash and can be restored from there, before being permanently deleted.
305
+ */
306
+ permanently ? DeletePageUseCase : TrashPageUseCase);
241
307
  const result = await deletePage.execute({
242
308
  id
243
309
  });
@@ -247,6 +313,21 @@ export const createPagesSchema = () => {
247
313
  return true;
248
314
  });
249
315
  },
316
+ restorePage: async (_, {
317
+ id
318
+ }, context) => {
319
+ return resolve(async () => {
320
+ ensureAuthentication(context);
321
+ const restorePage = context.container.resolve(RestorePageUseCase);
322
+ const result = await restorePage.execute({
323
+ id
324
+ });
325
+ if (result.isFail()) {
326
+ throw new Error(result.error.message);
327
+ }
328
+ return result.value;
329
+ });
330
+ },
250
331
  // TODO: move these settings updates into dedicated use cases
251
332
  updateSettings: async (_, args, context) => {
252
333
  return resolve(async () => {
@@ -268,6 +349,18 @@ export const createPagesSchema = () => {
268
349
  return true;
269
350
  });
270
351
  }
352
+ },
353
+ WbPage: {
354
+ languagePaths: async (page, _, context) => {
355
+ const properties = page.properties ?? {};
356
+ const rootEntryId = properties.sourcePage ?? page.entryId;
357
+ if (!rootEntryId) {
358
+ return {};
359
+ }
360
+ const getLanguagePaths = context.container.resolve(GetPageLanguagePathsUseCase);
361
+ const result = await getLanguagePaths.execute(rootEntryId);
362
+ return result.isFail() ? {} : result.value;
363
+ }
271
364
  }
272
365
  }
273
366
  });