@webiny/api-aco 0.0.0-unstable.de38392959 → 0.0.0-unstable.df7a8bb475

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 (604) 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 +4 -2
  6. package/createAcoContext.js +103 -156
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +46 -60
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -5
  12. package/createAcoStorageOperations.js +5 -17
  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 +2 -2
  408. package/filter/filter.crud.js +6 -67
  409. package/filter/filter.crud.js.map +1 -1
  410. package/filter/filter.gql.d.ts +2 -2
  411. package/filter/filter.gql.js +16 -23
  412. package/filter/filter.gql.js.map +1 -1
  413. package/filter/filter.model.d.ts +9 -2
  414. package/filter/filter.model.js +38 -122
  415. package/filter/filter.model.js.map +1 -1
  416. package/filter/filter.so.d.ts +2 -2
  417. package/filter/filter.so.js +38 -32
  418. package/filter/filter.so.js.map +1 -1
  419. package/filter/filter.types.d.ts +4 -32
  420. package/filter/filter.types.js +1 -8
  421. package/filter/filter.types.js.map +1 -1
  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 +143 -186
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +40 -79
  459. package/folder/folder.types.js +1 -5
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +5 -6
  462. package/index.js +7 -62
  463. package/index.js.map +1 -1
  464. package/package.json +43 -41
  465. package/types.d.ts +22 -76
  466. package/types.js +2 -54
  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 +2 -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 +4 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +9 -18
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +116 -100
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  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 +1 -1
  501. package/utils/decorators/isPageModel.js +1 -8
  502. package/utils/decorators/isPageModel.js.map +1 -1
  503. package/utils/ensureAuthentication.d.ts +2 -2
  504. package/utils/ensureAuthentication.js +8 -12
  505. package/utils/ensureAuthentication.js.map +1 -1
  506. package/utils/pickEntryFieldValues.d.ts +1 -1
  507. package/utils/pickEntryFieldValues.js +3 -11
  508. package/utils/pickEntryFieldValues.js.map +1 -1
  509. package/utils/resolve.d.ts +2 -3
  510. package/utils/resolve.js +4 -20
  511. package/utils/resolve.js.map +1 -1
  512. package/apps/AcoApp.d.ts +0 -21
  513. package/apps/AcoApp.js +0 -143
  514. package/apps/AcoApp.js.map +0 -1
  515. package/apps/AcoApps.d.ts +0 -10
  516. package/apps/AcoApps.js +0 -75
  517. package/apps/AcoApps.js.map +0 -1
  518. package/apps/app.gql.d.ts +0 -3
  519. package/apps/app.gql.js +0 -60
  520. package/apps/app.gql.js.map +0 -1
  521. package/apps/index.d.ts +0 -2
  522. package/apps/index.js +0 -29
  523. package/apps/index.js.map +0 -1
  524. package/createAcoHooks.d.ts +0 -2
  525. package/createAcoHooks.js +0 -17
  526. package/createAcoHooks.js.map +0 -1
  527. package/createAcoModels.d.ts +0 -2
  528. package/createAcoModels.js +0 -29
  529. package/createAcoModels.js.map +0 -1
  530. package/folder/folder.crud.d.ts +0 -10
  531. package/folder/folder.crud.js +0 -289
  532. package/folder/folder.crud.js.map +0 -1
  533. package/folder/folder.model.d.ts +0 -2
  534. package/folder/folder.model.js +0 -104
  535. package/folder/folder.model.js.map +0 -1
  536. package/folder/folder.so.d.ts +0 -3
  537. package/folder/folder.so.js +0 -171
  538. package/folder/folder.so.js.map +0 -1
  539. package/folder/onFolderBeforeDeleteAco.hook.d.ts +0 -2
  540. package/folder/onFolderBeforeDeleteAco.hook.js +0 -67
  541. package/folder/onFolderBeforeDeleteAco.hook.js.map +0 -1
  542. package/folder/onFolderBeforeDeleteFm.hook.d.ts +0 -2
  543. package/folder/onFolderBeforeDeleteFm.hook.js +0 -49
  544. package/folder/onFolderBeforeDeleteFm.hook.js.map +0 -1
  545. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +0 -2
  546. package/folder/onFolderBeforeDeleteHcms.hook.js +0 -56
  547. package/folder/onFolderBeforeDeleteHcms.hook.js.map +0 -1
  548. package/plugins/AcoAppModifierPlugin.d.ts +0 -43
  549. package/plugins/AcoAppModifierPlugin.js +0 -58
  550. package/plugins/AcoAppModifierPlugin.js.map +0 -1
  551. package/plugins/AcoAppRegisterPlugin.d.ts +0 -8
  552. package/plugins/AcoAppRegisterPlugin.js +0 -21
  553. package/plugins/AcoAppRegisterPlugin.js.map +0 -1
  554. package/plugins/index.d.ts +0 -2
  555. package/plugins/index.js +0 -29
  556. package/plugins/index.js.map +0 -1
  557. package/record/graphql/createAppResolvers.d.ts +0 -14
  558. package/record/graphql/createAppResolvers.js +0 -115
  559. package/record/graphql/createAppResolvers.js.map +0 -1
  560. package/record/graphql/createAppSchema.d.ts +0 -9
  561. package/record/graphql/createAppSchema.js +0 -147
  562. package/record/graphql/createAppSchema.js.map +0 -1
  563. package/record/record.crud.d.ts +0 -3
  564. package/record/record.crud.js +0 -128
  565. package/record/record.crud.js.map +0 -1
  566. package/record/record.gql.d.ts +0 -8
  567. package/record/record.gql.js +0 -43
  568. package/record/record.gql.js.map +0 -1
  569. package/record/record.model.d.ts +0 -8
  570. package/record/record.model.js +0 -86
  571. package/record/record.model.js.map +0 -1
  572. package/record/record.so.d.ts +0 -3
  573. package/record/record.so.js +0 -162
  574. package/record/record.so.js.map +0 -1
  575. package/record/record.types.d.ts +0 -144
  576. package/record/record.types.js +0 -7
  577. package/record/record.types.js.map +0 -1
  578. package/utils/FolderLevelPermissions.d.ts +0 -71
  579. package/utils/FolderLevelPermissions.js +0 -353
  580. package/utils/FolderLevelPermissions.js.map +0 -1
  581. package/utils/createModelField.d.ts +0 -5
  582. package/utils/createModelField.js +0 -39
  583. package/utils/createModelField.js.map +0 -1
  584. package/utils/decorators/constants.d.ts +0 -1
  585. package/utils/decorators/constants.js +0 -10
  586. package/utils/decorators/constants.js.map +0 -1
  587. package/utils/decorators/createFolderType.d.ts +0 -2
  588. package/utils/decorators/createFolderType.js +0 -18
  589. package/utils/decorators/createFolderType.js.map +0 -1
  590. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  591. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  592. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  593. package/utils/decorators/where.d.ts +0 -15
  594. package/utils/decorators/where.js +0 -60
  595. package/utils/decorators/where.js.map +0 -1
  596. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  597. package/utils/getFolderAndItsAncestors.js +0 -53
  598. package/utils/getFolderAndItsAncestors.js.map +0 -1
  599. package/utils/isInstallationPending.d.ts +0 -4
  600. package/utils/isInstallationPending.js +0 -23
  601. package/utils/isInstallationPending.js.map +0 -1
  602. package/utils/modelFactory.d.ts +0 -13
  603. package/utils/modelFactory.js +0 -22
  604. package/utils/modelFactory.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
