@webiny/api-aco 6.3.0-beta.4 → 6.4.0-beta.0

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 (344) hide show
  1. package/constants.js +2 -1
  2. package/constants.js.map +1 -1
  3. package/createAcoContext.js +69 -103
  4. package/createAcoContext.js.map +1 -1
  5. package/createAcoGraphQL.js +42 -43
  6. package/createAcoGraphQL.js.map +1 -1
  7. package/createAcoStorageOperations.js +5 -6
  8. package/createAcoStorageOperations.js.map +1 -1
  9. package/createAcoTasks.js +7 -8
  10. package/createAcoTasks.js.map +1 -1
  11. package/domain/folder/abstractions.js +2 -5
  12. package/domain/folder/abstractions.js.map +1 -1
  13. package/domain/folder/errors.js +42 -47
  14. package/domain/folder/errors.js.map +1 -1
  15. package/domain/folder/folder.model.js +52 -36
  16. package/domain/folder/folder.model.js.map +1 -1
  17. package/exports/api/aco/flp.js +0 -2
  18. package/exports/api/aco/folder.js +4 -6
  19. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
  20. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
  21. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
  22. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
  23. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
  24. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
  25. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
  26. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
  27. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
  28. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
  29. package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
  30. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
  31. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
  32. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
  33. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
  34. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
  35. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +27 -28
  36. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
  37. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +27 -27
  38. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
  39. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +27 -28
  40. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
  41. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +27 -28
  42. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
  43. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
  44. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
  45. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
  46. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
  47. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
  48. package/features/cms/feature.js +19 -25
  49. package/features/cms/feature.js.map +1 -1
  50. package/features/cms/index.js +0 -2
  51. package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
  52. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
  53. package/features/flp/CreateFlp/abstractions.js +2 -5
  54. package/features/flp/CreateFlp/abstractions.js.map +1 -1
  55. package/features/flp/CreateFlp/feature.js +7 -8
  56. package/features/flp/CreateFlp/feature.js.map +1 -1
  57. package/features/flp/CreateFlp/index.js +0 -2
  58. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +27 -27
  59. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
  60. package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
  61. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
  62. package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
  63. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
  64. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
  65. package/features/flp/DeleteFlp/abstractions.js +2 -5
  66. package/features/flp/DeleteFlp/abstractions.js.map +1 -1
  67. package/features/flp/DeleteFlp/feature.js +7 -8
  68. package/features/flp/DeleteFlp/feature.js.map +1 -1
  69. package/features/flp/DeleteFlp/index.js +0 -2
  70. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +27 -27
  71. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
  72. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
  73. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
  74. package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
  75. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +87 -108
  76. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
  77. package/features/flp/FolderLevelPermissions/abstractions.js +2 -2
  78. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
  79. package/features/flp/FolderLevelPermissions/feature.js +6 -5
  80. package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
  81. package/features/flp/FolderLevelPermissions/index.js +0 -2
  82. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
  83. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
  84. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
  85. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
  86. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
  87. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
  88. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
  89. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
  90. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
  91. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
  92. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
  93. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
  94. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
  95. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
  96. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
  97. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
  98. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
  99. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
  100. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
  101. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
  102. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
  103. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
  104. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
  105. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
  106. package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
  107. package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
  108. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
  109. package/features/flp/GetFlp/abstractions.js +2 -2
  110. package/features/flp/GetFlp/abstractions.js.map +1 -1
  111. package/features/flp/GetFlp/feature.js +7 -8
  112. package/features/flp/GetFlp/feature.js.map +1 -1
  113. package/features/flp/GetFlp/index.js +0 -2
  114. package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
  115. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
  116. package/features/flp/ListFlps/abstractions.js +2 -2
  117. package/features/flp/ListFlps/abstractions.js.map +1 -1
  118. package/features/flp/ListFlps/feature.js +7 -8
  119. package/features/flp/ListFlps/feature.js.map +1 -1
  120. package/features/flp/ListFlps/index.js +0 -2
  121. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +133 -184
  122. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
  123. package/features/flp/UpdateFlp/abstractions.js +2 -5
  124. package/features/flp/UpdateFlp/abstractions.js.map +1 -1
  125. package/features/flp/UpdateFlp/feature.js +7 -8
  126. package/features/flp/UpdateFlp/feature.js.map +1 -1
  127. package/features/flp/UpdateFlp/index.js +0 -2
  128. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +29 -29
  129. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
  130. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
  131. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
  132. package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
  133. package/features/folder/CreateFolder/CreateFolderRepository.js +67 -90
  134. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
  135. package/features/folder/CreateFolder/CreateFolderUseCase.js +27 -30
  136. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
  137. package/features/folder/CreateFolder/abstractions.js +5 -22
  138. package/features/folder/CreateFolder/abstractions.js.map +1 -1
  139. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +29 -34
  140. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
  141. package/features/folder/CreateFolder/events.js +16 -14
  142. package/features/folder/CreateFolder/events.js.map +1 -1
  143. package/features/folder/CreateFolder/feature.js +8 -7
  144. package/features/folder/CreateFolder/feature.js.map +1 -1
  145. package/features/folder/CreateFolder/index.js +1 -3
  146. package/features/folder/DeleteFolder/DeleteFolderRepository.js +22 -20
  147. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
  148. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +35 -43
  149. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
  150. package/features/folder/DeleteFolder/abstractions.js +5 -22
  151. package/features/folder/DeleteFolder/abstractions.js.map +1 -1
  152. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
  153. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
  154. package/features/folder/DeleteFolder/events.js +16 -14
  155. package/features/folder/DeleteFolder/events.js.map +1 -1
  156. package/features/folder/DeleteFolder/feature.js +8 -7
  157. package/features/folder/DeleteFolder/feature.js.map +1 -1
  158. package/features/folder/DeleteFolder/index.js +1 -3
  159. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +43 -44
  160. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
  161. package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -2
  162. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
  163. package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
  164. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
  165. package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
  166. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +16 -20
  167. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
  168. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
  169. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
  170. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
  171. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +36 -44
  172. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
  173. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
  174. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
  175. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
  176. package/features/folder/GetAncestors/GetAncestorsRepository.js +45 -75
  177. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
  178. package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
  179. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
  180. package/features/folder/GetAncestors/abstractions.js +3 -14
  181. package/features/folder/GetAncestors/abstractions.js.map +1 -1
  182. package/features/folder/GetAncestors/feature.js +7 -6
  183. package/features/folder/GetAncestors/feature.js.map +1 -1
  184. package/features/folder/GetAncestors/index.js +0 -2
  185. package/features/folder/GetFolder/GetFolderRepository.js +21 -19
  186. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
  187. package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
  188. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
  189. package/features/folder/GetFolder/abstractions.js +5 -21
  190. package/features/folder/GetFolder/abstractions.js.map +1 -1
  191. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
  192. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
  193. package/features/folder/GetFolder/feature.js +8 -7
  194. package/features/folder/GetFolder/feature.js.map +1 -1
  195. package/features/folder/GetFolder/index.js +0 -2
  196. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +67 -86
  197. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
  198. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
  199. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
  200. package/features/folder/GetFolderHierarchy/abstractions.js +3 -14
  201. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
  202. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
  203. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
  204. package/features/folder/GetFolderHierarchy/feature.js +8 -7
  205. package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
  206. package/features/folder/GetFolderHierarchy/index.js +0 -2
  207. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +65 -58
  208. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
  209. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -5
  210. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
  211. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
  212. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
  213. package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
  214. package/features/folder/ListFolders/ListFoldersRepository.js +39 -41
  215. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
  216. package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
  217. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
  218. package/features/folder/ListFolders/abstractions.js +3 -14
  219. package/features/folder/ListFolders/abstractions.js.map +1 -1
  220. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
  221. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
  222. package/features/folder/ListFolders/feature.js +8 -7
  223. package/features/folder/ListFolders/feature.js.map +1 -1
  224. package/features/folder/ListFolders/index.js +0 -2
  225. package/features/folder/UpdateFolder/UpdateFolderRepository.js +66 -92
  226. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
  227. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +38 -45
  228. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
  229. package/features/folder/UpdateFolder/abstractions.js +5 -22
  230. package/features/folder/UpdateFolder/abstractions.js.map +1 -1
  231. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +45 -64
  232. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
  233. package/features/folder/UpdateFolder/events.js +16 -14
  234. package/features/folder/UpdateFolder/events.js.map +1 -1
  235. package/features/folder/UpdateFolder/feature.js +8 -7
  236. package/features/folder/UpdateFolder/feature.js.map +1 -1
  237. package/features/folder/UpdateFolder/index.js +0 -2
  238. package/features/folder/shared/EntryToFolderMapper.js +20 -19
  239. package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
  240. package/features/folder/shared/abstractions.js +2 -2
  241. package/features/folder/shared/abstractions.js.map +1 -1
  242. package/filter/filter.crud.js +28 -31
  243. package/filter/filter.crud.js.map +1 -1
  244. package/filter/filter.gql.js +32 -48
  245. package/filter/filter.gql.js.map +1 -1
  246. package/filter/filter.model.js +44 -35
  247. package/filter/filter.model.js.map +1 -1
  248. package/filter/filter.so.js +73 -93
  249. package/filter/filter.so.js.map +1 -1
  250. package/filter/filter.types.js +5 -4
  251. package/filter/filter.types.js.map +1 -1
  252. package/flp/flp.crud.js +69 -86
  253. package/flp/flp.crud.js.map +1 -1
  254. package/flp/flp.so.js +162 -199
  255. package/flp/flp.so.js.map +1 -1
  256. package/flp/flp.types.js +0 -3
  257. package/flp/index.js +0 -2
  258. package/flp/tasks/createFlp.task.js +26 -27
  259. package/flp/tasks/createFlp.task.js.map +1 -1
  260. package/flp/tasks/deleteFlp.task.js +26 -27
  261. package/flp/tasks/deleteFlp.task.js.map +1 -1
  262. package/flp/tasks/index.js +13 -12
  263. package/flp/tasks/index.js.map +1 -1
  264. package/flp/tasks/syncFlp.task.js +83 -112
  265. package/flp/tasks/syncFlp.task.js.map +1 -1
  266. package/flp/tasks/updateFlp.task.js +33 -32
  267. package/flp/tasks/updateFlp.task.js.map +1 -1
  268. package/folder/createFolderModelModifier.js +50 -50
  269. package/folder/createFolderModelModifier.js.map +1 -1
  270. package/folder/createFolderTypeDefs.js +39 -50
  271. package/folder/createFolderTypeDefs.js.map +1 -1
  272. package/folder/folder.gql.js +100 -133
  273. package/folder/folder.gql.js.map +1 -1
  274. package/folder/folder.types.js +0 -3
  275. package/index.js +7 -4
  276. package/index.js.map +1 -1
  277. package/package.json +24 -24
  278. package/types.js +5 -4
  279. package/types.js.map +1 -1
  280. package/utils/FoldersCacheFactory.js +20 -19
  281. package/utils/FoldersCacheFactory.js.map +1 -1
  282. package/utils/ListCache.js +20 -19
  283. package/utils/ListCache.js.map +1 -1
  284. package/utils/Path.js +5 -6
  285. package/utils/Path.js.map +1 -1
  286. package/utils/compress.js +8 -7
  287. package/utils/compress.js.map +1 -1
  288. package/utils/createListSort.js +4 -7
  289. package/utils/createListSort.js.map +1 -1
  290. package/utils/createOperationsWrapper.js +12 -19
  291. package/utils/createOperationsWrapper.js.map +1 -1
  292. package/utils/decorators/CmsEntriesCrudDecorators.js +165 -196
  293. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  294. package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
  295. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
  296. package/utils/decorators/ListEntriesFactory.js +65 -98
  297. package/utils/decorators/ListEntriesFactory.js.map +1 -1
  298. package/utils/decorators/hasRootFolderId.js +6 -12
  299. package/utils/decorators/hasRootFolderId.js.map +1 -1
  300. package/utils/decorators/isPageModel.js +5 -10
  301. package/utils/decorators/isPageModel.js.map +1 -1
  302. package/utils/ensureAuthentication.js +6 -7
  303. package/utils/ensureAuthentication.js.map +1 -1
  304. package/utils/pickEntryFieldValues.js +24 -18
  305. package/utils/pickEntryFieldValues.js.map +1 -1
  306. package/utils/resolve.js +7 -6
  307. package/utils/resolve.js.map +1 -1
  308. package/exports/api/aco/flp.js.map +0 -1
  309. package/exports/api/aco/folder.js.map +0 -1
  310. package/features/cms/index.js.map +0 -1
  311. package/features/flp/CreateFlp/index.js.map +0 -1
  312. package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
  313. package/features/flp/DeleteFlp/index.js.map +0 -1
  314. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
  315. package/features/flp/FolderLevelPermissions/index.js.map +0 -1
  316. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
  317. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
  318. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
  319. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
  320. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
  321. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
  322. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
  323. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
  324. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
  325. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
  326. package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
  327. package/features/flp/GetFlp/index.js.map +0 -1
  328. package/features/flp/ListFlps/index.js.map +0 -1
  329. package/features/flp/UpdateFlp/index.js.map +0 -1
  330. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
  331. package/features/folder/CreateFolder/index.js.map +0 -1
  332. package/features/folder/DeleteFolder/index.js.map +0 -1
  333. package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
  334. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
  335. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
  336. package/features/folder/GetAncestors/index.js.map +0 -1
  337. package/features/folder/GetFolder/index.js.map +0 -1
  338. package/features/folder/GetFolderHierarchy/index.js.map +0 -1
  339. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
  340. package/features/folder/ListFolders/index.js.map +0 -1
  341. package/features/folder/UpdateFolder/index.js.map +0 -1
  342. package/flp/flp.types.js.map +0 -1
  343. package/flp/index.js.map +0 -1
  344. package/folder/folder.types.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { ListFoldersRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { ListFoldersRepository } from "./abstractions.js";
3
3
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
4
4
  import { FolderModel } from "../../../domain/folder/abstractions.js";
5
5
  import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
@@ -7,48 +7,46 @@ import { FolderPersistenceError } from "../../../domain/folder/errors.js";
7
7
  import { createListSort } from "../../../utils/createListSort.js";
8
8
  import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
9
9
  class ListFoldersRepositoryImpl {
10
- constructor(listLatestEntries, folderModel, cmsWhereMapper, cmsSortMapper) {
11
- this.listLatestEntries = listLatestEntries;
12
- this.folderModel = folderModel;
13
- this.cmsWhereMapper = cmsWhereMapper;
14
- this.cmsSortMapper = cmsSortMapper;
15
- }
16
- async execute(params) {
17
- const {
18
- sort,
19
- where
20
- } = params;
21
- const listSort = sort || {
22
- values_title: "ASC"
23
- };
24
- const result = await this.listLatestEntries.execute(this.folderModel, {
25
- ...params,
26
- sort: this.cmsSortMapper.map({
27
- input: createListSort(listSort),
28
- fields: this.folderModel.fields
29
- }),
30
- where: this.cmsWhereMapper.map({
31
- input: where,
32
- fields: this.folderModel.fields
33
- })
34
- });
35
- if (result.isFail()) {
36
- return Result.fail(new FolderPersistenceError(result.error));
10
+ constructor(listLatestEntries, folderModel, cmsWhereMapper, cmsSortMapper){
11
+ this.listLatestEntries = listLatestEntries;
12
+ this.folderModel = folderModel;
13
+ this.cmsWhereMapper = cmsWhereMapper;
14
+ this.cmsSortMapper = cmsSortMapper;
15
+ }
16
+ async execute(params) {
17
+ const { sort, where } = params;
18
+ const listSort = sort || {
19
+ values_title: "ASC"
20
+ };
21
+ const result = await this.listLatestEntries.execute(this.folderModel, {
22
+ ...params,
23
+ sort: this.cmsSortMapper.map({
24
+ input: createListSort(listSort),
25
+ fields: this.folderModel.fields
26
+ }),
27
+ where: this.cmsWhereMapper.map({
28
+ input: where,
29
+ fields: this.folderModel.fields
30
+ })
31
+ });
32
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
33
+ const { entries, meta } = result.value;
34
+ const folders = entries.map((entry)=>EntryToFolderMapper.toFolder(entry));
35
+ return Result.ok({
36
+ folders,
37
+ meta
38
+ });
37
39
  }
38
- const {
39
- entries,
40
- meta
41
- } = result.value;
42
- const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));
43
- return Result.ok({
44
- folders,
45
- meta
46
- });
47
- }
48
40
  }
