@webiny/api-aco 0.0.0-unstable.b14eaecf38 → 0.0.0-unstable.b6d7105cee

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 (560) hide show
  1. package/README.md +6 -28
  2. package/constants.d.ts +2 -0
  3. package/constants.js +5 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +2 -2
  6. package/createAcoContext.js +111 -61
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +55 -37
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoTasks.d.ts +1 -0
  12. package/createAcoTasks.js +14 -0
  13. package/createAcoTasks.js.map +1 -0
  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 +10 -0
  81. package/features/flp/CreateFlp/feature.js +12 -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 +10 -0
  100. package/features/flp/DeleteFlp/feature.js +12 -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 +12 -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 +12 -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 +19 -0
  192. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +152 -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 +10 -0
  198. package/features/flp/UpdateFlp/feature.js +12 -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 +10 -0
  377. package/features/folder/shared/abstractions.js +6 -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 +3 -0
  383. package/filter/filter.gql.js +130 -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 +5 -0
  408. package/flp/tasks/index.js +20 -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 -101
  424. package/folder/folder.gql.js.map +1 -1
  425. package/folder/folder.types.d.ts +51 -58
  426. package/folder/folder.types.js +0 -5
  427. package/index.d.ts +3 -3
  428. package/index.js +12 -27
  429. package/index.js.map +1 -1
  430. package/package.json +34 -39
  431. package/types.d.ts +27 -22
  432. package/types.js +8 -38
  433. package/types.js.map +1 -1
  434. package/utils/FoldersCacheFactory.d.ts +10 -0
  435. package/utils/FoldersCacheFactory.js +25 -0
  436. package/utils/FoldersCacheFactory.js.map +1 -0
  437. package/utils/ListCache.d.ts +23 -0
  438. package/utils/ListCache.js +24 -0
  439. package/utils/ListCache.js.map +1 -0
  440. package/utils/Path.d.ts +3 -0
  441. package/utils/Path.js +10 -0
  442. package/utils/Path.js.map +1 -0
  443. package/utils/compress.d.ts +4 -0
  444. package/utils/compress.js +13 -0
  445. package/utils/compress.js.map +1 -0
  446. package/utils/createListSort.d.ts +3 -2
  447. package/utils/createListSort.js +6 -12
  448. package/utils/createListSort.js.map +1 -1
  449. package/utils/createOperationsWrapper.d.ts +6 -3
  450. package/utils/createOperationsWrapper.js +14 -28
  451. package/utils/createOperationsWrapper.js.map +1 -1
  452. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  453. package/utils/decorators/CmsEntriesCrudDecorators.js +175 -0
  454. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  455. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  456. package/utils/decorators/FilterEntriesByFolderFactory.js +22 -0
  457. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  458. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  459. package/utils/decorators/ListEntriesFactory.js +73 -0
  460. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  461. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  462. package/utils/decorators/hasRootFolderId.js +13 -0
  463. package/utils/decorators/hasRootFolderId.js.map +1 -0
  464. package/utils/decorators/isPageModel.d.ts +5 -0
  465. package/utils/decorators/isPageModel.js +8 -0
  466. package/utils/decorators/isPageModel.js.map +1 -0
  467. package/utils/ensureAuthentication.d.ts +2 -0
  468. package/utils/ensureAuthentication.js +11 -0
  469. package/utils/ensureAuthentication.js.map +1 -0
  470. package/utils/pickEntryFieldValues.d.ts +3 -0
  471. package/utils/pickEntryFieldValues.js +29 -0
  472. package/utils/pickEntryFieldValues.js.map +1 -0
  473. package/utils/resolve.d.ts +2 -2
  474. package/utils/resolve.js +10 -14
  475. package/utils/resolve.js.map +1 -1
  476. package/context/folders.d.ts +0 -2
  477. package/context/folders.js +0 -261
  478. package/context/folders.js.map +0 -1
  479. package/context/index.d.ts +0 -2
  480. package/context/index.js +0 -22
  481. package/context/index.js.map +0 -1
  482. package/context/links.d.ts +0 -2
  483. package/context/links.js +0 -270
  484. package/context/links.js.map +0 -1
  485. package/createAcoCrud.d.ts +0 -2
  486. package/createAcoCrud.js +0 -17
  487. package/createAcoCrud.js.map +0 -1
  488. package/createAcoFields.d.ts +0 -2
  489. package/createAcoFields.js +0 -40
  490. package/createAcoFields.js.map +0 -1
  491. package/createAcoHooks.d.ts +0 -2
  492. package/createAcoHooks.js +0 -11
  493. package/createAcoHooks.js.map +0 -1
  494. package/createAcoModels.d.ts +0 -2
  495. package/createAcoModels.js +0 -65
  496. package/createAcoModels.js.map +0 -1
  497. package/createAcoStorageOperations.d.ts +0 -10
  498. package/createAcoStorageOperations.js +0 -19
  499. package/createAcoStorageOperations.js.map +0 -1
  500. package/folder/folder.crud.d.ts +0 -3
  501. package/folder/folder.crud.js +0 -92
  502. package/folder/folder.crud.js.map +0 -1
  503. package/folder/folder.model.d.ts +0 -4
  504. package/folder/folder.model.js +0 -75
  505. package/folder/folder.model.js.map +0 -1
  506. package/folder/folder.so.d.ts +0 -3
  507. package/folder/folder.so.js +0 -151
  508. package/folder/folder.so.js.map +0 -1
  509. package/folder/folder.types.js.map +0 -1
  510. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  511. package/folder/onFolderBeforeDelete.hook.js +0 -53
  512. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  513. package/graphql/base.gql.d.ts +0 -3
  514. package/graphql/base.gql.js +0 -63
  515. package/graphql/base.gql.js.map +0 -1
  516. package/graphql/folders.gql.d.ts +0 -3
  517. package/graphql/folders.gql.js +0 -126
  518. package/graphql/folders.gql.js.map +0 -1
  519. package/graphql/index.d.ts +0 -1
  520. package/graphql/index.js +0 -15
  521. package/graphql/index.js.map +0 -1
  522. package/graphql/links.gql.d.ts +0 -3
  523. package/graphql/links.gql.js +0 -123
  524. package/graphql/links.gql.js.map +0 -1
  525. package/record/record.crud.d.ts +0 -3
  526. package/record/record.crud.js +0 -92
  527. package/record/record.crud.js.map +0 -1
  528. package/record/record.gql.d.ts +0 -3
  529. package/record/record.gql.js +0 -123
  530. package/record/record.gql.js.map +0 -1
  531. package/record/record.model.d.ts +0 -4
  532. package/record/record.model.js +0 -62
  533. package/record/record.model.js.map +0 -1
  534. package/record/record.so.d.ts +0 -3
  535. package/record/record.so.js +0 -100
  536. package/record/record.so.js.map +0 -1
  537. package/record/record.types.d.ts +0 -96
  538. package/record/record.types.js +0 -5
  539. package/record/record.types.js.map +0 -1
  540. package/subscriptions/afterFolderDelete.d.ts +0 -3
  541. package/subscriptions/afterFolderDelete.js +0 -62
  542. package/subscriptions/afterFolderDelete.js.map +0 -1
  543. package/subscriptions/index.d.ts +0 -3
  544. package/subscriptions/index.js +0 -14
  545. package/subscriptions/index.js.map +0 -1
  546. package/utils/createModelField.d.ts +0 -5
  547. package/utils/createModelField.js +0 -37
  548. package/utils/createModelField.js.map +0 -1
  549. package/utils/fieldResolver.d.ts +0 -16
  550. package/utils/fieldResolver.js +0 -44
  551. package/utils/fieldResolver.js.map +0 -1
  552. package/utils/getFieldValues.d.ts +0 -2
  553. package/utils/getFieldValues.js +0 -19
  554. package/utils/getFieldValues.js.map +0 -1
  555. package/utils/isInstallationPending.d.ts +0 -4
  556. package/utils/isInstallationPending.js +0 -21
  557. package/utils/isInstallationPending.js.map +0 -1
  558. package/utils/modelFactory.d.ts +0 -15
  559. package/utils/modelFactory.js +0 -25
  560. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { GetPublishedEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ROOT_FOLDER } from "../../../constants.js";