2
- import { CmsModel } from "@webiny/api-headless-cms/types";
1
+ import type { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations.js";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
3
  interface CreateOperationsWrapperParams extends CreateAcoStorageOperationsParams {
4
4
  modelName: string;
5
5
  }
@@ -1,31 +1,22 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createOperationsWrapper = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- const createOperationsWrapper = params => {
1
+ import WebinyError from "@webiny/error";
2
+ export const createOperationsWrapper = params => {
10
3
  const {
11
- cms,
12
4
  security,
5
+ cms,
13
6
  modelName
14
7
  } = params;
15
8
  const withModel = async cb => {
16
- return security.withoutAuthorization(async () => {
17
- const model = await cms.getModel(modelName);
18
- if (!model) {
19
- throw new _error.default(`Could not find "${modelName}" model.`, "MODEL_NOT_FOUND_ERROR");
20
- }
21
- const result = await cb(model);
22
- return result;
9
+ const model = await security.withoutAuthorization(() => {
10
+ return cms.getModel(modelName);
23
11
  });
12
+ if (!model) {
13
+ throw new WebinyError(`Could not find "${modelName}" model.`, "MODEL_NOT_FOUND_ERROR");
14
+ }
15
+ return cb(model);
24
16
  };
25
17
  return {
26
18
  withModel
27
19
  };
28
20
  };
29
- exports.createOperationsWrapper = createOperationsWrapper;
30
21
 
31
22
  //# sourceMappingURL=createOperationsWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","createOperationsWrapper","params","cms","security","modelName","withModel","cb","withoutAuthorization","model","getModel","WebinyError","result","exports"],"sources":["createOperationsWrapper.ts"],"sourcesContent":["import { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface CreateOperationsWrapperParams extends CreateAcoStorageOperationsParams {\n modelName: string;\n}\n\nexport const createOperationsWrapper = (params: CreateOperationsWrapperParams) => {\n const { cms, security, modelName } = params;\n\n const withModel = async <TResult>(\n cb: (model: CmsModel) => Promise<TResult>\n ): Promise<TResult> => {\n return security.withoutAuthorization(async () => {\n const model = await cms.getModel(modelName);\n\n if (!model) {\n throw new WebinyError(\n `Could not find \"${modelName}\" model.`,\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n\n const result = await cb(model);\n\n return result;\n });\n };\n\n return {\n withModel\n };\n};\n"],"mappings":";;;;;;;AAEA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,GAAG;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGH,MAAM;EAE3C,MAAMI,SAAS,GAAG,MACdC,EAAyC,IACtB;IACnB,OAAOH,QAAQ,CAACI,oBAAoB,CAAC,YAAY;MAC7C,MAAMC,KAAK,GAAG,MAAMN,GAAG,CAACO,QAAQ,CAACL,SAAS,CAAC;MAE3C,IAAI,CAACI,KAAK,EAAE;QACR,MAAM,IAAIE,cAAW,CAChB,mBAAkBN,SAAU,UAAS,EACtC,uBACJ,CAAC;MACL;MAEA,MAAMO,MAAM,GAAG,MAAML,EAAE,CAACE,KAAK,CAAC;MAE9B,OAAOG,MAAM;IACjB,CAAC,CAAC;EACN,CAAC;EAED,OAAO;IACHN;EACJ,CAAC;AACL,CAAC;AAACO,OAAA,CAAAZ,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["WebinyError","createOperationsWrapper","params","security","cms","modelName","withModel","cb","model","withoutAuthorization","getModel"],"sources":["createOperationsWrapper.ts"],"sourcesContent":["import type { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\n\ninterface CreateOperationsWrapperParams extends CreateAcoStorageOperationsParams {\n modelName: string;\n}\n\nexport const createOperationsWrapper = (params: CreateOperationsWrapperParams) => {\n const { security, cms, modelName } = params;\n\n const withModel = async <TResult>(\n cb: (model: CmsModel) => Promise<TResult>\n ): Promise<TResult> => {\n const model = await security.withoutAuthorization(() => {\n return cms.getModel(modelName);\n });\n\n if (!model) {\n throw new WebinyError(`Could not find \"${modelName}\" model.`, \"MODEL_NOT_FOUND_ERROR\");\n }\n\n return cb(model);\n };\n\n return { withModel };\n};\n"],"mappings":"AAEA,OAAOA,WAAW,MAAM,eAAe;AAMvC,OAAO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,QAAQ;IAAEC,GAAG;IAAEC;EAAU,CAAC,GAAGH,MAAM;EAE3C,MAAMI,SAAS,GAAG,MACdC,EAAyC,IACtB;IACnB,MAAMC,KAAK,GAAG,MAAML,QAAQ,CAACM,oBAAoB,CAAC,MAAM;MACpD,OAAOL,GAAG,CAACM,QAAQ,CAACL,SAAS,CAAC;IAClC,CAAC,CAAC;IAEF,IAAI,CAACG,KAAK,EAAE;MACR,MAAM,IAAIR,WAAW,CAAC,mBAAmBK,SAAS,UAAU,EAAE,uBAAuB,CAAC;IAC1F;IAEA,OAAOE,EAAE,CAACC,KAAK,CAAC;EACpB,CAAC;EAED,OAAO;IAAEF;EAAU,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { AcoContext } from "../../types";
2
- declare type Context = Pick<AcoContext, "aco" | "cms">;
1
+ import type { AcoContext } from "../../types.js";
2
+ type Context = AcoContext;
3
3
  interface EntryManagerCrudDecoratorsParams {
4
4
  context: Context;
5
5
  }
@@ -1,14 +1,11 @@
1
- "use strict";
1
+ // @ts-nocheck Being removed
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CmsEntriesCrudDecorators = void 0;
7
- var _where = require("./where");
8
- var _constants = require("./constants");
9
- var _filterEntriesByFolderFactory = require("./filterEntriesByFolderFactory");
10
- var _createFolderType = require("./createFolderType");
11
- class CmsEntriesCrudDecorators {
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 {
12
9
  constructor({
13
10
  context
14
11
  }) {
@@ -16,175 +13,194 @@ class CmsEntriesCrudDecorators {
16
13
  }
17
14
  decorate() {
18
15
  const context = this.context;
19
- const folderLevelPermissions = context.aco.folderLevelPermissions;
20
- const filterEntriesByFolder = (0, _filterEntriesByFolderFactory.filterEntriesByFolderFactory)(context, folderLevelPermissions);
21
- const originalCmsListEntries = context.cms.listEntries.bind(context.cms);
22
- context.cms.listEntries = async (model, params) => {
23
- const folderType = (0, _createFolderType.createFolderType)(model);
24
- const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);
25
- const where = (0, _where.createWhere)({
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,
26
23
  model,
27
- where: params.where,
28
- folders
24
+ initialParams
29
25
  });
30
- return originalCmsListEntries(model, {
31
- ...params,
32
- where
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
33
41
  });
34
- };
35
- const originalCmsGetEntry = context.cms.getEntry.bind(context.cms);
36
- context.cms.getEntry = async (model, params) => {
37
- const entry = await originalCmsGetEntry(model, params);
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);
38
54
  const folderId = entry?.location?.folderId;
39
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
55
+ if (!folderId || folderId === ROOT_FOLDER) {
40
56
  return entry;
41
57
  }
42
- const folder = await context.aco.folder.get(folderId);
58
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
43
59
  await folderLevelPermissions.ensureCanAccessFolderContent({
44
- folder,
60
+ permissions,
45
61
  rwd: "r"
46
62
  });
47
63
  return entry;
48
- };
49
- const originalCmsGetEntryById = context.cms.getEntryById.bind(context.cms);
50
- context.cms.getEntryById = async (model, params) => {
51
- const entry = await originalCmsGetEntryById(model, params);
64
+ });
65
+ decorateIfModelAuthorizationEnabled(context, "getEntryById", async (...allParams) => {
66
+ const [decoratee, model, params] = allParams;
67
+ const entry = await decoratee(model, params);
52
68
  const folderId = entry?.location?.folderId;
53
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
69
+ if (!folderId || folderId === ROOT_FOLDER) {
54
70
  return entry;
55
71
  }
56
- const folder = await context.aco.folder.get(folderId);
72
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
57
73
  await folderLevelPermissions.ensureCanAccessFolderContent({
58
- folder,
74
+ permissions,
59
75
  rwd: "r"
60
76
  });
61
77
  return entry;
62
- };
63
- const originalGetLatestEntriesByIds = context.cms.getLatestEntriesByIds.bind(context.cms);
64
- context.cms.getLatestEntriesByIds = async (model, ids) => {
65
- const entries = await originalGetLatestEntriesByIds(model, ids);
66
- return filterEntriesByFolder(model, entries);
67
- };
68
- const originalGetPublishedEntriesByIds = context.cms.getPublishedEntriesByIds.bind(context.cms);
69
- context.cms.getPublishedEntriesByIds = async (model, ids) => {
70
- const entries = await originalGetPublishedEntriesByIds(model, ids);
71
- return filterEntriesByFolder(model, entries);
72
- };
73
- const originalCmsCreateEntry = context.cms.createEntry.bind(context.cms);
74
- context.cms.createEntry = async (model, params, options) => {
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;
75
91
  const folderId = params.wbyAco_location?.folderId || params.location?.folderId;
76
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
77
- return originalCmsCreateEntry(model, params, options);
92
+ if (!folderId || folderId === ROOT_FOLDER) {
93
+ return decoratee(model, params, options);
78
94
  }
79
- const folder = await context.aco.folder.get(folderId);
95
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
80
96
  await folderLevelPermissions.ensureCanAccessFolderContent({
81
- folder,
97
+ permissions,
82
98
  rwd: "w"
83
99
  });
84
- return originalCmsCreateEntry(model, params, options);
85
- };
86
- const originalCmsCreateFromEntry = context.cms.createEntryRevisionFrom.bind(context.cms);
87
- context.cms.createEntryRevisionFrom = async (model, id, input, options) => {
100
+ return decoratee(model, params, options);
101
+ });
102
+ decorateIfModelAuthorizationEnabled(context, "createEntryRevisionFrom", async (...allParams) => {
103
+ const [decoratee, model, id, input, options] = allParams;
88
104
  const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
89
105
  id
90
106
  });
91
107
  const folderId = entry?.location?.folderId;
92
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
93
- return originalCmsCreateFromEntry(model, id, input, options);
108
+ if (!folderId || folderId === ROOT_FOLDER) {
109
+ return decoratee(model, id, input, options);
94
110
  }
95
- const folder = await context.aco.folder.get(folderId);
111
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
96
112
  await folderLevelPermissions.ensureCanAccessFolderContent({
97
- folder,
113
+ permissions,
98
114
  rwd: "w"
99
115
  });
100
- return originalCmsCreateFromEntry(model, id, input, options);
101
- };
102
- const originalCmsUpdateEntry = context.cms.updateEntry.bind(context.cms);
103
- context.cms.updateEntry = async (model, id, input, meta, options) => {
116
+ return decoratee(model, id, input, options);
117
+ });
118
+ decorateIfModelAuthorizationEnabled(context, "updateEntry", async (...allParams) => {
119
+ const [decoratee, model, id, input, meta, options] = allParams;
104
120
  const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
105
121
  id
106
122
  });
107
123
  const folderId = entry?.location?.folderId;
108
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
109
- return originalCmsUpdateEntry(model, id, input, meta, options);
124
+ if (!folderId || folderId === ROOT_FOLDER) {
125
+ return decoratee(model, id, input, meta, options);
110
126
  }
111
- const folder = await context.aco.folder.get(folderId);
127
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
112
128
  await folderLevelPermissions.ensureCanAccessFolderContent({
113
- folder,
129
+ permissions,
114
130
  rwd: "w"
115
131
  });
116
- return originalCmsUpdateEntry(model, id, input, meta, options);
117
- };
118
- const originalCmsDeleteEntry = context.cms.deleteEntry.bind(context.cms);
119
- context.cms.deleteEntry = async (model, id, options) => {
132
+ return decoratee(model, id, input, meta, options);
133
+ });
134
+ decorateIfModelAuthorizationEnabled(context, "deleteEntry", async (...allParams) => {
135
+ const [decoratee, model, id, options] = allParams;
120
136
  const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(model, {
121
137
  id
122
138
  });
123
139
  const folderId = entry?.location?.folderId;
124
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
125
- return originalCmsDeleteEntry(model, id, options);
140
+ if (!folderId || folderId === ROOT_FOLDER) {
141
+ return decoratee(model, id, options);
126
142
  }
127
- const folder = await context.aco.folder.get(folderId);
143
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
128
144
  await folderLevelPermissions.ensureCanAccessFolderContent({
129
- folder,
145
+ permissions,
130
146
  rwd: "d"
131
147
  });
132
- return originalCmsDeleteEntry(model, id, options);
133
- };
134
- const originalCmsDeleteEntryRevision = context.cms.deleteEntryRevision.bind(context.cms);
135
- context.cms.deleteEntryRevision = async (model, id) => {
148
+ return decoratee(model, id, options);
149
+ });
150
+ decorateIfModelAuthorizationEnabled(context, "deleteEntryRevision", async (...allParams) => {
151
+ const [decoratee, model, id] = allParams;
136
152
  const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
137
153
  id
138
154
  });
139
155
  const folderId = entry?.location?.folderId;
140
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
141
- return originalCmsDeleteEntryRevision(model, id);
156
+ if (!folderId || folderId === ROOT_FOLDER) {
157
+ return decoratee(model, id);
142
158
  }
143
- const folder = await context.aco.folder.get(folderId);
159
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
144
160
  await folderLevelPermissions.ensureCanAccessFolderContent({
145
- folder,
161
+ permissions,
146
162
  rwd: "d"
147
163
  });
148
- return originalCmsDeleteEntryRevision(model, id);
149
- };
150
- const originalCmsMoveEntry = context.cms.moveEntry.bind(context.cms);
151
- context.cms.moveEntry = async (model, id, targetFolderId) => {
164
+ return decoratee(model, id);
165
+ });
166
+ decorateIfModelAuthorizationEnabled(context, "moveEntry", async (...allParams) => {
167
+ const [decoratee, model, id, targetFolderId] = allParams;
168
+
152
169
  /**
153
170
  * First we need to check if user has access to the entries existing folder.
154
171
  */
155
172
  const entry = await context.cms.storageOperations.entries.getRevisionById(model, {
156
173
  id
157
174
  });
158
- const folderId = entry?.location?.folderId || _constants.ROOT_FOLDER;
175
+ const folderId = entry?.location?.folderId || ROOT_FOLDER;
159
176
  /**
160
177
  * If the entry is in the same folder we are trying to move it to, just continue.
161
178
  */
162
179
  if (folderId === targetFolderId) {
163
- return originalCmsMoveEntry(model, id, targetFolderId);
164
- } else if (folderId !== _constants.ROOT_FOLDER) {
180
+ return decoratee(model, id, targetFolderId);
181
+ } else if (folderId !== ROOT_FOLDER) {
165
182
  /**
166
183
  * If entry current folder is not a root, check for access
167
184
  */
168
- const folder = await context.aco.folder.get(folderId);
185
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
169
186
  await folderLevelPermissions.ensureCanAccessFolderContent({
170
- folder,
187
+ permissions,
171
188
  rwd: "w"
172
189
  });
173
190
  }
174
191
  /**
175
192
  * If target folder is not a ROOT_FOLDER, check for access.
176
193
  */
177
- if (targetFolderId !== _constants.ROOT_FOLDER) {
178
- const folder = await context.aco.folder.get(targetFolderId);
194
+ if (targetFolderId !== ROOT_FOLDER) {
195
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
179
196
  await folderLevelPermissions.ensureCanAccessFolderContent({
180
- folder,
197
+ permissions,
181
198
  rwd: "w"
182
199
  });
183
200
  }
184
- return originalCmsMoveEntry(model, id, targetFolderId);
185
- };
201
+ return decoratee(model, id, targetFolderId);
202
+ });
186
203
  }
