@webiny/api-aco 6.0.0-beta.0 → 6.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/README.md +6 -28
  2. package/constants.d.ts +2 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +4 -2
  6. package/createAcoContext.js +103 -168
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +46 -60
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -5
  12. package/createAcoStorageOperations.js +5 -17
  13. package/createAcoStorageOperations.js.map +1 -1
  14. package/createAcoTasks.d.ts +1 -0
  15. package/createAcoTasks.js +15 -0
  16. package/createAcoTasks.js.map +1 -0
  17. package/domain/folder/abstractions.d.ts +9 -0
  18. package/domain/folder/abstractions.js +8 -0
  19. package/domain/folder/abstractions.js.map +1 -0
  20. package/domain/folder/errors.d.ts +29 -0
  21. package/domain/folder/errors.js +56 -0
  22. package/domain/folder/errors.js.map +1 -0
  23. package/domain/folder/folder.model.d.ts +9 -0
  24. package/domain/folder/folder.model.js +42 -0
  25. package/domain/folder/folder.model.js.map +1 -0
  26. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  29. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  32. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  35. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  38. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  41. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  44. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  47. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  50. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  53. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  56. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  59. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  62. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  65. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  68. package/features/cms/feature.d.ts +1 -0
  69. package/features/cms/feature.js +43 -0
  70. package/features/cms/feature.js.map +1 -0
  71. package/features/cms/index.d.ts +1 -0
  72. package/features/cms/index.js +3 -0
  73. package/features/cms/index.js.map +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +8 -0
  78. package/features/flp/CreateFlp/abstractions.js +7 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +6 -0
  81. package/features/flp/CreateFlp/feature.js +13 -0
  82. package/features/flp/CreateFlp/feature.js.map +1 -0
  83. package/features/flp/CreateFlp/index.d.ts +2 -0
  84. package/features/flp/CreateFlp/index.js +4 -0
  85. package/features/flp/CreateFlp/index.js.map +1 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  88. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
  91. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  93. package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
  94. package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  96. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
  97. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  98. package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
  99. package/features/flp/DeleteFlp/abstractions.js +7 -0
  100. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  101. package/features/flp/DeleteFlp/feature.d.ts +6 -0
  102. package/features/flp/DeleteFlp/feature.js +13 -0
  103. package/features/flp/DeleteFlp/feature.js.map +1 -0
  104. package/features/flp/DeleteFlp/index.d.ts +2 -0
  105. package/features/flp/DeleteFlp/index.js +4 -0
  106. package/features/flp/DeleteFlp/index.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
  112. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  113. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  114. package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
  115. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
  116. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  117. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
  118. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
  121. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  122. package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
  123. package/features/flp/FolderLevelPermissions/feature.js +10 -0
  124. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  125. package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
  126. package/features/flp/FolderLevelPermissions/index.js +4 -0
  127. package/features/flp/FolderLevelPermissions/index.js.map +1 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
  154. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  155. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  156. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
  157. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  158. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  159. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
  160. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  161. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  162. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
  163. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  167. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  168. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
  169. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  170. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  171. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
  172. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  173. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  174. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
  175. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  176. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  177. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
  178. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  179. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  180. package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
  181. package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  182. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  183. package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
  184. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  185. package/features/flp/GetFlp/abstractions.d.ts +8 -0
  186. package/features/flp/GetFlp/abstractions.js +4 -0
  187. package/features/flp/GetFlp/abstractions.js.map +1 -0
  188. package/features/flp/GetFlp/feature.d.ts +1 -0
  189. package/features/flp/GetFlp/feature.js +13 -0
  190. package/features/flp/GetFlp/feature.js.map +1 -0
  191. package/features/flp/GetFlp/index.d.ts +1 -0
  192. package/features/flp/GetFlp/index.js +3 -0
  193. package/features/flp/GetFlp/index.js.map +1 -0
  194. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  195. package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
  196. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  197. package/features/flp/ListFlps/abstractions.d.ts +16 -0
  198. package/features/flp/ListFlps/abstractions.js +4 -0
  199. package/features/flp/ListFlps/abstractions.js.map +1 -0
  200. package/features/flp/ListFlps/feature.d.ts +1 -0
  201. package/features/flp/ListFlps/feature.js +13 -0
  202. package/features/flp/ListFlps/feature.js.map +1 -0
  203. package/features/flp/ListFlps/index.d.ts +1 -0
  204. package/features/flp/ListFlps/index.js +3 -0
  205. package/features/flp/ListFlps/index.js.map +1 -0
  206. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
  207. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
  208. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  209. package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
  210. package/features/flp/UpdateFlp/abstractions.js +7 -0
  211. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  212. package/features/flp/UpdateFlp/feature.d.ts +6 -0
  213. package/features/flp/UpdateFlp/feature.js +13 -0
  214. package/features/flp/UpdateFlp/feature.js.map +1 -0
  215. package/features/flp/UpdateFlp/index.d.ts +2 -0
  216. package/features/flp/UpdateFlp/index.js +4 -0
  217. package/features/flp/UpdateFlp/index.js.map +1 -0
  218. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  219. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  220. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  221. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
  222. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
  223. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  224. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  225. package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
  226. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
  227. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  228. package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
  229. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  230. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  231. package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
  232. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  233. package/features/folder/CreateFolder/abstractions.d.ts +55 -0
  234. package/features/folder/CreateFolder/abstractions.js +21 -0
  235. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  236. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  237. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
  238. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  239. package/features/folder/CreateFolder/events.d.ts +10 -0
  240. package/features/folder/CreateFolder/events.js +19 -0
  241. package/features/folder/CreateFolder/events.js.map +1 -0
  242. package/features/folder/CreateFolder/feature.d.ts +1 -0
  243. package/features/folder/CreateFolder/feature.js +14 -0
  244. package/features/folder/CreateFolder/feature.js.map +1 -0
  245. package/features/folder/CreateFolder/index.d.ts +2 -0
  246. package/features/folder/CreateFolder/index.js +4 -0
  247. package/features/folder/CreateFolder/index.js.map +1 -0
  248. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  249. package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
  250. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  251. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  252. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
  253. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  254. package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
  255. package/features/folder/DeleteFolder/abstractions.js +21 -0
  256. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  257. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  258. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
  259. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  260. package/features/folder/DeleteFolder/events.d.ts +10 -0
  261. package/features/folder/DeleteFolder/events.js +19 -0
  262. package/features/folder/DeleteFolder/events.js.map +1 -0
  263. package/features/folder/DeleteFolder/feature.d.ts +1 -0
  264. package/features/folder/DeleteFolder/feature.js +14 -0
  265. package/features/folder/DeleteFolder/feature.js.map +1 -0
  266. package/features/folder/DeleteFolder/index.d.ts +2 -0
  267. package/features/folder/DeleteFolder/index.js +4 -0
  268. package/features/folder/DeleteFolder/index.js.map +1 -0
  269. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  270. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
  271. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  272. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
  273. package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
  274. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  275. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
  276. package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
  277. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  278. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  279. package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
  280. package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
  281. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  282. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
  283. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  284. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
  285. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
  286. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  287. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  288. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
  289. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
  290. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  291. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
  292. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  293. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
  294. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
  295. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  296. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  297. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
  298. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
  299. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  300. package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
  301. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  302. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  303. package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
  304. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  305. package/features/folder/GetAncestors/abstractions.d.ts +38 -0
  306. package/features/folder/GetAncestors/abstractions.js +15 -0
  307. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  308. package/features/folder/GetAncestors/feature.d.ts +1 -0
  309. package/features/folder/GetAncestors/feature.js +12 -0
  310. package/features/folder/GetAncestors/feature.js.map +1 -0
  311. package/features/folder/GetAncestors/index.d.ts +2 -0
  312. package/features/folder/GetAncestors/index.js +4 -0
  313. package/features/folder/GetAncestors/index.js.map +1 -0
  314. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  315. package/features/folder/GetFolder/GetFolderRepository.js +31 -0
  316. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  317. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  318. package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
  319. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  320. package/features/folder/GetFolder/abstractions.d.ts +54 -0
  321. package/features/folder/GetFolder/abstractions.js +21 -0
  322. package/features/folder/GetFolder/abstractions.js.map +1 -0
  323. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  324. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
  325. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  326. package/features/folder/GetFolder/feature.d.ts +1 -0
  327. package/features/folder/GetFolder/feature.js +14 -0
  328. package/features/folder/GetFolder/feature.js.map +1 -0
  329. package/features/folder/GetFolder/index.d.ts +2 -0
  330. package/features/folder/GetFolder/index.js +4 -0
  331. package/features/folder/GetFolder/index.js.map +1 -0
  332. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  333. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
  334. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  335. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  336. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
  337. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  338. package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
  339. package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
  340. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  341. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  342. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
  343. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  344. package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
  345. package/features/folder/GetFolderHierarchy/feature.js +14 -0
  346. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  347. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  348. package/features/folder/GetFolderHierarchy/index.js +4 -0
  349. package/features/folder/GetFolderHierarchy/index.js.map +1 -0
  350. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  351. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
  352. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  353. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
  354. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
  355. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  356. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
  357. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
  358. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  359. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  360. package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
  361. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  362. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  363. package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
  364. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  365. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  366. package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
  367. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  368. package/features/folder/ListFolders/abstractions.d.ts +42 -0
  369. package/features/folder/ListFolders/abstractions.js +15 -0
  370. package/features/folder/ListFolders/abstractions.js.map +1 -0
  371. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  372. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
  373. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  374. package/features/folder/ListFolders/feature.d.ts +1 -0
  375. package/features/folder/ListFolders/feature.js +14 -0
  376. package/features/folder/ListFolders/feature.js.map +1 -0
  377. package/features/folder/ListFolders/index.d.ts +2 -0
  378. package/features/folder/ListFolders/index.js +4 -0
  379. package/features/folder/ListFolders/index.js.map +1 -0
  380. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  381. package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
  382. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  383. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  384. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
  385. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  386. package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
  387. package/features/folder/UpdateFolder/abstractions.js +21 -0
  388. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  389. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  390. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
  391. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  392. package/features/folder/UpdateFolder/events.d.ts +10 -0
  393. package/features/folder/UpdateFolder/events.js +19 -0
  394. package/features/folder/UpdateFolder/events.js.map +1 -0
  395. package/features/folder/UpdateFolder/feature.d.ts +1 -0
  396. package/features/folder/UpdateFolder/feature.js +14 -0
  397. package/features/folder/UpdateFolder/feature.js.map +1 -0
  398. package/features/folder/UpdateFolder/index.d.ts +2 -0
  399. package/features/folder/UpdateFolder/index.js +4 -0
  400. package/features/folder/UpdateFolder/index.js.map +1 -0
  401. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  402. package/features/folder/shared/EntryToFolderMapper.js +22 -0
  403. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  404. package/features/folder/shared/abstractions.d.ts +5 -0
  405. package/features/folder/shared/abstractions.js +4 -0
  406. package/features/folder/shared/abstractions.js.map +1 -0
  407. package/filter/filter.crud.d.ts +2 -2
  408. package/filter/filter.crud.js +6 -67
  409. package/filter/filter.crud.js.map +1 -1
  410. package/filter/filter.gql.d.ts +2 -2
  411. package/filter/filter.gql.js +16 -22
  412. package/filter/filter.gql.js.map +1 -1
  413. package/filter/filter.model.d.ts +9 -2
  414. package/filter/filter.model.js +38 -121
  415. package/filter/filter.model.js.map +1 -1
  416. package/filter/filter.so.d.ts +2 -2
  417. package/filter/filter.so.js +38 -32
  418. package/filter/filter.so.js.map +1 -1
  419. package/filter/filter.types.d.ts +4 -32
  420. package/filter/filter.types.js +1 -7
  421. package/filter/filter.types.js.map +1 -1
  422. package/flp/flp.crud.d.ts +7 -0
  423. package/flp/flp.crud.js +91 -0
  424. package/flp/flp.crud.js.map +1 -0
  425. package/flp/flp.so.d.ts +20 -0
  426. package/flp/flp.so.js +220 -0
  427. package/flp/flp.so.js.map +1 -0
  428. package/flp/flp.types.d.ts +93 -0
  429. package/flp/flp.types.js +3 -0
  430. package/flp/flp.types.js.map +1 -0
  431. package/flp/index.d.ts +3 -0
  432. package/flp/index.js +5 -0
  433. package/flp/index.js.map +1 -0
  434. package/flp/tasks/createFlp.task.d.ts +16 -0
  435. package/flp/tasks/createFlp.task.js +35 -0
  436. package/flp/tasks/createFlp.task.js.map +1 -0
  437. package/flp/tasks/deleteFlp.task.d.ts +16 -0
  438. package/flp/tasks/deleteFlp.task.js +35 -0
  439. package/flp/tasks/deleteFlp.task.js.map +1 -0
  440. package/flp/tasks/index.d.ts +5 -0
  441. package/flp/tasks/index.js +19 -0
  442. package/flp/tasks/index.js.map +1 -0
  443. package/flp/tasks/syncFlp.task.d.ts +20 -0
  444. package/flp/tasks/syncFlp.task.js +127 -0
  445. package/flp/tasks/syncFlp.task.js.map +1 -0
  446. package/flp/tasks/updateFlp.task.d.ts +16 -0
  447. package/flp/tasks/updateFlp.task.js +40 -0
  448. package/flp/tasks/updateFlp.task.js.map +1 -0
  449. package/folder/createFolderModelModifier.d.ts +36 -0
  450. package/folder/createFolderModelModifier.js +61 -0
  451. package/folder/createFolderModelModifier.js.map +1 -0
  452. package/folder/createFolderTypeDefs.d.ts +7 -0
  453. package/folder/createFolderTypeDefs.js +186 -0
  454. package/folder/createFolderTypeDefs.js.map +1 -0
  455. package/folder/folder.gql.d.ts +4 -3
  456. package/folder/folder.gql.js +143 -185
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +40 -79
  459. package/folder/folder.types.js +1 -5
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +5 -6
  462. package/index.js +7 -62
  463. package/index.js.map +1 -1
  464. package/package.json +43 -40
  465. package/types.d.ts +22 -76
  466. package/types.js +2 -53
  467. package/types.js.map +1 -1
  468. package/utils/FoldersCacheFactory.d.ts +10 -0
  469. package/utils/FoldersCacheFactory.js +24 -0
  470. package/utils/FoldersCacheFactory.js.map +1 -0
  471. package/utils/ListCache.d.ts +23 -0
  472. package/utils/ListCache.js +23 -0
  473. package/utils/ListCache.js.map +1 -0
  474. package/utils/Path.d.ts +3 -0
  475. package/utils/Path.js +11 -0
  476. package/utils/Path.js.map +1 -0
  477. package/utils/acoRecordId.js +2 -10
  478. package/utils/acoRecordId.js.map +1 -1
  479. package/utils/compress.d.ts +4 -0
  480. package/utils/compress.js +12 -0
  481. package/utils/compress.js.map +1 -0
  482. package/utils/createListSort.d.ts +3 -2
  483. package/utils/createListSort.js +4 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +7 -12
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +70 -98
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  491. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  494. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  495. package/utils/decorators/ListEntriesFactory.js +106 -0
  496. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  497. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  498. package/utils/decorators/hasRootFolderId.js +19 -0
  499. package/utils/decorators/hasRootFolderId.js.map +1 -0
  500. package/utils/decorators/isPageModel.d.ts +1 -1
  501. package/utils/decorators/isPageModel.js +1 -8
  502. package/utils/decorators/isPageModel.js.map +1 -1
  503. package/utils/ensureAuthentication.d.ts +2 -2
  504. package/utils/ensureAuthentication.js +8 -12
  505. package/utils/ensureAuthentication.js.map +1 -1
  506. package/utils/pickEntryFieldValues.d.ts +1 -1
  507. package/utils/pickEntryFieldValues.js +3 -10
  508. package/utils/pickEntryFieldValues.js.map +1 -1
  509. package/utils/resolve.d.ts +1 -2
  510. package/utils/resolve.js +4 -20
  511. package/utils/resolve.js.map +1 -1
  512. package/apps/AcoApp.d.ts +0 -21
  513. package/apps/AcoApp.js +0 -143
  514. package/apps/AcoApp.js.map +0 -1
  515. package/apps/AcoApps.d.ts +0 -10
  516. package/apps/AcoApps.js +0 -75
  517. package/apps/AcoApps.js.map +0 -1
  518. package/apps/app.gql.d.ts +0 -3
  519. package/apps/app.gql.js +0 -59
  520. package/apps/app.gql.js.map +0 -1
  521. package/apps/index.d.ts +0 -2
  522. package/apps/index.js +0 -29
  523. package/apps/index.js.map +0 -1
  524. package/createAcoHooks.d.ts +0 -2
  525. package/createAcoHooks.js +0 -17
  526. package/createAcoHooks.js.map +0 -1
  527. package/createAcoModels.d.ts +0 -2
  528. package/createAcoModels.js +0 -29
  529. package/createAcoModels.js.map +0 -1
  530. package/folder/folder.crud.d.ts +0 -10
  531. package/folder/folder.crud.js +0 -306
  532. package/folder/folder.crud.js.map +0 -1
  533. package/folder/folder.model.d.ts +0 -2
  534. package/folder/folder.model.js +0 -110
  535. package/folder/folder.model.js.map +0 -1
  536. package/folder/folder.so.d.ts +0 -3
  537. package/folder/folder.so.js +0 -170
  538. package/folder/folder.so.js.map +0 -1
  539. package/folder/onFolderBeforeDeleteAco.hook.d.ts +0 -2
  540. package/folder/onFolderBeforeDeleteAco.hook.js +0 -67
  541. package/folder/onFolderBeforeDeleteAco.hook.js.map +0 -1
  542. package/folder/onFolderBeforeDeleteFm.hook.d.ts +0 -2
  543. package/folder/onFolderBeforeDeleteFm.hook.js +0 -49
  544. package/folder/onFolderBeforeDeleteFm.hook.js.map +0 -1
  545. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +0 -2
  546. package/folder/onFolderBeforeDeleteHcms.hook.js +0 -56
  547. package/folder/onFolderBeforeDeleteHcms.hook.js.map +0 -1
  548. package/plugins/AcoAppModifierPlugin.d.ts +0 -43
  549. package/plugins/AcoAppModifierPlugin.js +0 -58
  550. package/plugins/AcoAppModifierPlugin.js.map +0 -1
  551. package/plugins/AcoAppRegisterPlugin.d.ts +0 -8
  552. package/plugins/AcoAppRegisterPlugin.js +0 -21
  553. package/plugins/AcoAppRegisterPlugin.js.map +0 -1
  554. package/plugins/index.d.ts +0 -2
  555. package/plugins/index.js +0 -29
  556. package/plugins/index.js.map +0 -1
  557. package/record/graphql/createAppResolvers.d.ts +0 -14
  558. package/record/graphql/createAppResolvers.js +0 -115
  559. package/record/graphql/createAppResolvers.js.map +0 -1
  560. package/record/graphql/createAppSchema.d.ts +0 -9
  561. package/record/graphql/createAppSchema.js +0 -146
  562. package/record/graphql/createAppSchema.js.map +0 -1
  563. package/record/record.crud.d.ts +0 -3
  564. package/record/record.crud.js +0 -128
  565. package/record/record.crud.js.map +0 -1
  566. package/record/record.gql.d.ts +0 -8
  567. package/record/record.gql.js +0 -43
  568. package/record/record.gql.js.map +0 -1
  569. package/record/record.model.d.ts +0 -8
  570. package/record/record.model.js +0 -91
  571. package/record/record.model.js.map +0 -1
  572. package/record/record.so.d.ts +0 -3
  573. package/record/record.so.js +0 -147
  574. package/record/record.so.js.map +0 -1
  575. package/record/record.types.d.ts +0 -144
  576. package/record/record.types.js +0 -7
  577. package/record/record.types.js.map +0 -1
  578. package/utils/FolderLevelPermissions.d.ts +0 -74
  579. package/utils/FolderLevelPermissions.js +0 -386
  580. package/utils/FolderLevelPermissions.js.map +0 -1
  581. package/utils/createModelField.d.ts +0 -5
  582. package/utils/createModelField.js +0 -39
  583. package/utils/createModelField.js.map +0 -1
  584. package/utils/decorators/constants.d.ts +0 -1
  585. package/utils/decorators/constants.js +0 -9
  586. package/utils/decorators/constants.js.map +0 -1
  587. package/utils/decorators/createFolderType.d.ts +0 -2
  588. package/utils/decorators/createFolderType.js +0 -18
  589. package/utils/decorators/createFolderType.js.map +0 -1
  590. package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +0 -23
  591. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +0 -47
  592. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +0 -1
  593. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  594. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  595. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  596. package/utils/decorators/where.d.ts +0 -15
  597. package/utils/decorators/where.js +0 -60
  598. package/utils/decorators/where.js.map +0 -1
  599. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  600. package/utils/getFolderAndItsAncestors.js +0 -53
  601. package/utils/getFolderAndItsAncestors.js.map +0 -1
  602. package/utils/modelFactory.d.ts +0 -13
  603. package/utils/modelFactory.js +0 -22
  604. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListFoldersRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
