@webiny/api-aco 0.0.0-unstable.6844005670 → 0.0.0-unstable.7be00a75a9

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 (412) hide show
  1. package/constants.js +2 -1
  2. package/constants.js.map +1 -1
  3. package/createAcoContext.d.ts +1 -1
  4. package/createAcoContext.js +75 -107
  5. package/createAcoContext.js.map +1 -1
  6. package/createAcoGraphQL.js +43 -44
  7. package/createAcoGraphQL.js.map +1 -1
  8. package/createAcoStorageOperations.js +5 -6
  9. package/createAcoStorageOperations.js.map +1 -1
  10. package/createAcoTasks.js +7 -8
  11. package/createAcoTasks.js.map +1 -1
  12. package/domain/folder/abstractions.js +2 -5
  13. package/domain/folder/abstractions.js.map +1 -1
  14. package/domain/folder/errors.js +42 -47
  15. package/domain/folder/errors.js.map +1 -1
  16. package/domain/folder/folder.model.js +52 -36
  17. package/domain/folder/folder.model.js.map +1 -1
  18. package/exports/api/aco/flp.d.ts +6 -0
  19. package/exports/api/aco/flp.js +6 -0
  20. package/exports/api/aco/folder.d.ts +10 -0
  21. package/exports/api/aco/folder.js +10 -0
  22. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
  23. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
  24. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
  25. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
  26. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
  27. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
  28. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
  29. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
  30. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
  31. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
  32. package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
  33. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
  34. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
  35. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
  36. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
  37. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
  38. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +27 -28
  39. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
  40. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +27 -27
  41. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
  42. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +27 -28
  43. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
  44. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +27 -28
  45. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
  46. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
  47. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
  48. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
  49. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
  50. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
  51. package/features/cms/feature.d.ts +4 -1
  52. package/features/cms/feature.js +19 -25
  53. package/features/cms/feature.js.map +1 -1
  54. package/features/cms/index.js +0 -2
  55. package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
  56. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
  57. package/features/flp/CreateFlp/abstractions.d.ts +1 -0
  58. package/features/flp/CreateFlp/abstractions.js +2 -4
  59. package/features/flp/CreateFlp/abstractions.js.map +1 -1
  60. package/features/flp/CreateFlp/feature.d.ts +5 -1
  61. package/features/flp/CreateFlp/feature.js +7 -8
  62. package/features/flp/CreateFlp/feature.js.map +1 -1
  63. package/features/flp/CreateFlp/index.js +0 -2
  64. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +3 -3
  65. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +28 -28
  66. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
  67. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -1
  68. package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
  69. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
  70. package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
  71. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
  72. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
  73. package/features/flp/DeleteFlp/abstractions.d.ts +1 -0
  74. package/features/flp/DeleteFlp/abstractions.js +2 -4
  75. package/features/flp/DeleteFlp/abstractions.js.map +1 -1
  76. package/features/flp/DeleteFlp/feature.d.ts +5 -1
  77. package/features/flp/DeleteFlp/feature.js +7 -8
  78. package/features/flp/DeleteFlp/feature.js.map +1 -1
  79. package/features/flp/DeleteFlp/index.js +0 -2
  80. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +3 -3
  81. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +28 -28
  82. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
  83. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -1
  84. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
  85. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
  86. package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
  87. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
  88. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +90 -111
  89. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
  90. package/features/flp/FolderLevelPermissions/abstractions.d.ts +1 -0
  91. package/features/flp/FolderLevelPermissions/abstractions.js +2 -1
  92. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
  93. package/features/flp/FolderLevelPermissions/feature.d.ts +5 -1
  94. package/features/flp/FolderLevelPermissions/feature.js +6 -5
  95. package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
  96. package/features/flp/FolderLevelPermissions/index.js +0 -2
  97. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +1 -1
  98. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
  99. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
  100. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
  101. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
  102. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +1 -1
  103. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
  104. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
  105. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
  106. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
  107. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
  108. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
  109. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
  110. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
  111. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
  112. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
  113. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
  114. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
  115. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
  116. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
  117. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +1 -1
  118. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
  119. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
  120. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +2 -2
  121. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
  122. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
  123. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
  124. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
  125. package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
  126. package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
  127. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
  128. package/features/flp/GetFlp/abstractions.d.ts +1 -0
  129. package/features/flp/GetFlp/abstractions.js +2 -1
  130. package/features/flp/GetFlp/abstractions.js.map +1 -1
  131. package/features/flp/GetFlp/feature.d.ts +4 -1
  132. package/features/flp/GetFlp/feature.js +7 -8
  133. package/features/flp/GetFlp/feature.js.map +1 -1
  134. package/features/flp/GetFlp/index.js +0 -2
  135. package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
  136. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
  137. package/features/flp/ListFlps/abstractions.d.ts +1 -0
  138. package/features/flp/ListFlps/abstractions.js +2 -1
  139. package/features/flp/ListFlps/abstractions.js.map +1 -1
  140. package/features/flp/ListFlps/feature.d.ts +4 -1
  141. package/features/flp/ListFlps/feature.js +7 -8
  142. package/features/flp/ListFlps/feature.js.map +1 -1
  143. package/features/flp/ListFlps/index.js +0 -2
  144. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +133 -184
  145. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
  146. package/features/flp/UpdateFlp/abstractions.d.ts +1 -0
  147. package/features/flp/UpdateFlp/abstractions.js +2 -4
  148. package/features/flp/UpdateFlp/abstractions.js.map +1 -1
  149. package/features/flp/UpdateFlp/feature.d.ts +5 -1
  150. package/features/flp/UpdateFlp/feature.js +7 -8
  151. package/features/flp/UpdateFlp/feature.js.map +1 -1
  152. package/features/flp/UpdateFlp/index.js +0 -2
  153. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +3 -3
  154. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +30 -30
  155. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
  156. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -1
  157. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
  158. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
  159. package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
  160. package/features/folder/CreateFolder/CreateFolderRepository.js +67 -90
  161. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
  162. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +1 -1
  163. package/features/folder/CreateFolder/CreateFolderUseCase.js +28 -31
  164. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
  165. package/features/folder/CreateFolder/abstractions.d.ts +9 -5
  166. package/features/folder/CreateFolder/abstractions.js +5 -18
  167. package/features/folder/CreateFolder/abstractions.js.map +1 -1
  168. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +29 -34
  169. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
  170. package/features/folder/CreateFolder/events.d.ts +3 -3
  171. package/features/folder/CreateFolder/events.js +17 -15
  172. package/features/folder/CreateFolder/events.js.map +1 -1
  173. package/features/folder/CreateFolder/feature.d.ts +5 -1
  174. package/features/folder/CreateFolder/feature.js +8 -7
  175. package/features/folder/CreateFolder/feature.js.map +1 -1
  176. package/features/folder/CreateFolder/index.d.ts +1 -1
  177. package/features/folder/CreateFolder/index.js +1 -3
  178. package/features/folder/DeleteFolder/DeleteFolderRepository.js +22 -20
  179. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
  180. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +1 -1
  181. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +36 -44
  182. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
  183. package/features/folder/DeleteFolder/abstractions.d.ts +9 -5
  184. package/features/folder/DeleteFolder/abstractions.js +5 -18
  185. package/features/folder/DeleteFolder/abstractions.js.map +1 -1
  186. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
  187. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
  188. package/features/folder/DeleteFolder/events.d.ts +3 -3
  189. package/features/folder/DeleteFolder/events.js +17 -15
  190. package/features/folder/DeleteFolder/events.js.map +1 -1
  191. package/features/folder/DeleteFolder/feature.d.ts +5 -1
  192. package/features/folder/DeleteFolder/feature.js +8 -7
  193. package/features/folder/DeleteFolder/feature.js.map +1 -1
  194. package/features/folder/DeleteFolder/index.d.ts +1 -1
  195. package/features/folder/DeleteFolder/index.js +1 -3
  196. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +43 -44
  197. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
  198. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +1 -0
  199. package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -1
  200. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
  201. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -1
  202. package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
  203. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
  204. package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
  205. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +3 -3
  206. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +17 -21
  207. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
  208. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +4 -1
  209. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
  210. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
  211. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
  212. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +3 -3
  213. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +37 -45
  214. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
  215. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -1
  216. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
  217. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
  218. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
  219. package/features/folder/GetAncestors/GetAncestorsRepository.js +45 -75
  220. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
  221. package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
  222. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
  223. package/features/folder/GetAncestors/abstractions.d.ts +2 -0
  224. package/features/folder/GetAncestors/abstractions.js +3 -12
  225. package/features/folder/GetAncestors/abstractions.js.map +1 -1
  226. package/features/folder/GetAncestors/feature.d.ts +5 -1
  227. package/features/folder/GetAncestors/feature.js +7 -6
  228. package/features/folder/GetAncestors/feature.js.map +1 -1
  229. package/features/folder/GetAncestors/index.js +0 -2
  230. package/features/folder/GetFolder/GetFolderRepository.js +21 -19
  231. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
  232. package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
  233. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
  234. package/features/folder/GetFolder/abstractions.d.ts +8 -5
  235. package/features/folder/GetFolder/abstractions.js +5 -18
  236. package/features/folder/GetFolder/abstractions.js.map +1 -1
  237. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
  238. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
  239. package/features/folder/GetFolder/feature.d.ts +5 -1
  240. package/features/folder/GetFolder/feature.js +8 -7
  241. package/features/folder/GetFolder/feature.js.map +1 -1
  242. package/features/folder/GetFolder/index.d.ts +1 -1
  243. package/features/folder/GetFolder/index.js +1 -3
  244. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +67 -86
  245. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
  246. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
  247. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
  248. package/features/folder/GetFolderHierarchy/abstractions.d.ts +2 -0
  249. package/features/folder/GetFolderHierarchy/abstractions.js +3 -12
  250. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
  251. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
  252. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
  253. package/features/folder/GetFolderHierarchy/feature.d.ts +5 -1
  254. package/features/folder/GetFolderHierarchy/feature.js +8 -7
  255. package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
  256. package/features/folder/GetFolderHierarchy/index.js +0 -2
  257. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +2 -2
  258. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +67 -60
  259. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
  260. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +1 -0
  261. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -4
  262. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
  263. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -1
  264. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
  265. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
  266. package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
  267. package/features/folder/ListFolders/ListFoldersRepository.js +39 -41
  268. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
  269. package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
  270. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
  271. package/features/folder/ListFolders/abstractions.d.ts +2 -0
  272. package/features/folder/ListFolders/abstractions.js +3 -12
  273. package/features/folder/ListFolders/abstractions.js.map +1 -1
  274. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
  275. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
  276. package/features/folder/ListFolders/feature.d.ts +5 -1
  277. package/features/folder/ListFolders/feature.js +8 -7
  278. package/features/folder/ListFolders/feature.js.map +1 -1
  279. package/features/folder/ListFolders/index.js +0 -2
  280. package/features/folder/UpdateFolder/UpdateFolderRepository.js +66 -92
  281. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
  282. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +1 -1
  283. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +39 -46
  284. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
  285. package/features/folder/UpdateFolder/abstractions.d.ts +9 -5
  286. package/features/folder/UpdateFolder/abstractions.js +5 -18
  287. package/features/folder/UpdateFolder/abstractions.js.map +1 -1
  288. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +45 -64
  289. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
  290. package/features/folder/UpdateFolder/events.d.ts +3 -3
  291. package/features/folder/UpdateFolder/events.js +17 -15
  292. package/features/folder/UpdateFolder/events.js.map +1 -1
  293. package/features/folder/UpdateFolder/feature.d.ts +5 -1
  294. package/features/folder/UpdateFolder/feature.js +8 -7
  295. package/features/folder/UpdateFolder/feature.js.map +1 -1
  296. package/features/folder/UpdateFolder/index.d.ts +1 -1
  297. package/features/folder/UpdateFolder/index.js +1 -3
  298. package/features/folder/shared/EntryToFolderMapper.js +20 -19
  299. package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
  300. package/features/folder/shared/abstractions.d.ts +1 -0
  301. package/features/folder/shared/abstractions.js +2 -1
  302. package/features/folder/shared/abstractions.js.map +1 -1
  303. package/filter/filter.crud.js +28 -31
  304. package/filter/filter.crud.js.map +1 -1
  305. package/filter/filter.gql.js +32 -48
  306. package/filter/filter.gql.js.map +1 -1
  307. package/filter/filter.model.js +44 -35
  308. package/filter/filter.model.js.map +1 -1
  309. package/filter/filter.so.js +73 -93
  310. package/filter/filter.so.js.map +1 -1
  311. package/filter/filter.types.js +5 -4
  312. package/filter/filter.types.js.map +1 -1
  313. package/flp/flp.crud.js +69 -86
  314. package/flp/flp.crud.js.map +1 -1
  315. package/flp/flp.so.js +162 -199
  316. package/flp/flp.so.js.map +1 -1
  317. package/flp/flp.types.js +0 -3
  318. package/flp/index.js +0 -2
  319. package/flp/tasks/createFlp.task.d.ts +6 -4
  320. package/flp/tasks/createFlp.task.js +27 -26
  321. package/flp/tasks/createFlp.task.js.map +1 -1
  322. package/flp/tasks/deleteFlp.task.d.ts +6 -4
  323. package/flp/tasks/deleteFlp.task.js +27 -26
  324. package/flp/tasks/deleteFlp.task.js.map +1 -1
  325. package/flp/tasks/index.js +13 -12
  326. package/flp/tasks/index.js.map +1 -1
  327. package/flp/tasks/syncFlp.task.d.ts +6 -4
  328. package/flp/tasks/syncFlp.task.js +84 -111
  329. package/flp/tasks/syncFlp.task.js.map +1 -1
  330. package/flp/tasks/updateFlp.task.d.ts +6 -4
  331. package/flp/tasks/updateFlp.task.js +34 -31
  332. package/flp/tasks/updateFlp.task.js.map +1 -1
  333. package/folder/createFolderModelModifier.js +50 -50
  334. package/folder/createFolderModelModifier.js.map +1 -1
  335. package/folder/createFolderTypeDefs.d.ts +3 -2
  336. package/folder/createFolderTypeDefs.js +39 -50
  337. package/folder/createFolderTypeDefs.js.map +1 -1
  338. package/folder/folder.gql.js +100 -133
  339. package/folder/folder.gql.js.map +1 -1
  340. package/folder/folder.types.js +0 -3
  341. package/index.d.ts +1 -1
  342. package/index.js +7 -4
  343. package/index.js.map +1 -1
  344. package/package.json +30 -40
  345. package/types.js +5 -4
  346. package/types.js.map +1 -1
  347. package/utils/FoldersCacheFactory.js +20 -19
  348. package/utils/FoldersCacheFactory.js.map +1 -1
  349. package/utils/ListCache.js +20 -19
  350. package/utils/ListCache.js.map +1 -1
  351. package/utils/Path.js +5 -6
  352. package/utils/Path.js.map +1 -1
  353. package/utils/compress.js +8 -7
  354. package/utils/compress.js.map +1 -1
  355. package/utils/createListSort.js +4 -7
  356. package/utils/createListSort.js.map +1 -1
  357. package/utils/createOperationsWrapper.js +12 -19
  358. package/utils/createOperationsWrapper.js.map +1 -1
  359. package/utils/decorators/CmsEntriesCrudDecorators.js +165 -196
  360. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  361. package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
  362. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
  363. package/utils/decorators/ListEntriesFactory.js +65 -98
  364. package/utils/decorators/ListEntriesFactory.js.map +1 -1
  365. package/utils/decorators/hasRootFolderId.js +6 -12
  366. package/utils/decorators/hasRootFolderId.js.map +1 -1
  367. package/utils/decorators/isPageModel.js +5 -10
  368. package/utils/decorators/isPageModel.js.map +1 -1
  369. package/utils/ensureAuthentication.js +6 -7
  370. package/utils/ensureAuthentication.js.map +1 -1
  371. package/utils/pickEntryFieldValues.js +24 -18
  372. package/utils/pickEntryFieldValues.js.map +1 -1
  373. package/utils/resolve.js +7 -6
  374. package/utils/resolve.js.map +1 -1
  375. package/features/cms/index.js.map +0 -1
  376. package/features/flp/CreateFlp/index.js.map +0 -1
  377. package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
  378. package/features/flp/DeleteFlp/index.js.map +0 -1
  379. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
  380. package/features/flp/FolderLevelPermissions/index.js.map +0 -1
  381. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
  382. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
  383. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
  384. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
  385. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
  386. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
  387. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
  388. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
  389. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
  390. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
  391. package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
  392. package/features/flp/GetFlp/index.js.map +0 -1
  393. package/features/flp/ListFlps/index.js.map +0 -1
  394. package/features/flp/UpdateFlp/index.js.map +0 -1
  395. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
  396. package/features/folder/CreateFolder/index.js.map +0 -1
  397. package/features/folder/DeleteFolder/index.js.map +0 -1
  398. package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
  399. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
  400. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
  401. package/features/folder/GetAncestors/index.js.map +0 -1
  402. package/features/folder/GetFolder/index.js.map +0 -1
  403. package/features/folder/GetFolderHierarchy/index.js.map +0 -1
  404. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
  405. package/features/folder/ListFolders/index.js.map +0 -1
  406. package/features/folder/UpdateFolder/index.js.map +0 -1
  407. package/flp/flp.types.js.map +0 -1
  408. package/flp/index.js.map +0 -1
  409. package/folder/folder.types.js.map +0 -1
  410. package/utils/acoRecordId.d.ts +0 -6
  411. package/utils/acoRecordId.js +0 -27
  412. package/utils/acoRecordId.js.map +0 -1
