@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,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { CreateFolderRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { CreateFolderRepository } from "./abstractions.js";
3
3
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
4
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
5
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
@@ -9,100 +9,77 @@ import { FolderPersistenceError, FolderValidationError } from "../../../domain/f
9
9
  import { Path } from "../../../utils/Path.js";
10
10
  import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
11
11
  class CreateFolderRepositoryImpl {
12
- constructor(createEntry, listLatestEntries, getEntryById, folderModel) {
13
- this.createEntry = createEntry;
14
- this.listLatestEntries = listLatestEntries;
15
- this.getEntryById = getEntryById;
16
- this.folderModel = folderModel;
17
- }
18
- async execute(data) {
19
- // Check if folder already exists
20
- const checkResult = await this.checkExistingFolder({
21
- type: data.type,
22
- slug: data.slug,
23
- parentId: data.parentId
24
- });
25
- if (checkResult.isFail()) {
26
- return Result.fail(checkResult.error);
12
+ constructor(createEntry, listLatestEntries, getEntryById, folderModel){
13
+ this.createEntry = createEntry;
14
+ this.listLatestEntries = listLatestEntries;
15
+ this.getEntryById = getEntryById;
16
+ this.folderModel = folderModel;
27
17
  }
28
-
29
- // Create folder path
30
- const pathResult = await this.createFolderPath({
31
- slug: data.slug,
32
- parentId: data.parentId
33
- });
34
- if (pathResult.isFail()) {
35
- return Result.fail(pathResult.error);
36
- }
37
-
38
- // Create the entry
39
- const result = await this.createEntry.execute(this.folderModel, {
40
- values: {
41
- ...data,
42
- parentId: data.parentId || null,
43
- path: pathResult.value
44
- }
45
- });
46
- if (result.isFail()) {
47
- if (result.error.code === "Cms/Entry/ValidationError") {
48
- return Result.fail(new FolderValidationError(result.error.message));
49
- }
50
- return Result.fail(new FolderPersistenceError(result.error));
51
- }
52
- const folder = EntryToFolderMapper.toFolder(result.value);
53
- return Result.ok(folder);
54
- }
55
- async checkExistingFolder(params) {
56
- const {
57
- type,
58
- slug,
59
- parentId,
60
- excludeId
61
- } = params;
62
- const result = await this.listLatestEntries.execute(this.folderModel, {
63
- where: {
64
- latest: true,
65
- values: {
66
- type,
67
- slug,
68
- parentId
69
- },
70
- ...(excludeId ? {
71
- entryId_not: excludeId
72
- } : {})
73
- },
74
- limit: 1
75
- });
76
- if (result.isFail()) {
77
- return Result.fail(new FolderPersistenceError(result.error));
78
- }
79
- const {
80
- entries
81
- } = result.value;
82
- if (entries.length > 0) {
83
- return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
18
+ async execute(data) {
19
+ const checkResult = await this.checkExistingFolder({
20
+ type: data.type,
21
+ slug: data.slug,
22
+ parentId: data.parentId
23
+ });
24
+ if (checkResult.isFail()) return Result.fail(checkResult.error);
25
+ const pathResult = await this.createFolderPath({
26
+ slug: data.slug,
27
+ parentId: data.parentId
28
+ });
29
+ if (pathResult.isFail()) return Result.fail(pathResult.error);
30
+ const result = await this.createEntry.execute(this.folderModel, {
31
+ values: {
32
+ ...data,
33
+ parentId: data.parentId || null,
34
+ path: pathResult.value
35
+ }
36
+ });
37
+ if (result.isFail()) {
38
+ if ("Cms/Entry/ValidationError" === result.error.code) return Result.fail(new FolderValidationError(result.error.message));
39
+ return Result.fail(new FolderPersistenceError(result.error));
40
+ }
41
+ const folder = EntryToFolderMapper.toFolder(result.value);
42
+ return Result.ok(folder);
84
43
  }
85
- return Result.ok();
86
- }
87
- async createFolderPath(params) {
88
- const {
89
- slug,
90
- parentId
91
- } = params;
92
- if (!parentId) {
93
- return Result.ok(Path.create(slug));
44
+ async checkExistingFolder(params) {
45
+ const { type, slug, parentId, excludeId } = params;
46
+ const result = await this.listLatestEntries.execute(this.folderModel, {
47
+ where: {
48
+ latest: true,
49
+ values: {
50
+ type,
51
+ slug,
52
+ parentId
53
+ },
54
+ ...excludeId ? {
55
+ entryId_not: excludeId
56
+ } : {}
57
+ },
58
+ limit: 1
59
+ });
60
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
61
+ const { entries } = result.value;
62
+ if (entries.length > 0) return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
63
+ return Result.ok();
94
64
  }
95
- const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
96
- if (parentResult.isFail()) {
97
- return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
65
+ async createFolderPath(params) {
66
+ const { slug, parentId } = params;
67
+ if (!parentId) return Result.ok(Path.create(slug));
68
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
69
+ if (parentResult.isFail()) return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
70
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
71
+ return Result.ok(Path.create(slug, parentFolder.path));
98
72
  }
99
- const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
100
- return Result.ok(Path.create(slug, parentFolder.path));
101
- }
102
73
  }
103
- export const CreateFolderRepository = RepositoryAbstraction.createImplementation({
104
- implementation: CreateFolderRepositoryImpl,
105
- dependencies: [CreateEntryUseCase, ListLatestEntriesUseCase, GetEntryByIdUseCase, FolderModel]
74
+ const CreateFolderRepository_CreateFolderRepository = CreateFolderRepository.createImplementation({
75
+ implementation: CreateFolderRepositoryImpl,
76
+ dependencies: [
77
+ CreateEntryUseCase,
78
+ ListLatestEntriesUseCase,
79
+ GetEntryByIdUseCase,
80
+ FolderModel
81
+ ]
106
82
  });
83
+ export { CreateFolderRepository_CreateFolderRepository as CreateFolderRepository };
107
84
 
108
85
  //# sourceMappingURL=CreateFolderRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","CreateFolderRepository","RepositoryAbstraction","CreateEntryUseCase","ListLatestEntriesUseCase","GetEntryByIdUseCase","FolderModel","EntryToFolderMapper","FolderPersistenceError","FolderValidationError","Path","EntryId","CreateFolderRepositoryImpl","constructor","createEntry","listLatestEntries","getEntryById","folderModel","execute","data","checkResult","checkExistingFolder","type","slug","parentId","isFail","fail","error","pathResult","createFolderPath","result","values","path","value","code","message","folder","toFolder","ok","params","excludeId","where","latest","entryId_not","limit","entries","length","create","parentResult","from","toString","Error","parentFolder","createImplementation","implementation","dependencies"],"sources":["CreateFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateFolderRepository as RepositoryAbstraction,\n type ICreateFolderRepository\n} from \"./abstractions.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, CreateFolderParams, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError, FolderValidationError } from \"~/domain/folder/errors.js\";\nimport { Path } from \"~/utils/Path.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass CreateFolderRepositoryImpl implements ICreateFolderRepository {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n // Check if folder already exists\n const checkResult = await this.checkExistingFolder({\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (checkResult.isFail()) {\n return Result.fail(checkResult.error);\n }\n\n // Create folder path\n const pathResult = await this.createFolderPath({\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (pathResult.isFail()) {\n return Result.fail(pathResult.error);\n }\n\n // Create the entry\n const result = await this.createEntry.execute<CmsEntryFolder>(this.folderModel, {\n values: {\n ...data,\n parentId: data.parentId || null,\n path: pathResult.value\n }\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new FolderValidationError(result.error.message));\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 private async checkExistingFolder(params: {\n type: string;\n slug: string;\n parentId?: string | null;\n excludeId?: string;\n }): Promise<Result<void, RepositoryAbstraction.Error>> {\n const { type, slug, parentId, excludeId } = params;\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n latest: true,\n values: {\n type,\n slug,\n parentId\n },\n ...(excludeId ? { entryId_not: excludeId } : {})\n },\n limit: 1\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries } = result.value;\n\n if (entries.length > 0) {\n return Result.fail(\n new FolderValidationError(\n `Folder with slug \"${slug}\" already exists at this level.`\n )\n );\n }\n\n return Result.ok();\n }\n\n private async createFolderPath(params: {\n slug: string;\n parentId?: string | null;\n }): Promise<Result<string, RepositoryAbstraction.Error>> {\n const { slug, parentId } = params;\n\n if (!parentId) {\n return Result.ok(Path.create(slug));\n }\n\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(\n new FolderPersistenceError(\n new Error(\"Parent folder not found. Unable to create the folder path\")\n )\n );\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n return Result.ok(Path.create(slug, parentFolder.path));\n }\n}\n\nexport const CreateFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFolderRepositoryImpl,\n dependencies: [CreateEntryUseCase, ListLatestEntriesUseCase, GetEntryByIdUseCase, FolderModel]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/CreateFolder/CreateFolderRepository.js","sources":["../../../../src/features/folder/CreateFolder/CreateFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateFolderRepository as RepositoryAbstraction,\n type ICreateFolderRepository\n} from \"./abstractions.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, CreateFolderParams, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError, FolderValidationError } from \"~/domain/folder/errors.js\";\nimport { Path } from \"~/utils/Path.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass CreateFolderRepositoryImpl implements ICreateFolderRepository {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n // Check if folder already exists\n const checkResult = await this.checkExistingFolder({\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (checkResult.isFail()) {\n return Result.fail(checkResult.error);\n }\n\n // Create folder path\n const pathResult = await this.createFolderPath({\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (pathResult.isFail()) {\n return Result.fail(pathResult.error);\n }\n\n // Create the entry\n const result = await this.createEntry.execute<CmsEntryFolder>(this.folderModel, {\n values: {\n ...data,\n parentId: data.parentId || null,\n path: pathResult.value\n }\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new FolderValidationError(result.error.message));\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 private async checkExistingFolder(params: {\n type: string;\n slug: string;\n parentId?: string | null;\n excludeId?: string;\n }): Promise<Result<void, RepositoryAbstraction.Error>> {\n const { type, slug, parentId, excludeId } = params;\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n latest: true,\n values: {\n type,\n slug,\n parentId\n },\n ...(excludeId ? { entryId_not: excludeId } : {})\n },\n limit: 1\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries } = result.value;\n\n if (entries.length > 0) {\n return Result.fail(\n new FolderValidationError(\n `Folder with slug \"${slug}\" already exists at this level.`\n )\n );\n }\n\n return Result.ok();\n }\n\n private async createFolderPath(params: {\n slug: string;\n parentId?: string | null;\n }): Promise<Result<string, RepositoryAbstraction.Error>> {\n const { slug, parentId } = params;\n\n if (!parentId) {\n return Result.ok(Path.create(slug));\n }\n\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(\n new FolderPersistenceError(\n new Error(\"Parent folder not found. Unable to create the folder path\")\n )\n );\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n return Result.ok(Path.create(slug, parentFolder.path));\n }\n}\n\nexport const CreateFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFolderRepositoryImpl,\n dependencies: [CreateEntryUseCase, ListLatestEntriesUseCase, GetEntryByIdUseCase, FolderModel]\n});\n"],"names":["CreateFolderRepositoryImpl","createEntry","listLatestEntries","getEntryById","folderModel","data","checkResult","Result","pathResult","result","FolderValidationError","FolderPersistenceError","folder","EntryToFolderMapper","params","type","slug","parentId","excludeId","entries","Path","parentResult","EntryId","Error","parentFolder","CreateFolderRepository","RepositoryAbstraction","CreateEntryUseCase","ListLatestEntriesUseCase","GetEntryByIdUseCase","FolderModel"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
2
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { CreateFolderUseCase as UseCaseAbstraction, CreateFolderRepository } from "./abstractions.js";
4
4
  import type { Folder, CreateFolderParams } from "../../../folder/folder.types.js";
5
5
  declare class CreateFolderUseCaseImpl implements UseCaseAbstraction.Interface {
@@ -1,39 +1,36 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { createImplementation } from "@webiny/di";
4
- import { CreateFolderUseCase as UseCaseAbstraction, CreateFolderRepository } from "./abstractions.js";
5
- import { FolderBeforeCreateEvent, FolderAfterCreateEvent } from "./events.js";
4
+ import { CreateFolderRepository, CreateFolderUseCase } from "./abstractions.js";
5
+ import { FolderAfterCreateEvent, FolderBeforeCreateEvent } from "./events.js";
6
6
  class CreateFolderUseCaseImpl {
7
- constructor(eventPublisher, repository) {
8
- this.eventPublisher = eventPublisher;
9
- this.repository = repository;
10
- }
11
- async execute(params) {
12
- // Publish before create event
13
- const beforeCreateEvent = new FolderBeforeCreateEvent({
14
- input: params
15
- });
16
- await this.eventPublisher.publish(beforeCreateEvent);
17
-
18
- // Execute the create operation
19
- const result = await this.repository.execute(params);
20
- if (result.isFail()) {
21
- return result;
7
+ constructor(eventPublisher, repository){
8
+ this.eventPublisher = eventPublisher;
9
+ this.repository = repository;
10
+ }
11
+ async execute(params) {
12
+ const beforeCreateEvent = new FolderBeforeCreateEvent({
13
+ input: params
14
+ });
15
+ await this.eventPublisher.publish(beforeCreateEvent);
16
+ const result = await this.repository.execute(params);
17
+ if (result.isFail()) return result;
18
+ const folder = result.value;
19
+ const afterCreateEvent = new FolderAfterCreateEvent({
20
+ folder
21
+ });
22
+ await this.eventPublisher.publish(afterCreateEvent);
23
+ return Result.ok(folder);
22
24
  }
23
- const folder = result.value;
24
-
25
- // Publish after create event
26
- const afterCreateEvent = new FolderAfterCreateEvent({
27
- folder
28
- });
29
- await this.eventPublisher.publish(afterCreateEvent);
30
- return Result.ok(folder);
31
- }
32
25
  }
33
- export const CreateFolderUseCase = createImplementation({
34
- abstraction: UseCaseAbstraction,
35
- implementation: CreateFolderUseCaseImpl,
36
- dependencies: [EventPublisher, CreateFolderRepository]
26
+ const CreateFolderUseCase_CreateFolderUseCase = createImplementation({
27
+ abstraction: CreateFolderUseCase,
28
+ implementation: CreateFolderUseCaseImpl,
29
+ dependencies: [
30
+ EventPublisher,
31
+ CreateFolderRepository
32
+ ]
37
33
  });
34
+ export { CreateFolderUseCase_CreateFolderUseCase as CreateFolderUseCase };
38
35
 
39
36
  //# sourceMappingURL=CreateFolderUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","createImplementation","CreateFolderUseCase","UseCaseAbstraction","CreateFolderRepository","FolderBeforeCreateEvent","FolderAfterCreateEvent","CreateFolderUseCaseImpl","constructor","eventPublisher","repository","execute","params","beforeCreateEvent","input","publish","result","isFail","folder","value","afterCreateEvent","ok","abstraction","implementation","dependencies"],"sources":["CreateFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { createImplementation } from \"@webiny/di\";\nimport {\n CreateFolderUseCase as UseCaseAbstraction,\n CreateFolderRepository\n} from \"./abstractions.js\";\nimport { FolderBeforeCreateEvent, FolderAfterCreateEvent } from \"./events.js\";\nimport type { Folder, CreateFolderParams } from \"~/folder/folder.types.js\";\n\nclass CreateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateFolderRepository.Interface\n ) {}\n\n async execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n // Publish before create event\n const beforeCreateEvent = new FolderBeforeCreateEvent({\n input: params\n });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after create event\n const afterCreateEvent = new FolderAfterCreateEvent({\n folder\n });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const CreateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateFolderUseCaseImpl,\n dependencies: [EventPublisher, CreateFolderRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,oBAAoB,QAAQ,YAAY;AACjD,SACIC,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAE1B,SAASC,uBAAuB,EAAEC,sBAAsB;AAGxD,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,cAAmD,EACnDC,UAA4C,EACtD;IAAA,KAFUD,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,MAA0B,EAAqD;IACzF;IACA,MAAMC,iBAAiB,GAAG,IAAIR,uBAAuB,CAAC;MAClDS,KAAK,EAAEF;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACH,cAAc,CAACM,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,MAAM,GAAGF,MAAM,CAACG,KAAK;;IAE3B;IACA,MAAMC,gBAAgB,GAAG,IAAId,sBAAsB,CAAC;MAChDY;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACT,cAAc,CAACM,OAAO,CAACK,gBAAgB,CAAC;IAEnD,OAAOrB,MAAM,CAACsB,EAAE,CAACH,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMhB,mBAAmB,GAAGD,oBAAoB,CAAC;EACpDqB,WAAW,EAAEnB,kBAAkB;EAC/BoB,cAAc,EAAEhB,uBAAuB;EACvCiB,YAAY,EAAE,CAACxB,cAAc,EAAEI,sBAAsB;AACzD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/CreateFolder/CreateFolderUseCase.js","sources":["../../../../src/features/folder/CreateFolder/CreateFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { createImplementation } from \"@webiny/di\";\nimport {\n CreateFolderUseCase as UseCaseAbstraction,\n CreateFolderRepository\n} from \"./abstractions.js\";\nimport { FolderBeforeCreateEvent, FolderAfterCreateEvent } from \"./events.js\";\nimport type { Folder, CreateFolderParams } from \"~/folder/folder.types.js\";\n\nclass CreateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateFolderRepository.Interface\n ) {}\n\n async execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n // Publish before create event\n const beforeCreateEvent = new FolderBeforeCreateEvent({\n input: params\n });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after create event\n const afterCreateEvent = new FolderAfterCreateEvent({\n folder\n });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const CreateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateFolderUseCaseImpl,\n dependencies: [EventPublisher, CreateFolderRepository]\n});\n"],"names":["CreateFolderUseCaseImpl","eventPublisher","repository","params","beforeCreateEvent","FolderBeforeCreateEvent","result","folder","afterCreateEvent","FolderAfterCreateEvent","Result","CreateFolderUseCase","createImplementation","UseCaseAbstraction","EventPublisher","CreateFolderRepository"],"mappings":";;;;;AAaA,MAAMA;IACF,YACYC,cAAmD,EACnDC,UAA4C,CACtD;aAFUD,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAA0B,EAAqD;QAEzF,MAAMC,oBAAoB,IAAIC,wBAAwB;YAClD,OAAOF;QACX;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH;QAE7C,IAAIG,OAAO,MAAM,IACb,OAAOA;QAGX,MAAMC,SAASD,OAAO,KAAK;QAG3B,MAAME,mBAAmB,IAAIC,uBAAuB;YAChDF;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOE,OAAO,EAAE,CAACH;IACrB;AACJ;AAEO,MAAMI,0CAAsBC,qBAAqB;IACpD,aAAaC;IACb,gBAAgBb;IAChB,cAAc;QAACc;QAAgBC;KAAuB;AAC1D"}
@@ -1,5 +1,5 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
- import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { Folder, CreateFolderParams } from "../../../folder/folder.types.js";
4
4
  import type { FolderNotAuthorizedError, FolderPersistenceError, FolderValidationError } from "../../../domain/folder/errors.js";
5
5
  /**
@@ -13,6 +13,7 @@ export interface ICreateFolderRepositoryErrors {
13
13
  persistence: FolderPersistenceError;
14
14
  }
15
15
  type RepositoryError = ICreateFolderRepositoryErrors[keyof ICreateFolderRepositoryErrors];
16
+ /** Persist a newly created folder. */
16
17
  export declare const CreateFolderRepository: import("@webiny/di").Abstraction<ICreateFolderRepository>;
17
18
  export declare namespace CreateFolderRepository {
18
19
  type Interface = ICreateFolderRepository;
@@ -30,6 +31,7 @@ export interface ICreateFolderUseCaseErrors {
30
31
  validation: FolderValidationError;
31
32
  }
32
33
  type UseCaseError = ICreateFolderUseCaseErrors[keyof ICreateFolderUseCaseErrors];
34
+ /** Create a new folder. */
33
35
  export declare const CreateFolderUseCase: import("@webiny/di").Abstraction<ICreateFolderUseCase>;
34
36
  export declare namespace CreateFolderUseCase {
35
37
  type Interface = ICreateFolderUseCase;
@@ -42,13 +44,15 @@ export interface FolderBeforeCreatePayload {
42
44
  export interface FolderAfterCreatePayload {
43
45
  folder: Folder;
44
46
  }
45
- export declare const FolderBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeCreatePayload>>>;
46
- export declare namespace FolderBeforeCreateHandler {
47
+ /** Hook into folder lifecycle before a folder is created. */
48
+ export declare const FolderBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeCreatePayload>>>;
49
+ export declare namespace FolderBeforeCreateEventHandler {
47
50
  type Interface = IEventHandler<DomainEvent<FolderBeforeCreatePayload>>;
48
51
  type Event = DomainEvent<FolderBeforeCreatePayload>;
49
52
  }
50
- export declare const FolderAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterCreatePayload>>>;
51
- export declare namespace FolderAfterCreateHandler {
53
+ /** Hook into folder lifecycle after a folder is created. */
54
+ export declare const FolderAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterCreatePayload>>>;
55
+ export declare namespace FolderAfterCreateEventHandler {
52
56
  type Interface = IEventHandler<DomainEvent<FolderAfterCreatePayload>>;
53
57
  type Event = DomainEvent<FolderAfterCreatePayload>;
54
58
  }
@@ -1,21 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * CreateFolder repository interface
5
- */
6
-
7
- export const CreateFolderRepository = createAbstraction("CreateFolderRepository");
8
-
9
- /**
10
- * CreateFolder use case interface
11
- */
12
-
13
- export const CreateFolderUseCase = createAbstraction("CreateFolderUseCase");
14
-
15
- // Event Payload Types
16
-
17
- // Event Handler Abstractions
18
- export const FolderBeforeCreateHandler = createAbstraction("FolderBeforeCreateHandler");
19
- export const FolderAfterCreateHandler = createAbstraction("FolderAfterCreateHandler");
2
+ const CreateFolderRepository = createAbstraction("CreateFolderRepository");
3
+ const CreateFolderUseCase = createAbstraction("CreateFolderUseCase");
4
+ const FolderBeforeCreateEventHandler = createAbstraction("FolderBeforeCreateEventHandler");
5
+ const FolderAfterCreateEventHandler = createAbstraction("FolderAfterCreateEventHandler");
6
+ export { CreateFolderRepository, CreateFolderUseCase, FolderAfterCreateEventHandler, FolderBeforeCreateEventHandler };
20
7
 
21
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreateFolderRepository","CreateFolderUseCase","FolderBeforeCreateHandler","FolderAfterCreateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { Folder, CreateFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderPersistenceError,\n FolderValidationError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * CreateFolder repository interface\n */\nexport interface ICreateFolderRepository {\n execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface ICreateFolderRepositoryErrors {\n validation: FolderValidationError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = ICreateFolderRepositoryErrors[keyof ICreateFolderRepositoryErrors];\n\nexport const CreateFolderRepository =\n createAbstraction<ICreateFolderRepository>(\"CreateFolderRepository\");\n\nexport namespace CreateFolderRepository {\n export type Interface = ICreateFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFolder use case interface\n */\nexport interface ICreateFolderUseCase {\n execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface ICreateFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype UseCaseError = ICreateFolderUseCaseErrors[keyof ICreateFolderUseCaseErrors];\n\nexport const CreateFolderUseCase = createAbstraction<ICreateFolderUseCase>(\"CreateFolderUseCase\");\n\nexport namespace CreateFolderUseCase {\n export type Interface = ICreateFolderUseCase;\n export type Return = Promise<Result<Folder, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeCreatePayload {\n input: CreateFolderParams;\n}\n\nexport interface FolderAfterCreatePayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\nexport const FolderBeforeCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeCreatePayload>>\n>(\"FolderBeforeCreateHandler\");\n\nexport namespace FolderBeforeCreateHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeCreatePayload>>;\n export type Event = DomainEvent<FolderBeforeCreatePayload>;\n}\n\nexport const FolderAfterCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterCreatePayload>>\n>(\"FolderAfterCreateHandler\");\n\nexport namespace FolderAfterCreateHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterCreatePayload>>;\n export type Event = DomainEvent<FolderAfterCreatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;;AAYA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAaA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC;;AAQjG;;AASA;AACA,OAAO,MAAMG,yBAAyB,GAAGH,iBAAiB,CAExD,2BAA2B,CAAC;AAO9B,OAAO,MAAMI,wBAAwB,GAAGJ,iBAAiB,CAEvD,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/CreateFolder/abstractions.js","sources":["../../../../src/features/folder/CreateFolder/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { Folder, CreateFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderPersistenceError,\n FolderValidationError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * CreateFolder repository interface\n */\nexport interface ICreateFolderRepository {\n execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface ICreateFolderRepositoryErrors {\n validation: FolderValidationError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = ICreateFolderRepositoryErrors[keyof ICreateFolderRepositoryErrors];\n\n/** Persist a newly created folder. */\nexport const CreateFolderRepository =\n createAbstraction<ICreateFolderRepository>(\"CreateFolderRepository\");\n\nexport namespace CreateFolderRepository {\n export type Interface = ICreateFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFolder use case interface\n */\nexport interface ICreateFolderUseCase {\n execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface ICreateFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype UseCaseError = ICreateFolderUseCaseErrors[keyof ICreateFolderUseCaseErrors];\n\n/** Create a new folder. */\nexport const CreateFolderUseCase = createAbstraction<ICreateFolderUseCase>(\"CreateFolderUseCase\");\n\nexport namespace CreateFolderUseCase {\n export type Interface = ICreateFolderUseCase;\n export type Return = Promise<Result<Folder, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeCreatePayload {\n input: CreateFolderParams;\n}\n\nexport interface FolderAfterCreatePayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is created. */\nexport const FolderBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeCreatePayload>>\n>(\"FolderBeforeCreateEventHandler\");\n\nexport namespace FolderBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeCreatePayload>>;\n export type Event = DomainEvent<FolderBeforeCreatePayload>;\n}\n\n/** Hook into folder lifecycle after a folder is created. */\nexport const FolderAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterCreatePayload>>\n>(\"FolderAfterCreateEventHandler\");\n\nexport namespace FolderAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterCreatePayload>>;\n export type Event = DomainEvent<FolderAfterCreatePayload>;\n}\n"],"names":["CreateFolderRepository","createAbstraction","CreateFolderUseCase","FolderBeforeCreateEventHandler","FolderAfterCreateEventHandler"],"mappings":";AAyBO,MAAMA,yBACTC,kBAA2C;AAuBxC,MAAMC,sBAAsBD,kBAAwC;AAmBpE,MAAME,iCAAiCF,kBAE5C;AAQK,MAAMG,gCAAgCH,kBAE3C"}
@@ -1,44 +1,39 @@
1
1
  import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
2
2
  import { CreateFolderUseCase } from "../abstractions.js";
3
- import { createDecorator, Result } from "@webiny/feature/api";
3
+ import { Result, createDecorator } from "@webiny/feature/api";
4
4
  import { FolderNotAuthorizedError } from "../../../../domain/folder/errors.js";
5
5
  class CreateFolderWithFolderLevelPermissionsImpl {
6
- constructor(folderLevelPermissions, decoretee) {
7
- this.folderLevelPermissions = folderLevelPermissions;
8
- this.decoretee = decoretee;
9
- }
10
- async execute(params) {
11
- let canCreateFolder;
12
- if (params.parentId) {
13
- const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
14
- canCreateFolder = await this.folderLevelPermissions.canAccessFolder({
15
- permissions,
16
- rwd: "w"
17
- });
18
- } else {
19
- canCreateFolder = this.folderLevelPermissions.canCreateFolderInRoot();
6
+ constructor(folderLevelPermissions, decoretee){
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoretee = decoretee;
20
9
  }
21
- if (!canCreateFolder) {
22
- return Result.fail(new FolderNotAuthorizedError());
10
+ async execute(params) {
11
+ let canCreateFolder;
12
+ if (params.parentId) {
13
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
14
+ canCreateFolder = await this.folderLevelPermissions.canAccessFolder({
15
+ permissions,
16
+ rwd: "w"
17
+ });
18
+ } else canCreateFolder = this.folderLevelPermissions.canCreateFolderInRoot();
19
+ if (!canCreateFolder) return Result.fail(new FolderNotAuthorizedError());
20
+ const result = await this.decoretee.execute(params);
21
+ if (result.isFail()) return Result.fail(result.error);
22
+ const folder = result.value;
23
+ const permissionsWithDefaults = await this.folderLevelPermissions.getDefaultPermissions(folder?.permissions ?? []);
24
+ return Result.ok({
25
+ ...folder,
26
+ permissions: permissionsWithDefaults
27
+ });
23
28
  }
24
- const result = await this.decoretee.execute(params);
25
- if (result.isFail()) {
26
- return Result.fail(result.error);
27
- }
28
- const folder = result.value;
29
-
30
- // Let's set default permissions based on the current user.
31
- const permissionsWithDefaults = await this.folderLevelPermissions.getDefaultPermissions(folder?.permissions ?? []);
32
- return Result.ok({
33
- ...folder,
34
- permissions: permissionsWithDefaults
35
- });
36
- }
37
29
  }
38
- export const CreateFolderWithFolderLevelPermissions = createDecorator({
39
- abstraction: CreateFolderUseCase,
40
- decorator: CreateFolderWithFolderLevelPermissionsImpl,
41
- dependencies: [FolderLevelPermissions]
30
+ const CreateFolderWithFolderLevelPermissions = createDecorator({
31
+ abstraction: CreateFolderUseCase,
32
+ decorator: CreateFolderWithFolderLevelPermissionsImpl,
33
+ dependencies: [
34
+ FolderLevelPermissions
35
+ ]
42
36
  });
37
+ export { CreateFolderWithFolderLevelPermissions };
43
38
 
44
39
  //# sourceMappingURL=CreateFolderWithFolderLevelPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FolderLevelPermissions","CreateFolderUseCase","createDecorator","Result","FolderNotAuthorizedError","CreateFolderWithFolderLevelPermissionsImpl","constructor","folderLevelPermissions","decoretee","execute","params","canCreateFolder","parentId","permissions","getFolderLevelPermissions","canAccessFolder","rwd","canCreateFolderInRoot","fail","result","isFail","error","folder","value","permissionsWithDefaults","getDefaultPermissions","ok","CreateFolderWithFolderLevelPermissions","abstraction","decorator","dependencies"],"sources":["CreateFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { CreateFolderUseCase } from \"../abstractions.js\";\nimport type { CreateFolderParams } from \"~/folder/folder.types.js\";\nimport { createDecorator, Result } from \"@webiny/feature/api\";\nimport { FolderNotAuthorizedError } from \"~/domain/folder/errors.js\";\n\nclass CreateFolderWithFolderLevelPermissionsImpl implements CreateFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: CreateFolderUseCase.Interface;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: CreateFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(params: CreateFolderParams): CreateFolderUseCase.Return {\n let canCreateFolder: boolean;\n if (params.parentId) {\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n params.parentId\n );\n canCreateFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"w\"\n });\n } else {\n canCreateFolder = this.folderLevelPermissions.canCreateFolderInRoot();\n }\n\n if (!canCreateFolder) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n const result = await this.decoretee.execute(params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const folder = result.value;\n\n // Let's set default permissions based on the current user.\n const permissionsWithDefaults = await this.folderLevelPermissions.getDefaultPermissions(\n folder?.permissions ?? []\n );\n\n return Result.ok({\n ...folder,\n permissions: permissionsWithDefaults\n });\n }\n}\n\nexport const CreateFolderWithFolderLevelPermissions = createDecorator({\n abstraction: CreateFolderUseCase,\n decorator: CreateFolderWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,sBAAsB;AAC/B,SAASC,mBAAmB;AAE5B,SAASC,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,wBAAwB;AAEjC,MAAMC,0CAA0C,CAA0C;EAItFC,WAAWA,CACPC,sBAAwD,EACxDC,SAAwC,EAC1C;IACE,IAAI,CAACD,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,MAA0B,EAA8B;IAClE,IAAIC,eAAwB;IAC5B,IAAID,MAAM,CAACE,QAAQ,EAAE;MACjB,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACN,sBAAsB,CAACO,yBAAyB,CAC3EJ,MAAM,CAACE,QACX,CAAC;MACDD,eAAe,GAAG,MAAM,IAAI,CAACJ,sBAAsB,CAACQ,eAAe,CAAC;QAChEF,WAAW;QACXG,GAAG,EAAE;MACT,CAAC,CAAC;IACN,CAAC,MAAM;MACHL,eAAe,GAAG,IAAI,CAACJ,sBAAsB,CAACU,qBAAqB,CAAC,CAAC;IACzE;IAEA,IAAI,CAACN,eAAe,EAAE;MAClB,OAAOR,MAAM,CAACe,IAAI,CAAC,IAAId,wBAAwB,CAAC,CAAC,CAAC;IACtD;IAEA,MAAMe,MAAM,GAAG,MAAM,IAAI,CAACX,SAAS,CAACC,OAAO,CAACC,MAAM,CAAC;IAEnD,IAAIS,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOjB,MAAM,CAACe,IAAI,CAACC,MAAM,CAACE,KAAK,CAAC;IACpC;IAEA,MAAMC,MAAM,GAAGH,MAAM,CAACI,KAAK;;IAE3B;IACA,MAAMC,uBAAuB,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACkB,qBAAqB,CACnFH,MAAM,EAAET,WAAW,IAAI,EAC3B,CAAC;IAED,OAAOV,MAAM,CAACuB,EAAE,CAAC;MACb,GAAGJ,MAAM;MACTT,WAAW,EAAEW;IACjB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,sCAAsC,GAAGzB,eAAe,CAAC;EAClE0B,WAAW,EAAE3B,mBAAmB;EAChC4B,SAAS,EAAExB,0CAA0C;EACrDyB,YAAY,EAAE,CAAC9B,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js","sources":["../../../../../src/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { CreateFolderUseCase } from \"../abstractions.js\";\nimport type { CreateFolderParams } from \"~/folder/folder.types.js\";\nimport { createDecorator, Result } from \"@webiny/feature/api\";\nimport { FolderNotAuthorizedError } from \"~/domain/folder/errors.js\";\n\nclass CreateFolderWithFolderLevelPermissionsImpl implements CreateFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: CreateFolderUseCase.Interface;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: CreateFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(params: CreateFolderParams): CreateFolderUseCase.Return {\n let canCreateFolder: boolean;\n if (params.parentId) {\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n params.parentId\n );\n canCreateFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"w\"\n });\n } else {\n canCreateFolder = this.folderLevelPermissions.canCreateFolderInRoot();\n }\n\n if (!canCreateFolder) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n const result = await this.decoretee.execute(params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const folder = result.value;\n\n // Let's set default permissions based on the current user.\n const permissionsWithDefaults = await this.folderLevelPermissions.getDefaultPermissions(\n folder?.permissions ?? []\n );\n\n return Result.ok({\n ...folder,\n permissions: permissionsWithDefaults\n });\n }\n}\n\nexport const CreateFolderWithFolderLevelPermissions = createDecorator({\n abstraction: CreateFolderUseCase,\n decorator: CreateFolderWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["CreateFolderWithFolderLevelPermissionsImpl","folderLevelPermissions","decoretee","params","canCreateFolder","permissions","Result","FolderNotAuthorizedError","result","folder","permissionsWithDefaults","CreateFolderWithFolderLevelPermissions","createDecorator","CreateFolderUseCase","FolderLevelPermissions"],"mappings":";;;;AAMA,MAAMA;IAIF,YACIC,sBAAwD,EACxDC,SAAwC,CAC1C;QACE,IAAI,CAAC,sBAAsB,GAAGD;QAC9B,IAAI,CAAC,SAAS,GAAGC;IACrB;IAEA,MAAM,QAAQC,MAA0B,EAA8B;QAClE,IAAIC;QACJ,IAAID,OAAO,QAAQ,EAAE;YACjB,MAAME,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAC3EF,OAAO,QAAQ;YAEnBC,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;gBAChEC;gBACA,KAAK;YACT;QACJ,OACID,kBAAkB,IAAI,CAAC,sBAAsB,CAAC,qBAAqB;QAGvE,IAAI,CAACA,iBACD,OAAOE,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACL;QAE5C,IAAIK,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAACE,OAAO,KAAK;QAGnC,MAAMC,SAASD,OAAO,KAAK;QAG3B,MAAME,0BAA0B,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CACnFD,QAAQ,eAAe,EAAE;QAG7B,OAAOH,OAAO,EAAE,CAAC;YACb,GAAGG,MAAM;YACT,aAAaC;QACjB;IACJ;AACJ;AAEO,MAAMC,yCAAyCC,gBAAgB;IAClE,aAAaC;IACb,WAAWb;IACX,cAAc;QAACc;KAAuB;AAC1C"}
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import type { FolderBeforeCreatePayload, FolderAfterCreatePayload } from "./abstractions.js";
3
3
  export declare class FolderBeforeCreateEvent extends DomainEvent<FolderBeforeCreatePayload> {
4
4
  eventType: "folder.beforeCreate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderBeforeCreatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderBeforeCreatePayload>>>;
6
6
  }
7
7
  export declare class FolderAfterCreateEvent extends DomainEvent<FolderAfterCreatePayload> {
8
8
  eventType: "folder.afterCreate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderAfterCreatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderAfterCreatePayload>>>;
10
10
  }
@@ -1,19 +1,21 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { FolderBeforeCreateHandler, FolderAfterCreateHandler } from "./abstractions.js";
3
- // FolderBeforeCreate Event
4
- export class FolderBeforeCreateEvent extends DomainEvent {
5
- eventType = "folder.beforeCreate";
6
- getHandlerAbstraction() {
7
- return FolderBeforeCreateHandler;
8
- }
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { FolderAfterCreateEventHandler, FolderBeforeCreateEventHandler } from "./abstractions.js";
3
+ class FolderBeforeCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return FolderBeforeCreateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "folder.beforeCreate";
9
+ }
9
10
  }
10
-
11
- // FolderAfterCreate Event
12
- export class FolderAfterCreateEvent extends DomainEvent {
13
- eventType = "folder.afterCreate";
14
- getHandlerAbstraction() {
15
- return FolderAfterCreateHandler;
16
- }
11
+ class FolderAfterCreateEvent extends DomainEvent {
12
+ getHandlerAbstraction() {
13
+ return FolderAfterCreateEventHandler;
14
+ }
15
+ constructor(...args){
16
+ super(...args), this.eventType = "folder.afterCreate";
17
+ }
17
18
  }
19
+ export { FolderAfterCreateEvent, FolderBeforeCreateEvent };
18
20
 
19
21
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","FolderBeforeCreateHandler","FolderAfterCreateHandler","FolderBeforeCreateEvent","eventType","getHandlerAbstraction","FolderAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { FolderBeforeCreateHandler, FolderAfterCreateHandler } from \"./abstractions.js\";\nimport type { FolderBeforeCreatePayload, FolderAfterCreatePayload } from \"./abstractions.js\";\n\n// FolderBeforeCreate Event\nexport class FolderBeforeCreateEvent extends DomainEvent<FolderBeforeCreatePayload> {\n eventType = \"folder.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeCreateHandler;\n }\n}\n\n// FolderAfterCreate Event\nexport class FolderAfterCreateEvent extends DomainEvent<FolderAfterCreatePayload> {\n eventType = \"folder.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,yBAAyB,EAAEC,wBAAwB;AAG5D;AACA,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,yBAAyB;EACpC;AACJ;;AAEA;AACA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,wBAAwB;EACnC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/folder/CreateFolder/events.js","sources":["../../../../src/features/folder/CreateFolder/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FolderBeforeCreateEventHandler, FolderAfterCreateEventHandler } from \"./abstractions.js\";\nimport type { FolderBeforeCreatePayload, FolderAfterCreatePayload } from \"./abstractions.js\";\n\n// FolderBeforeCreate Event\nexport class FolderBeforeCreateEvent extends DomainEvent<FolderBeforeCreatePayload> {\n eventType = \"folder.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeCreateEventHandler;\n }\n}\n\n// FolderAfterCreate Event\nexport class FolderAfterCreateEvent extends DomainEvent<FolderAfterCreatePayload> {\n eventType = \"folder.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterCreateEventHandler;\n }\n}\n"],"names":["FolderBeforeCreateEvent","DomainEvent","FolderBeforeCreateEventHandler","FolderAfterCreateEvent","FolderAfterCreateEventHandler"],"mappings":";;AAKO,MAAMA,gCAAgCC;IAGzC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,+BAA+BF;IAGxC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1 +1,5 @@
1
- export declare const CreateFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const CreateFolderFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };