@webiny/api-aco 0.0.0-unstable.aad28a72ae → 0.0.0-unstable.ac6ebf63c6

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 (539) hide show
  1. package/README.md +6 -13
  2. package/constants.d.ts +2 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +9 -0
  6. package/createAcoContext.js +141 -0
  7. package/createAcoContext.js.map +1 -0
  8. package/createAcoGraphQL.d.ts +4 -0
  9. package/createAcoGraphQL.js +111 -0
  10. package/createAcoGraphQL.js.map +1 -0
  11. package/createAcoStorageOperations.d.ts +12 -0
  12. package/createAcoStorageOperations.js +10 -0
  13. package/createAcoStorageOperations.js.map +1 -0
  14. package/createAcoTasks.d.ts +1 -0
  15. package/createAcoTasks.js +15 -0
  16. package/createAcoTasks.js.map +1 -0
  17. package/domain/folder/abstractions.d.ts +9 -0
  18. package/domain/folder/abstractions.js +8 -0
  19. package/domain/folder/abstractions.js.map +1 -0
  20. package/domain/folder/errors.d.ts +29 -0
  21. package/domain/folder/errors.js +56 -0
  22. package/domain/folder/errors.js.map +1 -0
  23. package/domain/folder/folder.model.d.ts +9 -0
  24. package/domain/folder/folder.model.js +42 -0
  25. package/domain/folder/folder.model.js.map +1 -0
  26. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  29. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  32. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  35. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  38. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  41. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  44. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  47. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  50. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  53. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  56. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  59. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  62. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  65. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  68. package/features/cms/feature.d.ts +1 -0
  69. package/features/cms/feature.js +43 -0
  70. package/features/cms/feature.js.map +1 -0
  71. package/features/cms/index.d.ts +1 -0
  72. package/features/cms/index.js +3 -0
  73. package/features/cms/index.js.map +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +8 -0
  78. package/features/flp/CreateFlp/abstractions.js +7 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +6 -0
  81. package/features/flp/CreateFlp/feature.js +13 -0
  82. package/features/flp/CreateFlp/feature.js.map +1 -0
  83. package/features/flp/CreateFlp/index.d.ts +2 -0
  84. package/features/flp/CreateFlp/index.js +4 -0
  85. package/features/flp/CreateFlp/index.js.map +1 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  88. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
  91. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  93. package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
  94. package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  96. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
  97. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  98. package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
  99. package/features/flp/DeleteFlp/abstractions.js +7 -0
  100. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  101. package/features/flp/DeleteFlp/feature.d.ts +6 -0
  102. package/features/flp/DeleteFlp/feature.js +13 -0
  103. package/features/flp/DeleteFlp/feature.js.map +1 -0
  104. package/features/flp/DeleteFlp/index.d.ts +2 -0
  105. package/features/flp/DeleteFlp/index.js +4 -0
  106. package/features/flp/DeleteFlp/index.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
  112. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  113. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  114. package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
  115. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
  116. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  117. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
  118. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
  121. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  122. package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
  123. package/features/flp/FolderLevelPermissions/feature.js +10 -0
  124. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  125. package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
  126. package/features/flp/FolderLevelPermissions/index.js +4 -0
  127. package/features/flp/FolderLevelPermissions/index.js.map +1 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
  154. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  155. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  156. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
  157. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  158. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  159. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
  160. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  161. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  162. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
  163. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  167. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  168. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
  169. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  170. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  171. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
  172. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  173. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  174. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
  175. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  176. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  177. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
  178. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  179. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  180. package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
  181. package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  182. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  183. package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
  184. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  185. package/features/flp/GetFlp/abstractions.d.ts +8 -0
  186. package/features/flp/GetFlp/abstractions.js +4 -0
  187. package/features/flp/GetFlp/abstractions.js.map +1 -0
  188. package/features/flp/GetFlp/feature.d.ts +1 -0
  189. package/features/flp/GetFlp/feature.js +13 -0
  190. package/features/flp/GetFlp/feature.js.map +1 -0
  191. package/features/flp/GetFlp/index.d.ts +1 -0
  192. package/features/flp/GetFlp/index.js +3 -0
  193. package/features/flp/GetFlp/index.js.map +1 -0
  194. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  195. package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
  196. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  197. package/features/flp/ListFlps/abstractions.d.ts +16 -0
  198. package/features/flp/ListFlps/abstractions.js +4 -0
  199. package/features/flp/ListFlps/abstractions.js.map +1 -0
  200. package/features/flp/ListFlps/feature.d.ts +1 -0
  201. package/features/flp/ListFlps/feature.js +13 -0
  202. package/features/flp/ListFlps/feature.js.map +1 -0
  203. package/features/flp/ListFlps/index.d.ts +1 -0
  204. package/features/flp/ListFlps/index.js +3 -0
  205. package/features/flp/ListFlps/index.js.map +1 -0
  206. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
  207. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
  208. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  209. package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
  210. package/features/flp/UpdateFlp/abstractions.js +7 -0
  211. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  212. package/features/flp/UpdateFlp/feature.d.ts +6 -0
  213. package/features/flp/UpdateFlp/feature.js +13 -0
  214. package/features/flp/UpdateFlp/feature.js.map +1 -0
  215. package/features/flp/UpdateFlp/index.d.ts +2 -0
  216. package/features/flp/UpdateFlp/index.js +4 -0
  217. package/features/flp/UpdateFlp/index.js.map +1 -0
  218. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  219. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  220. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  221. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
  222. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
  223. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  224. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  225. package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
  226. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
  227. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  228. package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
  229. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  230. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  231. package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
  232. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  233. package/features/folder/CreateFolder/abstractions.d.ts +55 -0
  234. package/features/folder/CreateFolder/abstractions.js +21 -0
  235. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  236. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  237. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
  238. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  239. package/features/folder/CreateFolder/events.d.ts +10 -0
  240. package/features/folder/CreateFolder/events.js +19 -0
  241. package/features/folder/CreateFolder/events.js.map +1 -0
  242. package/features/folder/CreateFolder/feature.d.ts +1 -0
  243. package/features/folder/CreateFolder/feature.js +14 -0
  244. package/features/folder/CreateFolder/feature.js.map +1 -0
  245. package/features/folder/CreateFolder/index.d.ts +2 -0
  246. package/features/folder/CreateFolder/index.js +4 -0
  247. package/features/folder/CreateFolder/index.js.map +1 -0
  248. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  249. package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
  250. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  251. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  252. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
  253. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  254. package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
  255. package/features/folder/DeleteFolder/abstractions.js +21 -0
  256. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  257. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  258. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
  259. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  260. package/features/folder/DeleteFolder/events.d.ts +10 -0
  261. package/features/folder/DeleteFolder/events.js +19 -0
  262. package/features/folder/DeleteFolder/events.js.map +1 -0
  263. package/features/folder/DeleteFolder/feature.d.ts +1 -0
  264. package/features/folder/DeleteFolder/feature.js +14 -0
  265. package/features/folder/DeleteFolder/feature.js.map +1 -0
  266. package/features/folder/DeleteFolder/index.d.ts +2 -0
  267. package/features/folder/DeleteFolder/index.js +4 -0
  268. package/features/folder/DeleteFolder/index.js.map +1 -0
  269. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  270. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
  271. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  272. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
  273. package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
  274. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  275. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
  276. package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
  277. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  278. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  279. package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
  280. package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
  281. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  282. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
  283. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  284. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
  285. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
  286. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  287. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  288. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
  289. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
  290. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  291. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
  292. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  293. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
  294. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
  295. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  296. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  297. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
  298. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
  299. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  300. package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
  301. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  302. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  303. package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
  304. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  305. package/features/folder/GetAncestors/abstractions.d.ts +38 -0
  306. package/features/folder/GetAncestors/abstractions.js +15 -0
  307. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  308. package/features/folder/GetAncestors/feature.d.ts +1 -0
  309. package/features/folder/GetAncestors/feature.js +12 -0
  310. package/features/folder/GetAncestors/feature.js.map +1 -0
  311. package/features/folder/GetAncestors/index.d.ts +2 -0
  312. package/features/folder/GetAncestors/index.js +4 -0
  313. package/features/folder/GetAncestors/index.js.map +1 -0
  314. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  315. package/features/folder/GetFolder/GetFolderRepository.js +31 -0
  316. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  317. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  318. package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
  319. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  320. package/features/folder/GetFolder/abstractions.d.ts +54 -0
  321. package/features/folder/GetFolder/abstractions.js +21 -0
  322. package/features/folder/GetFolder/abstractions.js.map +1 -0
  323. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  324. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
  325. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  326. package/features/folder/GetFolder/feature.d.ts +1 -0
  327. package/features/folder/GetFolder/feature.js +14 -0
  328. package/features/folder/GetFolder/feature.js.map +1 -0
  329. package/features/folder/GetFolder/index.d.ts +2 -0
  330. package/features/folder/GetFolder/index.js +4 -0
  331. package/features/folder/GetFolder/index.js.map +1 -0
  332. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  333. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
  334. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  335. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  336. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
  337. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  338. package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
  339. package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
  340. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  341. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  342. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
  343. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  344. package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
  345. package/features/folder/GetFolderHierarchy/feature.js +14 -0
  346. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  347. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  348. package/features/folder/GetFolderHierarchy/index.js +4 -0
  349. package/features/folder/GetFolderHierarchy/index.js.map +1 -0
  350. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  351. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
  352. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  353. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
  354. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
  355. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  356. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
  357. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
  358. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  359. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  360. package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
  361. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  362. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  363. package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
  364. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  365. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  366. package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
  367. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  368. package/features/folder/ListFolders/abstractions.d.ts +42 -0
  369. package/features/folder/ListFolders/abstractions.js +15 -0
  370. package/features/folder/ListFolders/abstractions.js.map +1 -0
  371. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  372. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
  373. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  374. package/features/folder/ListFolders/feature.d.ts +1 -0
  375. package/features/folder/ListFolders/feature.js +14 -0
  376. package/features/folder/ListFolders/feature.js.map +1 -0
  377. package/features/folder/ListFolders/index.d.ts +2 -0
  378. package/features/folder/ListFolders/index.js +4 -0
  379. package/features/folder/ListFolders/index.js.map +1 -0
  380. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  381. package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
  382. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  383. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  384. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
  385. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  386. package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
  387. package/features/folder/UpdateFolder/abstractions.js +21 -0
  388. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  389. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  390. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
  391. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  392. package/features/folder/UpdateFolder/events.d.ts +10 -0
  393. package/features/folder/UpdateFolder/events.js +19 -0
  394. package/features/folder/UpdateFolder/events.js.map +1 -0
  395. package/features/folder/UpdateFolder/feature.d.ts +1 -0
  396. package/features/folder/UpdateFolder/feature.js +14 -0
  397. package/features/folder/UpdateFolder/feature.js.map +1 -0
  398. package/features/folder/UpdateFolder/index.d.ts +2 -0
  399. package/features/folder/UpdateFolder/index.js +4 -0
  400. package/features/folder/UpdateFolder/index.js.map +1 -0
  401. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  402. package/features/folder/shared/EntryToFolderMapper.js +22 -0
  403. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  404. package/features/folder/shared/abstractions.d.ts +5 -0
  405. package/features/folder/shared/abstractions.js +4 -0
  406. package/features/folder/shared/abstractions.js.map +1 -0
  407. package/filter/filter.crud.d.ts +3 -0
  408. package/filter/filter.crud.js +33 -0
  409. package/filter/filter.crud.js.map +1 -0
  410. package/filter/filter.gql.d.ts +3 -0
  411. package/filter/filter.gql.js +146 -0
  412. package/filter/filter.gql.js.map +1 -0
  413. package/filter/filter.model.d.ts +9 -0
  414. package/filter/filter.model.js +41 -0
  415. package/filter/filter.model.js.map +1 -0
  416. package/filter/filter.so.d.ts +3 -0
  417. package/filter/filter.so.js +104 -0
  418. package/filter/filter.so.js.map +1 -0
  419. package/filter/filter.types.d.ts +67 -0
  420. package/filter/filter.types.js +7 -0
  421. package/filter/filter.types.js.map +1 -0
  422. package/flp/flp.crud.d.ts +7 -0
  423. package/flp/flp.crud.js +91 -0
  424. package/flp/flp.crud.js.map +1 -0
  425. package/flp/flp.so.d.ts +20 -0
  426. package/flp/flp.so.js +220 -0
  427. package/flp/flp.so.js.map +1 -0
  428. package/flp/flp.types.d.ts +93 -0
  429. package/flp/flp.types.js +3 -0
  430. package/flp/flp.types.js.map +1 -0
  431. package/flp/index.d.ts +3 -0
  432. package/flp/index.js +5 -0
  433. package/flp/index.js.map +1 -0
  434. package/flp/tasks/createFlp.task.d.ts +16 -0
  435. package/flp/tasks/createFlp.task.js +35 -0
  436. package/flp/tasks/createFlp.task.js.map +1 -0
  437. package/flp/tasks/deleteFlp.task.d.ts +16 -0
  438. package/flp/tasks/deleteFlp.task.js +35 -0
  439. package/flp/tasks/deleteFlp.task.js.map +1 -0
  440. package/flp/tasks/index.d.ts +5 -0
  441. package/flp/tasks/index.js +19 -0
  442. package/flp/tasks/index.js.map +1 -0
  443. package/flp/tasks/syncFlp.task.d.ts +20 -0
  444. package/flp/tasks/syncFlp.task.js +127 -0
  445. package/flp/tasks/syncFlp.task.js.map +1 -0
  446. package/flp/tasks/updateFlp.task.d.ts +16 -0
  447. package/flp/tasks/updateFlp.task.js +40 -0
  448. package/flp/tasks/updateFlp.task.js.map +1 -0
  449. package/folder/createFolderModelModifier.d.ts +36 -0
  450. package/folder/createFolderModelModifier.js +61 -0
  451. package/folder/createFolderModelModifier.js.map +1 -0
  452. package/folder/createFolderTypeDefs.d.ts +7 -0
  453. package/folder/createFolderTypeDefs.js +186 -0
  454. package/folder/createFolderTypeDefs.js.map +1 -0
  455. package/folder/folder.gql.d.ts +4 -0
  456. package/folder/folder.gql.js +152 -0
  457. package/folder/folder.gql.js.map +1 -0
  458. package/folder/folder.types.d.ts +76 -0
  459. package/folder/folder.types.js +3 -0
  460. package/folder/folder.types.js.map +1 -0
  461. package/index.d.ts +7 -8
  462. package/index.js +8 -69
  463. package/index.js.map +1 -1
  464. package/package.json +44 -33
  465. package/types.d.ts +42 -207
  466. package/types.js +7 -4
  467. package/types.js.map +1 -1
  468. package/utils/FoldersCacheFactory.d.ts +10 -0
  469. package/utils/FoldersCacheFactory.js +24 -0
  470. package/utils/FoldersCacheFactory.js.map +1 -0
  471. package/utils/ListCache.d.ts +23 -0
  472. package/utils/ListCache.js +23 -0
  473. package/utils/ListCache.js.map +1 -0
  474. package/utils/Path.d.ts +3 -0
  475. package/utils/Path.js +11 -0
  476. package/utils/Path.js.map +1 -0
  477. package/utils/acoRecordId.d.ts +6 -0
  478. package/utils/acoRecordId.js +27 -0
  479. package/utils/acoRecordId.js.map +1 -0
  480. package/utils/compress.d.ts +4 -0
  481. package/utils/compress.js +12 -0
  482. package/utils/compress.js.map +1 -0
  483. package/utils/createListSort.d.ts +3 -0
  484. package/utils/createListSort.js +10 -0
  485. package/utils/createListSort.js.map +1 -0
  486. package/utils/createOperationsWrapper.d.ts +9 -0
  487. package/utils/createOperationsWrapper.js +22 -0
  488. package/utils/createOperationsWrapper.js.map +1 -0
  489. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  490. package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
  491. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  494. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  495. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  496. package/utils/decorators/ListEntriesFactory.js +106 -0
  497. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  498. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  499. package/utils/decorators/hasRootFolderId.js +19 -0
  500. package/utils/decorators/hasRootFolderId.js.map +1 -0
  501. package/utils/decorators/isPageModel.d.ts +5 -0
  502. package/utils/decorators/isPageModel.js +13 -0
  503. package/utils/decorators/isPageModel.js.map +1 -0
  504. package/utils/ensureAuthentication.d.ts +2 -0
  505. package/utils/ensureAuthentication.js +12 -0
  506. package/utils/ensureAuthentication.js.map +1 -0
  507. package/utils/pickEntryFieldValues.d.ts +3 -0
  508. package/utils/pickEntryFieldValues.js +23 -0
  509. package/utils/pickEntryFieldValues.js.map +1 -0
  510. package/utils/resolve.d.ts +2 -0
  511. package/utils/resolve.js +10 -0
  512. package/utils/resolve.js.map +1 -0
  513. package/context/folders.d.ts +0 -2
  514. package/context/folders.js +0 -261
  515. package/context/folders.js.map +0 -1
  516. package/context/index.d.ts +0 -2
  517. package/context/index.js +0 -22
  518. package/context/index.js.map +0 -1
  519. package/context/links.d.ts +0 -2
  520. package/context/links.js +0 -270
  521. package/context/links.js.map +0 -1
  522. package/graphql/base.gql.d.ts +0 -3
  523. package/graphql/base.gql.js +0 -63
  524. package/graphql/base.gql.js.map +0 -1
  525. package/graphql/folders.gql.d.ts +0 -3
  526. package/graphql/folders.gql.js +0 -126
  527. package/graphql/folders.gql.js.map +0 -1
  528. package/graphql/index.d.ts +0 -1
  529. package/graphql/index.js +0 -15
  530. package/graphql/index.js.map +0 -1
  531. package/graphql/links.gql.d.ts +0 -3
  532. package/graphql/links.gql.js +0 -123
  533. package/graphql/links.gql.js.map +0 -1
  534. package/subscriptions/afterFolderDelete.d.ts +0 -3
  535. package/subscriptions/afterFolderDelete.js +0 -62
  536. package/subscriptions/afterFolderDelete.js.map +0 -1
  537. package/subscriptions/index.d.ts +0 -3
  538. package/subscriptions/index.js +0 -14
  539. package/subscriptions/index.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { CreateEntryRevisionFromUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ class CreateEntryRevisionFromWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee) {
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, sourceId, input, options) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
15
+ return this.decoratee.execute(model, sourceId, input, options);
16
+ }
17
+ const entryResult = await this.getRevisionById.execute(model, sourceId);
18
+ if (entryResult.isFail()) {
19
+ return this.decoratee.execute(model, sourceId, input, options);
20
+ }
21
+ const entry = entryResult.value;
22
+ const folderId = entry?.location?.folderId;
23
+ if (!folderId || folderId === ROOT_FOLDER) {
24
+ return this.decoratee.execute(model, sourceId, input, options);
25
+ }
26
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
27
+ const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
28
+ permissions,
29
+ rwd: "w"
30
+ });
31
+ if (!canAccessFolderContent) {
32
+ return Result.fail(new EntryNotAuthorizedError());
33
+ }
34
+ return this.decoratee.execute(model, sourceId, input, options);
35
+ }
36
+ }
37
+ export const CreateEntryRevisionFromWithFlpDecorator = createDecorator({
38
+ abstraction: CreateEntryRevisionFromUseCase,
39
+ decorator: CreateEntryRevisionFromWithFlpDecoratorImpl,
40
+ dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
41
+ });
42
+
43
+ //# sourceMappingURL=CreateEntryRevisionFromWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","CreateEntryRevisionFromUseCase","GetRevisionByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","CreateEntryRevisionFromWithFlpDecoratorImpl","constructor","folderLevelPermissions","getRevisionById","decoratee","execute","model","sourceId","input","options","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolderContent","rwd","fail","CreateEntryRevisionFromWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["CreateEntryRevisionFromWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { CreateEntryRevisionFromUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type {\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass CreateEntryRevisionFromWithFlpDecoratorImpl\n implements CreateEntryRevisionFromUseCase.Interface\n{\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: CreateEntryRevisionFromUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): CreateEntryRevisionFromUseCase.Return<T> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, sourceId, input, options);\n }\n\n const entryResult = await this.getRevisionById.execute(model, sourceId);\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, sourceId, input, options);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, sourceId, input, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolderContent) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, sourceId, input, options);\n }\n}\n\nexport const CreateEntryRevisionFromWithFlpDecorator = createDecorator({\n abstraction: CreateEntryRevisionFromUseCase,\n decorator: CreateEntryRevisionFromWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,8BAA8B,QAAQ,wFAAwF;AACvI,SAASC,sBAAsB,QAAQ,gFAAgF;AAOvH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,2CAA2C,CAEjD;EACIC,WAAWA,CACCC,sBAAwD,EACxDC,eAAiD,EACjDC,SAAmD,EAC7D;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,SAAmD,GAAnDA,SAAmD;EAC5D;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,QAAgB,EAChBC,KAA6B,EAC7BC,OAAoC,EACI;IACxC,IAAI,CAAC,IAAI,CAACP,sBAAsB,CAACQ,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACN,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACR,eAAe,CAACE,OAAO,CAACC,KAAK,EAAEC,QAAQ,CAAC;IACvE,IAAII,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACR,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKjB,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACf,sBAAsB,CAACgB,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,sBAAsB,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACiB,sBAAsB,CAAC;MACpFF,WAAW;MACXG,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACD,sBAAsB,EAAE;MACzB,OAAOzB,MAAM,CAAC2B,IAAI,CAAC,IAAItB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;EAClE;AACJ;AAEA,OAAO,MAAMa,uCAAuC,GAAG7B,eAAe,CAAC;EACnE8B,WAAW,EAAE5B,8BAA8B;EAC3C6B,SAAS,EAAExB,2CAA2C;EACtDyB,YAAY,EAAE,CAAC5B,sBAAsB,EAAED,sBAAsB;AACjE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js";
3
+ import type { CmsEntry, CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class CreateEntryWithFlpDecoratorImpl implements CreateEntryUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private decoratee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: CreateEntryUseCase.Interface);
9
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, input: CreateCmsEntryInput<T>, options?: CreateCmsEntryOptionsInput): Promise<Result<CmsEntry<T>, CreateEntryUseCase.Error>>;
10
+ }
11
+ export declare const CreateEntryWithFlpDecorator: typeof CreateEntryWithFlpDecoratorImpl;
12
+ export {};
@@ -0,0 +1,36 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../constants.js";
5
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
6
+ class CreateEntryWithFlpDecoratorImpl {
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.folderLevelPermissions = folderLevelPermissions;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(model, input, options) {
12
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
13
+ return this.decoratee.execute(model, input, options);
14
+ }
15
+ const folderId = input.wbyAco_location?.folderId || input.location?.folderId;
16
+ if (!folderId || folderId === ROOT_FOLDER) {
17
+ return this.decoratee.execute(model, input, options);
18
+ }
19
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
20
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
21
+ permissions,
22
+ rwd: "w"
23
+ });
24
+ if (!canAccessFolder) {
25
+ return Result.fail(new EntryNotAuthorizedError());
26
+ }
27
+ return this.decoratee.execute(model, input, options);
28
+ }
29
+ }
30
+ export const CreateEntryWithFlpDecorator = createDecorator({
31
+ abstraction: CreateEntryUseCase,
32
+ decorator: CreateEntryWithFlpDecoratorImpl,
33
+ dependencies: [FolderLevelPermissions]
34
+ });
35
+
36
+ //# sourceMappingURL=CreateEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","CreateEntryUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","CreateEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","input","options","canUseFolderLevelPermissions","folderId","wbyAco_location","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","CreateEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["CreateEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js\";\nimport type {\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass CreateEntryWithFlpDecoratorImpl implements CreateEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: CreateEntryUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<Result<CmsEntry<T>, CreateEntryUseCase.Error>> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, input, options);\n }\n\n const folderId = input.wbyAco_location?.folderId || input.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, input, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, input, options);\n }\n}\n\nexport const CreateEntryWithFlpDecorator = createDecorator({\n abstraction: CreateEntryUseCase,\n decorator: CreateEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,kBAAkB,QAAQ,4EAA4E;AAQ/G,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,+BAA+B,CAAyC;EAC1EC,WAAWA,CACCC,sBAAwD,EACxDC,SAAuC,EACjD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAuC,GAAvCA,SAAuC;EAChD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,KAA6B,EAC7BC,OAAoC,EACkB;IACtD,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACM,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACL,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;IACxD;IAEA,MAAME,QAAQ,GAAGH,KAAK,CAACI,eAAe,EAAED,QAAQ,IAAIH,KAAK,CAACK,QAAQ,EAAEF,QAAQ;IAE5E,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKX,WAAW,EAAE;MACvC,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;IACxD;IAEA,MAAMK,WAAW,GAAG,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACJ,QAAQ,CAAC;IACzF,MAAMK,eAAe,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOnB,MAAM,CAACsB,IAAI,CAAC,IAAIlB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACI,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMW,2BAA2B,GAAGxB,eAAe,CAAC;EACvDyB,WAAW,EAAEvB,kBAAkB;EAC/BwB,SAAS,EAAEpB,+BAA+B;EAC1CqB,YAAY,EAAE,CAACxB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { DeleteEntryRevisionUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js";
2
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
3
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class DeleteEntryRevisionWithFlpDecoratorImpl implements DeleteEntryRevisionUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private getRevisionById;
8
+ private decoratee;
9
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: DeleteEntryRevisionUseCase.Interface);
10
+ execute(model: CmsModel, revisionId: string): ReturnType<DeleteEntryRevisionUseCase.Interface["execute"]>;
11
+ }
12
+ export declare const DeleteEntryRevisionWithFlpDecorator: typeof DeleteEntryRevisionWithFlpDecoratorImpl;
13
+ export {};
@@ -0,0 +1,43 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { DeleteEntryRevisionUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ class DeleteEntryRevisionWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee) {
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, revisionId) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
15
+ return this.decoratee.execute(model, revisionId);
16
+ }
17
+ const entryResult = await this.getRevisionById.execute(model, revisionId);
18
+ if (entryResult.isFail()) {
19
+ return this.decoratee.execute(model, revisionId);
20
+ }
21
+ const entry = entryResult.value;
22
+ const folderId = entry?.location?.folderId;
23
+ if (!folderId || folderId === ROOT_FOLDER) {
24
+ return this.decoratee.execute(model, revisionId);
25
+ }
26
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
27
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
28
+ permissions,
29
+ rwd: "d"
30
+ });
31
+ if (!canAccessFolder) {
32
+ return Result.fail(new EntryNotAuthorizedError());
33
+ }
34
+ return this.decoratee.execute(model, revisionId);
35
+ }
36
+ }
37
+ export const DeleteEntryRevisionWithFlpDecorator = createDecorator({
38
+ abstraction: DeleteEntryRevisionUseCase,
39
+ decorator: DeleteEntryRevisionWithFlpDecoratorImpl,
40
+ dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
41
+ });
42
+
43
+ //# sourceMappingURL=DeleteEntryRevisionWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","DeleteEntryRevisionUseCase","GetRevisionByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","DeleteEntryRevisionWithFlpDecoratorImpl","constructor","folderLevelPermissions","getRevisionById","decoratee","execute","model","revisionId","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","DeleteEntryRevisionWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["DeleteEntryRevisionWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { DeleteEntryRevisionUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass DeleteEntryRevisionWithFlpDecoratorImpl implements DeleteEntryRevisionUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: DeleteEntryRevisionUseCase.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n revisionId: string\n ): ReturnType<DeleteEntryRevisionUseCase.Interface[\"execute\"]> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const entryResult = await this.getRevisionById.execute(model, revisionId);\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, revisionId);\n }\n}\n\nexport const DeleteEntryRevisionWithFlpDecorator = createDecorator({\n abstraction: DeleteEntryRevisionUseCase,\n decorator: DeleteEntryRevisionWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,0BAA0B,QAAQ,oFAAoF;AAC/H,SAASC,sBAAsB,QAAQ,gFAAgF;AAEvH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,uCAAuC,CAAiD;EAC1FC,WAAWA,CACCC,sBAAwD,EACxDC,eAAiD,EACjDC,SAA+C,EACzD;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,SAA+C,GAA/CA,SAA+C;EACxD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,UAAkB,EACyC;IAC3D,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACM,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACJ,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACN,eAAe,CAACE,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACzE,IAAIE,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACN,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKf,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACb,sBAAsB,CAACc,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACf,sBAAsB,CAACgB,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOvB,MAAM,CAAC0B,IAAI,CAAC,IAAIrB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;EACpD;AACJ;AAEA,OAAO,MAAMc,mCAAmC,GAAG5B,eAAe,CAAC;EAC/D6B,WAAW,EAAE3B,0BAA0B;EACvC4B,SAAS,EAAEvB,uCAAuC;EAClDwB,YAAY,EAAE,CAAC3B,sBAAsB,EAAED,sBAAsB;AACjE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js";
2
+ import { GetLatestRevisionByEntryIdBaseUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js";
3
+ import type { CmsModel, CmsDeleteEntryOptions } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class DeleteEntryWithFlpDecoratorImpl implements DeleteEntryUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private getLatestRevisionByEntryId;
8
+ private decoratee;
9
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getLatestRevisionByEntryId: GetLatestRevisionByEntryIdBaseUseCase.Interface, decoratee: DeleteEntryUseCase.Interface);
10
+ execute(model: CmsModel, id: string, options?: CmsDeleteEntryOptions): ReturnType<DeleteEntryUseCase.Interface["execute"]>;
11
+ }
12
+ export declare const DeleteEntryWithFlpDecorator: typeof DeleteEntryWithFlpDecoratorImpl;
13
+ export {};
@@ -0,0 +1,45 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js";
3
+ import { GetLatestRevisionByEntryIdBaseUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ class DeleteEntryWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getLatestRevisionByEntryId, decoratee) {
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getLatestRevisionByEntryId = getLatestRevisionByEntryId;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, id, options) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
15
+ return this.decoratee.execute(model, id, options);
16
+ }
17
+ const entryResult = await this.getLatestRevisionByEntryId.execute(model, {
18
+ id
19
+ });
20
+ if (entryResult.isFail()) {
21
+ return this.decoratee.execute(model, id, options);
22
+ }
23
+ const entry = entryResult.value;
24
+ const folderId = entry?.location?.folderId;
25
+ if (!folderId || folderId === ROOT_FOLDER) {
26
+ return this.decoratee.execute(model, id, options);
27
+ }
28
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
29
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
30
+ permissions,
31
+ rwd: "d"
32
+ });
33
+ if (!canAccessFolder) {
34
+ return Result.fail(new EntryNotAuthorizedError());
35
+ }
36
+ return this.decoratee.execute(model, id, options);
37
+ }
38
+ }
39
+ export const DeleteEntryWithFlpDecorator = createDecorator({
40
+ abstraction: DeleteEntryUseCase,
41
+ decorator: DeleteEntryWithFlpDecoratorImpl,
42
+ dependencies: [FolderLevelPermissions, GetLatestRevisionByEntryIdBaseUseCase]
43
+ });
44
+
45
+ //# sourceMappingURL=DeleteEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","DeleteEntryUseCase","GetLatestRevisionByEntryIdBaseUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","DeleteEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","getLatestRevisionByEntryId","decoratee","execute","model","id","options","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","DeleteEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["DeleteEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js\";\nimport { GetLatestRevisionByEntryIdBaseUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js\";\nimport type { CmsModel, CmsDeleteEntryOptions } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass DeleteEntryWithFlpDecoratorImpl implements DeleteEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getLatestRevisionByEntryId: GetLatestRevisionByEntryIdBaseUseCase.Interface,\n private decoratee: DeleteEntryUseCase.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n id: string,\n options?: CmsDeleteEntryOptions\n ): ReturnType<DeleteEntryUseCase.Interface[\"execute\"]> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, id, options);\n }\n\n const entryResult = await this.getLatestRevisionByEntryId.execute(model, { id });\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, id, options);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, id, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, id, options);\n }\n}\n\nexport const DeleteEntryWithFlpDecorator = createDecorator({\n abstraction: DeleteEntryUseCase,\n decorator: DeleteEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetLatestRevisionByEntryIdBaseUseCase]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,kBAAkB,QAAQ,4EAA4E;AAC/G,SAASC,qCAAqC,QAAQ,2FAA2F;AAEjJ,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,+BAA+B,CAAyC;EAC1EC,WAAWA,CACCC,sBAAwD,EACxDC,0BAA2E,EAC3EC,SAAuC,EACjD;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,0BAA2E,GAA3EA,0BAA2E;IAAA,KAC3EC,SAAuC,GAAvCA,SAAuC;EAChD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,EAAU,EACVC,OAA+B,EACoB;IACnD,IAAI,CAAC,IAAI,CAACN,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACL,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACP,0BAA0B,CAACE,OAAO,CAACC,KAAK,EAAE;MAAEC;IAAG,CAAC,CAAC;IAChF,IAAIG,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACP,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKhB,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAAChB,sBAAsB,CAACiB,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOxB,MAAM,CAAC2B,IAAI,CAAC,IAAItB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;EACrD;AACJ;AAEA,OAAO,MAAMc,2BAA2B,GAAG7B,eAAe,CAAC;EACvD8B,WAAW,EAAE5B,kBAAkB;EAC/B6B,SAAS,EAAExB,+BAA+B;EAC1CyB,YAAY,EAAE,CAAC5B,sBAAsB,EAAED,qCAAqC;AAChF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
3
+ import type { CmsModel, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class GetEntryByIdWithFlpDecoratorImpl implements GetEntryByIdUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private decoratee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetEntryByIdUseCase.Interface);
9
+ execute<T extends CmsEntryValues>(model: CmsModel, id: string): Promise<Result<CmsEntry<T>, GetEntryByIdUseCase.Error>>;
10
+ }
11
+ export declare const GetEntryByIdWithFlpDecorator: typeof GetEntryByIdWithFlpDecoratorImpl;
12
+ export {};
@@ -0,0 +1,41 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../constants.js";
5
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
6
+ class GetEntryByIdWithFlpDecoratorImpl {
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.folderLevelPermissions = folderLevelPermissions;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(model, id) {
12
+ const result = await this.decoratee.execute(model, id);
13
+ if (result.isFail()) {
14
+ return result;
15
+ }
16
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
17
+ return result;
18
+ }
19
+ const entry = result.value;
20
+ const folderId = entry?.location?.folderId;
21
+ if (!folderId || folderId === ROOT_FOLDER) {
22
+ return result;
23
+ }
24
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
25
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
26
+ permissions,
27
+ rwd: "r"
28
+ });
29
+ if (!canAccessFolder) {
30
+ return Result.fail(new EntryNotAuthorizedError());
31
+ }
32
+ return result;
33
+ }
34
+ }
35
+ export const GetEntryByIdWithFlpDecorator = createDecorator({
36
+ abstraction: GetEntryByIdUseCase,
37
+ decorator: GetEntryByIdWithFlpDecoratorImpl,
38
+ dependencies: [FolderLevelPermissions]
39
+ });
40
+
41
+ //# sourceMappingURL=GetEntryByIdWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","GetEntryByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","GetEntryByIdWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","id","result","isFail","canUseFolderLevelPermissions","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","GetEntryByIdWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["GetEntryByIdWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js\";\nimport type { CmsModel, CmsEntryValues, CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass GetEntryByIdWithFlpDecoratorImpl implements GetEntryByIdUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetEntryByIdUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n id: string\n ): Promise<Result<CmsEntry<T>, GetEntryByIdUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, id);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entry = result.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return result;\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetEntryByIdWithFlpDecorator = createDecorator({\n abstraction: GetEntryByIdUseCase,\n decorator: GetEntryByIdWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,mBAAmB,QAAQ,6EAA6E;AAEjH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,gCAAgC,CAA0C;EAC5EC,WAAWA,CACCC,sBAAwD,EACxDC,SAAwC,EAClD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAwC,GAAxCA,SAAwC;EACjD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,EAAU,EAC6C;IACvD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,CAAC;IAEzD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,KAAK,GAAGH,MAAM,CAACI,KAAK;IAC1B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKd,WAAW,EAAE;MACvC,OAAOS,MAAM;IACjB;IAEA,MAAMO,WAAW,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOrB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAOQ,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMa,4BAA4B,GAAG1B,eAAe,CAAC;EACxD2B,WAAW,EAAEzB,mBAAmB;EAChC0B,SAAS,EAAEtB,gCAAgC;EAC3CuB,YAAY,EAAE,CAAC1B,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js";
3
+ import type { CmsModel, CmsEntryGetParams, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class GetEntryWithFlpDecoratorImpl implements GetEntryUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private decoratee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetEntryUseCase.Interface);
9
+ execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryGetParams): Promise<Result<CmsEntry<T>, GetEntryUseCase.Error>>;
10
+ }
11
+ export declare const GetEntryWithFlpDecorator: typeof GetEntryWithFlpDecoratorImpl;
12
+ export {};
@@ -0,0 +1,41 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../constants.js";
5
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors";
6
+ class GetEntryWithFlpDecoratorImpl {
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.folderLevelPermissions = folderLevelPermissions;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(model, params) {
12
+ const result = await this.decoratee.execute(model, params);
13
+ if (result.isFail()) {
14
+ return result;
15
+ }
16
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
17
+ return result;
18
+ }
19
+ const entry = result.value;
20
+ const folderId = entry?.location?.folderId;
21
+ if (!folderId || folderId === ROOT_FOLDER) {
22
+ return result;
23
+ }
24
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
25
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
26
+ permissions,
27
+ rwd: "r"
28
+ });
29
+ if (!canAccessFolder) {
30
+ return Result.fail(new EntryNotAuthorizedError());
31
+ }
32
+ return result;
33
+ }
34
+ }
35
+ export const GetEntryWithFlpDecorator = createDecorator({
36
+ abstraction: GetEntryUseCase,
37
+ decorator: GetEntryWithFlpDecoratorImpl,
38
+ dependencies: [FolderLevelPermissions]
39
+ });
40
+
41
+ //# sourceMappingURL=GetEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","GetEntryUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","GetEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","params","result","isFail","canUseFolderLevelPermissions","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","GetEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["GetEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryGetParams,\n CmsEntryValues,\n CmsEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors\";\n\nclass GetEntryWithFlpDecoratorImpl implements GetEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetEntryUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<Result<CmsEntry<T>, GetEntryUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, params);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entry = result.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return result;\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetEntryWithFlpDecorator = createDecorator({\n abstraction: GetEntryUseCase,\n decorator: GetEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,eAAe,QAAQ,yEAAyE;AAOzG,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,qDAAqD;AAE7F,MAAMC,4BAA4B,CAAsC;EACpEC,WAAWA,CACCC,sBAAwD,EACxDC,SAAoC,EAC9C;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAoC,GAApCA,SAAoC;EAC7C;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,MAAyB,EAC0B;IACnD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,MAAM,CAAC;IAE7D,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,KAAK,GAAGH,MAAM,CAACI,KAAK;IAC1B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKd,WAAW,EAAE;MACvC,OAAOS,MAAM;IACjB;IAEA,MAAMO,WAAW,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOrB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAOQ,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMa,wBAAwB,GAAG1B,eAAe,CAAC;EACpD2B,WAAW,EAAEzB,eAAe;EAC5B0B,SAAS,EAAEtB,4BAA4B;EACvCuB,YAAY,EAAE,CAAC1B,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetLatestEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js";
3
+ import type { CmsModel, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class GetLatestEntriesByIdsWithFlpDecoratorImpl implements GetLatestEntriesByIdsUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private decoratee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetLatestEntriesByIdsUseCase.Interface);
9
+ execute<T extends CmsEntryValues>(model: CmsModel, ids: string[]): Promise<Result<CmsEntry<T>[], GetLatestEntriesByIdsUseCase.Error>>;
10
+ private filterEntriesByFolder;
11
+ }
12
+ export declare const GetLatestEntriesByIdsWithFlpDecorator: typeof GetLatestEntriesByIdsWithFlpDecoratorImpl;
13
+ export {};
@@ -0,0 +1,45 @@
1
+ import { createDecorator } from "@webiny/feature/api";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { GetLatestEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ class GetLatestEntriesByIdsWithFlpDecoratorImpl {
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.folderLevelPermissions = folderLevelPermissions;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(model, ids) {
12
+ const result = await this.decoratee.execute(model, ids);
13
+ if (result.isFail()) {
14
+ return result;
15
+ }
16
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
17
+ return result;
18
+ }
19
+ const entries = result.value;
20
+ const filteredEntries = await this.filterEntriesByFolder(entries);
21
+ return Result.ok(filteredEntries);
22
+ }
23
+ async filterEntriesByFolder(entries) {
24
+ const results = await Promise.all(entries.map(async entry => {
25
+ const folderId = entry.location?.folderId;
26
+ if (!folderId || folderId === ROOT_FOLDER) {
27
+ return entry;
28
+ }
29
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
30
+ const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
31
+ permissions,
32
+ rwd: "r"
33
+ });
34
+ return canAccess ? entry : null;
35
+ }));
36
+ return results.filter(entry => !!entry);
37
+ }
38
+ }
39
+ export const GetLatestEntriesByIdsWithFlpDecorator = createDecorator({
40
+ abstraction: GetLatestEntriesByIdsUseCase,
41
+ decorator: GetLatestEntriesByIdsWithFlpDecoratorImpl,
42
+ dependencies: [FolderLevelPermissions]
43
+ });
44
+
45
+ //# sourceMappingURL=GetLatestEntriesByIdsWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","GetLatestEntriesByIdsUseCase","FolderLevelPermissions","ROOT_FOLDER","GetLatestEntriesByIdsWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","ids","result","isFail","canUseFolderLevelPermissions","entries","value","filteredEntries","filterEntriesByFolder","ok","results","Promise","all","map","entry","folderId","location","permissions","getFolderLevelPermissions","canAccess","canAccessFolderContent","rwd","filter","GetLatestEntriesByIdsWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["GetLatestEntriesByIdsWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { GetLatestEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js\";\nimport type { CmsModel, CmsEntryValues, CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetLatestEntriesByIdsWithFlpDecoratorImpl implements GetLatestEntriesByIdsUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetLatestEntriesByIdsUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], GetLatestEntriesByIdsUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, ids);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entries = result.value;\n const filteredEntries = await this.filterEntriesByFolder<T>(entries);\n\n return Result.ok(filteredEntries);\n }\n\n private async filterEntriesByFolder<T extends CmsEntryValues = CmsEntryValues>(\n entries: CmsEntry<T>[]\n ): Promise<CmsEntry<T>[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccess = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccess ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry<T> => !!entry);\n }\n}\n\nexport const GetLatestEntriesByIdsWithFlpDecorator = createDecorator({\n abstraction: GetLatestEntriesByIdsUseCase,\n decorator: GetLatestEntriesByIdsWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,4BAA4B,QAAQ,sFAAsF;AAEnI,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAEpB,MAAMC,yCAAyC,CAAmD;EAC9FC,WAAWA,CACCC,sBAAwD,EACxDC,SAAiD,EAC3D;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAiD,GAAjDA,SAAiD;EAC1D;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,GAAa,EACqD;IAClE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,GAAG,CAAC;IAE1D,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,OAAO,GAAGH,MAAM,CAACI,KAAK;IAC5B,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAAIH,OAAO,CAAC;IAEpE,OAAOd,MAAM,CAACkB,EAAE,CAACF,eAAe,CAAC;EACrC;EAEA,MAAcC,qBAAqBA,CAC/BH,OAAsB,EACA;IACtB,MAAMK,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BP,OAAO,CAACQ,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKrB,WAAW,EAAE;QACvC,OAAOoB,KAAK;MAChB;MAEA,MAAMG,WAAW,GACb,MAAM,IAAI,CAACpB,sBAAsB,CAACqB,yBAAyB,CAACH,QAAQ,CAAC;MACzE,MAAMI,SAAS,GAAG,MAAM,IAAI,CAACtB,sBAAsB,CAACuB,sBAAsB,CAAC;QACvEH,WAAW;QACXI,GAAG,EAAE;MACT,CAAC,CAAC;MACF,OAAOF,SAAS,GAAGL,KAAK,GAAG,IAAI;IACnC,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACY,MAAM,CAAER,KAAK,IAA2B,CAAC,CAACA,KAAK,CAAC;EACnE;AACJ;AAEA,OAAO,MAAMS,qCAAqC,GAAGjC,eAAe,CAAC;EACjEkC,WAAW,EAAEhC,4BAA4B;EACzCiC,SAAS,EAAE9B,yCAAyC;EACpD+B,YAAY,EAAE,CAACjC,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetPublishedEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js";
3
+ import type { CmsEntry, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
5
+ declare class GetPublishedEntriesByIdsWithFlpDecoratorImpl implements GetPublishedEntriesByIdsUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private decoratee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetPublishedEntriesByIdsUseCase.Interface);
9
+ execute<T extends CmsEntryValues>(model: CmsModel, ids: string[]): Promise<Result<CmsEntry<T>[], GetPublishedEntriesByIdsUseCase.Error>>;
10
+ private filterEntriesByFolder;
11
+ }
12
+ export declare const GetPublishedEntriesByIdsWithFlpDecorator: typeof GetPublishedEntriesByIdsWithFlpDecoratorImpl;
13
+ export {};
@@ -0,0 +1,44 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { GetPublishedEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../constants.js";
5
+ class GetPublishedEntriesByIdsWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee) {
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoratee = decoratee;
9
+ }
10
+ async execute(model, ids) {
11
+ const result = await this.decoratee.execute(model, ids);
12
+ if (result.isFail()) {
13
+ return result;
14
+ }
15
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
16
+ return result;
17
+ }
18
+ const entries = result.value;
19
+ const filteredEntries = await this.filterEntriesByFolder(entries);
20
+ return Result.ok(filteredEntries);
21
+ }
22
+ async filterEntriesByFolder(entries) {
23
+ const results = await Promise.all(entries.map(async entry => {
24
+ const folderId = entry.location?.folderId;
25
+ if (!folderId || folderId === ROOT_FOLDER) {
26
+ return entry;
27
+ }
28
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
29
+ const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
30
+ permissions,
31
+ rwd: "r"
32
+ });
33
+ return canAccess ? entry : null;
34
+ }));
35
+ return results.filter(entry => !!entry);
36
+ }
37
+ }
38
+ export const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({
39
+ abstraction: GetPublishedEntriesByIdsUseCase,
40
+ decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,
41
+ dependencies: [FolderLevelPermissions]
42
+ });
43
+
44
+ //# sourceMappingURL=GetPublishedEntriesByIdsWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","GetPublishedEntriesByIdsUseCase","FolderLevelPermissions","ROOT_FOLDER","GetPublishedEntriesByIdsWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","ids","result","isFail","canUseFolderLevelPermissions","entries","value","filteredEntries","filterEntriesByFolder","ok","results","Promise","all","map","entry","folderId","location","permissions","getFolderLevelPermissions","canAccess","canAccessFolderContent","rwd","filter","GetPublishedEntriesByIdsWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["GetPublishedEntriesByIdsWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetPublishedEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetPublishedEntriesByIdsWithFlpDecoratorImpl\n implements GetPublishedEntriesByIdsUseCase.Interface\n{\n public constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetPublishedEntriesByIdsUseCase.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], GetPublishedEntriesByIdsUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, ids);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entries = result.value;\n const filteredEntries = await this.filterEntriesByFolder<T>(entries);\n\n return Result.ok(filteredEntries);\n }\n\n private async filterEntriesByFolder<T extends CmsEntryValues = CmsEntryValues>(\n entries: CmsEntry<T>[]\n ): Promise<CmsEntry<T>[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccess = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccess ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry<T> => !!entry);\n }\n}\n\nexport const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({\n abstraction: GetPublishedEntriesByIdsUseCase,\n decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,+BAA+B,QAAQ,yFAAyF;AAEzI,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAEpB,MAAMC,4CAA4C,CAElD;EACWC,WAAWA,CACNC,sBAAwD,EACxDC,SAAoD,EAC9D;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAoD,GAApDA,SAAoD;EAC7D;EAEH,MAAaC,OAAOA,CAChBC,KAAe,EACfC,GAAa,EACwD;IACrE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,GAAG,CAAC;IAE1D,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,OAAO,GAAGH,MAAM,CAACI,KAAK;IAC5B,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAAIH,OAAO,CAAC;IAEpE,OAAOd,MAAM,CAACkB,EAAE,CAACF,eAAe,CAAC;EACrC;EAEA,MAAcC,qBAAqBA,CAC/BH,OAAsB,EACA;IACtB,MAAMK,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BP,OAAO,CAACQ,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKrB,WAAW,EAAE;QACvC,OAAOoB,KAAK;MAChB;MAEA,MAAMG,WAAW,GACb,MAAM,IAAI,CAACpB,sBAAsB,CAACqB,yBAAyB,CAACH,QAAQ,CAAC;MACzE,MAAMI,SAAS,GAAG,MAAM,IAAI,CAACtB,sBAAsB,CAACuB,sBAAsB,CAAC;QACvEH,WAAW;QACXI,GAAG,EAAE;MACT,CAAC,CAAC;MACF,OAAOF,SAAS,GAAGL,KAAK,GAAG,IAAI;IACnC,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACY,MAAM,CAAER,KAAK,IAA2B,CAAC,CAACA,KAAK,CAAC;EACnE;AACJ;AAEA,OAAO,MAAMS,wCAAwC,GAAGjC,eAAe,CAAC;EACpEkC,WAAW,EAAEhC,+BAA+B;EAC5CiC,SAAS,EAAE9B,4CAA4C;EACvD+B,YAAY,EAAE,CAACjC,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsModel, CmsEntryValues, CmsEntryListParams } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListDeletedEntriesWithFlpDecoratorImpl implements ListDeletedEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListDeletedEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListDeletedEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListDeletedEntriesWithFlpDecorator: typeof ListDeletedEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { createDecorator } from "@webiny/feature/api";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
6
+ class ListDeletedEntriesWithFlpDecoratorImpl {
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.decoratee = decoratee;
9
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
10
+ }
11
+ async execute(model, params) {
12
+ const loader = async params => {
13
+ const result = await this.decoratee.execute(model, params);
14
+ return result.value;
15
+ };
16
+ const {
17
+ entries,
18
+ meta
19
+ } = await this.listEntriesHandler.execute({
20
+ model,
21
+ dataLoader: loader,
22
+ initialParams: params
23
+ });
24
+ return Result.ok({
25
+ entries,
26
+ meta
27
+ });
28
+ }
29
+ }
30
+ export const ListDeletedEntriesWithFlpDecorator = createDecorator({
31
+ abstraction: ListDeletedEntriesUseCase,
32
+ decorator: ListDeletedEntriesWithFlpDecoratorImpl,
33
+ dependencies: [FolderLevelPermissions]
34
+ });
35
+
36
+ //# sourceMappingURL=ListDeletedEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","ListDeletedEntriesUseCase","FolderLevelPermissions","ListEntriesFactory","ListDeletedEntriesWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","listEntriesHandler","execute","model","params","loader","result","value","entries","meta","dataLoader","initialParams","ok","ListDeletedEntriesWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["ListDeletedEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListDeletedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryListParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListEntriesFactory } from \"~/utils/decorators/ListEntriesFactory.js\";\n\nclass ListDeletedEntriesWithFlpDecoratorImpl implements ListDeletedEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListDeletedEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListDeletedEntriesUseCase.Return<T> {\n const loader = async (params?: CmsEntryListParams) => {\n const result = await this.decoratee.execute<T>(model, params);\n return result.value;\n };\n\n const { entries, meta } = await this.listEntriesHandler.execute<T>({\n model,\n dataLoader: loader,\n initialParams: params\n });\n\n return Result.ok({ entries, meta });\n }\n}\n\nexport const ListDeletedEntriesWithFlpDecorator = createDecorator({\n abstraction: ListDeletedEntriesUseCase,\n decorator: ListDeletedEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,yBAAyB,QAAQ,4EAA4E;AAMtH,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAE3B,MAAMC,sCAAsC,CAAgD;EAGxFC,WAAWA,CACPC,sBAAwD,EAChDC,SAA8C,EACxD;IAAA,KADUA,SAA8C,GAA9CA,SAA8C;IAEtD,IAAI,CAACC,kBAAkB,GAAG,IAAIL,kBAAkB,CAACG,sBAAsB,CAAC;EAC5E;EAEA,MAAMG,OAAOA,CACTC,KAAe,EACfC,MAA2B,EACQ;IACnC,MAAMC,MAAM,GAAG,MAAOD,MAA2B,IAAK;MAClD,MAAME,MAAM,GAAG,MAAM,IAAI,CAACN,SAAS,CAACE,OAAO,CAAIC,KAAK,EAAEC,MAAM,CAAC;MAC7D,OAAOE,MAAM,CAACC,KAAK;IACvB,CAAC;IAED,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAG,MAAM,IAAI,CAACR,kBAAkB,CAACC,OAAO,CAAI;MAC/DC,KAAK;MACLO,UAAU,EAAEL,MAAM;MAClBM,aAAa,EAAEP;IACnB,CAAC,CAAC;IAEF,OAAOX,MAAM,CAACmB,EAAE,CAAC;MAAEJ,OAAO;MAAEC;IAAK,CAAC,CAAC;EACvC;AACJ;AAEA,OAAO,MAAMI,kCAAkC,GAAGrB,eAAe,CAAC;EAC9DsB,WAAW,EAAEpB,yBAAyB;EACtCqB,SAAS,EAAElB,sCAAsC;EACjDmB,YAAY,EAAE,CAACrB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}