@@ -1,206 +1,175 @@
1
- // @ts-nocheck Being removed
2
-
3
1
  import { ROOT_FOLDER } from "../../constants.js";
4
2
  import { ListEntriesFactory } from "./ListEntriesFactory.js";
5
3
  import { FilterEntriesByFolderFactory } from "./FilterEntriesByFolderFactory.js";
6
4
  import { decorateIfModelAuthorizationEnabled } from "./decorateIfModelAuthorizationEnabled.js";
7
5
  import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
8
- export class CmsEntriesCrudDecorators {
9
- constructor({
10
- context
11
- }) {
12
- this.context = context;
13
- }
14
- decorate() {
15
- const context = this.context;
16
- const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);
17
- const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);
18
- const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
19
- decorateIfModelAuthorizationEnabled(context, "listEntries", async (...allParams) => {
20
- const [decoratee, model, initialParams] = allParams;
21
- return await listEntriesHandler.execute({
22
- decoratee,
23
- model,
24
- initialParams
25
- });
26
- });
27
- decorateIfModelAuthorizationEnabled(context, "listLatestEntries", async (...allParams) => {
28
- const [decoratee, model, initialParams] = allParams;
29
- return await listEntriesHandler.execute({
30
- decoratee,
31
- model,
32
- initialParams
33
- });
34
- });
35
- decorateIfModelAuthorizationEnabled(context, "listPublishedEntries", async (...allParams) => {
36
- const [decoratee, model, initialParams] = allParams;
37
- return await listEntriesHandler.execute({
38
- decoratee,
39
- model,
40
- initialParams
41
- });
42
- });
43
- decorateIfModelAuthorizationEnabled(context, "listDeletedEntries", async (...allParams) => {
44
- const [decoratee, model, initialParams] = allParams;
45
- return await listEntriesHandler.execute({
46
- decoratee,
47
- model,
48
- initialParams
49
- });
50
- });
51
- decorateIfModelAuthorizationEnabled(context, "getEntry", async (...allParams) => {
52
- const [decoratee, model, params] = allParams;
53
- const entry = await decoratee(model, params);
54
- const folderId = entry?.location?.folderId;
55
- if (!folderId || folderId === ROOT_FOLDER) {
56
- return entry;
57
- }
58
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
59
- await folderLevelPermissions.ensureCanAccessFolderContent({
60
- permissions,
61
- rwd: "r"
62
- });
63
- return entry;
64
- });
65
- decorateIfModelAuthorizationEnabled(context, "getEntryById", async (...allParams) => {
66
- const [decoratee, model, params] = allParams;
67
- const entry = await decoratee(model, params);
68
- const folderId = entry?.location?.folderId;
69
- if (!folderId || folderId === ROOT_FOLDER) {
70
- return entry;
71
- }
72
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
73
- await folderLevelPermissions.ensureCanAccessFolderContent({
74
- permissions,
75
- rwd: "r"
76
- });
77
- return entry;
78
- });
79
- decorateIfModelAuthorizationEnabled(context, "getLatestEntriesByIds", async (...allParams) => {
80
- const [decoratee, model, ids] = allParams;
81
- const entries = await decoratee(model, ids);
82
- return filterEntriesByFolder.execute(entries);
83
- });
84
- decorateIfModelAuthorizationEnabled(context, "getPublishedEntriesByIds", async (...allParams) => {
85
- const [decoratee, model, ids] = allParams;
86
- const entries = await decoratee(model, ids);
87
- return filterEntriesByFolder.execute(entries);
88
- });
89
- decorateIfModelAuthorizationEnabled(context, "createEntry", async (...allParams) => {
90
- const [decoratee, model, params, options] = allParams;
91
- const folderId = params.wbyAco_location?.folderId || params.location?.folderId;
92
- if (!folderId || folderId === ROOT_FOLDER) {
93
- return decoratee(model, params, options);
94
- }
95
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
96
- await folderLevelPermissions.ensureCanAccessFolderContent({
97
- permissions,
98
- rwd: "w"
99
- });
100
- return decoratee(model, params, options);
101
- });
102
- decorateIfModelAuthorizationEnabled(context, "createEntryRevisionFrom", async (...allParams) => {
103
- const [decoratee, model, id, input, options] = allParams;
104
- const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
105
- id
106
- });
107
- const folderId = entry?.location?.folderId;
108
- if (!folderId || folderId === ROOT_FOLDER) {
109
- return decoratee(model, id, input, options);
110
- }
111
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
112
- await folderLevelPermissions.ensureCanAccessFolderContent({
113
- permissions,
114
- rwd: "w"
115
- });
116
- return decoratee(model, id, input, options);
117
- });
118
- decorateIfModelAuthorizationEnabled(context, "updateEntry", async (...allParams) => {
119
- const [decoratee, model, id, input, meta, options] = allParams;
120
- const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
121
- id
122
- });
123
- const folderId = entry?.location?.folderId;
124
- if (!folderId || folderId === ROOT_FOLDER) {
125
- return decoratee(model, id, input, meta, options);
126
- }
127
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
128
- await folderLevelPermissions.ensureCanAccessFolderContent({
129
- permissions,
130
- rwd: "w"
131
- });
132
- return decoratee(model, id, input, meta, options);
133
- });
134
- decorateIfModelAuthorizationEnabled(context, "deleteEntry", async (...allParams) => {
135
- const [decoratee, model, id, options] = allParams;
136
- const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(model, {
137
- id
138
- });
139
- const folderId = entry?.location?.folderId;
140
- if (!folderId || folderId === ROOT_FOLDER) {
141
- return decoratee(model, id, options);
142
- }
143
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
144
- await folderLevelPermissions.ensureCanAccessFolderContent({
145
- permissions,
146
- rwd: "d"
147
- });
148
- return decoratee(model, id, options);
149
- });
150
- decorateIfModelAuthorizationEnabled(context, "deleteEntryRevision", async (...allParams) => {
151
- const [decoratee, model, id] = allParams;
152
- const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
153
- id
154
- });
155
- const folderId = entry?.location?.folderId;
156
- if (!folderId || folderId === ROOT_FOLDER) {
157
- return decoratee(model, id);
158
- }
159
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
160
- await folderLevelPermissions.ensureCanAccessFolderContent({
161
- permissions,
162
- rwd: "d"
163
- });
164
- return decoratee(model, id);
165
- });
166
- decorateIfModelAuthorizationEnabled(context, "moveEntry", async (...allParams) => {
167
- const [decoratee, model, id, targetFolderId] = allParams;
168
-
169
- /**
170
- * First we need to check if user has access to the entries existing folder.
171
- */
172
- const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
173
- id
174
- });
175
- const folderId = entry?.location?.folderId || ROOT_FOLDER;
176
- /**
177
- * If the entry is in the same folder we are trying to move it to, just continue.
178
- */
179
- if (folderId === targetFolderId) {
180
- return decoratee(model, id, targetFolderId);
181
- } else if (folderId !== ROOT_FOLDER) {
182
- /**
183
- * If entry current folder is not a root, check for access
184
- */
185
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
186
- await folderLevelPermissions.ensureCanAccessFolderContent({
187
- permissions,
188
- rwd: "w"
6
+ class CmsEntriesCrudDecorators {
7
+ constructor({ context }){
8
+ this.context = context;
9
+ }
10
+ decorate() {
11
+ const context = this.context;
12
+ const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);
13
+ const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);
14
+ const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
15
+ decorateIfModelAuthorizationEnabled(context, "listEntries", async (...allParams)=>{
16
+ const [decoratee, model, initialParams] = allParams;
17
+ return await listEntriesHandler.execute({
18
+ decoratee,
19
+ model,
20
+ initialParams
21
+ });
22
+ });
23
+ decorateIfModelAuthorizationEnabled(context, "listLatestEntries", async (...allParams)=>{
24
+ const [decoratee, model, initialParams] = allParams;
25
+ return await listEntriesHandler.execute({
26
+ decoratee,
27
+ model,
28
+ initialParams
29
+ });
30
+ });
31
+ decorateIfModelAuthorizationEnabled(context, "listPublishedEntries", async (...allParams)=>{
32
+ const [decoratee, model, initialParams] = allParams;
33
+ return await listEntriesHandler.execute({
34
+ decoratee,
35
+ model,
36
+ initialParams
37
+ });
38
+ });
39
+ decorateIfModelAuthorizationEnabled(context, "listDeletedEntries", async (...allParams)=>{
40
+ const [decoratee, model, initialParams] = allParams;
41
+ return await listEntriesHandler.execute({
42
+ decoratee,
43
+ model,
44
+ initialParams
45
+ });
46
+ });
47
+ decorateIfModelAuthorizationEnabled(context, "getEntry", async (...allParams)=>{
48
+ const [decoratee, model, params] = allParams;
49
+ const entry = await decoratee(model, params);
50
+ const folderId = entry?.location?.folderId;
51
+ if (!folderId || folderId === ROOT_FOLDER) return entry;
52
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
53
+ await folderLevelPermissions.ensureCanAccessFolderContent({
54
+ permissions,
55
+ rwd: "r"
56
+ });
57
+ return entry;
58
+ });
59
+ decorateIfModelAuthorizationEnabled(context, "getEntryById", async (...allParams)=>{
60
+ const [decoratee, model, params] = allParams;
61
+ const entry = await decoratee(model, params);
62
+ const folderId = entry?.location?.folderId;
63
+ if (!folderId || folderId === ROOT_FOLDER) return entry;
64
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
65
+ await folderLevelPermissions.ensureCanAccessFolderContent({
66
+ permissions,
67
+ rwd: "r"
68
+ });
69
+ return entry;
70
+ });
71
+ decorateIfModelAuthorizationEnabled(context, "getLatestEntriesByIds", async (...allParams)=>{
72
+ const [decoratee, model, ids] = allParams;
73
+ const entries = await decoratee(model, ids);
74
+ return filterEntriesByFolder.execute(entries);
75
+ });
76
+ decorateIfModelAuthorizationEnabled(context, "getPublishedEntriesByIds", async (...allParams)=>{
77
+ const [decoratee, model, ids] = allParams;
78
+ const entries = await decoratee(model, ids);
79
+ return filterEntriesByFolder.execute(entries);
80
+ });
81
+ decorateIfModelAuthorizationEnabled(context, "createEntry", async (...allParams)=>{
82
+ const [decoratee, model, params, options] = allParams;
83
+ const folderId = params.wbyAco_location?.folderId || params.location?.folderId;
84
+ if (!folderId || folderId === ROOT_FOLDER) return decoratee(model, params, options);
85
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
86
+ await folderLevelPermissions.ensureCanAccessFolderContent({
87
+ permissions,
88
+ rwd: "w"
89
+ });
90
+ return decoratee(model, params, options);
91
+ });
92
+ decorateIfModelAuthorizationEnabled(context, "createEntryRevisionFrom", async (...allParams)=>{
93
+ const [decoratee, model, id, input, options] = allParams;
94
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
95
+ id
96
+ });
97
+ const folderId = entry?.location?.folderId;
98
+ if (!folderId || folderId === ROOT_FOLDER) return decoratee(model, id, input, options);
99
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
100
+ await folderLevelPermissions.ensureCanAccessFolderContent({
101
+ permissions,
102
+ rwd: "w"
103
+ });
104
+ return decoratee(model, id, input, options);
105
+ });
106
+ decorateIfModelAuthorizationEnabled(context, "updateEntry", async (...allParams)=>{
107
+ const [decoratee, model, id, input, meta, options] = allParams;
108
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
109
+ id
110
+ });
111
+ const folderId = entry?.location?.folderId;
112
+ if (!folderId || folderId === ROOT_FOLDER) return decoratee(model, id, input, meta, options);
113
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
114
+ await folderLevelPermissions.ensureCanAccessFolderContent({
115
+ permissions,
116
+ rwd: "w"
117
+ });
118
+ return decoratee(model, id, input, meta, options);
119
+ });
120
+ decorateIfModelAuthorizationEnabled(context, "deleteEntry", async (...allParams)=>{
121
+ const [decoratee, model, id, options] = allParams;
122
+ const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(model, {
123
+ id
124
+ });
125
+ const folderId = entry?.location?.folderId;
126
+ if (!folderId || folderId === ROOT_FOLDER) return decoratee(model, id, options);
127
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
128
+ await folderLevelPermissions.ensureCanAccessFolderContent({
129
+ permissions,
130
+ rwd: "d"
131
+ });
132
+ return decoratee(model, id, options);
133
+ });
134
+ decorateIfModelAuthorizationEnabled(context, "deleteEntryRevision", async (...allParams)=>{
135
+ const [decoratee, model, id] = allParams;
136
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
137
+ id
138
+ });
139
+ const folderId = entry?.location?.folderId;
140
+ if (!folderId || folderId === ROOT_FOLDER) return decoratee(model, id);
141
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
142
+ await folderLevelPermissions.ensureCanAccessFolderContent({
143
+ permissions,
144
+ rwd: "d"
145
+ });
146
+ return decoratee(model, id);
189
147
  });
