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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/constants.js +2 -1
  2. package/constants.js.map +1 -1
  3. package/createAcoContext.d.ts +1 -1
  4. package/createAcoContext.js +75 -107
  5. package/createAcoContext.js.map +1 -1
  6. package/createAcoGraphQL.js +43 -44
  7. package/createAcoGraphQL.js.map +1 -1
  8. package/createAcoStorageOperations.js +5 -6
  9. package/createAcoStorageOperations.js.map +1 -1
  10. package/createAcoTasks.js +7 -8
  11. package/createAcoTasks.js.map +1 -1
  12. package/domain/folder/abstractions.js +2 -5
  13. package/domain/folder/abstractions.js.map +1 -1
  14. package/domain/folder/errors.js +42 -47
  15. package/domain/folder/errors.js.map +1 -1
  16. package/domain/folder/folder.model.js +52 -33
  17. package/domain/folder/folder.model.js.map +1 -1
  18. package/exports/api/aco/flp.d.ts +6 -0
  19. package/exports/api/aco/flp.js +6 -0
  20. package/exports/api/aco/folder.d.ts +10 -0
  21. package/exports/api/aco/folder.js +10 -0
  22. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
  23. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
  24. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
  25. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
  26. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
  27. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
  28. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
  29. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
  30. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
  31. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
  32. package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
  33. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
  34. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
  35. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
  36. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
  37. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
  38. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +27 -28
  39. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
  40. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +27 -27
  41. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
  42. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +27 -28
  43. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
  44. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +27 -28
  45. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
  46. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
  47. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
  48. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
  49. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
  50. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
  51. package/features/cms/feature.d.ts +4 -1
  52. package/features/cms/feature.js +19 -25
  53. package/features/cms/feature.js.map +1 -1
  54. package/features/cms/index.js +0 -2
  55. package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
  56. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
  57. package/features/flp/CreateFlp/abstractions.d.ts +1 -0
  58. package/features/flp/CreateFlp/abstractions.js +2 -4
  59. package/features/flp/CreateFlp/abstractions.js.map +1 -1
  60. package/features/flp/CreateFlp/feature.d.ts +5 -1
  61. package/features/flp/CreateFlp/feature.js +7 -8
  62. package/features/flp/CreateFlp/feature.js.map +1 -1
  63. package/features/flp/CreateFlp/index.js +0 -2
  64. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +3 -3
  65. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +28 -28
  66. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
  67. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -1
  68. package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
  69. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
  70. package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
  71. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
  72. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
  73. package/features/flp/DeleteFlp/abstractions.d.ts +1 -0
  74. package/features/flp/DeleteFlp/abstractions.js +2 -4
  75. package/features/flp/DeleteFlp/abstractions.js.map +1 -1
  76. package/features/flp/DeleteFlp/feature.d.ts +5 -1
  77. package/features/flp/DeleteFlp/feature.js +7 -8
  78. package/features/flp/DeleteFlp/feature.js.map +1 -1
  79. package/features/flp/DeleteFlp/index.js +0 -2
  80. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +3 -3
  81. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +28 -28
  82. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
  83. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -1
  84. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
  85. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
  86. package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
  87. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
  88. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +90 -111
  89. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
  90. package/features/flp/FolderLevelPermissions/abstractions.d.ts +1 -0
  91. package/features/flp/FolderLevelPermissions/abstractions.js +2 -1
  92. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
  93. package/features/flp/FolderLevelPermissions/feature.d.ts +5 -1
  94. package/features/flp/FolderLevelPermissions/feature.js +6 -5
  95. package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
  96. package/features/flp/FolderLevelPermissions/index.js +0 -2
  97. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +1 -1
  98. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
  99. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
  100. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
  101. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
  102. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +1 -1
  103. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
  104. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
  105. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
  106. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
  107. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
  108. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
  109. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
  110. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
  111. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
  112. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
  113. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
  114. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
  115. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
  116. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
  117. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +1 -1
  118. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
  119. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
  120. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +2 -2
  121. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
  122. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
  123. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
  124. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
  125. package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
  126. package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
  127. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
  128. package/features/flp/GetFlp/abstractions.d.ts +1 -0
  129. package/features/flp/GetFlp/abstractions.js +2 -1
  130. package/features/flp/GetFlp/abstractions.js.map +1 -1
  131. package/features/flp/GetFlp/feature.d.ts +4 -1
  132. package/features/flp/GetFlp/feature.js +7 -8
  133. package/features/flp/GetFlp/feature.js.map +1 -1
  134. package/features/flp/GetFlp/index.js +0 -2
  135. package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
  136. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
  137. package/features/flp/ListFlps/abstractions.d.ts +1 -0
  138. package/features/flp/ListFlps/abstractions.js +2 -1
  139. package/features/flp/ListFlps/abstractions.js.map +1 -1
  140. package/features/flp/ListFlps/feature.d.ts +4 -1
  141. package/features/flp/ListFlps/feature.js +7 -8
  142. package/features/flp/ListFlps/feature.js.map +1 -1
  143. package/features/flp/ListFlps/index.js +0 -2
  144. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +133 -184
  145. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
  146. package/features/flp/UpdateFlp/abstractions.d.ts +1 -0
  147. package/features/flp/UpdateFlp/abstractions.js +2 -4
  148. package/features/flp/UpdateFlp/abstractions.js.map +1 -1
  149. package/features/flp/UpdateFlp/feature.d.ts +5 -1
  150. package/features/flp/UpdateFlp/feature.js +7 -8
  151. package/features/flp/UpdateFlp/feature.js.map +1 -1
  152. package/features/flp/UpdateFlp/index.js +0 -2
  153. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +3 -3
  154. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +30 -30
  155. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
  156. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -1
  157. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
  158. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
  159. package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
  160. package/features/folder/CreateFolder/CreateFolderRepository.js +67 -90
  161. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
  162. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +1 -1
  163. package/features/folder/CreateFolder/CreateFolderUseCase.js +28 -31
  164. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
  165. package/features/folder/CreateFolder/abstractions.d.ts +9 -5
  166. package/features/folder/CreateFolder/abstractions.js +5 -18
  167. package/features/folder/CreateFolder/abstractions.js.map +1 -1
  168. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +29 -34
  169. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
  170. package/features/folder/CreateFolder/events.d.ts +3 -3
  171. package/features/folder/CreateFolder/events.js +17 -15
  172. package/features/folder/CreateFolder/events.js.map +1 -1
  173. package/features/folder/CreateFolder/feature.d.ts +5 -1
  174. package/features/folder/CreateFolder/feature.js +8 -7
  175. package/features/folder/CreateFolder/feature.js.map +1 -1
  176. package/features/folder/CreateFolder/index.d.ts +1 -1
  177. package/features/folder/CreateFolder/index.js +1 -3
  178. package/features/folder/DeleteFolder/DeleteFolderRepository.js +22 -20
  179. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
  180. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +1 -1
  181. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +36 -44
  182. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
  183. package/features/folder/DeleteFolder/abstractions.d.ts +9 -5
  184. package/features/folder/DeleteFolder/abstractions.js +5 -18
  185. package/features/folder/DeleteFolder/abstractions.js.map +1 -1
  186. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
  187. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
  188. package/features/folder/DeleteFolder/events.d.ts +3 -3
  189. package/features/folder/DeleteFolder/events.js +17 -15
  190. package/features/folder/DeleteFolder/events.js.map +1 -1
  191. package/features/folder/DeleteFolder/feature.d.ts +5 -1
  192. package/features/folder/DeleteFolder/feature.js +8 -7
  193. package/features/folder/DeleteFolder/feature.js.map +1 -1
  194. package/features/folder/DeleteFolder/index.d.ts +1 -1
  195. package/features/folder/DeleteFolder/index.js +1 -3
  196. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +43 -44
  197. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
  198. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +1 -0
  199. package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -1
  200. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
  201. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -1
  202. package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
  203. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
  204. package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
  205. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +3 -3
  206. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +17 -21
  207. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
  208. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +4 -1
  209. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
  210. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
  211. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
  212. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +3 -3
  213. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +37 -45
  214. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
  215. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -1
  216. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
  217. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
  218. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
  219. package/features/folder/GetAncestors/GetAncestorsRepository.js +45 -75
  220. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
  221. package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
  222. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
  223. package/features/folder/GetAncestors/abstractions.d.ts +2 -0
  224. package/features/folder/GetAncestors/abstractions.js +3 -12
  225. package/features/folder/GetAncestors/abstractions.js.map +1 -1
  226. package/features/folder/GetAncestors/feature.d.ts +5 -1
  227. package/features/folder/GetAncestors/feature.js +7 -6
  228. package/features/folder/GetAncestors/feature.js.map +1 -1
  229. package/features/folder/GetAncestors/index.js +0 -2
  230. package/features/folder/GetFolder/GetFolderRepository.js +21 -19
  231. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
  232. package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
  233. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
  234. package/features/folder/GetFolder/abstractions.d.ts +8 -5
  235. package/features/folder/GetFolder/abstractions.js +5 -18
  236. package/features/folder/GetFolder/abstractions.js.map +1 -1
  237. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
  238. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
  239. package/features/folder/GetFolder/feature.d.ts +5 -1
  240. package/features/folder/GetFolder/feature.js +8 -7
  241. package/features/folder/GetFolder/feature.js.map +1 -1
  242. package/features/folder/GetFolder/index.d.ts +1 -1
  243. package/features/folder/GetFolder/index.js +1 -3
  244. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +67 -86
  245. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
  246. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
  247. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
  248. package/features/folder/GetFolderHierarchy/abstractions.d.ts +2 -0
  249. package/features/folder/GetFolderHierarchy/abstractions.js +3 -12
  250. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
  251. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
  252. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
  253. package/features/folder/GetFolderHierarchy/feature.d.ts +5 -1
  254. package/features/folder/GetFolderHierarchy/feature.js +8 -7
  255. package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
  256. package/features/folder/GetFolderHierarchy/index.js +0 -2
  257. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +2 -2
  258. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +67 -60
  259. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
  260. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +1 -0
  261. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -4
  262. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
  263. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -1
  264. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
  265. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
  266. package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
  267. package/features/folder/ListFolders/ListFoldersRepository.js +39 -41
  268. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
  269. package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
  270. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
  271. package/features/folder/ListFolders/abstractions.d.ts +2 -0
  272. package/features/folder/ListFolders/abstractions.js +3 -12
  273. package/features/folder/ListFolders/abstractions.js.map +1 -1
  274. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
  275. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
  276. package/features/folder/ListFolders/feature.d.ts +5 -1
  277. package/features/folder/ListFolders/feature.js +8 -7
  278. package/features/folder/ListFolders/feature.js.map +1 -1
  279. package/features/folder/ListFolders/index.js +0 -2
  280. package/features/folder/UpdateFolder/UpdateFolderRepository.js +66 -92
  281. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
  282. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +1 -1
  283. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +39 -46
  284. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
  285. package/features/folder/UpdateFolder/abstractions.d.ts +9 -5
  286. package/features/folder/UpdateFolder/abstractions.js +5 -18
  287. package/features/folder/UpdateFolder/abstractions.js.map +1 -1
  288. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +45 -64
  289. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
  290. package/features/folder/UpdateFolder/events.d.ts +3 -3
  291. package/features/folder/UpdateFolder/events.js +17 -15
  292. package/features/folder/UpdateFolder/events.js.map +1 -1
  293. package/features/folder/UpdateFolder/feature.d.ts +5 -1
  294. package/features/folder/UpdateFolder/feature.js +8 -7
  295. package/features/folder/UpdateFolder/feature.js.map +1 -1
  296. package/features/folder/UpdateFolder/index.d.ts +1 -1
  297. package/features/folder/UpdateFolder/index.js +1 -3
  298. package/features/folder/shared/EntryToFolderMapper.js +20 -19
  299. package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
  300. package/features/folder/shared/abstractions.d.ts +1 -0
  301. package/features/folder/shared/abstractions.js +2 -1
  302. package/features/folder/shared/abstractions.js.map +1 -1
  303. package/filter/filter.crud.js +28 -31
  304. package/filter/filter.crud.js.map +1 -1
  305. package/filter/filter.gql.js +32 -48
  306. package/filter/filter.gql.js.map +1 -1
  307. package/filter/filter.model.js +44 -32
  308. package/filter/filter.model.js.map +1 -1
  309. package/filter/filter.so.js +73 -93
  310. package/filter/filter.so.js.map +1 -1
  311. package/filter/filter.types.js +5 -4
  312. package/filter/filter.types.js.map +1 -1
  313. package/flp/flp.crud.js +69 -86
  314. package/flp/flp.crud.js.map +1 -1
  315. package/flp/flp.so.js +162 -199
  316. package/flp/flp.so.js.map +1 -1
  317. package/flp/flp.types.js +0 -3
  318. package/flp/index.js +0 -2
  319. package/flp/tasks/createFlp.task.d.ts +6 -4
  320. package/flp/tasks/createFlp.task.js +27 -26
  321. package/flp/tasks/createFlp.task.js.map +1 -1
  322. package/flp/tasks/deleteFlp.task.d.ts +6 -4
  323. package/flp/tasks/deleteFlp.task.js +27 -26
  324. package/flp/tasks/deleteFlp.task.js.map +1 -1
  325. package/flp/tasks/index.js +13 -12
  326. package/flp/tasks/index.js.map +1 -1
  327. package/flp/tasks/syncFlp.task.d.ts +6 -4
  328. package/flp/tasks/syncFlp.task.js +84 -111
  329. package/flp/tasks/syncFlp.task.js.map +1 -1
  330. package/flp/tasks/updateFlp.task.d.ts +6 -4
  331. package/flp/tasks/updateFlp.task.js +34 -31
  332. package/flp/tasks/updateFlp.task.js.map +1 -1
  333. package/folder/createFolderModelModifier.js +50 -50
  334. package/folder/createFolderModelModifier.js.map +1 -1
  335. package/folder/createFolderTypeDefs.d.ts +3 -2
  336. package/folder/createFolderTypeDefs.js +39 -50
  337. package/folder/createFolderTypeDefs.js.map +1 -1
  338. package/folder/folder.gql.js +100 -133
  339. package/folder/folder.gql.js.map +1 -1
  340. package/folder/folder.types.js +0 -3
  341. package/index.d.ts +1 -1
  342. package/index.js +7 -4
  343. package/index.js.map +1 -1
  344. package/package.json +31 -41
  345. package/types.js +5 -4
  346. package/types.js.map +1 -1
  347. package/utils/FoldersCacheFactory.js +20 -19
  348. package/utils/FoldersCacheFactory.js.map +1 -1
  349. package/utils/ListCache.js +20 -19
  350. package/utils/ListCache.js.map +1 -1
  351. package/utils/Path.js +5 -6
  352. package/utils/Path.js.map +1 -1
  353. package/utils/compress.js +8 -7
  354. package/utils/compress.js.map +1 -1
  355. package/utils/createListSort.js +4 -7
  356. package/utils/createListSort.js.map +1 -1
  357. package/utils/createOperationsWrapper.js +12 -19
  358. package/utils/createOperationsWrapper.js.map +1 -1
  359. package/utils/decorators/CmsEntriesCrudDecorators.js +165 -196
  360. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  361. package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
  362. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
  363. package/utils/decorators/ListEntriesFactory.js +65 -98
  364. package/utils/decorators/ListEntriesFactory.js.map +1 -1
  365. package/utils/decorators/hasRootFolderId.js +6 -12
  366. package/utils/decorators/hasRootFolderId.js.map +1 -1
  367. package/utils/decorators/isPageModel.js +5 -10
  368. package/utils/decorators/isPageModel.js.map +1 -1
  369. package/utils/ensureAuthentication.js +6 -7
  370. package/utils/ensureAuthentication.js.map +1 -1
  371. package/utils/pickEntryFieldValues.js +24 -18
  372. package/utils/pickEntryFieldValues.js.map +1 -1
  373. package/utils/resolve.js +7 -6
  374. package/utils/resolve.js.map +1 -1
  375. package/features/cms/index.js.map +0 -1
  376. package/features/flp/CreateFlp/index.js.map +0 -1
  377. package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
  378. package/features/flp/DeleteFlp/index.js.map +0 -1
  379. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
  380. package/features/flp/FolderLevelPermissions/index.js.map +0 -1
  381. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
  382. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
  383. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
  384. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
  385. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
  386. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
  387. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
  388. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
  389. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
  390. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
  391. package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
  392. package/features/flp/GetFlp/index.js.map +0 -1
  393. package/features/flp/ListFlps/index.js.map +0 -1
  394. package/features/flp/UpdateFlp/index.js.map +0 -1
  395. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
  396. package/features/folder/CreateFolder/index.js.map +0 -1
  397. package/features/folder/DeleteFolder/index.js.map +0 -1
  398. package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
  399. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
  400. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
  401. package/features/folder/GetAncestors/index.js.map +0 -1
  402. package/features/folder/GetFolder/index.js.map +0 -1
  403. package/features/folder/GetFolderHierarchy/index.js.map +0 -1
  404. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
  405. package/features/folder/ListFolders/index.js.map +0 -1
  406. package/features/folder/UpdateFolder/index.js.map +0 -1
  407. package/flp/flp.types.js.map +0 -1
  408. package/flp/index.js.map +0 -1
  409. package/folder/folder.types.js.map +0 -1
  410. package/utils/acoRecordId.d.ts +0 -6
  411. package/utils/acoRecordId.js +0 -27
  412. package/utils/acoRecordId.js.map +0 -1
