@webiny/api-aco 0.0.0-unstable.aa00eecd97 → 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 (568) 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 +8 -2
  6. package/createAcoContext.js +128 -50
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +48 -29
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -6
  12. package/createAcoStorageOperations.js +9 -18
  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 +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 -3
  456. package/folder/folder.gql.js +146 -112
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +51 -58
  459. package/folder/folder.types.js +2 -4
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +8 -3
  462. package/index.js +9 -27
  463. package/index.js.map +1 -1
  464. package/package.json +43 -35
  465. package/types.d.ts +27 -22
  466. package/types.js +6 -37
  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 +4 -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 +6 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +11 -18
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  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 +5 -0
  501. package/utils/decorators/isPageModel.js +13 -0
  502. package/utils/decorators/isPageModel.js.map +1 -0
  503. package/utils/ensureAuthentication.d.ts +2 -0
  504. package/utils/ensureAuthentication.js +12 -0
  505. package/utils/ensureAuthentication.js.map +1 -0
  506. package/utils/pickEntryFieldValues.d.ts +3 -0
  507. package/utils/pickEntryFieldValues.js +23 -0
  508. package/utils/pickEntryFieldValues.js.map +1 -0
  509. package/utils/resolve.d.ts +1 -1
  510. package/utils/resolve.js +6 -11
  511. package/utils/resolve.js.map +1 -1
  512. package/createAcoCrud.d.ts +0 -2
  513. package/createAcoCrud.js +0 -17
  514. package/createAcoCrud.js.map +0 -1
  515. package/createAcoFields.d.ts +0 -2
  516. package/createAcoFields.js +0 -40
  517. package/createAcoFields.js.map +0 -1
  518. package/createAcoHooks.d.ts +0 -2
  519. package/createAcoHooks.js +0 -11
  520. package/createAcoHooks.js.map +0 -1
  521. package/createAcoModels.d.ts +0 -2
  522. package/createAcoModels.js +0 -57
  523. package/createAcoModels.js.map +0 -1
  524. package/folder/folder.crud.d.ts +0 -3
  525. package/folder/folder.crud.js +0 -92
  526. package/folder/folder.crud.js.map +0 -1
  527. package/folder/folder.model.d.ts +0 -4
  528. package/folder/folder.model.js +0 -75
  529. package/folder/folder.model.js.map +0 -1
  530. package/folder/folder.so.d.ts +0 -3
  531. package/folder/folder.so.js +0 -151
  532. package/folder/folder.so.js.map +0 -1
  533. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  534. package/folder/onFolderBeforeDelete.hook.js +0 -53
  535. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  536. package/record/record.crud.d.ts +0 -3
  537. package/record/record.crud.js +0 -95
  538. package/record/record.crud.js.map +0 -1
  539. package/record/record.gql.d.ts +0 -3
  540. package/record/record.gql.js +0 -187
  541. package/record/record.gql.js.map +0 -1
  542. package/record/record.model.d.ts +0 -4
  543. package/record/record.model.js +0 -62
  544. package/record/record.model.js.map +0 -1
  545. package/record/record.so.d.ts +0 -3
  546. package/record/record.so.js +0 -139
  547. package/record/record.so.js.map +0 -1
  548. package/record/record.types.d.ts +0 -109
  549. package/record/record.types.js +0 -5
  550. package/record/record.types.js.map +0 -1
  551. package/utils/checkPermissions.d.ts +0 -2
  552. package/utils/checkPermissions.js +0 -14
  553. package/utils/checkPermissions.js.map +0 -1
  554. package/utils/createModelField.d.ts +0 -5
  555. package/utils/createModelField.js +0 -37
  556. package/utils/createModelField.js.map +0 -1
  557. package/utils/fieldResolver.d.ts +0 -16
  558. package/utils/fieldResolver.js +0 -44
  559. package/utils/fieldResolver.js.map +0 -1
  560. package/utils/getFieldValues.d.ts +0 -5
  561. package/utils/getFieldValues.js +0 -16
  562. package/utils/getFieldValues.js.map +0 -1
  563. package/utils/isInstallationPending.d.ts +0 -4
  564. package/utils/isInstallationPending.js +0 -21
  565. package/utils/isInstallationPending.js.map +0 -1
  566. package/utils/modelFactory.d.ts +0 -15
  567. package/utils/modelFactory.js +0 -25
  568. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ import { Path } from "../../../utils/Path.js";
