@webiny/api-aco 0.0.0-unstable.aad28a72ae → 0.0.0-unstable.ac6ebf63c6

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 (539) hide show
  1. package/README.md +6 -13
  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 +9 -0
  6. package/createAcoContext.js +141 -0
  7. package/createAcoContext.js.map +1 -0
  8. package/createAcoGraphQL.d.ts +4 -0
  9. package/createAcoGraphQL.js +111 -0
  10. package/createAcoGraphQL.js.map +1 -0
  11. package/createAcoStorageOperations.d.ts +12 -0
  12. package/createAcoStorageOperations.js +10 -0
  13. package/createAcoStorageOperations.js.map +1 -0
  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 +3 -0
  408. package/filter/filter.crud.js +33 -0
  409. package/filter/filter.crud.js.map +1 -0
  410. package/filter/filter.gql.d.ts +3 -0
  411. package/filter/filter.gql.js +146 -0
  412. package/filter/filter.gql.js.map +1 -0
  413. package/filter/filter.model.d.ts +9 -0
  414. package/filter/filter.model.js +41 -0
  415. package/filter/filter.model.js.map +1 -0
  416. package/filter/filter.so.d.ts +3 -0
  417. package/filter/filter.so.js +104 -0
  418. package/filter/filter.so.js.map +1 -0
  419. package/filter/filter.types.d.ts +67 -0
  420. package/filter/filter.types.js +7 -0
  421. package/filter/filter.types.js.map +1 -0
  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 -0
  456. package/folder/folder.gql.js +152 -0
  457. package/folder/folder.gql.js.map +1 -0
  458. package/folder/folder.types.d.ts +76 -0
  459. package/folder/folder.types.js +3 -0
  460. package/folder/folder.types.js.map +1 -0
  461. package/index.d.ts +7 -8
  462. package/index.js +8 -69
  463. package/index.js.map +1 -1
  464. package/package.json +44 -33
  465. package/types.d.ts +42 -207
  466. package/types.js +7 -4
  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.d.ts +6 -0
  478. package/utils/acoRecordId.js +27 -0
  479. package/utils/acoRecordId.js.map +1 -0
  480. package/utils/compress.d.ts +4 -0
  481. package/utils/compress.js +12 -0
  482. package/utils/compress.js.map +1 -0
  483. package/utils/createListSort.d.ts +3 -0
  484. package/utils/createListSort.js +10 -0
  485. package/utils/createListSort.js.map +1 -0
  486. package/utils/createOperationsWrapper.d.ts +9 -0
  487. package/utils/createOperationsWrapper.js +22 -0
  488. package/utils/createOperationsWrapper.js.map +1 -0
  489. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  490. package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
  491. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  494. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  495. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  496. package/utils/decorators/ListEntriesFactory.js +106 -0
  497. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  498. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  499. package/utils/decorators/hasRootFolderId.js +19 -0
  500. package/utils/decorators/hasRootFolderId.js.map +1 -0
  501. package/utils/decorators/isPageModel.d.ts +5 -0
  502. package/utils/decorators/isPageModel.js +13 -0
  503. package/utils/decorators/isPageModel.js.map +1 -0
  504. package/utils/ensureAuthentication.d.ts +2 -0
  505. package/utils/ensureAuthentication.js +12 -0
  506. package/utils/ensureAuthentication.js.map +1 -0
  507. package/utils/pickEntryFieldValues.d.ts +3 -0
  508. package/utils/pickEntryFieldValues.js +23 -0
  509. package/utils/pickEntryFieldValues.js.map +1 -0
  510. package/utils/resolve.d.ts +2 -0
  511. package/utils/resolve.js +10 -0
  512. package/utils/resolve.js.map +1 -0
  513. package/context/folders.d.ts +0 -2
  514. package/context/folders.js +0 -261
  515. package/context/folders.js.map +0 -1
  516. package/context/index.d.ts +0 -2
  517. package/context/index.js +0 -22
  518. package/context/index.js.map +0 -1
  519. package/context/links.d.ts +0 -2
  520. package/context/links.js +0 -270
  521. package/context/links.js.map +0 -1
  522. package/graphql/base.gql.d.ts +0 -3
  523. package/graphql/base.gql.js +0 -63
  524. package/graphql/base.gql.js.map +0 -1
  525. package/graphql/folders.gql.d.ts +0 -3
  526. package/graphql/folders.gql.js +0 -126
  527. package/graphql/folders.gql.js.map +0 -1
  528. package/graphql/index.d.ts +0 -1
  529. package/graphql/index.js +0 -15
  530. package/graphql/index.js.map +0 -1
  531. package/graphql/links.gql.d.ts +0 -3
  532. package/graphql/links.gql.js +0 -123
  533. package/graphql/links.gql.js.map +0 -1
  534. package/subscriptions/afterFolderDelete.d.ts +0 -3
  535. package/subscriptions/afterFolderDelete.js +0 -62
  536. package/subscriptions/afterFolderDelete.js.map +0 -1
  537. package/subscriptions/index.d.ts +0 -3
  538. package/subscriptions/index.js +0 -14
  539. package/subscriptions/index.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderRepository as RepositoryAbstraction, type IGetFolderRepository } from "./abstractions.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
