@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
@@ -0,0 +1,31 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetDeletedPageByIdUseCase as UseCaseAbstraction, GetDeletedPageByIdRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
+ class GetDeletedPageByIdUseCaseImpl {
6
+ constructor(permissions, repository) {
7
+ this.permissions = permissions;
8
+ this.repository = repository;
9
+ }
10
+ async execute(id) {
11
+ const hasPermission = await this.permissions.canRead("page");
12
+ if (!hasPermission) {
13
+ return Result.fail(new PageNotAuthorizedError());
14
+ }
15
+ const result = await this.repository.execute(id);
16
+ if (result.isFail()) {
17
+ return result;
18
+ }
19
+ const canAccess = await this.permissions.canAccess("page", result.value);
20
+ if (!canAccess) {
21
+ return Result.fail(new PageNotAuthorizedError());
22
+ }
23
+ return result;
24
+ }
25
+ }
26
+ export const GetDeletedPageByIdUseCase = UseCaseAbstraction.createImplementation({
27
+ implementation: GetDeletedPageByIdUseCaseImpl,
28
+ dependencies: [WbPermissions, GetDeletedPageByIdRepository]
29
+ });
30
+
31
+ //# sourceMappingURL=GetDeletedPageByIdUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","GetDeletedPageByIdUseCase","UseCaseAbstraction","GetDeletedPageByIdRepository","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCaseImpl","constructor","permissions","repository","execute","id","hasPermission","canRead","fail","result","isFail","canAccess","value","createImplementation","implementation","dependencies"],"sources":["GetDeletedPageByIdUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetDeletedPageByIdUseCase as UseCaseAbstraction,\n GetDeletedPageByIdRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetDeletedPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetDeletedPageByIdRepository.Interface\n ) {}\n\n async execute(id: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(id);\n\n if (result.isFail()) {\n return result;\n }\n\n const canAccess = await this.permissions.canAccess(\"page\", result.value);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetDeletedPageByIdUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetDeletedPageByIdUseCaseImpl,\n dependencies: [WbPermissions, GetDeletedPageByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAEhC,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CACCC,WAAoC,EACpCC,UAAkD,EAC5D;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAkD,GAAlDA,UAAkD;EAC3D;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAA6B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;IAEhD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACT,WAAW,CAACS,SAAS,CAAC,MAAM,EAAEF,MAAM,CAACG,KAAK,CAAC;IACxE,IAAI,CAACD,SAAS,EAAE;MACZ,OAAOjB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,yBAAyB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EAC7EC,cAAc,EAAEd,6BAA6B;EAC7Ce,YAAY,EAAE,CAACjB,aAAa,EAAED,4BAA4B;AAC9D,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { WbPage } from "../../../domain/page/abstractions.js";
3
+ import type { PageNotAuthorizedError, PageNotFoundError, PageNotFoundTrashedError, PagePersistenceError } from "../../../domain/page/errors.js";
4
+ /**
5
+ * GetDeletedPageById repository interface
6
+ */
7
+ export interface IGetDeletedPageByIdRepository {
8
+ execute(id: string): Promise<Result<WbPage, RepositoryError>>;
9
+ }
10
+ export interface IGetDeletedPageByIdRepositoryErrors {
11
+ notFound: PageNotFoundError;
12
+ trashedNotFound: PageNotFoundTrashedError;
13
+ persistence: PagePersistenceError;
14
+ }
15
+ type RepositoryError = IGetDeletedPageByIdRepositoryErrors[keyof IGetDeletedPageByIdRepositoryErrors];
16
+ export declare const GetDeletedPageByIdRepository: import("@webiny/di").Abstraction<IGetDeletedPageByIdRepository>;
17
+ export declare namespace GetDeletedPageByIdRepository {
18
+ type Interface = IGetDeletedPageByIdRepository;
19
+ type Error = RepositoryError;
20
+ type Return = Promise<Result<WbPage, RepositoryError>>;
21
+ }
22
+ /**
23
+ * GetDeletedPageById use case interface
24
+ */
25
+ export interface IGetDeletedPageByIdUseCase {
26
+ execute(id: string): Promise<Result<WbPage, UseCaseError>>;
27
+ }
28
+ export interface IGetDeletedPageByIdUseCaseErrors {
29
+ notAuthorized: PageNotAuthorizedError;
30
+ notFound: PageNotFoundError;
31
+ trashedNotFound: PageNotFoundTrashedError;
32
+ persistence: PagePersistenceError;
33
+ }
34
+ type UseCaseError = IGetDeletedPageByIdUseCaseErrors[keyof IGetDeletedPageByIdUseCaseErrors];
35
+ export declare const GetDeletedPageByIdUseCase: import("@webiny/di").Abstraction<IGetDeletedPageByIdUseCase>;
36
+ export declare namespace GetDeletedPageByIdUseCase {
37
+ type Interface = IGetDeletedPageByIdUseCase;
38
+ type Return = Promise<Result<WbPage, UseCaseError>>;
39
+ type Error = UseCaseError;
40
+ type Page = WbPage;
41
+ }
42
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * GetDeletedPageById repository interface
5
+ */
6
+
7
+ export const GetDeletedPageByIdRepository = createAbstraction("Wb/GetDeletedPageByIdRepository");
8
+
9
+ /**
10
+ * GetDeletedPageById use case interface
11
+ */
12
+
13
+ export const GetDeletedPageByIdUseCase = createAbstraction("Wb/GetDeletedPageByIdUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetDeletedPageByIdRepository","GetDeletedPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotAuthorizedError,\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetDeletedPageById repository interface\n */\nexport interface IGetDeletedPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetDeletedPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n IGetDeletedPageByIdRepositoryErrors[keyof IGetDeletedPageByIdRepositoryErrors];\n\nexport const GetDeletedPageByIdRepository = createAbstraction<IGetDeletedPageByIdRepository>(\n \"Wb/GetDeletedPageByIdRepository\"\n);\n\nexport namespace GetDeletedPageByIdRepository {\n export type Interface = IGetDeletedPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetDeletedPageById use case interface\n */\nexport interface IGetDeletedPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetDeletedPageByIdUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetDeletedPageByIdUseCaseErrors[keyof IGetDeletedPageByIdUseCaseErrors];\n\nexport const GetDeletedPageByIdUseCase = createAbstraction<IGetDeletedPageByIdUseCase>(\n \"Wb/GetDeletedPageByIdUseCase\"\n);\n\nexport namespace GetDeletedPageByIdUseCase {\n export type Interface = IGetDeletedPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAcA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,iCACJ,CAAC;;AAQD;AACA;AACA;;AAcA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,8BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const GetDeletedPageByIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { GetDeletedPageByIdUseCase } from "./GetDeletedPageByIdUseCase.js";
3
+ import { GetDeletedPageByIdRepository } from "./GetDeletedPageByIdRepository.js";
4
+ export const GetDeletedPageByIdFeature = createFeature({
5
+ name: "WebsiteBuilder/GetDeletedPageById",
6
+ register(container) {
7
+ container.register(GetDeletedPageByIdRepository).inSingletonScope();
8
+ container.register(GetDeletedPageByIdUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","GetDeletedPageByIdUseCase","GetDeletedPageByIdRepository","GetDeletedPageByIdFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetDeletedPageByIdUseCase } from \"./GetDeletedPageByIdUseCase.js\";\nimport { GetDeletedPageByIdRepository } from \"./GetDeletedPageByIdRepository.js\";\n\nexport const GetDeletedPageByIdFeature = createFeature({\n name: \"WebsiteBuilder/GetDeletedPageById\",\n register(container) {\n container.register(GetDeletedPageByIdRepository).inSingletonScope();\n container.register(GetDeletedPageByIdUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAClC,SAASC,4BAA4B;AAErC,OAAO,MAAMC,yBAAyB,GAAGH,aAAa,CAAC;EACnDI,IAAI,EAAE,mCAAmC;EACzCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,4BAA4B,CAAC,CAACK,gBAAgB,CAAC,CAAC;IACnED,SAAS,CAACD,QAAQ,CAACJ,yBAAyB,CAAC;EACjD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,3 @@
1
+ export * from "./abstractions.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import { GetPageByIdUseCase as UseCaseAbstraction, GetPageByIdRepository } from "./abstractions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
2
3
  declare class GetPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private permissions;
3
5
  private repository;
4
- constructor(repository: GetPageByIdRepository.Interface);
6
+ constructor(permissions: WbPermissions.Interface, repository: GetPageByIdRepository.Interface);
5
7
  execute(id: string): UseCaseAbstraction.Return;
6
8
  }
7
9
  export declare const GetPageByIdUseCase: typeof GetPageByIdUseCaseImpl & {
@@ -1,15 +1,31 @@
1
+ import { Result } from "@webiny/feature/api";
1
2
  import { GetPageByIdUseCase as UseCaseAbstraction, GetPageByIdRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
2
5
  class GetPageByIdUseCaseImpl {
3
- constructor(repository) {
6
+ constructor(permissions, repository) {
7
+ this.permissions = permissions;
4
8
  this.repository = repository;
5
9
  }
6
10
  async execute(id) {
7
- return this.repository.execute(id);
11
+ const hasPermission = await this.permissions.canRead("page");
12
+ if (!hasPermission) {
13
+ return Result.fail(new PageNotAuthorizedError());
14
+ }
15
+ const result = await this.repository.execute(id);
16
+ if (result.isFail()) {
17
+ return result;
18
+ }
19
+ const canAccess = await this.permissions.canAccess("page", result.value);
20
+ if (!canAccess) {
21
+ return Result.fail(new PageNotAuthorizedError());
22
+ }
23
+ return result;
8
24
  }
9
25
  }
10
26
  export const GetPageByIdUseCase = UseCaseAbstraction.createImplementation({
11
27
  implementation: GetPageByIdUseCaseImpl,
12
- dependencies: [GetPageByIdRepository]
28
+ dependencies: [WbPermissions, GetPageByIdRepository]
13
29
  });
14
30
 
15
31
  //# sourceMappingURL=GetPageByIdUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetPageByIdUseCase","UseCaseAbstraction","GetPageByIdRepository","GetPageByIdUseCaseImpl","constructor","repository","execute","id","createImplementation","implementation","dependencies"],"sources":["GetPageByIdUseCase.ts"],"sourcesContent":["import { GetPageByIdUseCase as UseCaseAbstraction, GetPageByIdRepository } from \"./abstractions.js\";\n\nclass GetPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetPageByIdRepository.Interface) {}\n\n async execute(id: string): UseCaseAbstraction.Return {\n return this.repository.execute(id);\n }\n}\n\nexport const GetPageByIdUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageByIdUseCaseImpl,\n dependencies: [GetPageByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AAExE,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,UAA2C,EAAE;IAAA,KAA7CA,UAA2C,GAA3CA,UAA2C;EAAG;EAElE,MAAMC,OAAOA,CAACC,EAAU,EAA6B;IACjD,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;EACtC;AACJ;AAEA,OAAO,MAAMP,kBAAkB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACtEC,cAAc,EAAEN,sBAAsB;EACtCO,YAAY,EAAE,CAACR,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","GetPageByIdUseCase","UseCaseAbstraction","GetPageByIdRepository","WbPermissions","PageNotAuthorizedError","GetPageByIdUseCaseImpl","constructor","permissions","repository","execute","id","hasPermission","canRead","fail","result","isFail","canAccess","value","createImplementation","implementation","dependencies"],"sources":["GetPageByIdUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetPageByIdUseCase as UseCaseAbstraction, GetPageByIdRepository } from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetPageByIdRepository.Interface\n ) {}\n\n async execute(id: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(id);\n\n if (result.isFail()) {\n return result;\n }\n\n const canAccess = await this.permissions.canAccess(\"page\", result.value);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetPageByIdUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageByIdUseCaseImpl,\n dependencies: [WbPermissions, GetPageByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AACxE,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,UAA2C,EACrD;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAA6B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;IAEhD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACT,WAAW,CAACS,SAAS,CAAC,MAAM,EAAEF,MAAM,CAACG,KAAK,CAAC;IACxE,IAAI,CAACD,SAAS,EAAE;MACZ,OAAOjB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,kBAAkB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EACtEC,cAAc,EAAEd,sBAAsB;EACtCe,YAAY,EAAE,CAACjB,aAAa,EAAED,qBAAqB;AACvD,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
2
  import type { WbPage } from "../../../domain/page/abstractions.js";
3
- import type { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
3
+ import type { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
4
4
  /**
5
5
  * GetPageById repository interface
6
6
  */
@@ -25,10 +25,12 @@ export interface IGetPageByIdUseCase {
25
25
  execute(id: string): Promise<Result<WbPage, UseCaseError>>;
26
26
  }
27
27
  export interface IGetPageByIdUseCaseErrors {
28
+ notAuthorized: PageNotAuthorizedError;
28
29
  notFound: PageNotFoundError;
29
30
  persistence: PagePersistenceError;
30
31
  }
31
32
  type UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];
33
+ /** Retrieve a page by ID. */
32
34
  export declare const GetPageByIdUseCase: import("@webiny/di").Abstraction<IGetPageByIdUseCase>;
33
35
  export declare namespace GetPageByIdUseCase {
34
36
  type Interface = IGetPageByIdUseCase;
@@ -10,6 +10,7 @@ export const GetPageByIdRepository = createAbstraction("Wb/GetPageByIdRepository
10
10
  * GetPageById use case interface
11
11
  */
12
12
 
13
+ /** Retrieve a page by ID. */
13
14
  export const GetPageByIdUseCase = createAbstraction("Wb/GetPageByIdUseCase");
14
15
 
15
16
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetPageByIdRepository","GetPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageById repository interface\n */\nexport interface IGetPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByIdRepositoryErrors[keyof IGetPageByIdRepositoryErrors];\n\nexport const GetPageByIdRepository = createAbstraction<IGetPageByIdRepository>(\n \"Wb/GetPageByIdRepository\"\n);\n\nexport namespace GetPageByIdRepository {\n export type Interface = IGetPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageById use case interface\n */\nexport interface IGetPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByIdUseCaseErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];\n\nexport const GetPageByIdUseCase = createAbstraction<IGetPageByIdUseCase>(\"Wb/GetPageByIdUseCase\");\n\nexport namespace GetPageByIdUseCase {\n export type Interface = IGetPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAYA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AAQD;AACA;AACA;;AAYA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetPageByIdRepository","GetPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageById repository interface\n */\nexport interface IGetPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByIdRepositoryErrors[keyof IGetPageByIdRepositoryErrors];\n\nexport const GetPageByIdRepository = createAbstraction<IGetPageByIdRepository>(\n \"Wb/GetPageByIdRepository\"\n);\n\nexport namespace GetPageByIdRepository {\n export type Interface = IGetPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageById use case interface\n */\nexport interface IGetPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByIdUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];\n\n/** Retrieve a page by ID. */\nexport const GetPageByIdUseCase = createAbstraction<IGetPageByIdUseCase>(\"Wb/GetPageByIdUseCase\");\n\nexport namespace GetPageByIdUseCase {\n export type Interface = IGetPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AAQD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const GetPageByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetPageByIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,7 +1,9 @@
1
1
  import { GetPageByPathUseCase as UseCaseAbstraction, GetPageByPathRepository } from "./abstractions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
2
3
  declare class GetPageByPathUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private permissions;
3
5
  private repository;
4
- constructor(repository: GetPageByPathRepository.Interface);
6
+ constructor(permissions: WbPermissions.Interface, repository: GetPageByPathRepository.Interface);
5
7
  execute(path: string): UseCaseAbstraction.Return;
6
8
  }
7
9
  export declare const GetPageByPathUseCase: typeof GetPageByPathUseCaseImpl & {
@@ -1,15 +1,31 @@
1
+ import { Result } from "@webiny/feature/api";
1
2
  import { GetPageByPathUseCase as UseCaseAbstraction, GetPageByPathRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
2
5
  class GetPageByPathUseCaseImpl {
3
- constructor(repository) {
6
+ constructor(permissions, repository) {
7
+ this.permissions = permissions;
4
8
  this.repository = repository;
5
9
  }
6
10
  async execute(path) {
7
- return this.repository.execute(path);
11
+ const hasPermission = await this.permissions.canRead("page");
12
+ if (!hasPermission) {
13
+ return Result.fail(new PageNotAuthorizedError());
14
+ }
15
+ const result = await this.repository.execute(path);
16
+ if (result.isFail()) {
17
+ return result;
18
+ }
19
+ const canAccess = await this.permissions.canAccess("page", result.value);
20
+ if (!canAccess) {
21
+ return Result.fail(new PageNotAuthorizedError());
22
+ }
23
+ return result;
8
24
  }
9
25
  }
10
26
  export const GetPageByPathUseCase = UseCaseAbstraction.createImplementation({
11
27
  implementation: GetPageByPathUseCaseImpl,
12
- dependencies: [GetPageByPathRepository]
28
+ dependencies: [WbPermissions, GetPageByPathRepository]
13
29
  });
14
30
 
15
31
  //# sourceMappingURL=GetPageByPathUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetPageByPathUseCase","UseCaseAbstraction","GetPageByPathRepository","GetPageByPathUseCaseImpl","constructor","repository","execute","path","createImplementation","implementation","dependencies"],"sources":["GetPageByPathUseCase.ts"],"sourcesContent":["import {\n GetPageByPathUseCase as UseCaseAbstraction,\n GetPageByPathRepository\n} from \"./abstractions.js\";\n\nclass GetPageByPathUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetPageByPathRepository.Interface) {}\n\n async execute(path: string): UseCaseAbstraction.Return {\n return this.repository.execute(path);\n }\n}\n\nexport const GetPageByPathUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageByPathUseCaseImpl,\n dependencies: [GetPageByPathRepository]\n});\n"],"mappings":"AAAA,SACIA,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAG3B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CAASC,UAA6C,EAAE;IAAA,KAA/CA,UAA6C,GAA7CA,UAA6C;EAAG;EAEpE,MAAMC,OAAOA,CAACC,IAAY,EAA6B;IACnD,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;EACxC;AACJ;AAEA,OAAO,MAAMP,oBAAoB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACxEC,cAAc,EAAEN,wBAAwB;EACxCO,YAAY,EAAE,CAACR,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","GetPageByPathUseCase","UseCaseAbstraction","GetPageByPathRepository","WbPermissions","PageNotAuthorizedError","GetPageByPathUseCaseImpl","constructor","permissions","repository","execute","path","hasPermission","canRead","fail","result","isFail","canAccess","value","createImplementation","implementation","dependencies"],"sources":["GetPageByPathUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetPageByPathUseCase as UseCaseAbstraction,\n GetPageByPathRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetPageByPathUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetPageByPathRepository.Interface\n ) {}\n\n async execute(path: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(path);\n\n if (result.isFail()) {\n return result;\n }\n\n const canAccess = await this.permissions.canAccess(\"page\", result.value);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetPageByPathUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageByPathUseCaseImpl,\n dependencies: [WbPermissions, GetPageByPathRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAE3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,WAAoC,EACpCC,UAA6C,EACvD;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAA6C,GAA7CA,UAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,IAAY,EAA6B;IACnD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACT,WAAW,CAACS,SAAS,CAAC,MAAM,EAAEF,MAAM,CAACG,KAAK,CAAC;IACxE,IAAI,CAACD,SAAS,EAAE;MACZ,OAAOjB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,oBAAoB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EACxEC,cAAc,EAAEd,wBAAwB;EACxCe,YAAY,EAAE,CAACjB,aAAa,EAAED,uBAAuB;AACzD,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
2
  import type { WbPage } from "../../../domain/page/abstractions.js";
3
- import type { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
3
+ import type { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
4
4
  /**
5
5
  * GetPageByPath repository interface
6
6
  */
@@ -25,10 +25,12 @@ export interface IGetPageByPathUseCase {
25
25
  execute(path: string): Promise<Result<WbPage, UseCaseError>>;
26
26
  }
27
27
  export interface IGetPageByPathUseCaseErrors {
28
+ notAuthorized: PageNotAuthorizedError;
28
29
  notFound: PageNotFoundError;
29
30
  persistence: PagePersistenceError;
30
31
  }
31
32
  type UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];
33
+ /** Retrieve a page by its URL path. */
32
34
  export declare const GetPageByPathUseCase: import("@webiny/di").Abstraction<IGetPageByPathUseCase>;
33
35
  export declare namespace GetPageByPathUseCase {
34
36
  type Interface = IGetPageByPathUseCase;
@@ -10,6 +10,7 @@ export const GetPageByPathRepository = createAbstraction("Wb/GetPageByPathReposi
10
10
  * GetPageByPath use case interface
11
11
  */
12
12
 
13
+ /** Retrieve a page by its URL path. */
13
14
  export const GetPageByPathUseCase = createAbstraction("Wb/GetPageByPathUseCase");
14
15
 
15
16
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetPageByPathRepository","GetPageByPathUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageByPath repository interface\n */\nexport interface IGetPageByPathRepository {\n execute(path: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByPathRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByPathRepositoryErrors[keyof IGetPageByPathRepositoryErrors];\n\nexport const GetPageByPathRepository = createAbstraction<IGetPageByPathRepository>(\n \"Wb/GetPageByPathRepository\"\n);\n\nexport namespace GetPageByPathRepository {\n export type Interface = IGetPageByPathRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageByPath use case interface\n */\nexport interface IGetPageByPathUseCase {\n execute(path: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByPathUseCaseErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];\n\nexport const GetPageByPathUseCase =\n createAbstraction<IGetPageByPathUseCase>(\"Wb/GetPageByPathUseCase\");\n\nexport namespace GetPageByPathUseCase {\n export type Interface = IGetPageByPathUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAQD;AACA;AACA;;AAYA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetPageByPathRepository","GetPageByPathUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageByPath repository interface\n */\nexport interface IGetPageByPathRepository {\n execute(path: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByPathRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByPathRepositoryErrors[keyof IGetPageByPathRepositoryErrors];\n\nexport const GetPageByPathRepository = createAbstraction<IGetPageByPathRepository>(\n \"Wb/GetPageByPathRepository\"\n);\n\nexport namespace GetPageByPathRepository {\n export type Interface = IGetPageByPathRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageByPath use case interface\n */\nexport interface IGetPageByPathUseCase {\n execute(path: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByPathUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];\n\n/** Retrieve a page by its URL path. */\nexport const GetPageByPathUseCase =\n createAbstraction<IGetPageByPathUseCase>(\"Wb/GetPageByPathUseCase\");\n\nexport namespace GetPageByPathUseCase {\n export type Interface = IGetPageByPathUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAQD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const GetPageByPathFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetPageByPathFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,15 @@
1
+ import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
2
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry";
3
+ import { GetPageLanguagePathsRepository as RepositoryAbstraction } from "./abstractions.js";
4
+ import { PageModel } from "../../../domain/page/abstractions.js";
5
+ declare class GetPageLanguagePathsRepositoryImpl implements RepositoryAbstraction.Interface {
6
+ private pageModel;
7
+ private listPublished;
8
+ private getEntry;
9
+ constructor(pageModel: PageModel.Interface, listPublished: ListPublishedEntriesUseCase.Interface, getEntry: GetEntryUseCase.Interface);
10
+ execute(rootEntryId: string): RepositoryAbstraction.Return;
11
+ }
12
+ export declare const GetPageLanguagePathsRepository: typeof GetPageLanguagePathsRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetPageLanguagePathsRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,61 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
3
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry";
4
+ import { GetPageLanguagePathsRepository as RepositoryAbstraction } from "./abstractions.js";
5
+ import { PageModel } from "../../../domain/page/abstractions.js";
6
+ import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
7
+ import { PagePersistenceError } from "../../../domain/page/errors.js";
8
+ class GetPageLanguagePathsRepositoryImpl {
9
+ constructor(pageModel, listPublished, getEntry) {
10
+ this.pageModel = pageModel;
11
+ this.listPublished = listPublished;
12
+ this.getEntry = getEntry;
13
+ }
14
+ async execute(rootEntryId) {
15
+ const [sourceResult, translationsResult] = await Promise.all([
16
+ // Fetch the source page itself.
17
+ this.getEntry.execute(this.pageModel, {
18
+ where: {
19
+ entryId: rootEntryId,
20
+ published: true
21
+ }
22
+ }),
23
+ // Fetch all translated pages pointing to the source.
24
+ this.listPublished.execute(this.pageModel, {
25
+ where: {
26
+ values: {
27
+ properties: {
28
+ sourcePage: rootEntryId
29
+ }
30
+ }
31
+ }
32
+ })]);
33
+ if (translationsResult.isFail()) {
34
+ return Result.fail(new PagePersistenceError(translationsResult.error));
35
+ }
36
+ const languagePaths = {};
37
+
38
+ // Include the source page.
39
+ if (!sourceResult.isFail() && sourceResult.value) {
40
+ const source = EntryToPageMapper.toPage(sourceResult.value);
41
+ if (source.properties?.language && source.properties?.path) {
42
+ languagePaths[source.properties.language] = source.properties.path;
43
+ }
44
+ }
45
+
46
+ // Include all translations.
47
+ for (const entry of translationsResult.value.entries) {
48
+ const page = EntryToPageMapper.toPage(entry);
49
+ if (page.properties?.language && page.properties?.path) {
50
+ languagePaths[page.properties.language] = page.properties.path;
51
+ }
52
+ }
53
+ return Result.ok(languagePaths);
54
+ }
55
+ }
56
+ export const GetPageLanguagePathsRepository = RepositoryAbstraction.createImplementation({
57
+ implementation: GetPageLanguagePathsRepositoryImpl,
58
+ dependencies: [PageModel, ListPublishedEntriesUseCase, GetEntryUseCase]
59
+ });
60
+
61
+ //# sourceMappingURL=GetPageLanguagePathsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","ListPublishedEntriesUseCase","GetEntryUseCase","GetPageLanguagePathsRepository","RepositoryAbstraction","PageModel","EntryToPageMapper","PagePersistenceError","GetPageLanguagePathsRepositoryImpl","constructor","pageModel","listPublished","getEntry","execute","rootEntryId","sourceResult","translationsResult","Promise","all","where","entryId","published","values","properties","sourcePage","isFail","fail","error","languagePaths","value","source","toPage","language","path","entry","entries","page","ok","createImplementation","implementation","dependencies"],"sources":["GetPageLanguagePathsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPublishedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { GetEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntry\";\nimport { GetPageLanguagePathsRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { type CmsEntryWbPage, PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass GetPageLanguagePathsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private listPublished: ListPublishedEntriesUseCase.Interface,\n private getEntry: GetEntryUseCase.Interface\n ) {}\n\n async execute(rootEntryId: string): RepositoryAbstraction.Return {\n const [sourceResult, translationsResult] = await Promise.all([\n // Fetch the source page itself.\n this.getEntry.execute<CmsEntryWbPage>(this.pageModel, {\n where: { entryId: rootEntryId, published: true }\n }),\n // Fetch all translated pages pointing to the source.\n this.listPublished.execute<CmsEntryWbPage>(this.pageModel, {\n where: {\n values: {\n properties: { sourcePage: rootEntryId }\n }\n }\n })\n ]);\n\n if (translationsResult.isFail()) {\n return Result.fail(new PagePersistenceError(translationsResult.error));\n }\n\n const languagePaths: Record<string, string> = {};\n\n // Include the source page.\n if (!sourceResult.isFail() && sourceResult.value) {\n const source = EntryToPageMapper.toPage(sourceResult.value);\n if (source.properties?.language && source.properties?.path) {\n languagePaths[source.properties.language] = source.properties.path;\n }\n }\n\n // Include all translations.\n for (const entry of translationsResult.value.entries) {\n const page = EntryToPageMapper.toPage(entry);\n if (page.properties?.language && page.properties?.path) {\n languagePaths[page.properties.language] = page.properties.path;\n }\n }\n\n return Result.ok(languagePaths);\n }\n}\n\nexport const GetPageLanguagePathsRepository = RepositoryAbstraction.createImplementation({\n implementation: GetPageLanguagePathsRepositoryImpl,\n dependencies: [PageModel, ListPublishedEntriesUseCase, GetEntryUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,2BAA2B,QAAQ,4DAA4D;AACxG,SAASC,eAAe,QAAQ,yDAAyD;AACzF,SAASC,8BAA8B,IAAIC,qBAAqB;AAChE,SAA8BC,SAAS;AACvC,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAE7B,MAAMC,kCAAkC,CAA4C;EAChFC,WAAWA,CACCC,SAA8B,EAC9BC,aAAoD,EACpDC,QAAmC,EAC7C;IAAA,KAHUF,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,aAAoD,GAApDA,aAAoD;IAAA,KACpDC,QAAmC,GAAnCA,QAAmC;EAC5C;EAEH,MAAMC,OAAOA,CAACC,WAAmB,EAAgC;IAC7D,MAAM,CAACC,YAAY,EAAEC,kBAAkB,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC;IACzD;IACA,IAAI,CAACN,QAAQ,CAACC,OAAO,CAAiB,IAAI,CAACH,SAAS,EAAE;MAClDS,KAAK,EAAE;QAAEC,OAAO,EAAEN,WAAW;QAAEO,SAAS,EAAE;MAAK;IACnD,CAAC,CAAC;IACF;IACA,IAAI,CAACV,aAAa,CAACE,OAAO,CAAiB,IAAI,CAACH,SAAS,EAAE;MACvDS,KAAK,EAAE;QACHG,MAAM,EAAE;UACJC,UAAU,EAAE;YAAEC,UAAU,EAAEV;UAAY;QAC1C;MACJ;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,IAAIE,kBAAkB,CAACS,MAAM,CAAC,CAAC,EAAE;MAC7B,OAAOzB,MAAM,CAAC0B,IAAI,CAAC,IAAInB,oBAAoB,CAACS,kBAAkB,CAACW,KAAK,CAAC,CAAC;IAC1E;IAEA,MAAMC,aAAqC,GAAG,CAAC,CAAC;;IAEhD;IACA,IAAI,CAACb,YAAY,CAACU,MAAM,CAAC,CAAC,IAAIV,YAAY,CAACc,KAAK,EAAE;MAC9C,MAAMC,MAAM,GAAGxB,iBAAiB,CAACyB,MAAM,CAAChB,YAAY,CAACc,KAAK,CAAC;MAC3D,IAAIC,MAAM,CAACP,UAAU,EAAES,QAAQ,IAAIF,MAAM,CAACP,UAAU,EAAEU,IAAI,EAAE;QACxDL,aAAa,CAACE,MAAM,CAACP,UAAU,CAACS,QAAQ,CAAC,GAAGF,MAAM,CAACP,UAAU,CAACU,IAAI;MACtE;IACJ;;IAEA;IACA,KAAK,MAAMC,KAAK,IAAIlB,kBAAkB,CAACa,KAAK,CAACM,OAAO,EAAE;MAClD,MAAMC,IAAI,GAAG9B,iBAAiB,CAACyB,MAAM,CAACG,KAAK,CAAC;MAC5C,IAAIE,IAAI,CAACb,UAAU,EAAES,QAAQ,IAAII,IAAI,CAACb,UAAU,EAAEU,IAAI,EAAE;QACpDL,aAAa,CAACQ,IAAI,CAACb,UAAU,CAACS,QAAQ,CAAC,GAAGI,IAAI,CAACb,UAAU,CAACU,IAAI;MAClE;IACJ;IAEA,OAAOjC,MAAM,CAACqC,EAAE,CAACT,aAAa,CAAC;EACnC;AACJ;AAEA,OAAO,MAAMzB,8BAA8B,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EACrFC,cAAc,EAAE/B,kCAAkC;EAClDgC,YAAY,EAAE,CAACnC,SAAS,EAAEJ,2BAA2B,EAAEC,eAAe;AAC1E,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { GetPageLanguagePathsUseCase as UseCaseAbstraction, GetPageLanguagePathsRepository } from "./abstractions.js";
2
+ declare class GetPageLanguagePathsUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private repository;
4
+ constructor(repository: GetPageLanguagePathsRepository.Interface);
5
+ execute(rootEntryId: string): UseCaseAbstraction.Return;
6
+ }
7
+ export declare const GetPageLanguagePathsUseCase: typeof GetPageLanguagePathsUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetPageLanguagePathsUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,20 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetPageLanguagePathsUseCase as UseCaseAbstraction, GetPageLanguagePathsRepository } from "./abstractions.js";
3
+ class GetPageLanguagePathsUseCaseImpl {
4
+ constructor(repository) {
5
+ this.repository = repository;
6
+ }
7
+ async execute(rootEntryId) {
8
+ const result = await this.repository.execute(rootEntryId);
9
+ if (result.isFail()) {
10
+ return result;
11
+ }
12
+ return Result.ok(result.value);
13
+ }
14
+ }
15
+ export const GetPageLanguagePathsUseCase = UseCaseAbstraction.createImplementation({
16
+ implementation: GetPageLanguagePathsUseCaseImpl,
17
+ dependencies: [GetPageLanguagePathsRepository]
18
+ });
19
+
20
+ //# sourceMappingURL=GetPageLanguagePathsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","GetPageLanguagePathsUseCase","UseCaseAbstraction","GetPageLanguagePathsRepository","GetPageLanguagePathsUseCaseImpl","constructor","repository","execute","rootEntryId","result","isFail","ok","value","createImplementation","implementation","dependencies"],"sources":["GetPageLanguagePathsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetPageLanguagePathsUseCase as UseCaseAbstraction,\n GetPageLanguagePathsRepository\n} from \"./abstractions.js\";\n\nclass GetPageLanguagePathsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetPageLanguagePathsRepository.Interface) {}\n\n async execute(rootEntryId: string): UseCaseAbstraction.Return {\n const result = await this.repository.execute(rootEntryId);\n\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const GetPageLanguagePathsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageLanguagePathsUseCaseImpl,\n dependencies: [GetPageLanguagePathsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,2BAA2B,IAAIC,kBAAkB,EACjDC,8BAA8B;AAGlC,MAAMC,+BAA+B,CAAyC;EAC1EC,WAAWA,CAASC,UAAoD,EAAE;IAAA,KAAtDA,UAAoD,GAApDA,UAAoD;EAAG;EAE3E,MAAMC,OAAOA,CAACC,WAAmB,EAA6B;IAC1D,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,UAAU,CAACC,OAAO,CAACC,WAAW,CAAC;IAEzD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,OAAOT,MAAM,CAACW,EAAE,CAACF,MAAM,CAACG,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMX,2BAA2B,GAAGC,kBAAkB,CAACW,oBAAoB,CAAC;EAC/EC,cAAc,EAAEV,+BAA+B;EAC/CW,YAAY,EAAE,CAACZ,8BAA8B;AACjD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { PagePersistenceError } from "../../../domain/page/errors.js";
3
+ export type PageLanguagePaths = Record<string, string>;
4
+ export interface IGetPageLanguagePathsRepository {
5
+ execute(rootEntryId: string): Promise<Result<PageLanguagePaths, PagePersistenceError>>;
6
+ }
7
+ export declare const GetPageLanguagePathsRepository: import("@webiny/di").Abstraction<IGetPageLanguagePathsRepository>;
8
+ export declare namespace GetPageLanguagePathsRepository {
9
+ type Interface = IGetPageLanguagePathsRepository;
10
+ type Return = Promise<Result<PageLanguagePaths, PagePersistenceError>>;
11
+ }
12
+ export interface IGetPageLanguagePathsUseCase {
13
+ execute(rootEntryId: string): Promise<Result<PageLanguagePaths, PagePersistenceError>>;
14
+ }
15
+ /** Retrieve all published language paths of a page as { languageCode: path }. */
16
+ export declare const GetPageLanguagePathsUseCase: import("@webiny/di").Abstraction<IGetPageLanguagePathsUseCase>;
17
+ export declare namespace GetPageLanguagePathsUseCase {
18
+ type Interface = IGetPageLanguagePathsUseCase;
19
+ type Return = Promise<Result<PageLanguagePaths, PagePersistenceError>>;
20
+ }
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const GetPageLanguagePathsRepository = createAbstraction("Wb/GetPageLanguagePathsRepository");
3
+ /** Retrieve all published language paths of a page as { languageCode: path }. */
4
+ export const GetPageLanguagePathsUseCase = createAbstraction("Wb/GetPageLanguagePathsUseCase");
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetPageLanguagePathsRepository","GetPageLanguagePathsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { PagePersistenceError } from \"~/domain/page/errors.js\";\n\nexport type PageLanguagePaths = Record<string, string>;\n\nexport interface IGetPageLanguagePathsRepository {\n execute(rootEntryId: string): Promise<Result<PageLanguagePaths, PagePersistenceError>>;\n}\n\nexport const GetPageLanguagePathsRepository = createAbstraction<IGetPageLanguagePathsRepository>(\n \"Wb/GetPageLanguagePathsRepository\"\n);\n\nexport namespace GetPageLanguagePathsRepository {\n export type Interface = IGetPageLanguagePathsRepository;\n export type Return = Promise<Result<PageLanguagePaths, PagePersistenceError>>;\n}\n\nexport interface IGetPageLanguagePathsUseCase {\n execute(rootEntryId: string): Promise<Result<PageLanguagePaths, PagePersistenceError>>;\n}\n\n/** Retrieve all published language paths of a page as { languageCode: path }. */\nexport const GetPageLanguagePathsUseCase = createAbstraction<IGetPageLanguagePathsUseCase>(\n \"Wb/GetPageLanguagePathsUseCase\"\n);\n\nexport namespace GetPageLanguagePathsUseCase {\n export type Interface = IGetPageLanguagePathsUseCase;\n export type Return = Promise<Result<PageLanguagePaths, PagePersistenceError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAUvD,OAAO,MAAMC,8BAA8B,GAAGD,iBAAiB,CAC3D,mCACJ,CAAC;AAWD;AACA,OAAO,MAAME,2BAA2B,GAAGF,iBAAiB,CACxD,gCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const GetPageLanguagePathsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { GetPageLanguagePathsRepository } from "./GetPageLanguagePathsRepository.js";
3
+ import { GetPageLanguagePathsUseCase } from "./GetPageLanguagePathsUseCase.js";
4
+ export const GetPageLanguagePathsFeature = createFeature({
5
+ name: "WebsiteBuilder/GetPageLanguagePaths",
6
+ register(container) {
7
+ container.register(GetPageLanguagePathsRepository).inSingletonScope();
8
+ container.register(GetPageLanguagePathsUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","GetPageLanguagePathsRepository","GetPageLanguagePathsUseCase","GetPageLanguagePathsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetPageLanguagePathsRepository } from \"./GetPageLanguagePathsRepository.js\";\nimport { GetPageLanguagePathsUseCase } from \"./GetPageLanguagePathsUseCase.js\";\n\nexport const GetPageLanguagePathsFeature = createFeature({\n name: \"WebsiteBuilder/GetPageLanguagePaths\",\n register(container) {\n container.register(GetPageLanguagePathsRepository).inSingletonScope();\n container.register(GetPageLanguagePathsUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,8BAA8B;AACvC,SAASC,2BAA2B;AAEpC,OAAO,MAAMC,2BAA2B,GAAGH,aAAa,CAAC;EACrDI,IAAI,EAAE,qCAAqC;EAC3CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,8BAA8B,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACrED,SAAS,CAACD,QAAQ,CAACH,2BAA2B,CAAC;EACnD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,3 @@
1
+ export * from "./abstractions.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import { GetPageRevisionsUseCase as UseCaseAbstraction, GetPageRevisionsRepository } from "./abstractions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
2
3
  declare class GetPageRevisionsUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private permissions;
3
5
  private repository;
4
- constructor(repository: GetPageRevisionsRepository.Interface);
6
+ constructor(permissions: WbPermissions.Interface, repository: GetPageRevisionsRepository.Interface);
5
7
  execute(entryId: string): UseCaseAbstraction.Return;
6
8
  }
7
9
  export declare const GetPageRevisionsUseCase: typeof GetPageRevisionsUseCaseImpl & {