@webiny/api-aco 6.0.0-beta.0 → 6.0.0-rc.1

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 (604) hide show
  1. package/README.md +6 -28
  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 +4 -2
  6. package/createAcoContext.js +103 -168
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +46 -60
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -5
  12. package/createAcoStorageOperations.js +5 -17
  13. package/createAcoStorageOperations.js.map +1 -1
  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 +2 -2
  408. package/filter/filter.crud.js +6 -67
  409. package/filter/filter.crud.js.map +1 -1
  410. package/filter/filter.gql.d.ts +2 -2
  411. package/filter/filter.gql.js +16 -22
  412. package/filter/filter.gql.js.map +1 -1
  413. package/filter/filter.model.d.ts +9 -2
  414. package/filter/filter.model.js +38 -121
  415. package/filter/filter.model.js.map +1 -1
  416. package/filter/filter.so.d.ts +2 -2
  417. package/filter/filter.so.js +38 -32
  418. package/filter/filter.so.js.map +1 -1
  419. package/filter/filter.types.d.ts +4 -32
  420. package/filter/filter.types.js +1 -7
  421. package/filter/filter.types.js.map +1 -1
  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 -3
  456. package/folder/folder.gql.js +143 -185
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +40 -79
  459. package/folder/folder.types.js +1 -5
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +5 -6
  462. package/index.js +7 -62
  463. package/index.js.map +1 -1
  464. package/package.json +43 -40
  465. package/types.d.ts +22 -76
  466. package/types.js +2 -53
  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.js +2 -10
  478. package/utils/acoRecordId.js.map +1 -1
  479. package/utils/compress.d.ts +4 -0
  480. package/utils/compress.js +12 -0
  481. package/utils/compress.js.map +1 -0
  482. package/utils/createListSort.d.ts +3 -2
  483. package/utils/createListSort.js +4 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +7 -12
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +70 -98
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  491. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  494. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  495. package/utils/decorators/ListEntriesFactory.js +106 -0
  496. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  497. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  498. package/utils/decorators/hasRootFolderId.js +19 -0
  499. package/utils/decorators/hasRootFolderId.js.map +1 -0
  500. package/utils/decorators/isPageModel.d.ts +1 -1
  501. package/utils/decorators/isPageModel.js +1 -8
  502. package/utils/decorators/isPageModel.js.map +1 -1
  503. package/utils/ensureAuthentication.d.ts +2 -2
  504. package/utils/ensureAuthentication.js +8 -12
  505. package/utils/ensureAuthentication.js.map +1 -1
  506. package/utils/pickEntryFieldValues.d.ts +1 -1
  507. package/utils/pickEntryFieldValues.js +3 -10
  508. package/utils/pickEntryFieldValues.js.map +1 -1
  509. package/utils/resolve.d.ts +1 -2
  510. package/utils/resolve.js +4 -20
  511. package/utils/resolve.js.map +1 -1
  512. package/apps/AcoApp.d.ts +0 -21
  513. package/apps/AcoApp.js +0 -143
  514. package/apps/AcoApp.js.map +0 -1
  515. package/apps/AcoApps.d.ts +0 -10
  516. package/apps/AcoApps.js +0 -75
  517. package/apps/AcoApps.js.map +0 -1
  518. package/apps/app.gql.d.ts +0 -3
  519. package/apps/app.gql.js +0 -59
  520. package/apps/app.gql.js.map +0 -1
  521. package/apps/index.d.ts +0 -2
  522. package/apps/index.js +0 -29
  523. package/apps/index.js.map +0 -1
  524. package/createAcoHooks.d.ts +0 -2
  525. package/createAcoHooks.js +0 -17
  526. package/createAcoHooks.js.map +0 -1
  527. package/createAcoModels.d.ts +0 -2
  528. package/createAcoModels.js +0 -29
  529. package/createAcoModels.js.map +0 -1
  530. package/folder/folder.crud.d.ts +0 -10
  531. package/folder/folder.crud.js +0 -306
  532. package/folder/folder.crud.js.map +0 -1
  533. package/folder/folder.model.d.ts +0 -2
  534. package/folder/folder.model.js +0 -110
  535. package/folder/folder.model.js.map +0 -1
  536. package/folder/folder.so.d.ts +0 -3
  537. package/folder/folder.so.js +0 -170
  538. package/folder/folder.so.js.map +0 -1
  539. package/folder/onFolderBeforeDeleteAco.hook.d.ts +0 -2
  540. package/folder/onFolderBeforeDeleteAco.hook.js +0 -67
  541. package/folder/onFolderBeforeDeleteAco.hook.js.map +0 -1
  542. package/folder/onFolderBeforeDeleteFm.hook.d.ts +0 -2
  543. package/folder/onFolderBeforeDeleteFm.hook.js +0 -49
  544. package/folder/onFolderBeforeDeleteFm.hook.js.map +0 -1
  545. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +0 -2
  546. package/folder/onFolderBeforeDeleteHcms.hook.js +0 -56
  547. package/folder/onFolderBeforeDeleteHcms.hook.js.map +0 -1
  548. package/plugins/AcoAppModifierPlugin.d.ts +0 -43
  549. package/plugins/AcoAppModifierPlugin.js +0 -58
  550. package/plugins/AcoAppModifierPlugin.js.map +0 -1
  551. package/plugins/AcoAppRegisterPlugin.d.ts +0 -8
  552. package/plugins/AcoAppRegisterPlugin.js +0 -21
  553. package/plugins/AcoAppRegisterPlugin.js.map +0 -1
  554. package/plugins/index.d.ts +0 -2
  555. package/plugins/index.js +0 -29
  556. package/plugins/index.js.map +0 -1
  557. package/record/graphql/createAppResolvers.d.ts +0 -14
  558. package/record/graphql/createAppResolvers.js +0 -115
  559. package/record/graphql/createAppResolvers.js.map +0 -1
  560. package/record/graphql/createAppSchema.d.ts +0 -9
  561. package/record/graphql/createAppSchema.js +0 -146
  562. package/record/graphql/createAppSchema.js.map +0 -1
  563. package/record/record.crud.d.ts +0 -3
  564. package/record/record.crud.js +0 -128
  565. package/record/record.crud.js.map +0 -1
  566. package/record/record.gql.d.ts +0 -8
  567. package/record/record.gql.js +0 -43
  568. package/record/record.gql.js.map +0 -1
  569. package/record/record.model.d.ts +0 -8
  570. package/record/record.model.js +0 -91
  571. package/record/record.model.js.map +0 -1
  572. package/record/record.so.d.ts +0 -3
  573. package/record/record.so.js +0 -147
  574. package/record/record.so.js.map +0 -1
  575. package/record/record.types.d.ts +0 -144
  576. package/record/record.types.js +0 -7
  577. package/record/record.types.js.map +0 -1
  578. package/utils/FolderLevelPermissions.d.ts +0 -74
  579. package/utils/FolderLevelPermissions.js +0 -386
  580. package/utils/FolderLevelPermissions.js.map +0 -1
  581. package/utils/createModelField.d.ts +0 -5
  582. package/utils/createModelField.js +0 -39
  583. package/utils/createModelField.js.map +0 -1
  584. package/utils/decorators/constants.d.ts +0 -1
  585. package/utils/decorators/constants.js +0 -9
  586. package/utils/decorators/constants.js.map +0 -1
  587. package/utils/decorators/createFolderType.d.ts +0 -2
  588. package/utils/decorators/createFolderType.js +0 -18
  589. package/utils/decorators/createFolderType.js.map +0 -1
  590. package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +0 -23
  591. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +0 -47
  592. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +0 -1
  593. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  594. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  595. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  596. package/utils/decorators/where.d.ts +0 -15
  597. package/utils/decorators/where.js +0 -60
  598. package/utils/decorators/where.js.map +0 -1
  599. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  600. package/utils/getFolderAndItsAncestors.js +0 -53
  601. package/utils/getFolderAndItsAncestors.js.map +0 -1
  602. package/utils/modelFactory.d.ts +0 -13
  603. package/utils/modelFactory.js +0 -22
  604. package/utils/modelFactory.js.map +0 -1
