@webiny/api-aco 0.0.0-unstable.085ff6572f → 0.0.0-unstable.0d717d18dd

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 (572) hide show
  1. package/AcoFeature.d.ts +5 -0
  2. package/AcoFeature.js +122 -0
  3. package/AcoFeature.js.map +1 -0
  4. package/AcoInitializer.d.ts +25 -0
  5. package/AcoInitializer.js +79 -0
  6. package/AcoInitializer.js.map +1 -0
  7. package/README.md +6 -28
  8. package/constants.d.ts +2 -0
  9. package/constants.js +5 -0
  10. package/constants.js.map +1 -0
  11. package/createAcoGraphQL.d.ts +7 -3
  12. package/createAcoGraphQL.js +59 -110
  13. package/createAcoGraphQL.js.map +1 -1
  14. package/domain/folder/abstractions.d.ts +9 -0
  15. package/domain/folder/abstractions.js +5 -0
  16. package/domain/folder/abstractions.js.map +1 -0
  17. package/domain/folder/errors.d.ts +29 -0
  18. package/domain/folder/errors.js +51 -0
  19. package/domain/folder/errors.js.map +1 -0
  20. package/domain/folder/folder.model.d.ts +9 -0
  21. package/domain/folder/folder.model.js +58 -0
  22. package/domain/folder/folder.model.js.map +1 -0
  23. package/exports/api/aco/flp.d.ts +6 -0
  24. package/exports/api/aco/flp.js +6 -0
  25. package/exports/api/aco/folder.d.ts +11 -0
  26. package/exports/api/aco/folder.js +10 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +39 -0
  29. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +33 -0
  32. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +39 -0
  35. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +41 -0
  38. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +36 -0
  41. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js +36 -0
  44. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +41 -0
  47. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +41 -0
  50. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  53. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +36 -0
  56. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  59. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  62. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +49 -0
  65. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +14 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +39 -0
  68. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  69. package/features/cms/feature.d.ts +4 -0
  70. package/features/cms/feature.js +37 -0
  71. package/features/cms/feature.js.map +1 -0
  72. package/features/cms/index.d.ts +1 -0
  73. package/features/cms/index.js +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +34 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +9 -0
  78. package/features/flp/CreateFlp/abstractions.js +5 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +5 -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 +2 -0
  85. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  88. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.js +11 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  91. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.js +1 -0
  93. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  94. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +22 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  96. package/features/flp/DeleteFlp/abstractions.d.ts +9 -0
  97. package/features/flp/DeleteFlp/abstractions.js +5 -0
  98. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  99. package/features/flp/DeleteFlp/feature.d.ts +5 -0
  100. package/features/flp/DeleteFlp/feature.js +13 -0
  101. package/features/flp/DeleteFlp/feature.js.map +1 -0
  102. package/features/flp/DeleteFlp/index.d.ts +2 -0
  103. package/features/flp/DeleteFlp/index.js +2 -0
  104. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  105. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  106. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +11 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/index.js +1 -0
  112. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  113. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +112 -0
  114. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  115. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
  116. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
  117. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
  118. package/features/flp/FolderLevelPermissions/abstractions.d.ts +26 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.js +5 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  121. package/features/flp/FolderLevelPermissions/feature.d.ts +5 -0
  122. package/features/flp/FolderLevelPermissions/feature.js +11 -0
  123. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  124. package/features/flp/FolderLevelPermissions/index.d.ts +3 -0
  125. package/features/flp/FolderLevelPermissions/index.js +3 -0
  126. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  127. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +19 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +1 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +17 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +8 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +1 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +8 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +1 -0
  154. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  155. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +47 -0
  156. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  157. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  158. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +14 -0
  159. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  160. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  161. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +27 -0
  162. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  163. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +2 -0
  167. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  168. package/features/flp/FolderLevelPermissions/useCases/index.js +5 -0
  169. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  170. package/features/flp/GetFlp/GetFlpUseCase.js +11 -0
  171. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  172. package/features/flp/GetFlp/abstractions.d.ts +9 -0
  173. package/features/flp/GetFlp/abstractions.js +5 -0
  174. package/features/flp/GetFlp/abstractions.js.map +1 -0
  175. package/features/flp/GetFlp/feature.d.ts +4 -0
  176. package/features/flp/GetFlp/feature.js +13 -0
  177. package/features/flp/GetFlp/feature.js.map +1 -0
  178. package/features/flp/GetFlp/index.d.ts +1 -0
  179. package/features/flp/GetFlp/index.js +1 -0
  180. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  181. package/features/flp/ListFlps/ListFlpsUseCase.js +11 -0
  182. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  183. package/features/flp/ListFlps/abstractions.d.ts +17 -0
  184. package/features/flp/ListFlps/abstractions.js +5 -0
  185. package/features/flp/ListFlps/abstractions.js.map +1 -0
  186. package/features/flp/ListFlps/feature.d.ts +4 -0
  187. package/features/flp/ListFlps/feature.js +13 -0
  188. package/features/flp/ListFlps/feature.js.map +1 -0
  189. package/features/flp/ListFlps/index.d.ts +1 -0
  190. package/features/flp/ListFlps/index.js +1 -0
  191. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +27 -0
  192. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +153 -0
  193. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  194. package/features/flp/UpdateFlp/abstractions.d.ts +15 -0
  195. package/features/flp/UpdateFlp/abstractions.js +5 -0
  196. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  197. package/features/flp/UpdateFlp/feature.d.ts +5 -0
  198. package/features/flp/UpdateFlp/feature.js +17 -0
  199. package/features/flp/UpdateFlp/feature.js.map +1 -0
  200. package/features/flp/UpdateFlp/index.d.ts +2 -0
  201. package/features/flp/UpdateFlp/index.js +2 -0
  202. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  203. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  204. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  205. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -0
  206. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +11 -0
  207. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  208. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  209. package/features/flp/UpdateFlpOnFolderUpdated/index.js +1 -0
  210. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  211. package/features/folder/CreateFolder/CreateFolderRepository.js +85 -0
  212. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  213. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  214. package/features/folder/CreateFolder/CreateFolderUseCase.js +36 -0
  215. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  216. package/features/folder/CreateFolder/abstractions.d.ts +59 -0
  217. package/features/folder/CreateFolder/abstractions.js +8 -0
  218. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  219. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  220. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +39 -0
  221. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  222. package/features/folder/CreateFolder/events.d.ts +10 -0
  223. package/features/folder/CreateFolder/events.js +21 -0
  224. package/features/folder/CreateFolder/events.js.map +1 -0
  225. package/features/folder/CreateFolder/feature.d.ts +5 -0
  226. package/features/folder/CreateFolder/feature.js +15 -0
  227. package/features/folder/CreateFolder/feature.js.map +1 -0
  228. package/features/folder/CreateFolder/index.d.ts +2 -0
  229. package/features/folder/CreateFolder/index.js +2 -0
  230. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  231. package/features/folder/DeleteFolder/DeleteFolderRepository.js +32 -0
  232. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  233. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  234. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +47 -0
  235. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  236. package/features/folder/DeleteFolder/abstractions.d.ts +59 -0
  237. package/features/folder/DeleteFolder/abstractions.js +8 -0
  238. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  239. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  240. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +29 -0
  241. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  242. package/features/folder/DeleteFolder/events.d.ts +10 -0
  243. package/features/folder/DeleteFolder/events.js +21 -0
  244. package/features/folder/DeleteFolder/events.js.map +1 -0
  245. package/features/folder/DeleteFolder/feature.d.ts +5 -0
  246. package/features/folder/DeleteFolder/feature.js +15 -0
  247. package/features/folder/DeleteFolder/feature.js.map +1 -0
  248. package/features/folder/DeleteFolder/index.d.ts +2 -0
  249. package/features/folder/DeleteFolder/index.js +2 -0
  250. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  251. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +59 -0
  252. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  253. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +21 -0
  254. package/features/folder/EnsureFolderIsEmpty/abstractions.js +5 -0
  255. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  256. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -0
  257. package/features/folder/EnsureFolderIsEmpty/feature.js +11 -0
  258. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  259. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  260. package/features/folder/EnsureFolderIsEmpty/index.js +1 -0
  261. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  262. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +25 -0
  263. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  264. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +10 -0
  265. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +11 -0
  266. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  267. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  268. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +1 -0
  269. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  270. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +52 -0
  271. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  272. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -0
  273. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +11 -0
  274. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  275. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  276. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +1 -0
  277. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  278. package/features/folder/GetAncestors/GetAncestorsRepository.js +58 -0
  279. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  280. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  281. package/features/folder/GetAncestors/GetAncestorsUseCase.js +20 -0
  282. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  283. package/features/folder/GetAncestors/abstractions.d.ts +40 -0
  284. package/features/folder/GetAncestors/abstractions.js +6 -0
  285. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  286. package/features/folder/GetAncestors/feature.d.ts +5 -0
  287. package/features/folder/GetAncestors/feature.js +13 -0
  288. package/features/folder/GetAncestors/feature.js.map +1 -0
  289. package/features/folder/GetAncestors/index.d.ts +2 -0
  290. package/features/folder/GetAncestors/index.js +2 -0
  291. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  292. package/features/folder/GetFolder/GetFolderRepository.js +33 -0
  293. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  294. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  295. package/features/folder/GetFolder/GetFolderUseCase.js +20 -0
  296. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  297. package/features/folder/GetFolder/abstractions.d.ts +57 -0
  298. package/features/folder/GetFolder/abstractions.js +8 -0
  299. package/features/folder/GetFolder/abstractions.js.map +1 -0
  300. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  301. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +34 -0
  302. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  303. package/features/folder/GetFolder/feature.d.ts +5 -0
  304. package/features/folder/GetFolder/feature.js +15 -0
  305. package/features/folder/GetFolder/feature.js.map +1 -0
  306. package/features/folder/GetFolder/index.d.ts +2 -0
  307. package/features/folder/GetFolder/index.js +2 -0
  308. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  309. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +84 -0
  310. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  311. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  312. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +20 -0
  313. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  314. package/features/folder/GetFolderHierarchy/abstractions.d.ts +38 -0
  315. package/features/folder/GetFolderHierarchy/abstractions.js +6 -0
  316. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  317. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  318. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +63 -0
  319. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  320. package/features/folder/GetFolderHierarchy/feature.d.ts +5 -0
  321. package/features/folder/GetFolderHierarchy/feature.js +15 -0
  322. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  323. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  324. package/features/folder/GetFolderHierarchy/index.js +2 -0
  325. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  326. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +75 -0
  327. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  328. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +11 -0
  329. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +5 -0
  330. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  331. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -0
  332. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +11 -0
  333. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  334. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  335. package/features/folder/ListFolderLevelPermissionsTargets/index.js +1 -0
  336. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  337. package/features/folder/ListFolders/ListFoldersRepository.js +52 -0
  338. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  339. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  340. package/features/folder/ListFolders/ListFoldersUseCase.js +20 -0
  341. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  342. package/features/folder/ListFolders/abstractions.d.ts +44 -0
  343. package/features/folder/ListFolders/abstractions.js +6 -0
  344. package/features/folder/ListFolders/abstractions.js.map +1 -0
  345. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  346. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +65 -0
  347. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  348. package/features/folder/ListFolders/feature.d.ts +5 -0
  349. package/features/folder/ListFolders/feature.js +15 -0
  350. package/features/folder/ListFolders/feature.js.map +1 -0
  351. package/features/folder/ListFolders/index.d.ts +2 -0
  352. package/features/folder/ListFolders/index.js +2 -0
  353. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  354. package/features/folder/UpdateFolder/UpdateFolderRepository.js +84 -0
  355. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  356. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  357. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +48 -0
  358. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  359. package/features/folder/UpdateFolder/abstractions.d.ts +64 -0
  360. package/features/folder/UpdateFolder/abstractions.js +8 -0
  361. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  362. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  363. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +58 -0
  364. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  365. package/features/folder/UpdateFolder/events.d.ts +10 -0
  366. package/features/folder/UpdateFolder/events.js +21 -0
  367. package/features/folder/UpdateFolder/events.js.map +1 -0
  368. package/features/folder/UpdateFolder/feature.d.ts +5 -0
  369. package/features/folder/UpdateFolder/feature.js +15 -0
  370. package/features/folder/UpdateFolder/feature.js.map +1 -0
  371. package/features/folder/UpdateFolder/index.d.ts +2 -0
  372. package/features/folder/UpdateFolder/index.js +2 -0
  373. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  374. package/features/folder/shared/EntryToFolderMapper.js +23 -0
  375. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  376. package/features/folder/shared/abstractions.d.ts +20 -0
  377. package/features/folder/shared/abstractions.js +8 -0
  378. package/features/folder/shared/abstractions.js.map +1 -0
  379. package/filter/filter.crud.d.ts +3 -0
  380. package/filter/filter.crud.js +30 -0
  381. package/filter/filter.crud.js.map +1 -0
  382. package/filter/filter.gql.d.ts +2 -0
  383. package/filter/filter.gql.js +164 -0
  384. package/filter/filter.gql.js.map +1 -0
  385. package/filter/filter.model.d.ts +9 -0
  386. package/filter/filter.model.js +50 -0
  387. package/filter/filter.model.js.map +1 -0
  388. package/filter/filter.so.d.ts +11 -0
  389. package/filter/filter.so.js +84 -0
  390. package/filter/filter.so.js.map +1 -0
  391. package/filter/filter.types.d.ts +67 -0
  392. package/filter/filter.types.js +8 -0
  393. package/filter/filter.types.js.map +1 -0
  394. package/flp/flp.crud.d.ts +7 -0
  395. package/flp/flp.crud.js +74 -0
  396. package/flp/flp.crud.js.map +1 -0
  397. package/flp/flp.types.d.ts +93 -0
  398. package/flp/flp.types.js +0 -0
  399. package/flp/index.d.ts +2 -0
  400. package/flp/index.js +2 -0
  401. package/flp/tasks/createFlp.task.d.ts +18 -0
  402. package/flp/tasks/createFlp.task.js +36 -0
  403. package/flp/tasks/createFlp.task.js.map +1 -0
  404. package/flp/tasks/deleteFlp.task.d.ts +18 -0
  405. package/flp/tasks/deleteFlp.task.js +36 -0
  406. package/flp/tasks/deleteFlp.task.js.map +1 -0
  407. package/flp/tasks/index.d.ts +4 -0
  408. package/flp/tasks/index.js +7 -0
  409. package/flp/tasks/index.js.map +1 -0
  410. package/flp/tasks/syncFlp.task.d.ts +22 -0
  411. package/flp/tasks/syncFlp.task.js +112 -0
  412. package/flp/tasks/syncFlp.task.js.map +1 -0
  413. package/flp/tasks/updateFlp.task.d.ts +18 -0
  414. package/flp/tasks/updateFlp.task.js +43 -0
  415. package/flp/tasks/updateFlp.task.js.map +1 -0
  416. package/folder/createFolderModelModifier.d.ts +36 -0
  417. package/folder/createFolderModelModifier.js +61 -0
  418. package/folder/createFolderModelModifier.js.map +1 -0
  419. package/folder/createFolderTypeDefs.d.ts +8 -0
  420. package/folder/createFolderTypeDefs.js +175 -0
  421. package/folder/createFolderTypeDefs.js.map +1 -0
  422. package/folder/folder.gql.d.ts +4 -3
  423. package/folder/folder.gql.js +123 -116
  424. package/folder/folder.gql.js.map +1 -1
  425. package/folder/folder.types.d.ts +51 -64
  426. package/folder/folder.types.js +0 -5
  427. package/index.d.ts +3 -5
  428. package/index.js +3 -56
  429. package/package.json +34 -40
  430. package/types.d.ts +27 -64
  431. package/types.js +8 -38
  432. package/types.js.map +1 -1
  433. package/utils/FoldersCacheFactory.d.ts +10 -0
  434. package/utils/FoldersCacheFactory.js +25 -0
  435. package/utils/FoldersCacheFactory.js.map +1 -0
  436. package/utils/ListCache.d.ts +23 -0
  437. package/utils/ListCache.js +24 -0
  438. package/utils/ListCache.js.map +1 -0
  439. package/utils/Path.d.ts +3 -0
  440. package/utils/Path.js +10 -0
  441. package/utils/Path.js.map +1 -0
  442. package/utils/compress.d.ts +4 -0
  443. package/utils/compress.js +13 -0
  444. package/utils/compress.js.map +1 -0
  445. package/utils/createListSort.d.ts +3 -2
  446. package/utils/createListSort.js +6 -12
  447. package/utils/createListSort.js.map +1 -1
  448. package/utils/createOperationsWrapper.d.ts +6 -3
  449. package/utils/createOperationsWrapper.js +14 -28
  450. package/utils/createOperationsWrapper.js.map +1 -1
  451. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  452. package/utils/decorators/CmsEntriesCrudDecorators.js +179 -0
  453. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  454. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  455. package/utils/decorators/FilterEntriesByFolderFactory.js +22 -0
  456. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  457. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  458. package/utils/decorators/ListEntriesFactory.js +73 -0
  459. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  460. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  461. package/utils/decorators/hasRootFolderId.js +13 -0
  462. package/utils/decorators/hasRootFolderId.js.map +1 -0
  463. package/utils/decorators/isPageModel.d.ts +5 -0
  464. package/utils/decorators/isPageModel.js +8 -0
  465. package/utils/decorators/isPageModel.js.map +1 -0
  466. package/utils/ensureAuthentication.d.ts +2 -0
  467. package/utils/ensureAuthentication.js +11 -0
  468. package/utils/ensureAuthentication.js.map +1 -0
  469. package/utils/pickEntryFieldValues.d.ts +3 -0
  470. package/utils/pickEntryFieldValues.js +29 -0
  471. package/utils/pickEntryFieldValues.js.map +1 -0
  472. package/utils/resolve.d.ts +1 -2
  473. package/utils/resolve.js +10 -23
  474. package/utils/resolve.js.map +1 -1
  475. package/apps/AcoApp.d.ts +0 -16
  476. package/apps/AcoApp.js +0 -108
  477. package/apps/AcoApp.js.map +0 -1
  478. package/apps/AcoApps.d.ts +0 -10
  479. package/apps/AcoApps.js +0 -76
  480. package/apps/AcoApps.js.map +0 -1
  481. package/apps/app.gql.d.ts +0 -3
  482. package/apps/app.gql.js +0 -58
  483. package/apps/app.gql.js.map +0 -1
  484. package/apps/index.d.ts +0 -2
  485. package/apps/index.js +0 -27
  486. package/apps/index.js.map +0 -1
  487. package/createAcoContext.d.ts +0 -3
  488. package/createAcoContext.js +0 -100
  489. package/createAcoContext.js.map +0 -1
  490. package/createAcoHooks.d.ts +0 -2
  491. package/createAcoHooks.js +0 -11
  492. package/createAcoHooks.js.map +0 -1
  493. package/createAcoModels.d.ts +0 -2
  494. package/createAcoModels.js +0 -42
  495. package/createAcoModels.js.map +0 -1
  496. package/createAcoStorageOperations.d.ts +0 -10
  497. package/createAcoStorageOperations.js +0 -19
  498. package/createAcoStorageOperations.js.map +0 -1
  499. package/fields/index.d.ts +0 -2
  500. package/fields/index.js +0 -12
  501. package/fields/index.js.map +0 -1
  502. package/fields/location.d.ts +0 -2
  503. package/fields/location.js +0 -44
  504. package/fields/location.js.map +0 -1
  505. package/folder/folder.crud.d.ts +0 -3
  506. package/folder/folder.crud.js +0 -110
  507. package/folder/folder.crud.js.map +0 -1
  508. package/folder/folder.model.d.ts +0 -4
  509. package/folder/folder.model.js +0 -75
  510. package/folder/folder.model.js.map +0 -1
  511. package/folder/folder.so.d.ts +0 -3
  512. package/folder/folder.so.js +0 -151
  513. package/folder/folder.so.js.map +0 -1
  514. package/folder/folder.types.js.map +0 -1
  515. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  516. package/folder/onFolderBeforeDelete.hook.js +0 -66
  517. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  518. package/index.js.map +0 -1
  519. package/plugins/AcoAppModifierPlugin.d.ts +0 -43
  520. package/plugins/AcoAppModifierPlugin.js +0 -59
  521. package/plugins/AcoAppModifierPlugin.js.map +0 -1
  522. package/plugins/AcoAppRegisterPlugin.d.ts +0 -8
  523. package/plugins/AcoAppRegisterPlugin.js +0 -22
  524. package/plugins/AcoAppRegisterPlugin.js.map +0 -1
  525. package/plugins/index.d.ts +0 -2
  526. package/plugins/index.js +0 -27
  527. package/plugins/index.js.map +0 -1
  528. package/record/graphql/createAppResolvers.d.ts +0 -14
  529. package/record/graphql/createAppResolvers.js +0 -108
  530. package/record/graphql/createAppResolvers.js.map +0 -1
  531. package/record/graphql/createAppSchema.d.ts +0 -9
  532. package/record/graphql/createAppSchema.js +0 -142
  533. package/record/graphql/createAppSchema.js.map +0 -1
  534. package/record/record.crud.d.ts +0 -3
  535. package/record/record.crud.js +0 -126
  536. package/record/record.crud.js.map +0 -1
  537. package/record/record.gql.d.ts +0 -8
  538. package/record/record.gql.js +0 -41
  539. package/record/record.gql.js.map +0 -1
  540. package/record/record.model.d.ts +0 -10
  541. package/record/record.model.js +0 -86
  542. package/record/record.model.js.map +0 -1
  543. package/record/record.so.d.ts +0 -3
  544. package/record/record.so.js +0 -150
  545. package/record/record.so.js.map +0 -1
  546. package/record/record.types.d.ts +0 -143
  547. package/record/record.types.js +0 -5
  548. package/record/record.types.js.map +0 -1
  549. package/utils/acoRecordId.d.ts +0 -6
  550. package/utils/acoRecordId.js +0 -33
  551. package/utils/acoRecordId.js.map +0 -1
  552. package/utils/checkPermissions.d.ts +0 -2
  553. package/utils/checkPermissions.js +0 -14
  554. package/utils/checkPermissions.js.map +0 -1
  555. package/utils/createModelField.d.ts +0 -5
  556. package/utils/createModelField.js +0 -37
  557. package/utils/createModelField.js.map +0 -1
  558. package/utils/fieldResolver.d.ts +0 -16
  559. package/utils/fieldResolver.js +0 -44
  560. package/utils/fieldResolver.js.map +0 -1
  561. package/utils/getFieldValues.d.ts +0 -5
  562. package/utils/getFieldValues.js +0 -16
  563. package/utils/getFieldValues.js.map +0 -1
  564. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  565. package/utils/getFolderAndItsAncestors.js +0 -48
  566. package/utils/getFolderAndItsAncestors.js.map +0 -1
  567. package/utils/isInstallationPending.d.ts +0 -4
  568. package/utils/isInstallationPending.js +0 -21
  569. package/utils/isInstallationPending.js.map +0 -1
  570. package/utils/modelFactory.d.ts +0 -15
  571. package/utils/modelFactory.js +0 -25
  572. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ export declare const ListFlpsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListFlpsUseCase } from "./ListFlpsUseCase.js";