190
- }
191
- /**
192
- * If target folder is not a ROOT_FOLDER, check for access.
193
- */
194
- if (targetFolderId !== ROOT_FOLDER) {
195
- const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
196
- await folderLevelPermissions.ensureCanAccessFolderContent({
197
- permissions,
198
- rwd: "w"
148
+ decorateIfModelAuthorizationEnabled(context, "moveEntry", async (...allParams)=>{
149
+ const [decoratee, model, id, targetFolderId] = allParams;
150
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
151
+ id
152
+ });
153
+ const folderId = entry?.location?.folderId || ROOT_FOLDER;
154
+ if (folderId === targetFolderId) return decoratee(model, id, targetFolderId);
155
+ if (folderId !== ROOT_FOLDER) {
156
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
157
+ await folderLevelPermissions.ensureCanAccessFolderContent({
158
+ permissions,
159
+ rwd: "w"
160
+ });
161
+ }
162
+ if (targetFolderId !== ROOT_FOLDER) {
163
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
164
+ await folderLevelPermissions.ensureCanAccessFolderContent({
165
+ permissions,
166
+ rwd: "w"
167
+ });
168
+ }
169
+ return decoratee(model, id, targetFolderId);
199
170
  });
200
- }
201
- return decoratee(model, id, targetFolderId);
202
- });
203
- }
171
+ }
204
172
  }