@@ -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":[]}
@@ -0,0 +1,11 @@
1
+ import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsEntryListParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListEntriesWithFlpDecoratorImpl implements ListEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListEntriesWithFlpDecorator: typeof ListEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,35 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
5
+ class ListEntriesWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee) {
7
+ this.decoratee = decoratee;
8
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
9
+ }
10
+ async execute(model, params) {
11
+ const loader = async params => {
12
+ const result = await this.decoratee.execute(model, params);
13
+ return result.value;
14
+ };
15
+ const {
16
+ entries,
17
+ meta
18
+ } = await this.listEntriesHandler.execute({
19
+ model,
20
+ dataLoader: loader,
21
+ initialParams: params
22
+ });
23
+ return Result.ok({
24
+ entries,
25
+ meta
26
+ });
27
+ }
28
+ }
29
+ export const ListEntriesWithFlpDecorator = createDecorator({
30
+ abstraction: ListEntriesUseCase,
31
+ decorator: ListEntriesWithFlpDecoratorImpl,
32
+ dependencies: [FolderLevelPermissions]
33
+ });
34
+
35
+ //# sourceMappingURL=ListEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","ListEntriesUseCase","FolderLevelPermissions","ListEntriesFactory","ListEntriesWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","listEntriesHandler","execute","model","params","loader","result","value","entries","meta","dataLoader","initialParams","ok","ListEntriesWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["ListEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { ListEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsEntryListParams,\n CmsEntryValues,\n CmsModel\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 ListEntriesWithFlpDecoratorImpl implements ListEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListEntriesUseCase.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 ListEntriesWithFlpDecorator = createDecorator({\n abstraction: ListEntriesUseCase,\n decorator: ListEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,kBAAkB,QAAQ,4EAA4E;AAM/G,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAE3B,MAAMC,+BAA+B,CAAyC;EAG1EC,WAAWA,CACPC,sBAAwD,EAChDC,SAAuC,EACjD;IAAA,KADUA,SAAuC,GAAvCA,SAAuC;IAE/C,IAAI,CAACC,kBAAkB,GAAG,IAAIL,kBAAkB,CAACG,sBAAsB,CAAC;EAC5E;EAEA,MAAMG,OAAOA,CACTC,KAAe,EACfC,MAA2B,EACC;IAC5B,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,2BAA2B,GAAGrB,eAAe,CAAC;EACvDsB,WAAW,EAAEpB,kBAAkB;EAC/BqB,SAAS,EAAElB,+BAA+B;EAC1CmB,YAAY,EAAE,CAACrB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ListLatestEntriesUseCase } 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 ListLatestEntriesWithFlpDecoratorImpl implements ListLatestEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListLatestEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListLatestEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListLatestEntriesWithFlpDecorator: typeof ListLatestEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { createDecorator } from "@webiny/feature/api";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { ListLatestEntriesUseCase } 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 ListLatestEntriesWithFlpDecoratorImpl {
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 ListLatestEntriesWithFlpDecorator = createDecorator({
31
+ abstraction: ListLatestEntriesUseCase,
32
+ decorator: ListLatestEntriesWithFlpDecoratorImpl,
33
+ dependencies: [FolderLevelPermissions]
34
+ });
35
+
36
+ //# sourceMappingURL=ListLatestEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","ListLatestEntriesUseCase","FolderLevelPermissions","ListEntriesFactory","ListLatestEntriesWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","listEntriesHandler","execute","model","params","loader","result","value","entries","meta","dataLoader","initialParams","ok","ListLatestEntriesWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["ListLatestEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } 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 ListLatestEntriesWithFlpDecoratorImpl implements ListLatestEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListLatestEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListLatestEntriesUseCase.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 ListLatestEntriesWithFlpDecorator = createDecorator({\n abstraction: ListLatestEntriesUseCase,\n decorator: ListLatestEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,wBAAwB,QAAQ,4EAA4E;AAMrH,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAE3B,MAAMC,qCAAqC,CAA+C;EAGtFC,WAAWA,CACPC,sBAAwD,EAChDC,SAA6C,EACvD;IAAA,KADUA,SAA6C,GAA7CA,SAA6C;IAErD,IAAI,CAACC,kBAAkB,GAAG,IAAIL,kBAAkB,CAACG,sBAAsB,CAAC;EAC5E;EAEA,MAAMG,OAAOA,CACTC,KAAe,EACfC,MAA2B,EACO;IAClC,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,iCAAiC,GAAGrB,eAAe,CAAC;EAC7DsB,WAAW,EAAEpB,wBAAwB;EACrCqB,SAAS,EAAElB,qCAAqC;EAChDmB,YAAY,EAAE,CAACrB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ListPublishedEntriesUseCase } 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 ListPublishedEntriesWithFlpDecoratorImpl implements ListPublishedEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListPublishedEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListPublishedEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListPublishedEntriesWithFlpDecorator: typeof ListPublishedEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { createDecorator } from "@webiny/feature/api";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { ListPublishedEntriesUseCase } 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 ListPublishedEntriesWithFlpDecoratorImpl {
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 ListPublishedEntriesWithFlpDecorator = createDecorator({
31
+ abstraction: ListPublishedEntriesUseCase,
32
+ decorator: ListPublishedEntriesWithFlpDecoratorImpl,
33
+ dependencies: [FolderLevelPermissions]
34
+ });
35
+
36
+ //# sourceMappingURL=ListPublishedEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","ListPublishedEntriesUseCase","FolderLevelPermissions","ListEntriesFactory","ListPublishedEntriesWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","listEntriesHandler","execute","model","params","loader","result","value","entries","meta","dataLoader","initialParams","ok","ListPublishedEntriesWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["ListPublishedEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListPublishedEntriesUseCase } 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 ListPublishedEntriesWithFlpDecoratorImpl implements ListPublishedEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListPublishedEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListPublishedEntriesUseCase.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 ListPublishedEntriesWithFlpDecorator = createDecorator({\n abstraction: ListPublishedEntriesUseCase,\n decorator: ListPublishedEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,2BAA2B,QAAQ,4EAA4E;AAMxH,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAE3B,MAAMC,wCAAwC,CAAkD;EAG5FC,WAAWA,CACPC,sBAAwD,EAChDC,SAAgD,EAC1D;IAAA,KADUA,SAAgD,GAAhDA,SAAgD;IAExD,IAAI,CAACC,kBAAkB,GAAG,IAAIL,kBAAkB,CAACG,sBAAsB,CAAC;EAC5E;EAEA,MAAMG,OAAOA,CACTC,KAAe,EACfC,MAA2B,EACU;IACrC,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,oCAAoC,GAAGrB,eAAe,CAAC;EAChEsB,WAAW,EAAEpB,2BAA2B;EACxCqB,SAAS,EAAElB,wCAAwC;EACnDmB,YAAY,EAAE,CAACrB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { MoveEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import type { CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
5
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ declare class MoveEntryWithFlpDecoratorImpl implements MoveEntryUseCase.Interface {
8
+ private folderLevelPermissions;
9
+ private getRevisionById;
10
+ private decoratee;
11
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: MoveEntryUseCase.Interface);
12
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string, targetFolderId: string): Promise<Result<import("@webiny/api-headless-cms/types/types").CmsEntry<T>, EntryNotAuthorizedError | import("@webiny/api-headless-cms/domain/contentEntry/errors.js").EntryPersistenceError | import("@webiny/api-headless-cms/domain/contentEntry/errors.js").EntryNotFoundError>>;
13
+ }
14
+ export declare const MoveEntryWithFlpDecorator: typeof MoveEntryWithFlpDecoratorImpl;
15
+ export {};
@@ -0,0 +1,63 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { MoveEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/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 MoveEntryWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee) {
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, id, targetFolderId) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
15
+ return this.decoratee.execute(model, id, targetFolderId);
16
+ }
17
+
18
+ // First, get the entry to check its current folder
19
+ const entryResult = await this.getRevisionById.execute(model, id);
20
+ if (entryResult.isFail()) {
21
+ return this.decoratee.execute(model, id, targetFolderId);
22
+ }
23
+ const entry = entryResult.value;
24
+ const currentFolderId = entry?.location?.folderId || ROOT_FOLDER;
25
+
26
+ // If the entry is in the same folder we are trying to move it to, just continue
27
+ if (currentFolderId === targetFolderId) {
28
+ return this.decoratee.execute(model, id, targetFolderId);
29
+ }
30
+
31
+ // If current folder is not ROOT, check for access
32
+ if (currentFolderId !== ROOT_FOLDER) {
33
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(currentFolderId);
34
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
35
+ permissions,
36
+ rwd: "w"
37
+ });
38
+ if (!canAccessFolder) {
39
+ return Result.fail(new EntryNotAuthorizedError());
40
+ }
41
+ }
42
+
43
+ // If target folder is not ROOT, check for access
44
+ if (targetFolderId !== ROOT_FOLDER) {
45
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(targetFolderId);
46
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
47
+ permissions,
48
+ rwd: "w"
49
+ });
50
+ if (!canAccessFolder) {
51
+ return Result.fail(new EntryNotAuthorizedError());
52
+ }
53
+ }
54
+ return this.decoratee.execute(model, id, targetFolderId);
55
+ }
56
+ }
57
+ export const MoveEntryWithFlpDecorator = createDecorator({
58
+ abstraction: MoveEntryUseCase,
59
+ decorator: MoveEntryWithFlpDecoratorImpl,
60
+ dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
61
+ });
62
+
63
+ //# sourceMappingURL=MoveEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","MoveEntryUseCase","GetRevisionByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","MoveEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","getRevisionById","decoratee","execute","model","id","targetFolderId","canUseFolderLevelPermissions","entryResult","isFail","entry","value","currentFolderId","location","folderId","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","MoveEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["MoveEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { MoveEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type { CmsEntryValues, 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 MoveEntryWithFlpDecoratorImpl implements MoveEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: MoveEntryUseCase.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n targetFolderId: string\n ) {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n // First, get the entry to check its current folder\n const entryResult = await this.getRevisionById.execute<T>(model, id);\n if (entryResult.isFail()) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n const entry = entryResult.value;\n const currentFolderId = entry?.location?.folderId || ROOT_FOLDER;\n\n // If the entry is in the same folder we are trying to move it to, just continue\n if (currentFolderId === targetFolderId) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n // If current folder is not ROOT, check for access\n if (currentFolderId !== ROOT_FOLDER) {\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(currentFolderId);\n\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\n // If target folder is not ROOT, check for access\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(targetFolderId);\n\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\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n}\n\nexport const MoveEntryWithFlpDecorator = createDecorator({\n abstraction: MoveEntryUseCase,\n decorator: MoveEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,gBAAgB,QAAQ,0EAA0E;AAC3G,SAASC,sBAAsB,QAAQ,gFAAgF;AAEvH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,6BAA6B,CAAuC;EACtEC,WAAWA,CACCC,sBAAwD,EACxDC,eAAiD,EACjDC,SAAqC,EAC/C;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,SAAqC,GAArCA,SAAqC;EAC9C;EAEH,MAAaC,OAAOA,CAChBC,KAAe,EACfC,EAAU,EACVC,cAAsB,EACxB;IACE,IAAI,CAAC,IAAI,CAACN,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACL,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,EAAEC,cAAc,CAAC;IAC/D;;IAEA;IACA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACP,eAAe,CAACE,OAAO,CAAIC,KAAK,EAAEC,EAAE,CAAC;IACpE,IAAIG,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACP,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,EAAEC,cAAc,CAAC;IAC/D;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,eAAe,GAAGF,KAAK,EAAEG,QAAQ,EAAEC,QAAQ,IAAIlB,WAAW;;IAEhE;IACA,IAAIgB,eAAe,KAAKN,cAAc,EAAE;MACpC,OAAO,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,EAAEC,cAAc,CAAC;IAC/D;;IAEA;IACA,IAAIM,eAAe,KAAKhB,WAAW,EAAE;MACjC,MAAMmB,WAAW,GACb,MAAM,IAAI,CAACf,sBAAsB,CAACgB,yBAAyB,CAACJ,eAAe,CAAC;MAEhF,MAAMK,eAAe,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACkB,sBAAsB,CAAC;QAC7EH,WAAW;QACXI,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,IAAI,CAACF,eAAe,EAAE;QAClB,OAAOzB,MAAM,CAAC4B,IAAI,CAAC,IAAIvB,uBAAuB,CAAC,CAAC,CAAC;MACrD;IACJ;;IAEA;IACA,IAAIS,cAAc,KAAKV,WAAW,EAAE;MAChC,MAAMmB,WAAW,GACb,MAAM,IAAI,CAACf,sBAAsB,CAACgB,yBAAyB,CAACV,cAAc,CAAC;MAE/E,MAAMW,eAAe,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACkB,sBAAsB,CAAC;QAC7EH,WAAW;QACXI,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,IAAI,CAACF,eAAe,EAAE;QAClB,OAAOzB,MAAM,CAAC4B,IAAI,CAAC,IAAIvB,uBAAuB,CAAC,CAAC,CAAC;MACrD;IACJ;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,EAAEC,cAAc,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAMe,yBAAyB,GAAG9B,eAAe,CAAC;EACrD+B,WAAW,EAAE7B,gBAAgB;EAC7B8B,SAAS,EAAEzB,6BAA6B;EACxC0B,YAAY,EAAE,CAAC7B,sBAAsB,EAAED,sBAAsB;AACjE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import type { CmsEntry, CmsEntryValues, CmsModel, UpdateCmsEntryInput, UpdateCmsEntryOptionsInput } from "@webiny/api-headless-cms/types/index.js";
5
+ import type { GenericRecord } from "@webiny/api/types.js";
6
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
7
+ declare class UpdateEntryWithFlpDecoratorImpl implements UpdateEntryUseCase.Interface {
8
+ private folderLevelPermissions;
9
+ private getRevisionById;
10
+ private decoratee;
11
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: UpdateEntryUseCase.Interface);
12
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string, input: UpdateCmsEntryInput<T>, metaInput?: GenericRecord, options?: UpdateCmsEntryOptionsInput): Promise<Result<CmsEntry<T>, UpdateEntryUseCase.Error>>;
13
+ }
14
+ export declare const UpdateEntryWithFlpDecorator: typeof UpdateEntryWithFlpDecoratorImpl;
15
+ export {};
@@ -0,0 +1,43 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/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 UpdateEntryWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee) {
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, id, input, metaInput, options) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
15
+ return this.decoratee.execute(model, id, input, metaInput, options);
16
+ }
17
+ const entryResult = await this.getRevisionById.execute(model, id);
18
+ if (entryResult.isFail()) {
19
+ return this.decoratee.execute(model, id, input, metaInput, 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, id, input, metaInput, options);
25
+ }
26
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
27
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
28
+ permissions,
29
+ rwd: "w"
30
+ });
31
+ if (!canAccessFolder) {
32
+ return Result.fail(new EntryNotAuthorizedError());
33
+ }
34
+ return this.decoratee.execute(model, id, input, metaInput, options);
35
+ }
36
+ }
37
+ export const UpdateEntryWithFlpDecorator = createDecorator({
38
+ abstraction: UpdateEntryUseCase,
39
+ decorator: UpdateEntryWithFlpDecoratorImpl,
40
+ dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
41
+ });
42
+
43
+ //# sourceMappingURL=UpdateEntryWithFlpDecorator.js.map