@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,15 +1,34 @@
1
+ import { Result } from "@webiny/feature/api";
1
2
  import { GetPageRevisionsUseCase as UseCaseAbstraction, GetPageRevisionsRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
2
5
  class GetPageRevisionsUseCaseImpl {
3
- constructor(repository) {
6
+ constructor(permissions, repository) {
7
+ this.permissions = permissions;
4
8
  this.repository = repository;
5
9
  }
6
10
  async execute(entryId) {
7
- return this.repository.execute(entryId);
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(entryId);
16
+ if (result.isFail()) {
17
+ return result;
18
+ }
19
+ const pages = result.value;
20
+ if (pages.length > 0) {
21
+ const canAccess = await this.permissions.canAccess("page", pages[0]);
22
+ if (!canAccess) {
23
+ return Result.fail(new PageNotAuthorizedError());
24
+ }
25
+ }
26
+ return result;
8
27
  }
9
28
  }
10
29
  export const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({
11
30
  implementation: GetPageRevisionsUseCaseImpl,
12
- dependencies: [GetPageRevisionsRepository]
31
+ dependencies: [WbPermissions, GetPageRevisionsRepository]
13
32
  });
14
33
 
15
34
  //# sourceMappingURL=GetPageRevisionsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetPageRevisionsUseCase","UseCaseAbstraction","GetPageRevisionsRepository","GetPageRevisionsUseCaseImpl","constructor","repository","execute","entryId","createImplementation","implementation","dependencies"],"sources":["GetPageRevisionsUseCase.ts"],"sourcesContent":["import {\n GetPageRevisionsUseCase as UseCaseAbstraction,\n GetPageRevisionsRepository\n} from \"./abstractions.js\";\n\nclass GetPageRevisionsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetPageRevisionsRepository.Interface) {}\n\n async execute(entryId: string): UseCaseAbstraction.Return {\n return this.repository.execute(entryId);\n }\n}\n\nexport const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageRevisionsUseCaseImpl,\n dependencies: [GetPageRevisionsRepository]\n});\n"],"mappings":"AAAA,SACIA,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAG9B,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CAASC,UAAgD,EAAE;IAAA,KAAlDA,UAAgD,GAAhDA,UAAgD;EAAG;EAEvE,MAAMC,OAAOA,CAACC,OAAe,EAA6B;IACtD,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,OAAO,CAAC;EAC3C;AACJ;AAEA,OAAO,MAAMP,uBAAuB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EAC3EC,cAAc,EAAEN,2BAA2B;EAC3CO,YAAY,EAAE,CAACR,0BAA0B;AAC7C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","GetPageRevisionsUseCase","UseCaseAbstraction","GetPageRevisionsRepository","WbPermissions","PageNotAuthorizedError","GetPageRevisionsUseCaseImpl","constructor","permissions","repository","execute","entryId","hasPermission","canRead","fail","result","isFail","pages","value","length","canAccess","createImplementation","implementation","dependencies"],"sources":["GetPageRevisionsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetPageRevisionsUseCase as UseCaseAbstraction,\n GetPageRevisionsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetPageRevisionsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetPageRevisionsRepository.Interface\n ) {}\n\n async execute(entryId: 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(entryId);\n\n if (result.isFail()) {\n return result;\n }\n\n const pages = result.value;\n if (pages.length > 0) {\n const canAccess = await this.permissions.canAccess(\"page\", pages[0]);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n }\n\n return result;\n }\n}\n\nexport const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageRevisionsUseCaseImpl,\n dependencies: [WbPermissions, GetPageRevisionsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,UAAgD,EAC1D;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,OAAe,EAA6B;IACtD,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,OAAO,CAAC;IAErD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,KAAK,GAAGF,MAAM,CAACG,KAAK;IAC1B,IAAID,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;MAClB,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACZ,WAAW,CAACY,SAAS,CAAC,MAAM,EAAEH,KAAK,CAAC,CAAC,CAAC,CAAC;MACpE,IAAI,CAACG,SAAS,EAAE;QACZ,OAAOpB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;MACpD;IACJ;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,uBAAuB,GAAGC,kBAAkB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,2BAA2B;EAC3CiB,YAAY,EAAE,CAACnB,aAAa,EAAED,0BAA0B;AAC5D,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 { PagePersistenceError } from "../../../domain/page/errors.js";
3
+ import type { PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
4
4
  /**
5
5
  * GetPageRevisions repository interface
6
6
  */
@@ -24,9 +24,11 @@ export interface IGetPageRevisionsUseCase {
24
24
  execute(entryId: string): Promise<Result<WbPage[], UseCaseError>>;
25
25
  }
26
26
  export interface IGetPageRevisionsUseCaseErrors {
27
+ notAuthorized: PageNotAuthorizedError;
27
28
  persistence: PagePersistenceError;
28
29
  }
29
30
  type UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];
31
+ /** Retrieve all revisions of a page. */
30
32
  export declare const GetPageRevisionsUseCase: import("@webiny/di").Abstraction<IGetPageRevisionsUseCase>;
31
33
  export declare namespace GetPageRevisionsUseCase {
32
34
  type Interface = IGetPageRevisionsUseCase;
@@ -10,6 +10,7 @@ export const GetPageRevisionsRepository = createAbstraction("Wb/GetPageRevisions
10
10
  * GetPageRevisions use case interface
11
11
  */
12
12
 
13
+ /** Retrieve all revisions of a page. */
13
14
  export const GetPageRevisionsUseCase = createAbstraction("Wb/GetPageRevisionsUseCase");
14
15
 
15
16
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetPageRevisionsRepository","GetPageRevisionsUseCase"],"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 { PagePersistenceError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageRevisions repository interface\n */\nexport interface IGetPageRevisionsRepository {\n execute(entryId: string): Promise<Result<WbPage[], RepositoryError>>;\n}\n\nexport interface IGetPageRevisionsRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageRevisionsRepositoryErrors[keyof IGetPageRevisionsRepositoryErrors];\n\nexport const GetPageRevisionsRepository = createAbstraction<IGetPageRevisionsRepository>(\n \"Wb/GetPageRevisionsRepository\"\n);\n\nexport namespace GetPageRevisionsRepository {\n export type Interface = IGetPageRevisionsRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage[], RepositoryError>>;\n}\n\n/**\n * GetPageRevisions use case interface\n */\nexport interface IGetPageRevisionsUseCase {\n execute(entryId: string): Promise<Result<WbPage[], UseCaseError>>;\n}\n\nexport interface IGetPageRevisionsUseCaseErrors {\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];\n\nexport const GetPageRevisionsUseCase = createAbstraction<IGetPageRevisionsUseCase>(\n \"Wb/GetPageRevisionsUseCase\"\n);\n\nexport namespace GetPageRevisionsUseCase {\n export type Interface = IGetPageRevisionsUseCase;\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;;AAWA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AAQD;AACA;AACA;;AAWA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetPageRevisionsRepository","GetPageRevisionsUseCase"],"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 { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageRevisions repository interface\n */\nexport interface IGetPageRevisionsRepository {\n execute(entryId: string): Promise<Result<WbPage[], RepositoryError>>;\n}\n\nexport interface IGetPageRevisionsRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageRevisionsRepositoryErrors[keyof IGetPageRevisionsRepositoryErrors];\n\nexport const GetPageRevisionsRepository = createAbstraction<IGetPageRevisionsRepository>(\n \"Wb/GetPageRevisionsRepository\"\n);\n\nexport namespace GetPageRevisionsRepository {\n export type Interface = IGetPageRevisionsRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage[], RepositoryError>>;\n}\n\n/**\n * GetPageRevisions use case interface\n */\nexport interface IGetPageRevisionsUseCase {\n execute(entryId: string): Promise<Result<WbPage[], UseCaseError>>;\n}\n\nexport interface IGetPageRevisionsUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];\n\n/** Retrieve all revisions of a page. */\nexport const GetPageRevisionsUseCase = createAbstraction<IGetPageRevisionsUseCase>(\n \"Wb/GetPageRevisionsUseCase\"\n);\n\nexport namespace GetPageRevisionsUseCase {\n export type Interface = IGetPageRevisionsUseCase;\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;;AAWA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AAQD;AACA;AACA;;AAYA;AACA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const GetPageRevisionsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetPageRevisionsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,17 @@
1
+ import { ListDeletedPagesRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
3
+ import { PageModel } from "../../../domain/page/abstractions.js";
4
+ import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
5
+ import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
6
+ declare class ListDeletedPagesRepositoryImpl implements RepositoryAbstraction.Interface {
7
+ private pageModel;
8
+ private listDeletedEntries;
9
+ private whereMapper;
10
+ private sortMapper;
11
+ constructor(pageModel: PageModel.Interface, listDeletedEntries: ListDeletedEntriesUseCase.Interface, whereMapper: CmsWhereMapper.Interface, sortMapper: CmsSortMapper.Interface);
12
+ execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
13
+ }
14
+ export declare const ListDeletedPagesRepository: typeof ListDeletedPagesRepositoryImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListDeletedPagesRepository>;
16
+ };
17
+ export {};
@@ -0,0 +1,49 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListDeletedPagesRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
4
+ import { PageModel } from "../../../domain/page/abstractions.js";
5
+ import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
6
+ import { PagePersistenceError } from "../../../domain/page/errors.js";
7
+ import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
8
+ import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
9
+ class ListDeletedPagesRepositoryImpl {
10
+ constructor(pageModel, listDeletedEntries, whereMapper, sortMapper) {
11
+ this.pageModel = pageModel;
12
+ this.listDeletedEntries = listDeletedEntries;
13
+ this.whereMapper = whereMapper;
14
+ this.sortMapper = sortMapper;
15
+ }
16
+ async execute(params) {
17
+ const result = await this.listDeletedEntries.execute(this.pageModel, {
18
+ where: this.whereMapper.map({
19
+ fields: this.pageModel.fields,
20
+ input: params.where
21
+ }),
22
+ sort: this.sortMapper.map({
23
+ fields: this.pageModel.fields,
24
+ input: params.sort
25
+ }),
26
+ limit: params.limit,
27
+ after: params.after,
28
+ search: params.search
29
+ });
30
+ if (result.isFail()) {
31
+ return Result.fail(new PagePersistenceError(result.error));
32
+ }
33
+ const {
34
+ entries,
35
+ meta
36
+ } = result.value;
37
+ const pages = entries.map(entry => EntryToPageMapper.toPage(entry));
38
+ return Result.ok({
39
+ pages,
40
+ meta
41
+ });
42
+ }
43
+ }
44
+ export const ListDeletedPagesRepository = RepositoryAbstraction.createImplementation({
45
+ implementation: ListDeletedPagesRepositoryImpl,
46
+ dependencies: [PageModel, ListDeletedEntriesUseCase, CmsWhereMapper, CmsSortMapper]
47
+ });
48
+
49
+ //# sourceMappingURL=ListDeletedPagesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","ListDeletedPagesRepository","RepositoryAbstraction","ListDeletedEntriesUseCase","PageModel","EntryToPageMapper","PagePersistenceError","CmsWhereMapper","CmsSortMapper","ListDeletedPagesRepositoryImpl","constructor","pageModel","listDeletedEntries","whereMapper","sortMapper","execute","params","result","where","map","fields","input","sort","limit","after","search","isFail","fail","error","entries","meta","value","pages","entry","toPage","ok","createImplementation","implementation","dependencies"],"sources":["ListDeletedPagesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListDeletedPagesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { ListDeletedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms/features/whereMapper/abstractions.js\";\nimport { CmsSortMapper } from \"@webiny/api-headless-cms/features/sortMapper/abstractions.js\";\n\nclass ListDeletedPagesRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private listDeletedEntries: ListDeletedEntriesUseCase.Interface,\n private whereMapper: CmsWhereMapper.Interface,\n private sortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listDeletedEntries.execute(this.pageModel, {\n where: this.whereMapper.map({\n fields: this.pageModel.fields,\n input: params.where\n }),\n sort: this.sortMapper.map({\n fields: this.pageModel.fields,\n input: params.sort\n }),\n limit: params.limit,\n after: params.after,\n search: params.search\n });\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const pages = entries.map(entry => EntryToPageMapper.toPage(entry));\n\n return Result.ok({ pages, meta });\n }\n}\n\nexport const ListDeletedPagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListDeletedPagesRepositoryImpl,\n dependencies: [PageModel, ListDeletedEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,0BAA0B,IAAIC,qBAAqB;AAC5D,SAASC,yBAAyB,QAAQ,4DAA4D;AACtG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,cAAc,QAAQ,+DAA+D;AAC9F,SAASC,aAAa,QAAQ,8DAA8D;AAE5F,MAAMC,8BAA8B,CAA4C;EAC5EC,WAAWA,CACCC,SAA8B,EAC9BC,kBAAuD,EACvDC,WAAqC,EACrCC,UAAmC,EAC7C;IAAA,KAJUH,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,WAAqC,GAArCA,WAAqC;IAAA,KACrCC,UAAmC,GAAnCA,UAAmC;EAC5C;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,kBAAkB,CAACG,OAAO,CAAC,IAAI,CAACJ,SAAS,EAAE;MACjEO,KAAK,EAAE,IAAI,CAACL,WAAW,CAACM,GAAG,CAAC;QACxBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACE;MAClB,CAAC,CAAC;MACFI,IAAI,EAAE,IAAI,CAACR,UAAU,CAACK,GAAG,CAAC;QACtBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACM;MAClB,CAAC,CAAC;MACFC,KAAK,EAAEP,MAAM,CAACO,KAAK;MACnBC,KAAK,EAAER,MAAM,CAACQ,KAAK;MACnBC,MAAM,EAAET,MAAM,CAACS;IACnB,CAAC,CAAC;IAEF,IAAIR,MAAM,CAACS,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAIrB,oBAAoB,CAACW,MAAM,CAACW,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGb,MAAM,CAACc,KAAK;IACtC,MAAMC,KAAK,GAAGH,OAAO,CAACV,GAAG,CAACc,KAAK,IAAI5B,iBAAiB,CAAC6B,MAAM,CAACD,KAAK,CAAC,CAAC;IAEnE,OAAOjC,MAAM,CAACmC,EAAE,CAAC;MAAEH,KAAK;MAAEF;IAAK,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAM7B,0BAA0B,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EACjFC,cAAc,EAAE5B,8BAA8B;EAC9C6B,YAAY,EAAE,CAAClC,SAAS,EAAED,yBAAyB,EAAEI,cAAc,EAAEC,aAAa;AACtF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
+ declare class ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private permissions;
6
+ private identityContext;
7
+ private repository;
8
+ constructor(permissions: WbPermissions.Interface, identityContext: IdentityContext.Interface, repository: ListDeletedPagesRepository.Interface);
9
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
10
+ }
11
+ export declare const ListDeletedPagesUseCase: typeof ListDeletedPagesUseCaseImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListDeletedPagesUseCase>;
13
+ };
14
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
6
+ class ListDeletedPagesUseCaseImpl {
7
+ constructor(permissions, identityContext, repository) {
8
+ this.permissions = permissions;
9
+ this.identityContext = identityContext;
10
+ this.repository = repository;
11
+ }
12
+ async execute(params) {
13
+ const hasPermission = await this.permissions.canRead("page");
14
+ if (!hasPermission) {
15
+ return Result.fail(new PageNotAuthorizedError());
16
+ }
17
+ const where = {
18
+ ...params.where
19
+ };
20
+ if (await this.permissions.onlyOwnRecords("page")) {
21
+ const identity = this.identityContext.getIdentity();
22
+ where.createdBy = identity.id;
23
+ }
24
+ return this.repository.execute({
25
+ ...params,
26
+ where
27
+ });
28
+ }
29
+ }
30
+ export const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({
31
+ implementation: ListDeletedPagesUseCaseImpl,
32
+ dependencies: [WbPermissions, IdentityContext, ListDeletedPagesRepository]
33
+ });
34
+
35
+ //# sourceMappingURL=ListDeletedPagesUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","ListDeletedPagesUseCase","UseCaseAbstraction","ListDeletedPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListDeletedPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies"],"sources":["ListDeletedPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListDeletedPagesUseCase as UseCaseAbstraction,\n ListDeletedPagesRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListDeletedPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListDeletedPagesUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListDeletedPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAgD,EAC1D;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,uBAAuB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEjB,2BAA2B;EAC3CkB,YAAY,EAAE,CAACrB,aAAa,EAAEE,eAAe,EAAEH,0BAA0B;AAC7E,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { WbPage } from "../../../domain/page/abstractions.js";
3
+ import type { PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
4
+ import type { CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types/index.js";
5
+ export interface IListDeletedPagesParams {
6
+ where: CmsEntryListWhere;
7
+ sort: CmsEntryListSort;
8
+ limit: number;
9
+ after: string | null;
10
+ search?: string;
11
+ }
12
+ export interface IListDeletedPagesMeta {
13
+ hasMoreItems: boolean;
14
+ totalCount: number;
15
+ cursor: string | null;
16
+ }
17
+ export type IListDeletedPagesResult = {
18
+ pages: WbPage[];
19
+ meta: IListDeletedPagesMeta;
20
+ };
21
+ /**
22
+ * ListDeletedPages repository interface
23
+ */
24
+ export interface IListDeletedPagesRepository {
25
+ execute(params: IListDeletedPagesParams): Promise<Result<IListDeletedPagesResult, RepositoryError>>;
26
+ }
27
+ export interface IListDeletedPagesRepositoryErrors {
28
+ persistence: PagePersistenceError;
29
+ }
30
+ type RepositoryError = IListDeletedPagesRepositoryErrors[keyof IListDeletedPagesRepositoryErrors];
31
+ export declare const ListDeletedPagesRepository: import("@webiny/di").Abstraction<IListDeletedPagesRepository>;
32
+ export declare namespace ListDeletedPagesRepository {
33
+ type Interface = IListDeletedPagesRepository;
34
+ type Error = RepositoryError;
35
+ type Params = IListDeletedPagesParams;
36
+ type Return = Promise<Result<IListDeletedPagesResult, RepositoryError>>;
37
+ }
38
+ /**
39
+ * ListDeletedPages use case interface
40
+ */
41
+ export interface IListDeletedPagesUseCase {
42
+ execute(params: IListDeletedPagesParams): Promise<Result<IListDeletedPagesResult, UseCaseError>>;
43
+ }
44
+ export interface IListDeletedPagesUseCaseErrors {
45
+ notAuthorized: PageNotAuthorizedError;
46
+ persistence: PagePersistenceError;
47
+ }
48
+ type UseCaseError = IListDeletedPagesUseCaseErrors[keyof IListDeletedPagesUseCaseErrors];
49
+ export declare const ListDeletedPagesUseCase: import("@webiny/di").Abstraction<IListDeletedPagesUseCase>;
50
+ export declare namespace ListDeletedPagesUseCase {
51
+ type Interface = IListDeletedPagesUseCase;
52
+ type Error = UseCaseError;
53
+ type Params = IListDeletedPagesParams;
54
+ type Return = Promise<Result<IListDeletedPagesResult, UseCaseError>>;
55
+ }
56
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * ListDeletedPages repository interface
5
+ */
6
+
7
+ export const ListDeletedPagesRepository = createAbstraction("Wb/ListDeletedPagesRepository");
8
+
9
+ /**
10
+ * ListDeletedPages use case interface
11
+ */
12
+
13
+ export const ListDeletedPagesUseCase = createAbstraction("Wb/ListDeletedPagesUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","ListDeletedPagesRepository","ListDeletedPagesUseCase"],"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 { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IListDeletedPagesParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\nexport interface IListDeletedPagesMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type IListDeletedPagesResult = { pages: WbPage[]; meta: IListDeletedPagesMeta };\n\n/**\n * ListDeletedPages repository interface\n */\nexport interface IListDeletedPagesRepository {\n execute(\n params: IListDeletedPagesParams\n ): Promise<Result<IListDeletedPagesResult, RepositoryError>>;\n}\n\nexport interface IListDeletedPagesRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IListDeletedPagesRepositoryErrors[keyof IListDeletedPagesRepositoryErrors];\n\nexport const ListDeletedPagesRepository = createAbstraction<IListDeletedPagesRepository>(\n \"Wb/ListDeletedPagesRepository\"\n);\n\nexport namespace ListDeletedPagesRepository {\n export type Interface = IListDeletedPagesRepository;\n export type Error = RepositoryError;\n export type Params = IListDeletedPagesParams;\n export type Return = Promise<Result<IListDeletedPagesResult, RepositoryError>>;\n}\n\n/**\n * ListDeletedPages use case interface\n */\nexport interface IListDeletedPagesUseCase {\n execute(\n params: IListDeletedPagesParams\n ): Promise<Result<IListDeletedPagesResult, UseCaseError>>;\n}\n\nexport interface IListDeletedPagesUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IListDeletedPagesUseCaseErrors[keyof IListDeletedPagesUseCaseErrors];\n\nexport const ListDeletedPagesUseCase = createAbstraction<IListDeletedPagesUseCase>(\n \"Wb/ListDeletedPagesUseCase\"\n);\n\nexport namespace ListDeletedPagesUseCase {\n export type Interface = IListDeletedPagesUseCase;\n export type Error = UseCaseError;\n export type Params = IListDeletedPagesParams;\n export type Return = Promise<Result<IListDeletedPagesResult, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAsBvD;AACA;AACA;;AAaA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AASD;AACA;AACA;;AAcA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const ListDeletedPagesFeature: {
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 { ListDeletedPagesRepository } from "./ListDeletedPagesRepository.js";
3
+ import { ListDeletedPagesUseCase } from "./ListDeletedPagesUseCase.js";
4
+ export const ListDeletedPagesFeature = createFeature({
5
+ name: "WebsiteBuilder/ListDeletedPages",
6
+ register(container) {
7
+ container.register(ListDeletedPagesRepository).inSingletonScope();
8
+ container.register(ListDeletedPagesUseCase);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","ListDeletedPagesRepository","ListDeletedPagesUseCase","ListDeletedPagesFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListDeletedPagesRepository } from \"./ListDeletedPagesRepository.js\";\nimport { ListDeletedPagesUseCase } from \"./ListDeletedPagesUseCase.js\";\n\nexport const ListDeletedPagesFeature = createFeature({\n name: \"WebsiteBuilder/ListDeletedPages\",\n register(container) {\n container.register(ListDeletedPagesRepository).inSingletonScope();\n container.register(ListDeletedPagesUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,0BAA0B;AACnC,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,uBAAuB,GAAGH,aAAa,CAAC;EACjDI,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,0BAA0B,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACjED,SAAS,CAACD,QAAQ,CAACH,uBAAuB,CAAC;EAC/C;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,10 +1,14 @@
1
1
  import { ListPagesRepository as RepositoryAbstraction } from "./abstractions.js";
2
2
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
3
3
  import { PageModel } from "../../../domain/page/abstractions.js";
4
+ import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
5
+ import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
4
6
  declare class ListPagesRepositoryImpl implements RepositoryAbstraction.Interface {
5
7
  private pageModel;
6
8
  private listLatestEntries;
7
- constructor(pageModel: PageModel.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface);
9
+ private whereMapper;
10
+ private sortMapper;
11
+ constructor(pageModel: PageModel.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, whereMapper: CmsWhereMapper.Interface, sortMapper: CmsSortMapper.Interface);
8
12
  execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
9
13
  }
10
14
  export declare const ListPagesRepository: typeof ListPagesRepositoryImpl & {
@@ -4,15 +4,25 @@ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/cont
4
4
  import { PageModel } from "../../../domain/page/abstractions.js";
5
5
  import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
6
6
  import { PagePersistenceError } from "../../../domain/page/errors.js";
7
+ import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
8
+ import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
7
9
  class ListPagesRepositoryImpl {
8
- constructor(pageModel, listLatestEntries) {
10
+ constructor(pageModel, listLatestEntries, whereMapper, sortMapper) {
9
11
  this.pageModel = pageModel;
10
12
  this.listLatestEntries = listLatestEntries;
13
+ this.whereMapper = whereMapper;
14
+ this.sortMapper = sortMapper;
11
15
  }
12
16
  async execute(params) {
13
17
  const result = await this.listLatestEntries.execute(this.pageModel, {
14
- where: params.where,
15
- sort: params.sort,
18
+ where: this.whereMapper.map({
19
+ fields: this.pageModel.fields,
20
+ input: params.where
21
+ }),
22
+ sort: this.sortMapper.map({
23
+ fields: this.pageModel.fields,
24
+ input: params.sort
25
+ }),
16
26
  limit: params.limit,
17
27
  after: params.after,
18
28
  search: params.search
@@ -33,7 +43,7 @@ class ListPagesRepositoryImpl {
33
43
  }
34
44
  export const ListPagesRepository = RepositoryAbstraction.createImplementation({
35
45
  implementation: ListPagesRepositoryImpl,
36
- dependencies: [PageModel, ListLatestEntriesUseCase]
46
+ dependencies: [PageModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]
37
47
  });
38
48
 
39
49
  //# sourceMappingURL=ListPagesRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListPagesRepository","RepositoryAbstraction","ListLatestEntriesUseCase","PageModel","EntryToPageMapper","PagePersistenceError","ListPagesRepositoryImpl","constructor","pageModel","listLatestEntries","execute","params","result","where","sort","limit","after","search","isFail","fail","error","entries","meta","value","pages","map","entry","toPage","ok","createImplementation","implementation","dependencies"],"sources":["ListPagesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPagesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass ListPagesRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listLatestEntries.execute(this.pageModel, {\n where: params.where,\n sort: params.sort,\n limit: params.limit,\n after: params.after,\n search: params.search\n });\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const pages = entries.map(entry => EntryToPageMapper.toPage(entry));\n\n return Result.ok({ pages, meta });\n }\n}\n\nexport const ListPagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListPagesRepositoryImpl,\n dependencies: [PageModel, ListLatestEntriesUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,mBAAmB,IAAIC,qBAAqB;AACrD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAE7B,MAAMC,uBAAuB,CAA4C;EACrEC,WAAWA,CACCC,SAA8B,EAC9BC,iBAAqD,EAC/D;IAAA,KAFUD,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,iBAAqD,GAArDA,iBAAqD;EAC9D;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,iBAAiB,CAACC,OAAO,CAAC,IAAI,CAACF,SAAS,EAAE;MAChEK,KAAK,EAAEF,MAAM,CAACE,KAAK;MACnBC,IAAI,EAAEH,MAAM,CAACG,IAAI;MACjBC,KAAK,EAAEJ,MAAM,CAACI,KAAK;MACnBC,KAAK,EAAEL,MAAM,CAACK,KAAK;MACnBC,MAAM,EAAEN,MAAM,CAACM;IACnB,CAAC,CAAC;IAEF,IAAIL,MAAM,CAACM,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,oBAAoB,CAACO,MAAM,CAACQ,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGV,MAAM,CAACW,KAAK;IACtC,MAAMC,KAAK,GAAGH,OAAO,CAACI,GAAG,CAACC,KAAK,IAAItB,iBAAiB,CAACuB,MAAM,CAACD,KAAK,CAAC,CAAC;IAEnE,OAAO3B,MAAM,CAAC6B,EAAE,CAAC;MAAEJ,KAAK;MAAEF;IAAK,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGC,qBAAqB,CAAC4B,oBAAoB,CAAC;EAC1EC,cAAc,EAAExB,uBAAuB;EACvCyB,YAAY,EAAE,CAAC5B,SAAS,EAAED,wBAAwB;AACtD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","ListPagesRepository","RepositoryAbstraction","ListLatestEntriesUseCase","PageModel","EntryToPageMapper","PagePersistenceError","CmsWhereMapper","CmsSortMapper","ListPagesRepositoryImpl","constructor","pageModel","listLatestEntries","whereMapper","sortMapper","execute","params","result","where","map","fields","input","sort","limit","after","search","isFail","fail","error","entries","meta","value","pages","entry","toPage","ok","createImplementation","implementation","dependencies"],"sources":["ListPagesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPagesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms/features/whereMapper/abstractions.js\";\nimport { CmsSortMapper } from \"@webiny/api-headless-cms/features/sortMapper/abstractions.js\";\n\nclass ListPagesRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private whereMapper: CmsWhereMapper.Interface,\n private sortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listLatestEntries.execute(this.pageModel, {\n where: this.whereMapper.map({\n fields: this.pageModel.fields,\n input: params.where\n }),\n sort: this.sortMapper.map({\n fields: this.pageModel.fields,\n input: params.sort\n }),\n limit: params.limit,\n after: params.after,\n search: params.search\n });\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const pages = entries.map(entry => EntryToPageMapper.toPage(entry));\n\n return Result.ok({ pages, meta });\n }\n}\n\nexport const ListPagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListPagesRepositoryImpl,\n dependencies: [PageModel, ListLatestEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,mBAAmB,IAAIC,qBAAqB;AACrD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,cAAc,QAAQ,+DAA+D;AAC9F,SAASC,aAAa,QAAQ,8DAA8D;AAE5F,MAAMC,uBAAuB,CAA4C;EACrEC,WAAWA,CACCC,SAA8B,EAC9BC,iBAAqD,EACrDC,WAAqC,EACrCC,UAAmC,EAC7C;IAAA,KAJUH,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,WAAqC,GAArCA,WAAqC;IAAA,KACrCC,UAAmC,GAAnCA,UAAmC;EAC5C;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,iBAAiB,CAACG,OAAO,CAAC,IAAI,CAACJ,SAAS,EAAE;MAChEO,KAAK,EAAE,IAAI,CAACL,WAAW,CAACM,GAAG,CAAC;QACxBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACE;MAClB,CAAC,CAAC;MACFI,IAAI,EAAE,IAAI,CAACR,UAAU,CAACK,GAAG,CAAC;QACtBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACM;MAClB,CAAC,CAAC;MACFC,KAAK,EAAEP,MAAM,CAACO,KAAK;MACnBC,KAAK,EAAER,MAAM,CAACQ,KAAK;MACnBC,MAAM,EAAET,MAAM,CAACS;IACnB,CAAC,CAAC;IAEF,IAAIR,MAAM,CAACS,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAIrB,oBAAoB,CAACW,MAAM,CAACW,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGb,MAAM,CAACc,KAAK;IACtC,MAAMC,KAAK,GAAGH,OAAO,CAACV,GAAG,CAACc,KAAK,IAAI5B,iBAAiB,CAAC6B,MAAM,CAACD,KAAK,CAAC,CAAC;IAEnE,OAAOjC,MAAM,CAACmC,EAAE,CAAC;MAAEH,KAAK;MAAEF;IAAK,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAM7B,mBAAmB,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EAC1EC,cAAc,EAAE5B,uBAAuB;EACvC6B,YAAY,EAAE,CAAClC,SAAS,EAAED,wBAAwB,EAAEI,cAAc,EAAEC,aAAa;AACrF,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,11 @@
1
1
  import { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from "./abstractions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
4
  declare class ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private permissions;
6
+ private identityContext;
3
7
  private repository;
4
- constructor(repository: ListPagesRepository.Interface);
8
+ constructor(permissions: WbPermissions.Interface, identityContext: IdentityContext.Interface, repository: ListPagesRepository.Interface);
5
9
  execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
6
10
  }
7
11
  export declare const ListPagesUseCase: typeof ListPagesUseCaseImpl & {
@@ -1,15 +1,35 @@
1
+ import { Result } from "@webiny/feature/api";
1
2
  import { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from "./abstractions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
+ import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
6
  class ListPagesUseCaseImpl {
3
- constructor(repository) {
7
+ constructor(permissions, identityContext, repository) {
8
+ this.permissions = permissions;
9
+ this.identityContext = identityContext;
4
10
  this.repository = repository;
5
11
  }
6
- execute(params) {
7
- return this.repository.execute(params);
12
+ async execute(params) {
13
+ const hasPermission = await this.permissions.canRead("page");
14
+ if (!hasPermission) {
15
+ return Result.fail(new PageNotAuthorizedError());
16
+ }
17
+ const where = {
18
+ ...params.where
19
+ };
20
+ if (await this.permissions.onlyOwnRecords("page")) {
21
+ const identity = this.identityContext.getIdentity();
22
+ where.createdBy = identity.id;
23
+ }
24
+ return this.repository.execute({
25
+ ...params,
26
+ where
27
+ });
8
28
  }
9
29
  }
10
30
  export const ListPagesUseCase = UseCaseAbstraction.createImplementation({
11
31
  implementation: ListPagesUseCaseImpl,
12
- dependencies: [ListPagesRepository]
32
+ dependencies: [WbPermissions, IdentityContext, ListPagesRepository]
13
33
  });
14
34
 
15
35
  //# sourceMappingURL=ListPagesUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListPagesUseCase","UseCaseAbstraction","ListPagesRepository","ListPagesUseCaseImpl","constructor","repository","execute","params","createImplementation","implementation","dependencies"],"sources":["ListPagesUseCase.ts"],"sourcesContent":["import { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from \"./abstractions.js\";\n\nclass ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListPagesRepository.Interface) {}\n\n execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n return this.repository.execute(params);\n }\n}\n\nexport const ListPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListPagesUseCaseImpl,\n dependencies: [ListPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AAEpE,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CAASC,UAAyC,EAAE;IAAA,KAA3CA,UAAyC,GAAzCA,UAAyC;EAAG;EAEhEC,OAAOA,CAACC,MAAiC,EAA6B;IAClE,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAC1C;AACJ;AAEA,OAAO,MAAMP,gBAAgB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACpEC,cAAc,EAAEN,oBAAoB;EACpCO,YAAY,EAAE,CAACR,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","ListPagesUseCase","UseCaseAbstraction","ListPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies"],"sources":["ListPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListPagesUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AACpE,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAyC,EACnD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAyC,GAAzCA,UAAyC;EAClD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,gBAAgB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EACpEC,cAAc,EAAEjB,oBAAoB;EACpCkB,YAAY,EAAE,CAACrB,aAAa,EAAEE,eAAe,EAAEH,mBAAmB;AACtE,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 { PagePersistenceError } from "../../../domain/page/errors.js";
3
+ import type { PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
4
4
  import type { CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types/index.js";
5
5
  export interface IListPagesParams {
6
6
  where: CmsEntryListWhere;
@@ -42,9 +42,11 @@ export interface IListPagesUseCase {
42
42
  execute(params: IListPagesParams): Promise<Result<IListPagesResult, UseCaseError>>;
43
43
  }
44
44
  export interface IListPagesUseCaseErrors {
45
+ notAuthorized: PageNotAuthorizedError;
45
46
  persistence: PagePersistenceError;
46
47
  }
47
48
  type UseCaseError = IListPagesUseCaseErrors[keyof IListPagesUseCaseErrors];
49
+ /** List pages with filtering and pagination. */
48
50
  export declare const ListPagesUseCase: import("@webiny/di").Abstraction<IListPagesUseCase>;
49
51
  export declare namespace ListPagesUseCase {
50
52
  type Interface = IListPagesUseCase;
@@ -10,6 +10,7 @@ export const ListPagesRepository = createAbstraction("Wb/ListPagesRepository");
10
10
  * ListPages use case interface
11
11
  */
12
12
 
13
+ /** List pages with filtering and pagination. */
13
14
  export const ListPagesUseCase = createAbstraction("Wb/ListPagesUseCase");
14
15
 
15
16
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListPagesRepository","ListPagesUseCase"],"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 { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IListPagesParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\nexport interface IListPagesMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type IListPagesResult = { pages: WbPage[]; meta: IListPagesMeta };\n\n/**\n * ListPages repository interface\n */\nexport interface IListPagesRepository {\n execute(params: IListPagesParams): Promise<Result<IListPagesResult, RepositoryError>>;\n}\n\nexport interface IListPagesRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IListPagesRepositoryErrors[keyof IListPagesRepositoryErrors];\n\nexport const ListPagesRepository =\n createAbstraction<IListPagesRepository>(\"Wb/ListPagesRepository\");\n\nexport namespace ListPagesRepository {\n export type Interface = IListPagesRepository;\n export type Error = RepositoryError;\n export type Params = IListPagesParams;\n export type Return = Promise<Result<IListPagesResult, RepositoryError>>;\n}\n\n/**\n * ListPages use case interface\n */\nexport interface IListPagesUseCase {\n execute(params: IListPagesParams): Promise<Result<IListPagesResult, UseCaseError>>;\n}\n\nexport interface IListPagesUseCaseErrors {\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IListPagesUseCaseErrors[keyof IListPagesUseCaseErrors];\n\nexport const ListPagesUseCase = createAbstraction<IListPagesUseCase>(\"Wb/ListPagesUseCase\");\n\nexport namespace ListPagesUseCase {\n export type Interface = IListPagesUseCase;\n export type Error = UseCaseError;\n export type Params = IListPagesParams;\n export type Return = Promise<Result<IListPagesResult, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAsBvD;AACA;AACA;;AAWA,OAAO,MAAMC,mBAAmB,GAC5BD,iBAAiB,CAAuB,wBAAwB,CAAC;;AASrE;AACA;AACA;;AAWA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","ListPagesRepository","ListPagesUseCase"],"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 { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IListPagesParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\nexport interface IListPagesMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type IListPagesResult = { pages: WbPage[]; meta: IListPagesMeta };\n\n/**\n * ListPages repository interface\n */\nexport interface IListPagesRepository {\n execute(params: IListPagesParams): Promise<Result<IListPagesResult, RepositoryError>>;\n}\n\nexport interface IListPagesRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IListPagesRepositoryErrors[keyof IListPagesRepositoryErrors];\n\nexport const ListPagesRepository =\n createAbstraction<IListPagesRepository>(\"Wb/ListPagesRepository\");\n\nexport namespace ListPagesRepository {\n export type Interface = IListPagesRepository;\n export type Error = RepositoryError;\n export type Params = IListPagesParams;\n export type Return = Promise<Result<IListPagesResult, RepositoryError>>;\n}\n\n/**\n * ListPages use case interface\n */\nexport interface IListPagesUseCase {\n execute(params: IListPagesParams): Promise<Result<IListPagesResult, UseCaseError>>;\n}\n\nexport interface IListPagesUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IListPagesUseCaseErrors[keyof IListPagesUseCaseErrors];\n\n/** List pages with filtering and pagination. */\nexport const ListPagesUseCase = createAbstraction<IListPagesUseCase>(\"Wb/ListPagesUseCase\");\n\nexport namespace ListPagesUseCase {\n export type Interface = IListPagesUseCase;\n export type Error = UseCaseError;\n export type Params = IListPagesParams;\n export type Return = Promise<Result<IListPagesResult, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAsBvD;AACA;AACA;;AAWA,OAAO,MAAMC,mBAAmB,GAC5BD,iBAAiB,CAAuB,wBAAwB,CAAC;;AASrE;AACA;AACA;;AAYA;AACA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,qBAAqB,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const ListPagesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListPagesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -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 { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from "./abstractions.js";
3
3
  import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
4
5
  declare class MovePageUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
5
7
  private eventPublisher;
6
8
  private getPageById;
7
9
  private repository;
8
- constructor(eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: MovePageRepository.Interface);
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: MovePageRepository.Interface);
9
11
  execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
10
12
  }
11
13
  export declare const MovePageUseCase: import("@webiny/di").Implementation<typeof MovePageUseCaseImpl>;