@@ -1,88 +1,58 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { GetAncestorsRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { GetAncestorsRepository } 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";
6
6
  import { FolderPersistenceError } from "../../../domain/folder/errors.js";
7
7
  import { ROOT_FOLDER } from "../../../constants.js";
8
8
  class GetAncestorsRepositoryImpl {
9
- constructor(listLatestEntries, folderModel) {
10
- this.listLatestEntries = listLatestEntries;
11
- this.folderModel = folderModel;
12
- }
13
- async execute(params) {
14
- const {
15
- folder
16
- } = params;
17
-
18
- // No folder found: return an empty array
19
- if (!folder) {
20
- return Result.ok([]);
21
- }
22
-
23
- // The folder has no parent (it's at root level): return an array with the folder
24
- if (!folder.parentId) {
25
- return Result.ok([folder]);
9
+ constructor(listLatestEntries, folderModel){
10
+ this.listLatestEntries = listLatestEntries;
11
+ this.folderModel = folderModel;
26
12
  }
27
-
28
- // Construct paths for all ancestors of the folder
29
- const parts = folder.path.split("/").slice(1);
30
- const paths = parts.map((_, index) => {
31
- return [ROOT_FOLDER, ...parts.slice(0, index + 1)].join("/");
32
- });
33
-
34
- // Retrieve all folders that match the specified type and any of the constructed paths
35
- const result = await this.listLatestEntries.execute(this.folderModel, {
36
- where: {
37
- values: {
38
- type: folder.type,
39
- path_in: paths
40
- }
41
- }
42
- });
43
- if (result.isFail()) {
44
- return Result.fail(new FolderPersistenceError(result.error));
13
+ async execute(params) {
14
+ const { folder } = params;
15
+ if (!folder) return Result.ok([]);
16
+ if (!folder.parentId) return Result.ok([
17
+ folder
18
+ ]);
19
+ const parts = folder.path.split("/").slice(1);
20
+ const paths = parts.map((_, index)=>[
21
+ ROOT_FOLDER,
22
+ ...parts.slice(0, index + 1)
23
+ ].join("/"));
24
+ const result = await this.listLatestEntries.execute(this.folderModel, {
25
+ where: {
26
+ values: {
27
+ type: folder.type,
28
+ path_in: paths
29
+ }
30
+ }
31
+ });
32
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
33
+ const { entries } = result.value;
34
+ const folders = entries.map((entry)=>EntryToFolderMapper.toFolder(entry));
35
+ const folderMap = new Map();
36
+ folders.forEach((f)=>folderMap.set(f.id, f));
37
+ const findParents = (next, current)=>{
38
+ if (!current) return next;
39
+ next.push(current);
40
+ if (!current.parentId) return next;
41
+ const parent = folderMap.get(current.parentId);
42
+ if (!parent) return next;
43
+ return findParents(next, parent);
44
+ };
45
+ const ancestors = findParents([], folder);
46
+ return Result.ok(ancestors);
45
47
  }
46
- const {
47
- entries
48
- } = result.value;
49
- const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));
50
-
51
- // Create a Map with folders, using folder.id as key
52
- const folderMap = new Map();
53
- folders.forEach(f => folderMap.set(f.id, f));
54
- const findParents = (next, current) => {
55
- // No folder found: return the result
56
- if (!current) {
57
- return next;
58
- }
59
-
60
- // Push the current folder into the accumulator array
61
- next.push(current);
62
-
63
- // No parentId found: return the result
64
- if (!current.parentId) {
65
- return next;
66
- }
67
- const parent = folderMap.get(current.parentId);
68
-
69
- // No parent found: return the result
70
- if (!parent) {
71
- return next;
72
- }
73
-
74
- // Go ahead and find parent for the current parent
75
- return findParents(next, parent);
76
- };
77
-
78
- // Recursively find parents for a given folder id
79
- const ancestors = findParents([], folder);
80
- return Result.ok(ancestors);
81
- }
82
48
  }
83
- export const GetAncestorsRepository = RepositoryAbstraction.createImplementation({
84
- implementation: GetAncestorsRepositoryImpl,
85
- dependencies: [ListLatestEntriesUseCase, FolderModel]
49
+ const GetAncestorsRepository_GetAncestorsRepository = GetAncestorsRepository.createImplementation({
50
+ implementation: GetAncestorsRepositoryImpl,
51
+ dependencies: [
52
+ ListLatestEntriesUseCase,
53
+ FolderModel
54
+ ]
86
55
  });
56
+ export { GetAncestorsRepository_GetAncestorsRepository as GetAncestorsRepository };
87
57
 
88
58
  //# sourceMappingURL=GetAncestorsRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","GetAncestorsRepository","RepositoryAbstraction","ListLatestEntriesUseCase","FolderModel","EntryToFolderMapper","FolderPersistenceError","ROOT_FOLDER","GetAncestorsRepositoryImpl","constructor","listLatestEntries","folderModel","execute","params","folder","ok","parentId","parts","path","split","slice","paths","map","_","index","join","result","where","values","type","path_in","isFail","fail","error","entries","value","folders","entry","toFolder","folderMap","Map","forEach","f","set","id","findParents","next","current","push","parent","get","ancestors","createImplementation","implementation","dependencies"],"sources":["GetAncestorsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type GetAncestorsParams,\n GetAncestorsRepository as RepositoryAbstraction,\n type IGetAncestorsRepository\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetAncestorsRepositoryImpl implements IGetAncestorsRepository {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n params: GetAncestorsParams\n ): Promise<Result<Folder[], RepositoryAbstraction.Error>> {\n const { folder } = params;\n\n // No folder found: return an empty array\n if (!folder) {\n return Result.ok([]);\n }\n\n // The folder has no parent (it's at root level): return an array with the folder\n if (!folder.parentId) {\n return Result.ok([folder]);\n }\n\n // Construct paths for all ancestors of the folder\n const parts = folder.path.split(\"/\").slice(1);\n const paths = parts.map((_, index) => {\n return [ROOT_FOLDER, ...parts.slice(0, index + 1)].join(\"/\");\n });\n\n // Retrieve all folders that match the specified type and any of the constructed paths\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n values: {\n type: folder.type,\n path_in: paths\n }\n }\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries } = result.value;\n const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));\n\n // Create a Map with folders, using folder.id as key\n const folderMap = new Map<string, Folder>();\n folders.forEach(f => folderMap.set(f.id, f));\n\n const findParents = (next: Folder[], current: Folder): Folder[] => {\n // No folder found: return the result\n if (!current) {\n return next;\n }\n\n // Push the current folder into the accumulator array\n next.push(current);\n\n // No parentId found: return the result\n if (!current.parentId) {\n return next;\n }\n\n const parent = folderMap.get(current.parentId);\n\n // No parent found: return the result\n if (!parent) {\n return next;\n }\n\n // Go ahead and find parent for the current parent\n return findParents(next, parent);\n };\n\n // Recursively find parents for a given folder id\n const ancestors = findParents([], folder);\n return Result.ok(ancestors);\n }\n}\n\nexport const GetAncestorsRepository = RepositoryAbstraction.createImplementation({\n implementation: GetAncestorsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, FolderModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAEIC,sBAAsB,IAAIC,qBAAqB;AAGnD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,WAAW;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAEpB,MAAMC,0BAA0B,CAAoC;EAChEC,WAAWA,CACCC,iBAAqD,EACrDC,WAAkC,EAC5C;IAAA,KAFUD,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,WAAkC,GAAlCA,WAAkC;EAC3C;EAEH,MAAMC,OAAOA,CACTC,MAA0B,EAC4B;IACtD,MAAM;MAAEC;IAAO,CAAC,GAAGD,MAAM;;IAEzB;IACA,IAAI,CAACC,MAAM,EAAE;MACT,OAAOd,MAAM,CAACe,EAAE,CAAC,EAAE,CAAC;IACxB;;IAEA;IACA,IAAI,CAACD,MAAM,CAACE,QAAQ,EAAE;MAClB,OAAOhB,MAAM,CAACe,EAAE,CAAC,CAACD,MAAM,CAAC,CAAC;IAC9B;;IAEA;IACA,MAAMG,KAAK,GAAGH,MAAM,CAACI,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAMC,KAAK,GAAGJ,KAAK,CAACK,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;MAClC,OAAO,CAACjB,WAAW,EAAE,GAAGU,KAAK,CAACG,KAAK,CAAC,CAAC,EAAEI,KAAK,GAAG,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IAChE,CAAC,CAAC;;IAEF;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAAChB,iBAAiB,CAACE,OAAO,CAAiB,IAAI,CAACD,WAAW,EAAE;MAClFgB,KAAK,EAAE;QACHC,MAAM,EAAE;UACJC,IAAI,EAAEf,MAAM,CAACe,IAAI;UACjBC,OAAO,EAAET;QACb;MACJ;IACJ,CAAC,CAAC;IAEF,IAAIK,MAAM,CAACK,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO/B,MAAM,CAACgC,IAAI,CAAC,IAAI1B,sBAAsB,CAACoB,MAAM,CAACO,KAAK,CAAC,CAAC;IAChE;IAEA,MAAM;MAAEC;IAAQ,CAAC,GAAGR,MAAM,CAACS,KAAK;IAChC,MAAMC,OAAO,GAAGF,OAAO,CAACZ,GAAG,CAACe,KAAK,IAAIhC,mBAAmB,CAACiC,QAAQ,CAACD,KAAK,CAAC,CAAC;;IAEzE;IACA,MAAME,SAAS,GAAG,IAAIC,GAAG,CAAiB,CAAC;IAC3CJ,OAAO,CAACK,OAAO,CAACC,CAAC,IAAIH,SAAS,CAACI,GAAG,CAACD,CAAC,CAACE,EAAE,EAAEF,CAAC,CAAC,CAAC;IAE5C,MAAMG,WAAW,GAAGA,CAACC,IAAc,EAAEC,OAAe,KAAe;MAC/D;MACA,IAAI,CAACA,OAAO,EAAE;QACV,OAAOD,IAAI;MACf;;MAEA;MACAA,IAAI,CAACE,IAAI,CAACD,OAAO,CAAC;;MAElB;MACA,IAAI,CAACA,OAAO,CAAC/B,QAAQ,EAAE;QACnB,OAAO8B,IAAI;MACf;MAEA,MAAMG,MAAM,GAAGV,SAAS,CAACW,GAAG,CAACH,OAAO,CAAC/B,QAAQ,CAAC;;MAE9C;MACA,IAAI,CAACiC,MAAM,EAAE;QACT,OAAOH,IAAI;MACf;;MAEA;MACA,OAAOD,WAAW,CAACC,IAAI,EAAEG,MAAM,CAAC;IACpC,CAAC;;IAED;IACA,MAAME,SAAS,GAAGN,WAAW,CAAC,EAAE,EAAE/B,MAAM,CAAC;IACzC,OAAOd,MAAM,CAACe,EAAE,CAACoC,SAAS,CAAC;EAC/B;AACJ;AAEA,OAAO,MAAMlD,sBAAsB,GAAGC,qBAAqB,CAACkD,oBAAoB,CAAC;EAC7EC,cAAc,EAAE7C,0BAA0B;EAC1C8C,YAAY,EAAE,CAACnD,wBAAwB,EAAEC,WAAW;AACxD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/GetAncestors/GetAncestorsRepository.js","sources":["../../../../src/features/folder/GetAncestors/GetAncestorsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type GetAncestorsParams,\n GetAncestorsRepository as RepositoryAbstraction,\n type IGetAncestorsRepository\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetAncestorsRepositoryImpl implements IGetAncestorsRepository {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n params: GetAncestorsParams\n ): Promise<Result<Folder[], RepositoryAbstraction.Error>> {\n const { folder } = params;\n\n // No folder found: return an empty array\n if (!folder) {\n return Result.ok([]);\n }\n\n // The folder has no parent (it's at root level): return an array with the folder\n if (!folder.parentId) {\n return Result.ok([folder]);\n }\n\n // Construct paths for all ancestors of the folder\n const parts = folder.path.split(\"/\").slice(1);\n const paths = parts.map((_, index) => {\n return [ROOT_FOLDER, ...parts.slice(0, index + 1)].join(\"/\");\n });\n\n // Retrieve all folders that match the specified type and any of the constructed paths\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n values: {\n type: folder.type,\n path_in: paths\n }\n }\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries } = result.value;\n const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));\n\n // Create a Map with folders, using folder.id as key\n const folderMap = new Map<string, Folder>();\n folders.forEach(f => folderMap.set(f.id, f));\n\n const findParents = (next: Folder[], current: Folder): Folder[] => {\n // No folder found: return the result\n if (!current) {\n return next;\n }\n\n // Push the current folder into the accumulator array\n next.push(current);\n\n // No parentId found: return the result\n if (!current.parentId) {\n return next;\n }\n\n const parent = folderMap.get(current.parentId);\n\n // No parent found: return the result\n if (!parent) {\n return next;\n }\n\n // Go ahead and find parent for the current parent\n return findParents(next, parent);\n };\n\n // Recursively find parents for a given folder id\n const ancestors = findParents([], folder);\n return Result.ok(ancestors);\n }\n}\n\nexport const GetAncestorsRepository = RepositoryAbstraction.createImplementation({\n implementation: GetAncestorsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, FolderModel]\n});\n"],"names":["GetAncestorsRepositoryImpl","listLatestEntries","folderModel","params","folder","Result","parts","paths","_","index","ROOT_FOLDER","result","FolderPersistenceError","entries","folders","entry","EntryToFolderMapper","folderMap","Map","f","findParents","next","current","parent","ancestors","GetAncestorsRepository","RepositoryAbstraction","ListLatestEntriesUseCase","FolderModel"],"mappings":";;;;;;;AAaA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,WAAkC,CAC5C;aAFUD,iBAAiB,GAAjBA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QACFC,MAA0B,EAC4B;QACtD,MAAM,EAAEC,MAAM,EAAE,GAAGD;QAGnB,IAAI,CAACC,QACD,OAAOC,OAAO,EAAE,CAAC,EAAE;QAIvB,IAAI,CAACD,OAAO,QAAQ,EAChB,OAAOC,OAAO,EAAE,CAAC;YAACD;SAAO;QAI7B,MAAME,QAAQF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;QAC3C,MAAMG,QAAQD,MAAM,GAAG,CAAC,CAACE,GAAGC,QACjB;gBAACC;mBAAgBJ,MAAM,KAAK,CAAC,GAAGG,QAAQ;aAAG,CAAC,IAAI,CAAC;QAI5D,MAAME,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAiB,IAAI,CAAC,WAAW,EAAE;YAClF,OAAO;gBACH,QAAQ;oBACJ,MAAMP,OAAO,IAAI;oBACjB,SAASG;gBACb;YACJ;QACJ;QAEA,IAAII,OAAO,MAAM,IACb,OAAON,OAAO,IAAI,CAAC,IAAIO,uBAAuBD,OAAO,KAAK;QAG9D,MAAM,EAAEE,OAAO,EAAE,GAAGF,OAAO,KAAK;QAChC,MAAMG,UAAUD,QAAQ,GAAG,CAACE,CAAAA,QAASC,oBAAoB,QAAQ,CAACD;QAGlE,MAAME,YAAY,IAAIC;QACtBJ,QAAQ,OAAO,CAACK,CAAAA,IAAKF,UAAU,GAAG,CAACE,EAAE,EAAE,EAAEA;QAEzC,MAAMC,cAAc,CAACC,MAAgBC;YAEjC,IAAI,CAACA,SACD,OAAOD;YAIXA,KAAK,IAAI,CAACC;YAGV,IAAI,CAACA,QAAQ,QAAQ,EACjB,OAAOD;YAGX,MAAME,SAASN,UAAU,GAAG,CAACK,QAAQ,QAAQ;YAG7C,IAAI,CAACC,QACD,OAAOF;YAIX,OAAOD,YAAYC,MAAME;QAC7B;QAGA,MAAMC,YAAYJ,YAAY,EAAE,EAAEhB;QAClC,OAAOC,OAAO,EAAE,CAACmB;IACrB;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAA0C,CAAC;IAC7E,gBAAgB1B;IAChB,cAAc;QAAC2B;QAA0BC;KAAY;AACzD"}
@@ -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"}
@@ -11,6 +11,7 @@ export interface IGetAncestorsRepositoryErrors {
11
11
  persistence: FolderPersistenceError;
12
12
  }
13
13
  type RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];
14
+ /** Fetch ancestor folders from storage. */
14
15
  export declare const GetAncestorsRepository: import("@webiny/di").Abstraction<IGetAncestorsRepository>;
15
16
  export declare namespace GetAncestorsRepository {
16
17
  type Interface = IGetAncestorsRepository;
@@ -30,6 +31,7 @@ export interface IGetAncestorsUseCaseErrors {
30
31
  persistence: FolderPersistenceError;
31
32
  }
32
33
  type UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];
34
+ /** Retrieve ancestor folders in the hierarchy. */
33
35
  export declare const GetAncestorsUseCase: import("@webiny/di").Abstraction<IGetAncestorsUseCase>;
34
36
  export declare namespace GetAncestorsUseCase {
35
37
  type Interface = IGetAncestorsUseCase;
@@ -1,15 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * GetAncestors repository interface
5
- */
6
-
7
- export const GetAncestorsRepository = createAbstraction("GetAncestorsRepository");
8
-
9
- /**
10
- * GetAncestors use case interface
11
- */
12
-
13
- export const GetAncestorsUseCase = createAbstraction("GetAncestorsUseCase");
2
+ const GetAncestorsRepository = createAbstraction("GetAncestorsRepository");
3
+ const GetAncestorsUseCase = createAbstraction("GetAncestorsUseCase");
4
+ export { GetAncestorsRepository, GetAncestorsUseCase };
14
5
 
15
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\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\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,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAgBA,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 +1,5 @@
1
- export declare const GetAncestorsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetAncestorsFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -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,5 +1,5 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
- import { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { Folder, GetFolderParams } from "../../../folder/folder.types.js";
4
4
  import type { FolderNotAuthorizedError, FolderNotFoundError, FolderPersistenceError } from "../../../domain/folder/errors.js";
5
5
  /**
@@ -30,6 +30,7 @@ export interface IGetFolderUseCaseErrors {
30
30
  persistence: FolderPersistenceError;
31
31
  }
32
32
  type UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];
33
+ /** Retrieve a folder. */
33
34
  export declare const GetFolderUseCase: import("@webiny/di").Abstraction<IGetFolderUseCase>;
34
35
  export declare namespace GetFolderUseCase {
35
36
  type Interface = IGetFolderUseCase;
@@ -41,13 +42,15 @@ export interface FolderBeforeGetPayload {
41
42
  export interface FolderAfterGetPayload {
42
43
  folder: Folder;
43
44
  }
44
- export declare const FolderBeforeGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>;
45
- export declare namespace FolderBeforeGetHandler {
45
+ /** Hook into folder lifecycle before a folder is retrieved. */
46
+ export declare const FolderBeforeGetEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>;
47
+ export declare namespace FolderBeforeGetEventHandler {
46
48
  type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;
47
49
  type Event = DomainEvent<FolderBeforeGetPayload>;
48
50
  }
49
- export declare const FolderAfterGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>;
50
- export declare namespace FolderAfterGetHandler {
51
+ /** Hook into folder lifecycle after a folder is retrieved. */
52
+ export declare const FolderAfterGetEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>;
53
+ export declare namespace FolderAfterGetEventHandler {
51
54
  type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;
52
55
  type Event = DomainEvent<FolderAfterGetPayload>;
53
56
  }
@@ -1,21 +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
- export const GetFolderUseCase = createAbstraction("GetFolderUseCase");
14
-
15
- // Event Payload Types
16
-
17
- // Event Handler Abstractions
18
- export const FolderBeforeGetHandler = createAbstraction("FolderBeforeGetHandler");
19
- export const FolderAfterGetHandler = createAbstraction("FolderAfterGetHandler");
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 };
20
7
 
21
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetFolderRepository","GetFolderUseCase","FolderBeforeGetHandler","FolderAfterGetHandler"],"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\";\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\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\nexport const FolderBeforeGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>(\"FolderBeforeGetHandler\");\n\nexport namespace FolderBeforeGetHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\nexport const FolderAfterGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>(\"FolderAfterGetHandler\");\n\nexport namespace FolderAfterGetHandler {\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,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC;;AAOxF;;AASA;AACA,OAAO,MAAMG,sBAAsB,GAC/BH,iBAAiB,CAAqD,wBAAwB,CAAC;AAOnG,OAAO,MAAMI,qBAAqB,GAC9BJ,iBAAiB,CAAoD,uBAAuB,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"}
@@ -1 +1,5 @@
1
- export declare const GetFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetFolderFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };