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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/README.md +6 -28
  2. package/constants.d.ts +2 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +8 -2
  6. package/createAcoContext.js +128 -50
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +48 -29
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -6
  12. package/createAcoStorageOperations.js +9 -18
  13. package/createAcoStorageOperations.js.map +1 -1
  14. package/createAcoTasks.d.ts +1 -0
  15. package/createAcoTasks.js +15 -0
  16. package/createAcoTasks.js.map +1 -0
  17. package/domain/folder/abstractions.d.ts +9 -0
  18. package/domain/folder/abstractions.js +8 -0
  19. package/domain/folder/abstractions.js.map +1 -0
  20. package/domain/folder/errors.d.ts +29 -0
  21. package/domain/folder/errors.js +56 -0
  22. package/domain/folder/errors.js.map +1 -0
  23. package/domain/folder/folder.model.d.ts +9 -0
  24. package/domain/folder/folder.model.js +42 -0
  25. package/domain/folder/folder.model.js.map +1 -0
  26. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  29. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  32. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  35. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  38. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  41. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  44. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  47. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  50. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  53. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  56. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  59. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  62. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  65. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  68. package/features/cms/feature.d.ts +1 -0
  69. package/features/cms/feature.js +43 -0
  70. package/features/cms/feature.js.map +1 -0
  71. package/features/cms/index.d.ts +1 -0
  72. package/features/cms/index.js +3 -0
  73. package/features/cms/index.js.map +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +8 -0
  78. package/features/flp/CreateFlp/abstractions.js +7 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +6 -0
  81. package/features/flp/CreateFlp/feature.js +13 -0
  82. package/features/flp/CreateFlp/feature.js.map +1 -0
  83. package/features/flp/CreateFlp/index.d.ts +2 -0
  84. package/features/flp/CreateFlp/index.js +4 -0
  85. package/features/flp/CreateFlp/index.js.map +1 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  88. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
  91. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  93. package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
  94. package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  96. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
  97. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  98. package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
  99. package/features/flp/DeleteFlp/abstractions.js +7 -0
  100. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  101. package/features/flp/DeleteFlp/feature.d.ts +6 -0
  102. package/features/flp/DeleteFlp/feature.js +13 -0
  103. package/features/flp/DeleteFlp/feature.js.map +1 -0
  104. package/features/flp/DeleteFlp/index.d.ts +2 -0
  105. package/features/flp/DeleteFlp/index.js +4 -0
  106. package/features/flp/DeleteFlp/index.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
  112. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  113. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  114. package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
  115. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
  116. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  117. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
  118. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
  121. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  122. package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
  123. package/features/flp/FolderLevelPermissions/feature.js +10 -0
  124. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  125. package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
  126. package/features/flp/FolderLevelPermissions/index.js +4 -0
  127. package/features/flp/FolderLevelPermissions/index.js.map +1 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
  154. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  155. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  156. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
  157. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  158. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  159. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
  160. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  161. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  162. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
  163. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  167. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  168. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
  169. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  170. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  171. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
  172. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  173. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  174. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
  175. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  176. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  177. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
  178. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  179. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  180. package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
  181. package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  182. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  183. package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
  184. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  185. package/features/flp/GetFlp/abstractions.d.ts +8 -0
  186. package/features/flp/GetFlp/abstractions.js +4 -0
  187. package/features/flp/GetFlp/abstractions.js.map +1 -0
  188. package/features/flp/GetFlp/feature.d.ts +1 -0
  189. package/features/flp/GetFlp/feature.js +13 -0
  190. package/features/flp/GetFlp/feature.js.map +1 -0
  191. package/features/flp/GetFlp/index.d.ts +1 -0
  192. package/features/flp/GetFlp/index.js +3 -0
  193. package/features/flp/GetFlp/index.js.map +1 -0
  194. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  195. package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
  196. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  197. package/features/flp/ListFlps/abstractions.d.ts +16 -0
  198. package/features/flp/ListFlps/abstractions.js +4 -0
  199. package/features/flp/ListFlps/abstractions.js.map +1 -0
  200. package/features/flp/ListFlps/feature.d.ts +1 -0
  201. package/features/flp/ListFlps/feature.js +13 -0
  202. package/features/flp/ListFlps/feature.js.map +1 -0
  203. package/features/flp/ListFlps/index.d.ts +1 -0
  204. package/features/flp/ListFlps/index.js +3 -0
  205. package/features/flp/ListFlps/index.js.map +1 -0
  206. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
  207. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
  208. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  209. package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
  210. package/features/flp/UpdateFlp/abstractions.js +7 -0
  211. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  212. package/features/flp/UpdateFlp/feature.d.ts +6 -0
  213. package/features/flp/UpdateFlp/feature.js +13 -0
  214. package/features/flp/UpdateFlp/feature.js.map +1 -0
  215. package/features/flp/UpdateFlp/index.d.ts +2 -0
  216. package/features/flp/UpdateFlp/index.js +4 -0
  217. package/features/flp/UpdateFlp/index.js.map +1 -0
  218. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  219. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  220. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  221. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
  222. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
  223. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  224. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  225. package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
  226. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
  227. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  228. package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
  229. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  230. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  231. package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
  232. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  233. package/features/folder/CreateFolder/abstractions.d.ts +55 -0
  234. package/features/folder/CreateFolder/abstractions.js +21 -0
  235. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  236. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  237. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
  238. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  239. package/features/folder/CreateFolder/events.d.ts +10 -0
  240. package/features/folder/CreateFolder/events.js +19 -0
  241. package/features/folder/CreateFolder/events.js.map +1 -0
  242. package/features/folder/CreateFolder/feature.d.ts +1 -0
  243. package/features/folder/CreateFolder/feature.js +14 -0
  244. package/features/folder/CreateFolder/feature.js.map +1 -0
  245. package/features/folder/CreateFolder/index.d.ts +2 -0
  246. package/features/folder/CreateFolder/index.js +4 -0
  247. package/features/folder/CreateFolder/index.js.map +1 -0
  248. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  249. package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
  250. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  251. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  252. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
  253. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  254. package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
  255. package/features/folder/DeleteFolder/abstractions.js +21 -0
  256. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  257. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  258. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
  259. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  260. package/features/folder/DeleteFolder/events.d.ts +10 -0
  261. package/features/folder/DeleteFolder/events.js +19 -0
  262. package/features/folder/DeleteFolder/events.js.map +1 -0
  263. package/features/folder/DeleteFolder/feature.d.ts +1 -0
  264. package/features/folder/DeleteFolder/feature.js +14 -0
  265. package/features/folder/DeleteFolder/feature.js.map +1 -0
  266. package/features/folder/DeleteFolder/index.d.ts +2 -0
  267. package/features/folder/DeleteFolder/index.js +4 -0
  268. package/features/folder/DeleteFolder/index.js.map +1 -0
  269. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  270. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
  271. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  272. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
  273. package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
  274. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  275. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
  276. package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
  277. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  278. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  279. package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
  280. package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
  281. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  282. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
  283. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  284. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
  285. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
  286. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  287. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  288. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
  289. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
  290. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  291. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
  292. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  293. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
  294. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
  295. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  296. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  297. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
  298. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
  299. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  300. package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
  301. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  302. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  303. package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
  304. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  305. package/features/folder/GetAncestors/abstractions.d.ts +38 -0
  306. package/features/folder/GetAncestors/abstractions.js +15 -0
  307. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  308. package/features/folder/GetAncestors/feature.d.ts +1 -0
  309. package/features/folder/GetAncestors/feature.js +12 -0
  310. package/features/folder/GetAncestors/feature.js.map +1 -0
  311. package/features/folder/GetAncestors/index.d.ts +2 -0
  312. package/features/folder/GetAncestors/index.js +4 -0
  313. package/features/folder/GetAncestors/index.js.map +1 -0
  314. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  315. package/features/folder/GetFolder/GetFolderRepository.js +31 -0
  316. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  317. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  318. package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
  319. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  320. package/features/folder/GetFolder/abstractions.d.ts +54 -0
  321. package/features/folder/GetFolder/abstractions.js +21 -0
  322. package/features/folder/GetFolder/abstractions.js.map +1 -0
  323. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  324. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
  325. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  326. package/features/folder/GetFolder/feature.d.ts +1 -0
  327. package/features/folder/GetFolder/feature.js +14 -0
  328. package/features/folder/GetFolder/feature.js.map +1 -0
  329. package/features/folder/GetFolder/index.d.ts +2 -0
  330. package/features/folder/GetFolder/index.js +4 -0
  331. package/features/folder/GetFolder/index.js.map +1 -0
  332. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  333. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
  334. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  335. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  336. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
  337. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  338. package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
  339. package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
  340. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  341. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  342. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
  343. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  344. package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
  345. package/features/folder/GetFolderHierarchy/feature.js +14 -0
  346. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  347. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  348. package/features/folder/GetFolderHierarchy/index.js +4 -0
  349. package/features/folder/GetFolderHierarchy/index.js.map +1 -0
  350. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  351. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
  352. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  353. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
  354. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
  355. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  356. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
  357. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
  358. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  359. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  360. package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
  361. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  362. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  363. package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
  364. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  365. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  366. package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
  367. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  368. package/features/folder/ListFolders/abstractions.d.ts +42 -0
  369. package/features/folder/ListFolders/abstractions.js +15 -0
  370. package/features/folder/ListFolders/abstractions.js.map +1 -0
  371. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  372. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
  373. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  374. package/features/folder/ListFolders/feature.d.ts +1 -0
  375. package/features/folder/ListFolders/feature.js +14 -0
  376. package/features/folder/ListFolders/feature.js.map +1 -0
  377. package/features/folder/ListFolders/index.d.ts +2 -0
  378. package/features/folder/ListFolders/index.js +4 -0
  379. package/features/folder/ListFolders/index.js.map +1 -0
  380. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  381. package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
  382. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  383. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  384. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
  385. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  386. package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
  387. package/features/folder/UpdateFolder/abstractions.js +21 -0
  388. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  389. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  390. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
  391. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  392. package/features/folder/UpdateFolder/events.d.ts +10 -0
  393. package/features/folder/UpdateFolder/events.js +19 -0
  394. package/features/folder/UpdateFolder/events.js.map +1 -0
  395. package/features/folder/UpdateFolder/feature.d.ts +1 -0
  396. package/features/folder/UpdateFolder/feature.js +14 -0
  397. package/features/folder/UpdateFolder/feature.js.map +1 -0
  398. package/features/folder/UpdateFolder/index.d.ts +2 -0
  399. package/features/folder/UpdateFolder/index.js +4 -0
  400. package/features/folder/UpdateFolder/index.js.map +1 -0
  401. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  402. package/features/folder/shared/EntryToFolderMapper.js +22 -0
  403. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  404. package/features/folder/shared/abstractions.d.ts +5 -0
  405. package/features/folder/shared/abstractions.js +4 -0
  406. package/features/folder/shared/abstractions.js.map +1 -0
  407. package/filter/filter.crud.d.ts +3 -0
  408. package/filter/filter.crud.js +33 -0
  409. package/filter/filter.crud.js.map +1 -0
  410. package/filter/filter.gql.d.ts +3 -0
  411. package/filter/filter.gql.js +146 -0
  412. package/filter/filter.gql.js.map +1 -0
  413. package/filter/filter.model.d.ts +9 -0
  414. package/filter/filter.model.js +41 -0
  415. package/filter/filter.model.js.map +1 -0
  416. package/filter/filter.so.d.ts +3 -0
  417. package/filter/filter.so.js +104 -0
  418. package/filter/filter.so.js.map +1 -0
  419. package/filter/filter.types.d.ts +67 -0
  420. package/filter/filter.types.js +7 -0
  421. package/filter/filter.types.js.map +1 -0
  422. package/flp/flp.crud.d.ts +7 -0
  423. package/flp/flp.crud.js +91 -0
  424. package/flp/flp.crud.js.map +1 -0
  425. package/flp/flp.so.d.ts +20 -0
  426. package/flp/flp.so.js +220 -0
  427. package/flp/flp.so.js.map +1 -0
  428. package/flp/flp.types.d.ts +93 -0
  429. package/flp/flp.types.js +3 -0
  430. package/flp/flp.types.js.map +1 -0
  431. package/flp/index.d.ts +3 -0
  432. package/flp/index.js +5 -0
  433. package/flp/index.js.map +1 -0
  434. package/flp/tasks/createFlp.task.d.ts +16 -0
  435. package/flp/tasks/createFlp.task.js +35 -0
  436. package/flp/tasks/createFlp.task.js.map +1 -0
  437. package/flp/tasks/deleteFlp.task.d.ts +16 -0
  438. package/flp/tasks/deleteFlp.task.js +35 -0
  439. package/flp/tasks/deleteFlp.task.js.map +1 -0
  440. package/flp/tasks/index.d.ts +5 -0
  441. package/flp/tasks/index.js +19 -0
  442. package/flp/tasks/index.js.map +1 -0
  443. package/flp/tasks/syncFlp.task.d.ts +20 -0
  444. package/flp/tasks/syncFlp.task.js +127 -0
  445. package/flp/tasks/syncFlp.task.js.map +1 -0
  446. package/flp/tasks/updateFlp.task.d.ts +16 -0
  447. package/flp/tasks/updateFlp.task.js +40 -0
  448. package/flp/tasks/updateFlp.task.js.map +1 -0
  449. package/folder/createFolderModelModifier.d.ts +36 -0
  450. package/folder/createFolderModelModifier.js +61 -0
  451. package/folder/createFolderModelModifier.js.map +1 -0
  452. package/folder/createFolderTypeDefs.d.ts +7 -0
  453. package/folder/createFolderTypeDefs.js +186 -0
  454. package/folder/createFolderTypeDefs.js.map +1 -0
  455. package/folder/folder.gql.d.ts +4 -3
  456. package/folder/folder.gql.js +146 -112
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +51 -58
  459. package/folder/folder.types.js +2 -4
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +8 -3
  462. package/index.js +9 -27
  463. package/index.js.map +1 -1
  464. package/package.json +43 -35
  465. package/types.d.ts +27 -22
  466. package/types.js +6 -37
  467. package/types.js.map +1 -1
  468. package/utils/FoldersCacheFactory.d.ts +10 -0
  469. package/utils/FoldersCacheFactory.js +24 -0
  470. package/utils/FoldersCacheFactory.js.map +1 -0
  471. package/utils/ListCache.d.ts +23 -0
  472. package/utils/ListCache.js +23 -0
  473. package/utils/ListCache.js.map +1 -0
  474. package/utils/Path.d.ts +3 -0
  475. package/utils/Path.js +11 -0
  476. package/utils/Path.js.map +1 -0
  477. package/utils/acoRecordId.js +4 -10
  478. package/utils/acoRecordId.js.map +1 -1
  479. package/utils/compress.d.ts +4 -0
  480. package/utils/compress.js +12 -0
  481. package/utils/compress.js.map +1 -0
  482. package/utils/createListSort.d.ts +3 -2
  483. package/utils/createListSort.js +6 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +11 -18
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  491. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  494. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  495. package/utils/decorators/ListEntriesFactory.js +106 -0
  496. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  497. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  498. package/utils/decorators/hasRootFolderId.js +19 -0
  499. package/utils/decorators/hasRootFolderId.js.map +1 -0
  500. package/utils/decorators/isPageModel.d.ts +5 -0
  501. package/utils/decorators/isPageModel.js +13 -0
  502. package/utils/decorators/isPageModel.js.map +1 -0
  503. package/utils/ensureAuthentication.d.ts +2 -0
  504. package/utils/ensureAuthentication.js +12 -0
  505. package/utils/ensureAuthentication.js.map +1 -0
  506. package/utils/pickEntryFieldValues.d.ts +3 -0
  507. package/utils/pickEntryFieldValues.js +23 -0
  508. package/utils/pickEntryFieldValues.js.map +1 -0
  509. package/utils/resolve.d.ts +1 -1
  510. package/utils/resolve.js +6 -11
  511. package/utils/resolve.js.map +1 -1
  512. package/createAcoCrud.d.ts +0 -2
  513. package/createAcoCrud.js +0 -17
  514. package/createAcoCrud.js.map +0 -1
  515. package/createAcoFields.d.ts +0 -2
  516. package/createAcoFields.js +0 -40
  517. package/createAcoFields.js.map +0 -1
  518. package/createAcoHooks.d.ts +0 -2
  519. package/createAcoHooks.js +0 -11
  520. package/createAcoHooks.js.map +0 -1
  521. package/createAcoModels.d.ts +0 -2
  522. package/createAcoModels.js +0 -57
  523. package/createAcoModels.js.map +0 -1
  524. package/folder/folder.crud.d.ts +0 -3
  525. package/folder/folder.crud.js +0 -92
  526. package/folder/folder.crud.js.map +0 -1
  527. package/folder/folder.model.d.ts +0 -4
  528. package/folder/folder.model.js +0 -75
  529. package/folder/folder.model.js.map +0 -1
  530. package/folder/folder.so.d.ts +0 -3
  531. package/folder/folder.so.js +0 -151
  532. package/folder/folder.so.js.map +0 -1
  533. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  534. package/folder/onFolderBeforeDelete.hook.js +0 -53
  535. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  536. package/record/record.crud.d.ts +0 -3
  537. package/record/record.crud.js +0 -95
  538. package/record/record.crud.js.map +0 -1
  539. package/record/record.gql.d.ts +0 -3
  540. package/record/record.gql.js +0 -187
  541. package/record/record.gql.js.map +0 -1
  542. package/record/record.model.d.ts +0 -4
  543. package/record/record.model.js +0 -62
  544. package/record/record.model.js.map +0 -1
  545. package/record/record.so.d.ts +0 -3
  546. package/record/record.so.js +0 -139
  547. package/record/record.so.js.map +0 -1
  548. package/record/record.types.d.ts +0 -109
  549. package/record/record.types.js +0 -5
  550. package/record/record.types.js.map +0 -1
  551. package/utils/checkPermissions.d.ts +0 -2
  552. package/utils/checkPermissions.js +0 -14
  553. package/utils/checkPermissions.js.map +0 -1
  554. package/utils/createModelField.d.ts +0 -5
  555. package/utils/createModelField.js +0 -37
  556. package/utils/createModelField.js.map +0 -1
  557. package/utils/fieldResolver.d.ts +0 -16
  558. package/utils/fieldResolver.js +0 -44
  559. package/utils/fieldResolver.js.map +0 -1
  560. package/utils/getFieldValues.d.ts +0 -5
  561. package/utils/getFieldValues.js +0 -16
  562. package/utils/getFieldValues.js.map +0 -1
  563. package/utils/isInstallationPending.d.ts +0 -4
  564. package/utils/isInstallationPending.js +0 -21
  565. package/utils/isInstallationPending.js.map +0 -1
  566. package/utils/modelFactory.d.ts +0 -15
  567. package/utils/modelFactory.js +0 -25
  568. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,206 @@
