@webiny/api-aco 0.0.0-unstable.6f45466a1d → 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 -33
  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 -32
  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 +31 -41
  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
@@ -2,13 +2,14 @@ import { createFeature } from "@webiny/feature/api";
2
2
  import { GetFolderRepository } from "./GetFolderRepository.js";
3
3
  import { GetFolderUseCase } from "./GetFolderUseCase.js";
4
4
  import { GetFolderWithFolderLevelPermissions } from "./decorators/GetFolderWithFolderLevelPermissions.js";
5
- export const GetFolderFeature = createFeature({
6
- name: "GetFolder",
7
- register(container) {
8
- container.register(GetFolderRepository).inSingletonScope();
9
- container.register(GetFolderUseCase);
10
- container.registerDecorator(GetFolderWithFolderLevelPermissions);
11
- }
5
+ const GetFolderFeature = createFeature({
6
+ name: "GetFolder",
7
+ register (container) {
8
+ container.register(GetFolderRepository).inSingletonScope();
9
+ container.register(GetFolderUseCase);
10
+ container.registerDecorator(GetFolderWithFolderLevelPermissions);
11
+ }
12
12
  });
13
+ export { GetFolderFeature };
13
14
 
14
15
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","GetFolderRepository","GetFolderUseCase","GetFolderWithFolderLevelPermissions","GetFolderFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetFolderRepository } from \"./GetFolderRepository.js\";\nimport { GetFolderUseCase } from \"./GetFolderUseCase.js\";\nimport { GetFolderWithFolderLevelPermissions } from \"./decorators/GetFolderWithFolderLevelPermissions.js\";\n\nexport const GetFolderFeature = createFeature({\n name: \"GetFolder\",\n register(container: Container) {\n container.register(GetFolderRepository).inSingletonScope();\n container.register(GetFolderUseCase);\n container.registerDecorator(GetFolderWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AACzB,SAASC,mCAAmC;AAE5C,OAAO,MAAMC,gBAAgB,GAAGJ,aAAa,CAAC;EAC1CK,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,mBAAmB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC1DD,SAAS,CAACD,QAAQ,CAACJ,gBAAgB,CAAC;IACpCK,SAAS,CAACE,iBAAiB,CAACN,mCAAmC,CAAC;EACpE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolder/feature.js","sources":["../../../../src/features/folder/GetFolder/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetFolderRepository } from \"./GetFolderRepository.js\";\nimport { GetFolderUseCase } from \"./GetFolderUseCase.js\";\nimport { GetFolderWithFolderLevelPermissions } from \"./decorators/GetFolderWithFolderLevelPermissions.js\";\n\nexport const GetFolderFeature = createFeature({\n name: \"GetFolder\",\n register(container: Container) {\n container.register(GetFolderRepository).inSingletonScope();\n container.register(GetFolderUseCase);\n container.registerDecorator(GetFolderWithFolderLevelPermissions);\n }\n});\n"],"names":["GetFolderFeature","createFeature","container","GetFolderRepository","GetFolderUseCase","GetFolderWithFolderLevelPermissions"],"mappings":";;;;AAMO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,QAAQ,CAACC,qBAAqB,gBAAgB;QACxDD,UAAU,QAAQ,CAACE;QACnBF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
@@ -1,2 +1,2 @@
1
1
  export { GetFolderFeature } from "./feature.js";
2
- export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "./abstractions.js";
@@ -1,4 +1,2 @@
1
1
  export { GetFolderFeature } from "./feature.js";
2
- export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
3
-
4
- //# sourceMappingURL=index.js.map
2
+ export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "./abstractions.js";
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { GetFolderHierarchyRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { GetFolderHierarchyRepository } from "./abstractions.js";
3
3
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
4
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
5
  import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
@@ -7,97 +7,78 @@ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
7
  import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
8
8
  import { FolderPersistenceError } from "../../../domain/folder/errors.js";
9
9
  import { ROOT_FOLDER } from "../../../constants.js";
10
- const FIXED_FOLDER_LISTING_LIMIT = 10_000;
10
+ const FIXED_FOLDER_LISTING_LIMIT = 10000;
11
11
  class GetFolderHierarchyRepositoryImpl {
12
- constructor(getEntryById, listLatestEntries, folderModel) {
13
- this.getEntryById = getEntryById;
14
- this.listLatestEntries = listLatestEntries;
15
- this.folderModel = folderModel;
16
- }
17
- async execute(params) {
18
- const parents = [];
19
- const siblings = [];
20
-
21
- // Get root folders (siblings at root level)
22
- const rootFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
23
- where: {
24
- values: {
25
- type: params.type,
26
- parentId: null
27
- }
28
- },
29
- limit: FIXED_FOLDER_LISTING_LIMIT
30
- });
31
- if (rootFoldersResult.isFail()) {
32
- return Result.fail(new FolderPersistenceError(rootFoldersResult.error));
33
- }
34
- const {
35
- entries: rootEntries
36
- } = rootFoldersResult.value;
37
- siblings.push(...rootEntries.map(entry => EntryToFolderMapper.toFolder(entry)));
38
- if (params.id === ROOT_FOLDER) {
39
- return Result.ok({
40
- parents,
41
- siblings
42
- });
43
- }
44
-
45
- // Get the folder by id
46
- const entryId = EntryId.from(params.id);
47
- const folderResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
48
- if (folderResult.isFail()) {
49
- return Result.fail(new FolderPersistenceError(folderResult.error));
12
+ constructor(getEntryById, listLatestEntries, folderModel){
13
+ this.getEntryById = getEntryById;
14
+ this.listLatestEntries = listLatestEntries;
15
+ this.folderModel = folderModel;
50
16
  }
51
- const folder = EntryToFolderMapper.toFolder(folderResult.value);
52
- parents.push(folder);
53
-
54
- // Recursively get all parent folders
55
- const getFolderParentResult = await this.getFolderParent(folder, parents);
56
- if (getFolderParentResult.isFail()) {
57
- return Result.fail(getFolderParentResult.error);
17
+ async execute(params) {
18
+ const parents = [];
19
+ const siblings = [];
20
+ const rootFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
21
+ where: {
22
+ values: {
23
+ type: params.type,
24
+ parentId: null
25
+ }
26
+ },
27
+ limit: FIXED_FOLDER_LISTING_LIMIT
28
+ });
29
+ if (rootFoldersResult.isFail()) return Result.fail(new FolderPersistenceError(rootFoldersResult.error));
30
+ const { entries: rootEntries } = rootFoldersResult.value;
31
+ siblings.push(...rootEntries.map((entry)=>EntryToFolderMapper.toFolder(entry)));
32
+ if (params.id === ROOT_FOLDER) return Result.ok({
33
+ parents,
34
+ siblings
35
+ });
36
+ const entryId = EntryId.from(params.id);
37
+ const folderResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
38
+ if (folderResult.isFail()) return Result.fail(new FolderPersistenceError(folderResult.error));
39
+ const folder = EntryToFolderMapper.toFolder(folderResult.value);
40
+ parents.push(folder);
41
+ const getFolderParentResult = await this.getFolderParent(folder, parents);
42
+ if (getFolderParentResult.isFail()) return Result.fail(getFolderParentResult.error);
43
+ const parentIds = parents.map((f)=>f.id);
44
+ const childFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
45
+ where: {
46
+ entryId_not_in: parentIds,
47
+ values: {
48
+ type: folder.type,
49
+ parentId_in: parentIds
50
+ }
51
+ },
52
+ limit: FIXED_FOLDER_LISTING_LIMIT
53
+ });
54
+ if (childFoldersResult.isFail()) return Result.fail(new FolderPersistenceError(childFoldersResult.error));
55
+ const { entries: childEntries } = childFoldersResult.value;
56
+ siblings.push(...childEntries.map((entry)=>EntryToFolderMapper.toFolder(entry)));
57
+ return Result.ok({
58
+ parents,
59
+ siblings
60
+ });
58
61
  }