5
+ class GetPublishedEntriesByIdsWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.folderLevelPermissions = folderLevelPermissions;
8
+ this.decoratee = decoratee;
9
+ }
10
+ async execute(model, ids) {
11
+ const result = await this.decoratee.execute(model, ids);
12
+ if (result.isFail()) return result;
13
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return result;
14
+ const entries = result.value;
15
+ const filteredEntries = await this.filterEntriesByFolder(entries);
16
+ return Result.ok(filteredEntries);
17
+ }
18
+ async filterEntriesByFolder(entries) {
19
+ const results = await Promise.all(entries.map(async (entry)=>{
20
+ const folderId = entry.location?.folderId;
21
+ if (!folderId || folderId === ROOT_FOLDER) return entry;
22
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
23
+ const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
24
+ permissions,
25
+ rwd: "r"
26
+ });
27
+ return canAccess ? entry : null;
28
+ }));
29
+ return results.filter((entry)=>!!entry);
30
+ }
31
+ }
32
+ const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({
33
+ abstraction: GetPublishedEntriesByIdsUseCase,
34
+ decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,
35
+ dependencies: [
36
+ FolderLevelPermissions
37
+ ]
38
+ });
39
+ export { GetPublishedEntriesByIdsWithFlpDecorator };
40
+
41
+ //# sourceMappingURL=GetPublishedEntriesByIdsWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetPublishedEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetPublishedEntriesByIdsWithFlpDecoratorImpl\n implements GetPublishedEntriesByIdsUseCase.Interface\n{\n public constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetPublishedEntriesByIdsUseCase.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], GetPublishedEntriesByIdsUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, ids);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entries = result.value;\n const filteredEntries = await this.filterEntriesByFolder<T>(entries);\n\n return Result.ok(filteredEntries);\n }\n\n private async filterEntriesByFolder<T extends CmsEntryValues = CmsEntryValues>(\n entries: CmsEntry<T>[]\n ): Promise<CmsEntry<T>[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccess = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccess ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry<T> => !!entry);\n }\n}\n\nexport const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({\n abstraction: GetPublishedEntriesByIdsUseCase,\n decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetPublishedEntriesByIdsWithFlpDecoratorImpl","folderLevelPermissions","decoratee","model","ids","result","entries","filteredEntries","Result","results","Promise","entry","folderId","ROOT_FOLDER","permissions","canAccess","GetPublishedEntriesByIdsWithFlpDecorator","createDecorator","GetPublishedEntriesByIdsUseCase","FolderLevelPermissions"],"mappings":";;;;AAMA,MAAMA;IAGF,YACYC,sBAAwD,EACxDC,SAAoD,CAC9D;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAa,QACTC,KAAe,EACfC,GAAa,EACwD;QACrE,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC;QAEtD,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAOA;QAGX,MAAMC,UAAUD,OAAO,KAAK;QAC5B,MAAME,kBAAkB,MAAM,IAAI,CAAC,qBAAqB,CAAID;QAE5D,OAAOE,OAAO,EAAE,CAACD;IACrB;IAEA,MAAc,sBACVD,OAAsB,EACA;QACtB,MAAMG,UAAU,MAAMC,QAAQ,GAAG,CAC7BJ,QAAQ,GAAG,CAAC,OAAMK;YACd,MAAMC,WAAWD,MAAM,QAAQ,EAAE;YACjC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAChE,MAAMG,YAAY,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBACvED;gBACA,KAAK;YACT;YACA,OAAOC,YAAYJ,QAAQ;QAC/B;QAGJ,OAAOF,QAAQ,MAAM,CAAC,CAACE,QAAgC,CAAC,CAACA;IAC7D;AACJ;AAEO,MAAMK,2CAA2CC,gBAAgB;IACpE,aAAaC;IACb,WAAWlB;IACX,cAAc;QAACmB;KAAuB;AAC1C"}
@@ -0,0 +1,11 @@
1
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsModel, CmsEntryValues, CmsEntryListParams } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListDeletedEntriesWithFlpDecoratorImpl implements ListDeletedEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListDeletedEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListDeletedEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListDeletedEntriesWithFlpDecorator: typeof ListDeletedEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
5
+ class ListDeletedEntriesWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.decoratee = decoratee;
8
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
9
+ }
10
+ async execute(model, params) {
11
+ const loader = async (params)=>{
12
+ const result = await this.decoratee.execute(model, params);
13
+ if (result.isFail()) throw result.error;
14
+ return result.value;
15
+ };
16
+ const { entries, meta } = await this.listEntriesHandler.execute({
17
+ model,
18
+ dataLoader: loader,
19
+ initialParams: params
20
+ });
21
+ return Result.ok({
22
+ entries,
23
+ meta
24
+ });
25
+ }
26
+ }
27
+ const ListDeletedEntriesWithFlpDecorator = createDecorator({
28
+ abstraction: ListDeletedEntriesUseCase,
29
+ decorator: ListDeletedEntriesWithFlpDecoratorImpl,
30
+ dependencies: [
31
+ FolderLevelPermissions
32
+ ]
33
+ });
34
+ export { ListDeletedEntriesWithFlpDecorator };
35
+
36
+ //# sourceMappingURL=ListDeletedEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListDeletedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryListParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListEntriesFactory } from \"~/utils/decorators/ListEntriesFactory.js\";\n\nclass ListDeletedEntriesWithFlpDecoratorImpl implements ListDeletedEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListDeletedEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListDeletedEntriesUseCase.Return<T> {\n const loader = async (params?: CmsEntryListParams) => {\n const result = await this.decoratee.execute<T>(model, params);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n };\n\n const { entries, meta } = await this.listEntriesHandler.execute<T>({\n model,\n dataLoader: loader,\n initialParams: params\n });\n\n return Result.ok({ entries, meta });\n }\n}\n\nexport const ListDeletedEntriesWithFlpDecorator = createDecorator({\n abstraction: ListDeletedEntriesUseCase,\n decorator: ListDeletedEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["ListDeletedEntriesWithFlpDecoratorImpl","folderLevelPermissions","decoratee","ListEntriesFactory","model","params","loader","result","entries","meta","Result","ListDeletedEntriesWithFlpDecorator","createDecorator","ListDeletedEntriesUseCase","FolderLevelPermissions"],"mappings":";;;;AAWA,MAAMA;IAGF,YACIC,sBAAwD,EAChDC,SAA8C,CACxD;aADUA,SAAS,GAATA;QAER,IAAI,CAAC,kBAAkB,GAAG,IAAIC,mBAAmBF;IACrD;IAEA,MAAM,QACFG,KAAe,EACfC,MAA2B,EACQ;QACnC,MAAMC,SAAS,OAAOD;YAClB,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIH,OAAOC;YACtD,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QAEA,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAI;YAC/DL;YACA,YAAYE;YACZ,eAAeD;QACnB;QAEA,OAAOK,OAAO,EAAE,CAAC;YAAEF;YAASC;QAAK;IACrC;AACJ;AAEO,MAAME,qCAAqCC,gBAAgB;IAC9D,aAAaC;IACb,WAAWb;IACX,cAAc;QAACc;KAAuB;AAC1C"}
@@ -0,0 +1,11 @@
1
+ import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsEntryListParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListEntriesWithFlpDecoratorImpl implements ListEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListEntriesWithFlpDecorator: typeof ListEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
5
+ class ListEntriesWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.decoratee = decoratee;
8
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
9
+ }
10
+ async execute(model, params) {
11
+ const loader = async (params)=>{
12
+ const result = await this.decoratee.execute(model, params);
13
+ if (result.isFail()) throw result.error;
14
+ return result.value;
15
+ };
16
+ const { entries, meta } = await this.listEntriesHandler.execute({
17
+ model,
18
+ dataLoader: loader,
19
+ initialParams: params
20
+ });
21
+ return Result.ok({
22
+ entries,
23
+ meta
24
+ });
25
+ }
26
+ }
27
+ const ListEntriesWithFlpDecorator = createDecorator({
28
+ abstraction: ListEntriesUseCase,
29
+ decorator: ListEntriesWithFlpDecoratorImpl,
30
+ dependencies: [
31
+ FolderLevelPermissions
32
+ ]
33
+ });
34
+ export { ListEntriesWithFlpDecorator };
35
+
36
+ //# sourceMappingURL=ListEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/ListEntriesWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/ListEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { ListEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsEntryListParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListEntriesFactory } from \"~/utils/decorators/ListEntriesFactory.js\";\n\nclass ListEntriesWithFlpDecoratorImpl implements ListEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListEntriesUseCase.Return<T> {\n const loader = async (params?: CmsEntryListParams) => {\n const result = await this.decoratee.execute<T>(model, params);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n };\n\n const { entries, meta } = await this.listEntriesHandler.execute<T>({\n model,\n dataLoader: loader,\n initialParams: params\n });\n\n return Result.ok({ entries, meta });\n }\n}\n\nexport const ListEntriesWithFlpDecorator = createDecorator({\n abstraction: ListEntriesUseCase,\n decorator: ListEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["ListEntriesWithFlpDecoratorImpl","folderLevelPermissions","decoratee","ListEntriesFactory","model","params","loader","result","entries","meta","Result","ListEntriesWithFlpDecorator","createDecorator","ListEntriesUseCase","FolderLevelPermissions"],"mappings":";;;;AAUA,MAAMA;IAGF,YACIC,sBAAwD,EAChDC,SAAuC,CACjD;aADUA,SAAS,GAATA;QAER,IAAI,CAAC,kBAAkB,GAAG,IAAIC,mBAAmBF;IACrD;IAEA,MAAM,QACFG,KAAe,EACfC,MAA2B,EACC;QAC5B,MAAMC,SAAS,OAAOD;YAClB,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIH,OAAOC;YACtD,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QAEA,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAI;YAC/DL;YACA,YAAYE;YACZ,eAAeD;QACnB;QAEA,OAAOK,OAAO,EAAE,CAAC;YAAEF;YAASC;QAAK;IACrC;AACJ;AAEO,MAAME,8BAA8BC,gBAAgB;IACvD,aAAaC;IACb,WAAWb;IACX,cAAc;QAACc;KAAuB;AAC1C"}
@@ -0,0 +1,11 @@
1
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsModel, CmsEntryValues, CmsEntryListParams } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListLatestEntriesWithFlpDecoratorImpl implements ListLatestEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListLatestEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListLatestEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListLatestEntriesWithFlpDecorator: typeof ListLatestEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
5
+ class ListLatestEntriesWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.decoratee = decoratee;
8
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
9
+ }
10
+ async execute(model, params) {
11
+ const loader = async (params)=>{
12
+ const result = await this.decoratee.execute(model, params);
13
+ if (result.isFail()) throw result.error;
14
+ return result.value;
15
+ };
16
+ const { entries, meta } = await this.listEntriesHandler.execute({
17
+ model,
18
+ dataLoader: loader,
19
+ initialParams: params
20
+ });
21
+ return Result.ok({
22
+ entries,
23
+ meta
24
+ });
25
+ }
26
+ }
27
+ const ListLatestEntriesWithFlpDecorator = createDecorator({
28
+ abstraction: ListLatestEntriesUseCase,
29
+ decorator: ListLatestEntriesWithFlpDecoratorImpl,
30
+ dependencies: [
31
+ FolderLevelPermissions
32
+ ]
33
+ });
34
+ export { ListLatestEntriesWithFlpDecorator };
35
+
36
+ //# sourceMappingURL=ListLatestEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/ListLatestEntriesWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/ListLatestEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryListParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListEntriesFactory } from \"~/utils/decorators/ListEntriesFactory.js\";\n\nclass ListLatestEntriesWithFlpDecoratorImpl implements ListLatestEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListLatestEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListLatestEntriesUseCase.Return<T> {\n const loader = async (params?: CmsEntryListParams) => {\n const result = await this.decoratee.execute<T>(model, params);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n };\n\n const { entries, meta } = await this.listEntriesHandler.execute<T>({\n model,\n dataLoader: loader,\n initialParams: params\n });\n\n return Result.ok({ entries, meta });\n }\n}\n\nexport const ListLatestEntriesWithFlpDecorator = createDecorator({\n abstraction: ListLatestEntriesUseCase,\n decorator: ListLatestEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["ListLatestEntriesWithFlpDecoratorImpl","folderLevelPermissions","decoratee","ListEntriesFactory","model","params","loader","result","entries","meta","Result","ListLatestEntriesWithFlpDecorator","createDecorator","ListLatestEntriesUseCase","FolderLevelPermissions"],"mappings":";;;;AAWA,MAAMA;IAGF,YACIC,sBAAwD,EAChDC,SAA6C,CACvD;aADUA,SAAS,GAATA;QAER,IAAI,CAAC,kBAAkB,GAAG,IAAIC,mBAAmBF;IACrD;IAEA,MAAM,QACFG,KAAe,EACfC,MAA2B,EACO;QAClC,MAAMC,SAAS,OAAOD;YAClB,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIH,OAAOC;YACtD,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QAEA,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAI;YAC/DL;YACA,YAAYE;YACZ,eAAeD;QACnB;QAEA,OAAOK,OAAO,EAAE,CAAC;YAAEF;YAASC;QAAK;IACrC;AACJ;AAEO,MAAME,oCAAoCC,gBAAgB;IAC7D,aAAaC;IACb,WAAWb;IACX,cAAc;QAACc;KAAuB;AAC1C"}
@@ -0,0 +1,11 @@
1
+ import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
2
+ import type { CmsModel, CmsEntryValues, CmsEntryListParams } from "@webiny/api-headless-cms/types/index.js";
3
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
4
+ declare class ListPublishedEntriesWithFlpDecoratorImpl implements ListPublishedEntriesUseCase.Interface {
5
+ private decoratee;
6
+ private readonly listEntriesHandler;
7
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: ListPublishedEntriesUseCase.Interface);
8
+ execute<T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams): ListPublishedEntriesUseCase.Return<T>;
9
+ }
10
+ export declare const ListPublishedEntriesWithFlpDecorator: typeof ListPublishedEntriesWithFlpDecoratorImpl;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { ListPublishedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
3
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
4
+ import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
5
+ class ListPublishedEntriesWithFlpDecoratorImpl {
6
+ constructor(folderLevelPermissions, decoratee){
7
+ this.decoratee = decoratee;
8
+ this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
9
+ }
10
+ async execute(model, params) {
11
+ const loader = async (params)=>{
12
+ const result = await this.decoratee.execute(model, params);
13
+ if (result.isFail()) throw result.error;
14
+ return result.value;
15
+ };
16
+ const { entries, meta } = await this.listEntriesHandler.execute({
17
+ model,
18
+ dataLoader: loader,
19
+ initialParams: params
20
+ });
21
+ return Result.ok({
22
+ entries,
23
+ meta
24
+ });
25
+ }
26
+ }
27
+ const ListPublishedEntriesWithFlpDecorator = createDecorator({
28
+ abstraction: ListPublishedEntriesUseCase,
29
+ decorator: ListPublishedEntriesWithFlpDecoratorImpl,
30
+ dependencies: [
31
+ FolderLevelPermissions
32
+ ]
33
+ });
34
+ export { ListPublishedEntriesWithFlpDecorator };
35
+
36
+ //# sourceMappingURL=ListPublishedEntriesWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ListPublishedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryListParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListEntriesFactory } from \"~/utils/decorators/ListEntriesFactory.js\";\n\nclass ListPublishedEntriesWithFlpDecoratorImpl implements ListPublishedEntriesUseCase.Interface {\n private readonly listEntriesHandler: ListEntriesFactory;\n\n constructor(\n folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: ListPublishedEntriesUseCase.Interface\n ) {\n this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n }\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): ListPublishedEntriesUseCase.Return<T> {\n const loader = async (params?: CmsEntryListParams) => {\n const result = await this.decoratee.execute<T>(model, params);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n };\n\n const { entries, meta } = await this.listEntriesHandler.execute<T>({\n model,\n dataLoader: loader,\n initialParams: params\n });\n\n return Result.ok({ entries, meta });\n }\n}\n\nexport const ListPublishedEntriesWithFlpDecorator = createDecorator({\n abstraction: ListPublishedEntriesUseCase,\n decorator: ListPublishedEntriesWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["ListPublishedEntriesWithFlpDecoratorImpl","folderLevelPermissions","decoratee","ListEntriesFactory","model","params","loader","result","entries","meta","Result","ListPublishedEntriesWithFlpDecorator","createDecorator","ListPublishedEntriesUseCase","FolderLevelPermissions"],"mappings":";;;;AAWA,MAAMA;IAGF,YACIC,sBAAwD,EAChDC,SAAgD,CAC1D;aADUA,SAAS,GAATA;QAER,IAAI,CAAC,kBAAkB,GAAG,IAAIC,mBAAmBF;IACrD;IAEA,MAAM,QACFG,KAAe,EACfC,MAA2B,EACU;QACrC,MAAMC,SAAS,OAAOD;YAClB,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIH,OAAOC;YACtD,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QAEA,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAI;YAC/DL;YACA,YAAYE;YACZ,eAAeD;QACnB;QAEA,OAAOK,OAAO,EAAE,CAAC;YAAEF;YAASC;QAAK;IACrC;AACJ;AAEO,MAAME,uCAAuCC,gBAAgB;IAChE,aAAaC;IACb,WAAWb;IACX,cAAc;QAACc;KAAuB;AAC1C"}
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { MoveEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import type { CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
5
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ declare class MoveEntryWithFlpDecoratorImpl implements MoveEntryUseCase.Interface {
8
+ private folderLevelPermissions;
9
+ private getRevisionById;
10
+ private decoratee;
11
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: MoveEntryUseCase.Interface);
12
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string, targetFolderId: string): Promise<Result<import("@webiny/api-headless-cms/types/types").CmsEntry<T>, EntryNotAuthorizedError | import("@webiny/api-headless-cms/domain/contentEntry/errors.js").EntryNotFoundError | import("@webiny/api-headless-cms/domain/contentEntry/errors.js").EntryPersistenceError>>;
13
+ }
14
+ export declare const MoveEntryWithFlpDecorator: typeof MoveEntryWithFlpDecoratorImpl;
15
+ export {};
@@ -0,0 +1,49 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { MoveEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/MoveEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ class MoveEntryWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee){
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, id, targetFolderId) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return this.decoratee.execute(model, id, targetFolderId);
15
+ const entryResult = await this.getRevisionById.execute(model, id);
16
+ if (entryResult.isFail()) return this.decoratee.execute(model, id, targetFolderId);
17
+ const entry = entryResult.value;
18
+ const currentFolderId = entry?.location?.folderId || ROOT_FOLDER;
19
+ if (currentFolderId === targetFolderId) return this.decoratee.execute(model, id, targetFolderId);
20
+ if (currentFolderId !== ROOT_FOLDER) {
21
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(currentFolderId);
22
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
23
+ permissions,
24
+ rwd: "w"
25
+ });
26
+ if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
27
+ }
28
+ if (targetFolderId !== ROOT_FOLDER) {
29
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(targetFolderId);
30
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
31
+ permissions,
32
+ rwd: "w"
33
+ });
34
+ if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
35
+ }
36
+ return this.decoratee.execute(model, id, targetFolderId);
37
+ }
38
+ }
39
+ const MoveEntryWithFlpDecorator = createDecorator({
40
+ abstraction: MoveEntryUseCase,
41
+ decorator: MoveEntryWithFlpDecoratorImpl,
42
+ dependencies: [
43
+ FolderLevelPermissions,
44
+ GetRevisionByIdUseCase
45
+ ]
46
+ });
47
+ export { MoveEntryWithFlpDecorator };
48
+
49
+ //# sourceMappingURL=MoveEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/MoveEntryWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/MoveEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { MoveEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/MoveEntry/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type { CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass MoveEntryWithFlpDecoratorImpl implements MoveEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: MoveEntryUseCase.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n targetFolderId: string\n ) {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n // First, get the entry to check its current folder\n const entryResult = await this.getRevisionById.execute<T>(model, id);\n if (entryResult.isFail()) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n const entry = entryResult.value;\n const currentFolderId = entry?.location?.folderId || ROOT_FOLDER;\n\n // If the entry is in the same folder we are trying to move it to, just continue\n if (currentFolderId === targetFolderId) {\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n\n // If current folder is not ROOT, check for access\n if (currentFolderId !== ROOT_FOLDER) {\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(currentFolderId);\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n }\n\n // If target folder is not ROOT, check for access\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(targetFolderId);\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n }\n\n return this.decoratee.execute<T>(model, id, targetFolderId);\n }\n}\n\nexport const MoveEntryWithFlpDecorator = createDecorator({\n abstraction: MoveEntryUseCase,\n decorator: MoveEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"names":["MoveEntryWithFlpDecoratorImpl","folderLevelPermissions","getRevisionById","decoratee","model","id","targetFolderId","entryResult","entry","currentFolderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","MoveEntryWithFlpDecorator","createDecorator","MoveEntryUseCase","FolderLevelPermissions","GetRevisionByIdUseCase"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,eAAiD,EACjDC,SAAqC,CAC/C;aAHUF,sBAAsB,GAAtBA;aACAC,eAAe,GAAfA;aACAC,SAAS,GAATA;IACT;IAEH,MAAa,QACTC,KAAe,EACfC,EAAU,EACVC,cAAsB,EACxB;QACE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC,IAAIC;QAIhD,MAAMC,cAAc,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAIH,OAAOC;QACjE,IAAIE,YAAY,MAAM,IAClB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIH,OAAOC,IAAIC;QAGhD,MAAME,QAAQD,YAAY,KAAK;QAC/B,MAAME,kBAAkBD,OAAO,UAAU,YAAYE;QAGrD,IAAID,oBAAoBH,gBACpB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC,IAAIC;QAIhD,IAAIG,oBAAoBC,aAAa;YACjC,MAAMC,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAEhE,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBAC7ED;gBACA,KAAK;YACT;YAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAE/B;QAGA,IAAIR,mBAAmBI,aAAa;YAChC,MAAMC,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACL;YAEhE,MAAMM,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBAC7ED;gBACA,KAAK;YACT;YAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAE/B;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIV,OAAOC,IAAIC;IAChD;AACJ;AAEO,MAAMS,4BAA4BC,gBAAgB;IACrD,aAAaC;IACb,WAAWjB;IACX,cAAc;QAACkB;QAAwBC;KAAuB;AAClE"}
@@ -0,0 +1,14 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import type { CmsEntry, CmsEntryValues, CmsModel, UpdateCmsEntryInput, UpdateCmsEntryOptionsInput } from "@webiny/api-headless-cms/types/index.js";
5
+ import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
6
+ declare class UpdateEntryWithFlpDecoratorImpl implements UpdateEntryUseCase.Interface {
7
+ private folderLevelPermissions;
8
+ private getRevisionById;
9
+ private decoratee;
10
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: UpdateEntryUseCase.Interface);
11
+ execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string, input: UpdateCmsEntryInput<T>, options?: UpdateCmsEntryOptionsInput): Promise<Result<CmsEntry<T>, UpdateEntryUseCase.Error>>;
12
+ }
13
+ export declare const UpdateEntryWithFlpDecorator: typeof UpdateEntryWithFlpDecoratorImpl;
14
+ export {};
@@ -0,0 +1,39 @@
1
+ import { Result, createDecorator } from "@webiny/feature/api";
2
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/abstractions.js";
3
+ import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
5
+ import { ROOT_FOLDER } from "../../../constants.js";
6
+ import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
7
+ class UpdateEntryWithFlpDecoratorImpl {
8
+ constructor(folderLevelPermissions, getRevisionById, decoratee){
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.getRevisionById = getRevisionById;
11
+ this.decoratee = decoratee;
12
+ }
13
+ async execute(model, id, input, options) {
14
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return this.decoratee.execute(model, id, input, options);
15
+ const entryResult = await this.getRevisionById.execute(model, id);
16
+ if (entryResult.isFail()) return this.decoratee.execute(model, id, input, options);
17
+ const entry = entryResult.value;
18
+ const folderId = entry?.location?.folderId;
19
+ if (!folderId || folderId === ROOT_FOLDER) return this.decoratee.execute(model, id, input, options);
20
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
21
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
22
+ permissions,
23
+ rwd: "w"
24
+ });
25
+ if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
26
+ return this.decoratee.execute(model, id, input, options);
27
+ }
28
+ }
29
+ const UpdateEntryWithFlpDecorator = createDecorator({
30
+ abstraction: UpdateEntryUseCase,
31
+ decorator: UpdateEntryWithFlpDecoratorImpl,
32
+ dependencies: [
33
+ FolderLevelPermissions,
34
+ GetRevisionByIdUseCase
35
+ ]
36
+ });
37
+ export { UpdateEntryWithFlpDecorator };
38
+
39
+ //# sourceMappingURL=UpdateEntryWithFlpDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/decorators/UpdateEntryWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/UpdateEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type {\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass UpdateEntryWithFlpDecoratorImpl implements UpdateEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: UpdateEntryUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ): Promise<Result<CmsEntry<T>, UpdateEntryUseCase.Error>> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, id, input, options);\n }\n\n const entryResult = await this.getRevisionById.execute(model, id);\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, id, input, options);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, id, input, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute<T>(model, id, input, options);\n }\n}\n\nexport const UpdateEntryWithFlpDecorator = createDecorator({\n abstraction: UpdateEntryUseCase,\n decorator: UpdateEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"names":["UpdateEntryWithFlpDecoratorImpl","folderLevelPermissions","getRevisionById","decoratee","model","id","input","options","entryResult","entry","folderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","UpdateEntryWithFlpDecorator","createDecorator","UpdateEntryUseCase","FolderLevelPermissions","GetRevisionByIdUseCase"],"mappings":";;;;;;AAcA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,eAAiD,EACjDC,SAAuC,CACjD;aAHUF,sBAAsB,GAAtBA;aACAC,eAAe,GAAfA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EACVC,KAA6B,EAC7BC,OAAoC,EACkB;QACtD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACH,OAAOC,IAAIC,OAAOC;QAGpD,MAAMC,cAAc,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAACJ,OAAOC;QAC9D,IAAIG,YAAY,MAAM,IAClB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACJ,OAAOC,IAAIC,OAAOC;QAGpD,MAAME,QAAQD,YAAY,KAAK;QAC/B,MAAME,WAAWD,OAAO,UAAU;QAElC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACP,OAAOC,IAAIC,OAAOC;QAGpD,MAAMK,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;QAChF,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAC7ED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIX,OAAOC,IAAIC,OAAOC;IACvD;AACJ;AAEO,MAAMS,8BAA8BC,gBAAgB;IACvD,aAAaC;IACb,WAAWlB;IACX,cAAc;QAACmB;QAAwBC;KAAuB;AAClE"}
@@ -0,0 +1,4 @@
1
+ export declare const CmsFlpFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,37 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateEntryWithFlpDecorator } from "./decorators/CreateEntryWithFlpDecorator.js";
3
+ import { CreateEntryRevisionFromWithFlpDecorator } from "./decorators/CreateEntryRevisionFromWithFlpDecorator.js";
4
+ import { UpdateEntryWithFlpDecorator } from "./decorators/UpdateEntryWithFlpDecorator.js";
5
+ import { DeleteEntryWithFlpDecorator } from "./decorators/DeleteEntryWithFlpDecorator.js";
6
+ import { DeleteEntryRevisionWithFlpDecorator } from "./decorators/DeleteEntryRevisionWithFlpDecorator.js";
7
+ import { MoveEntryWithFlpDecorator } from "./decorators/MoveEntryWithFlpDecorator.js";
8
+ import { GetEntryWithFlpDecorator } from "./decorators/GetEntryWithFlpDecorator.js";
9
+ import { GetEntryByIdWithFlpDecorator } from "./decorators/GetEntryByIdWithFlpDecorator.js";
10
+ import { GetLatestEntriesByIdsWithFlpDecorator } from "./decorators/GetLatestEntriesByIdsWithFlpDecorator.js";
11
+ import { GetPublishedEntriesByIdsWithFlpDecorator } from "./decorators/GetPublishedEntriesByIdsWithFlpDecorator.js";
12
+ import { ListLatestEntriesWithFlpDecorator } from "./decorators/ListLatestEntriesWithFlpDecorator.js";
13
+ import { ListPublishedEntriesWithFlpDecorator } from "./decorators/ListPublishedEntriesWithFlpDecorator.js";
14
+ import { ListDeletedEntriesWithFlpDecorator } from "./decorators/ListDeletedEntriesWithFlpDecorator.js";
15
+ import { ListEntriesWithFlpDecorator } from "./decorators/ListEntriesWithFlpDecorator.js";
16
+ const CmsFlpFeature = createFeature({
17
+ name: "Aco/CmsFlp",
18
+ register (container) {
19
+ container.registerDecorator(CreateEntryWithFlpDecorator);
20
+ container.registerDecorator(CreateEntryRevisionFromWithFlpDecorator);
21
+ container.registerDecorator(UpdateEntryWithFlpDecorator);
22
+ container.registerDecorator(DeleteEntryWithFlpDecorator);
23
+ container.registerDecorator(DeleteEntryRevisionWithFlpDecorator);
24
+ container.registerDecorator(MoveEntryWithFlpDecorator);
25
+ container.registerDecorator(GetEntryWithFlpDecorator);
26
+ container.registerDecorator(GetEntryByIdWithFlpDecorator);
27
+ container.registerDecorator(GetLatestEntriesByIdsWithFlpDecorator);
28
+ container.registerDecorator(GetPublishedEntriesByIdsWithFlpDecorator);
29
+ container.registerDecorator(ListEntriesWithFlpDecorator);
30
+ container.registerDecorator(ListLatestEntriesWithFlpDecorator);
31
+ container.registerDecorator(ListPublishedEntriesWithFlpDecorator);
32
+ container.registerDecorator(ListDeletedEntriesWithFlpDecorator);
33
+ }
34
+ });
35
+ export { CmsFlpFeature };
36
+
37
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/cms/feature.js","sources":["../../../src/features/cms/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateEntryWithFlpDecorator } from \"./decorators/CreateEntryWithFlpDecorator.js\";\nimport { CreateEntryRevisionFromWithFlpDecorator } from \"./decorators/CreateEntryRevisionFromWithFlpDecorator.js\";\nimport { UpdateEntryWithFlpDecorator } from \"./decorators/UpdateEntryWithFlpDecorator.js\";\nimport { DeleteEntryWithFlpDecorator } from \"./decorators/DeleteEntryWithFlpDecorator.js\";\nimport { DeleteEntryRevisionWithFlpDecorator } from \"./decorators/DeleteEntryRevisionWithFlpDecorator.js\";\nimport { MoveEntryWithFlpDecorator } from \"./decorators/MoveEntryWithFlpDecorator.js\";\nimport { GetEntryWithFlpDecorator } from \"./decorators/GetEntryWithFlpDecorator.js\";\nimport { GetEntryByIdWithFlpDecorator } from \"./decorators/GetEntryByIdWithFlpDecorator.js\";\nimport { GetLatestEntriesByIdsWithFlpDecorator } from \"./decorators/GetLatestEntriesByIdsWithFlpDecorator.js\";\nimport { GetPublishedEntriesByIdsWithFlpDecorator } from \"./decorators/GetPublishedEntriesByIdsWithFlpDecorator.js\";\nimport { ListLatestEntriesWithFlpDecorator } from \"./decorators/ListLatestEntriesWithFlpDecorator.js\";\nimport { ListPublishedEntriesWithFlpDecorator } from \"./decorators/ListPublishedEntriesWithFlpDecorator.js\";\nimport { ListDeletedEntriesWithFlpDecorator } from \"./decorators/ListDeletedEntriesWithFlpDecorator.js\";\nimport { ListEntriesWithFlpDecorator } from \"./decorators/ListEntriesWithFlpDecorator.js\";\n\nexport const CmsFlpFeature = createFeature({\n name: \"Aco/CmsFlp\",\n register(container) {\n // Command decorators\n container.registerDecorator(CreateEntryWithFlpDecorator);\n container.registerDecorator(CreateEntryRevisionFromWithFlpDecorator);\n container.registerDecorator(UpdateEntryWithFlpDecorator);\n container.registerDecorator(DeleteEntryWithFlpDecorator);\n container.registerDecorator(DeleteEntryRevisionWithFlpDecorator);\n container.registerDecorator(MoveEntryWithFlpDecorator);\n\n // Query decorators - single entry\n container.registerDecorator(GetEntryWithFlpDecorator);\n container.registerDecorator(GetEntryByIdWithFlpDecorator);\n\n // Query decorators - multiple entries\n container.registerDecorator(GetLatestEntriesByIdsWithFlpDecorator);\n container.registerDecorator(GetPublishedEntriesByIdsWithFlpDecorator);\n\n // Query decorators - list entries\n container.registerDecorator(ListEntriesWithFlpDecorator);\n container.registerDecorator(ListLatestEntriesWithFlpDecorator);\n container.registerDecorator(ListPublishedEntriesWithFlpDecorator);\n container.registerDecorator(ListDeletedEntriesWithFlpDecorator);\n }\n});\n"],"names":["CmsFlpFeature","createFeature","container","CreateEntryWithFlpDecorator","CreateEntryRevisionFromWithFlpDecorator","UpdateEntryWithFlpDecorator","DeleteEntryWithFlpDecorator","DeleteEntryRevisionWithFlpDecorator","MoveEntryWithFlpDecorator","GetEntryWithFlpDecorator","GetEntryByIdWithFlpDecorator","GetLatestEntriesByIdsWithFlpDecorator","GetPublishedEntriesByIdsWithFlpDecorator","ListEntriesWithFlpDecorator","ListLatestEntriesWithFlpDecorator","ListPublishedEntriesWithFlpDecorator","ListDeletedEntriesWithFlpDecorator"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,gBAAgBC,cAAc;IACvC,MAAM;IACN,UAASC,SAAS;QAEdA,UAAU,iBAAiB,CAACC;QAC5BD,UAAU,iBAAiB,CAACE;QAC5BF,UAAU,iBAAiB,CAACG;QAC5BH,UAAU,iBAAiB,CAACI;QAC5BJ,UAAU,iBAAiB,CAACK;QAC5BL,UAAU,iBAAiB,CAACM;QAG5BN,UAAU,iBAAiB,CAACO;QAC5BP,UAAU,iBAAiB,CAACQ;QAG5BR,UAAU,iBAAiB,CAACS;QAC5BT,UAAU,iBAAiB,CAACU;QAG5BV,UAAU,iBAAiB,CAACW;QAC5BX,UAAU,iBAAiB,CAACY;QAC5BZ,UAAU,iBAAiB,CAACa;QAC5Bb,UAAU,iBAAiB,CAACc;IAChC;AACJ"}
@@ -0,0 +1 @@
1
+ export { CmsFlpFeature } from "./feature.js";
@@ -0,0 +1 @@
1
+ export { CmsFlpFeature } from "./feature.js";
@@ -0,0 +1,8 @@
1
+ import type { CreateFlpUseCase 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 CreateFlpUseCase implements UseCaseAbstraction.Interface {
5
+ private context;
6
+ constructor(context: AcoContext);
7
+ execute(folder: Folder): Promise<void>;
8
+ }
@@ -0,0 +1,34 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ import { Path } from "../../../utils/Path.js";
3
+ import { Permissions, ROOT_FOLDER } from "@webiny/shared-aco";
4
+ class CreateFlpUseCase {
5
+ constructor(context){
6
+ this.context = context;
7
+ }
8
+ async execute(folder) {
9
+ try {
10
+ const { id, type, slug, parentId, permissions } = folder;
11
+ let parentFlp = null;
12
+ if (parentId) {
13
+ parentFlp = await this.context.aco.flp.get(parentId);
14
+ if (!parentFlp) 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");
15
+ }
16
+ await this.context.aco.flp.create({
17
+ id,
18
+ type,
19
+ slug,
20
+ parentId: parentId ?? ROOT_FOLDER,
21
+ path: Path.create(slug, parentFlp?.path),
22
+ permissions: Permissions.create(permissions, parentFlp)
23
+ });
24
+ } catch (error) {
25
+ throw WebinyError.from(error, {
26
+ message: "Error while creating FLP",
27
+ code: "ERROR_CREATE_FLP_USE_CASE"
28
+ });
29
+ }
30
+ }
31
+ }
32
+ export { CreateFlpUseCase };
33
+
34
+ //# sourceMappingURL=CreateFlpUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/CreateFlp/CreateFlpUseCase.js","sources":["../../../../src/features/flp/CreateFlp/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"],"names":["CreateFlpUseCase","context","folder","id","type","slug","parentId","permissions","parentFlp","WebinyError","ROOT_FOLDER","Path","Permissions","error"],"mappings":";;;AAQO,MAAMA;IACT,YAAoBC,OAAmB,CAAE;aAArBA,OAAO,GAAPA;IAAsB;IAE1C,MAAM,QAAQC,MAAc,EAAiB;QACzC,IAAI;YACA,MAAM,EAAEC,EAAE,EAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAGL;YAClD,IAAIM,YAA2C;YAE/C,IAAIF,UAAU;gBACVE,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAACF;gBAE3C,IAAI,CAACE,WACD,MAAM,IAAIC,YACN,+FACA;YAGZ;YAEA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC9BN;gBACAC;gBACAC;gBACA,UAAUC,YAAYI;gBACtB,MAAMC,KAAK,MAAM,CAACN,MAAMG,WAAW;gBACnC,aAAaI,YAAY,MAAM,CAACL,aAAaC;YACjD;QACJ,EAAE,OAAOK,OAAO;YACZ,MAAMJ,YAAY,IAAI,CAACI,OAAO;gBAC1B,SAAS;gBACT,MAAM;YACV;QACJ;IACJ;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { Folder } from "../../../folder/folder.types.js";
2
+ export interface ICreateFlpUseCase {
3
+ execute: (folder: Folder) => Promise<void>;
4
+ }
5
+ /** Create a folder-level permission. */
6
+ export declare const CreateFlpUseCase: import("@webiny/di").Abstraction<ICreateFlpUseCase>;
7
+ export declare namespace CreateFlpUseCase {
8
+ type Interface = ICreateFlpUseCase;
9
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CreateFlpUseCase = createAbstraction("CreateFlpUseCase");
3
+ export { CreateFlpUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/CreateFlp/abstractions.js","sources":["../../../../src/features/flp/CreateFlp/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\n/** Create a folder-level permission. */\nexport const CreateFlpUseCase = createAbstraction<ICreateFlpUseCase>(\"CreateFlpUseCase\");\n\nexport namespace CreateFlpUseCase {\n export type Interface = ICreateFlpUseCase;\n}\n"],"names":["CreateFlpUseCase","createAbstraction"],"mappings":";AASO,MAAMA,mBAAmBC,kBAAqC"}
@@ -0,0 +1,10 @@
1
+ import type { Container } from "@webiny/di";
2
+ import type { AcoContext } from "../../../types.js";
3
+ interface LegacyDeps {
4
+ context: AcoContext;
5
+ }
6
+ export declare const CreateFlpFeature: {
7
+ name: string;
8
+ register(container: Container, context: LegacyDeps): void;
9
+ };
10
+ export {};
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFlpUseCase } from "./CreateFlpUseCase.js";
3
+ import { CreateFlpUseCase as external_abstractions_js_CreateFlpUseCase } from "./abstractions.js";
4
+ const CreateFlpFeature = createFeature({
5
+ name: "CreateFlp",
6
+ register (container, deps) {
7
+ container.registerFactory(external_abstractions_js_CreateFlpUseCase, ()=>new CreateFlpUseCase(deps.context));
8
+ }
9
+ });
10
+ export { CreateFlpFeature };
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/flp/CreateFlp/feature.js","sources":["../../../../src/features/flp/CreateFlp/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"],"names":["CreateFlpFeature","createFeature","container","deps","UseCaseAbstraction","CreateFlpUseCase"],"mappings":";;;AAUO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAoB,EAAEC,IAAgB;QAC3CD,UAAU,eAAe,CAACE,2CAAoB,IACnC,IAAIC,iBAAiBF,KAAK,OAAO;IAEhD;AACJ"}