3
+ import { ListFlpsUseCase as external_abstractions_js_ListFlpsUseCase } from "./abstractions.js";
4
+ import { AcoFlpCrud } from "../../folder/shared/abstractions.js";
5
+ const ListFlpsFeature = createFeature({
6
+ name: "ListFlpsFeature",
7
+ register (container) {
8
+ container.registerFactory(external_abstractions_js_ListFlpsUseCase, ()=>new ListFlpsUseCase(container.resolve(AcoFlpCrud).list));
9
+ }
10
+ });
11
+ export { ListFlpsFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/ListFlps/feature.js","sources":["../../../../src/features/flp/ListFlps/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListFlpsUseCase } from \"./ListFlpsUseCase.js\";\nimport { ListFlpsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AcoFlpCrud } from \"~/features/folder/shared/abstractions.js\";\n\nexport const ListFlpsFeature = createFeature({\n name: \"ListFlpsFeature\",\n register(container) {\n container.registerFactory(UseCaseAbstraction, () => {\n return new ListFlpsUseCase(container.resolve(AcoFlpCrud).list);\n });\n }\n});\n"],"names":["ListFlpsFeature","createFeature","container","UseCaseAbstraction","ListFlpsUseCase","AcoFlpCrud"],"mappings":";;;;AAKO,MAAMA,kBAAkBC,cAAc;IACzC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,eAAe,CAACC,0CAAoB,IACnC,IAAIC,gBAAgBF,UAAU,OAAO,CAACG,YAAY,IAAI;IAErE;AACJ"}
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,27 @@
1
+ import type { UpdateFlpParams, UpdateFlpUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import type { AcoFlpCrud } from "../../../features/folder/shared/abstractions.js";
3
+ import type { ListFoldersUseCase } from "../../../features/folder/ListFolders/index.js";
4
+ import type { FolderModel } from "../../../domain/folder/abstractions.js";
5
+ import type { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
6
+ import type { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
7
+ export declare class UpdateFlpUseCase implements UseCaseAbstraction.Interface {
8
+ private flpCrud;
9
+ private listFoldersUseCase;
10
+ private folderModel;
11
+ private updateEntryUseCase;
12
+ private identityContext;
13
+ private isCloseToTimeout?;
14
+ private handleTimeout?;
15
+ private readonly queued;
16
+ private readonly flpsToUpdate;
17
+ constructor(flpCrud: AcoFlpCrud.Interface, listFoldersUseCase: ListFoldersUseCase.Interface, folderModel: FolderModel.Interface, updateEntryUseCase: UpdateEntryUseCase.Interface, identityContext: IdentityContext.Interface);
18
+ execute(params: UpdateFlpParams): Promise<void>;
19
+ private collectBranchForUpdate;
20
+ private executeBatchUpdate;
21
+ private getQueuedList;
22
+ private setQueued;
23
+ private isQueued;
24
+ private clearQueuedList;
25
+ private listDirectChildren;
26
+ private getFlp;
27
+ }
@@ -0,0 +1,153 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ import { Path } from "../../../utils/Path.js";
3
+ import { Permissions, ROOT_FOLDER } from "@webiny/shared-aco";
4
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
5
+ class UpdateFlpUseCase {
6
+ constructor(flpCrud, listFoldersUseCase, folderModel, updateEntryUseCase, identityContext){
7
+ this.flpCrud = flpCrud;
8
+ this.listFoldersUseCase = listFoldersUseCase;
9
+ this.folderModel = folderModel;
10
+ this.updateEntryUseCase = updateEntryUseCase;
11
+ this.identityContext = identityContext;
12
+ this.queued = new Set();
13
+ this.flpsToUpdate = new Map();
14
+ }
15
+ async execute(params) {
16
+ this.isCloseToTimeout = params.isCloseToTimeout;
17
+ this.handleTimeout = params.handleTimeout;
18
+ if (params.queued) params.queued.forEach((id)=>this.queued.add(id));
19
+ try {
20
+ const { folder } = params;
21
+ if (!folder) throw new WebinyError("Missing `folder`, I can't update the FLP record.", "ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED", {
22
+ folder
23
+ });
24
+ const flp = await this.getFlp(folder);
25
+ const parentFlp = folder.parentId ? await this.flpCrud.get(folder.parentId) : null;
26
+ this.flpsToUpdate.set(folder.id, {
27
+ slug: folder.slug,
28
+ parentId: folder.parentId ?? ROOT_FOLDER,
29
+ path: Path.create(folder.slug, parentFlp?.path),
30
+ permissions: Permissions.create(folder.permissions, parentFlp)
31
+ });
32
+ this.setQueued(flp.id);
33
+ const directChildren = await this.listDirectChildren(flp);
34
+ for (const child of directChildren){
35
+ if (this.isCloseToTimeout?.()) {
36
+ await this.executeBatchUpdate();
37
+ this.handleTimeout?.(this.getQueuedList());
38
+ return;
39
+ }
40
+ await this.collectBranchForUpdate(child, flp);
41
+ }
42
+ await this.executeBatchUpdate();
43
+ } catch (error) {
44
+ this.flpsToUpdate.clear();
45
+ this.queued.clear();
46
+ throw WebinyError.from(error, {
47
+ message: "Error while updating FLP",
48
+ code: "ERROR_UPDATING_FLP_USE_CASE"
49
+ });
50
+ }
51
+ }
52
+ async collectBranchForUpdate(flp, parentFlp) {
53
+ if (this.isQueued(flp.id)) return;
54
+ const parentFlpData = this.flpsToUpdate.get(parentFlp.id);
55
+ const currentParentFlp = {
56
+ ...parentFlp,
57
+ ...parentFlpData && {
58
+ ...parentFlpData
59
+ }
60
+ };
61
+ this.flpsToUpdate.set(flp.id, {
62
+ slug: flp.slug,
63
+ parentId: flp.parentId,
64
+ path: Path.create(flp.slug, currentParentFlp.path),
65
+ permissions: Permissions.create(flp.permissions, currentParentFlp)
66
+ });
67
+ this.setQueued(flp.id);
68
+ const children = await this.listDirectChildren(flp);
69
+ for (const child of children){
70
+ if (this.isCloseToTimeout?.()) {
71
+ await this.executeBatchUpdate();
72
+ this.handleTimeout?.(this.getQueuedList());
73
+ return;
74
+ }
75
+ await this.collectBranchForUpdate(child, flp);
76
+ }
77
+ }
78
+ async executeBatchUpdate() {
79
+ try {
80
+ const items = Array.from(this.flpsToUpdate.entries()).map(([id, { slug, parentId, path, permissions }])=>({
81
+ id,
82
+ data: {
83
+ slug,
84
+ parentId,
85
+ path,
86
+ permissions
87
+ }
88
+ }));
89
+ await this.flpCrud.batchUpdate(items);
90
+ for (const item of items){
91
+ const { id, data } = item;
92
+ const entryId = EntryId.from(id);
93
+ const updateResult = await this.updateEntryUseCase.execute(this.folderModel, entryId.toString(), {
94
+ values: {
95
+ path: data.path
96
+ }
97
+ });
98
+ if (updateResult.isFail()) throw updateResult.error;
99
+ }
100
+ } catch (error) {
101
+ throw WebinyError.from(error, {
102
+ message: "Error while executing batch update of FLPs",
103
+ code: "BATCH_UPDATE_FLP_ERROR",
104
+ data: {
105
+ items: Array.from(this.flpsToUpdate.keys())
106
+ }
107
+ });
108
+ } finally{
109
+ this.flpsToUpdate.clear();
110
+ this.clearQueuedList();
111
+ }
112
+ }
113
+ getQueuedList() {
114
+ return Array.from(this.queued);
115
+ }
116
+ setQueued(id) {
117
+ this.queued.add(id);
118
+ }
119
+ isQueued(id) {
120
+ return this.queued.has(id);
121
+ }
122
+ clearQueuedList() {
123
+ this.queued.clear();
124
+ }
125
+ async listDirectChildren(flp) {
126
+ const result = await this.identityContext.withoutAuthorization(()=>this.listFoldersUseCase.execute({
127
+ where: {
128
+ type: flp.type,
129
+ parentId: flp.id
130
+ }
131
+ }));
132
+ if (result.isFail()) throw result.error;
133
+ return await Promise.all(result.value.folders.map((folder)=>this.getFlp(folder)));
134
+ }
135
+ async getFlp({ id, type, parentId, slug, permissions }) {
136
+ const flp = await this.flpCrud.get(id);
137
+ if (!flp) {
138
+ const parentFlp = parentId ? await this.flpCrud.get(parentId) : null;
139
+ return await this.flpCrud.create({
140
+ id,
141
+ type,
142
+ slug,
143
+ parentId: parentId ?? ROOT_FOLDER,
144
+ path: Path.create(slug, parentFlp?.path),
145
+ permissions: Permissions.create(permissions, parentFlp)
146
+ });
147
+ }
148
+ return flp;
149
+ }
150
+ }
151
+ export { UpdateFlpUseCase };
152
+
153
+ //# sourceMappingURL=UpdateFlpUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/UpdateFlp/UpdateFlpUseCase.js","sources":["../../../../src/features/flp/UpdateFlp/UpdateFlpUseCase.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"~/utils/Path.js\";\nimport { Permissions, ROOT_FOLDER } from \"@webiny/shared-aco\";\nimport type { UpdateFlpParams, UpdateFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport type { Folder, FolderLevelPermission, FolderPermission } from \"~/types.js\";\nimport type { AcoFlpCrud } from \"~/features/folder/shared/abstractions.js\";\nimport type { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\nimport type { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport type { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport type { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\n\ninterface FlpUpdateData {\n parentId: string;\n slug: string;\n path: string;\n permissions: FolderPermission[];\n}\n\nexport class UpdateFlpUseCase implements UseCaseAbstraction.Interface {\n private isCloseToTimeout?: () => boolean;\n private handleTimeout?: (updated: string[]) => void;\n\n private readonly queued: Set<string> = new Set();\n private readonly flpsToUpdate: Map<string, FlpUpdateData> = new Map();\n\n constructor(\n private flpCrud: AcoFlpCrud.Interface,\n private listFoldersUseCase: ListFoldersUseCase.Interface,\n private folderModel: FolderModel.Interface,\n private updateEntryUseCase: UpdateEntryUseCase.Interface,\n private identityContext: IdentityContext.Interface\n ) {}\n\n async execute(params: UpdateFlpParams): Promise<void> {\n this.isCloseToTimeout = params.isCloseToTimeout;\n this.handleTimeout = params.handleTimeout;\n\n if (params.queued) {\n params.queued.forEach(id => this.queued.add(id));\n }\n\n try {\n const { folder } = params;\n\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder`, I can't update the FLP record.\",\n \"ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED\",\n { folder }\n );\n }\n\n const flp = await this.getFlp(folder);\n const parentFlp = folder.parentId ? await this.flpCrud.get(folder.parentId) : null;\n\n // Add the root folder to the update collection\n this.flpsToUpdate.set(folder.id, {\n slug: folder.slug,\n parentId: folder.parentId ?? ROOT_FOLDER,\n path: Path.create(folder.slug, parentFlp?.path),\n permissions: Permissions.create(folder.permissions, parentFlp)\n });\n\n // Let's set the FLP as in queue\n this.setQueued(flp.id);\n\n // Get direct children and process each branch completely\n const directChildren = await this.listDirectChildren(flp);\n\n for (const child of directChildren) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n await this.collectBranchForUpdate(child, flp);\n }\n\n // Execute batch update\n await this.executeBatchUpdate();\n } catch (error) {\n // Clear the update collection in case of error\n this.flpsToUpdate.clear();\n this.queued.clear();\n throw WebinyError.from(error, {\n message: \"Error while updating FLP\",\n code: \"ERROR_UPDATING_FLP_USE_CASE\"\n });\n }\n }\n\n private async collectBranchForUpdate(\n flp: FolderLevelPermission,\n parentFlp: FolderLevelPermission\n ): Promise<void> {\n if (this.isQueued(flp.id)) {\n return;\n }\n\n // Get the parent's permissions from the update collection if available\n const parentFlpData = this.flpsToUpdate.get(parentFlp.id);\n const currentParentFlp = {\n ...parentFlp,\n ...(parentFlpData && { ...parentFlpData })\n };\n\n // Add the FLP to the update collection with inherited permissions\n this.flpsToUpdate.set(flp.id, {\n slug: flp.slug,\n parentId: flp.parentId,\n path: Path.create(flp.slug, currentParentFlp.path),\n permissions: Permissions.create(flp.permissions, currentParentFlp)\n });\n\n // Add the FLP to the queue list so we don't fetch it again\n this.setQueued(flp.id);\n\n // Process all children of this folder before moving to siblings\n const children = await this.listDirectChildren(flp);\n\n for (const child of children) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n // Pass the current FLP as the parent for the child\n await this.collectBranchForUpdate(child, flp);\n }\n }\n\n private async executeBatchUpdate(): Promise<void> {\n try {\n const items = Array.from(this.flpsToUpdate.entries()).map(\n ([id, { slug, parentId, path, permissions }]) => {\n return {\n id,\n data: {\n slug,\n parentId,\n path,\n permissions\n }\n };\n }\n );\n\n await this.flpCrud.batchUpdate(items);\n\n // Update all folders with the new path\n for (const item of items) {\n const { id, data } = item;\n // Directly update the folder in CMS storage to bypass any folder update event triggers.\n const entryId = EntryId.from(id);\n const updateResult = await this.updateEntryUseCase.execute(\n this.folderModel,\n entryId.toString(),\n { values: { path: data.path } }\n );\n if (updateResult.isFail()) {\n throw updateResult.error;\n }\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing batch update of FLPs\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: {\n items: Array.from(this.flpsToUpdate.keys())\n }\n });\n } finally {\n // Clear the update collection after the batch update\n this.flpsToUpdate.clear();\n\n //Let's remove all the updated FLPs ids from the queue cache\n this.clearQueuedList();\n }\n }\n\n private getQueuedList(): string[] {\n return Array.from(this.queued);\n }\n\n private setQueued(id: string): void {\n this.queued.add(id);\n }\n\n private isQueued(id: string): boolean {\n return this.queued.has(id);\n }\n\n private clearQueuedList(): void {\n this.queued.clear();\n }\n\n private async listDirectChildren(flp: FolderLevelPermission): Promise<FolderLevelPermission[]> {\n const result = await this.identityContext.withoutAuthorization(() => {\n return this.listFoldersUseCase.execute({\n where: {\n type: flp.type,\n parentId: flp.id\n }\n });\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n return await Promise.all(result.value.folders.map(folder => this.getFlp(folder)));\n }\n\n private async getFlp({\n id,\n type,\n parentId,\n slug,\n permissions\n }: Folder): Promise<FolderLevelPermission> {\n const flp = await this.flpCrud.get(id);\n\n if (!flp) {\n const parentFlp = parentId ? await this.flpCrud.get(parentId) : null;\n\n return await this.flpCrud.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 }\n\n return flp;\n }\n}\n"],"names":["UpdateFlpUseCase","flpCrud","listFoldersUseCase","folderModel","updateEntryUseCase","identityContext","Set","Map","params","id","folder","WebinyError","flp","parentFlp","ROOT_FOLDER","Path","Permissions","directChildren","child","error","parentFlpData","currentParentFlp","children","items","Array","slug","parentId","path","permissions","item","data","entryId","EntryId","updateResult","result","Promise","type"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Folder } from "../../../folder/folder.types.js";
2
+ export interface UpdateFlpParams {
3
+ folder: Folder;
4
+ queued?: string[];
5
+ isCloseToTimeout?: () => boolean;
6
+ handleTimeout?: (queued: string[]) => void;
7
+ }
8
+ export interface IUpdateFlpUseCase {
9
+ execute: (params: UpdateFlpParams) => Promise<void>;
10
+ }
11
+ /** Update a folder-level permission. */
12
+ export declare const UpdateFlpUseCase: import("@webiny/di").Abstraction<IUpdateFlpUseCase>;
13
+ export declare namespace UpdateFlpUseCase {
14
+ type Interface = IUpdateFlpUseCase;
15
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const UpdateFlpUseCase = createAbstraction("UpdateFlpUseCase");
3
+ export { UpdateFlpUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/UpdateFlp/abstractions.js","sources":["../../../../src/features/flp/UpdateFlp/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\n\nexport interface UpdateFlpParams {\n folder: Folder;\n queued?: string[];\n isCloseToTimeout?: () => boolean;\n handleTimeout?: (queued: string[]) => void;\n}\n\n// Use Case Abstraction\nexport interface IUpdateFlpUseCase {\n execute: (params: UpdateFlpParams) => Promise<void>;\n}\n\n/** Update a folder-level permission. */\nexport const UpdateFlpUseCase = createAbstraction<IUpdateFlpUseCase>(\"UpdateFlpUseCase\");\n\nexport namespace UpdateFlpUseCase {\n export type Interface = IUpdateFlpUseCase;\n}\n"],"names":["UpdateFlpUseCase","createAbstraction"],"mappings":";AAgBO,MAAMA,mBAAmBC,kBAAqC"}
@@ -0,0 +1,5 @@
1
+ import type { Container } from "@webiny/di";
2
+ export declare const UpdateFlpFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -0,0 +1,17 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdateFlpUseCase } from "./UpdateFlpUseCase.js";
3
+ import { UpdateFlpUseCase as external_abstractions_js_UpdateFlpUseCase } from "./abstractions.js";
4
+ import { AcoFlpCrud } from "../../folder/shared/abstractions.js";
5
+ import { ListFoldersUseCase } from "../../folder/ListFolders/index.js";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
8
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
9
+ const UpdateFlpFeature = createFeature({
10
+ name: "UpdateFlp",
11
+ register (container) {
12
+ container.registerFactory(external_abstractions_js_UpdateFlpUseCase, ()=>new UpdateFlpUseCase(container.resolve(AcoFlpCrud), container.resolve(ListFoldersUseCase), container.resolve(FolderModel), container.resolve(UpdateEntryUseCase), container.resolve(IdentityContext)));
13
+ }
14
+ });
15
+ export { UpdateFlpFeature };
16
+
17
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/UpdateFlp/feature.js","sources":["../../../../src/features/flp/UpdateFlp/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { UpdateFlpUseCase } from \"./UpdateFlpUseCase.js\";\nimport { UpdateFlpUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AcoFlpCrud } from \"~/features/folder/shared/abstractions.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\n\nexport const UpdateFlpFeature = createFeature({\n name: \"UpdateFlp\",\n register(container: Container) {\n container.registerFactory(UseCaseAbstraction, () => {\n return new UpdateFlpUseCase(\n container.resolve(AcoFlpCrud),\n container.resolve(ListFoldersUseCase),\n container.resolve(FolderModel),\n container.resolve(UpdateEntryUseCase),\n container.resolve(IdentityContext)\n );\n });\n }\n});\n"],"names":["UpdateFlpFeature","createFeature","container","UseCaseAbstraction","UpdateFlpUseCase","AcoFlpCrud","ListFoldersUseCase","FolderModel","UpdateEntryUseCase","IdentityContext"],"mappings":";;;;;;;;AAUO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,eAAe,CAACC,2CAAoB,IACnC,IAAIC,iBACPF,UAAU,OAAO,CAACG,aAClBH,UAAU,OAAO,CAACI,qBAClBJ,UAAU,OAAO,CAACK,cAClBL,UAAU,OAAO,CAACM,qBAClBN,UAAU,OAAO,CAACO;IAG9B;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { UpdateFlpFeature } from "./feature.js";
2
+ export { UpdateFlpUseCase } from "./abstractions.js";
@@ -0,0 +1,2 @@
1
+ export { UpdateFlpFeature } from "./feature.js";
2
+ export { UpdateFlpUseCase } from "./abstractions.js";
@@ -0,0 +1,14 @@
1
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
2
+ import { UpdateFlpUseCase } from "../UpdateFlp/abstractions.js";
3
+ import type { FolderAfterUpdateEvent } from "../../../features/folder/UpdateFolder/events.js";
4
+ import { FolderAfterUpdateEventHandler } from "../../../features/folder/UpdateFolder/index.js";
5
+ declare class UpdateFlpOnFolderUpdatedHandlerImpl implements FolderAfterUpdateEventHandler.Interface {
6
+ private updateFlpUseCase;
7
+ private tasks?;
8
+ constructor(updateFlpUseCase: UpdateFlpUseCase.Interface, tasks?: TaskService.Interface | undefined);
9
+ handle(event: FolderAfterUpdateEvent): Promise<void>;
10
+ }
11
+ export declare const UpdateFlpOnFolderUpdatedHandler: typeof UpdateFlpOnFolderUpdatedHandlerImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/api-core/features/eventPublisher/abstractions.js").DomainEvent<import("../../folder/UpdateFolder/abstractions.js").FolderAfterUpdatePayload>>>;
13
+ };
14
+ export {};
@@ -0,0 +1,39 @@
1
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
2
+ import { UpdateFlpUseCase } from "../UpdateFlp/abstractions.js";
3
+ import { UPDATE_FLP_TASK_ID } from "../../../flp/tasks/index.js";
4
+ import { FolderAfterUpdateEventHandler } from "../../folder/UpdateFolder/index.js";
5
+ class UpdateFlpOnFolderUpdatedHandlerImpl {
6
+ constructor(updateFlpUseCase, tasks){
7
+ this.updateFlpUseCase = updateFlpUseCase;
8
+ this.tasks = tasks;
9
+ }
10
+ async handle(event) {
11
+ const { folder } = event.payload;
12
+ try {
13
+ if (this.tasks) await this.tasks.trigger({
14
+ definition: UPDATE_FLP_TASK_ID,
15
+ input: {
16
+ folder
17
+ }
18
+ });
19
+ else await this.updateFlpUseCase.execute({
20
+ folder
21
+ });
22
+ } catch {}
23
+ }
24
+ }
25
+ const UpdateFlpOnFolderUpdatedHandler = FolderAfterUpdateEventHandler.createImplementation({
26
+ implementation: UpdateFlpOnFolderUpdatedHandlerImpl,
27
+ dependencies: [
28
+ UpdateFlpUseCase,
29
+ [
30
+ TaskService,
31
+ {
32
+ optional: true
33
+ }
34
+ ]
35
+ ]
36
+ });
37
+ export { UpdateFlpOnFolderUpdatedHandler };
38
+
39
+ //# sourceMappingURL=UpdateFlpOnFolderUpdatedHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js","sources":["../../../../src/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.ts"],"sourcesContent":["import { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { UpdateFlpUseCase } from \"../UpdateFlp/abstractions.js\";\nimport type { FolderAfterUpdateEvent } from \"~/features/folder/UpdateFolder/events.js\";\nimport type { IUpdateFlpTaskInput } from \"~/types.js\";\nimport { UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { FolderAfterUpdateEventHandler } from \"~/features/folder/UpdateFolder/index.js\";\n\nclass UpdateFlpOnFolderUpdatedHandlerImpl implements FolderAfterUpdateEventHandler.Interface {\n constructor(\n private updateFlpUseCase: UpdateFlpUseCase.Interface,\n private tasks?: TaskService.Interface\n ) {}\n\n async handle(event: FolderAfterUpdateEvent): Promise<void> {\n const { folder } = event.payload;\n\n try {\n if (this.tasks) {\n await this.tasks.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: { folder }\n });\n } else {\n await this.updateFlpUseCase.execute({ folder });\n }\n } catch {\n // Ignore errors\n }\n }\n}\n\nexport const UpdateFlpOnFolderUpdatedHandler = FolderAfterUpdateEventHandler.createImplementation({\n implementation: UpdateFlpOnFolderUpdatedHandlerImpl,\n dependencies: [UpdateFlpUseCase, [TaskService, { optional: true }]]\n});\n"],"names":["UpdateFlpOnFolderUpdatedHandlerImpl","updateFlpUseCase","tasks","event","folder","UPDATE_FLP_TASK_ID","UpdateFlpOnFolderUpdatedHandler","FolderAfterUpdateEventHandler","UpdateFlpUseCase","TaskService"],"mappings":";;;;AAOA,MAAMA;IACF,YACYC,gBAA4C,EAC5CC,KAA6B,CACvC;aAFUD,gBAAgB,GAAhBA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,OAAOC,KAA6B,EAAiB;QACvD,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAM,OAAO;QAEhC,IAAI;YACA,IAAI,IAAI,CAAC,KAAK,EACV,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB;gBAC1C,YAAYE;gBACZ,OAAO;oBAAED;gBAAO;YACpB;iBAEA,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAAEA;YAAO;QAErD,EAAE,OAAM,CAER;IACJ;AACJ;AAEO,MAAME,kCAAkCC,8BAA8B,oBAAoB,CAAC;IAC9F,gBAAgBP;IAChB,cAAc;QAACQ;QAAkB;YAACC;YAAa;gBAAE,UAAU;YAAK;SAAE;KAAC;AACvE"}
@@ -0,0 +1,4 @@
1
+ export declare const UpdateFlpOnFolderUpdatedFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdateFlpOnFolderUpdatedHandler } from "./UpdateFlpOnFolderUpdatedHandler.js";
3
+ const UpdateFlpOnFolderUpdatedFeature = createFeature({
4
+ name: "UpdateFlpOnFolderUpdated",
5
+ register (container) {
6
+ container.register(UpdateFlpOnFolderUpdatedHandler);
7
+ }
8
+ });
9
+ export { UpdateFlpOnFolderUpdatedFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/UpdateFlpOnFolderUpdated/feature.js","sources":["../../../../src/features/flp/UpdateFlpOnFolderUpdated/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateFlpOnFolderUpdatedHandler } from \"./UpdateFlpOnFolderUpdatedHandler.js\";\n\nexport const UpdateFlpOnFolderUpdatedFeature = createFeature({\n name: \"UpdateFlpOnFolderUpdated\",\n register(container) {\n container.register(UpdateFlpOnFolderUpdatedHandler);\n }\n});\n"],"names":["UpdateFlpOnFolderUpdatedFeature","createFeature","container","UpdateFlpOnFolderUpdatedHandler"],"mappings":";;AAGO,MAAMA,kCAAkCC,cAAc;IACzD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { UpdateFlpOnFolderUpdatedFeature } from "./feature.js";
@@ -0,0 +1 @@
1
+ export { UpdateFlpOnFolderUpdatedFeature } from "./feature.js";
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFolderRepository as RepositoryAbstraction, type ICreateFolderRepository } from "./abstractions.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import type { CreateFolderParams, Folder } from "../../../folder/folder.types.js";
8
+ declare class CreateFolderRepositoryImpl implements ICreateFolderRepository {
9
+ private createEntry;
10
+ private listLatestEntries;
11
+ private getEntryById;
12
+ private folderModel;
13
+ constructor(createEntry: CreateEntryUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, folderModel: FolderModel.Interface);
14
+ execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryAbstraction.Error>>;
15
+ private checkExistingFolder;
16
+ private createFolderPath;
17
+ }
18
+ export declare const CreateFolderRepository: typeof CreateFolderRepositoryImpl & {
19
+ __abstraction: import("@webiny/di").Abstraction<ICreateFolderRepository>;
20
+ };
21
+ export {};
@@ -0,0 +1,85 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFolderRepository } from "./abstractions.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
5
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
6
+ import { FolderModel } from "../../../domain/folder/abstractions.js";
7
+ import { EntryToFolderMapper } from "../shared/EntryToFolderMapper.js";
8
+ import { FolderPersistenceError, FolderValidationError } from "../../../domain/folder/errors.js";
9
+ import { Path } from "../../../utils/Path.js";
10
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
11
+ class CreateFolderRepositoryImpl {
12
+ constructor(createEntry, listLatestEntries, getEntryById, folderModel){
13
+ this.createEntry = createEntry;
14
+ this.listLatestEntries = listLatestEntries;
15
+ this.getEntryById = getEntryById;
16
+ this.folderModel = folderModel;
17
+ }
18
+ async execute(data) {
19
+ const checkResult = await this.checkExistingFolder({
20
+ type: data.type,
21
+ slug: data.slug,
22
+ parentId: data.parentId
23
+ });
24
+ if (checkResult.isFail()) return Result.fail(checkResult.error);
25
+ const pathResult = await this.createFolderPath({
26
+ slug: data.slug,
27
+ parentId: data.parentId
28
+ });
29
+ if (pathResult.isFail()) return Result.fail(pathResult.error);
30
+ const result = await this.createEntry.execute(this.folderModel, {
31
+ values: {
32
+ ...data,
33
+ parentId: data.parentId || null,
34
+ path: pathResult.value
35
+ }
36
+ });
37
+ if (result.isFail()) {
38
+ if ("Cms/Entry/ValidationError" === result.error.code) return Result.fail(new FolderValidationError(result.error.message));
39
+ return Result.fail(new FolderPersistenceError(result.error));
40
+ }
41
+ const folder = EntryToFolderMapper.toFolder(result.value);
42
+ return Result.ok(folder);
43
+ }
44
+ async checkExistingFolder(params) {
45
+ const { type, slug, parentId, excludeId } = params;
46
+ const result = await this.listLatestEntries.execute(this.folderModel, {
47
+ where: {
48
+ latest: true,
49
+ values: {
50
+ type,
51
+ slug,
52
+ parentId
53
+ },
54
+ ...excludeId ? {
55
+ entryId_not: excludeId
56
+ } : {}
57
+ },
58
+ limit: 1
59
+ });
60
+ if (result.isFail()) return Result.fail(new FolderPersistenceError(result.error));
61
+ const { entries } = result.value;
62
+ if (entries.length > 0) return Result.fail(new FolderValidationError(`Folder with slug "${slug}" already exists at this level.`));
63
+ return Result.ok();
64
+ }
65
+ async createFolderPath(params) {
66
+ const { slug, parentId } = params;
67
+ if (!parentId) return Result.ok(Path.create(slug));
68
+ const parentResult = await this.getEntryById.execute(this.folderModel, EntryId.from(parentId).toString());
69
+ if (parentResult.isFail()) return Result.fail(new FolderPersistenceError(new Error("Parent folder not found. Unable to create the folder path")));
70
+ const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);
71
+ return Result.ok(Path.create(slug, parentFolder.path));
72
+ }
73
+ }
74
+ const CreateFolderRepository_CreateFolderRepository = CreateFolderRepository.createImplementation({
75
+ implementation: CreateFolderRepositoryImpl,
76
+ dependencies: [
77
+ CreateEntryUseCase,
78
+ ListLatestEntriesUseCase,
79
+ GetEntryByIdUseCase,
80
+ FolderModel
81
+ ]
82
+ });
83
+ export { CreateFolderRepository_CreateFolderRepository as CreateFolderRepository };
84
+
85
+ //# sourceMappingURL=CreateFolderRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/folder/CreateFolder/CreateFolderRepository.js","sources":["../../../../src/features/folder/CreateFolder/CreateFolderRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateFolderRepository as RepositoryAbstraction,\n type ICreateFolderRepository\n} from \"./abstractions.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport type { CmsEntryFolder, CreateFolderParams, Folder } from \"~/folder/folder.types.js\";\nimport { EntryToFolderMapper } from \"../shared/EntryToFolderMapper.js\";\nimport { FolderPersistenceError, FolderValidationError } from \"~/domain/folder/errors.js\";\nimport { Path } from \"~/utils/Path.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nclass CreateFolderRepositoryImpl implements ICreateFolderRepository {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private folderModel: FolderModel.Interface\n ) {}\n\n async execute(data: CreateFolderParams): Promise<Result<Folder, RepositoryAbstraction.Error>> {\n // Check if folder already exists\n const checkResult = await this.checkExistingFolder({\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (checkResult.isFail()) {\n return Result.fail(checkResult.error);\n }\n\n // Create folder path\n const pathResult = await this.createFolderPath({\n slug: data.slug,\n parentId: data.parentId\n });\n\n if (pathResult.isFail()) {\n return Result.fail(pathResult.error);\n }\n\n // Create the entry\n const result = await this.createEntry.execute<CmsEntryFolder>(this.folderModel, {\n values: {\n ...data,\n parentId: data.parentId || null,\n path: pathResult.value\n }\n });\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/ValidationError\") {\n return Result.fail(new FolderValidationError(result.error.message));\n }\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const folder = EntryToFolderMapper.toFolder(result.value);\n return Result.ok(folder);\n }\n\n private async checkExistingFolder(params: {\n type: string;\n slug: string;\n parentId?: string | null;\n excludeId?: string;\n }): Promise<Result<void, RepositoryAbstraction.Error>> {\n const { type, slug, parentId, excludeId } = params;\n\n const result = await this.listLatestEntries.execute<CmsEntryFolder>(this.folderModel, {\n where: {\n latest: true,\n values: {\n type,\n slug,\n parentId\n },\n ...(excludeId ? { entryId_not: excludeId } : {})\n },\n limit: 1\n });\n\n if (result.isFail()) {\n return Result.fail(new FolderPersistenceError(result.error));\n }\n\n const { entries } = result.value;\n\n if (entries.length > 0) {\n return Result.fail(\n new FolderValidationError(\n `Folder with slug \"${slug}\" already exists at this level.`\n )\n );\n }\n\n return Result.ok();\n }\n\n private async createFolderPath(params: {\n slug: string;\n parentId?: string | null;\n }): Promise<Result<string, RepositoryAbstraction.Error>> {\n const { slug, parentId } = params;\n\n if (!parentId) {\n return Result.ok(Path.create(slug));\n }\n\n const parentResult = await this.getEntryById.execute<CmsEntryFolder>(\n this.folderModel,\n EntryId.from(parentId).toString()\n );\n\n if (parentResult.isFail()) {\n return Result.fail(\n new FolderPersistenceError(\n new Error(\"Parent folder not found. Unable to create the folder path\")\n )\n );\n }\n\n const parentFolder = EntryToFolderMapper.toFolder(parentResult.value);\n return Result.ok(Path.create(slug, parentFolder.path));\n }\n}\n\nexport const CreateFolderRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFolderRepositoryImpl,\n dependencies: [CreateEntryUseCase, ListLatestEntriesUseCase, GetEntryByIdUseCase, FolderModel]\n});\n"],"names":["CreateFolderRepositoryImpl","createEntry","listLatestEntries","getEntryById","folderModel","data","checkResult","Result","pathResult","result","FolderValidationError","FolderPersistenceError","folder","EntryToFolderMapper","params","type","slug","parentId","excludeId","entries","Path","parentResult","EntryId","Error","parentFolder","CreateFolderRepository","RepositoryAbstraction","CreateEntryUseCase","ListLatestEntriesUseCase","GetEntryByIdUseCase","FolderModel"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { CreateFolderUseCase as UseCaseAbstraction, CreateFolderRepository } from "./abstractions.js";
4
+ import type { Folder, CreateFolderParams } from "../../../folder/folder.types.js";
5
+ declare class CreateFolderUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private eventPublisher;
7
+ private repository;
8
+ constructor(eventPublisher: EventPublisherAbstraction.Interface, repository: CreateFolderRepository.Interface);
9
+ execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseAbstraction.Error>>;
10
+ }
11
+ export declare const CreateFolderUseCase: import("@webiny/di").Implementation<typeof CreateFolderUseCaseImpl>;
12
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import { createImplementation } from "@webiny/di";
4
+ import { CreateFolderRepository, CreateFolderUseCase } from "./abstractions.js";
5
+ import { FolderAfterCreateEvent, FolderBeforeCreateEvent } from "./events.js";
6
+ class CreateFolderUseCaseImpl {
7
+ constructor(eventPublisher, repository){
8
+ this.eventPublisher = eventPublisher;
9
+ this.repository = repository;
10
+ }
11
+ async execute(params) {
12
+ const beforeCreateEvent = new FolderBeforeCreateEvent({
13
+ input: params
14
+ });
15
+ await this.eventPublisher.publish(beforeCreateEvent);
16
+ const result = await this.repository.execute(params);
17
+ if (result.isFail()) return result;
18
+ const folder = result.value;
19
+ const afterCreateEvent = new FolderAfterCreateEvent({
20
+ folder
21
+ });
22
+ await this.eventPublisher.publish(afterCreateEvent);
23
+ return Result.ok(folder);
24
+ }
25
+ }
26
+ const CreateFolderUseCase_CreateFolderUseCase = createImplementation({
27
+ abstraction: CreateFolderUseCase,
28
+ implementation: CreateFolderUseCaseImpl,
29
+ dependencies: [
30
+ EventPublisher,
31
+ CreateFolderRepository
32
+ ]
33
+ });
34
+ export { CreateFolderUseCase_CreateFolderUseCase as CreateFolderUseCase };
35
+
36
+ //# sourceMappingURL=CreateFolderUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/folder/CreateFolder/CreateFolderUseCase.js","sources":["../../../../src/features/folder/CreateFolder/CreateFolderUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { createImplementation } from \"@webiny/di\";\nimport {\n CreateFolderUseCase as UseCaseAbstraction,\n CreateFolderRepository\n} from \"./abstractions.js\";\nimport { FolderBeforeCreateEvent, FolderAfterCreateEvent } from \"./events.js\";\nimport type { Folder, CreateFolderParams } from \"~/folder/folder.types.js\";\n\nclass CreateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreateFolderRepository.Interface\n ) {}\n\n async execute(params: CreateFolderParams): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n // Publish before create event\n const beforeCreateEvent = new FolderBeforeCreateEvent({\n input: params\n });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after create event\n const afterCreateEvent = new FolderAfterCreateEvent({\n folder\n });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const CreateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateFolderUseCaseImpl,\n dependencies: [EventPublisher, CreateFolderRepository]\n});\n"],"names":["CreateFolderUseCaseImpl","eventPublisher","repository","params","beforeCreateEvent","FolderBeforeCreateEvent","result","folder","afterCreateEvent","FolderAfterCreateEvent","Result","CreateFolderUseCase","createImplementation","UseCaseAbstraction","EventPublisher","CreateFolderRepository"],"mappings":";;;;;AAaA,MAAMA;IACF,YACYC,cAAmD,EACnDC,UAA4C,CACtD;aAFUD,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,MAA0B,EAAqD;QAEzF,MAAMC,oBAAoB,IAAIC,wBAAwB;YAClD,OAAOF;QACX;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAGlC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH;QAE7C,IAAIG,OAAO,MAAM,IACb,OAAOA;QAGX,MAAMC,SAASD,OAAO,KAAK;QAG3B,MAAME,mBAAmB,IAAIC,uBAAuB;YAChDF;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACC;QAElC,OAAOE,OAAO,EAAE,CAACH;IACrB;AACJ;AAEO,MAAMI,0CAAsBC,qBAAqB;IACpD,aAAaC;IACb,gBAAgBb;IAChB,cAAc;QAACc;QAAgBC;KAAuB;AAC1D"}