59
-
60
- // Get all child folders of all parents (these are siblings at different levels)
61
- const parentIds = parents.map(f => f.id);
62
- const childFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
63
- where: {
64
- entryId_not_in: parentIds,
65
- values: {
66
- type: folder.type,
67
- parentId_in: parentIds
62
+ async getFolderParent(folder, parents) {
63
+ let currentFolder = folder;
64
+ while(currentFolder.parentId){
65
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(currentFolder.parentId).toString());
66
+ if (parentResult.isFail()) return Result.fail(new FolderPersistenceError(parentResult.error));
67
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
68
+ parents.push(parentFolder);
69
+ currentFolder = parentFolder;
68
70
  }
69
- },
70
- limit: FIXED_FOLDER_LISTING_LIMIT
71
- });
72
- if (childFoldersResult.isFail()) {
73
- return Result.fail(new FolderPersistenceError(childFoldersResult.error));
74
- }
75
- const {
76
- entries: childEntries
77
- } = childFoldersResult.value;
78
- siblings.push(...childEntries.map(entry => EntryToFolderMapper.toFolder(entry)));
79
- return Result.ok({
80
- parents,
81
- siblings
82
- });
83
- }
84
- async getFolderParent(folder, parents) {
85
- let currentFolder = folder;
86
- while (currentFolder.parentId) {
87
- const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(currentFolder.parentId).toString());
88
- if (parentResult.isFail()) {
89
- return Result.fail(new FolderPersistenceError(parentResult.error));
90
- }
91
- const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
92
- parents.push(parentFolder);
93
- currentFolder = parentFolder;
71
+ return Result.ok();
94
72
  }
95
- return Result.ok();
96
- }
97
73
  }