1
+ // @ts-nocheck Being removed
2
+
3
+ import { ROOT_FOLDER } from "../../constants.js";
4
+ import { ListEntriesFactory } from "./ListEntriesFactory.js";
5
+ import { FilterEntriesByFolderFactory } from "./FilterEntriesByFolderFactory.js";
6
+ import { decorateIfModelAuthorizationEnabled } from "./decorateIfModelAuthorizationEnabled.js";
7
+ import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
8
+ export class CmsEntriesCrudDecorators {
9
+ constructor({
10
+ context
11
+ }) {
12
+ this.context = context;
13
+ }
14
+ decorate() {
15
+ const context = this.context;
16
+ const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);
17
+ const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);
18
+ const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
19
+ decorateIfModelAuthorizationEnabled(context, "listEntries", async (...allParams) => {
20
+ const [decoratee, model, initialParams] = allParams;
21
+ return await listEntriesHandler.execute({
22
+ decoratee,
23
+ model,
24
+ initialParams
25
+ });
26
+ });
27
+ decorateIfModelAuthorizationEnabled(context, "listLatestEntries", async (...allParams) => {
28
+ const [decoratee, model, initialParams] = allParams;
29
+ return await listEntriesHandler.execute({
30
+ decoratee,
31
+ model,
32
+ initialParams
33
+ });
34
+ });
35
+ decorateIfModelAuthorizationEnabled(context, "listPublishedEntries", async (...allParams) => {
36
+ const [decoratee, model, initialParams] = allParams;
37
+ return await listEntriesHandler.execute({
38
+ decoratee,
39
+ model,
40
+ initialParams
41
+ });
42
+ });
43
+ decorateIfModelAuthorizationEnabled(context, "listDeletedEntries", async (...allParams) => {
44
+ const [decoratee, model, initialParams] = allParams;
45
+ return await listEntriesHandler.execute({
46
+ decoratee,
47
+ model,
48
+ initialParams
49
+ });
50
+ });
51
+ decorateIfModelAuthorizationEnabled(context, "getEntry", async (...allParams) => {
52
+ const [decoratee, model, params] = allParams;
53
+ const entry = await decoratee(model, params);
54
+ const folderId = entry?.location?.folderId;
55
+ if (!folderId || folderId === ROOT_FOLDER) {
56
+ return entry;
57
+ }
58
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
59
+ await folderLevelPermissions.ensureCanAccessFolderContent({
60
+ permissions,
61
+ rwd: "r"
62
+ });
63
+ return entry;
64
+ });
65
+ decorateIfModelAuthorizationEnabled(context, "getEntryById", async (...allParams) => {
66
+ const [decoratee, model, params] = allParams;
67
+ const entry = await decoratee(model, params);
68
+ const folderId = entry?.location?.folderId;
69
+ if (!folderId || folderId === ROOT_FOLDER) {
70
+ return entry;
71
+ }
72
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
73
+ await folderLevelPermissions.ensureCanAccessFolderContent({
74
+ permissions,
75
+ rwd: "r"
76
+ });
77
+ return entry;
78
+ });
79
+ decorateIfModelAuthorizationEnabled(context, "getLatestEntriesByIds", async (...allParams) => {
80
+ const [decoratee, model, ids] = allParams;
81
+ const entries = await decoratee(model, ids);
82
+ return filterEntriesByFolder.execute(entries);
83
+ });
84
+ decorateIfModelAuthorizationEnabled(context, "getPublishedEntriesByIds", async (...allParams) => {
85
+ const [decoratee, model, ids] = allParams;
86
+ const entries = await decoratee(model, ids);
87
+ return filterEntriesByFolder.execute(entries);
88
+ });
89
+ decorateIfModelAuthorizationEnabled(context, "createEntry", async (...allParams) => {
90
+ const [decoratee, model, params, options] = allParams;
91
+ const folderId = params.wbyAco_location?.folderId || params.location?.folderId;
92
+ if (!folderId || folderId === ROOT_FOLDER) {
93
+ return decoratee(model, params, options);
94
+ }
95
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
96
+ await folderLevelPermissions.ensureCanAccessFolderContent({
97
+ permissions,
98
+ rwd: "w"
99
+ });
100
+ return decoratee(model, params, options);
101
+ });
102
+ decorateIfModelAuthorizationEnabled(context, "createEntryRevisionFrom", async (...allParams) => {
103
+ const [decoratee, model, id, input, options] = allParams;
104
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
105
+ id
106
+ });
107
+ const folderId = entry?.location?.folderId;
108
+ if (!folderId || folderId === ROOT_FOLDER) {
109
+ return decoratee(model, id, input, options);
110
+ }
111
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
112
+ await folderLevelPermissions.ensureCanAccessFolderContent({
113
+ permissions,
114
+ rwd: "w"
115
+ });
116
+ return decoratee(model, id, input, options);
117
+ });
118
+ decorateIfModelAuthorizationEnabled(context, "updateEntry", async (...allParams) => {
119
+ const [decoratee, model, id, input, meta, options] = allParams;
120
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
121
+ id
122
+ });
123
+ const folderId = entry?.location?.folderId;
124
+ if (!folderId || folderId === ROOT_FOLDER) {
125
+ return decoratee(model, id, input, meta, options);
126
+ }
127
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
128
+ await folderLevelPermissions.ensureCanAccessFolderContent({
129
+ permissions,
130
+ rwd: "w"
131
+ });
132
+ return decoratee(model, id, input, meta, options);
133
+ });
134
+ decorateIfModelAuthorizationEnabled(context, "deleteEntry", async (...allParams) => {
135
+ const [decoratee, model, id, options] = allParams;
136
+ const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(model, {
137
+ id
138
+ });
139
+ const folderId = entry?.location?.folderId;
140
+ if (!folderId || folderId === ROOT_FOLDER) {
141
+ return decoratee(model, id, options);
142
+ }
143
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
144
+ await folderLevelPermissions.ensureCanAccessFolderContent({
145
+ permissions,
146
+ rwd: "d"
147
+ });
148
+ return decoratee(model, id, options);
149
+ });
150
+ decorateIfModelAuthorizationEnabled(context, "deleteEntryRevision", async (...allParams) => {
151
+ const [decoratee, model, id] = allParams;
152
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
153
+ id
154
+ });
155
+ const folderId = entry?.location?.folderId;
156
+ if (!folderId || folderId === ROOT_FOLDER) {
157
+ return decoratee(model, id);
158
+ }
159
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
160
+ await folderLevelPermissions.ensureCanAccessFolderContent({
161
+ permissions,
162
+ rwd: "d"
163
+ });
164
+ return decoratee(model, id);
165
+ });
166
+ decorateIfModelAuthorizationEnabled(context, "moveEntry", async (...allParams) => {
167
+ const [decoratee, model, id, targetFolderId] = allParams;
168
+
169
+ /**
170
+ * First we need to check if user has access to the entries existing folder.
171
+ */
172
+ const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
173
+ id
174
+ });
175
+ const folderId = entry?.location?.folderId || ROOT_FOLDER;
176
+ /**
177
+ * If the entry is in the same folder we are trying to move it to, just continue.
178
+ */
179
+ if (folderId === targetFolderId) {
180
+ return decoratee(model, id, targetFolderId);
181
+ } else if (folderId !== ROOT_FOLDER) {
182
+ /**
183
+ * If entry current folder is not a root, check for access
184
+ */
185
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
186
+ await folderLevelPermissions.ensureCanAccessFolderContent({
187
+ permissions,
188
+ rwd: "w"
189
+ });
190
+ }
191
+ /**
192
+ * If target folder is not a ROOT_FOLDER, check for access.
193
+ */
194
+ if (targetFolderId !== ROOT_FOLDER) {
195
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
196
+ await folderLevelPermissions.ensureCanAccessFolderContent({
197
+ permissions,
198
+ rwd: "w"
199
+ });
200
+ }
201
+ return decoratee(model, id, targetFolderId);
202
+ });
203
+ }
204
+ }
205
+
206
+ //# sourceMappingURL=CmsEntriesCrudDecorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ROOT_FOLDER","ListEntriesFactory","FilterEntriesByFolderFactory","decorateIfModelAuthorizationEnabled","FolderLevelPermissions","CmsEntriesCrudDecorators","constructor","context","decorate","folderLevelPermissions","container","resolve","filterEntriesByFolder","listEntriesHandler","allParams","decoratee","model","initialParams","execute","params","entry","folderId","location","permissions","getFolderLevelPermissions","ensureCanAccessFolderContent","rwd","ids","entries","options","wbyAco_location","id","input","cms","storageOperations","getRevisionById","meta","getLatestRevisionByEntryId","targetFolderId"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["// @ts-nocheck Being removed\nimport type { AcoContext } from \"~/types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { ListEntriesFactory } from \"./ListEntriesFactory.js\";\nimport { FilterEntriesByFolderFactory } from \"./FilterEntriesByFolderFactory.js\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\ntype Context = AcoContext;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);\n\n const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);\n const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context, \"listEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"listLatestEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"listDeletedEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(\n model,\n {\n id\n }\n );\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = 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 */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
3
+ export declare class FilterEntriesByFolderFactory {
4
+ private readonly folderLevelPermissions;
5
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface);
6
+ execute(entries: CmsEntry[]): Promise<CmsEntry[]>;
7
+ }
@@ -0,0 +1,23 @@
1
+ import { ROOT_FOLDER } from "../../constants.js";
2
+ export class FilterEntriesByFolderFactory {
3
+ constructor(folderLevelPermissions) {
4
+ this.folderLevelPermissions = folderLevelPermissions;
5
+ }
6
+ async execute(entries) {
7
+ const results = await Promise.all(entries.map(async entry => {
8
+ const folderId = entry.location?.folderId;
9
+ if (!folderId || folderId === ROOT_FOLDER) {
10
+ return entry;
11
+ }
12
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
13
+ const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
14
+ permissions,
15
+ rwd: "r"
16
+ });
17
+ return canAccessFolderContent ? entry : null;
18
+ }));
19
+ return results.filter(entry => !!entry);
20
+ }
21
+ }
22
+
23
+ //# sourceMappingURL=FilterEntriesByFolderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ROOT_FOLDER","FilterEntriesByFolderFactory","constructor","folderLevelPermissions","execute","entries","results","Promise","all","map","entry","folderId","location","permissions","getFolderLevelPermissions","canAccessFolderContent","rwd","filter"],"sources":["FilterEntriesByFolderFactory.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\nexport class FilterEntriesByFolderFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n }\n\n public async execute(entries: CmsEntry[]): Promise<CmsEntry[]> {\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 canAccessFolderContent =\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccessFolderContent ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n }\n}\n"],"mappings":"AACA,SAASA,WAAW;AAGpB,OAAO,MAAMC,4BAA4B,CAAC;EAGtCC,WAAWA,CAACC,sBAAwD,EAAE;IAClE,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;EACxD;EAEA,MAAaC,OAAOA,CAACC,OAAmB,EAAuB;IAC3D,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BH,OAAO,CAACI,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKX,WAAW,EAAE;QACvC,OAAOU,KAAK;MAChB;MAEA,MAAMG,WAAW,GACb,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACH,QAAQ,CAAC;MACzE,MAAMI,sBAAsB,GACxB,MAAM,IAAI,CAACZ,sBAAsB,CAACY,sBAAsB,CAAC;QACrDF,WAAW;QACXG,GAAG,EAAE;MACT,CAAC,CAAC;MACN,OAAOD,sBAAsB,GAAGL,KAAK,GAAG,IAAI;IAChD,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACW,MAAM,CAAEP,KAAK,IAAwB,CAAC,CAACA,KAAK,CAAC;EAChE;AACJ","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import type { CmsEntryListParams, CmsEntryValues } from "@webiny/api-headless-cms/types/index.js";
2
+ import { type CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { IListEntriesResult } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
4
+ import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
5
+ interface ListEntriesFactoryCallbackParams<T extends CmsEntryValues> {
6
+ model: CmsModel;
7
+ dataLoader: (params?: CmsEntryListParams) => Promise<IListEntriesResult<T>>;
8
+ initialParams?: CmsEntryListParams;
9
+ }
10
+ export declare class ListEntriesFactory {
11
+ private readonly folderLevelPermissions;
12
+ private readonly permissionsCache;
13
+ constructor(folderLevelPermissions: FolderLevelPermissions.Interface);
14
+ execute<T extends CmsEntryValues = CmsEntryValues>({ model, dataLoader, initialParams }: ListEntriesFactoryCallbackParams<T>): Promise<IListEntriesResult<T>>;
15
+ private getPermissions;
16
+ }
17
+ export {};
@@ -0,0 +1,106 @@
1
+ import { hasRootFolderId } from "./hasRootFolderId.js";
2
+ export class ListEntriesFactory {
3
+ constructor(folderLevelPermissions) {
4
+ this.folderLevelPermissions = folderLevelPermissions;
5
+ this.permissionsCache = new Map();
6
+ }
7
+ async execute({
8
+ model,
9
+ dataLoader,
10
+ initialParams = {}
11
+ }) {
12
+ const limit = initialParams?.limit || 50;
13
+ const where = initialParams?.where;
14
+ const params = {
15
+ ...initialParams,
16
+ limit
17
+ };
18
+ const hasRootFolder = hasRootFolderId({
19
+ model,
20
+ where
21
+ });
22
+
23
+ // If FLP should be skipped, or we're querying the root folder, skip permission checks
24
+ if (!this.folderLevelPermissions.canUseFolderLevelPermissions() || hasRootFolder) {
25
+ return dataLoader(params);
26
+ }
27
+ const resultEntries = [];
28
+ let totalCount = 0;
29
+ let hasMoreItems = true;
30
+ let cursor = null;
31
+ let fetchedAll = false;
32
+ let afterCursor = params.after;
33
+
34
+ // Process entries in batches until we have enough results or reach the end
35
+ while (!fetchedAll) {
36
+ const queryParams = {
37
+ ...params,
38
+ after: afterCursor
39
+ };
40
+ const {
41
+ entries,
42
+ meta
43
+ } = await dataLoader(queryParams);
44
+ if (totalCount === 0) {
45
+ totalCount = meta.totalCount;
46
+ }
47
+
48
+ // Process each entry and check folder permissions
49
+ for (const entry of entries) {
50
+ const folderId = entry.values?.location?.folderId || entry.location?.folderId;
51
+
52
+ // If entry has no folderId, it's not using ACO folders system
53
+ // Include it in results as it's not subject to folder permissions
54
+ if (!folderId) {
55
+ resultEntries.push(entry);
56
+ continue;
57
+ }
58
+ const permissions = await this.getPermissions(folderId);
59
+
60
+ // If no FLP exists for the folder, the entry is accessible
61
+ // This means the folder doesn't have any permission restrictions
62
+ if (!permissions.length) {
63
+ resultEntries.push(entry);
64
+ continue;
65
+ }
66
+
67
+ // Check if user has read permission for the folder
68
+ if (await this.folderLevelPermissions.canAccessFolderContent({
69
+ permissions,
70
+ rwd: "r"
71
+ })) {
72
+ resultEntries.push(entry);
73
+ } else {
74
+ totalCount--;
75
+ }
76
+ }
77
+
78
+ // Determine if we need to fetch more entries
79
+ if (!meta.hasMoreItems || resultEntries.length >= limit) {
80
+ fetchedAll = true;
81
+ hasMoreItems = meta.hasMoreItems;
82
+ cursor = meta.cursor;
83
+ } else {
84
+ afterCursor = meta.cursor;
85
+ }
86
+ }
87
+ return {
88
+ entries: resultEntries,
89
+ meta: {
90
+ totalCount,
91
+ hasMoreItems,
92
+ cursor
93
+ }
94
+ };
95
+ }
96
+ async getPermissions(folderId) {
97
+ if (this.permissionsCache.has(folderId)) {
98
+ return this.permissionsCache.get(folderId) ?? [];
99
+ }
100
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
101
+ this.permissionsCache.set(folderId, permissions);
102
+ return permissions;
103
+ }
104
+ }
105
+
106
+ //# sourceMappingURL=ListEntriesFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hasRootFolderId","ListEntriesFactory","constructor","folderLevelPermissions","permissionsCache","Map","execute","model","dataLoader","initialParams","limit","where","params","hasRootFolder","canUseFolderLevelPermissions","resultEntries","totalCount","hasMoreItems","cursor","fetchedAll","afterCursor","after","queryParams","entries","meta","entry","folderId","values","location","push","permissions","getPermissions","length","canAccessFolderContent","rwd","has","get","getFolderLevelPermissions","set"],"sources":["ListEntriesFactory.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryListParams,\n CmsEntryValues\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { type CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IListEntriesResult } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport { hasRootFolderId } from \"~/utils/decorators/hasRootFolderId.js\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\ninterface ListEntriesFactoryCallbackParams<T extends CmsEntryValues> {\n model: CmsModel;\n dataLoader: (params?: CmsEntryListParams) => Promise<IListEntriesResult<T>>;\n initialParams?: CmsEntryListParams;\n}\n\nexport class ListEntriesFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly permissionsCache: Map<string, FolderPermission[]>;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.permissionsCache = new Map();\n }\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>({\n model,\n dataLoader,\n initialParams = {}\n }: ListEntriesFactoryCallbackParams<T>): Promise<IListEntriesResult<T>> {\n const limit = initialParams?.limit || 50;\n const where = initialParams?.where;\n const params = { ...initialParams, limit };\n const hasRootFolder = hasRootFolderId({ model, where });\n\n // If FLP should be skipped, or we're querying the root folder, skip permission checks\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions() || hasRootFolder) {\n return dataLoader(params);\n }\n\n const resultEntries: CmsEntry<T>[] = [];\n let totalCount = 0;\n let hasMoreItems = true;\n let cursor: string | null = null;\n let fetchedAll = false;\n let afterCursor = params.after;\n\n // Process entries in batches until we have enough results or reach the end\n while (!fetchedAll) {\n const queryParams: CmsEntryListParams = { ...params, after: afterCursor };\n const { entries, meta } = await dataLoader(queryParams);\n\n if (totalCount === 0) {\n totalCount = meta.totalCount;\n }\n\n // Process each entry and check folder permissions\n for (const entry of entries) {\n const folderId = entry.values?.location?.folderId || entry.location?.folderId;\n\n // If entry has no folderId, it's not using ACO folders system\n // Include it in results as it's not subject to folder permissions\n if (!folderId) {\n resultEntries.push(entry);\n continue;\n }\n\n const permissions = await this.getPermissions(folderId);\n\n // If no FLP exists for the folder, the entry is accessible\n // This means the folder doesn't have any permission restrictions\n if (!permissions.length) {\n resultEntries.push(entry);\n continue;\n }\n\n // Check if user has read permission for the folder\n if (\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n })\n ) {\n resultEntries.push(entry);\n } else {\n totalCount--;\n }\n }\n\n // Determine if we need to fetch more entries\n if (!meta.hasMoreItems || resultEntries.length >= limit) {\n fetchedAll = true;\n hasMoreItems = meta.hasMoreItems;\n cursor = meta.cursor;\n } else {\n afterCursor = meta.cursor;\n }\n }\n\n return { entries: resultEntries, meta: { totalCount, hasMoreItems, cursor } };\n }\n\n private async getPermissions(folderId: string): Promise<FolderPermission[]> {\n if (this.permissionsCache.has(folderId)) {\n return this.permissionsCache.get(folderId) ?? [];\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n this.permissionsCache.set(folderId, permissions);\n return permissions;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { CmsEntryListWhere, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ interface Params {
3
+ model: CmsModel;
4
+ where: CmsEntryListWhere | undefined;
5
+ }
6
+ export declare const hasRootFolderId: ({ model, where }: Params) => boolean;
7
+ export {};
@@ -0,0 +1,19 @@
1
+ import isPlainObject from "lodash/isPlainObject.js";
2
+ import { isPageModel } from "./isPageModel.js";
3
+ import { ROOT_FOLDER } from "../../constants.js";
4
+ export const hasRootFolderId = ({
5
+ model,
6
+ where
7
+ }) => {
8
+ if (!where) {
9
+ return false;
10
+ }
11
+ const key = isPageModel(model) ? "location" : "wbyAco_location";
12
+ const location = where[key];
13
+ if (typeof location === "object" && location !== null && isPlainObject(location)) {
14
+ return location.folderId === ROOT_FOLDER;
15
+ }
16
+ return false;
17
+ };
18
+
19
+ //# sourceMappingURL=hasRootFolderId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isPlainObject","isPageModel","ROOT_FOLDER","hasRootFolderId","model","where","key","location","folderId"],"sources":["hasRootFolderId.ts"],"sourcesContent":["import isPlainObject from \"lodash/isPlainObject.js\";\nimport { isPageModel } from \"~/utils/decorators/isPageModel.js\";\nimport type { CmsEntryListWhere, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\ninterface Params {\n model: CmsModel;\n where: CmsEntryListWhere | undefined;\n}\n\nexport const hasRootFolderId = ({ model, where }: Params): boolean => {\n if (!where) {\n return false;\n }\n\n const key = isPageModel(model) ? \"location\" : \"wbyAco_location\";\n const location = where[key];\n\n if (typeof location === \"object\" && location !== null && isPlainObject(location)) {\n return (location as Record<string, any>).folderId === ROOT_FOLDER;\n }\n\n return false;\n};\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,yBAAyB;AACnD,SAASC,WAAW;AAEpB,SAASC,WAAW;AAOpB,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAc,CAAC,KAAc;EAClE,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,KAAK;EAChB;EAEA,MAAMC,GAAG,GAAGL,WAAW,CAACG,KAAK,CAAC,GAAG,UAAU,GAAG,iBAAiB;EAC/D,MAAMG,QAAQ,GAAGF,KAAK,CAACC,GAAG,CAAC;EAE3B,IAAI,OAAOC,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,IAAIP,aAAa,CAACO,QAAQ,CAAC,EAAE;IAC9E,OAAQA,QAAQ,CAAyBC,QAAQ,KAAKN,WAAW;EACrE;EAEA,OAAO,KAAK;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ /**
3
+ * Keep this until we figure out how to fetch the folders.
4
+ */
5
+ export declare const isPageModel: (model: CmsModel) => boolean;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Keep this until we figure out how to fetch the folders.
3
+ */
4
+ export const isPageModel = model => {
5
+ if (model.modelId === "pbPage") {
6
+ return true;
7
+ } else if (model.modelId === "acoSearchRecord-pbpage") {
8
+ return true;
9
+ }
10
+ return false;
11
+ };
12
+
13
+ //# sourceMappingURL=isPageModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isPageModel","model","modelId"],"sources":["isPageModel.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\n/**\n * Keep this until we figure out how to fetch the folders.\n */\nexport const isPageModel = (model: CmsModel): boolean => {\n if (model.modelId === \"pbPage\") {\n return true;\n } else if (model.modelId === \"acoSearchRecord-pbpage\") {\n return true;\n }\n return false;\n};\n"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAIC,KAAe,IAAc;EACrD,IAAIA,KAAK,CAACC,OAAO,KAAK,QAAQ,EAAE;IAC5B,OAAO,IAAI;EACf,CAAC,MAAM,IAAID,KAAK,CAACC,OAAO,KAAK,wBAAwB,EAAE;IACnD,OAAO,IAAI;EACf;EACA,OAAO,KAAK;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
2
+ export declare const ensureAuthentication: (context: ApiCoreContext) => void;
@@ -0,0 +1,12 @@
1
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/errors.js";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ export const ensureAuthentication = context => {
4
+ const identityContext = context.container.resolve(IdentityContext);
5
+ const identity = identityContext.getIdentity();
6
+ if (identity.isAdmin()) {
7
+ return;
8
+ }
9
+ throw new NotAuthorizedError();
10
+ };
11
+
12
+ //# sourceMappingURL=ensureAuthentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NotAuthorizedError","IdentityContext","ensureAuthentication","context","identityContext","container","resolve","identity","getIdentity","isAdmin"],"sources":["ensureAuthentication.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/errors.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nexport const ensureAuthentication = (context: ApiCoreContext) => {\n const identityContext = context.container.resolve(IdentityContext);\n const identity = identityContext.getIdentity();\n\n if (identity.isAdmin()) {\n return;\n }\n throw new NotAuthorizedError();\n};\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,qDAAqD;AAExF,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,OAAO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;EAC7D,MAAMC,eAAe,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACL,eAAe,CAAC;EAClE,MAAMM,QAAQ,GAAGH,eAAe,CAACI,WAAW,CAAC,CAAC;EAE9C,IAAID,QAAQ,CAACE,OAAO,CAAC,CAAC,EAAE;IACpB;EACJ;EACA,MAAM,IAAIT,kBAAkB,CAAC,CAAC;AAClC,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ export declare const baseFields: string[];
3
+ export declare function pickEntryFieldValues<T>(entry: CmsEntry): T;
@@ -0,0 +1,23 @@
1
+ export const baseFields = [
2
+ // Entry ID is mapped to "id" (we don't use revisions with ACO entities).
3
+ "id", "tenant", "createdOn", "modifiedOn", "savedOn", "createdBy", "modifiedBy", "savedBy"];
4
+ const pickBaseEntryFieldValues = entry => {
5
+ const pickedValues = {};
6
+ for (const fieldName of baseFields) {
7
+ const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(":");
8
+ if (srcFieldName in entry) {
9
+ Object.assign(pickedValues, {
10
+ [targetFieldName]: entry[srcFieldName]
11
+ });
12
+ }
13
+ }
14
+ return pickedValues;
15
+ };
16
+ export function pickEntryFieldValues(entry) {
17
+ return {
18
+ ...pickBaseEntryFieldValues(entry),
19
+ ...entry.values
20
+ };
21
+ }
22
+
23
+ //# sourceMappingURL=pickEntryFieldValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["baseFields","pickBaseEntryFieldValues","entry","pickedValues","fieldName","srcFieldName","targetFieldName","split","Object","assign","pickEntryFieldValues","values"],"sources":["pickEntryFieldValues.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const baseFields = [\n // Entry ID is mapped to \"id\" (we don't use revisions with ACO entities).\n \"id\",\n \"tenant\",\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\"\n];\n\nconst pickBaseEntryFieldValues = (entry: CmsEntry) => {\n const pickedValues: Partial<CmsEntry> = {};\n for (const fieldName of baseFields) {\n const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(\":\");\n if (srcFieldName in entry) {\n Object.assign(pickedValues, {\n [targetFieldName]: entry[srcFieldName as keyof CmsEntry]\n });\n }\n }\n\n return pickedValues;\n};\n\nexport function pickEntryFieldValues<T>(entry: CmsEntry): T {\n return {\n ...pickBaseEntryFieldValues(entry),\n ...entry.values\n } as T;\n}\n"],"mappings":"AAEA,OAAO,MAAMA,UAAU,GAAG;AACtB;AACA,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,CACZ;AAED,MAAMC,wBAAwB,GAAIC,KAAe,IAAK;EAClD,MAAMC,YAA+B,GAAG,CAAC,CAAC;EAC1C,KAAK,MAAMC,SAAS,IAAIJ,UAAU,EAAE;IAChC,MAAM,CAACK,YAAY,EAAEC,eAAe,GAAGD,YAAY,CAAC,GAAGD,SAAS,CAACG,KAAK,CAAC,GAAG,CAAC;IAC3E,IAAIF,YAAY,IAAIH,KAAK,EAAE;MACvBM,MAAM,CAACC,MAAM,CAACN,YAAY,EAAE;QACxB,CAACG,eAAe,GAAGJ,KAAK,CAACG,YAAY;MACzC,CAAC,CAAC;IACN;EACJ;EAEA,OAAOF,YAAY;AACvB,CAAC;AAED,OAAO,SAASO,oBAAoBA,CAAIR,KAAe,EAAK;EACxD,OAAO;IACH,GAAGD,wBAAwB,CAACC,KAAK,CAAC;IAClC,GAAGA,KAAK,CAACS;EACb,CAAC;AACL","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { Response, ErrorResponse } from "@webiny/handler-graphql";
1
+ import { ErrorResponse, Response } from "@webiny/handler-graphql";
2
2
  export declare const resolve: (fn: () => Promise<any>) => Promise<Response<any> | ErrorResponse>;