173
+ export { CmsEntriesCrudDecorators };
205
174
 
206
175
  //# sourceMappingURL=CmsEntriesCrudDecorators.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ROOT_FOLDER","ListEntriesFactory","FilterEntriesByFolderFactory","decorateIfModelAuthorizationEnabled","FolderLevelPermissions","CmsEntriesCrudDecorators","constructor","context","decorate","folderLevelPermissions","container","resolve","filterEntriesByFolder","listEntriesHandler","allParams","decoratee","model","initialParams","execute","params","entry","folderId","location","permissions","getFolderLevelPermissions","ensureCanAccessFolderContent","rwd","ids","entries","options","wbyAco_location","id","input","cms","storageOperations","getRevisionById","meta","getLatestRevisionByEntryId","targetFolderId"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["// @ts-nocheck Being removed\nimport type { AcoContext } from \"~/types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { ListEntriesFactory } from \"./ListEntriesFactory.js\";\nimport { FilterEntriesByFolderFactory } from \"./FilterEntriesByFolderFactory.js\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\ntype Context = AcoContext;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);\n\n const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);\n const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context, \"listEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"listLatestEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"listDeletedEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(\n model,\n {\n id\n }\n );\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = 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 */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils/decorators/CmsEntriesCrudDecorators.js","sources":["../../../src/utils/decorators/CmsEntriesCrudDecorators.ts"],"sourcesContent":["// @ts-nocheck Being removed\nimport type { AcoContext } from \"~/types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { ListEntriesFactory } from \"./ListEntriesFactory.js\";\nimport { FilterEntriesByFolderFactory } from \"./FilterEntriesByFolderFactory.js\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\ntype Context = AcoContext;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);\n\n const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);\n const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context, \"listEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"listLatestEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"listDeletedEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(\n model,\n {\n id\n }\n );\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = 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 */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"names":["CmsEntriesCrudDecorators","context","folderLevelPermissions","FolderLevelPermissions","filterEntriesByFolder","FilterEntriesByFolderFactory","listEntriesHandler","ListEntriesFactory","decorateIfModelAuthorizationEnabled","allParams","decoratee","model","initialParams","params","entry","folderId","ROOT_FOLDER","permissions","ids","entries","options","id","input","meta","targetFolderId"],"mappings":"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"}