98
- export const GetFolderHierarchyRepository = RepositoryAbstraction.createImplementation({
99
- implementation: GetFolderHierarchyRepositoryImpl,
100
- dependencies: [GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]
74
+ const GetFolderHierarchyRepository_GetFolderHierarchyRepository = GetFolderHierarchyRepository.createImplementation({
75
+ implementation: GetFolderHierarchyRepositoryImpl,
76
+ dependencies: [
77
+ GetEntryByIdUseCase,
78
+ ListLatestEntriesUseCase,
79
+ FolderModel
80
+ ]
101
81
  });
82
+ export { GetFolderHierarchyRepository_GetFolderHierarchyRepository as GetFolderHierarchyRepository };
102
83
 
103
84
  //# sourceMappingURL=GetFolderHierarchyRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","GetFolderHierarchyRepository","RepositoryAbstraction","GetEntryByIdUseCase","ListLatestEntriesUseCase","EntryId","FolderModel","EntryToFolderMapper","FolderPersistenceError","ROOT_FOLDER","FIXED_FOLDER_LISTING_LIMIT","GetFolderHierarchyRepositoryImpl","constructor","getEntryById","listLatestEntries","folderModel","execute","params","parents","siblings","rootFoldersResult","where","values","type","parentId","limit","isFail","fail","error","entries","rootEntries","value","push","map","entry","toFolder","id","ok","entryId","from","folderResult","toString","folder","getFolderParentResult","getFolderParent","parentIds","f","childFoldersResult","entryId_not_in","parentId_in","childEntries","currentFolder","parentResult","parentFolder","createImplementation","implementation","dependencies"],"sources":["GetFolderHierarchyRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyRepository as RepositoryAbstraction,\n type IGetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type {\n CmsEntryFolder,\n Folder,\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\nclass GetFolderHierarchyRepositoryImpl implements IGetFolderHierarchyRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryAbstraction.Error>> {\n const parents: Folder[] = [];\n const siblings: Folder[] = [];\n\n // Get root folders (siblings at root level)\n const rootFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n values: {\n type: params.type,\n parentId: null\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (rootFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(rootFoldersResult.error));\n }\n\n const { entries: rootEntries } = rootFoldersResult.value;\n siblings.push(...rootEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n if (params.id === ROOT_FOLDER) {\n return Result.ok({\n parents,\n siblings\n });\n }\n\n // Get the folder by id\n const entryId = EntryId.from(params.id);\n const folderResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (folderResult.isFail()) {\n return Result.fail(new FolderPersistenceError(folderResult.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(folderResult.value);\n parents.push(folder);\n\n // Recursively get all parent folders\n const getFolderParentResult = await this.getFolderParent(folder, parents);\n if (getFolderParentResult.isFail()) {\n return Result.fail(getFolderParentResult.error);\n }\n\n // Get all child folders of all parents (these are siblings at different levels)\n const parentIds = parents.map(f => f.id);\n\n const childFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n entryId_not_in: parentIds,\n values: {\n type: folder.type,\n parentId_in: parentIds\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (childFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(childFoldersResult.error));\n }\n\n const { entries: childEntries } = childFoldersResult.value;\n siblings.push(...childEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n return Result.ok({\n parents,\n siblings\n });\n }\n\n private async getFolderParent(\n folder: Folder,\n parents: Folder[]\n ): Promise<Result<void, RepositoryAbstraction.Error>> {\n let currentFolder = folder;\n\n while (currentFolder.parentId) {\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(currentFolder.parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(new FolderPersistenceError(parentResult.error));\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n parents.push(parentFolder);\n currentFolder = parentFolder;\n }\n\n return Result.ok();\n }\n}\n\nexport const GetFolderHierarchyRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderHierarchyRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js","sources":["../../../../src/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyRepository as RepositoryAbstraction,\n type IGetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type {\n CmsEntryFolder,\n Folder,\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\nclass GetFolderHierarchyRepositoryImpl implements IGetFolderHierarchyRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryAbstraction.Error>> {\n const parents: Folder[] = [];\n const siblings: Folder[] = [];\n\n // Get root folders (siblings at root level)\n const rootFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n values: {\n type: params.type,\n parentId: null\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (rootFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(rootFoldersResult.error));\n }\n\n const { entries: rootEntries } = rootFoldersResult.value;\n siblings.push(...rootEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n if (params.id === ROOT_FOLDER) {\n return Result.ok({\n parents,\n siblings\n });\n }\n\n // Get the folder by id\n const entryId = EntryId.from(params.id);\n const folderResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (folderResult.isFail()) {\n return Result.fail(new FolderPersistenceError(folderResult.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(folderResult.value);\n parents.push(folder);\n\n // Recursively get all parent folders\n const getFolderParentResult = await this.getFolderParent(folder, parents);\n if (getFolderParentResult.isFail()) {\n return Result.fail(getFolderParentResult.error);\n }\n\n // Get all child folders of all parents (these are siblings at different levels)\n const parentIds = parents.map(f => f.id);\n\n const childFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n entryId_not_in: parentIds,\n values: {\n type: folder.type,\n parentId_in: parentIds\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (childFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(childFoldersResult.error));\n }\n\n const { entries: childEntries } = childFoldersResult.value;\n siblings.push(...childEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n return Result.ok({\n parents,\n siblings\n });\n }\n\n private async getFolderParent(\n folder: Folder,\n parents: Folder[]\n ): Promise<Result<void, RepositoryAbstraction.Error>> {\n let currentFolder = folder;\n\n while (currentFolder.parentId) {\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(currentFolder.parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(new FolderPersistenceError(parentResult.error));\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n parents.push(parentFolder);\n currentFolder = parentFolder;\n }\n\n return Result.ok();\n }\n}\n\nexport const GetFolderHierarchyRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderHierarchyRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]\n});\n"],"names":["FIXED_FOLDER_LISTING_LIMIT","GetFolderHierarchyRepositoryImpl","getEntryById","listLatestEntries","folderModel","params","parents","siblings","rootFoldersResult","Result","FolderPersistenceError","rootEntries","entry","EntryToFolderMapper","ROOT_FOLDER","entryId","EntryId","folderResult","folder","getFolderParentResult","parentIds","f","childFoldersResult","childEntries","currentFolder","parentResult","parentFolder","GetFolderHierarchyRepository","RepositoryAbstraction","GetEntryByIdUseCase","ListLatestEntriesUseCase","FolderModel"],"mappings":"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"}
@@ -1,17 +1,20 @@
1
- import { GetFolderHierarchyUseCase as UseCaseAbstraction, GetFolderHierarchyRepository } from "./abstractions.js";
1
+ import { GetFolderHierarchyRepository, GetFolderHierarchyUseCase } from "./abstractions.js";
2
2
  import { createImplementation } from "@webiny/di";
3
3
  class GetFolderHierarchyUseCaseImpl {
4
- constructor(repository) {
5
- this.repository = repository;
6
- }
7
- async execute(params) {
8
- return await this.repository.execute(params);
9
- }
4
+ constructor(repository){
5
+ this.repository = repository;
6
+ }
7
+ async execute(params) {
8
+ return await this.repository.execute(params);
9
+ }
10
10
  }
11
- export const GetFolderHierarchyUseCase = createImplementation({
12
- abstraction: UseCaseAbstraction,
13
- implementation: GetFolderHierarchyUseCaseImpl,
14
- dependencies: [GetFolderHierarchyRepository]
11
+ const GetFolderHierarchyUseCase_GetFolderHierarchyUseCase = createImplementation({
12
+ abstraction: GetFolderHierarchyUseCase,
13
+ implementation: GetFolderHierarchyUseCaseImpl,
14
+ dependencies: [
15
+ GetFolderHierarchyRepository
16
+ ]
15
17
  });
18
+ export { GetFolderHierarchyUseCase_GetFolderHierarchyUseCase as GetFolderHierarchyUseCase };
16
19
 
17
20
  //# sourceMappingURL=GetFolderHierarchyUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetFolderHierarchyUseCase","UseCaseAbstraction","GetFolderHierarchyRepository","createImplementation","GetFolderHierarchyUseCaseImpl","constructor","repository","execute","params","abstraction","implementation","dependencies"],"sources":["GetFolderHierarchyUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyUseCase as UseCaseAbstraction,\n GetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass GetFolderHierarchyUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderHierarchyRepository.Interface) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseAbstraction.Error>> {\n return await this.repository.execute(params);\n }\n}\n\nexport const GetFolderHierarchyUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderHierarchyUseCaseImpl,\n dependencies: [GetFolderHierarchyRepository]\n});\n"],"mappings":"AACA,SACIA,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAMhC,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CAASC,UAAkD,EAAE;IAAA,KAApDA,UAAkD,GAAlDA,UAAkD;EAAG;EAEzE,MAAMC,OAAOA,CACTC,MAAgC,EACqC;IACrE,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMR,yBAAyB,GAAGG,oBAAoB,CAAC;EAC1DM,WAAW,EAAER,kBAAkB;EAC/BS,cAAc,EAAEN,6BAA6B;EAC7CO,YAAY,EAAE,CAACT,4BAA4B;AAC/C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js","sources":["../../../../src/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyUseCase as UseCaseAbstraction,\n GetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass GetFolderHierarchyUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderHierarchyRepository.Interface) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseAbstraction.Error>> {\n return await this.repository.execute(params);\n }\n}\n\nexport const GetFolderHierarchyUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderHierarchyUseCaseImpl,\n dependencies: [GetFolderHierarchyRepository]\n});\n"],"names":["GetFolderHierarchyUseCaseImpl","repository","params","GetFolderHierarchyUseCase","createImplementation","UseCaseAbstraction","GetFolderHierarchyRepository"],"mappings":";;AAWA,MAAMA;IACF,YAAoBC,UAAkD,CAAE;aAApDA,UAAU,GAAVA;IAAqD;IAEzE,MAAM,QACFC,MAAgC,EACqC;QACrE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACzC;AACJ;AAEO,MAAMC,sDAA4BC,qBAAqB;IAC1D,aAAaC;IACb,gBAAgBL;IAChB,cAAc;QAACM;KAA6B;AAChD"}
@@ -11,6 +11,7 @@ export interface IGetFolderHierarchyRepositoryErrors {
11
11
  persistence: FolderPersistenceError;
12
12
  }
13
13
  type RepositoryError = IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];
14
+ /** Fetch folder hierarchy from storage. */
14
15
  export declare const GetFolderHierarchyRepository: import("@webiny/di").Abstraction<IGetFolderHierarchyRepository>;
15
16
  export declare namespace GetFolderHierarchyRepository {
16
17
  type Interface = IGetFolderHierarchyRepository;
@@ -27,6 +28,7 @@ export interface IGetFolderHierarchyUseCaseErrors {
27
28
  persistence: FolderPersistenceError;
28
29
  }
29
30
  type UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];
31
+ /** Retrieve the full folder hierarchy. */
30
32
  export declare const GetFolderHierarchyUseCase: import("@webiny/di").Abstraction<IGetFolderHierarchyUseCase>;
31
33
  export declare namespace GetFolderHierarchyUseCase {
32
34
  type Interface = IGetFolderHierarchyUseCase;
@@ -1,15 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * GetFolderHierarchy repository interface
5
- */
6
-
7
- export const GetFolderHierarchyRepository = createAbstraction("GetFolderHierarchyRepository");
8
-
9
- /**
10
- * GetFolderHierarchy use case interface
11
- */
12
-
13
- export const GetFolderHierarchyUseCase = createAbstraction("GetFolderHierarchyUseCase");
2
+ const GetFolderHierarchyRepository = createAbstraction("GetFolderHierarchyRepository");
3
+ const GetFolderHierarchyUseCase = createAbstraction("GetFolderHierarchyUseCase");
4
+ export { GetFolderHierarchyRepository, GetFolderHierarchyUseCase };
14
5
 
15
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetFolderHierarchyRepository","GetFolderHierarchyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolderHierarchy repository interface\n */\nexport interface IGetFolderHierarchyRepository {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;\n}\n\nexport interface IGetFolderHierarchyRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError =\n IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];\n\nexport const GetFolderHierarchyRepository = createAbstraction<IGetFolderHierarchyRepository>(\n \"GetFolderHierarchyRepository\"\n);\n\nexport namespace GetFolderHierarchyRepository {\n export type Interface = IGetFolderHierarchyRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolderHierarchy use case interface\n */\nexport interface IGetFolderHierarchyUseCase {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n}\n\nexport interface IGetFolderHierarchyUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];\n\nexport const GetFolderHierarchyUseCase = createAbstraction<IGetFolderHierarchyUseCase>(\n \"GetFolderHierarchyUseCase\"\n);\n\nexport namespace GetFolderHierarchyUseCase {\n export type Interface = IGetFolderHierarchyUseCase;\n export type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAcA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAcA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolderHierarchy/abstractions.js","sources":["../../../../src/features/folder/GetFolderHierarchy/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolderHierarchy repository interface\n */\nexport interface IGetFolderHierarchyRepository {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;\n}\n\nexport interface IGetFolderHierarchyRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError =\n IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];\n\n/** Fetch folder hierarchy from storage. */\nexport const GetFolderHierarchyRepository = createAbstraction<IGetFolderHierarchyRepository>(\n \"GetFolderHierarchyRepository\"\n);\n\nexport namespace GetFolderHierarchyRepository {\n export type Interface = IGetFolderHierarchyRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolderHierarchy use case interface\n */\nexport interface IGetFolderHierarchyUseCase {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n}\n\nexport interface IGetFolderHierarchyUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];\n\n/** Retrieve the full folder hierarchy. */\nexport const GetFolderHierarchyUseCase = createAbstraction<IGetFolderHierarchyUseCase>(\n \"GetFolderHierarchyUseCase\"\n);\n\nexport namespace GetFolderHierarchyUseCase {\n export type Interface = IGetFolderHierarchyUseCase;\n export type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["GetFolderHierarchyRepository","createAbstraction","GetFolderHierarchyUseCase"],"mappings":";AAyBO,MAAMA,+BAA+BC,kBACxC;AAyBG,MAAMC,4BAA4BD,kBACrC"}
@@ -1,64 +1,63 @@
1
- import { createDecorator, Result } from "@webiny/feature/api";
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
2
  import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
3
3
  import { GetFolderHierarchyUseCase } from "../abstractions.js";
4
4
  class GetFolderHierarchyWithFolderLevelPermissionsImpl {
5
- flpCatalog = new Map();
6
- constructor(folderLevelPermissions, decoratee) {
7
- this.folderLevelPermissions = folderLevelPermissions;
8
- this.decoratee = decoratee;
9
- }
10
- async execute(params) {
11
- const result = await this.decoratee.execute(params);
12
- if (result.isFail()) {
13
- return Result.fail(result.error);
5
+ constructor(folderLevelPermissions, decoratee){
6
+ this.folderLevelPermissions = folderLevelPermissions;
7
+ this.decoratee = decoratee;
8
+ this.flpCatalog = new Map();
9
+ }
10
+ async execute(params) {
11
+ const result = await this.decoratee.execute(params);
12
+ if (result.isFail()) return Result.fail(result.error);
13
+ const { siblings, parents } = result.value;
14
+ const folders = [
15
+ ...parents,
16
+ ...siblings
17
+ ];
18
+ await Promise.all(folders.map(async (folder)=>{
19
+ if (!this.hasFlp(folder.id)) {
20
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
21
+ this.setFlp(folder.id, permissions);
22
+ }
23
+ }));
24
+ return Result.ok({
25
+ parents: await this.filterAccessibleFolders(parents),
26
+ siblings: await this.filterAccessibleFolders(siblings)
27
+ });
28
+ }
29
+ async filterAccessibleFolders(folders) {
30
+ const results = await Promise.all(folders.map(async (folder)=>{
31
+ const permissions = this.getFlp(folder.id);
32
+ if (!permissions) return folder;
33
+ const canAccess = await this.folderLevelPermissions.canAccessFolder({
34
+ permissions,
35
+ rwd: "r"
36
+ });
37
+ return canAccess ? {
38
+ ...folder,
39
+ permissions
40
+ } : null;
41
+ }));
42
+ return results.filter((folder)=>null !== folder);
43
+ }
44
+ hasFlp(id) {
45
+ return this.flpCatalog.has(id);
46
+ }
47
+ getFlp(id) {
48
+ return this.flpCatalog.get(id);
49
+ }
50
+ setFlp(id, permissions) {
51
+ this.flpCatalog.set(id, permissions);
14
52
  }
15
- const {
16
- siblings,
17
- parents
18
- } = result.value;
19
- const folders = [...parents, ...siblings];
20
- await Promise.all(folders.map(async folder => {
21
- if (!this.hasFlp(folder.id)) {
22
- const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
23
- this.setFlp(folder.id, permissions);
24
- }
25
- }));
26
- return Result.ok({
27
- parents: await this.filterAccessibleFolders(parents),
28
- siblings: await this.filterAccessibleFolders(siblings)
29
- });
30
- }
31
- async filterAccessibleFolders(folders) {
32
- const results = await Promise.all(folders.map(async folder => {
33
- const permissions = this.getFlp(folder.id);
34
- if (!permissions) {
35
- return folder;
36
- }
37
- const canAccess = await this.folderLevelPermissions.canAccessFolder({
38
- permissions,
39
- rwd: "r"
40
- });
41
- return canAccess ? {
42
- ...folder,
43
- permissions
44
- } : null;
45
- }));
46
- return results.filter(folder => folder !== null);
47
- }
48
- hasFlp(id) {
49
- return this.flpCatalog.has(id);
50
- }
51
- getFlp(id) {
52
- return this.flpCatalog.get(id);
53
- }
54
- setFlp(id, permissions) {
55
- this.flpCatalog.set(id, permissions);
56
- }
57
53
  }
58
- export const GetFolderHierarchyWithFolderLevelPermissions = createDecorator({
59
- abstraction: GetFolderHierarchyUseCase,
60
- decorator: GetFolderHierarchyWithFolderLevelPermissionsImpl,
61
- dependencies: [FolderLevelPermissions]
54
+ const GetFolderHierarchyWithFolderLevelPermissions = createDecorator({
55
+ abstraction: GetFolderHierarchyUseCase,
56
+ decorator: GetFolderHierarchyWithFolderLevelPermissionsImpl,
57
+ dependencies: [
58
+ FolderLevelPermissions
59
+ ]
62
60
  });
61
+ export { GetFolderHierarchyWithFolderLevelPermissions };
63
62
 
64
63
  //# sourceMappingURL=GetFolderHierarchyWithFolderLevelPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createDecorator","Result","FolderLevelPermissions","GetFolderHierarchyUseCase","GetFolderHierarchyWithFolderLevelPermissionsImpl","flpCatalog","Map","constructor","folderLevelPermissions","decoratee","execute","params","result","isFail","fail","error","siblings","parents","value","folders","Promise","all","map","folder","hasFlp","id","permissions","getFolderLevelPermissions","setFlp","ok","filterAccessibleFolders","results","getFlp","canAccess","canAccessFolder","rwd","filter","has","get","set","GetFolderHierarchyWithFolderLevelPermissions","abstraction","decorator","dependencies"],"sources":["GetFolderHierarchyWithFolderLevelPermissions.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { GetFolderHierarchyUseCase } from \"../abstractions.js\";\nimport type { Folder, GetFolderHierarchyParams } from \"~/folder/folder.types.js\";\n\nclass GetFolderHierarchyWithFolderLevelPermissionsImpl\n implements GetFolderHierarchyUseCase.Interface\n{\n private flpCatalog: Map<string, FolderPermission[]> = new Map();\n\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetFolderHierarchyUseCase.Interface\n ) {}\n\n async execute(params: GetFolderHierarchyParams): GetFolderHierarchyUseCase.Return {\n const result = await this.decoratee.execute(params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const { siblings, parents } = result.value;\n const folders = [...parents, ...siblings];\n\n await Promise.all(\n folders.map(async folder => {\n if (!this.hasFlp(folder.id)) {\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n folder.id\n );\n this.setFlp(folder.id, permissions);\n }\n })\n );\n\n return Result.ok({\n parents: await this.filterAccessibleFolders(parents),\n siblings: await this.filterAccessibleFolders(siblings)\n });\n }\n\n private async filterAccessibleFolders(folders: Folder[]): Promise<Folder[]> {\n const results = await Promise.all(\n folders.map(async folder => {\n const permissions = this.getFlp(folder.id);\n if (!permissions) {\n return folder;\n }\n\n const canAccess = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n return canAccess ? { ...folder, permissions } : null;\n })\n );\n return results.filter((folder): folder is Folder => folder !== null);\n }\n\n private hasFlp(id: string): boolean {\n return this.flpCatalog.has(id);\n }\n\n private getFlp(id: string): FolderPermission[] | undefined {\n return this.flpCatalog.get(id);\n }\n\n private setFlp(id: string, permissions: FolderPermission[]): void {\n this.flpCatalog.set(id, permissions);\n }\n}\n\nexport const GetFolderHierarchyWithFolderLevelPermissions = createDecorator({\n abstraction: GetFolderHierarchyUseCase,\n decorator: GetFolderHierarchyWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAE7D,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAGlC,MAAMC,gDAAgD,CAEtD;EACYC,UAAU,GAAoC,IAAIC,GAAG,CAAC,CAAC;EAE/DC,WAAWA,CACCC,sBAAwD,EACxDC,SAA8C,EACxD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAA8C,GAA9CA,SAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,MAAgC,EAAoC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAACC,MAAM,CAAC;IAEnD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOZ,MAAM,CAACa,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,MAAM;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,GAAGL,MAAM,CAACM,KAAK;IAC1C,MAAMC,OAAO,GAAG,CAAC,GAAGF,OAAO,EAAE,GAAGD,QAAQ,CAAC;IAEzC,MAAMI,OAAO,CAACC,GAAG,CACbF,OAAO,CAACG,GAAG,CAAC,MAAMC,MAAM,IAAI;MACxB,IAAI,CAAC,IAAI,CAACC,MAAM,CAACD,MAAM,CAACE,EAAE,CAAC,EAAE;QACzB,MAAMC,WAAW,GAAG,MAAM,IAAI,CAAClB,sBAAsB,CAACmB,yBAAyB,CAC3EJ,MAAM,CAACE,EACX,CAAC;QACD,IAAI,CAACG,MAAM,CAACL,MAAM,CAACE,EAAE,EAAEC,WAAW,CAAC;MACvC;IACJ,CAAC,CACL,CAAC;IAED,OAAOzB,MAAM,CAAC4B,EAAE,CAAC;MACbZ,OAAO,EAAE,MAAM,IAAI,CAACa,uBAAuB,CAACb,OAAO,CAAC;MACpDD,QAAQ,EAAE,MAAM,IAAI,CAACc,uBAAuB,CAACd,QAAQ;IACzD,CAAC,CAAC;EACN;EAEA,MAAcc,uBAAuBA,CAACX,OAAiB,EAAqB;IACxE,MAAMY,OAAO,GAAG,MAAMX,OAAO,CAACC,GAAG,CAC7BF,OAAO,CAACG,GAAG,CAAC,MAAMC,MAAM,IAAI;MACxB,MAAMG,WAAW,GAAG,IAAI,CAACM,MAAM,CAACT,MAAM,CAACE,EAAE,CAAC;MAC1C,IAAI,CAACC,WAAW,EAAE;QACd,OAAOH,MAAM;MACjB;MAEA,MAAMU,SAAS,GAAG,MAAM,IAAI,CAACzB,sBAAsB,CAAC0B,eAAe,CAAC;QAChER,WAAW;QACXS,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,OAAOF,SAAS,GAAG;QAAE,GAAGV,MAAM;QAAEG;MAAY,CAAC,GAAG,IAAI;IACxD,CAAC,CACL,CAAC;IACD,OAAOK,OAAO,CAACK,MAAM,CAAEb,MAAM,IAAuBA,MAAM,KAAK,IAAI,CAAC;EACxE;EAEQC,MAAMA,CAACC,EAAU,EAAW;IAChC,OAAO,IAAI,CAACpB,UAAU,CAACgC,GAAG,CAACZ,EAAE,CAAC;EAClC;EAEQO,MAAMA,CAACP,EAAU,EAAkC;IACvD,OAAO,IAAI,CAACpB,UAAU,CAACiC,GAAG,CAACb,EAAE,CAAC;EAClC;EAEQG,MAAMA,CAACH,EAAU,EAAEC,WAA+B,EAAQ;IAC9D,IAAI,CAACrB,UAAU,CAACkC,GAAG,CAACd,EAAE,EAAEC,WAAW,CAAC;EACxC;AACJ;AAEA,OAAO,MAAMc,4CAA4C,GAAGxC,eAAe,CAAC;EACxEyC,WAAW,EAAEtC,yBAAyB;EACtCuC,SAAS,EAAEtC,gDAAgD;EAC3DuC,YAAY,EAAE,CAACzC,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js","sources":["../../../../../src/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { GetFolderHierarchyUseCase } from \"../abstractions.js\";\nimport type { Folder, GetFolderHierarchyParams } from \"~/folder/folder.types.js\";\n\nclass GetFolderHierarchyWithFolderLevelPermissionsImpl\n implements GetFolderHierarchyUseCase.Interface\n{\n private flpCatalog: Map<string, FolderPermission[]> = new Map();\n\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetFolderHierarchyUseCase.Interface\n ) {}\n\n async execute(params: GetFolderHierarchyParams): GetFolderHierarchyUseCase.Return {\n const result = await this.decoratee.execute(params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const { siblings, parents } = result.value;\n const folders = [...parents, ...siblings];\n\n await Promise.all(\n folders.map(async folder => {\n if (!this.hasFlp(folder.id)) {\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n folder.id\n );\n this.setFlp(folder.id, permissions);\n }\n })\n );\n\n return Result.ok({\n parents: await this.filterAccessibleFolders(parents),\n siblings: await this.filterAccessibleFolders(siblings)\n });\n }\n\n private async filterAccessibleFolders(folders: Folder[]): Promise<Folder[]> {\n const results = await Promise.all(\n folders.map(async folder => {\n const permissions = this.getFlp(folder.id);\n if (!permissions) {\n return folder;\n }\n\n const canAccess = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n return canAccess ? { ...folder, permissions } : null;\n })\n );\n return results.filter((folder): folder is Folder => folder !== null);\n }\n\n private hasFlp(id: string): boolean {\n return this.flpCatalog.has(id);\n }\n\n private getFlp(id: string): FolderPermission[] | undefined {\n return this.flpCatalog.get(id);\n }\n\n private setFlp(id: string, permissions: FolderPermission[]): void {\n this.flpCatalog.set(id, permissions);\n }\n}\n\nexport const GetFolderHierarchyWithFolderLevelPermissions = createDecorator({\n abstraction: GetFolderHierarchyUseCase,\n decorator: GetFolderHierarchyWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetFolderHierarchyWithFolderLevelPermissionsImpl","folderLevelPermissions","decoratee","Map","params","result","Result","siblings","parents","folders","Promise","folder","permissions","results","canAccess","id","GetFolderHierarchyWithFolderLevelPermissions","createDecorator","GetFolderHierarchyUseCase","FolderLevelPermissions"],"mappings":";;;AAMA,MAAMA;IAKF,YACYC,sBAAwD,EACxDC,SAA8C,CACxD;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;aAJJ,UAAU,GAAoC,IAAIC;IAKvD;IAEH,MAAM,QAAQC,MAAgC,EAAoC;QAC9E,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACD;QAE5C,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAACD,OAAO,KAAK;QAGnC,MAAM,EAAEE,QAAQ,EAAEC,OAAO,EAAE,GAAGH,OAAO,KAAK;QAC1C,MAAMI,UAAU;eAAID;eAAYD;SAAS;QAEzC,MAAMG,QAAQ,GAAG,CACbD,QAAQ,GAAG,CAAC,OAAME;YACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAACA,OAAO,EAAE,GAAG;gBACzB,MAAMC,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAC3ED,OAAO,EAAE;gBAEb,IAAI,CAAC,MAAM,CAACA,OAAO,EAAE,EAAEC;YAC3B;QACJ;QAGJ,OAAON,OAAO,EAAE,CAAC;YACb,SAAS,MAAM,IAAI,CAAC,uBAAuB,CAACE;YAC5C,UAAU,MAAM,IAAI,CAAC,uBAAuB,CAACD;QACjD;IACJ;IAEA,MAAc,wBAAwBE,OAAiB,EAAqB;QACxE,MAAMI,UAAU,MAAMH,QAAQ,GAAG,CAC7BD,QAAQ,GAAG,CAAC,OAAME;YACd,MAAMC,cAAc,IAAI,CAAC,MAAM,CAACD,OAAO,EAAE;YACzC,IAAI,CAACC,aACD,OAAOD;YAGX,MAAMG,YAAY,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;gBAChEF;gBACA,KAAK;YACT;YAEA,OAAOE,YAAY;gBAAE,GAAGH,MAAM;gBAAEC;YAAY,IAAI;QACpD;QAEJ,OAAOC,QAAQ,MAAM,CAAC,CAACF,SAA6BA,AAAW,SAAXA;IACxD;IAEQ,OAAOI,EAAU,EAAW;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAACA;IAC/B;IAEQ,OAAOA,EAAU,EAAkC;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAACA;IAC/B;IAEQ,OAAOA,EAAU,EAAEH,WAA+B,EAAQ;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAACG,IAAIH;IAC5B;AACJ;AAEO,MAAMI,+CAA+CC,gBAAgB;IACxE,aAAaC;IACb,WAAWlB;IACX,cAAc;QAACmB;KAAuB;AAC1C"}
@@ -1 +1,5 @@
1
- export declare const GetFolderHierarchyFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetFolderHierarchyFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -2,13 +2,14 @@ import { createFeature } from "@webiny/feature/api";
2
2
  import { GetFolderHierarchyRepository } from "./GetFolderHierarchyRepository.js";
3
3
  import { GetFolderHierarchyUseCase } from "./GetFolderHierarchyUseCase.js";
4
4
  import { GetFolderHierarchyWithFolderLevelPermissions } from "./decorators/GetFolderHierarchyWithFolderLevelPermissions.js";
5
- export const GetFolderHierarchyFeature = createFeature({
6
- name: "GetFolderHierarchy",
7
- register(container) {
8
- container.register(GetFolderHierarchyRepository).inSingletonScope();
9
- container.register(GetFolderHierarchyUseCase);
10
- container.registerDecorator(GetFolderHierarchyWithFolderLevelPermissions);
11
- }
5
+ const GetFolderHierarchyFeature = createFeature({
6
+ name: "GetFolderHierarchy",
7
+ register (container) {
8
+ container.register(GetFolderHierarchyRepository).inSingletonScope();
9
+ container.register(GetFolderHierarchyUseCase);
10
+ container.registerDecorator(GetFolderHierarchyWithFolderLevelPermissions);
11
+ }
12
12
  });
13
+ export { GetFolderHierarchyFeature };
13
14
 
14
15
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","GetFolderHierarchyRepository","GetFolderHierarchyUseCase","GetFolderHierarchyWithFolderLevelPermissions","GetFolderHierarchyFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetFolderHierarchyRepository } from \"./GetFolderHierarchyRepository.js\";\nimport { GetFolderHierarchyUseCase } from \"./GetFolderHierarchyUseCase.js\";\nimport { GetFolderHierarchyWithFolderLevelPermissions } from \"./decorators/GetFolderHierarchyWithFolderLevelPermissions.js\";\n\nexport const GetFolderHierarchyFeature = createFeature({\n name: \"GetFolderHierarchy\",\n register(container: Container) {\n container.register(GetFolderHierarchyRepository).inSingletonScope();\n container.register(GetFolderHierarchyUseCase);\n container.registerDecorator(GetFolderHierarchyWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,4BAA4B;AACrC,SAASC,yBAAyB;AAClC,SAASC,4CAA4C;AAErD,OAAO,MAAMC,yBAAyB,GAAGJ,aAAa,CAAC;EACnDK,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,4BAA4B,CAAC,CAACO,gBAAgB,CAAC,CAAC;IACnED,SAAS,CAACD,QAAQ,CAACJ,yBAAyB,CAAC;IAC7CK,SAAS,CAACE,iBAAiB,CAACN,4CAA4C,CAAC;EAC7E;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolderHierarchy/feature.js","sources":["../../../../src/features/folder/GetFolderHierarchy/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetFolderHierarchyRepository } from \"./GetFolderHierarchyRepository.js\";\nimport { GetFolderHierarchyUseCase } from \"./GetFolderHierarchyUseCase.js\";\nimport { GetFolderHierarchyWithFolderLevelPermissions } from \"./decorators/GetFolderHierarchyWithFolderLevelPermissions.js\";\n\nexport const GetFolderHierarchyFeature = createFeature({\n name: \"GetFolderHierarchy\",\n register(container: Container) {\n container.register(GetFolderHierarchyRepository).inSingletonScope();\n container.register(GetFolderHierarchyUseCase);\n container.registerDecorator(GetFolderHierarchyWithFolderLevelPermissions);\n }\n});\n"],"names":["GetFolderHierarchyFeature","createFeature","container","GetFolderHierarchyRepository","GetFolderHierarchyUseCase","GetFolderHierarchyWithFolderLevelPermissions"],"mappings":";;;;AAMO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,QAAQ,CAACC,8BAA8B,gBAAgB;QACjED,UAAU,QAAQ,CAACE;QACnBF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { GetFolderHierarchyFeature } from "./feature.js";
2
2
  export { GetFolderHierarchyUseCase } from "./abstractions.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  import { ListFolderLevelPermissionsTargetsUseCase as UseCaseAbstraction } from "./abstractions.js";
2
- import { ListUsersUseCase } from "@webiny/api-core/features/ListUsers";
3
- import { ListTeamsUseCase } from "@webiny/api-core/features/ListTeams";
2
+ import { ListUsersUseCase } from "@webiny/api-core/features/users/ListUsers/index.js";
3
+ import { ListTeamsUseCase } from "@webiny/api-core/features/security/teams/ListTeams/index.js";
4
4
  declare class ListFolderLevelPermissionsTargetsUseCaseImpl implements UseCaseAbstraction.Interface {
5
5
  private listAdminUsers;
6
6
  private listTeams;