package/utils/resolve.js CHANGED
@@ -1,15 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resolve = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- const resolve = async fn => {
1
+ import { ErrorResponse, Response } from "@webiny/handler-graphql";
2
+ export const resolve = async fn => {
9
3
  try {
10
- return new _handlerGraphql.Response(await fn());
4
+ return new Response(await fn());
11
5
  } catch (e) {
12
- return new _handlerGraphql.ErrorResponse(e);
6
+ return new ErrorResponse(e);
13
7
  }
14
8
  };
15
- exports.resolve = resolve;
9
+
10
+ //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["resolve","fn","Response","e","ErrorResponse"],"sources":["resolve.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport const resolve = async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,OAAO,GAAG,MAAOC,EAAsB,IAAK;EACrD,IAAI;IACA,OAAO,IAAIC,wBAAQ,CAAC,MAAMD,EAAE,EAAE,CAAC;EACnC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC"}
1
+ {"version":3,"names":["ErrorResponse","Response","resolve","fn","e"],"sources":["resolve.ts"],"sourcesContent":["import { ErrorResponse, Response } from \"@webiny/handler-graphql\";\n\nexport const resolve = async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,yBAAyB;AAEjE,OAAO,MAAMC,OAAO,GAAG,MAAOC,EAAsB,IAAK;EACrD,IAAI;IACA,OAAO,IAAIF,QAAQ,CAAC,MAAME,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACR,OAAO,IAAIJ,aAAa,CAACI,CAAC,CAAC;EAC/B;AACJ,CAAC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import { AdvancedContentOrganisation, CreateAcoParams } from "./types";
2
- export declare const createAcoCrud: (params: CreateAcoParams) => AdvancedContentOrganisation;
package/createAcoCrud.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createAcoCrud = void 0;
7
- var _folder = require("./folder/folder.crud");
8
- var _record = require("./record/record.crud");
9
- const createAcoCrud = params => {
10
- const folderMethods = (0, _folder.createFolderCrudMethods)(params);
11
- const searchRecordMethods = (0, _record.createSearchRecordCrudMethods)(params);
12
- return {
13
- folder: folderMethods,
14
- search: searchRecordMethods
15
- };
16
- };
17
- exports.createAcoCrud = createAcoCrud;
@@ -1 +0,0 @@
1
- {"version":3,"names":["createAcoCrud","params","folderMethods","createFolderCrudMethods","searchRecordMethods","createSearchRecordCrudMethods","folder","search"],"sources":["createAcoCrud.ts"],"sourcesContent":["import { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\n\nimport { AdvancedContentOrganisation, CreateAcoParams } from \"~/types\";\n\nexport const createAcoCrud = (params: CreateAcoParams): AdvancedContentOrganisation => {\n const folderMethods = createFolderCrudMethods(params);\n const searchRecordMethods = createSearchRecordCrudMethods(params);\n\n return {\n folder: folderMethods,\n search: searchRecordMethods\n };\n};\n"],"mappings":";;;;;;AAAA;AACA;AAIO,MAAMA,aAAa,GAAIC,MAAuB,IAAkC;EACnF,MAAMC,aAAa,GAAG,IAAAC,+BAAuB,EAACF,MAAM,CAAC;EACrD,MAAMG,mBAAmB,GAAG,IAAAC,qCAA6B,EAACJ,MAAM,CAAC;EAEjE,OAAO;IACHK,MAAM,EAAEJ,aAAa;IACrBK,MAAM,EAAEH;EACZ,CAAC;AACL,CAAC;AAAC"}
@@ -1,2 +0,0 @@
1
- import { CmsModelFieldToGraphQLPlugin } from "@webiny/api-headless-cms/types";
2
- export declare const createAcoFields: () => CmsModelFieldToGraphQLPlugin[];