49
- export const ListFoldersRepository = RepositoryAbstraction.createImplementation({
50
- implementation: ListFoldersRepositoryImpl,
51
- dependencies: [ListLatestEntriesUseCase, FolderModel, CmsWhereMapper, CmsSortMapper]
41
+ const ListFoldersRepository_ListFoldersRepository = ListFoldersRepository.createImplementation({
42
+ implementation: ListFoldersRepositoryImpl,
43
+ dependencies: [
44
+ ListLatestEntriesUseCase,
45
+ FolderModel,
46
+ CmsWhereMapper,
47
+ CmsSortMapper
48
+ ]
52
49
  });
50
+ export { ListFoldersRepository_ListFoldersRepository as ListFoldersRepository };
53
51
 
54
52
  //# sourceMappingURL=ListFoldersRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListFoldersRepository","RepositoryAbstraction","ListLatestEntriesUseCase","FolderModel","EntryToFolderMapper","FolderPersistenceError","createListSort","CmsSortMapper","CmsWhereMapper","ListFoldersRepositoryImpl","constructor","listLatestEntries","folderModel","cmsWhereMapper","cmsSortMapper","execute","params","sort","where","listSort","values_title","result","map","input","fields","isFail","fail","error","entries","meta","value","folders","entry","toFolder","ok","createImplementation","implementation","dependencies"],"sources":["ListFoldersRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type IListFoldersRepository,\n ListFoldersRepository as RepositoryAbstraction\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport type { ListSort } from \"~/types.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListFoldersRepositoryImpl implements IListFoldersRepository {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: ListFoldersParams): RepositoryAbstraction.Return {\n const { sort, where } = params;\n\n const listSort =\n sort ||\n ({\n values_title: \"ASC\"\n } as unknown as ListSort);\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: createListSort(listSort),\n fields: this.folderModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: where,\n fields: this.folderModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));\n return Result.ok({ folders, meta });\n }\n}\n\nexport const ListFoldersRepository = RepositoryAbstraction.createImplementation({\n implementation: ListFoldersRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, FolderModel, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAEIC,qBAAqB,IAAIC,qBAAqB;AAElD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,WAAW;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,cAAc;AAEvB,SAASC,aAAa,EAAEC,cAAc,QAAQ,0BAA0B;AAExE,MAAMC,yBAAyB,CAAmC;EAC9DC,WAAWA,CACCC,iBAAqD,EACrDC,WAAkC,EAClCC,cAAwC,EACxCC,aAAsC,EAChD;IAAA,KAJUH,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,WAAkC,GAAlCA,WAAkC;IAAA,KAClCC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEH,MAAMC,OAAOA,CAACC,MAAyB,EAAgC;IACnE,MAAM;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE9B,MAAMG,QAAQ,GACVF,IAAI,IACH;MACGG,YAAY,EAAE;IAClB,CAAyB;IAE7B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACV,iBAAiB,CAACI,OAAO,CAAiB,IAAI,CAACH,WAAW,EAAE;MAClF,GAAGI,MAAM;MACTC,IAAI,EAAE,IAAI,CAACH,aAAa,CAACQ,GAAG,CAAC;QACzBC,KAAK,EAAEjB,cAAc,CAACa,QAAQ,CAAC;QAC/BK,MAAM,EAAE,IAAI,CAACZ,WAAW,CAACY;MAC7B,CAAC,CAAC;MACFN,KAAK,EAAE,IAAI,CAACL,cAAc,CAACS,GAAG,CAAC;QAC3BC,KAAK,EAAEL,KAAK;QACZM,MAAM,EAAE,IAAI,CAACZ,WAAW,CAACY;MAC7B,CAAC;IACL,CAAC,CAAC;IAEF,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAIrB,sBAAsB,CAACgB,MAAM,CAACM,KAAK,CAAC,CAAC;IAChE;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGR,MAAM,CAACS,KAAK;IACtC,MAAMC,OAAO,GAAGH,OAAO,CAACN,GAAG,CAACU,KAAK,IAAI5B,mBAAmB,CAAC6B,QAAQ,CAACD,KAAK,CAAC,CAAC;IACzE,OAAOjC,MAAM,CAACmC,EAAE,CAAC;MAAEH,OAAO;MAAEF;IAAK,CAAC,CAAC;EACvC;AACJ;AAEA,OAAO,MAAM7B,qBAAqB,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EAC5EC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACnC,wBAAwB,EAAEC,WAAW,EAAEK,cAAc,EAAED,aAAa;AACvF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/ListFolders/ListFoldersRepository.js","sources":["../../../../src/features/folder/ListFolders/ListFoldersRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type IListFoldersRepository,\n ListFoldersRepository as RepositoryAbstraction\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport type { ListSort } from \"~/types.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListFoldersRepositoryImpl implements IListFoldersRepository {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: ListFoldersParams): RepositoryAbstraction.Return {\n const { sort, where } = params;\n\n const listSort =\n sort ||\n ({\n values_title: \"ASC\"\n } as unknown as ListSort);\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: createListSort(listSort),\n fields: this.folderModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: where,\n fields: this.folderModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));\n return Result.ok({ folders, meta });\n }\n}\n\nexport const ListFoldersRepository = RepositoryAbstraction.createImplementation({\n implementation: ListFoldersRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, FolderModel, CmsWhereMapper, CmsSortMapper]\n});\n"],"names":["ListFoldersRepositoryImpl","listLatestEntries","folderModel","cmsWhereMapper","cmsSortMapper","params","sort","where","listSort","result","createListSort","Result","FolderPersistenceError","entries","meta","folders","entry","EntryToFolderMapper","ListFoldersRepository","RepositoryAbstraction","ListLatestEntriesUseCase","FolderModel","CmsWhereMapper","CmsSortMapper"],"mappings":";;;;;;;;AAcA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,WAAkC,EAClCC,cAAwC,EACxCC,aAAsC,CAChD;aAJUH,iBAAiB,GAAjBA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,MAAyB,EAAgC;QACnE,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGF;QAExB,MAAMG,WACFF,QACC;YACG,cAAc;QAClB;QAEJ,MAAMG,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAiB,IAAI,CAAC,WAAW,EAAE;YAClF,GAAGJ,MAAM;YACT,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBACzB,OAAOK,eAAeF;gBACtB,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM;YACnC;YACA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAOD;gBACP,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM;YACnC;QACJ;QAEA,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAAC,IAAIC,uBAAuBH,OAAO,KAAK;QAG9D,MAAM,EAAEI,OAAO,EAAEC,IAAI,EAAE,GAAGL,OAAO,KAAK;QACtC,MAAMM,UAAUF,QAAQ,GAAG,CAACG,CAAAA,QAASC,oBAAoB,QAAQ,CAACD;QAClE,OAAOL,OAAO,EAAE,CAAC;YAAEI;YAASD;QAAK;IACrC;AACJ;AAEO,MAAMI,8CAAwBC,sBAAAA,oBAA0C,CAAC;IAC5E,gBAAgBnB;IAChB,cAAc;QAACoB;QAA0BC;QAAaC;QAAgBC;KAAc;AACxF"}
@@ -1,17 +1,20 @@
1
1
  import { createImplementation } from "@webiny/feature/api";
2
- import { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from "./abstractions.js";
2
+ import { ListFoldersRepository, ListFoldersUseCase } from "./abstractions.js";
3
3
  class ListFoldersUseCaseImpl {
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 ListFoldersUseCase = createImplementation({
12
- abstraction: UseCaseAbstraction,
13
- implementation: ListFoldersUseCaseImpl,
14
- dependencies: [ListFoldersRepository]
11
+ const ListFoldersUseCase_ListFoldersUseCase = createImplementation({
12
+ abstraction: ListFoldersUseCase,
13
+ implementation: ListFoldersUseCaseImpl,
14
+ dependencies: [
15
+ ListFoldersRepository
16
+ ]
15
17
  });
18
+ export { ListFoldersUseCase_ListFoldersUseCase as ListFoldersUseCase };
16
19
 
17
20
  //# sourceMappingURL=ListFoldersUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","ListFoldersUseCase","UseCaseAbstraction","ListFoldersRepository","ListFoldersUseCaseImpl","constructor","repository","execute","params","abstraction","implementation","dependencies"],"sources":["ListFoldersUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from \"./abstractions.js\";\nimport type { ListFoldersParams } from \"~/folder/folder.types.js\";\n\nclass ListFoldersUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListFoldersRepository.Interface) {}\n\n async execute(params: ListFoldersParams): UseCaseAbstraction.Return {\n return await this.repository.execute(params);\n }\n}\n\nexport const ListFoldersUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListFoldersUseCaseImpl,\n dependencies: [ListFoldersRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AAGxE,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,UAA2C,EAAE;IAAA,KAA7CA,UAA2C,GAA3CA,UAA2C;EAAG;EAElE,MAAMC,OAAOA,CAACC,MAAyB,EAA6B;IAChE,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMP,kBAAkB,GAAGD,oBAAoB,CAAC;EACnDS,WAAW,EAAEP,kBAAkB;EAC/BQ,cAAc,EAAEN,sBAAsB;EACtCO,YAAY,EAAE,CAACR,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/ListFolders/ListFoldersUseCase.js","sources":["../../../../src/features/folder/ListFolders/ListFoldersUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from \"./abstractions.js\";\nimport type { ListFoldersParams } from \"~/folder/folder.types.js\";\n\nclass ListFoldersUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListFoldersRepository.Interface) {}\n\n async execute(params: ListFoldersParams): UseCaseAbstraction.Return {\n return await this.repository.execute(params);\n }\n}\n\nexport const ListFoldersUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListFoldersUseCaseImpl,\n dependencies: [ListFoldersRepository]\n});\n"],"names":["ListFoldersUseCaseImpl","repository","params","ListFoldersUseCase","createImplementation","UseCaseAbstraction","ListFoldersRepository"],"mappings":";;AAIA,MAAMA;IACF,YAAoBC,UAA2C,CAAE;aAA7CA,UAAU,GAAVA;IAA8C;IAElE,MAAM,QAAQC,MAAyB,EAA6B;QAChE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACzC;AACJ;AAEO,MAAMC,wCAAqBC,qBAAqB;IACnD,aAAaC;IACb,gBAAgBL;IAChB,cAAc;QAACM;KAAsB;AACzC"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * ListFolders repository interface
5
- */
6
-
7
- /** Fetch folders from storage. */
8
- export const ListFoldersRepository = createAbstraction("ListFoldersRepository");
9
-
10
- /**
11
- * ListFolders use case interface
12
- */
13
-
14
- /** List folders with filtering. */
15
- export const ListFoldersUseCase = createAbstraction("ListFoldersUseCase");
2
+ const ListFoldersRepository = createAbstraction("ListFoldersRepository");
3
+ const ListFoldersUseCase = createAbstraction("ListFoldersUseCase");
4
+ export { ListFoldersRepository, ListFoldersUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListFoldersRepository","ListFoldersUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport type { ListMeta } from \"~/types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\ninterface IListFoldersResult {\n folders: Folder[];\n meta: ListMeta;\n}\n\n/**\n * ListFolders repository interface\n */\nexport interface IListFoldersRepository {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;\n}\n\nexport interface IListFoldersRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];\n\n/** Fetch folders from storage. */\nexport const ListFoldersRepository =\n createAbstraction<IListFoldersRepository>(\"ListFoldersRepository\");\n\nexport namespace ListFoldersRepository {\n export type Interface = IListFoldersRepository;\n export type Return = Promise<Result<IListFoldersResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFolders use case interface\n */\nexport interface IListFoldersUseCase {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;\n}\n\nexport interface IListFoldersUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];\n\n/** List folders with filtering. */\nexport const ListFoldersUseCase = createAbstraction<IListFoldersUseCase>(\"ListFoldersUseCase\");\n\nexport namespace ListFoldersUseCase {\n export type Interface = IListFoldersUseCase;\n export type Return = Promise<Result<IListFoldersResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,qBAAqB,GAC9BD,iBAAiB,CAAyB,uBAAuB,CAAC;;AAQtE;AACA;AACA;;AAYA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/ListFolders/abstractions.js","sources":["../../../../src/features/folder/ListFolders/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport type { ListMeta } from \"~/types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\ninterface IListFoldersResult {\n folders: Folder[];\n meta: ListMeta;\n}\n\n/**\n * ListFolders repository interface\n */\nexport interface IListFoldersRepository {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;\n}\n\nexport interface IListFoldersRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];\n\n/** Fetch folders from storage. */\nexport const ListFoldersRepository =\n createAbstraction<IListFoldersRepository>(\"ListFoldersRepository\");\n\nexport namespace ListFoldersRepository {\n export type Interface = IListFoldersRepository;\n export type Return = Promise<Result<IListFoldersResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFolders use case interface\n */\nexport interface IListFoldersUseCase {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;\n}\n\nexport interface IListFoldersUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];\n\n/** List folders with filtering. */\nexport const ListFoldersUseCase = createAbstraction<IListFoldersUseCase>(\"ListFoldersUseCase\");\n\nexport namespace ListFoldersUseCase {\n export type Interface = IListFoldersUseCase;\n export type Return = Promise<Result<IListFoldersResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["ListFoldersRepository","createAbstraction","ListFoldersUseCase"],"mappings":";AAyBO,MAAMA,wBACTC,kBAA0C;AAuBvC,MAAMC,qBAAqBD,kBAAuC"}
@@ -3,75 +3,63 @@ import { ListFoldersUseCase } from "../abstractions.js";
3
3
  import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
4
4
  import { ROOT_FOLDER } from "../../../../constants.js";
5
5
  class ListFoldersWithFolderLevelPermissionsImpl {
6
- flpCatalog = new Map();
7
- constructor(folderLevelPermissions, decoratee) {
8
- this.folderLevelPermissions = folderLevelPermissions;
9
- this.decoratee = decoratee;
10
- }
11
- async execute(params) {
12
- const result = await this.decoratee.execute(params);
13
- if (result.isFail()) {
14
- return Result.fail(result.error);
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoratee = decoratee;
9
+ this.flpCatalog = new Map();
10
+ }
11
+ async execute(params) {
12
+ const result = await this.decoratee.execute(params);
13
+ if (result.isFail()) return Result.fail(result.error);
14
+ const { folders, meta } = result.value;
15
+ const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({
16
+ where: {
17
+ type: params.where.type,
18
+ parentId: ROOT_FOLDER
19
+ }
20
+ });
21
+ rootFlps.forEach((flp)=>this.setFlp(flp.id, flp.permissions));
22
+ await Promise.all(folders.map(async (folder)=>{
23
+ if (!this.hasFlp(folder.id)) {
24
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
25
+ this.setFlp(folder.id, permissions);
26
+ }
27
+ }));
28
+ const foldersWithPermissions = await Promise.all(folders.map(async (folder)=>{
29
+ const permissions = this.getFlp(folder.id);
30
+ if (!permissions) return null;
31
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
32
+ permissions,
33
+ rwd: "r"
34
+ });
35
+ if (!canAccessFolder) return null;
36
+ const folderWithFlp = {
37
+ ...folder,
38
+ permissions
39
+ };
40
+ return canAccessFolder ? folderWithFlp : null;
41
+ }));
42
+ return Result.ok({
43
+ folders: foldersWithPermissions.filter(Boolean),
44
+ meta
45
+ });
46
+ }
47
+ hasFlp(id) {
48
+ return this.flpCatalog.has(id);
49
+ }
50
+ getFlp(id) {
51
+ return this.flpCatalog.get(id);
52
+ }
53
+ setFlp(id, permissions) {
54
+ this.flpCatalog.set(id, permissions);
15
55
  }
16
- const {
17
- folders,
18
- meta
19
- } = result.value;
20
-
21
- // Fetch FLP records for ROOT folders and populate the catalog.
22
- const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({
23
- where: {
24
- type: params.where.type,
25
- parentId: ROOT_FOLDER
26
- }
27
- });
28
- rootFlps.forEach(flp => this.setFlp(flp.id, flp.permissions));
29
-
30
- // Fetch FLP for folders not already in the catalog.
31
- await Promise.all(folders.map(async folder => {
32
- if (!this.hasFlp(folder.id)) {
33
- const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
34
- this.setFlp(folder.id, permissions);
35
- }
36
- }));
37
-
38
- // Filter folders based on permissions.
39
- const foldersWithPermissions = await Promise.all(folders.map(async folder => {
40
- const permissions = this.getFlp(folder.id);
41
- if (!permissions) {
42
- return null;
43
- }
44
- const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
45
- permissions,
46
- rwd: "r"
47
- });
48
- if (!canAccessFolder) {
49
- return null;
50
- }
51
- const folderWithFlp = {
52
- ...folder,
53
- permissions
54
- };
55
- return canAccessFolder ? folderWithFlp : null;
56
- }));
57
- return Result.ok({
58
- folders: foldersWithPermissions.filter(Boolean),
59
- meta
60
- });
61
- }
62
- hasFlp(id) {
63
- return this.flpCatalog.has(id);
64
- }
65
- getFlp(id) {
66
- return this.flpCatalog.get(id);
67
- }
68
- setFlp(id, permissions) {
69
- this.flpCatalog.set(id, permissions);
70
- }
71
56
  }
72
- export const ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({
73
- decorator: ListFoldersWithFolderLevelPermissionsImpl,
74
- dependencies: [FolderLevelPermissions]
57
+ const ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({
58
+ decorator: ListFoldersWithFolderLevelPermissionsImpl,
59
+ dependencies: [
60
+ FolderLevelPermissions
61
+ ]
75
62
  });
63
+ export { ListFoldersWithFolderLevelPermissions };
76
64
 
77
65
  //# sourceMappingURL=ListFoldersWithFolderLevelPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListFoldersUseCase","FolderLevelPermissions","ROOT_FOLDER","ListFoldersWithFolderLevelPermissionsImpl","flpCatalog","Map","constructor","folderLevelPermissions","decoratee","execute","params","result","isFail","fail","error","folders","meta","value","rootFlps","listFolderLevelPermissions","where","type","parentId","forEach","flp","setFlp","id","permissions","Promise","all","map","folder","hasFlp","getFolderLevelPermissions","foldersWithPermissions","getFlp","canAccessFolder","rwd","folderWithFlp","ok","filter","Boolean","has","get","set","ListFoldersWithFolderLevelPermissions","createDecorator","decorator","dependencies"],"sources":["ListFoldersWithFolderLevelPermissions.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { ListFoldersUseCase } from \"../abstractions.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass ListFoldersWithFolderLevelPermissionsImpl implements ListFoldersUseCase.Interface {\n private flpCatalog: Map<string, FolderPermission[]> = new Map();\n\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListFoldersUseCase.Interface\n ) {}\n\n async execute(params: ListFoldersParams): ListFoldersUseCase.Return {\n const result = await this.decoratee.execute(params);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const { folders, meta } = result.value;\n\n // Fetch FLP records for ROOT folders and populate the catalog.\n const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({\n where: {\n type: params.where.type,\n parentId: ROOT_FOLDER\n }\n });\n\n rootFlps.forEach(flp => this.setFlp(flp.id, flp.permissions));\n\n // Fetch FLP for folders not already in the catalog.\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 // Filter folders based on permissions.\n const foldersWithPermissions = await Promise.all(\n folders.map(async folder => {\n const permissions = this.getFlp(folder.id);\n if (!permissions) {\n return null;\n }\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return null;\n }\n\n const folderWithFlp = { ...folder, permissions };\n return canAccessFolder ? folderWithFlp : null;\n })\n );\n\n return Result.ok({ folders: foldersWithPermissions.filter(Boolean) as Folder[], meta });\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 ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({\n decorator: ListFoldersWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAE5C,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAE/B,SAASC,WAAW;AAEpB,MAAMC,yCAAyC,CAAyC;EAC5EC,UAAU,GAAoC,IAAIC,GAAG,CAAC,CAAC;EAE/DC,WAAWA,CACCC,sBAAwD,EACxDC,SAAuC,EACjD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAuC,GAAvCA,SAAuC;EAChD;EAEH,MAAMC,OAAOA,CAACC,MAAyB,EAA6B;IAChE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAACC,MAAM,CAAC;IACnD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOb,MAAM,CAACc,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGL,MAAM,CAACM,KAAK;;IAEtC;IACA,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACX,sBAAsB,CAACY,0BAA0B,CAAC;MAC1EC,KAAK,EAAE;QACHC,IAAI,EAAEX,MAAM,CAACU,KAAK,CAACC,IAAI;QACvBC,QAAQ,EAAEpB;MACd;IACJ,CAAC,CAAC;IAEFgB,QAAQ,CAACK,OAAO,CAACC,GAAG,IAAI,IAAI,CAACC,MAAM,CAACD,GAAG,CAACE,EAAE,EAAEF,GAAG,CAACG,WAAW,CAAC,CAAC;;IAE7D;IACA,MAAMC,OAAO,CAACC,GAAG,CACbd,OAAO,CAACe,GAAG,CAAC,MAAMC,MAAM,IAAI;MACxB,IAAI,CAAC,IAAI,CAACC,MAAM,CAACD,MAAM,CAACL,EAAE,CAAC,EAAE;QACzB,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACpB,sBAAsB,CAAC0B,yBAAyB,CAC3EF,MAAM,CAACL,EACX,CAAC;QACD,IAAI,CAACD,MAAM,CAACM,MAAM,CAACL,EAAE,EAAEC,WAAW,CAAC;MACvC;IACJ,CAAC,CACL,CAAC;;IAED;IACA,MAAMO,sBAAsB,GAAG,MAAMN,OAAO,CAACC,GAAG,CAC5Cd,OAAO,CAACe,GAAG,CAAC,MAAMC,MAAM,IAAI;MACxB,MAAMJ,WAAW,GAAG,IAAI,CAACQ,MAAM,CAACJ,MAAM,CAACL,EAAE,CAAC;MAC1C,IAAI,CAACC,WAAW,EAAE;QACd,OAAO,IAAI;MACf;MAEA,MAAMS,eAAe,GAAG,MAAM,IAAI,CAAC7B,sBAAsB,CAAC6B,eAAe,CAAC;QACtET,WAAW;QACXU,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,IAAI,CAACD,eAAe,EAAE;QAClB,OAAO,IAAI;MACf;MAEA,MAAME,aAAa,GAAG;QAAE,GAAGP,MAAM;QAAEJ;MAAY,CAAC;MAChD,OAAOS,eAAe,GAAGE,aAAa,GAAG,IAAI;IACjD,CAAC,CACL,CAAC;IAED,OAAOvC,MAAM,CAACwC,EAAE,CAAC;MAAExB,OAAO,EAAEmB,sBAAsB,CAACM,MAAM,CAACC,OAAO,CAAa;MAAEzB;IAAK,CAAC,CAAC;EAC3F;EAEQgB,MAAMA,CAACN,EAAU,EAAW;IAChC,OAAO,IAAI,CAACtB,UAAU,CAACsC,GAAG,CAAChB,EAAE,CAAC;EAClC;EAEQS,MAAMA,CAACT,EAAU,EAAkC;IACvD,OAAO,IAAI,CAACtB,UAAU,CAACuC,GAAG,CAACjB,EAAE,CAAC;EAClC;EAEQD,MAAMA,CAACC,EAAU,EAAEC,WAA+B,EAAQ;IAC9D,IAAI,CAACvB,UAAU,CAACwC,GAAG,CAAClB,EAAE,EAAEC,WAAW,CAAC;EACxC;AACJ;AAEA,OAAO,MAAMkB,qCAAqC,GAAG7C,kBAAkB,CAAC8C,eAAe,CAAC;EACpFC,SAAS,EAAE5C,yCAAyC;EACpD6C,YAAY,EAAE,CAAC/C,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js","sources":["../../../../../src/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { ListFoldersUseCase } from \"../abstractions.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass ListFoldersWithFolderLevelPermissionsImpl implements ListFoldersUseCase.Interface {\n private flpCatalog: Map<string, FolderPermission[]> = new Map();\n\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListFoldersUseCase.Interface\n ) {}\n\n async execute(params: ListFoldersParams): ListFoldersUseCase.Return {\n const result = await this.decoratee.execute(params);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const { folders, meta } = result.value;\n\n // Fetch FLP records for ROOT folders and populate the catalog.\n const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({\n where: {\n type: params.where.type,\n parentId: ROOT_FOLDER\n }\n });\n\n rootFlps.forEach(flp => this.setFlp(flp.id, flp.permissions));\n\n // Fetch FLP for folders not already in the catalog.\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 // Filter folders based on permissions.\n const foldersWithPermissions = await Promise.all(\n folders.map(async folder => {\n const permissions = this.getFlp(folder.id);\n if (!permissions) {\n return null;\n }\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return null;\n }\n\n const folderWithFlp = { ...folder, permissions };\n return canAccessFolder ? folderWithFlp : null;\n })\n );\n\n return Result.ok({ folders: foldersWithPermissions.filter(Boolean) as Folder[], meta });\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 ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({\n decorator: ListFoldersWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["ListFoldersWithFolderLevelPermissionsImpl","folderLevelPermissions","decoratee","Map","params","result","Result","folders","meta","rootFlps","ROOT_FOLDER","flp","Promise","folder","permissions","foldersWithPermissions","canAccessFolder","folderWithFlp","Boolean","id","ListFoldersWithFolderLevelPermissions","ListFoldersUseCase","FolderLevelPermissions"],"mappings":";;;;AAOA,MAAMA;IAGF,YACYC,sBAAwD,EACxDC,SAAuC,CACjD;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;aAJJ,UAAU,GAAoC,IAAIC;IAKvD;IAEH,MAAM,QAAQC,MAAyB,EAA6B;QAChE,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACD;QAC5C,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAACD,OAAO,KAAK;QAGnC,MAAM,EAAEE,OAAO,EAAEC,IAAI,EAAE,GAAGH,OAAO,KAAK;QAGtC,MAAMI,WAAW,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC;YAC1E,OAAO;gBACH,MAAML,OAAO,KAAK,CAAC,IAAI;gBACvB,UAAUM;YACd;QACJ;QAEAD,SAAS,OAAO,CAACE,CAAAA,MAAO,IAAI,CAAC,MAAM,CAACA,IAAI,EAAE,EAAEA,IAAI,WAAW;QAG3D,MAAMC,QAAQ,GAAG,CACbL,QAAQ,GAAG,CAAC,OAAMM;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;QAIJ,MAAMC,yBAAyB,MAAMH,QAAQ,GAAG,CAC5CL,QAAQ,GAAG,CAAC,OAAMM;YACd,MAAMC,cAAc,IAAI,CAAC,MAAM,CAACD,OAAO,EAAE;YACzC,IAAI,CAACC,aACD,OAAO;YAGX,MAAME,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;gBACtEF;gBACA,KAAK;YACT;YAEA,IAAI,CAACE,iBACD,OAAO;YAGX,MAAMC,gBAAgB;gBAAE,GAAGJ,MAAM;gBAAEC;YAAY;YAC/C,OAAOE,kBAAkBC,gBAAgB;QAC7C;QAGJ,OAAOX,OAAO,EAAE,CAAC;YAAE,SAASS,uBAAuB,MAAM,CAACG;YAAsBV;QAAK;IACzF;IAEQ,OAAOW,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,EAAEL,WAA+B,EAAQ;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAACK,IAAIL;IAC5B;AACJ;AAEO,MAAMM,wCAAwCC,mBAAmB,eAAe,CAAC;IACpF,WAAWrB;IACX,cAAc;QAACsB;KAAuB;AAC1C"}
@@ -2,13 +2,14 @@ import { createFeature } from "@webiny/feature/api";
2
2
  import { ListFoldersRepository } from "./ListFoldersRepository.js";
3
3
  import { ListFoldersUseCase } from "./ListFoldersUseCase.js";
4
4
  import { ListFoldersWithFolderLevelPermissions } from "./decorators/ListFoldersWithFolderLevelPermissions.js";
5
- export const ListFoldersFeature = createFeature({
6
- name: "ListFolders",
7
- register(container) {
8
- container.register(ListFoldersRepository).inSingletonScope();
9
- container.register(ListFoldersUseCase);
10
- container.registerDecorator(ListFoldersWithFolderLevelPermissions);
11
- }
5
+ const ListFoldersFeature = createFeature({
6
+ name: "ListFolders",
7
+ register (container) {
8
+ container.register(ListFoldersRepository).inSingletonScope();
9
+ container.register(ListFoldersUseCase);
10
+ container.registerDecorator(ListFoldersWithFolderLevelPermissions);
11
+ }
12
12
  });
13
+ export { ListFoldersFeature };
13
14
 
14
15
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListFoldersRepository","ListFoldersUseCase","ListFoldersWithFolderLevelPermissions","ListFoldersFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { ListFoldersRepository } from \"./ListFoldersRepository.js\";\nimport { ListFoldersUseCase } from \"./ListFoldersUseCase.js\";\nimport { ListFoldersWithFolderLevelPermissions } from \"./decorators/ListFoldersWithFolderLevelPermissions.js\";\n\nexport const ListFoldersFeature = createFeature({\n name: \"ListFolders\",\n register(container: Container) {\n container.register(ListFoldersRepository).inSingletonScope();\n container.register(ListFoldersUseCase);\n container.registerDecorator(ListFoldersWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAC3B,SAASC,qCAAqC;AAE9C,OAAO,MAAMC,kBAAkB,GAAGJ,aAAa,CAAC;EAC5CK,IAAI,EAAE,aAAa;EACnBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,qBAAqB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC5DD,SAAS,CAACD,QAAQ,CAACJ,kBAAkB,CAAC;IACtCK,SAAS,CAACE,iBAAiB,CAACN,qCAAqC,CAAC;EACtE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/ListFolders/feature.js","sources":["../../../../src/features/folder/ListFolders/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { ListFoldersRepository } from \"./ListFoldersRepository.js\";\nimport { ListFoldersUseCase } from \"./ListFoldersUseCase.js\";\nimport { ListFoldersWithFolderLevelPermissions } from \"./decorators/ListFoldersWithFolderLevelPermissions.js\";\n\nexport const ListFoldersFeature = createFeature({\n name: \"ListFolders\",\n register(container: Container) {\n container.register(ListFoldersRepository).inSingletonScope();\n container.register(ListFoldersUseCase);\n container.registerDecorator(ListFoldersWithFolderLevelPermissions);\n }\n});\n"],"names":["ListFoldersFeature","createFeature","container","ListFoldersRepository","ListFoldersUseCase","ListFoldersWithFolderLevelPermissions"],"mappings":";;;;AAMO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,QAAQ,CAACC,uBAAuB,gBAAgB;QAC1DD,UAAU,QAAQ,CAACE;QACnBF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { ListFoldersFeature } from "./feature.js";
2
2
  export { ListFoldersUseCase } from "./abstractions.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { UpdateFolderRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { UpdateFolderRepository } from "./abstractions.js";
3
3
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
4
4
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
5
5
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
@@ -9,102 +9,76 @@ import { FolderPersistenceError, FolderValidationError } from "../../../domain/f
9
9
  import { Path } from "../../../utils/Path.js";
10
10
  import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
11
11
  class UpdateFolderRepositoryImpl {
12
- constructor(updateEntry, getEntryById, listLatestEntries, folderModel) {
13
- this.updateEntry = updateEntry;
14
- this.getEntryById = getEntryById;
15
- this.listLatestEntries = listLatestEntries;
16
- this.folderModel = folderModel;
17
- }
18
- async execute(id, data) {
19
- const entryId = EntryId.from(id);
20
-
21
- // Get the original folder
22
- const originalResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
23
- if (originalResult.isFail()) {
24
- return Result.fail(new FolderPersistenceError(originalResult.error));
25
- }
26
- const original = EntryToFolderMapper.toFolder(originalResult.value);
27
-
28
- // Check if folder with new slug already exists
29
- const checkResult = await this.checkExistingFolder({
30
- id,
31
- type: original.type,
32
- slug: data.slug || original.slug,
33
- parentId: data.parentId !== undefined ? data.parentId : original.parentId
34
- });
35
- if (checkResult.isFail()) {
36
- return Result.fail(checkResult.error);
37
- }
38
-
39
- // Create new path if slug or parentId changed
40
- const pathResult = await this.createFolderPath({
41
- slug: data.slug || original.slug,
42
- parentId: data.parentId !== undefined ? data.parentId : original.parentId
43
- });
44
- if (pathResult.isFail()) {
45
- return Result.fail(pathResult.error);
46
- }
47
- const result = await this.updateEntry.execute(this.folderModel, entryId.toString(), {
48
- values: {
49
- ...data,
50
- path: pathResult.value
51
- }
52
- });
53
- if (result.isFail()) {
54
- return Result.fail(new FolderPersistenceError(result.error));
55
- }
56
- const updatedFolder = EntryToFolderMapper.toFolder(result.value);
57
- return Result.ok(updatedFolder);
58
- }
59
- async checkExistingFolder(params) {
60
- const {
61
- id,
62
- type,
63
- slug,
64
- parentId
65
- } = params;
66
- const result = await this.listLatestEntries.execute(this.folderModel, {
67
- where: {
68
- latest: true,
69
- entryId_not: id,
70
- values: {
71
- type,
72
- slug,
73
- parentId
74
- }
75
- },
76
- limit: 1
77
- });
78
- if (result.isFail()) {
79
- return Result.fail(new FolderPersistenceError(result.error));
12
+ constructor(updateEntry, getEntryById, listLatestEntries, folderModel){
13
+ this.updateEntry = updateEntry;
14
+ this.getEntryById = getEntryById;
15
+ this.listLatestEntries = listLatestEntries;
16
+ this.folderModel = folderModel;
80
17
  }
81
- const {
82
- entries
83
- } = result.value;
84
- if (entries.length > 0) {
85
- return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
18
+ async execute(id, data) {
19
+ const entryId = EntryId.from(id);
20
+ const originalResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
21
+ if (originalResult.isFail()) return Result.fail(new FolderPersistenceError(originalResult.error));
22
+ const original = EntryToFolderMapper.toFolder(originalResult.value);
23
+ const checkResult = await this.checkExistingFolder({
24
+ id,
25
+ type: original.type,
26
+ slug: data.slug || original.slug,
27
+ parentId: void 0 !== data.parentId ? data.parentId : original.parentId
28
+ });
29
+ if (checkResult.isFail()) return Result.fail(checkResult.error);
30
+ const pathResult = await this.createFolderPath({
31
+ slug: data.slug || original.slug,
32
+ parentId: void 0 !== data.parentId ? data.parentId : original.parentId
33
+ });
34
+ if (pathResult.isFail()) return Result.fail(pathResult.error);
35
+ const result = await this.updateEntry.execute(this.folderModel, entryId.toString(), {
36
+ values: {
37
+ ...data,
38
+ path: pathResult.value
39
+ }
40
+ });
41
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
42
+ const updatedFolder = EntryToFolderMapper.toFolder(result.value);
43
+ return Result.ok(updatedFolder);
86
44
  }
87
- return Result.ok();
88
- }
89
- async createFolderPath(params) {
90
- const {
91
- slug,
92
- parentId
93
- } = params;
94
- if (!parentId) {
95
- return Result.ok(Path.create(slug));
45
+ async checkExistingFolder(params) {
46
+ const { id, type, slug, parentId } = params;
47
+ const result = await this.listLatestEntries.execute(this.folderModel, {
48
+ where: {
49
+ latest: true,
50
+ entryId_not: id,
51
+ values: {
52
+ type,
53
+ slug,
54
+ parentId
55
+ }
56
+ },
57
+ limit: 1
58
+ });
59
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
60
+ const { entries } = result.value;
61
+ if (entries.length > 0) return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
62
+ return Result.ok();
96
63
  }
97
- const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
98
- if (parentResult.isFail()) {
99
- return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
64
+ async createFolderPath(params) {
65
+ const { slug, parentId } = params;
66
+ if (!parentId) return Result.ok(Path.create(slug));
67
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
68
+ if (parentResult.isFail()) return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
69
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
70
+ return Result.ok(Path.create(slug, parentFolder.path));
100
71
  }
101
- const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
102
- return Result.ok(Path.create(slug, parentFolder.path));
103
- }
104
72
  }
105
- export const UpdateFolderRepository = RepositoryAbstraction.createImplementation({
106
- implementation: UpdateFolderRepositoryImpl,
107
- dependencies: [UpdateEntryUseCase, GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]
73
+ const UpdateFolderRepository_UpdateFolderRepository = UpdateFolderRepository.createImplementation({
74
+ implementation: UpdateFolderRepositoryImpl,
75
+ dependencies: [
76
+ UpdateEntryUseCase,
77
+ GetEntryByIdUseCase,
78
+ ListLatestEntriesUseCase,
79
+ FolderModel
80
+ ]
108
81
  });
82
+ export { UpdateFolderRepository_UpdateFolderRepository as UpdateFolderRepository };
109
83
 
110
84
  //# sourceMappingURL=UpdateFolderRepository.js.map