4
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
5
+ import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
6
+ import { FolderPersistenceError } from "../../../domain/folder/errors.js";
7
+ import { createListSort } from "../../../utils/createListSort.js";
8
+ import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ class ListFoldersRepositoryImpl {
10
+ constructor(listLatestEntries, folderModel, cmsWhereMapper, cmsSortMapper) {
11
+ this.listLatestEntries = listLatestEntries;
12
+ this.folderModel = folderModel;
13
+ this.cmsWhereMapper = cmsWhereMapper;
14
+ this.cmsSortMapper = cmsSortMapper;
15
+ }
16
+ async execute(params) {
17
+ const {
18
+ sort,
19
+ where
20
+ } = params;
21
+ const listSort = sort || {
22
+ values_title: "ASC"
23
+ };
24
+ const result = await this.listLatestEntries.execute(this.folderModel, {
25
+ ...params,
26
+ sort: this.cmsSortMapper.map({
27
+ input: createListSort(listSort),
28
+ fields: this.folderModel.fields
29
+ }),
30
+ where: this.cmsWhereMapper.map({
31
+ input: where,
32
+ fields: this.folderModel.fields
33
+ })
34
+ });
35
+ if (result.isFail()) {
36
+ return Result.fail(new FolderPersistenceError(result.error));
37
+ }
38
+ const {
39
+ entries,
40
+ meta
41
+ } = result.value;
42
+ const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));
43
+ return Result.ok({
44
+ folders,
45
+ meta
46
+ });
47
+ }
48
+ }
49
+ export const ListFoldersRepository = RepositoryAbstraction.createImplementation({
50
+ implementation: ListFoldersRepositoryImpl,
51
+ dependencies: [ListLatestEntriesUseCase, FolderModel, CmsWhereMapper, CmsSortMapper]
52
+ });
53
+
54
+ //# sourceMappingURL=ListFoldersRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","ListFoldersRepository","RepositoryAbstraction","ListLatestEntriesUseCase","FolderModel","EntryToFolderMapper","FolderPersistenceError","createListSort","CmsSortMapper","CmsWhereMapper","ListFoldersRepositoryImpl","constructor","listLatestEntries","folderModel","cmsWhereMapper","cmsSortMapper","execute","params","sort","where","listSort","values_title","result","map","input","fields","isFail","fail","error","entries","meta","value","folders","entry","toFolder","ok","createImplementation","implementation","dependencies"],"sources":["ListFoldersRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type IListFoldersRepository,\n ListFoldersRepository as RepositoryAbstraction\n} from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport type { ListSort } from \"~/types.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListFoldersRepositoryImpl implements IListFoldersRepository {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface,\n private cmsSortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: ListFoldersParams): RepositoryAbstraction.Return {\n const { sort, where } = params;\n\n const listSort =\n sort ||\n ({\n values_title: \"ASC\"\n } as unknown as ListSort);\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n ...params,\n sort: this.cmsSortMapper.map({\n input: createListSort(listSort),\n fields: this.folderModel.fields\n }),\n where: this.cmsWhereMapper.map({\n input: where,\n fields: this.folderModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const folders = entries.map(entry => EntryToFolderMapper.toFolder(entry));\n return Result.ok({ folders, meta });\n }\n}\n\nexport const ListFoldersRepository = RepositoryAbstraction.createImplementation({\n implementation: ListFoldersRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, FolderModel, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAEIC,qBAAqB,IAAIC,qBAAqB;AAElD,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,WAAW;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,cAAc;AAEvB,SAASC,aAAa,EAAEC,cAAc,QAAQ,0BAA0B;AAExE,MAAMC,yBAAyB,CAAmC;EAC9DC,WAAWA,CACCC,iBAAqD,EACrDC,WAAkC,EAClCC,cAAwC,EACxCC,aAAsC,EAChD;IAAA,KAJUH,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,WAAkC,GAAlCA,WAAkC;IAAA,KAClCC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEH,MAAMC,OAAOA,CAACC,MAAyB,EAAgC;IACnE,MAAM;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE9B,MAAMG,QAAQ,GACVF,IAAI,IACH;MACGG,YAAY,EAAE;IAClB,CAAyB;IAE7B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACV,iBAAiB,CAACI,OAAO,CAAiB,IAAI,CAACH,WAAW,EAAE;MAClF,GAAGI,MAAM;MACTC,IAAI,EAAE,IAAI,CAACH,aAAa,CAACQ,GAAG,CAAC;QACzBC,KAAK,EAAEjB,cAAc,CAACa,QAAQ,CAAC;QAC/BK,MAAM,EAAE,IAAI,CAACZ,WAAW,CAACY;MAC7B,CAAC,CAAC;MACFN,KAAK,EAAE,IAAI,CAACL,cAAc,CAACS,GAAG,CAAC;QAC3BC,KAAK,EAAEL,KAAK;QACZM,MAAM,EAAE,IAAI,CAACZ,WAAW,CAACY;MAC7B,CAAC;IACL,CAAC,CAAC;IAEF,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAIrB,sBAAsB,CAACgB,MAAM,CAACM,KAAK,CAAC,CAAC;IAChE;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGR,MAAM,CAACS,KAAK;IACtC,MAAMC,OAAO,GAAGH,OAAO,CAACN,GAAG,CAACU,KAAK,IAAI5B,mBAAmB,CAAC6B,QAAQ,CAACD,KAAK,CAAC,CAAC;IACzE,OAAOjC,MAAM,CAACmC,EAAE,CAAC;MAAEH,OAAO;MAAEF;IAAK,CAAC,CAAC;EACvC;AACJ;AAEA,OAAO,MAAM7B,qBAAqB,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EAC5EC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACnC,wBAAwB,EAAEC,WAAW,EAAEK,cAAc,EAAED,aAAa;AACvF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from "./abstractions.js";
2
+ import type { ListFoldersParams } from "../../../folder/folder.types.js";
3
+ declare class ListFoldersUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private repository;
5
+ constructor(repository: ListFoldersRepository.Interface);
6
+ execute(params: ListFoldersParams): UseCaseAbstraction.Return;
7
+ }
8
+ export declare const ListFoldersUseCase: import("@webiny/di").Implementation<typeof ListFoldersUseCaseImpl>;
9
+ export {};
@@ -0,0 +1,17 @@
1
+ import { createImplementation } from "@webiny/feature/api";
2
+ import { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from "./abstractions.js";
3
+ class ListFoldersUseCaseImpl {
4
+ constructor(repository) {
5
+ this.repository = repository;
6
+ }
7
+ async execute(params) {
8
+ return await this.repository.execute(params);
9
+ }
10
+ }
11
+ export const ListFoldersUseCase = createImplementation({
12
+ abstraction: UseCaseAbstraction,
13
+ implementation: ListFoldersUseCaseImpl,
14
+ dependencies: [ListFoldersRepository]
15
+ });
16
+
17
+ //# sourceMappingURL=ListFoldersUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImplementation","ListFoldersUseCase","UseCaseAbstraction","ListFoldersRepository","ListFoldersUseCaseImpl","constructor","repository","execute","params","abstraction","implementation","dependencies"],"sources":["ListFoldersUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { ListFoldersUseCase as UseCaseAbstraction, ListFoldersRepository } from \"./abstractions.js\";\nimport type { ListFoldersParams } from \"~/folder/folder.types.js\";\n\nclass ListFoldersUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListFoldersRepository.Interface) {}\n\n async execute(params: ListFoldersParams): UseCaseAbstraction.Return {\n return await this.repository.execute(params);\n }\n}\n\nexport const ListFoldersUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListFoldersUseCaseImpl,\n dependencies: [ListFoldersRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AAGxE,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,UAA2C,EAAE;IAAA,KAA7CA,UAA2C,GAA3CA,UAA2C;EAAG;EAElE,MAAMC,OAAOA,CAACC,MAAyB,EAA6B;IAChE,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMP,kBAAkB,GAAGD,oBAAoB,CAAC;EACnDS,WAAW,EAAEP,kBAAkB;EAC/BQ,cAAc,EAAEN,sBAAsB;EACtCO,YAAY,EAAE,CAACR,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { Folder, ListFoldersParams } from "../../../folder/folder.types.js";
3
+ import type { ListMeta } from "../../../types.js";
4
+ import type { FolderNotAuthorizedError, FolderPersistenceError } from "../../../domain/folder/errors.js";
5
+ interface IListFoldersResult {
6
+ folders: Folder[];
7
+ meta: ListMeta;
8
+ }
9
+ /**
10
+ * ListFolders repository interface
11
+ */
12
+ export interface IListFoldersRepository {
13
+ execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;
14
+ }
15
+ export interface IListFoldersRepositoryErrors {
16
+ persistence: FolderPersistenceError;
17
+ }
18
+ type RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];
19
+ export declare const ListFoldersRepository: import("@webiny/di").Abstraction<IListFoldersRepository>;
20
+ export declare namespace ListFoldersRepository {
21
+ type Interface = IListFoldersRepository;
22
+ type Return = Promise<Result<IListFoldersResult, RepositoryError>>;
23
+ type Error = RepositoryError;
24
+ }
25
+ /**
26
+ * ListFolders use case interface
27
+ */
28
+ export interface IListFoldersUseCase {
29
+ execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;
30
+ }
31
+ export interface IListFoldersUseCaseErrors {
32
+ notAuthorized: FolderNotAuthorizedError;
33
+ persistence: FolderPersistenceError;
34
+ }
35
+ type UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];
36
+ export declare const ListFoldersUseCase: import("@webiny/di").Abstraction<IListFoldersUseCase>;
37
+ export declare namespace ListFoldersUseCase {
38
+ type Interface = IListFoldersUseCase;
39
+ type Return = Promise<Result<IListFoldersResult, UseCaseError>>;
40
+ type Error = UseCaseError;
41
+ }
42
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * ListFolders repository interface
5
+ */
6
+
7
+ export const ListFoldersRepository = createAbstraction("ListFoldersRepository");
8
+
9
+ /**
10
+ * ListFolders use case interface
11
+ */
12
+
13
+ export const ListFoldersUseCase = createAbstraction("ListFoldersUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","ListFoldersRepository","ListFoldersUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport type { ListMeta } from \"~/types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\ninterface IListFoldersResult {\n folders: Folder[];\n meta: ListMeta;\n}\n\n/**\n * ListFolders repository interface\n */\nexport interface IListFoldersRepository {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;\n}\n\nexport interface IListFoldersRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];\n\nexport const ListFoldersRepository =\n createAbstraction<IListFoldersRepository>(\"ListFoldersRepository\");\n\nexport namespace ListFoldersRepository {\n export type Interface = IListFoldersRepository;\n export type Return = Promise<Result<IListFoldersResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFolders use case interface\n */\nexport interface IListFoldersUseCase {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;\n}\n\nexport interface IListFoldersUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];\n\nexport const ListFoldersUseCase = createAbstraction<IListFoldersUseCase>(\"ListFoldersUseCase\");\n\nexport namespace ListFoldersUseCase {\n export type Interface = IListFoldersUseCase;\n export type Return = Promise<Result<IListFoldersResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAWA,OAAO,MAAMC,qBAAqB,GAC9BD,iBAAiB,CAAyB,uBAAuB,CAAC;;AAQtE;AACA;AACA;;AAYA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import type { ListFoldersParams } from "../../../../folder/folder.types.js";
2
+ import { ListFoldersUseCase } from "../abstractions.js";
3
+ import { FolderLevelPermissions } from "../../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListFoldersWithFolderLevelPermissionsImpl implements ListFoldersUseCase.Interface {
5
+ private folderLevelPermissions;
6
+ private decoratee;
7
+ private flpCatalog;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListFoldersUseCase.Interface);
9
+ execute(params: ListFoldersParams): ListFoldersUseCase.Return;
10
+ private hasFlp;
11
+ private getFlp;
12
+ private setFlp;
13
+ }
14
+ export declare const ListFoldersWithFolderLevelPermissions: typeof ListFoldersWithFolderLevelPermissionsImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions.js").IListFoldersUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,77 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListFoldersUseCase } from "../abstractions.js";
3
+ import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../../constants.js";
5
+ class ListFoldersWithFolderLevelPermissionsImpl {
6
+ flpCatalog = new Map();
7
+ constructor(folderLevelPermissions, decoratee) {
8
+ this.folderLevelPermissions = folderLevelPermissions;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(params) {
12
+ const result = await this.decoratee.execute(params);
13
+ if (result.isFail()) {
14
+ return Result.fail(result.error);
15
+ }
16
+ const {
17
+ folders,
18
+ meta
19
+ } = result.value;
20
+
21
+ // Fetch FLP records for ROOT folders and populate the catalog.
22
+ const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({
23
+ where: {
24
+ type: params.where.type,
25
+ parentId: ROOT_FOLDER
26
+ }
27
+ });
28
+ rootFlps.forEach(flp => this.setFlp(flp.id, flp.permissions));
29
+
30
+ // Fetch FLP for folders not already in the catalog.
31
+ await Promise.all(folders.map(async folder => {
32
+ if (!this.hasFlp(folder.id)) {
33
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
34
+ this.setFlp(folder.id, permissions);
35
+ }
36
+ }));
37
+
38
+ // Filter folders based on permissions.
39
+ const foldersWithPermissions = await Promise.all(folders.map(async folder => {
40
+ const permissions = this.getFlp(folder.id);
41
+ if (!permissions) {
42
+ return null;
43
+ }
44
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
45
+ permissions,
46
+ rwd: "r"
47
+ });
48
+ if (!canAccessFolder) {
49
+ return null;
50
+ }
51
+ const folderWithFlp = {
52
+ ...folder,
53
+ permissions
54
+ };
55
+ return canAccessFolder ? folderWithFlp : null;
56
+ }));
57
+ return Result.ok({
58
+ folders: foldersWithPermissions.filter(Boolean),
59
+ meta
60
+ });
61
+ }
62
+ hasFlp(id) {
63
+ return this.flpCatalog.has(id);
64
+ }
65
+ getFlp(id) {
66
+ return this.flpCatalog.get(id);
67
+ }
68
+ setFlp(id, permissions) {
69
+ this.flpCatalog.set(id, permissions);
70
+ }
71
+ }
72
+ export const ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({
73
+ decorator: ListFoldersWithFolderLevelPermissionsImpl,
74
+ dependencies: [FolderLevelPermissions]
75
+ });
76
+
77
+ //# sourceMappingURL=ListFoldersWithFolderLevelPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","ListFoldersUseCase","FolderLevelPermissions","ROOT_FOLDER","ListFoldersWithFolderLevelPermissionsImpl","flpCatalog","Map","constructor","folderLevelPermissions","decoratee","execute","params","result","isFail","fail","error","folders","meta","value","rootFlps","listFolderLevelPermissions","where","type","parentId","forEach","flp","setFlp","id","permissions","Promise","all","map","folder","hasFlp","getFolderLevelPermissions","foldersWithPermissions","getFlp","canAccessFolder","rwd","folderWithFlp","ok","filter","Boolean","has","get","set","ListFoldersWithFolderLevelPermissions","createDecorator","decorator","dependencies"],"sources":["ListFoldersWithFolderLevelPermissions.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport { ListFoldersUseCase } from \"../abstractions.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass ListFoldersWithFolderLevelPermissionsImpl implements ListFoldersUseCase.Interface {\n private flpCatalog: Map<string, FolderPermission[]> = new Map();\n\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListFoldersUseCase.Interface\n ) {}\n\n async execute(params: ListFoldersParams): ListFoldersUseCase.Return {\n const result = await this.decoratee.execute(params);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const { folders, meta } = result.value;\n\n // Fetch FLP records for ROOT folders and populate the catalog.\n const rootFlps = await this.folderLevelPermissions.listFolderLevelPermissions({\n where: {\n type: params.where.type,\n parentId: ROOT_FOLDER\n }\n });\n\n rootFlps.forEach(flp => this.setFlp(flp.id, flp.permissions));\n\n // Fetch FLP for folders not already in the catalog.\n await Promise.all(\n folders.map(async folder => {\n if (!this.hasFlp(folder.id)) {\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n folder.id\n );\n this.setFlp(folder.id, permissions);\n }\n })\n );\n\n // Filter folders based on permissions.\n const foldersWithPermissions = await Promise.all(\n folders.map(async folder => {\n const permissions = this.getFlp(folder.id);\n if (!permissions) {\n return null;\n }\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return null;\n }\n\n const folderWithFlp = { ...folder, permissions };\n return canAccessFolder ? folderWithFlp : null;\n })\n );\n\n return Result.ok({ folders: foldersWithPermissions.filter(Boolean) as Folder[], meta });\n }\n\n private hasFlp(id: string): boolean {\n return this.flpCatalog.has(id);\n }\n\n private getFlp(id: string): FolderPermission[] | undefined {\n return this.flpCatalog.get(id);\n }\n\n private setFlp(id: string, permissions: FolderPermission[]): void {\n this.flpCatalog.set(id, permissions);\n }\n}\n\nexport const ListFoldersWithFolderLevelPermissions = ListFoldersUseCase.createDecorator({\n decorator: ListFoldersWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const ListFoldersFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,14 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListFoldersRepository } from "./ListFoldersRepository.js";
3
+ import { ListFoldersUseCase } from "./ListFoldersUseCase.js";
4
+ import { ListFoldersWithFolderLevelPermissions } from "./decorators/ListFoldersWithFolderLevelPermissions.js";
5
+ export const ListFoldersFeature = createFeature({
6
+ name: "ListFolders",
7
+ register(container) {
8
+ container.register(ListFoldersRepository).inSingletonScope();
9
+ container.register(ListFoldersUseCase);
10
+ container.registerDecorator(ListFoldersWithFolderLevelPermissions);
11
+ }
12
+ });
13
+
14
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","ListFoldersRepository","ListFoldersUseCase","ListFoldersWithFolderLevelPermissions","ListFoldersFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { ListFoldersRepository } from \"./ListFoldersRepository.js\";\nimport { ListFoldersUseCase } from \"./ListFoldersUseCase.js\";\nimport { ListFoldersWithFolderLevelPermissions } from \"./decorators/ListFoldersWithFolderLevelPermissions.js\";\n\nexport const ListFoldersFeature = createFeature({\n name: \"ListFolders\",\n register(container: Container) {\n container.register(ListFoldersRepository).inSingletonScope();\n container.register(ListFoldersUseCase);\n container.registerDecorator(ListFoldersWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAC3B,SAASC,qCAAqC;AAE9C,OAAO,MAAMC,kBAAkB,GAAGJ,aAAa,CAAC;EAC5CK,IAAI,EAAE,aAAa;EACnBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,qBAAqB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC5DD,SAAS,CAACD,QAAQ,CAACJ,kBAAkB,CAAC;IACtCK,SAAS,CAACE,iBAAiB,CAACN,qCAAqC,CAAC;EACtE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { ListFoldersFeature } from "./feature.js";
2
+ export { ListFoldersUseCase } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { ListFoldersFeature } from "./feature.js";
2
+ export { ListFoldersUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListFoldersFeature","ListFoldersUseCase"],"sources":["index.ts"],"sourcesContent":["export { ListFoldersFeature } from \"./feature.js\";\nexport { ListFoldersUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,kBAAkB;AAC3B,SAASC,kBAAkB","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { type IUpdateFolderRepository, UpdateFolderRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
4
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
5
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import type { Folder, UpdateFolderParams } from "../../../folder/folder.types.js";
8
+ declare class UpdateFolderRepositoryImpl implements IUpdateFolderRepository {
9
+ private updateEntry;
10
+ private getEntryById;
11
+ private listLatestEntries;
12
+ private folderModel;
13
+ constructor(updateEntry: UpdateEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, folderModel: FolderModel.Interface);
14
+ execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, RepositoryAbstraction.Error>>;
15
+ private checkExistingFolder;
16
+ private createFolderPath;
17
+ }
18
+ export declare const UpdateFolderRepository: typeof UpdateFolderRepositoryImpl & {
19
+ __abstraction: import("@webiny/di").Abstraction<IUpdateFolderRepository>;
20
+ };
21
+ export {};
@@ -0,0 +1,110 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateFolderRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
4
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
5
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
8
+ import { FolderPersistenceError, FolderValidationError } from "../../../domain/folder/errors.js";
9
+ import { Path } from "../../../utils/Path.js";
10
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
11
+ class UpdateFolderRepositoryImpl {
12
+ constructor(updateEntry, getEntryById, listLatestEntries, folderModel) {
13
+ this.updateEntry = updateEntry;
14
+ this.getEntryById = getEntryById;
15
+ this.listLatestEntries = listLatestEntries;
16
+ this.folderModel = folderModel;
17
+ }
18
+ async execute(id, data) {
19
+ const entryId = EntryId.from(id);
20
+
21
+ // Get the original folder
22
+ const originalResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
23
+ if (originalResult.isFail()) {
24
+ return Result.fail(new FolderPersistenceError(originalResult.error));
25
+ }
26
+ const original = EntryToFolderMapper.toFolder(originalResult.value);
27
+
28
+ // Check if folder with new slug already exists
29
+ const checkResult = await this.checkExistingFolder({
30
+ id,
31
+ type: original.type,
32
+ slug: data.slug || original.slug,
33
+ parentId: data.parentId !== undefined ? data.parentId : original.parentId
34
+ });
35
+ if (checkResult.isFail()) {
36
+ return Result.fail(checkResult.error);
37
+ }
38
+
39
+ // Create new path if slug or parentId changed
40
+ const pathResult = await this.createFolderPath({
41
+ slug: data.slug || original.slug,
42
+ parentId: data.parentId !== undefined ? data.parentId : original.parentId
43
+ });
44
+ if (pathResult.isFail()) {
45
+ return Result.fail(pathResult.error);
46
+ }
47
+ const result = await this.updateEntry.execute(this.folderModel, entryId.toString(), {
48
+ values: {
49
+ ...data,
50
+ path: pathResult.value
51
+ }
52
+ });
53
+ if (result.isFail()) {
54
+ return Result.fail(new FolderPersistenceError(result.error));
55
+ }
56
+ const updatedFolder = EntryToFolderMapper.toFolder(result.value);
57
+ return Result.ok(updatedFolder);
58
+ }
59
+ async checkExistingFolder(params) {
60
+ const {
61
+ id,
62
+ type,
63
+ slug,
64
+ parentId
65
+ } = params;
66
+ const result = await this.listLatestEntries.execute(this.folderModel, {
67
+ where: {
68
+ latest: true,
69
+ entryId_not: id,
70
+ values: {
71
+ type,
72
+ slug,
73
+ parentId
74
+ }
75
+ },
76
+ limit: 1
77
+ });
78
+ if (result.isFail()) {
79
+ return Result.fail(new FolderPersistenceError(result.error));
80
+ }
81
+ const {
82
+ entries
83
+ } = result.value;
84
+ if (entries.length > 0) {
85
+ return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
86
+ }
87
+ return Result.ok();
88
+ }
89
+ async createFolderPath(params) {
90
+ const {
91
+ slug,
92
+ parentId
93
+ } = params;
94
+ if (!parentId) {
95
+ return Result.ok(Path.create(slug));
96
+ }
97
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
98
+ if (parentResult.isFail()) {
99
+ return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
100
+ }
101
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
102
+ return Result.ok(Path.create(slug, parentFolder.path));
103
+ }
104
+ }
105
+ export const UpdateFolderRepository = RepositoryAbstraction.createImplementation({
106
+ implementation: UpdateFolderRepositoryImpl,
107
+ dependencies: [UpdateEntryUseCase, GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]
108
+ });
109
+
110
+ //# sourceMappingURL=UpdateFolderRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","UpdateFolderRepository","RepositoryAbstraction","UpdateEntryUseCase","GetEntryByIdUseCase","ListLatestEntriesUseCase","FolderModel","EntryToFolderMapper","FolderPersistenceError","FolderValidationError","Path","EntryId","UpdateFolderRepositoryImpl","constructor","updateEntry","getEntryById","listLatestEntries","folderModel","execute","id","data","entryId","from","originalResult","toString","isFail","fail","error","original","toFolder","value","checkResult","checkExistingFolder","type","slug","parentId","undefined","pathResult","createFolderPath","result","values","path","updatedFolder","ok","params","where","latest","entryId_not","limit","entries","length","create","parentResult","Error","parentFolder","createImplementation","implementation","dependencies"],"sources":["UpdateFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n type IUpdateFolderRepository,\n UpdateFolderRepository as RepositoryAbstraction\n} from \"./abstractions.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder, UpdateFolderParams } 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 UpdateFolderRepositoryImpl implements IUpdateFolderRepository {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n id: string,\n data: UpdateFolderParams\n ): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n const entryId = EntryId.from(id);\n\n // Get the original folder\n const originalResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (originalResult.isFail()) {\n return Result.fail(new FolderPersistenceError(originalResult.error));\n }\n\n const original = EntryToFolderMapper.toFolder(originalResult.value);\n\n // Check if folder with new slug already exists\n const checkResult = await this.checkExistingFolder({\n id,\n type: original.type,\n slug: data.slug || original.slug,\n parentId: data.parentId !== undefined ? data.parentId : original.parentId\n });\n\n if (checkResult.isFail()) {\n return Result.fail(checkResult.error);\n }\n\n // Create new path if slug or parentId changed\n const pathResult = await this.createFolderPath({\n slug: data.slug || original.slug,\n parentId: data.parentId !== undefined ? data.parentId : original.parentId\n });\n\n if (pathResult.isFail()) {\n return Result.fail(pathResult.error);\n }\n\n const result = await this.updateEntry.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString(),\n {\n values: {\n ...data,\n path: pathResult.value\n }\n }\n );\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const updatedFolder = EntryToFolderMapper.toFolder(result.value);\n return Result.ok(updatedFolder);\n }\n\n private async checkExistingFolder(params: {\n id: string;\n type: string;\n slug: string;\n parentId?: string | null;\n }): Promise<Result<void, RepositoryAbstraction.Error>> {\n const { id, type, slug, parentId } = params;\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n latest: true,\n entryId_not: id,\n values: {\n type,\n slug,\n parentId\n }\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 UpdateFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateFolderRepositoryImpl,\n dependencies: [UpdateEntryUseCase, GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
3
+ import { UpdateFolderRepository, UpdateFolderUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { GetFolderRepository } from "../GetFolder/abstractions.js";
5
+ import type { Folder, UpdateFolderParams } from "../../../folder/folder.types.js";
6
+ declare class UpdateFolderUseCaseImpl implements UseCaseAbstraction.Interface {
7
+ private eventPublisher;
8
+ private getFolderRepository;
9
+ private repository;
10
+ constructor(eventPublisher: EventPublisherAbstraction.Interface, getFolderRepository: GetFolderRepository.Interface, repository: UpdateFolderRepository.Interface);
11
+ execute(id: string, input: UpdateFolderParams): Promise<Result<Folder, UseCaseAbstraction.Error>>;
12
+ }
13
+ export declare const UpdateFolderUseCase: import("@webiny/di").Implementation<typeof UpdateFolderUseCaseImpl>;
14
+ export {};
@@ -0,0 +1,55 @@
1
+ import { createImplementation, Result } from "@webiny/feature/api";
2
+ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
3
+ import { UpdateFolderRepository, UpdateFolderUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { GetFolderRepository } from "../GetFolder/abstractions.js";
5
+ import { FolderAfterUpdateEvent, FolderBeforeUpdateEvent } from "./events.js";
6
+ class UpdateFolderUseCaseImpl {
7
+ constructor(eventPublisher, getFolderRepository, repository) {
8
+ this.eventPublisher = eventPublisher;
9
+ this.getFolderRepository = getFolderRepository;
10
+ this.repository = repository;
11
+ }
12
+ async execute(id, input) {
13
+ const useCaseInput = {
14
+ id,
15
+ data: input
16
+ };
17
+
18
+ // Get original folder for events
19
+ const originalResult = await this.getFolderRepository.execute(id);
20
+ if (originalResult.isFail()) {
21
+ return originalResult;
22
+ }
23
+ const original = originalResult.value;
24
+
25
+ // Publish before update event
26
+ const beforeUpdateEvent = new FolderBeforeUpdateEvent({
27
+ original,
28
+ input: useCaseInput
29
+ });
30
+ await this.eventPublisher.publish(beforeUpdateEvent);
31
+
32
+ // Execute the update operation
33
+ const result = await this.repository.execute(id, input);
34
+ if (result.isFail()) {
35
+ return result;
36
+ }
37
+ const folder = result.value;
38
+
39
+ // Publish after update event
40
+ const afterUpdateEvent = new FolderAfterUpdateEvent({
41
+ original,
42
+ folder,
43
+ input: useCaseInput
44
+ });
45
+ await this.eventPublisher.publish(afterUpdateEvent);
46
+ return Result.ok(folder);
47
+ }
48
+ }
49
+ export const UpdateFolderUseCase = createImplementation({
50
+ abstraction: UseCaseAbstraction,
51
+ implementation: UpdateFolderUseCaseImpl,
52
+ dependencies: [EventPublisher, GetFolderRepository, UpdateFolderRepository]
53
+ });
54
+
55
+ //# sourceMappingURL=UpdateFolderUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImplementation","Result","EventPublisher","UpdateFolderRepository","UpdateFolderUseCase","UseCaseAbstraction","GetFolderRepository","FolderAfterUpdateEvent","FolderBeforeUpdateEvent","UpdateFolderUseCaseImpl","constructor","eventPublisher","getFolderRepository","repository","execute","id","input","useCaseInput","data","originalResult","isFail","original","value","beforeUpdateEvent","publish","result","folder","afterUpdateEvent","ok","abstraction","implementation","dependencies"],"sources":["UpdateFolderUseCase.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateFolderRepository,\n UpdateFolderUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { GetFolderRepository } from \"../GetFolder/abstractions.js\";\nimport { FolderAfterUpdateEvent, FolderBeforeUpdateEvent } from \"./events.js\";\nimport type { Folder, UpdateFolderParams } from \"~/folder/folder.types.js\";\n\nclass UpdateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getFolderRepository: GetFolderRepository.Interface,\n private repository: UpdateFolderRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateFolderParams\n ): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n const useCaseInput = { id, data: input };\n\n // Get original folder for events\n const originalResult = await this.getFolderRepository.execute(id);\n\n if (originalResult.isFail()) {\n return originalResult;\n }\n\n const original = originalResult.value;\n\n // Publish before update event\n const beforeUpdateEvent = new FolderBeforeUpdateEvent({\n original,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, input);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after update event\n const afterUpdateEvent = new FolderAfterUpdateEvent({\n original,\n folder,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(afterUpdateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const UpdateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateFolderUseCaseImpl,\n dependencies: [EventPublisher, GetFolderRepository, UpdateFolderRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,MAAM,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,sBAAsB,EACtBC,mBAAmB,IAAIC,kBAAkB;AAE7C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB,EAAEC,uBAAuB;AAGxD,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,cAAmD,EACnDC,mBAAkD,EAClDC,UAA4C,EACtD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAyB,EACwB;IACjD,MAAMC,YAAY,GAAG;MAAEF,EAAE;MAAEG,IAAI,EAAEF;IAAM,CAAC;;IAExC;IACA,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACP,mBAAmB,CAACE,OAAO,CAACC,EAAE,CAAC;IAEjE,IAAII,cAAc,CAACC,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOD,cAAc;IACzB;IAEA,MAAME,QAAQ,GAAGF,cAAc,CAACG,KAAK;;IAErC;IACA,MAAMC,iBAAiB,GAAG,IAAIf,uBAAuB,CAAC;MAClDa,QAAQ;MACRL,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACD,iBAAiB,CAAC;;IAEpD;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACZ,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,KAAK,CAAC;IAEvD,IAAIS,MAAM,CAACL,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOK,MAAM;IACjB;IAEA,MAAMC,MAAM,GAAGD,MAAM,CAACH,KAAK;;IAE3B;IACA,MAAMK,gBAAgB,GAAG,IAAIpB,sBAAsB,CAAC;MAChDc,QAAQ;MACRK,MAAM;MACNV,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACG,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACF,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGJ,oBAAoB,CAAC;EACpD6B,WAAW,EAAExB,kBAAkB;EAC/ByB,cAAc,EAAErB,uBAAuB;EACvCsB,YAAY,EAAE,CAAC7B,cAAc,EAAEI,mBAAmB,EAAEH,sBAAsB;AAC9E,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
+ import type { Folder, UpdateFolderParams } from "../../../folder/folder.types.js";
4
+ import { FolderCannotMoveToNewParent, type FolderNotAuthorizedError, type FolderNotFoundError, type FolderPersistenceError, type FolderValidationError } from "../../../domain/folder/errors.js";
5
+ /**
6
+ * UpdateFolder repository interface
7
+ */
8
+ export interface IUpdateFolderRepository {
9
+ execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, RepositoryError>>;
10
+ }
11
+ export interface IUpdateFolderRepositoryErrors {
12
+ persistence: FolderPersistenceError;
13
+ validation: FolderValidationError;
14
+ }
15
+ type RepositoryError = IUpdateFolderRepositoryErrors[keyof IUpdateFolderRepositoryErrors];
16
+ export declare const UpdateFolderRepository: import("@webiny/di").Abstraction<IUpdateFolderRepository>;
17
+ export declare namespace UpdateFolderRepository {
18
+ type Interface = IUpdateFolderRepository;
19
+ type Error = RepositoryError;
20
+ }
21
+ /**
22
+ * UpdateFolder use case interface
23
+ */
24
+ export interface IUpdateFolderUseCase {
25
+ execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, UseCaseError>>;
26
+ }
27
+ export interface IUpdateFolderUseCaseErrors {
28
+ notAuthorized: FolderNotAuthorizedError;
29
+ notFound: FolderNotFoundError;
30
+ cannotMoveToNewParent: FolderCannotMoveToNewParent;
31
+ persistence: FolderPersistenceError;
32
+ validation: FolderValidationError;
33
+ }
34
+ type UseCaseError = IUpdateFolderUseCaseErrors[keyof IUpdateFolderUseCaseErrors];
35
+ export declare const UpdateFolderUseCase: import("@webiny/di").Abstraction<IUpdateFolderUseCase>;
36
+ export declare namespace UpdateFolderUseCase {
37
+ type Interface = IUpdateFolderUseCase;
38
+ type Return = Promise<Result<Folder, UseCaseError>>;
39
+ type Error = UseCaseError;
40
+ }
41
+ export interface FolderBeforeUpdatePayload {
42
+ original: Folder;
43
+ input: Record<string, any>;
44
+ }
45
+ export interface FolderAfterUpdatePayload {
46
+ original: Folder;
47
+ folder: Folder;
48
+ input: Record<string, any>;
49
+ }
50
+ export declare const FolderBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
51
+ export declare namespace FolderBeforeUpdateHandler {
52
+ type Interface = IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>;
53
+ type Event = DomainEvent<FolderBeforeUpdatePayload>;
54
+ }
55
+ export declare const FolderAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
56
+ export declare namespace FolderAfterUpdateHandler {
57
+ type Interface = IEventHandler<DomainEvent<FolderAfterUpdatePayload>>;
58
+ type Event = DomainEvent<FolderAfterUpdatePayload>;
59
+ }
60
+ export {};