@@ -1,23 +1,22 @@
1
1
  import { ROOT_FOLDER } from "../../constants.js";
2
- export class FilterEntriesByFolderFactory {
3
- constructor(folderLevelPermissions) {
4
- this.folderLevelPermissions = folderLevelPermissions;
5
- }
6
- async execute(entries) {
7
- const results = await Promise.all(entries.map(async entry => {
8
- const folderId = entry.location?.folderId;
9
- if (!folderId || folderId === ROOT_FOLDER) {
10
- return entry;
11
- }
12
- const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
13
- const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
14
- permissions,
15
- rwd: "r"
16
- });
17
- return canAccessFolderContent ? entry : null;
18
- }));
19
- return results.filter(entry => !!entry);
20
- }
2
+ class FilterEntriesByFolderFactory {
3
+ constructor(folderLevelPermissions){
4
+ this.folderLevelPermissions = folderLevelPermissions;
5
+ }
6
+ async execute(entries) {
7
+ const results = await Promise.all(entries.map(async (entry)=>{
8
+ const folderId = entry.location?.folderId;
9
+ if (!folderId || folderId === ROOT_FOLDER) return entry;
10
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
11
+ const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
12
+ permissions,
13
+ rwd: "r"
14
+ });
15
+ return canAccessFolderContent ? entry : null;
16
+ }));
17
+ return results.filter((entry)=>!!entry);
18
+ }
21
19
  }