3
+ import { Permissions, ROOT_FOLDER } from "@webiny/shared-aco";
4
+ export class CreateFlpUseCase {
5
+ constructor(context) {
6
+ this.context = context;
7
+ }
8
+ async execute(folder) {
9
+ try {
10
+ const {
11
+ id,
12
+ type,
13
+ slug,
14
+ parentId,
15
+ permissions
16
+ } = folder;
17
+ let parentFlp = null;
18
+ if (parentId) {
19
+ parentFlp = await this.context.aco.flp.get(parentId);
20
+ if (!parentFlp) {
21
+ throw new WebinyError("Parent folder level permission not found. Unable to create a new record in the FLP catalog.", "ERROR_CREATE_FLP_USE_CASE_PARENT_FLP_NOT_FOUND");
22
+ }
23
+ }
24
+ await this.context.aco.flp.create({
25
+ id,
26
+ type,
27
+ slug,
28
+ parentId: parentId ?? ROOT_FOLDER,
29
+ path: Path.create(slug, parentFlp?.path),
30
+ permissions: Permissions.create(permissions, parentFlp)
31
+ });
32
+ } catch (error) {
33
+ throw WebinyError.from(error, {
34
+ message: "Error while creating FLP",
35
+ code: "ERROR_CREATE_FLP_USE_CASE"
36
+ });
37
+ }
38
+ }
39
+ }
40
+
41
+ //# sourceMappingURL=CreateFlpUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","Path","Permissions","ROOT_FOLDER","CreateFlpUseCase","constructor","context","execute","folder","id","type","slug","parentId","permissions","parentFlp","aco","flp","get","create","path","error","from","message","code"],"sources":["CreateFlpUseCase.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"~/utils/Path.js\";\nimport { Permissions, ROOT_FOLDER } from \"@webiny/shared-aco\";\nimport type { CreateFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport type { FolderLevelPermission as IFolderLevelPermission } from \"~/flp/flp.types.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { AcoContext } from \"~/types.js\";\n\nexport class CreateFlpUseCase implements UseCaseAbstraction.Interface {\n constructor(private context: AcoContext) {}\n\n async execute(folder: Folder): Promise<void> {\n try {\n const { id, type, slug, parentId, permissions } = folder;\n let parentFlp: IFolderLevelPermission | null = null;\n\n if (parentId) {\n parentFlp = await this.context.aco.flp.get(parentId);\n\n if (!parentFlp) {\n throw new WebinyError(\n \"Parent folder level permission not found. Unable to create a new record in the FLP catalog.\",\n \"ERROR_CREATE_FLP_USE_CASE_PARENT_FLP_NOT_FOUND\"\n );\n }\n }\n\n await this.context.aco.flp.create({\n id,\n type,\n slug,\n parentId: parentId ?? ROOT_FOLDER,\n path: Path.create(slug, parentFlp?.path),\n permissions: Permissions.create(permissions, parentFlp)\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while creating FLP\",\n code: \"ERROR_CREATE_FLP_USE_CASE\"\n });\n }\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,IAAI;AACb,SAASC,WAAW,EAAEC,WAAW,QAAQ,oBAAoB;AAM7D,OAAO,MAAMC,gBAAgB,CAAyC;EAClEC,WAAWA,CAASC,OAAmB,EAAE;IAAA,KAArBA,OAAmB,GAAnBA,OAAmB;EAAG;EAE1C,MAAMC,OAAOA,CAACC,MAAc,EAAiB;IACzC,IAAI;MACA,MAAM;QAAEC,EAAE;QAAEC,IAAI;QAAEC,IAAI;QAAEC,QAAQ;QAAEC;MAAY,CAAC,GAAGL,MAAM;MACxD,IAAIM,SAAwC,GAAG,IAAI;MAEnD,IAAIF,QAAQ,EAAE;QACVE,SAAS,GAAG,MAAM,IAAI,CAACR,OAAO,CAACS,GAAG,CAACC,GAAG,CAACC,GAAG,CAACL,QAAQ,CAAC;QAEpD,IAAI,CAACE,SAAS,EAAE;UACZ,MAAM,IAAId,WAAW,CACjB,6FAA6F,EAC7F,gDACJ,CAAC;QACL;MACJ;MAEA,MAAM,IAAI,CAACM,OAAO,CAACS,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC;QAC9BT,EAAE;QACFC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,IAAIT,WAAW;QACjCgB,IAAI,EAAElB,IAAI,CAACiB,MAAM,CAACP,IAAI,EAAEG,SAAS,EAAEK,IAAI,CAAC;QACxCN,WAAW,EAAEX,WAAW,CAACgB,MAAM,CAACL,WAAW,EAAEC,SAAS;MAC1D,CAAC,CAAC;IACN,CAAC,CAAC,OAAOM,KAAK,EAAE;MACZ,MAAMpB,WAAW,CAACqB,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0BAA0B;QACnCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { Folder } from "../../../folder/folder.types.js";
2
+ export interface ICreateFlpUseCase {
3
+ execute: (folder: Folder) => Promise<void>;
4
+ }
5
+ export declare const CreateFlpUseCase: import("@webiny/di").Abstraction<ICreateFlpUseCase>;
6
+ export declare namespace CreateFlpUseCase {
7
+ type Interface = ICreateFlpUseCase;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ // Use Case Abstraction
4
+
5
+ export const CreateFlpUseCase = createAbstraction("CreateFlpUseCase");
6
+
7
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","CreateFlpUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\n// Use Case Abstraction\nexport interface ICreateFlpUseCase {\n execute: (folder: Folder) => Promise<void>;\n}\n\nexport const CreateFlpUseCase = createAbstraction<ICreateFlpUseCase>(\"CreateFlpUseCase\");\n\nexport namespace CreateFlpUseCase {\n export type Interface = ICreateFlpUseCase;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAGvD;;AAKA,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAoB,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { AcoContext } from "../../../types.js";
2
+ interface LegacyDeps {
3
+ context: AcoContext;
4
+ }
5
+ export declare const CreateFlpFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<LegacyDeps>;
6
+ export {};
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFlpUseCase } from "./CreateFlpUseCase.js";
3
+ import { CreateFlpUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ export const CreateFlpFeature = createFeature({
5
+ name: "CreateFlp",
6
+ register(container, deps) {
7
+ container.registerFactory(UseCaseAbstraction, () => {
8
+ return new CreateFlpUseCase(deps.context);
9
+ });
10
+ }
11
+ });
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateFlpUseCase","UseCaseAbstraction","CreateFlpFeature","name","register","container","deps","registerFactory","context"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { CreateFlpUseCase } from \"./CreateFlpUseCase.js\";\nimport { CreateFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport type { AcoContext } from \"~/types.js\";\n\ninterface LegacyDeps {\n context: AcoContext;\n}\n\nexport const CreateFlpFeature = createFeature({\n name: \"CreateFlp\",\n register(container: Container, deps: LegacyDeps) {\n container.registerFactory(UseCaseAbstraction, () => {\n return new CreateFlpUseCase(deps.context);\n });\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,gBAAgB;AACzB,SAASA,gBAAgB,IAAIC,kBAAkB;AAO/C,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAC;EAC1CI,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAoB,EAAEC,IAAgB,EAAE;IAC7CD,SAAS,CAACE,eAAe,CAACN,kBAAkB,EAAE,MAAM;MAChD,OAAO,IAAID,gBAAgB,CAACM,IAAI,CAACE,OAAO,CAAC;IAC7C,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { CreateFlpFeature } from "./feature.js";
2
+ export { CreateFlpUseCase } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { CreateFlpFeature } from "./feature.js";
2
+ export { CreateFlpUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateFlpFeature","CreateFlpUseCase"],"sources":["index.ts"],"sourcesContent":["export { CreateFlpFeature } from \"./feature.js\";\nexport { CreateFlpUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,gBAAgB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { CreateFlpUseCase } from "../CreateFlp/abstractions.js";
2
+ import { FolderAfterCreateHandler } from "../../../features/folder/CreateFolder/abstractions.js";
3
+ import type { FolderAfterCreateEvent } from "../../../features/folder/CreateFolder/events.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
+ declare class CreateFlpOnFolderCreatedHandlerImpl implements FolderAfterCreateHandler.Interface {
6
+ private createFlpUseCase;
7
+ private tasks?;
8
+ constructor(createFlpUseCase: CreateFlpUseCase.Interface, tasks?: TaskService.Interface | undefined);
9
+ handle(event: FolderAfterCreateEvent): Promise<void>;
10
+ }
11
+ export declare const CreateFlpOnFolderCreatedHandler: typeof CreateFlpOnFolderCreatedHandlerImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-core/features/EventPublisher").DomainEvent<import("~/features/folder/CreateFolder/abstractions.js").FolderAfterCreatePayload>>>;
13
+ };
14
+ export {};
@@ -0,0 +1,37 @@
1
+ import { CreateFlpUseCase } from "../CreateFlp/abstractions.js";
2
+ import { FolderAfterCreateHandler } from "../../folder/CreateFolder/abstractions.js";
3
+ import { CREATE_FLP_TASK_ID } from "../../../flp/tasks/index.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
+ class CreateFlpOnFolderCreatedHandlerImpl {
6
+ constructor(createFlpUseCase, tasks) {
7
+ this.createFlpUseCase = createFlpUseCase;
8
+ this.tasks = tasks;
9
+ }
10
+ async handle(event) {
11
+ const {
12
+ folder
13
+ } = event.payload;
14
+ try {
15
+ if (this.tasks) {
16
+ await this.tasks.trigger({
17
+ definition: CREATE_FLP_TASK_ID,
18
+ input: {
19
+ folder
20
+ }
21
+ });
22
+ } else {
23
+ await this.createFlpUseCase.execute(folder);
24
+ }
25
+ } catch {
26
+ // Ignore errors
27
+ }
28
+ }
29
+ }
30
+ export const CreateFlpOnFolderCreatedHandler = FolderAfterCreateHandler.createImplementation({
31
+ implementation: CreateFlpOnFolderCreatedHandlerImpl,
32
+ dependencies: [CreateFlpUseCase, [TaskService, {
33
+ optional: true
34
+ }]]
35
+ });
36
+
37
+ //# sourceMappingURL=CreateFlpOnFolderCreatedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateFlpUseCase","FolderAfterCreateHandler","CREATE_FLP_TASK_ID","TaskService","CreateFlpOnFolderCreatedHandlerImpl","constructor","createFlpUseCase","tasks","handle","event","folder","payload","trigger","definition","input","execute","CreateFlpOnFolderCreatedHandler","createImplementation","implementation","dependencies","optional"],"sources":["CreateFlpOnFolderCreatedHandler.ts"],"sourcesContent":["import { CreateFlpUseCase } from \"../CreateFlp/abstractions.js\";\nimport { FolderAfterCreateHandler } from \"~/features/folder/CreateFolder/abstractions.js\";\nimport type { FolderAfterCreateEvent } from \"~/features/folder/CreateFolder/events.js\";\nimport type { ICreateFlpTaskInput } from \"~/types.js\";\nimport { CREATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nclass CreateFlpOnFolderCreatedHandlerImpl implements FolderAfterCreateHandler.Interface {\n constructor(\n private createFlpUseCase: CreateFlpUseCase.Interface,\n private tasks?: TaskService.Interface\n ) {}\n\n async handle(event: FolderAfterCreateEvent): Promise<void> {\n const { folder } = event.payload;\n\n try {\n if (this.tasks) {\n await this.tasks.trigger<ICreateFlpTaskInput>({\n definition: CREATE_FLP_TASK_ID,\n input: { folder }\n });\n } else {\n await this.createFlpUseCase.execute(folder);\n }\n } catch {\n // Ignore errors\n }\n }\n}\n\nexport const CreateFlpOnFolderCreatedHandler = FolderAfterCreateHandler.createImplementation({\n implementation: CreateFlpOnFolderCreatedHandlerImpl,\n dependencies: [CreateFlpUseCase, [TaskService, { optional: true }]]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,wBAAwB;AAGjC,SAASC,kBAAkB;AAC3B,SAASC,WAAW,QAAQ,qDAAqD;AAEjF,MAAMC,mCAAmC,CAA+C;EACpFC,WAAWA,CACCC,gBAA4C,EAC5CC,KAA6B,EACvC;IAAA,KAFUD,gBAA4C,GAA5CA,gBAA4C;IAAA,KAC5CC,KAA6B,GAA7BA,KAA6B;EACtC;EAEH,MAAMC,MAAMA,CAACC,KAA6B,EAAiB;IACvD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,IAAI;MACA,IAAI,IAAI,CAACJ,KAAK,EAAE;QACZ,MAAM,IAAI,CAACA,KAAK,CAACK,OAAO,CAAsB;UAC1CC,UAAU,EAAEX,kBAAkB;UAC9BY,KAAK,EAAE;YAAEJ;UAAO;QACpB,CAAC,CAAC;MACN,CAAC,MAAM;QACH,MAAM,IAAI,CAACJ,gBAAgB,CAACS,OAAO,CAACL,MAAM,CAAC;MAC/C;IACJ,CAAC,CAAC,MAAM;MACJ;IAAA;EAER;AACJ;AAEA,OAAO,MAAMM,+BAA+B,GAAGf,wBAAwB,CAACgB,oBAAoB,CAAC;EACzFC,cAAc,EAAEd,mCAAmC;EACnDe,YAAY,EAAE,CAACnB,gBAAgB,EAAE,CAACG,WAAW,EAAE;IAAEiB,QAAQ,EAAE;EAAK,CAAC,CAAC;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const CreateFlpOnFolderCreatedFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFlpOnFolderCreatedHandler } from "./CreateFlpOnFolderCreatedHandler.js";
3
+ export const CreateFlpOnFolderCreatedFeature = createFeature({
4
+ name: "CreateFlpOnFolderCreated",
5
+ register(container) {
6
+ container.register(CreateFlpOnFolderCreatedHandler);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateFlpOnFolderCreatedHandler","CreateFlpOnFolderCreatedFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFlpOnFolderCreatedHandler } from \"./CreateFlpOnFolderCreatedHandler.js\";\n\nexport const CreateFlpOnFolderCreatedFeature = createFeature({\n name: \"CreateFlpOnFolderCreated\",\n register(container) {\n container.register(CreateFlpOnFolderCreatedHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,+BAA+B;AAExC,OAAO,MAAMC,+BAA+B,GAAGF,aAAa,CAAC;EACzDG,IAAI,EAAE,0BAA0B;EAChCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,+BAA+B,CAAC;EACvD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { CreateFlpOnFolderCreatedFeature } from "./feature.js";
@@ -0,0 +1,3 @@
1
+ export { CreateFlpOnFolderCreatedFeature } from "./feature.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateFlpOnFolderCreatedFeature"],"sources":["index.ts"],"sourcesContent":["export { CreateFlpOnFolderCreatedFeature } from \"./feature.js\";\n"],"mappings":"AAAA,SAASA,+BAA+B","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { DeleteFlpUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import type { Folder } from "../../../folder/folder.types.js";
3
+ import type { AcoContext } from "../../../types.js";
4
+ export declare class DeleteFlpUseCase implements UseCaseAbstraction.Interface {
5
+ private context;
6
+ constructor(context: AcoContext);
7
+ execute(folder: Folder): Promise<void>;
8
+ }
@@ -0,0 +1,23 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ export class DeleteFlpUseCase {
3
+ constructor(context) {
4
+ this.context = context;
5
+ }
6
+ async execute(folder) {
7
+ try {
8
+ if (!folder) {
9
+ throw new WebinyError("Missing `folder` from the task input, I can't delete the record from the FLP catalog.", "ERROR_DELETE_FLP_USE_CASE_FOLDER_NOT_PROVIDED", {
10
+ folder
11
+ });
12
+ }
13
+ await this.context.aco.flp.delete(folder.id);
14
+ } catch (error) {
15
+ throw WebinyError.from(error, {
16
+ message: "Error while deleting FLP",
17
+ code: "ERROR_DELETE_FLP_USE_CASE"
18
+ });
19
+ }
20
+ }
21
+ }
22
+
23
+ //# sourceMappingURL=DeleteFlpUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","DeleteFlpUseCase","constructor","context","execute","folder","aco","flp","delete","id","error","from","message","code"],"sources":["DeleteFlpUseCase.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { DeleteFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { AcoContext } from \"~/types.js\";\n\nexport class DeleteFlpUseCase implements UseCaseAbstraction.Interface {\n constructor(private context: AcoContext) {}\n\n async execute(folder: Folder): Promise<void> {\n try {\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder` from the task input, I can't delete the record from the FLP catalog.\",\n \"ERROR_DELETE_FLP_USE_CASE_FOLDER_NOT_PROVIDED\",\n { folder }\n );\n }\n await this.context.aco.flp.delete(folder.id);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while deleting FLP\",\n code: \"ERROR_DELETE_FLP_USE_CASE\"\n });\n }\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAK3C,OAAO,MAAMC,gBAAgB,CAAyC;EAClEC,WAAWA,CAASC,OAAmB,EAAE;IAAA,KAArBA,OAAmB,GAAnBA,OAAmB;EAAG;EAE1C,MAAMC,OAAOA,CAACC,MAAc,EAAiB;IACzC,IAAI;MACA,IAAI,CAACA,MAAM,EAAE;QACT,MAAM,IAAIL,WAAW,CACjB,uFAAuF,EACvF,+CAA+C,EAC/C;UAAEK;QAAO,CACb,CAAC;MACL;MACA,MAAM,IAAI,CAACF,OAAO,CAACG,GAAG,CAACC,GAAG,CAACC,MAAM,CAACH,MAAM,CAACI,EAAE,CAAC;IAChD,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,MAAMV,WAAW,CAACW,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0BAA0B;QACnCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { Folder } from "../../../folder/folder.types.js";
2
+ export interface IDeleteFlpUseCase {
3
+ execute: (folder: Folder) => Promise<void>;
4
+ }
5
+ export declare const DeleteFlpUseCase: import("@webiny/di").Abstraction<IDeleteFlpUseCase>;
6
+ export declare namespace DeleteFlpUseCase {
7
+ type Interface = IDeleteFlpUseCase;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ // Use Case Abstraction
4
+
5
+ export const DeleteFlpUseCase = createAbstraction("DeleteFlpUseCase");
6
+
7
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DeleteFlpUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\n// Use Case Abstraction\nexport interface IDeleteFlpUseCase {\n execute: (folder: Folder) => Promise<void>;\n}\n\nexport const DeleteFlpUseCase = createAbstraction<IDeleteFlpUseCase>(\"DeleteFlpUseCase\");\n\nexport namespace DeleteFlpUseCase {\n export type Interface = IDeleteFlpUseCase;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAGvD;;AAKA,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAoB,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { AcoContext } from "../../../types.js";
2
+ interface LegacyDeps {
3
+ context: AcoContext;
4
+ }
5
+ export declare const DeleteFlpFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<LegacyDeps>;
6
+ export {};
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { DeleteFlpUseCase } from "./DeleteFlpUseCase.js";
3
+ import { DeleteFlpUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ export const DeleteFlpFeature = createFeature({
5
+ name: "DeleteFlp",
6
+ register(container, deps) {
7
+ container.registerFactory(UseCaseAbstraction, () => {
8
+ return new DeleteFlpUseCase(deps.context);
9
+ });
10
+ }
11
+ });
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DeleteFlpUseCase","UseCaseAbstraction","DeleteFlpFeature","name","register","container","deps","registerFactory","context"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { DeleteFlpUseCase } from \"./DeleteFlpUseCase.js\";\nimport { DeleteFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport type { AcoContext } from \"~/types.js\";\n\ninterface LegacyDeps {\n context: AcoContext;\n}\n\nexport const DeleteFlpFeature = createFeature({\n name: \"DeleteFlp\",\n register(container: Container, deps: LegacyDeps) {\n container.registerFactory(UseCaseAbstraction, () => {\n return new DeleteFlpUseCase(deps.context);\n });\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,gBAAgB;AACzB,SAASA,gBAAgB,IAAIC,kBAAkB;AAO/C,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAC;EAC1CI,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAoB,EAAEC,IAAgB,EAAE;IAC7CD,SAAS,CAACE,eAAe,CAACN,kBAAkB,EAAE,MAAM;MAChD,OAAO,IAAID,gBAAgB,CAACM,IAAI,CAACE,OAAO,CAAC;IAC7C,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { DeleteFlpFeature } from "./feature.js";
2
+ export { DeleteFlpUseCase } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { DeleteFlpFeature } from "./feature.js";
2
+ export { DeleteFlpUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteFlpFeature","DeleteFlpUseCase"],"sources":["index.ts"],"sourcesContent":["export { DeleteFlpFeature } from \"./feature.js\";\nexport { DeleteFlpUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,gBAAgB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { DeleteFlpUseCase } from "../DeleteFlp/abstractions.js";
2
+ import { FolderAfterDeleteHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
3
+ import type { FolderAfterDeleteEvent } from "../../../features/folder/DeleteFolder/events.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
+ declare class DeleteFlpOnFolderDeletedHandlerImpl implements FolderAfterDeleteHandler.Interface {
6
+ private deleteFlpUseCase;
7
+ private tasks?;
8
+ constructor(deleteFlpUseCase: DeleteFlpUseCase.Interface, tasks?: TaskService.Interface | undefined);
9
+ handle(event: FolderAfterDeleteEvent): Promise<void>;
10
+ }
11
+ export declare const DeleteFlpOnFolderDeletedHandler: typeof DeleteFlpOnFolderDeletedHandlerImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-core/features/EventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderAfterDeletePayload>>>;
13
+ };
14
+ export {};
@@ -0,0 +1,37 @@
1
+ import { DeleteFlpUseCase } from "../DeleteFlp/abstractions.js";
2
+ import { FolderAfterDeleteHandler } from "../../folder/DeleteFolder/abstractions.js";
3
+ import { DELETE_FLP_TASK_ID } from "../../../flp/tasks/index.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
+ class DeleteFlpOnFolderDeletedHandlerImpl {
6
+ constructor(deleteFlpUseCase, tasks) {
7
+ this.deleteFlpUseCase = deleteFlpUseCase;
8
+ this.tasks = tasks;
9
+ }
10
+ async handle(event) {
11
+ const {
12
+ folder
13
+ } = event.payload;
14
+ try {
15
+ if (this.tasks) {
16
+ await this.tasks.trigger({
17
+ definition: DELETE_FLP_TASK_ID,
18
+ input: {
19
+ folder
20
+ }
21
+ });
22
+ } else {
23
+ await this.deleteFlpUseCase.execute(folder);
24
+ }
25
+ } catch {
26
+ // Ignore errors
27
+ }
28
+ }
29
+ }
30
+ export const DeleteFlpOnFolderDeletedHandler = FolderAfterDeleteHandler.createImplementation({
31
+ implementation: DeleteFlpOnFolderDeletedHandlerImpl,
32
+ dependencies: [DeleteFlpUseCase, [TaskService, {
33
+ optional: true
34
+ }]]
35
+ });
36
+
37
+ //# sourceMappingURL=DeleteFlpOnFolderDeletedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteFlpUseCase","FolderAfterDeleteHandler","DELETE_FLP_TASK_ID","TaskService","DeleteFlpOnFolderDeletedHandlerImpl","constructor","deleteFlpUseCase","tasks","handle","event","folder","payload","trigger","definition","input","execute","DeleteFlpOnFolderDeletedHandler","createImplementation","implementation","dependencies","optional"],"sources":["DeleteFlpOnFolderDeletedHandler.ts"],"sourcesContent":["import { DeleteFlpUseCase } from \"../DeleteFlp/abstractions.js\";\nimport { FolderAfterDeleteHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderAfterDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport type { IDeleteFlpTaskInput } from \"~/types.js\";\nimport { DELETE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nclass DeleteFlpOnFolderDeletedHandlerImpl implements FolderAfterDeleteHandler.Interface {\n constructor(\n private deleteFlpUseCase: DeleteFlpUseCase.Interface,\n private tasks?: TaskService.Interface\n ) {}\n\n async handle(event: FolderAfterDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n try {\n if (this.tasks) {\n await this.tasks.trigger<IDeleteFlpTaskInput>({\n definition: DELETE_FLP_TASK_ID,\n input: { folder }\n });\n } else {\n await this.deleteFlpUseCase.execute(folder);\n }\n } catch {\n // Ignore errors\n }\n }\n}\n\nexport const DeleteFlpOnFolderDeletedHandler = FolderAfterDeleteHandler.createImplementation({\n implementation: DeleteFlpOnFolderDeletedHandlerImpl,\n dependencies: [DeleteFlpUseCase, [TaskService, { optional: true }]]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,wBAAwB;AAGjC,SAASC,kBAAkB;AAC3B,SAASC,WAAW,QAAQ,qDAAqD;AAEjF,MAAMC,mCAAmC,CAA+C;EACpFC,WAAWA,CACCC,gBAA4C,EAC5CC,KAA6B,EACvC;IAAA,KAFUD,gBAA4C,GAA5CA,gBAA4C;IAAA,KAC5CC,KAA6B,GAA7BA,KAA6B;EACtC;EAEH,MAAMC,MAAMA,CAACC,KAA6B,EAAiB;IACvD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,IAAI;MACA,IAAI,IAAI,CAACJ,KAAK,EAAE;QACZ,MAAM,IAAI,CAACA,KAAK,CAACK,OAAO,CAAsB;UAC1CC,UAAU,EAAEX,kBAAkB;UAC9BY,KAAK,EAAE;YAAEJ;UAAO;QACpB,CAAC,CAAC;MACN,CAAC,MAAM;QACH,MAAM,IAAI,CAACJ,gBAAgB,CAACS,OAAO,CAACL,MAAM,CAAC;MAC/C;IACJ,CAAC,CAAC,MAAM;MACJ;IAAA;EAER;AACJ;AAEA,OAAO,MAAMM,+BAA+B,GAAGf,wBAAwB,CAACgB,oBAAoB,CAAC;EACzFC,cAAc,EAAEd,mCAAmC;EACnDe,YAAY,EAAE,CAACnB,gBAAgB,EAAE,CAACG,WAAW,EAAE;IAAEiB,QAAQ,EAAE;EAAK,CAAC,CAAC;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const DeleteFlpOnFolderDeletedFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { DeleteFlpOnFolderDeletedHandler } from "./DeleteFlpOnFolderDeletedHandler.js";
3
+ export const DeleteFlpOnFolderDeletedFeature = createFeature({
4
+ name: "DeleteFlpOnFolderDeleted",
5
+ register(container) {
6
+ container.register(DeleteFlpOnFolderDeletedHandler);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DeleteFlpOnFolderDeletedHandler","DeleteFlpOnFolderDeletedFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteFlpOnFolderDeletedHandler } from \"./DeleteFlpOnFolderDeletedHandler.js\";\n\nexport const DeleteFlpOnFolderDeletedFeature = createFeature({\n name: \"DeleteFlpOnFolderDeleted\",\n register(container) {\n container.register(DeleteFlpOnFolderDeletedHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,+BAA+B;AAExC,OAAO,MAAMC,+BAA+B,GAAGF,aAAa,CAAC;EACzDG,IAAI,EAAE,0BAA0B;EAChCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,+BAA+B,CAAC;EACvD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { DeleteFlpOnFolderDeletedFeature } from "./feature.js";
@@ -0,0 +1,3 @@
1
+ export { DeleteFlpOnFolderDeletedFeature } from "./feature.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteFlpOnFolderDeletedFeature"],"sources":["index.ts"],"sourcesContent":["export { DeleteFlpOnFolderDeletedFeature } from \"./feature.js\";\n"],"mappings":"AAAA,SAASA,+BAA+B","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
2
+ import { WcpContext } from "@webiny/api-core/features/WcpContext";
3
+ import { ListUserTeamsUseCase } from "@webiny/api-core/features/ListUserTeams";
4
+ import { type CanAccessFolderContentParams, type CanAccessFolderParams } from "./useCases/index.js";
5
+ import { FolderLevelPermissions as FolderLevelPermissionsAbstraction } from "./abstractions.js";
6
+ import type { FolderLevelPermission, FolderPermission, ListFlpsParams } from "../../../types.js";
7
+ import { ListFlpsUseCase } from "../../../features/flp/ListFlps/index.js";
8
+ import { GetFlpUseCase } from "../../../features/flp/GetFlp/index.js";
9
+ declare class FolderLevelPermissionsImpl implements FolderLevelPermissionsAbstraction.Interface {
10
+ private identityContext;
11
+ private wcpContext;
12
+ private listUserTeamsUseCase;
13
+ private getFlpUseCase;
14
+ private listFlpsUseCase;
15
+ constructor(identityContext: IdentityContext.Interface, wcpContext: WcpContext.Interface, listUserTeamsUseCase: ListUserTeamsUseCase.Interface, getFlpUseCase: GetFlpUseCase.Interface, listFlpsUseCase: ListFlpsUseCase.Interface);
16
+ canUseFolderLevelPermissions(enabled?: boolean): boolean;
17
+ canUseTeams(): boolean;
18
+ canCreateFolderInRoot(): boolean;
19
+ permissionsIncludeNonInheritedPermissions(permissions: FolderPermission[]): boolean;
20
+ canAccessFolder(params: CanAccessFolderParams): Promise<boolean>;
21
+ canAccessFolderContent(params: CanAccessFolderContentParams): Promise<boolean>;
22
+ ensureCanAccessFolder(params: CanAccessFolderParams): Promise<void>;
23
+ ensureCanAccessFolderContent(params: CanAccessFolderContentParams): Promise<void>;
24
+ canManageFolderContent(flp: FolderLevelPermission): Promise<boolean>;
25
+ canManageFolderStructure(flp: FolderLevelPermission): Promise<boolean>;
26
+ canManageFolderPermissions(flp: FolderLevelPermission): Promise<boolean>;
27
+ getDefaultPermissions(permissions: FolderPermission[]): Promise<FolderPermission[]>;
28
+ listFolderLevelPermissions(params: ListFlpsParams): Promise<Array<{
29
+ id: string;
30
+ permissions: FolderPermission[];
31
+ }>>;
32
+ getFolderLevelPermissions(id: string): Promise<FolderPermission[]>;
33
+ }
34
+ export declare const FolderLevelPermissions: import("@webiny/di").Implementation<typeof FolderLevelPermissionsImpl>;
35
+ export {};
@@ -0,0 +1,133 @@
1
+ import { createImplementation } from "@webiny/di";
2
+ import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
+ import { WcpContext } from "@webiny/api-core/features/WcpContext";
4
+ import { ListUserTeamsUseCase } from "@webiny/api-core/features/ListUserTeams";
5
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
6
+ import { CanAccessFolder, CanAccessFolderContent, CanCreateFolderInRoot, CheckNotInheritedPermissions, GetDefaultPermissions, GetDefaultPermissionsWithTeams } from "./useCases/index.js";
7
+ import { FolderLevelPermissions as FolderLevelPermissionsAbstraction } from "./abstractions.js";
8
+ import { ListFlpsUseCase } from "../ListFlps/index.js";
9
+ import { GetFlpUseCase } from "../GetFlp/index.js";
10
+ class FolderLevelPermissionsImpl {
11
+ constructor(identityContext, wcpContext, listUserTeamsUseCase, getFlpUseCase, listFlpsUseCase) {
12
+ this.identityContext = identityContext;
13
+ this.wcpContext = wcpContext;
14
+ this.listUserTeamsUseCase = listUserTeamsUseCase;
15
+ this.getFlpUseCase = getFlpUseCase;
16
+ this.listFlpsUseCase = listFlpsUseCase;
17
+ }
18
+ canUseFolderLevelPermissions(enabled) {
19
+ if (enabled === false) {
20
+ return false;
21
+ }
22
+ const identity = this.identityContext.getIdentity();
23
+
24
+ // FLPs only work with authenticated identities (logged-in users).
25
+ if (!identity) {
26
+ return false;
27
+ }
28
+
29
+ // At the moment, we only want FLP to be used with identities of type "admin".
30
+ // This temporarily addresses the issue of API keys not being able to access content, because
31
+ // FLPs doesn't work with them. Once we start adding FLPs to API keys, we can remove this check.
32
+ if (identity.type !== "admin") {
33
+ return false;
34
+ }
35
+ return this.wcpContext.canUseFolderLevelPermissions();
36
+ }
37
+ canUseTeams() {
38
+ return this.wcpContext.canUseTeams();
39
+ }
40
+ canCreateFolderInRoot() {
41
+ const canCreateFolderInRootUseCase = new CanCreateFolderInRoot();
42
+ return canCreateFolderInRootUseCase.execute();
43
+ }
44
+ permissionsIncludeNonInheritedPermissions(permissions) {
45
+ const checkNotInheritedPermissionsUseCase = new CheckNotInheritedPermissions();
46
+ return checkNotInheritedPermissionsUseCase.execute(permissions);
47
+ }
48
+ async canAccessFolder(params) {
49
+ if (!this.canUseFolderLevelPermissions() || !this.identityContext.isAuthorizationEnabled()) {
50
+ return true;
51
+ }
52
+ const canAccessFolderUseCase = new CanAccessFolder(this.identityContext);
53
+ return await canAccessFolderUseCase.execute(params);
54
+ }
55
+ async canAccessFolderContent(params) {
56
+ const canUseFlp = this.canUseFolderLevelPermissions();
57
+ const authEnabled = this.identityContext.isAuthorizationEnabled();
58
+ if (!canUseFlp || !authEnabled) {
59
+ return true;
60
+ }
61
+ const canAccessFolderContentUseCase = new CanAccessFolderContent(this.identityContext);
62
+ return await canAccessFolderContentUseCase.execute(params);
63
+ }
64
+ async ensureCanAccessFolder(params) {
65
+ const result = await this.canAccessFolder(params);
66
+ if (!result) {
67
+ throw new NotAuthorizedError();
68
+ }
69
+ }
70
+ async ensureCanAccessFolderContent(params) {
71
+ const result = await this.canAccessFolderContent(params);
72
+ if (!result) {
73
+ throw new NotAuthorizedError();
74
+ }
75
+ }
76
+ async canManageFolderContent(flp) {
77
+ if (!this.canUseFolderLevelPermissions() || !this.identityContext.isAuthorizationEnabled()) {
78
+ return true;
79
+ }
80
+ return await this.canAccessFolderContent({
81
+ permissions: flp.permissions,
82
+ rwd: "w"
83
+ });
84
+ }
85
+ async canManageFolderStructure(flp) {
86
+ if (!this.canUseFolderLevelPermissions() || !this.identityContext.isAuthorizationEnabled()) {
87
+ return true;
88
+ }
89
+ return await this.canAccessFolder({
90
+ permissions: flp.permissions,
91
+ rwd: "w"
92
+ });
93
+ }
94
+ async canManageFolderPermissions(flp) {
95
+ if (!this.canUseFolderLevelPermissions()) {
96
+ return false;
97
+ }
98
+ if (!this.identityContext.isAuthorizationEnabled()) {
99
+ return true;
100
+ }
101
+ return await this.canAccessFolder({
102
+ permissions: flp.permissions,
103
+ rwd: "w",
104
+ managePermissions: true
105
+ });
106
+ }
107
+ getDefaultPermissions(permissions) {
108
+ const getDefaultPermissionsUseCase = new GetDefaultPermissions(this.identityContext);
109
+ if (this.canUseTeams()) {
110
+ const getDefaultPermissionsWithTeams = new GetDefaultPermissionsWithTeams(this.identityContext, this.listUserTeamsUseCase, getDefaultPermissionsUseCase);
111
+ return getDefaultPermissionsWithTeams.execute(permissions);
112
+ }
113
+ return getDefaultPermissionsUseCase.execute(permissions);
114
+ }
115
+ async listFolderLevelPermissions(params) {
116
+ const flps = await this.listFlpsUseCase.execute(params);
117
+ return Promise.all(flps.map(async flp => ({
118
+ id: flp.id,
119
+ permissions: await this.getDefaultPermissions(flp.permissions)
120
+ })));
121
+ }
122
+ async getFolderLevelPermissions(id) {
123
+ const flp = await this.getFlpUseCase.execute(id);
124
+ return await this.getDefaultPermissions(flp?.permissions ?? []);
125
+ }
126
+ }
127
+ export const FolderLevelPermissions = createImplementation({
128
+ abstraction: FolderLevelPermissionsAbstraction,
129
+ implementation: FolderLevelPermissionsImpl,
130
+ dependencies: [IdentityContext, WcpContext, ListUserTeamsUseCase, GetFlpUseCase, ListFlpsUseCase]
131
+ });
132
+
133
+ //# sourceMappingURL=FolderLevelPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImplementation","IdentityContext","WcpContext","ListUserTeamsUseCase","NotAuthorizedError","CanAccessFolder","CanAccessFolderContent","CanCreateFolderInRoot","CheckNotInheritedPermissions","GetDefaultPermissions","GetDefaultPermissionsWithTeams","FolderLevelPermissions","FolderLevelPermissionsAbstraction","ListFlpsUseCase","GetFlpUseCase","FolderLevelPermissionsImpl","constructor","identityContext","wcpContext","listUserTeamsUseCase","getFlpUseCase","listFlpsUseCase","canUseFolderLevelPermissions","enabled","identity","getIdentity","type","canUseTeams","canCreateFolderInRoot","canCreateFolderInRootUseCase","execute","permissionsIncludeNonInheritedPermissions","permissions","checkNotInheritedPermissionsUseCase","canAccessFolder","params","isAuthorizationEnabled","canAccessFolderUseCase","canAccessFolderContent","canUseFlp","authEnabled","canAccessFolderContentUseCase","ensureCanAccessFolder","result","ensureCanAccessFolderContent","canManageFolderContent","flp","rwd","canManageFolderStructure","canManageFolderPermissions","managePermissions","getDefaultPermissions","getDefaultPermissionsUseCase","getDefaultPermissionsWithTeams","listFolderLevelPermissions","flps","Promise","all","map","id","getFolderLevelPermissions","abstraction","implementation","dependencies"],"sources":["FolderLevelPermissions.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { WcpContext } from \"@webiny/api-core/features/WcpContext\";\nimport { ListUserTeamsUseCase } from \"@webiny/api-core/features/ListUserTeams\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport {\n CanAccessFolder,\n CanAccessFolderContent,\n type CanAccessFolderContentParams,\n type CanAccessFolderParams,\n CanCreateFolderInRoot,\n CheckNotInheritedPermissions,\n GetDefaultPermissions,\n GetDefaultPermissionsWithTeams\n} from \"./useCases/index.js\";\nimport { FolderLevelPermissions as FolderLevelPermissionsAbstraction } from \"./abstractions.js\";\nimport type { FolderLevelPermission, FolderPermission, ListFlpsParams } from \"~/types.js\";\nimport { ListFlpsUseCase } from \"~/features/flp/ListFlps/index.js\";\nimport { GetFlpUseCase } from \"~/features/flp/GetFlp/index.js\";\n\nclass FolderLevelPermissionsImpl implements FolderLevelPermissionsAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private wcpContext: WcpContext.Interface,\n private listUserTeamsUseCase: ListUserTeamsUseCase.Interface,\n private getFlpUseCase: GetFlpUseCase.Interface,\n private listFlpsUseCase: ListFlpsUseCase.Interface\n ) {}\n\n public canUseFolderLevelPermissions(enabled?: boolean): boolean {\n if (enabled === false) {\n return false;\n }\n\n const identity = this.identityContext.getIdentity();\n\n // FLPs only work with authenticated identities (logged-in users).\n if (!identity) {\n return false;\n }\n\n // At the moment, we only want FLP to be used with identities of type \"admin\".\n // This temporarily addresses the issue of API keys not being able to access content, because\n // FLPs doesn't work with them. Once we start adding FLPs to API keys, we can remove this check.\n if (identity.type !== \"admin\") {\n return false;\n }\n\n return this.wcpContext.canUseFolderLevelPermissions();\n }\n\n public canUseTeams(): boolean {\n return this.wcpContext.canUseTeams();\n }\n\n public canCreateFolderInRoot(): boolean {\n const canCreateFolderInRootUseCase = new CanCreateFolderInRoot();\n return canCreateFolderInRootUseCase.execute();\n }\n\n public permissionsIncludeNonInheritedPermissions(permissions: FolderPermission[]): boolean {\n const checkNotInheritedPermissionsUseCase = new CheckNotInheritedPermissions();\n return checkNotInheritedPermissionsUseCase.execute(permissions);\n }\n\n public async canAccessFolder(params: CanAccessFolderParams): Promise<boolean> {\n if (\n !this.canUseFolderLevelPermissions() ||\n !this.identityContext.isAuthorizationEnabled()\n ) {\n return true;\n }\n\n const canAccessFolderUseCase = new CanAccessFolder(this.identityContext);\n return await canAccessFolderUseCase.execute(params);\n }\n\n public async canAccessFolderContent(params: CanAccessFolderContentParams): Promise<boolean> {\n const canUseFlp = this.canUseFolderLevelPermissions();\n const authEnabled = this.identityContext.isAuthorizationEnabled();\n\n if (!canUseFlp || !authEnabled) {\n return true;\n }\n\n const canAccessFolderContentUseCase = new CanAccessFolderContent(this.identityContext);\n return await canAccessFolderContentUseCase.execute(params);\n }\n\n public async ensureCanAccessFolder(params: CanAccessFolderParams): Promise<void> {\n const result = await this.canAccessFolder(params);\n if (!result) {\n throw new NotAuthorizedError();\n }\n }\n\n public async ensureCanAccessFolderContent(params: CanAccessFolderContentParams): Promise<void> {\n const result = await this.canAccessFolderContent(params);\n if (!result) {\n throw new NotAuthorizedError();\n }\n }\n\n public async canManageFolderContent(flp: FolderLevelPermission): Promise<boolean> {\n if (\n !this.canUseFolderLevelPermissions() ||\n !this.identityContext.isAuthorizationEnabled()\n ) {\n return true;\n }\n\n return await this.canAccessFolderContent({ permissions: flp.permissions, rwd: \"w\" });\n }\n\n public async canManageFolderStructure(flp: FolderLevelPermission): Promise<boolean> {\n if (\n !this.canUseFolderLevelPermissions() ||\n !this.identityContext.isAuthorizationEnabled()\n ) {\n return true;\n }\n\n return await this.canAccessFolder({ permissions: flp.permissions, rwd: \"w\" });\n }\n\n public async canManageFolderPermissions(flp: FolderLevelPermission): Promise<boolean> {\n if (!this.canUseFolderLevelPermissions()) {\n return false;\n }\n\n if (!this.identityContext.isAuthorizationEnabled()) {\n return true;\n }\n\n return await this.canAccessFolder({\n permissions: flp.permissions,\n rwd: \"w\",\n managePermissions: true\n });\n }\n\n public getDefaultPermissions(permissions: FolderPermission[]): Promise<FolderPermission[]> {\n const getDefaultPermissionsUseCase = new GetDefaultPermissions(this.identityContext);\n\n if (this.canUseTeams()) {\n const getDefaultPermissionsWithTeams = new GetDefaultPermissionsWithTeams(\n this.identityContext,\n this.listUserTeamsUseCase,\n getDefaultPermissionsUseCase\n );\n\n return getDefaultPermissionsWithTeams.execute(permissions);\n }\n\n return getDefaultPermissionsUseCase.execute(permissions);\n }\n\n public async listFolderLevelPermissions(params: ListFlpsParams): Promise<\n Array<{\n id: string;\n permissions: FolderPermission[];\n }>\n > {\n const flps = await this.listFlpsUseCase.execute(params);\n\n return Promise.all(\n flps.map(async flp => ({\n id: flp.id,\n permissions: await this.getDefaultPermissions(flp.permissions)\n }))\n );\n }\n\n public async getFolderLevelPermissions(id: string): Promise<FolderPermission[]> {\n const flp = await this.getFlpUseCase.execute(id);\n return await this.getDefaultPermissions(flp?.permissions ?? []);\n }\n}\n\nexport const FolderLevelPermissions = createImplementation({\n abstraction: FolderLevelPermissionsAbstraction,\n implementation: FolderLevelPermissionsImpl,\n dependencies: [\n IdentityContext,\n WcpContext,\n ListUserTeamsUseCase,\n GetFlpUseCase,\n ListFlpsUseCase\n ]\n});\n"],"mappings":"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","ignoreList":[]}