187
204
  }
188
- exports.CmsEntriesCrudDecorators = CmsEntriesCrudDecorators;
189
205
 
190
206
  //# sourceMappingURL=CmsEntriesCrudDecorators.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_where","require","_constants","_filterEntriesByFolderFactory","_createFolderType","CmsEntriesCrudDecorators","constructor","context","decorate","folderLevelPermissions","aco","filterEntriesByFolder","filterEntriesByFolderFactory","originalCmsListEntries","cms","listEntries","bind","model","params","folderType","createFolderType","folders","listAllFoldersWithPermissions","where","createWhere","originalCmsGetEntry","getEntry","entry","folderId","location","ROOT_FOLDER","folder","get","ensureCanAccessFolderContent","rwd","originalCmsGetEntryById","getEntryById","originalGetLatestEntriesByIds","getLatestEntriesByIds","ids","entries","originalGetPublishedEntriesByIds","getPublishedEntriesByIds","originalCmsCreateEntry","createEntry","options","wbyAco_location","originalCmsCreateFromEntry","createEntryRevisionFrom","id","input","storageOperations","getRevisionById","originalCmsUpdateEntry","updateEntry","meta","originalCmsDeleteEntry","deleteEntry","getLatestRevisionByEntryId","originalCmsDeleteEntryRevision","deleteEntryRevision","originalCmsMoveEntry","moveEntry","targetFolderId","exports"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\nimport { createWhere } from \"./where\";\nimport { ROOT_FOLDER } from \"./constants\";\nimport { filterEntriesByFolderFactory } from \"./filterEntriesByFolderFactory\";\nimport { createFolderType } from \"./createFolderType\";\n\ntype Context = Pick<AcoContext, \"aco\" | \"cms\">;\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.aco.folderLevelPermissions;\n\n const filterEntriesByFolder = filterEntriesByFolderFactory(context, folderLevelPermissions);\n\n const originalCmsListEntries = context.cms.listEntries.bind(context.cms);\n context.cms.listEntries = async (model, params) => {\n const folderType = createFolderType(model);\n const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);\n\n const where = createWhere({\n model,\n where: params.where,\n folders\n });\n return originalCmsListEntries(model, {\n ...params,\n where\n });\n };\n\n const originalCmsGetEntry = context.cms.getEntry.bind(context.cms);\n context.cms.getEntry = async (model, params) => {\n const entry = await originalCmsGetEntry(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n\n return entry;\n };\n\n const originalCmsGetEntryById = context.cms.getEntryById.bind(context.cms);\n context.cms.getEntryById = async (model, params) => {\n const entry = await originalCmsGetEntryById(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n return entry;\n };\n\n const originalGetLatestEntriesByIds = context.cms.getLatestEntriesByIds.bind(context.cms);\n context.cms.getLatestEntriesByIds = async (model, ids) => {\n const entries = await originalGetLatestEntriesByIds(model, ids);\n\n return filterEntriesByFolder(model, entries);\n };\n\n const originalGetPublishedEntriesByIds = context.cms.getPublishedEntriesByIds.bind(\n context.cms\n );\n context.cms.getPublishedEntriesByIds = async (model, ids) => {\n const entries = await originalGetPublishedEntriesByIds(model, ids);\n return filterEntriesByFolder(model, entries);\n };\n\n const originalCmsCreateEntry = context.cms.createEntry.bind(context.cms);\n context.cms.createEntry = async (model, params, options) => {\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return originalCmsCreateEntry(model, params, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return originalCmsCreateEntry(model, params, options);\n };\n\n const originalCmsCreateFromEntry = context.cms.createEntryRevisionFrom.bind(context.cms);\n context.cms.createEntryRevisionFrom = async (model, id, input, options) => {\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 originalCmsCreateFromEntry(model, id, input, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return originalCmsCreateFromEntry(model, id, input, options);\n };\n\n const originalCmsUpdateEntry = context.cms.updateEntry.bind(context.cms);\n context.cms.updateEntry = async (model, id, input, meta, options) => {\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 originalCmsUpdateEntry(model, id, input, meta, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return originalCmsUpdateEntry(model, id, input, meta, options);\n };\n\n const originalCmsDeleteEntry = context.cms.deleteEntry.bind(context.cms);\n context.cms.deleteEntry = async (model, id, options) => {\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 originalCmsDeleteEntry(model, id, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return originalCmsDeleteEntry(model, id, options);\n };\n\n const originalCmsDeleteEntryRevision = context.cms.deleteEntryRevision.bind(context.cms);\n context.cms.deleteEntryRevision = async (model, id) => {\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 originalCmsDeleteEntryRevision(model, id);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return originalCmsDeleteEntryRevision(model, id);\n };\n\n const originalCmsMoveEntry = context.cms.moveEntry.bind(context.cms);\n context.cms.moveEntry = async (model, id, targetFolderId) => {\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 originalCmsMoveEntry(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 folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\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 folder = await context.aco.folder.get(targetFolderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n }\n\n return originalCmsMoveEntry(model, id, targetFolderId);\n };\n }\n}\n"],"mappings":"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"}
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