20
+ export { FilterEntriesByFolderFactory };
22
21
 
23
22
  //# sourceMappingURL=FilterEntriesByFolderFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ROOT_FOLDER","FilterEntriesByFolderFactory","constructor","folderLevelPermissions","execute","entries","results","Promise","all","map","entry","folderId","location","permissions","getFolderLevelPermissions","canAccessFolderContent","rwd","filter"],"sources":["FilterEntriesByFolderFactory.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\nexport class FilterEntriesByFolderFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n }\n\n public async execute(entries: CmsEntry[]): Promise<CmsEntry[]> {\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 canAccessFolderContent =\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccessFolderContent ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n }\n}\n"],"mappings":"AACA,SAASA,WAAW;AAGpB,OAAO,MAAMC,4BAA4B,CAAC;EAGtCC,WAAWA,CAACC,sBAAwD,EAAE;IAClE,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;EACxD;EAEA,MAAaC,OAAOA,CAACC,OAAmB,EAAuB;IAC3D,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BH,OAAO,CAACI,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKX,WAAW,EAAE;QACvC,OAAOU,KAAK;MAChB;MAEA,MAAMG,WAAW,GACb,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACH,QAAQ,CAAC;MACzE,MAAMI,sBAAsB,GACxB,MAAM,IAAI,CAACZ,sBAAsB,CAACY,sBAAsB,CAAC;QACrDF,WAAW;QACXG,GAAG,EAAE;MACT,CAAC,CAAC;MACN,OAAOD,sBAAsB,GAAGL,KAAK,GAAG,IAAI;IAChD,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACW,MAAM,CAAEP,KAAK,IAAwB,CAAC,CAACA,KAAK,CAAC;EAChE;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"utils/decorators/FilterEntriesByFolderFactory.js","sources":["../../../src/utils/decorators/FilterEntriesByFolderFactory.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\nexport class FilterEntriesByFolderFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n }\n\n public async execute(entries: CmsEntry[]): Promise<CmsEntry[]> {\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 canAccessFolderContent =\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccessFolderContent ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n }\n}\n"],"names":["FilterEntriesByFolderFactory","folderLevelPermissions","entries","results","Promise","entry","folderId","ROOT_FOLDER","permissions","canAccessFolderContent"],"mappings":";AAIO,MAAMA;IAGT,YAAYC,sBAAwD,CAAE;QAClE,IAAI,CAAC,sBAAsB,GAAGA;IAClC;IAEA,MAAa,QAAQC,OAAmB,EAAuB;QAC3D,MAAMC,UAAU,MAAMC,QAAQ,GAAG,CAC7BF,QAAQ,GAAG,CAAC,OAAMG;YACd,MAAMC,WAAWD,MAAM,QAAQ,EAAE;YACjC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAChE,MAAMG,yBACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBACrDD;gBACA,KAAK;YACT;YACJ,OAAOC,yBAAyBJ,QAAQ;QAC5C;QAGJ,OAAOF,QAAQ,MAAM,CAAC,CAACE,QAA6B,CAAC,CAACA;IAC1D;AACJ"}