@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,17 +1,20 @@
1
- import { GetAncestorsUseCase as UseCaseAbstraction, GetAncestorsRepository } from "./abstractions.js";
1
+ import { GetAncestorsRepository, GetAncestorsUseCase } from "./abstractions.js";
2
2
  import { createImplementation } from "@webiny/di";
3
3
  class GetAncestorsUseCaseImpl {
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 GetAncestorsUseCase = createImplementation({
12
- abstraction: UseCaseAbstraction,
13
- implementation: GetAncestorsUseCaseImpl,
14
- dependencies: [GetAncestorsRepository]
11
+ const GetAncestorsUseCase_GetAncestorsUseCase = createImplementation({
12
+ abstraction: GetAncestorsUseCase,
13
+ implementation: GetAncestorsUseCaseImpl,
14
+ dependencies: [
15
+ GetAncestorsRepository
16
+ ]
15
17
  });
18
+ export { GetAncestorsUseCase_GetAncestorsUseCase as GetAncestorsUseCase };
16
19
 
17
20
  //# sourceMappingURL=GetAncestorsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetAncestorsUseCase","UseCaseAbstraction","GetAncestorsRepository","createImplementation","GetAncestorsUseCaseImpl","constructor","repository","execute","params","abstraction","implementation","dependencies"],"sources":["GetAncestorsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetAncestorsUseCase as UseCaseAbstraction,\n GetAncestorsRepository,\n type GetAncestorsParams\n} from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass GetAncestorsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetAncestorsRepository.Interface) {}\n\n public async execute(\n params: GetAncestorsParams\n ): Promise<Result<Folder[], UseCaseAbstraction.Error>> {\n return await this.repository.execute(params);\n }\n}\n\nexport const GetAncestorsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetAncestorsUseCaseImpl,\n dependencies: [GetAncestorsRepository]\n});\n"],"mappings":"AACA,SACIA,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAI1B,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAaC,OAAOA,CAChBC,MAA0B,EACyB;IACnD,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMR,mBAAmB,GAAGG,oBAAoB,CAAC;EACpDM,WAAW,EAAER,kBAAkB;EAC/BS,cAAc,EAAEN,uBAAuB;EACvCO,YAAY,EAAE,CAACT,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetAncestors/GetAncestorsUseCase.js","sources":["../../../../src/features/folder/GetAncestors/GetAncestorsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetAncestorsUseCase as UseCaseAbstraction,\n GetAncestorsRepository,\n type GetAncestorsParams\n} from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass GetAncestorsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetAncestorsRepository.Interface) {}\n\n public async execute(\n params: GetAncestorsParams\n ): Promise<Result<Folder[], UseCaseAbstraction.Error>> {\n return await this.repository.execute(params);\n }\n}\n\nexport const GetAncestorsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetAncestorsUseCaseImpl,\n dependencies: [GetAncestorsRepository]\n});\n"],"names":["GetAncestorsUseCaseImpl","repository","params","GetAncestorsUseCase","createImplementation","UseCaseAbstraction","GetAncestorsRepository"],"mappings":";;AASA,MAAMA;IACF,YAAoBC,UAA4C,CAAE;aAA9CA,UAAU,GAAVA;IAA+C;IAEnE,MAAa,QACTC,MAA0B,EACyB;QACnD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACzC;AACJ;AAEO,MAAMC,0CAAsBC,qBAAqB;IACpD,aAAaC;IACb,gBAAgBL;IAChB,cAAc;QAACM;KAAuB;AAC1C"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * GetAncestors repository interface
5
- */
6
-
7
- /** Fetch ancestor folders from storage. */
8
- export const GetAncestorsRepository = createAbstraction("GetAncestorsRepository");
9
-
10
- /**
11
- * GetAncestors use case interface
12
- */
13
-
14
- /** Retrieve ancestor folders in the hierarchy. */
15
- export const GetAncestorsUseCase = createAbstraction("GetAncestorsUseCase");
2
+ const GetAncestorsRepository = createAbstraction("GetAncestorsRepository");
3
+ const GetAncestorsUseCase = createAbstraction("GetAncestorsUseCase");
4
+ export { GetAncestorsRepository, GetAncestorsUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetAncestorsRepository","GetAncestorsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetAncestors repository interface\n */\nexport interface IGetAncestorsRepository {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], RepositoryError>>;\n}\n\nexport interface IGetAncestorsRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];\n\n/** Fetch ancestor folders from storage. */\nexport const GetAncestorsRepository =\n createAbstraction<IGetAncestorsRepository>(\"GetAncestorsRepository\");\n\nexport namespace GetAncestorsRepository {\n export type Interface = IGetAncestorsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetAncestors use case interface\n */\nexport interface GetAncestorsParams {\n folder: Folder;\n}\n\nexport interface IGetAncestorsUseCase {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], UseCaseError>>;\n}\n\nexport interface IGetAncestorsUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];\n\n/** Retrieve ancestor folders in the hierarchy. */\nexport const GetAncestorsUseCase = createAbstraction<IGetAncestorsUseCase>(\"GetAncestorsUseCase\");\n\nexport namespace GetAncestorsUseCase {\n export type Interface = IGetAncestorsUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetAncestors/abstractions.js","sources":["../../../../src/features/folder/GetAncestors/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetAncestors repository interface\n */\nexport interface IGetAncestorsRepository {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], RepositoryError>>;\n}\n\nexport interface IGetAncestorsRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];\n\n/** Fetch ancestor folders from storage. */\nexport const GetAncestorsRepository =\n createAbstraction<IGetAncestorsRepository>(\"GetAncestorsRepository\");\n\nexport namespace GetAncestorsRepository {\n export type Interface = IGetAncestorsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetAncestors use case interface\n */\nexport interface GetAncestorsParams {\n folder: Folder;\n}\n\nexport interface IGetAncestorsUseCase {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], UseCaseError>>;\n}\n\nexport interface IGetAncestorsUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];\n\n/** Retrieve ancestor folders in the hierarchy. */\nexport const GetAncestorsUseCase = createAbstraction<IGetAncestorsUseCase>(\"GetAncestorsUseCase\");\n\nexport namespace GetAncestorsUseCase {\n export type Interface = IGetAncestorsUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["GetAncestorsRepository","createAbstraction","GetAncestorsUseCase"],"mappings":";AAmBO,MAAMA,yBACTC,kBAA2C;AA0BxC,MAAMC,sBAAsBD,kBAAwC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { GetAncestorsRepository } from "./GetAncestorsRepository.js";
3
3
  import { GetAncestorsUseCase } from "./GetAncestorsUseCase.js";
4
- export const GetAncestorsFeature = createFeature({
5
- name: "GetAncestors",
6
- register(container) {
7
- container.register(GetAncestorsRepository).inSingletonScope();
8
- container.register(GetAncestorsUseCase);
9
- }
4
+ const GetAncestorsFeature = createFeature({
5
+ name: "GetAncestors",
6
+ register (container) {
7
+ container.register(GetAncestorsRepository).inSingletonScope();
8
+ container.register(GetAncestorsUseCase);
9
+ }
10
10
  });
11
+ export { GetAncestorsFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","GetAncestorsRepository","GetAncestorsUseCase","GetAncestorsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetAncestorsRepository } from \"./GetAncestorsRepository.js\";\nimport { GetAncestorsUseCase } from \"./GetAncestorsUseCase.js\";\n\nexport const GetAncestorsFeature = createFeature({\n name: \"GetAncestors\",\n register(container: Container) {\n container.register(GetAncestorsRepository).inSingletonScope();\n container.register(GetAncestorsUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,mBAAmB,GAAGH,aAAa,CAAC;EAC7CI,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACJ,sBAAsB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC7DD,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC;EAC3C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetAncestors/feature.js","sources":["../../../../src/features/folder/GetAncestors/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetAncestorsRepository } from \"./GetAncestorsRepository.js\";\nimport { GetAncestorsUseCase } from \"./GetAncestorsUseCase.js\";\n\nexport const GetAncestorsFeature = createFeature({\n name: \"GetAncestors\",\n register(container: Container) {\n container.register(GetAncestorsRepository).inSingletonScope();\n container.register(GetAncestorsUseCase);\n }\n});\n"],"names":["GetAncestorsFeature","createFeature","container","GetAncestorsRepository","GetAncestorsUseCase"],"mappings":";;;AAKO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,QAAQ,CAACC,wBAAwB,gBAAgB;QAC3DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { GetAncestorsFeature } from "./feature.js";
2
2
  export { GetAncestorsUseCase } from "./abstractions.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,31 +1,33 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { GetFolderRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { GetFolderRepository } from "./abstractions.js";
3
3
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
4
  import { FolderModel } from "../../../domain/folder/abstractions.js";
5
5
  import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
6
6
  import { FolderNotFoundError, FolderPersistenceError } from "../../../domain/folder/errors.js";
7
7
  import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
8
8
  class GetFolderRepositoryImpl {
9
- constructor(getEntryById, folderModel) {
10
- this.getEntryById = getEntryById;
11
- this.folderModel = folderModel;
12
- }
13
- async execute(id) {
14
- const entryId = EntryId.from(id);
15
- const result = await this.getEntryById.execute(this.folderModel, entryId.toString());
16
- if (result.isFail()) {
17
- if (result.error.code === "Cms/Entry/NotFound") {
18
- return Result.fail(new FolderNotFoundError(id));
19
- }
20
- return Result.fail(new FolderPersistenceError(result.error));
9
+ constructor(getEntryById, folderModel){
10
+ this.getEntryById = getEntryById;
11
+ this.folderModel = folderModel;
12
+ }
13
+ async execute(id) {
14
+ const entryId = EntryId.from(id);
15
+ const result = await this.getEntryById.execute(this.folderModel, entryId.toString());
16
+ if (result.isFail()) {
17
+ if ("Cms/Entry/NotFound" === result.error.code) return Result.fail(new FolderNotFoundError(id));
18
+ return Result.fail(new FolderPersistenceError(result.error));
19
+ }
20
+ const folder = EntryToFolderMapper.toFolder(result.value);
21
+ return Result.ok(folder);
21
22
  }
22
- const folder = EntryToFolderMapper.toFolder(result.value);
23
- return Result.ok(folder);
24
- }
25
23
  }
26
- export const GetFolderRepository = RepositoryAbstraction.createImplementation({
27
- implementation: GetFolderRepositoryImpl,
28
- dependencies: [GetEntryByIdUseCase, FolderModel]
24
+ const GetFolderRepository_GetFolderRepository = GetFolderRepository.createImplementation({
25
+ implementation: GetFolderRepositoryImpl,
26
+ dependencies: [
27
+ GetEntryByIdUseCase,
28
+ FolderModel
29
+ ]
29
30
  });
31
+ export { GetFolderRepository_GetFolderRepository as GetFolderRepository };
30
32
 
31
33
  //# sourceMappingURL=GetFolderRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","GetFolderRepository","RepositoryAbstraction","GetEntryByIdUseCase","FolderModel","EntryToFolderMapper","FolderNotFoundError","FolderPersistenceError","EntryId","GetFolderRepositoryImpl","constructor","getEntryById","folderModel","execute","id","entryId","from","result","toString","isFail","error","code","fail","folder","toFolder","value","ok","createImplementation","implementation","dependencies"],"sources":["GetFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderRepository as RepositoryAbstraction,\n type IGetFolderRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderNotFoundError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass GetFolderRepositoryImpl implements IGetFolderRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n const entryId = EntryId.from(id);\n const result = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new FolderNotFoundError(id));\n }\n\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(result.value);\n return Result.ok(folder);\n }\n}\n\nexport const GetFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, FolderModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,mBAAmB,IAAIC,qBAAqB;AAGhD,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,WAAW;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB,EAAEC,sBAAsB;AACpD,SAASC,OAAO,QAAQ,mDAAmD;AAE3E,MAAMC,uBAAuB,CAAiC;EAC1DC,WAAWA,CACCC,YAA2C,EAC3CC,WAAkC,EAC5C;IAAA,KAFUD,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,WAAkC,GAAlCA,WAAkC;EAC3C;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAwD;IAC5E,MAAMC,OAAO,GAAGP,OAAO,CAACQ,IAAI,CAACF,EAAE,CAAC;IAChC,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACN,YAAY,CAACE,OAAO,CAC1C,IAAI,CAACD,WAAW,EAChBG,OAAO,CAACG,QAAQ,CAAC,CACrB,CAAC;IAED,IAAID,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,mBAAmB,CAACQ,EAAE,CAAC,CAAC;MACnD;MAEA,OAAOd,MAAM,CAACsB,IAAI,CAAC,IAAIf,sBAAsB,CAACU,MAAM,CAACG,KAAK,CAAC,CAAC;IAChE;IAEA,MAAMG,MAAM,GAAGlB,mBAAmB,CAACmB,QAAQ,CAACP,MAAM,CAACQ,KAAK,CAAC;IACzD,OAAOzB,MAAM,CAAC0B,EAAE,CAACH,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGC,qBAAqB,CAACyB,oBAAoB,CAAC;EAC1EC,cAAc,EAAEnB,uBAAuB;EACvCoB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,WAAW;AACnD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolder/GetFolderRepository.js","sources":["../../../../src/features/folder/GetFolder/GetFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderRepository as RepositoryAbstraction,\n type IGetFolderRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderNotFoundError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass GetFolderRepositoryImpl implements IGetFolderRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n const entryId = EntryId.from(id);\n const result = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new FolderNotFoundError(id));\n }\n\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(result.value);\n return Result.ok(folder);\n }\n}\n\nexport const GetFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, FolderModel]\n});\n"],"names":["GetFolderRepositoryImpl","getEntryById","folderModel","id","entryId","EntryId","result","Result","FolderNotFoundError","FolderPersistenceError","folder","EntryToFolderMapper","GetFolderRepository","RepositoryAbstraction","GetEntryByIdUseCase","FolderModel"],"mappings":";;;;;;;AAYA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,WAAkC,CAC5C;aAFUD,YAAY,GAAZA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAwD;QAC5E,MAAMC,UAAUC,QAAQ,IAAI,CAACF;QAC7B,MAAMG,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC1C,IAAI,CAAC,WAAW,EAChBF,QAAQ,QAAQ;QAGpB,IAAIE,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,oBAAoBL;YAG/C,OAAOI,OAAO,IAAI,CAAC,IAAIE,uBAAuBH,OAAO,KAAK;QAC9D;QAEA,MAAMI,SAASC,oBAAoB,QAAQ,CAACL,OAAO,KAAK;QACxD,OAAOC,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAME,0CAAsBC,oBAAAA,oBAA0C,CAAC;IAC1E,gBAAgBb;IAChB,cAAc;QAACc;QAAqBC;KAAY;AACpD"}
@@ -1,17 +1,20 @@
1
1
  import { createImplementation } from "@webiny/feature/api";
2
- import { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from "./abstractions.js";
2
+ import { GetFolderRepository, GetFolderUseCase } from "./abstractions.js";
3
3
  class GetFolderUseCaseImpl {
4
- constructor(repository) {
5
- this.repository = repository;
6
- }
7
- async execute(id) {
8
- return this.repository.execute(id);
9
- }
4
+ constructor(repository){
5
+ this.repository = repository;
6
+ }
7
+ async execute(id) {
8
+ return this.repository.execute(id);
9
+ }
10
10
  }
11
- export const GetFolderUseCase = createImplementation({
12
- abstraction: UseCaseAbstraction,
13
- implementation: GetFolderUseCaseImpl,
14
- dependencies: [GetFolderRepository]
11
+ const GetFolderUseCase_GetFolderUseCase = createImplementation({
12
+ abstraction: GetFolderUseCase,
13
+ implementation: GetFolderUseCaseImpl,
14
+ dependencies: [
15
+ GetFolderRepository
16
+ ]
15
17
  });
18
+ export { GetFolderUseCase_GetFolderUseCase as GetFolderUseCase };
16
19
 
17
20
  //# sourceMappingURL=GetFolderUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","GetFolderUseCase","UseCaseAbstraction","GetFolderRepository","GetFolderUseCaseImpl","constructor","repository","execute","id","abstraction","implementation","dependencies"],"sources":["GetFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\nclass GetFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderRepository.Interface) {}\n\n async execute(id: string): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n return this.repository.execute(id);\n }\n}\n\nexport const GetFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderUseCaseImpl,\n dependencies: [GetFolderRepository]\n});\n"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AAGpE,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CAASC,UAAyC,EAAE;IAAA,KAA3CA,UAAyC,GAAzCA,UAAyC;EAAG;EAEhE,MAAMC,OAAOA,CAACC,EAAU,EAAqD;IACzE,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;EACtC;AACJ;AAEA,OAAO,MAAMP,gBAAgB,GAAGD,oBAAoB,CAAC;EACjDS,WAAW,EAAEP,kBAAkB;EAC/BQ,cAAc,EAAEN,oBAAoB;EACpCO,YAAY,EAAE,CAACR,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolder/GetFolderUseCase.js","sources":["../../../../src/features/folder/GetFolder/GetFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\nclass GetFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderRepository.Interface) {}\n\n async execute(id: string): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n return this.repository.execute(id);\n }\n}\n\nexport const GetFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderUseCaseImpl,\n dependencies: [GetFolderRepository]\n});\n"],"names":["GetFolderUseCaseImpl","repository","id","GetFolderUseCase","createImplementation","UseCaseAbstraction","GetFolderRepository"],"mappings":";;AAKA,MAAMA;IACF,YAAoBC,UAAyC,CAAE;aAA3CA,UAAU,GAAVA;IAA4C;IAEhE,MAAM,QAAQC,EAAU,EAAqD;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACnC;AACJ;AAEO,MAAMC,oCAAmBC,qBAAqB;IACjD,aAAaC;IACb,gBAAgBL;IAChB,cAAc;QAACM;KAAoB;AACvC"}
@@ -1,24 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * GetFolder repository interface
5
- */
6
-
7
- export const GetFolderRepository = createAbstraction("GetFolderRepository");
8
-
9
- /**
10
- * GetFolder use case interface
11
- */
12
-
13
- /** Retrieve a folder. */
14
- export const GetFolderUseCase = createAbstraction("GetFolderUseCase");
15
-
16
- // Event Payload Types
17
-
18
- // Event Handler Abstractions
19
- /** Hook into folder lifecycle before a folder is retrieved. */
20
- export const FolderBeforeGetEventHandler = createAbstraction("FolderBeforeGetEventHandler");
21
- /** Hook into folder lifecycle after a folder is retrieved. */
22
- export const FolderAfterGetEventHandler = createAbstraction("FolderAfterGetEventHandler");
2
+ const GetFolderRepository = createAbstraction("GetFolderRepository");
3
+ const GetFolderUseCase = createAbstraction("GetFolderUseCase");
4
+ const FolderBeforeGetEventHandler = createAbstraction("FolderBeforeGetEventHandler");
5
+ const FolderAfterGetEventHandler = createAbstraction("FolderAfterGetEventHandler");
6
+ export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderRepository, GetFolderUseCase };
23
7
 
24
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetFolderRepository","GetFolderUseCase","FolderBeforeGetEventHandler","FolderAfterGetEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { Folder, GetFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderNotFoundError,\n FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolder repository interface\n */\nexport interface IGetFolderRepository {\n execute(id: string): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IGetFolderRepositoryErrors {\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];\n\nexport const GetFolderRepository = createAbstraction<IGetFolderRepository>(\"GetFolderRepository\");\n\nexport namespace GetFolderRepository {\n export type Interface = IGetFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolder use case interface\n */\nexport interface IGetFolderUseCase {\n execute(id: string): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IGetFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];\n\n/** Retrieve a folder. */\nexport const GetFolderUseCase = createAbstraction<IGetFolderUseCase>(\"GetFolderUseCase\");\n\nexport namespace GetFolderUseCase {\n export type Interface = IGetFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeGetPayload {\n params: GetFolderParams;\n}\n\nexport interface FolderAfterGetPayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is retrieved. */\nexport const FolderBeforeGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeGetPayload>>\n>(\"FolderBeforeGetEventHandler\");\n\nexport namespace FolderBeforeGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\n/** Hook into folder lifecycle after a folder is retrieved. */\nexport const FolderAfterGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterGetPayload>>\n>(\"FolderAfterGetEventHandler\");\n\nexport namespace FolderAfterGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;\n export type Event = DomainEvent<FolderAfterGetPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;;AAYA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;AACA;AACA;;AAaA;AACA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC;;AAOxF;;AASA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolder/abstractions.js","sources":["../../../../src/features/folder/GetFolder/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { Folder, GetFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderNotFoundError,\n FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolder repository interface\n */\nexport interface IGetFolderRepository {\n execute(id: string): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IGetFolderRepositoryErrors {\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];\n\nexport const GetFolderRepository = createAbstraction<IGetFolderRepository>(\"GetFolderRepository\");\n\nexport namespace GetFolderRepository {\n export type Interface = IGetFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolder use case interface\n */\nexport interface IGetFolderUseCase {\n execute(id: string): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IGetFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];\n\n/** Retrieve a folder. */\nexport const GetFolderUseCase = createAbstraction<IGetFolderUseCase>(\"GetFolderUseCase\");\n\nexport namespace GetFolderUseCase {\n export type Interface = IGetFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeGetPayload {\n params: GetFolderParams;\n}\n\nexport interface FolderAfterGetPayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is retrieved. */\nexport const FolderBeforeGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeGetPayload>>\n>(\"FolderBeforeGetEventHandler\");\n\nexport namespace FolderBeforeGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\n/** Hook into folder lifecycle after a folder is retrieved. */\nexport const FolderAfterGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterGetPayload>>\n>(\"FolderAfterGetEventHandler\");\n\nexport namespace FolderAfterGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;\n export type Event = DomainEvent<FolderAfterGetPayload>;\n}\n"],"names":["GetFolderRepository","createAbstraction","GetFolderUseCase","FolderBeforeGetEventHandler","FolderAfterGetEventHandler"],"mappings":";AAwBO,MAAMA,sBAAsBC,kBAAwC;AAuBpE,MAAMC,mBAAmBD,kBAAqC;AAkB9D,MAAME,8BAA8BF,kBAEzC;AAQK,MAAMG,6BAA6BH,kBAExC"}
@@ -3,35 +3,32 @@ import { Result } from "@webiny/feature/api";
3
3
  import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
4
4
  import { FolderNotAuthorizedError } from "../../../../domain/folder/errors.js";
5
5
  class GetFolderWithFolderLevelPermissionsImpl {
6
- constructor(folderLevelPermissions, decoretee) {
7
- this.folderLevelPermissions = folderLevelPermissions;
8
- this.decoretee = decoretee;
9
- }
10
- async execute(id) {
11
- const result = await this.decoretee.execute(id);
12
- if (result.isFail()) {
13
- return Result.fail(result.error);
6
+ constructor(folderLevelPermissions, decoretee){
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoretee = decoretee;
14
9
  }
15
- const folder = result.value;
16
- const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
17
-
18
- // Let's check if the current user has read access level.
19
- const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
20
- permissions,
21
- rwd: "r"
22
- });
23
- if (!canAccessFolder) {
24
- return Result.fail(new FolderNotAuthorizedError());
10
+ async execute(id) {
11
+ const result = await this.decoretee.execute(id);
12
+ if (result.isFail()) return Result.fail(result.error);
13
+ const folder = result.value;
14
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
15
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
16
+ permissions,
17
+ rwd: "r"
18
+ });
19
+ if (!canAccessFolder) return Result.fail(new FolderNotAuthorizedError());
20
+ return Result.ok({
21
+ ...folder,
22
+ permissions
23
+ });
25
24
  }
26
- return Result.ok({
27
- ...folder,
28
- permissions
29
- });
30
- }
31
25
  }
32
- export const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({
33
- decorator: GetFolderWithFolderLevelPermissionsImpl,
34
- dependencies: [FolderLevelPermissions]
26
+ const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({
27
+ decorator: GetFolderWithFolderLevelPermissionsImpl,
28
+ dependencies: [
29
+ FolderLevelPermissions
30
+ ]
35
31
  });
32
+ export { GetFolderWithFolderLevelPermissions };
36
33
 
37
34
  //# sourceMappingURL=GetFolderWithFolderLevelPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetFolderUseCase","Result","FolderLevelPermissions","FolderNotAuthorizedError","GetFolderWithFolderLevelPermissionsImpl","constructor","folderLevelPermissions","decoretee","execute","id","result","isFail","fail","error","folder","value","permissions","getFolderLevelPermissions","canAccessFolder","rwd","ok","GetFolderWithFolderLevelPermissions","createDecorator","decorator","dependencies"],"sources":["GetFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { GetFolderUseCase } from \"../abstractions.js\";\nimport { Result } from \"@webiny/feature/api\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { FolderNotAuthorizedError } from \"~/domain/folder/errors.js\";\n\nclass GetFolderWithFolderLevelPermissionsImpl implements GetFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: GetFolderUseCase.Interface;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: GetFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string) {\n const result = await this.decoretee.execute(id);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const folder = result.value;\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);\n\n // Let's check if the current user has read access level.\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n return Result.ok({\n ...folder,\n permissions\n });\n }\n}\n\nexport const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({\n decorator: GetFolderWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AAEjC,MAAMC,uCAAuC,CAAuC;EAIhFC,WAAWA,CACPC,sBAAwD,EACxDC,SAAqC,EACvC;IACE,IAAI,CAACD,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAACC,EAAE,CAAC;IAC/C,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOV,MAAM,CAACW,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,MAAMC,MAAM,GAAGJ,MAAM,CAACK,KAAK;IAC3B,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACH,MAAM,CAACL,EAAE,CAAC;;IAE1F;IACA,MAAMS,eAAe,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACY,eAAe,CAAC;MACtEF,WAAW;MACXG,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACD,eAAe,EAAE;MAClB,OAAOjB,MAAM,CAACW,IAAI,CAAC,IAAIT,wBAAwB,CAAC,CAAC,CAAC;IACtD;IAEA,OAAOF,MAAM,CAACmB,EAAE,CAAC;MACb,GAAGN,MAAM;MACTE;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,mCAAmC,GAAGrB,gBAAgB,CAACsB,eAAe,CAAC;EAChFC,SAAS,EAAEnB,uCAAuC;EAClDoB,YAAY,EAAE,CAACtB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js","sources":["../../../../../src/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { GetFolderUseCase } from \"../abstractions.js\";\nimport { Result } from \"@webiny/feature/api\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { FolderNotAuthorizedError } from \"~/domain/folder/errors.js\";\n\nclass GetFolderWithFolderLevelPermissionsImpl implements GetFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: GetFolderUseCase.Interface;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: GetFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string) {\n const result = await this.decoretee.execute(id);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const folder = result.value;\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);\n\n // Let's check if the current user has read access level.\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n return Result.ok({\n ...folder,\n permissions\n });\n }\n}\n\nexport const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({\n decorator: GetFolderWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetFolderWithFolderLevelPermissionsImpl","folderLevelPermissions","decoretee","id","result","Result","folder","permissions","canAccessFolder","FolderNotAuthorizedError","GetFolderWithFolderLevelPermissions","GetFolderUseCase","FolderLevelPermissions"],"mappings":";;;;AAKA,MAAMA;IAIF,YACIC,sBAAwD,EACxDC,SAAqC,CACvC;QACE,IAAI,CAAC,sBAAsB,GAAGD;QAC9B,IAAI,CAAC,SAAS,GAAGC;IACrB;IAEA,MAAM,QAAQC,EAAU,EAAE;QACtB,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACD;QAC5C,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAACD,OAAO,KAAK;QAGnC,MAAME,SAASF,OAAO,KAAK;QAC3B,MAAMG,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACD,OAAO,EAAE;QAGzF,MAAME,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;YACtED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOH,OAAO,IAAI,CAAC,IAAII;QAG3B,OAAOJ,OAAO,EAAE,CAAC;YACb,GAAGC,MAAM;YACTC;QACJ;IACJ;AACJ;AAEO,MAAMG,sCAAsCC,iBAAiB,eAAe,CAAC;IAChF,WAAWX;IACX,cAAc;QAACY;KAAuB;AAC1C"}
@@ -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,4 +1,2 @@
1
1
  export { GetFolderFeature } from "./feature.js";
2
2
  export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "./abstractions.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -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