5
+ import type { Folder } from "../../../folder/folder.types.js";
6
+ declare class GetFolderRepositoryImpl implements IGetFolderRepository {
7
+ private getEntryById;
8
+ private folderModel;
9
+ constructor(getEntryById: GetEntryByIdUseCase.Interface, folderModel: FolderModel.Interface);
10
+ execute(id: string): Promise<Result<Folder, RepositoryAbstraction.Error>>;
11
+ }
12
+ export declare const GetFolderRepository: typeof GetFolderRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<IGetFolderRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
5
+ import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
6
+ import { FolderNotFoundError, FolderPersistenceError } from "../../../domain/folder/errors.js";
7
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
8
+ class GetFolderRepositoryImpl {
9
+ constructor(getEntryById, folderModel) {
10
+ this.getEntryById = getEntryById;
11
+ this.folderModel = folderModel;
12
+ }
13
+ async execute(id) {
14
+ const entryId = EntryId.from(id);
15
+ const result = await this.getEntryById.execute(this.folderModel, entryId.toString());
16
+ if (result.isFail()) {
17
+ if (result.error.code === "Cms/Entry/NotFound") {
18
+ return Result.fail(new FolderNotFoundError(id));
19
+ }
20
+ return Result.fail(new FolderPersistenceError(result.error));
21
+ }
22
+ const folder = EntryToFolderMapper.toFolder(result.value);
23
+ return Result.ok(folder);
24
+ }
25
+ }
26
+ export const GetFolderRepository = RepositoryAbstraction.createImplementation({
27
+ implementation: GetFolderRepositoryImpl,
28
+ dependencies: [GetEntryByIdUseCase, FolderModel]
29
+ });
30
+
31
+ //# sourceMappingURL=GetFolderRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","GetFolderRepository","RepositoryAbstraction","GetEntryByIdUseCase","FolderModel","EntryToFolderMapper","FolderNotFoundError","FolderPersistenceError","EntryId","GetFolderRepositoryImpl","constructor","getEntryById","folderModel","execute","id","entryId","from","result","toString","isFail","error","code","fail","folder","toFolder","value","ok","createImplementation","implementation","dependencies"],"sources":["GetFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderRepository as RepositoryAbstraction,\n type IGetFolderRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderNotFoundError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass GetFolderRepositoryImpl implements IGetFolderRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n const entryId = EntryId.from(id);\n const result = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new FolderNotFoundError(id));\n }\n\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(result.value);\n return Result.ok(folder);\n }\n}\n\nexport const GetFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, FolderModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,mBAAmB,IAAIC,qBAAqB;AAGhD,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,WAAW;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB,EAAEC,sBAAsB;AACpD,SAASC,OAAO,QAAQ,mDAAmD;AAE3E,MAAMC,uBAAuB,CAAiC;EAC1DC,WAAWA,CACCC,YAA2C,EAC3CC,WAAkC,EAC5C;IAAA,KAFUD,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,WAAkC,GAAlCA,WAAkC;EAC3C;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAwD;IAC5E,MAAMC,OAAO,GAAGP,OAAO,CAACQ,IAAI,CAACF,EAAE,CAAC;IAChC,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACN,YAAY,CAACE,OAAO,CAC1C,IAAI,CAACD,WAAW,EAChBG,OAAO,CAACG,QAAQ,CAAC,CACrB,CAAC;IAED,IAAID,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,mBAAmB,CAACQ,EAAE,CAAC,CAAC;MACnD;MAEA,OAAOd,MAAM,CAACsB,IAAI,CAAC,IAAIf,sBAAsB,CAACU,MAAM,CAACG,KAAK,CAAC,CAAC;IAChE;IAEA,MAAMG,MAAM,GAAGlB,mBAAmB,CAACmB,QAAQ,CAACP,MAAM,CAACQ,KAAK,CAAC;IACzD,OAAOzB,MAAM,CAAC0B,EAAE,CAACH,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGC,qBAAqB,CAACyB,oBAAoB,CAAC;EAC1EC,cAAc,EAAEnB,uBAAuB;EACvCoB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,WAAW;AACnD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from "./abstractions.js";
3
+ import type { Folder } from "../../../folder/folder.types.js";
4
+ declare class GetFolderUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private repository;
6
+ constructor(repository: GetFolderRepository.Interface);
7
+ execute(id: string): Promise<Result<Folder, UseCaseAbstraction.Error>>;
8
+ }
9
+ export declare const GetFolderUseCase: import("@webiny/di").Implementation<typeof GetFolderUseCaseImpl>;
10
+ export {};
@@ -0,0 +1,17 @@
1
+ import { createImplementation } from "@webiny/feature/api";
2
+ import { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from "./abstractions.js";
3
+ class GetFolderUseCaseImpl {
4
+ constructor(repository) {
5
+ this.repository = repository;
6
+ }
7
+ async execute(id) {
8
+ return this.repository.execute(id);
9
+ }
10
+ }
11
+ export const GetFolderUseCase = createImplementation({
12
+ abstraction: UseCaseAbstraction,
13
+ implementation: GetFolderUseCaseImpl,
14
+ dependencies: [GetFolderRepository]
15
+ });
16
+
17
+ //# sourceMappingURL=GetFolderUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImplementation","GetFolderUseCase","UseCaseAbstraction","GetFolderRepository","GetFolderUseCaseImpl","constructor","repository","execute","id","abstraction","implementation","dependencies"],"sources":["GetFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { GetFolderUseCase as UseCaseAbstraction, GetFolderRepository } from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\nclass GetFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderRepository.Interface) {}\n\n async execute(id: string): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n return this.repository.execute(id);\n }\n}\n\nexport const GetFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderUseCaseImpl,\n dependencies: [GetFolderRepository]\n});\n"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AAGpE,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CAASC,UAAyC,EAAE;IAAA,KAA3CA,UAAyC,GAAzCA,UAAyC;EAAG;EAEhE,MAAMC,OAAOA,CAACC,EAAU,EAAqD;IACzE,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;EACtC;AACJ;AAEA,OAAO,MAAMP,gBAAgB,GAAGD,oBAAoB,CAAC;EACjDS,WAAW,EAAEP,kBAAkB;EAC/BQ,cAAc,EAAEN,oBAAoB;EACpCO,YAAY,EAAE,CAACR,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
+ import type { Folder, GetFolderParams } from "../../../folder/folder.types.js";
4
+ import type { FolderNotAuthorizedError, FolderNotFoundError, FolderPersistenceError } from "../../../domain/folder/errors.js";
5
+ /**
6
+ * GetFolder repository interface
7
+ */
8
+ export interface IGetFolderRepository {
9
+ execute(id: string): Promise<Result<Folder, RepositoryError>>;
10
+ }
11
+ export interface IGetFolderRepositoryErrors {
12
+ notFound: FolderNotFoundError;
13
+ persistence: FolderPersistenceError;
14
+ }
15
+ type RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];
16
+ export declare const GetFolderRepository: import("@webiny/di").Abstraction<IGetFolderRepository>;
17
+ export declare namespace GetFolderRepository {
18
+ type Interface = IGetFolderRepository;
19
+ type Error = RepositoryError;
20
+ }
21
+ /**
22
+ * GetFolder use case interface
23
+ */
24
+ export interface IGetFolderUseCase {
25
+ execute(id: string): Promise<Result<Folder, UseCaseError>>;
26
+ }
27
+ export interface IGetFolderUseCaseErrors {
28
+ notAuthorized: FolderNotAuthorizedError;
29
+ notFound: FolderNotFoundError;
30
+ persistence: FolderPersistenceError;
31
+ }
32
+ type UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];
33
+ export declare const GetFolderUseCase: import("@webiny/di").Abstraction<IGetFolderUseCase>;
34
+ export declare namespace GetFolderUseCase {
35
+ type Interface = IGetFolderUseCase;
36
+ type Error = UseCaseError;
37
+ }
38
+ export interface FolderBeforeGetPayload {
39
+ params: GetFolderParams;
40
+ }
41
+ export interface FolderAfterGetPayload {
42
+ folder: Folder;
43
+ }
44
+ export declare const FolderBeforeGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>;
45
+ export declare namespace FolderBeforeGetHandler {
46
+ type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;
47
+ type Event = DomainEvent<FolderBeforeGetPayload>;
48
+ }
49
+ export declare const FolderAfterGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>;
50
+ export declare namespace FolderAfterGetHandler {
51
+ type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;
52
+ type Event = DomainEvent<FolderAfterGetPayload>;
53
+ }
54
+ export {};
@@ -0,0 +1,21 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * GetFolder repository interface
5
+ */
6
+
7
+ export const GetFolderRepository = createAbstraction("GetFolderRepository");
8
+
9
+ /**
10
+ * GetFolder use case interface
11
+ */
12
+
13
+ export const GetFolderUseCase = createAbstraction("GetFolderUseCase");
14
+
15
+ // Event Payload Types
16
+
17
+ // Event Handler Abstractions
18
+ export const FolderBeforeGetHandler = createAbstraction("FolderBeforeGetHandler");
19
+ export const FolderAfterGetHandler = createAbstraction("FolderAfterGetHandler");
20
+
21
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetFolderRepository","GetFolderUseCase","FolderBeforeGetHandler","FolderAfterGetHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { Folder, GetFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderNotFoundError,\n FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolder repository interface\n */\nexport interface IGetFolderRepository {\n execute(id: string): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IGetFolderRepositoryErrors {\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];\n\nexport const GetFolderRepository = createAbstraction<IGetFolderRepository>(\"GetFolderRepository\");\n\nexport namespace GetFolderRepository {\n export type Interface = IGetFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolder use case interface\n */\nexport interface IGetFolderUseCase {\n execute(id: string): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IGetFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];\n\nexport const GetFolderUseCase = createAbstraction<IGetFolderUseCase>(\"GetFolderUseCase\");\n\nexport namespace GetFolderUseCase {\n export type Interface = IGetFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeGetPayload {\n params: GetFolderParams;\n}\n\nexport interface FolderAfterGetPayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\nexport const FolderBeforeGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>(\"FolderBeforeGetHandler\");\n\nexport namespace FolderBeforeGetHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\nexport const FolderAfterGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>(\"FolderAfterGetHandler\");\n\nexport namespace FolderAfterGetHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;\n export type Event = DomainEvent<FolderAfterGetPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;;AAYA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;AACA;AACA;;AAaA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC;;AAOxF;;AASA;AACA,OAAO,MAAMG,sBAAsB,GAC/BH,iBAAiB,CAAqD,wBAAwB,CAAC;AAOnG,OAAO,MAAMI,qBAAqB,GAC9BJ,iBAAiB,CAAoD,uBAAuB,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { GetFolderUseCase } from "../abstractions.js";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { FolderLevelPermissions } from "../../../../features/flp/FolderLevelPermissions/index.js";
4
+ import { FolderNotAuthorizedError } from "../../../../domain/folder/errors.js";
5
+ declare class GetFolderWithFolderLevelPermissionsImpl implements GetFolderUseCase.Interface {
6
+ private folderLevelPermissions;
7
+ private readonly decoretee;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoretee: GetFolderUseCase.Interface);
9
+ execute(id: string): Promise<Result<never, import("~/domain/folder/errors.js").FolderNotFoundError | FolderNotAuthorizedError | import("~/domain/folder/errors.js").FolderPersistenceError> | Result<{
10
+ permissions: import("@webiny/shared-aco/flp/flp.types.js").FolderPermission[];
11
+ id: string;
12
+ createdOn: string;
13
+ modifiedOn: string | null;
14
+ savedOn: string;
15
+ createdBy: import("../../../../types.js").User;
16
+ modifiedBy: import("../../../../types.js").User | null;
17
+ savedBy: import("../../../../types.js").User;
18
+ title: string;
19
+ slug: string;
20
+ type: string;
21
+ parentId?: string | null;
22
+ path: string;
23
+ extensions?: Record<string, any>;
24
+ }, never>>;
25
+ }
26
+ export declare const GetFolderWithFolderLevelPermissions: typeof GetFolderWithFolderLevelPermissionsImpl & {
27
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions.js").IGetFolderUseCase>;
28
+ };
29
+ export {};
@@ -0,0 +1,37 @@
1
+ import { GetFolderUseCase } from "../abstractions.js";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
4
+ import { FolderNotAuthorizedError } from "../../../../domain/folder/errors.js";
5
+ class GetFolderWithFolderLevelPermissionsImpl {
6
+ constructor(folderLevelPermissions, decoretee) {
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoretee = decoretee;
9
+ }
10
+ async execute(id) {
11
+ const result = await this.decoretee.execute(id);
12
+ if (result.isFail()) {
13
+ return Result.fail(result.error);
14
+ }
15
+ const folder = result.value;
16
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
17
+
18
+ // Let's check if the current user has read access level.
19
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
20
+ permissions,
21
+ rwd: "r"
22
+ });
23
+ if (!canAccessFolder) {
24
+ return Result.fail(new FolderNotAuthorizedError());
25
+ }
26
+ return Result.ok({
27
+ ...folder,
28
+ permissions
29
+ });
30
+ }
31
+ }
32
+ export const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({
33
+ decorator: GetFolderWithFolderLevelPermissionsImpl,
34
+ dependencies: [FolderLevelPermissions]
35
+ });
36
+
37
+ //# sourceMappingURL=GetFolderWithFolderLevelPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetFolderUseCase","Result","FolderLevelPermissions","FolderNotAuthorizedError","GetFolderWithFolderLevelPermissionsImpl","constructor","folderLevelPermissions","decoretee","execute","id","result","isFail","fail","error","folder","value","permissions","getFolderLevelPermissions","canAccessFolder","rwd","ok","GetFolderWithFolderLevelPermissions","createDecorator","decorator","dependencies"],"sources":["GetFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { GetFolderUseCase } from \"../abstractions.js\";\nimport { Result } from \"@webiny/feature/api\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { FolderNotAuthorizedError } from \"~/domain/folder/errors.js\";\n\nclass GetFolderWithFolderLevelPermissionsImpl implements GetFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: GetFolderUseCase.Interface;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: GetFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string) {\n const result = await this.decoretee.execute(id);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const folder = result.value;\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);\n\n // Let's check if the current user has read access level.\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n return Result.ok({\n ...folder,\n permissions\n });\n }\n}\n\nexport const GetFolderWithFolderLevelPermissions = GetFolderUseCase.createDecorator({\n decorator: GetFolderWithFolderLevelPermissionsImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AAEjC,MAAMC,uCAAuC,CAAuC;EAIhFC,WAAWA,CACPC,sBAAwD,EACxDC,SAAqC,EACvC;IACE,IAAI,CAACD,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAACC,EAAE,CAAC;IAC/C,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOV,MAAM,CAACW,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,MAAMC,MAAM,GAAGJ,MAAM,CAACK,KAAK;IAC3B,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACH,MAAM,CAACL,EAAE,CAAC;;IAE1F;IACA,MAAMS,eAAe,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACY,eAAe,CAAC;MACtEF,WAAW;MACXG,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACD,eAAe,EAAE;MAClB,OAAOjB,MAAM,CAACW,IAAI,CAAC,IAAIT,wBAAwB,CAAC,CAAC,CAAC;IACtD;IAEA,OAAOF,MAAM,CAACmB,EAAE,CAAC;MACb,GAAGN,MAAM;MACTE;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,mCAAmC,GAAGrB,gBAAgB,CAACsB,eAAe,CAAC;EAChFC,SAAS,EAAEnB,uCAAuC;EAClDoB,YAAY,EAAE,CAACtB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const GetFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,14 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { GetFolderRepository } from "./GetFolderRepository.js";
3
+ import { GetFolderUseCase } from "./GetFolderUseCase.js";
4
+ import { GetFolderWithFolderLevelPermissions } from "./decorators/GetFolderWithFolderLevelPermissions.js";
5
+ export const GetFolderFeature = createFeature({
6
+ name: "GetFolder",
7
+ register(container) {
8
+ container.register(GetFolderRepository).inSingletonScope();
9
+ container.register(GetFolderUseCase);
10
+ container.registerDecorator(GetFolderWithFolderLevelPermissions);
11
+ }
12
+ });
13
+
14
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","GetFolderRepository","GetFolderUseCase","GetFolderWithFolderLevelPermissions","GetFolderFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetFolderRepository } from \"./GetFolderRepository.js\";\nimport { GetFolderUseCase } from \"./GetFolderUseCase.js\";\nimport { GetFolderWithFolderLevelPermissions } from \"./decorators/GetFolderWithFolderLevelPermissions.js\";\n\nexport const GetFolderFeature = createFeature({\n name: \"GetFolder\",\n register(container: Container) {\n container.register(GetFolderRepository).inSingletonScope();\n container.register(GetFolderUseCase);\n container.registerDecorator(GetFolderWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AACzB,SAASC,mCAAmC;AAE5C,OAAO,MAAMC,gBAAgB,GAAGJ,aAAa,CAAC;EAC1CK,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,mBAAmB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC1DD,SAAS,CAACD,QAAQ,CAACJ,gBAAgB,CAAC;IACpCK,SAAS,CAACE,iBAAiB,CAACN,mCAAmC,CAAC;EACpE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { GetFolderFeature } from "./feature.js";
2
+ export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { GetFolderFeature } from "./feature.js";
2
+ export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetFolderFeature","FolderAfterGetHandler","FolderBeforeGetHandler","GetFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { GetFolderFeature } from \"./feature.js\";\nexport { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,qBAAqB,EAAEC,sBAAsB,EAAEC,gBAAgB","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderHierarchyRepository as RepositoryAbstraction, type IGetFolderHierarchyRepository } from "./abstractions.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
6
+ import type { GetFolderHierarchyParams, GetFolderHierarchyResponse } from "../../../folder/folder.types.js";
7
+ declare class GetFolderHierarchyRepositoryImpl implements IGetFolderHierarchyRepository {
8
+ private getEntryById;
9
+ private listLatestEntries;
10
+ private folderModel;
11
+ constructor(getEntryById: GetEntryByIdUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, folderModel: FolderModel.Interface);
12
+ execute(params: GetFolderHierarchyParams): Promise<Result<GetFolderHierarchyResponse, RepositoryAbstraction.Error>>;
13
+ private getFolderParent;
14
+ }
15
+ export declare const GetFolderHierarchyRepository: typeof GetFolderHierarchyRepositoryImpl & {
16
+ __abstraction: import("@webiny/di").Abstraction<IGetFolderHierarchyRepository>;
17
+ };
18
+ export {};
@@ -0,0 +1,103 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderHierarchyRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
8
+ import { FolderPersistenceError } from "../../../domain/folder/errors.js";
9
+ import { ROOT_FOLDER } from "../../../constants.js";
10
+ const FIXED_FOLDER_LISTING_LIMIT = 10_000;
11
+ class GetFolderHierarchyRepositoryImpl {
12
+ constructor(getEntryById, listLatestEntries, folderModel) {
13
+ this.getEntryById = getEntryById;
14
+ this.listLatestEntries = listLatestEntries;
15
+ this.folderModel = folderModel;
16
+ }
17
+ async execute(params) {
18
+ const parents = [];
19
+ const siblings = [];
20
+
21
+ // Get root folders (siblings at root level)
22
+ const rootFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
23
+ where: {
24
+ values: {
25
+ type: params.type,
26
+ parentId: null
27
+ }
28
+ },
29
+ limit: FIXED_FOLDER_LISTING_LIMIT
30
+ });
31
+ if (rootFoldersResult.isFail()) {
32
+ return Result.fail(new FolderPersistenceError(rootFoldersResult.error));
33
+ }
34
+ const {
35
+ entries: rootEntries
36
+ } = rootFoldersResult.value;
37
+ siblings.push(...rootEntries.map(entry => EntryToFolderMapper.toFolder(entry)));
38
+ if (params.id === ROOT_FOLDER) {
39
+ return Result.ok({
40
+ parents,
41
+ siblings
42
+ });
43
+ }
44
+
45
+ // Get the folder by id
46
+ const entryId = EntryId.from(params.id);
47
+ const folderResult = await this.getEntryById.execute(this.folderModel, entryId.toString());
48
+ if (folderResult.isFail()) {
49
+ return Result.fail(new FolderPersistenceError(folderResult.error));
50
+ }
51
+ const folder = EntryToFolderMapper.toFolder(folderResult.value);
52
+ parents.push(folder);
53
+
54
+ // Recursively get all parent folders
55
+ const getFolderParentResult = await this.getFolderParent(folder, parents);
56
+ if (getFolderParentResult.isFail()) {
57
+ return Result.fail(getFolderParentResult.error);
58
+ }
59
+
60
+ // Get all child folders of all parents (these are siblings at different levels)
61
+ const parentIds = parents.map(f => f.id);
62
+ const childFoldersResult = await this.listLatestEntries.execute(this.folderModel, {
63
+ where: {
64
+ entryId_not_in: parentIds,
65
+ values: {
66
+ type: folder.type,
67
+ parentId_in: parentIds
68
+ }
69
+ },
70
+ limit: FIXED_FOLDER_LISTING_LIMIT
71
+ });
72
+ if (childFoldersResult.isFail()) {
73
+ return Result.fail(new FolderPersistenceError(childFoldersResult.error));
74
+ }
75
+ const {
76
+ entries: childEntries
77
+ } = childFoldersResult.value;
78
+ siblings.push(...childEntries.map(entry => EntryToFolderMapper.toFolder(entry)));
79
+ return Result.ok({
80
+ parents,
81
+ siblings
82
+ });
83
+ }
84
+ async getFolderParent(folder, parents) {
85
+ let currentFolder = folder;
86
+ while (currentFolder.parentId) {
87
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(currentFolder.parentId).toString());
88
+ if (parentResult.isFail()) {
89
+ return Result.fail(new FolderPersistenceError(parentResult.error));
90
+ }
91
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
92
+ parents.push(parentFolder);
93
+ currentFolder = parentFolder;
94
+ }
95
+ return Result.ok();
96
+ }
97
+ }
98
+ export const GetFolderHierarchyRepository = RepositoryAbstraction.createImplementation({
99
+ implementation: GetFolderHierarchyRepositoryImpl,
100
+ dependencies: [GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]
101
+ });
102
+
103
+ //# sourceMappingURL=GetFolderHierarchyRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","GetFolderHierarchyRepository","RepositoryAbstraction","GetEntryByIdUseCase","ListLatestEntriesUseCase","EntryId","FolderModel","EntryToFolderMapper","FolderPersistenceError","ROOT_FOLDER","FIXED_FOLDER_LISTING_LIMIT","GetFolderHierarchyRepositoryImpl","constructor","getEntryById","listLatestEntries","folderModel","execute","params","parents","siblings","rootFoldersResult","where","values","type","parentId","limit","isFail","fail","error","entries","rootEntries","value","push","map","entry","toFolder","id","ok","entryId","from","folderResult","toString","folder","getFolderParentResult","getFolderParent","parentIds","f","childFoldersResult","entryId_not_in","parentId_in","childEntries","currentFolder","parentResult","parentFolder","createImplementation","implementation","dependencies"],"sources":["GetFolderHierarchyRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyRepository as RepositoryAbstraction,\n type IGetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type {\n CmsEntryFolder,\n Folder,\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError } from \"~/domain/folder/errors.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nconst FIXED_FOLDER_LISTING_LIMIT = 10_000;\n\nclass GetFolderHierarchyRepositoryImpl implements IGetFolderHierarchyRepository {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryAbstraction.Error>> {\n const parents: Folder[] = [];\n const siblings: Folder[] = [];\n\n // Get root folders (siblings at root level)\n const rootFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n values: {\n type: params.type,\n parentId: null\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (rootFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(rootFoldersResult.error));\n }\n\n const { entries: rootEntries } = rootFoldersResult.value;\n siblings.push(...rootEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n if (params.id === ROOT_FOLDER) {\n return Result.ok({\n parents,\n siblings\n });\n }\n\n // Get the folder by id\n const entryId = EntryId.from(params.id);\n const folderResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n entryId.toString()\n );\n\n if (folderResult.isFail()) {\n return Result.fail(new FolderPersistenceError(folderResult.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(folderResult.value);\n parents.push(folder);\n\n // Recursively get all parent folders\n const getFolderParentResult = await this.getFolderParent(folder, parents);\n if (getFolderParentResult.isFail()) {\n return Result.fail(getFolderParentResult.error);\n }\n\n // Get all child folders of all parents (these are siblings at different levels)\n const parentIds = parents.map(f => f.id);\n\n const childFoldersResult = await this.listLatestEntries.execute<CmsEntryFolder>(\n this.folderModel,\n {\n where: {\n entryId_not_in: parentIds,\n values: {\n type: folder.type,\n parentId_in: parentIds\n }\n },\n limit: FIXED_FOLDER_LISTING_LIMIT\n }\n );\n\n if (childFoldersResult.isFail()) {\n return Result.fail(new FolderPersistenceError(childFoldersResult.error));\n }\n\n const { entries: childEntries } = childFoldersResult.value;\n siblings.push(...childEntries.map(entry => EntryToFolderMapper.toFolder(entry)));\n\n return Result.ok({\n parents,\n siblings\n });\n }\n\n private async getFolderParent(\n folder: Folder,\n parents: Folder[]\n ): Promise<Result<void, RepositoryAbstraction.Error>> {\n let currentFolder = folder;\n\n while (currentFolder.parentId) {\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(currentFolder.parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(new FolderPersistenceError(parentResult.error));\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n parents.push(parentFolder);\n currentFolder = parentFolder;\n }\n\n return Result.ok();\n }\n}\n\nexport const GetFolderHierarchyRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFolderHierarchyRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, ListLatestEntriesUseCase, FolderModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,4BAA4B,IAAIC,qBAAqB;AAGzD,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,SAASC,OAAO,QAAQ,mDAAmD;AAC3E,SAASC,WAAW;AAOpB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAEpB,MAAMC,0BAA0B,GAAG,MAAM;AAEzC,MAAMC,gCAAgC,CAA0C;EAC5EC,WAAWA,CACCC,YAA2C,EAC3CC,iBAAqD,EACrDC,WAAkC,EAC5C;IAAA,KAHUF,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,iBAAqD,GAArDA,iBAAqD;IAAA,KACrDC,WAAkC,GAAlCA,WAAkC;EAC3C;EAEH,MAAMC,OAAOA,CACTC,MAAgC,EACwC;IACxE,MAAMC,OAAiB,GAAG,EAAE;IAC5B,MAAMC,QAAkB,GAAG,EAAE;;IAE7B;IACA,MAAMC,iBAAiB,GAAG,MAAM,IAAI,CAACN,iBAAiB,CAACE,OAAO,CAC1D,IAAI,CAACD,WAAW,EAChB;MACIM,KAAK,EAAE;QACHC,MAAM,EAAE;UACJC,IAAI,EAAEN,MAAM,CAACM,IAAI;UACjBC,QAAQ,EAAE;QACd;MACJ,CAAC;MACDC,KAAK,EAAEf;IACX,CACJ,CAAC;IAED,IAAIU,iBAAiB,CAACM,MAAM,CAAC,CAAC,EAAE;MAC5B,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAInB,sBAAsB,CAACY,iBAAiB,CAACQ,KAAK,CAAC,CAAC;IAC3E;IAEA,MAAM;MAAEC,OAAO,EAAEC;IAAY,CAAC,GAAGV,iBAAiB,CAACW,KAAK;IACxDZ,QAAQ,CAACa,IAAI,CAAC,GAAGF,WAAW,CAACG,GAAG,CAACC,KAAK,IAAI3B,mBAAmB,CAAC4B,QAAQ,CAACD,KAAK,CAAC,CAAC,CAAC;IAE/E,IAAIjB,MAAM,CAACmB,EAAE,KAAK3B,WAAW,EAAE;MAC3B,OAAOT,MAAM,CAACqC,EAAE,CAAC;QACbnB,OAAO;QACPC;MACJ,CAAC,CAAC;IACN;;IAEA;IACA,MAAMmB,OAAO,GAAGjC,OAAO,CAACkC,IAAI,CAACtB,MAAM,CAACmB,EAAE,CAAC;IACvC,MAAMI,YAAY,GAAG,MAAM,IAAI,CAAC3B,YAAY,CAACG,OAAO,CAChD,IAAI,CAACD,WAAW,EAChBuB,OAAO,CAACG,QAAQ,CAAC,CACrB,CAAC;IAED,IAAID,YAAY,CAACd,MAAM,CAAC,CAAC,EAAE;MACvB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAInB,sBAAsB,CAACgC,YAAY,CAACZ,KAAK,CAAC,CAAC;IACtE;IAEA,MAAMc,MAAM,GAAGnC,mBAAmB,CAAC4B,QAAQ,CAACK,YAAY,CAACT,KAAK,CAAC;IAC/Db,OAAO,CAACc,IAAI,CAACU,MAAM,CAAC;;IAEpB;IACA,MAAMC,qBAAqB,GAAG,MAAM,IAAI,CAACC,eAAe,CAACF,MAAM,EAAExB,OAAO,CAAC;IACzE,IAAIyB,qBAAqB,CAACjB,MAAM,CAAC,CAAC,EAAE;MAChC,OAAO1B,MAAM,CAAC2B,IAAI,CAACgB,qBAAqB,CAACf,KAAK,CAAC;IACnD;;IAEA;IACA,MAAMiB,SAAS,GAAG3B,OAAO,CAACe,GAAG,CAACa,CAAC,IAAIA,CAAC,CAACV,EAAE,CAAC;IAExC,MAAMW,kBAAkB,GAAG,MAAM,IAAI,CAACjC,iBAAiB,CAACE,OAAO,CAC3D,IAAI,CAACD,WAAW,EAChB;MACIM,KAAK,EAAE;QACH2B,cAAc,EAAEH,SAAS;QACzBvB,MAAM,EAAE;UACJC,IAAI,EAAEmB,MAAM,CAACnB,IAAI;UACjB0B,WAAW,EAAEJ;QACjB;MACJ,CAAC;MACDpB,KAAK,EAAEf;IACX,CACJ,CAAC;IAED,IAAIqC,kBAAkB,CAACrB,MAAM,CAAC,CAAC,EAAE;MAC7B,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAInB,sBAAsB,CAACuC,kBAAkB,CAACnB,KAAK,CAAC,CAAC;IAC5E;IAEA,MAAM;MAAEC,OAAO,EAAEqB;IAAa,CAAC,GAAGH,kBAAkB,CAAChB,KAAK;IAC1DZ,QAAQ,CAACa,IAAI,CAAC,GAAGkB,YAAY,CAACjB,GAAG,CAACC,KAAK,IAAI3B,mBAAmB,CAAC4B,QAAQ,CAACD,KAAK,CAAC,CAAC,CAAC;IAEhF,OAAOlC,MAAM,CAACqC,EAAE,CAAC;MACbnB,OAAO;MACPC;IACJ,CAAC,CAAC;EACN;EAEA,MAAcyB,eAAeA,CACzBF,MAAc,EACdxB,OAAiB,EACiC;IAClD,IAAIiC,aAAa,GAAGT,MAAM;IAE1B,OAAOS,aAAa,CAAC3B,QAAQ,EAAE;MAC3B,MAAM4B,YAAY,GAAG,MAAM,IAAI,CAACvC,YAAY,CAACG,OAAO,CAChD,IAAI,CAACD,WAAW,EAChBV,OAAO,CAACkC,IAAI,CAACY,aAAa,CAAC3B,QAAQ,CAAC,CAACiB,QAAQ,CAAC,CAClD,CAAC;MAED,IAAIW,YAAY,CAAC1B,MAAM,CAAC,CAAC,EAAE;QACvB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAInB,sBAAsB,CAAC4C,YAAY,CAACxB,KAAK,CAAC,CAAC;MACtE;MAEA,MAAMyB,YAAY,GAAG9C,mBAAmB,CAAC4B,QAAQ,CAACiB,YAAY,CAACrB,KAAK,CAAC;MACrEb,OAAO,CAACc,IAAI,CAACqB,YAAY,CAAC;MAC1BF,aAAa,GAAGE,YAAY;IAChC;IAEA,OAAOrD,MAAM,CAACqC,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMpC,4BAA4B,GAAGC,qBAAqB,CAACoD,oBAAoB,CAAC;EACnFC,cAAc,EAAE5C,gCAAgC;EAChD6C,YAAY,EAAE,CAACrD,mBAAmB,EAAEC,wBAAwB,EAAEE,WAAW;AAC7E,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFolderHierarchyUseCase as UseCaseAbstraction, GetFolderHierarchyRepository } from "./abstractions.js";
3
+ import type { GetFolderHierarchyParams, GetFolderHierarchyResponse } from "../../../folder/folder.types.js";
4
+ declare class GetFolderHierarchyUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private repository;
6
+ constructor(repository: GetFolderHierarchyRepository.Interface);
7
+ execute(params: GetFolderHierarchyParams): Promise<Result<GetFolderHierarchyResponse, UseCaseAbstraction.Error>>;
8
+ }
9
+ export declare const GetFolderHierarchyUseCase: import("@webiny/di").Implementation<typeof GetFolderHierarchyUseCaseImpl>;
10
+ export {};
@@ -0,0 +1,17 @@
1
+ import { GetFolderHierarchyUseCase as UseCaseAbstraction, GetFolderHierarchyRepository } from "./abstractions.js";
2
+ import { createImplementation } from "@webiny/di";
3
+ class GetFolderHierarchyUseCaseImpl {
4
+ constructor(repository) {
5
+ this.repository = repository;
6
+ }
7
+ async execute(params) {
8
+ return await this.repository.execute(params);
9
+ }
10
+ }
11
+ export const GetFolderHierarchyUseCase = createImplementation({
12
+ abstraction: UseCaseAbstraction,
13
+ implementation: GetFolderHierarchyUseCaseImpl,
14
+ dependencies: [GetFolderHierarchyRepository]
15
+ });
16
+
17
+ //# sourceMappingURL=GetFolderHierarchyUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetFolderHierarchyUseCase","UseCaseAbstraction","GetFolderHierarchyRepository","createImplementation","GetFolderHierarchyUseCaseImpl","constructor","repository","execute","params","abstraction","implementation","dependencies"],"sources":["GetFolderHierarchyUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetFolderHierarchyUseCase as UseCaseAbstraction,\n GetFolderHierarchyRepository\n} from \"./abstractions.js\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass GetFolderHierarchyUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetFolderHierarchyRepository.Interface) {}\n\n async execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseAbstraction.Error>> {\n return await this.repository.execute(params);\n }\n}\n\nexport const GetFolderHierarchyUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetFolderHierarchyUseCaseImpl,\n dependencies: [GetFolderHierarchyRepository]\n});\n"],"mappings":"AACA,SACIA,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAMhC,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CAASC,UAAkD,EAAE;IAAA,KAApDA,UAAkD,GAAlDA,UAAkD;EAAG;EAEzE,MAAMC,OAAOA,CACTC,MAAgC,EACqC;IACrE,OAAO,MAAM,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMR,yBAAyB,GAAGG,oBAAoB,CAAC;EAC1DM,WAAW,EAAER,kBAAkB;EAC/BS,cAAc,EAAEN,6BAA6B;EAC7CO,YAAY,EAAE,CAACT,4BAA4B;AAC/C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { GetFolderHierarchyParams, GetFolderHierarchyResponse } from "../../../folder/folder.types.js";
3
+ import type { FolderNotAuthorizedError, FolderPersistenceError } from "../../../domain/folder/errors.js";
4
+ /**
5
+ * GetFolderHierarchy repository interface
6
+ */
7
+ export interface IGetFolderHierarchyRepository {
8
+ execute(params: GetFolderHierarchyParams): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;
9
+ }
10
+ export interface IGetFolderHierarchyRepositoryErrors {
11
+ persistence: FolderPersistenceError;
12
+ }
13
+ type RepositoryError = IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];
14
+ export declare const GetFolderHierarchyRepository: import("@webiny/di").Abstraction<IGetFolderHierarchyRepository>;
15
+ export declare namespace GetFolderHierarchyRepository {
16
+ type Interface = IGetFolderHierarchyRepository;
17
+ type Error = RepositoryError;
18
+ }
19
+ /**
20
+ * GetFolderHierarchy use case interface
21
+ */
22
+ export interface IGetFolderHierarchyUseCase {
23
+ execute(params: GetFolderHierarchyParams): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;
24
+ }
25
+ export interface IGetFolderHierarchyUseCaseErrors {
26
+ notAuthorized: FolderNotAuthorizedError;
27
+ persistence: FolderPersistenceError;
28
+ }
29
+ type UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];
30
+ export declare const GetFolderHierarchyUseCase: import("@webiny/di").Abstraction<IGetFolderHierarchyUseCase>;
31
+ export declare namespace GetFolderHierarchyUseCase {
32
+ type Interface = IGetFolderHierarchyUseCase;
33
+ type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;
34
+ type Error = UseCaseError;
35
+ }
36
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * GetFolderHierarchy repository interface
5
+ */
6
+
7
+ export const GetFolderHierarchyRepository = createAbstraction("GetFolderHierarchyRepository");
8
+
9
+ /**
10
+ * GetFolderHierarchy use case interface
11
+ */
12
+
13
+ export const GetFolderHierarchyUseCase = createAbstraction("GetFolderHierarchyUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetFolderHierarchyRepository","GetFolderHierarchyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolderHierarchy repository interface\n */\nexport interface IGetFolderHierarchyRepository {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;\n}\n\nexport interface IGetFolderHierarchyRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError =\n IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];\n\nexport const GetFolderHierarchyRepository = createAbstraction<IGetFolderHierarchyRepository>(\n \"GetFolderHierarchyRepository\"\n);\n\nexport namespace GetFolderHierarchyRepository {\n export type Interface = IGetFolderHierarchyRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolderHierarchy use case interface\n */\nexport interface IGetFolderHierarchyUseCase {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n}\n\nexport interface IGetFolderHierarchyUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];\n\nexport const GetFolderHierarchyUseCase = createAbstraction<IGetFolderHierarchyUseCase>(\n \"GetFolderHierarchyUseCase\"\n);\n\nexport namespace GetFolderHierarchyUseCase {\n export type Interface = IGetFolderHierarchyUseCase;\n export type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAcA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAcA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { FolderLevelPermissions } from "../../../../features/flp/FolderLevelPermissions/index.js";
2
+ import { GetFolderHierarchyUseCase } from "../abstractions.js";
3
+ import type { GetFolderHierarchyParams } from "../../../../folder/folder.types.js";
4
+ declare class GetFolderHierarchyWithFolderLevelPermissionsImpl implements GetFolderHierarchyUseCase.Interface {
5
+ private folderLevelPermissions;
6
+ private decoratee;
7
+ private flpCatalog;
8
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetFolderHierarchyUseCase.Interface);
9
+ execute(params: GetFolderHierarchyParams): GetFolderHierarchyUseCase.Return;
10
+ private filterAccessibleFolders;
11
+ private hasFlp;
12
+ private getFlp;
13
+ private setFlp;
14
+ }
15
+ export declare const GetFolderHierarchyWithFolderLevelPermissions: typeof GetFolderHierarchyWithFolderLevelPermissionsImpl;
16
+ export {};
@@ -0,0 +1,64 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
3
+ import { GetFolderHierarchyUseCase } from "../abstractions.js";
4
+ class GetFolderHierarchyWithFolderLevelPermissionsImpl {
5
+ flpCatalog = new Map();
6
+ constructor(folderLevelPermissions, decoratee) {
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoratee = decoratee;
9
+ }
10
+ async execute(params) {
11
+ const result = await this.decoratee.execute(params);
12
+ if (result.isFail()) {
13
+ return Result.fail(result.error);
14
+ }
15
+ const {
16
+ siblings,
17
+ parents
18
+ } = result.value;
19
+ const folders = [...parents, ...siblings];
20
+ await Promise.all(folders.map(async folder => {
21
+ if (!this.hasFlp(folder.id)) {
22
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folder.id);
23
+ this.setFlp(folder.id, permissions);
24
+ }
25
+ }));
26
+ return Result.ok({
27
+ parents: await this.filterAccessibleFolders(parents),
28
+ siblings: await this.filterAccessibleFolders(siblings)
29
+ });
30
+ }
31
+ async filterAccessibleFolders(folders) {
32
+ const results = await Promise.all(folders.map(async folder => {
33
+ const permissions = this.getFlp(folder.id);
34
+ if (!permissions) {
35
+ return folder;
36
+ }
37
+ const canAccess = await this.folderLevelPermissions.canAccessFolder({
38
+ permissions,
39
+ rwd: "r"
40
+ });
41
+ return canAccess ? {
42
+ ...folder,
43
+ permissions
44
+ } : null;
45
+ }));
46
+ return results.filter(folder => folder !== null);
47
+ }
48
+ hasFlp(id) {
49
+ return this.flpCatalog.has(id);
50
+ }
51
+ getFlp(id) {
52
+ return this.flpCatalog.get(id);
53
+ }
54
+ setFlp(id, permissions) {
55
+ this.flpCatalog.set(id, permissions);
56
+ }
57
+ }
58
+ export const GetFolderHierarchyWithFolderLevelPermissions = createDecorator({
59
+ abstraction: GetFolderHierarchyUseCase,
60
+ decorator: GetFolderHierarchyWithFolderLevelPermissionsImpl,
61
+ dependencies: [FolderLevelPermissions]
62
+ });
63
+
64
+ //# sourceMappingURL=GetFolderHierarchyWithFolderLevelPermissions.js.map