@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,353 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FolderLevelPermissions = void 0;
7
- var _apiSecurity = require("@webiny/api-security");
8
- class FolderLevelPermissions {
9
- allFolders = {};
10
- constructor(params) {
11
- this.getIdentity = params.getIdentity;
12
- this.getIdentityTeam = params.getIdentityTeam;
13
- this.listPermissions = params.listPermissions;
14
- this.listAllFoldersCallback = params.listAllFolders;
15
- this.canUseTeams = params.canUseTeams;
16
- this.canUseFolderLevelPermissions = params.canUseFolderLevelPermissions;
17
- this.isAuthorizationEnabled = params.isAuthorizationEnabled;
18
-
19
- // TODO: resolve this issue.
20
- // We immediately enable authorization, because, at the moment, the rest of the system
21
- // requires us to have FLP always enabled. We must now disable it, even if the security's
22
- // `isAuthorizationEnabled` is set to false. To resolve this, we'll need to refactor CMS-based
23
- // CRUD files and have them use CMS storage operations instead of CMS CRUD methods.
24
- // We'll be handling this in the near future.
25
- this.isAuthorizationEnabled = () => true;
26
- }
27
- async listAllFolders(folderType) {
28
- if (folderType in this.allFolders) {
29
- return structuredClone(this.allFolders[folderType]);
30
- }
31
- this.allFolders[folderType] = await this.listAllFoldersCallback(folderType);
32
- return structuredClone(this.allFolders[folderType]);
33
- }
34
- async listAllFoldersWithPermissions(folderType) {
35
- const folders = await this.listAllFolders(folderType);
36
-
37
- // Filter folders based on permissions and assign permissions to each folder.
38
- const filteredFoldersWithPermissions = await this.filterFolders({
39
- folders,
40
- rwd: "r"
41
- });
42
- await this.assignFolderPermissions(filteredFoldersWithPermissions);
43
- return filteredFoldersWithPermissions;
44
- }
45
- invalidateCache(folderType) {
46
- if (folderType) {
47
- if (folderType in this.allFolders) {
48
- delete this.allFolders[folderType];
49
- }
50
- } else {
51
- this.allFolders = {};
52
- }
53
- }
54
- async listFoldersPermissions(params) {
55
- if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {
56
- return [];
57
- }
58
- const {
59
- folderType,
60
- foldersList
61
- } = params;
62
- const allFolders = foldersList || (await this.listAllFolders(folderType));
63
- const identity = this.getIdentity();
64
- const permissions = await this.listPermissions();
65
- let identityTeam;
66
- if (this.canUseTeams()) {
67
- identityTeam = await this.getIdentityTeam();
68
- }
69
- const processedFolderPermissions = [];
70
- const processFolderPermissions = folder => {
71
- if (processedFolderPermissions.some(fp => fp.folderId === folder.id)) {
72
- return;
73
- }
74
-
75
- // Copy permissions, so we don't modify the original object.
76
- const currentFolderPermissions = {
77
- folderId: folder.id,
78
- // On new folders, permissions can be `null`. Guard against that.
79
- permissions: folder.permissions?.map(permission => ({
80
- ...permission
81
- })) || []
82
- };
83
-
84
- // Check for permissions inherited from parent folder.
85
- if (folder.parentId) {
86
- const parentFolder = allFolders.find(f => f.id === folder.parentId);
87
- if (parentFolder) {
88
- // First check if the parent folder has already been processed.
89
- let processedParentFolderPermissions = processedFolderPermissions.find(fp => fp.folderId === parentFolder.id);
90
-
91
- // If not, process the parent folder.
92
- if (!processedParentFolderPermissions) {
93
- processFolderPermissions(parentFolder);
94
- processedParentFolderPermissions = processedFolderPermissions.find(fp => fp.folderId === folder.parentId);
95
- }
96
-
97
- // If the parent folder has permissions, let's add them to the current folder.
98
- if (processedParentFolderPermissions) {
99
- const isPublicParentFolder = processedParentFolderPermissions.permissions.some(p => p.level === "public");
100
-
101
- // We inherit parent permissions if:
102
- // 1. the parent folder is not public or...
103
- // 2. ...the parent folder is public, but the current folder doesn't have any permissions set
104
- const mustInherit = !isPublicParentFolder || currentFolderPermissions.permissions.length === 0;
105
- if (mustInherit) {
106
- const inheritedPermissions = processedParentFolderPermissions.permissions.map(p => {
107
- return {
108
- ...p,
109
- inheritedFrom: "parent:" + processedParentFolderPermissions.folderId
110
- };
111
- });
112
- currentFolderPermissions.permissions.push(...inheritedPermissions);
113
- }
114
- }
115
- }
116
- }
117
-
118
- // Let's ensure current identity's permission is included in the permissions array.
119
- // We first check if the current identity is already included in the permissions array.
120
- // If not, we check if the user has full access or if the team user belongs to has access.
121
- const currentIdentityIncludedInPermissions = currentFolderPermissions.permissions.some(p => p.target === `admin:${identity.id}`);
122
- if (currentIdentityIncludedInPermissions) {
123
- // Ensure existing identity permission is always the first one in the array.
124
- const currentIdentityPermissionIndex = currentFolderPermissions.permissions.findIndex(p => p.target === `admin:${identity.id}`);
125
- if (currentIdentityPermissionIndex > 0) {
126
- const [currentIdentityPermission] = currentFolderPermissions.permissions.splice(currentIdentityPermissionIndex, 1);
127
- currentFolderPermissions.permissions.unshift(currentIdentityPermission);
128
- }
129
- } else {
130
- // Current identity not included in permissions? Let's add it.
131
- let currentIdentityPermission = null;
132
-
133
- // 1. Check if the user has full access.
134
- const hasFullAccess = permissions.some(p => p.name === "*");
135
- if (hasFullAccess) {
136
- currentIdentityPermission = {
137
- target: `admin:${identity.id}`,
138
- level: "owner",
139
- inheritedFrom: "role:full-access"
140
- };
141
- } else if (identityTeam) {
142
- // 2. Check the team user belongs to grants access to the folder.
143
- const teamPermission = currentFolderPermissions.permissions.find(p => p.target === `team:${identityTeam.id}`);
144
- if (teamPermission) {
145
- currentIdentityPermission = {
146
- target: `admin:${identity.id}`,
147
- level: teamPermission.level,
148
- inheritedFrom: "team:" + identityTeam.id
149
- };
150
- }
151
- }
152
- if (currentIdentityPermission) {
153
- // If permission is found, let's add it to the beginning of the array.
154
- // We're doing this just because it looks nicer in the UI.
155
- currentFolderPermissions.permissions.unshift(currentIdentityPermission);
156
- }
157
- }
158
-
159
- // Note that this can only happen with root folders. All other (child) folders will
160
- // always have at least one permission (inherited from parent).
161
- const mustAddPublicPermission = currentFolderPermissions.permissions.length === 0;
162
- if (mustAddPublicPermission) {
163
- currentFolderPermissions.permissions = [{
164
- target: `admin:${identity.id}`,
165
- level: "public",
166
- inheritedFrom: "public"
167
- }];
168
- }
169
- processedFolderPermissions.push(currentFolderPermissions);
170
- };
171
- for (let i = 0; i < allFolders.length; i++) {
172
- const folder = allFolders[i];
173
- processFolderPermissions(folder);
174
- }
175
- return processedFolderPermissions;
176
- }
177
- async getFolderPermissions(params) {
178
- const {
179
- folder,
180
- foldersList
181
- } = params;
182
- const folderPermissionsList = await this.listFoldersPermissions({
183
- folderType: folder.type,
184
- foldersList
185
- });
186
- return folderPermissionsList.find(fp => fp.folderId === folder.id);
187
- }
188
- async canAccessFolder(params) {
189
- if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {
190
- return true;
191
- }
192
- const {
193
- folder
194
- } = params;
195
-
196
- // We check for parent folder access first because the passed folder should be
197
- // inaccessible if the parent folder is inaccessible.
198
- if (folder.parentId) {
199
- let foldersList = params.foldersList;
200
- if (!foldersList) {
201
- foldersList = await this.listAllFolders(folder.type);
202
- }
203
- const parentFolder = foldersList.find(f => f.id === folder.parentId);
204
- if (parentFolder) {
205
- const canAccessParentFolder = await this.canAccessFolder({
206
- ...params,
207
- folder: parentFolder
208
- });
209
- if (!canAccessParentFolder) {
210
- return false;
211
- }
212
- }
213
- }
214
- const folderPermissions = await this.getFolderPermissions({
215
- folder,
216
- foldersList: params.foldersList
217
- });
218
- const identity = this.getIdentity();
219
- const currentIdentityPermission = folderPermissions?.permissions.find(p => {
220
- return p.target === `admin:${identity.id}`;
221
- });
222
- if (!currentIdentityPermission) {
223
- return false;
224
- }
225
- const {
226
- level
227
- } = currentIdentityPermission;
228
- if (params.managePermissions) {
229
- return level === "owner";
230
- }
231
-
232
- // Checking for "write" or "delete" access. Allow only if the
233
- // user is an owner or the folder is public (no FLP assigned).
234
- if (params.rwd !== "r") {
235
- return level === "owner" || level === "public";
236
- }
237
- return true;
238
- }
239
- async ensureCanAccessFolder(params) {
240
- const canAccessFolder = await this.canAccessFolder(params);
241
- if (!canAccessFolder) {
242
- throw new _apiSecurity.NotAuthorizedError();
243
- }
244
- }
245
- canManageFolderPermissions(folder) {
246
- if (!this.canUseFolderLevelPermissions()) {
247
- return false;
248
- }
249
- if (!this.isAuthorizationEnabled()) {
250
- return true;
251
- }
252
- return this.canAccessFolder({
253
- folder,
254
- rwd: "w",
255
- managePermissions: true
256
- });
257
- }
258
- canManageFolderStructure(folder) {
259
- if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {
260
- return true;
261
- }
262
- return this.canAccessFolder({
263
- folder,
264
- rwd: "w"
265
- });
266
- }
267
- canManageFolderContent(folder) {
268
- if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {
269
- return true;
270
- }
271
- return this.canAccessFolderContent({
272
- folder,
273
- rwd: "w"
274
- });
275
- }
276
- async canAccessFolderContent(params) {
277
- if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {
278
- return true;
279
- }
280
- const {
281
- folder,
282
- foldersList
283
- } = params;
284
- const folderPermissions = await this.getFolderPermissions({
285
- folder,
286
- foldersList
287
- });
288
- const identity = this.getIdentity();
289
- const currentIdentityPermission = folderPermissions?.permissions.find(p => {
290
- return p.target === `admin:${identity.id}`;
291
- });
292
- if (!currentIdentityPermission) {
293
- return false;
294
- }
295
-
296
- // If the user is not an owner and we're checking for "write" or
297
- // "delete" access, then we can immediately return false.
298
- if (params.rwd !== "r") {
299
- const {
300
- level
301
- } = currentIdentityPermission;
302
- return level !== "viewer";
303
- }
304
- return true;
305
- }
306
- async ensureCanAccessFolderContent(params) {
307
- const canAccessFolderContent = await this.canAccessFolderContent(params);
308
- if (!canAccessFolderContent) {
309
- throw new _apiSecurity.NotAuthorizedError();
310
- }
311
- }
312
- async canCreateFolderInRoot() {
313
- return true;
314
- }
315
- async filterFolders(params) {
316
- const filteredFolders = [];
317
- const {
318
- folders,
319
- rwd
320
- } = params;
321
- for (let i = 0; i < folders.length; i++) {
322
- const folder = folders[i];
323
- const canAccessFolder = await this.canAccessFolder({
324
- folder,
325
- rwd
326
- });
327
- if (canAccessFolder) {
328
- filteredFolders.push(folder);
329
- }
330
- }
331
- return filteredFolders;
332
- }
333
- async assignFolderPermissions(folder) {
334
- const folders = Array.isArray(folder) ? folder : [folder];
335
- for (let i = 0; i < folders.length; i++) {
336
- const folder = folders[i];
337
- const folderPermissions = await this.getFolderPermissions({
338
- folder
339
- });
340
- if (folderPermissions) {
341
- folder.permissions = folderPermissions.permissions;
342
- } else {
343
- folder.permissions = [];
344
- }
345
- }
346
- }
347
- permissionsIncludeNonInheritedPermissions(folderPermissionsList) {
348
- return folderPermissionsList?.some(p => !p.inheritedFrom);
349
- }
350
- }
351
- exports.FolderLevelPermissions = FolderLevelPermissions;
352
-
353
- //# sourceMappingURL=FolderLevelPermissions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_apiSecurity","require","FolderLevelPermissions","allFolders","constructor","params","getIdentity","getIdentityTeam","listPermissions","listAllFoldersCallback","listAllFolders","canUseTeams","canUseFolderLevelPermissions","isAuthorizationEnabled","folderType","structuredClone","listAllFoldersWithPermissions","folders","filteredFoldersWithPermissions","filterFolders","rwd","assignFolderPermissions","invalidateCache","listFoldersPermissions","foldersList","identity","permissions","identityTeam","processedFolderPermissions","processFolderPermissions","folder","some","fp","folderId","id","currentFolderPermissions","map","permission","parentId","parentFolder","find","f","processedParentFolderPermissions","isPublicParentFolder","p","level","mustInherit","length","inheritedPermissions","inheritedFrom","push","currentIdentityIncludedInPermissions","target","currentIdentityPermissionIndex","findIndex","currentIdentityPermission","splice","unshift","hasFullAccess","name","teamPermission","mustAddPublicPermission","i","getFolderPermissions","folderPermissionsList","type","canAccessFolder","canAccessParentFolder","folderPermissions","managePermissions","ensureCanAccessFolder","NotAuthorizedError","canManageFolderPermissions","canManageFolderStructure","canManageFolderContent","canAccessFolderContent","ensureCanAccessFolderContent","canCreateFolderInRoot","filteredFolders","Array","isArray","permissionsIncludeNonInheritedPermissions","exports"],"sources":["FolderLevelPermissions.ts"],"sourcesContent":["import { Authentication } from \"@webiny/api-authentication/types\";\nimport { SecurityPermission, Team } from \"@webiny/api-security/types\";\nimport { Folder } from \"~/folder/folder.types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport type FolderAccessLevel = \"owner\" | \"viewer\" | \"editor\" | \"public\";\n\nexport interface FolderPermission {\n target: string;\n level: FolderAccessLevel;\n inheritedFrom?: string;\n}\n\nexport interface FolderPermissionsListItem {\n folderId: string;\n permissions: FolderPermission[];\n}\n\nexport type FolderPermissionsList = FolderPermissionsListItem[];\n\nexport interface CanAccessFolderContentParams {\n folder: Pick<Folder, \"id\" | \"type\" | \"parentId\">;\n rwd?: \"r\" | \"w\" | \"d\";\n foldersList?: Folder[];\n}\n\nexport interface CanAccessFolderParams extends CanAccessFolderContentParams {\n managePermissions?: boolean;\n}\n\ninterface FilterFoldersParams {\n folders: Array<Folder>;\n rwd?: \"r\" | \"w\" | \"d\";\n}\n\ninterface GetFolderPermissionsParams {\n folder: Pick<Folder, \"id\" | \"type\">;\n foldersList?: Folder[];\n}\n\ninterface ListFolderPermissionsParams {\n folderType: string;\n foldersList?: Folder[];\n}\n\nexport interface FolderLevelPermissionsParams {\n getIdentity: Authentication[\"getIdentity\"];\n getIdentityTeam: () => Promise<Team | null>;\n listPermissions: () => Promise<SecurityPermission[]>;\n listAllFolders: (folderType: string) => Promise<Folder[]>;\n canUseTeams: () => boolean;\n canUseFolderLevelPermissions: () => boolean;\n isAuthorizationEnabled: () => boolean;\n}\n\nexport class FolderLevelPermissions {\n private readonly getIdentity: Authentication[\"getIdentity\"];\n private readonly getIdentityTeam: () => Promise<Team | null>;\n private readonly listPermissions: () => Promise<SecurityPermission[]>;\n private readonly listAllFoldersCallback: (folderType: string) => Promise<Folder[]>;\n private readonly canUseTeams: () => boolean;\n private readonly canUseFolderLevelPermissions: () => boolean;\n private readonly isAuthorizationEnabled: () => boolean;\n private allFolders: Record<string, Folder[]> = {};\n\n constructor(params: FolderLevelPermissionsParams) {\n this.getIdentity = params.getIdentity;\n this.getIdentityTeam = params.getIdentityTeam;\n this.listPermissions = params.listPermissions;\n this.listAllFoldersCallback = params.listAllFolders;\n this.canUseTeams = params.canUseTeams;\n this.canUseFolderLevelPermissions = params.canUseFolderLevelPermissions;\n\n this.isAuthorizationEnabled = params.isAuthorizationEnabled;\n\n // TODO: resolve this issue.\n // We immediately enable authorization, because, at the moment, the rest of the system\n // requires us to have FLP always enabled. We must now disable it, even if the security's\n // `isAuthorizationEnabled` is set to false. To resolve this, we'll need to refactor CMS-based\n // CRUD files and have them use CMS storage operations instead of CMS CRUD methods.\n // We'll be handling this in the near future.\n this.isAuthorizationEnabled = () => true;\n }\n\n async listAllFolders(folderType: string): Promise<Folder[]> {\n if (folderType in this.allFolders) {\n return structuredClone(this.allFolders[folderType]);\n }\n\n this.allFolders[folderType] = await this.listAllFoldersCallback(folderType);\n return structuredClone(this.allFolders[folderType]);\n }\n\n async listAllFoldersWithPermissions(folderType: string) {\n const folders = await this.listAllFolders(folderType);\n\n // Filter folders based on permissions and assign permissions to each folder.\n const filteredFoldersWithPermissions = await this.filterFolders({\n folders,\n rwd: \"r\"\n });\n\n await this.assignFolderPermissions(filteredFoldersWithPermissions);\n\n return filteredFoldersWithPermissions;\n }\n\n invalidateCache(folderType?: string) {\n if (folderType) {\n if (folderType in this.allFolders) {\n delete this.allFolders[folderType];\n }\n } else {\n this.allFolders = {};\n }\n }\n\n async listFoldersPermissions(\n params: ListFolderPermissionsParams\n ): Promise<FolderPermissionsList> {\n if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {\n return [];\n }\n\n const { folderType, foldersList } = params;\n\n const allFolders = foldersList || (await this.listAllFolders(folderType));\n const identity = this.getIdentity();\n const permissions = await this.listPermissions();\n\n let identityTeam: Team | null;\n if (this.canUseTeams()) {\n identityTeam = await this.getIdentityTeam();\n }\n\n const processedFolderPermissions: FolderPermissionsListItem[] = [];\n\n const processFolderPermissions = (folder: Folder) => {\n if (processedFolderPermissions.some(fp => fp.folderId === folder.id)) {\n return;\n }\n\n // Copy permissions, so we don't modify the original object.\n const currentFolderPermissions: FolderPermissionsListItem = {\n folderId: folder.id,\n // On new folders, permissions can be `null`. Guard against that.\n permissions: folder.permissions?.map(permission => ({ ...permission })) || []\n };\n\n // Check for permissions inherited from parent folder.\n if (folder.parentId) {\n const parentFolder = allFolders!.find(f => f.id === folder.parentId)!;\n if (parentFolder) {\n // First check if the parent folder has already been processed.\n let processedParentFolderPermissions = processedFolderPermissions.find(\n fp => fp.folderId === parentFolder.id\n );\n\n // If not, process the parent folder.\n if (!processedParentFolderPermissions) {\n processFolderPermissions(parentFolder);\n processedParentFolderPermissions = processedFolderPermissions.find(\n fp => fp.folderId === folder.parentId\n );\n }\n\n // If the parent folder has permissions, let's add them to the current folder.\n if (processedParentFolderPermissions) {\n const isPublicParentFolder =\n processedParentFolderPermissions.permissions.some(\n p => p.level === \"public\"\n );\n\n // We inherit parent permissions if:\n // 1. the parent folder is not public or...\n // 2. ...the parent folder is public, but the current folder doesn't have any permissions set\n const mustInherit =\n !isPublicParentFolder ||\n currentFolderPermissions.permissions.length === 0;\n\n if (mustInherit) {\n const inheritedPermissions =\n processedParentFolderPermissions.permissions.map(p => {\n return {\n ...p,\n inheritedFrom:\n \"parent:\" + processedParentFolderPermissions!.folderId\n };\n });\n\n currentFolderPermissions.permissions.push(...inheritedPermissions);\n }\n }\n }\n }\n\n // Let's ensure current identity's permission is included in the permissions array.\n // We first check if the current identity is already included in the permissions array.\n // If not, we check if the user has full access or if the team user belongs to has access.\n const currentIdentityIncludedInPermissions = currentFolderPermissions.permissions.some(\n p => p.target === `admin:${identity.id}`\n );\n\n if (currentIdentityIncludedInPermissions) {\n // Ensure existing identity permission is always the first one in the array.\n const currentIdentityPermissionIndex =\n currentFolderPermissions.permissions.findIndex(\n p => p.target === `admin:${identity.id}`\n );\n\n if (currentIdentityPermissionIndex > 0) {\n const [currentIdentityPermission] = currentFolderPermissions.permissions.splice(\n currentIdentityPermissionIndex,\n 1\n );\n currentFolderPermissions.permissions.unshift(currentIdentityPermission);\n }\n } else {\n // Current identity not included in permissions? Let's add it.\n let currentIdentityPermission: FolderPermission | null = null;\n\n // 1. Check if the user has full access.\n const hasFullAccess = permissions.some(p => p.name === \"*\");\n if (hasFullAccess) {\n currentIdentityPermission = {\n target: `admin:${identity.id}`,\n level: \"owner\",\n inheritedFrom: \"role:full-access\"\n };\n } else if (identityTeam) {\n // 2. Check the team user belongs to grants access to the folder.\n const teamPermission = currentFolderPermissions.permissions.find(\n p => p.target === `team:${identityTeam!.id}`\n );\n\n if (teamPermission) {\n currentIdentityPermission = {\n target: `admin:${identity.id}`,\n level: teamPermission.level,\n inheritedFrom: \"team:\" + identityTeam!.id\n };\n }\n }\n\n if (currentIdentityPermission) {\n // If permission is found, let's add it to the beginning of the array.\n // We're doing this just because it looks nicer in the UI.\n currentFolderPermissions.permissions.unshift(currentIdentityPermission);\n }\n }\n\n // Note that this can only happen with root folders. All other (child) folders will\n // always have at least one permission (inherited from parent).\n const mustAddPublicPermission = currentFolderPermissions.permissions.length === 0;\n if (mustAddPublicPermission) {\n currentFolderPermissions.permissions = [\n {\n target: `admin:${identity.id}`,\n level: \"public\",\n inheritedFrom: \"public\"\n }\n ];\n }\n\n processedFolderPermissions.push(currentFolderPermissions);\n };\n\n for (let i = 0; i < allFolders!.length; i++) {\n const folder = allFolders![i];\n processFolderPermissions(folder);\n }\n\n return processedFolderPermissions;\n }\n\n async getFolderPermissions(\n params: GetFolderPermissionsParams\n ): Promise<FolderPermissionsListItem | undefined> {\n const { folder, foldersList } = params;\n const folderPermissionsList = await this.listFoldersPermissions({\n folderType: folder.type,\n foldersList\n });\n\n return folderPermissionsList.find(fp => fp.folderId === folder.id);\n }\n\n async canAccessFolder(params: CanAccessFolderParams) {\n if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {\n return true;\n }\n\n const { folder } = params;\n\n // We check for parent folder access first because the passed folder should be\n // inaccessible if the parent folder is inaccessible.\n if (folder.parentId) {\n let foldersList = params.foldersList;\n if (!foldersList) {\n foldersList = await this.listAllFolders(folder.type);\n }\n\n const parentFolder = foldersList.find(f => f.id === folder.parentId);\n if (parentFolder) {\n const canAccessParentFolder = await this.canAccessFolder({\n ...params,\n folder: parentFolder\n });\n\n if (!canAccessParentFolder) {\n return false;\n }\n }\n }\n\n const folderPermissions = await this.getFolderPermissions({\n folder,\n foldersList: params.foldersList\n });\n\n const identity = this.getIdentity();\n const currentIdentityPermission = folderPermissions?.permissions.find(p => {\n return p.target === `admin:${identity.id}`;\n });\n\n if (!currentIdentityPermission) {\n return false;\n }\n\n const { level } = currentIdentityPermission;\n\n if (params.managePermissions) {\n return level === \"owner\";\n }\n\n // Checking for \"write\" or \"delete\" access. Allow only if the\n // user is an owner or the folder is public (no FLP assigned).\n if (params.rwd !== \"r\") {\n return level === \"owner\" || level === \"public\";\n }\n\n return true;\n }\n\n async ensureCanAccessFolder(params: CanAccessFolderParams) {\n const canAccessFolder = await this.canAccessFolder(params);\n if (!canAccessFolder) {\n throw new NotAuthorizedError();\n }\n }\n\n canManageFolderPermissions(folder: Folder) {\n if (!this.canUseFolderLevelPermissions()) {\n return false;\n }\n\n if (!this.isAuthorizationEnabled()) {\n return true;\n }\n\n return this.canAccessFolder({ folder, rwd: \"w\", managePermissions: true });\n }\n\n canManageFolderStructure(folder: Folder) {\n if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {\n return true;\n }\n\n return this.canAccessFolder({ folder, rwd: \"w\" });\n }\n\n canManageFolderContent(folder: Folder) {\n if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {\n return true;\n }\n\n return this.canAccessFolderContent({ folder, rwd: \"w\" });\n }\n\n async canAccessFolderContent(params: CanAccessFolderContentParams) {\n if (!this.canUseFolderLevelPermissions() || !this.isAuthorizationEnabled()) {\n return true;\n }\n\n const { folder, foldersList } = params;\n\n const folderPermissions = await this.getFolderPermissions({\n folder,\n foldersList\n });\n\n const identity = this.getIdentity();\n const currentIdentityPermission = folderPermissions?.permissions.find(p => {\n return p.target === `admin:${identity.id}`;\n });\n\n if (!currentIdentityPermission) {\n return false;\n }\n\n // If the user is not an owner and we're checking for \"write\" or\n // \"delete\" access, then we can immediately return false.\n if (params.rwd !== \"r\") {\n const { level } = currentIdentityPermission;\n return level !== \"viewer\";\n }\n\n return true;\n }\n\n async ensureCanAccessFolderContent(params: CanAccessFolderContentParams) {\n const canAccessFolderContent = await this.canAccessFolderContent(params);\n if (!canAccessFolderContent) {\n throw new NotAuthorizedError();\n }\n }\n\n async canCreateFolderInRoot() {\n return true;\n }\n\n async filterFolders(params: FilterFoldersParams) {\n const filteredFolders: Folder[] = [];\n\n const { folders, rwd } = params;\n for (let i = 0; i < folders.length; i++) {\n const folder = folders[i];\n const canAccessFolder = await this.canAccessFolder({ folder, rwd });\n if (canAccessFolder) {\n filteredFolders.push(folder);\n }\n }\n\n return filteredFolders;\n }\n\n async assignFolderPermissions(folder: Folder | Folder[]) {\n const folders = Array.isArray(folder) ? folder : [folder];\n\n for (let i = 0; i < folders.length; i++) {\n const folder = folders[i];\n const folderPermissions = await this.getFolderPermissions({ folder });\n if (folderPermissions) {\n folder.permissions = folderPermissions.permissions;\n } else {\n folder.permissions = [];\n }\n }\n }\n\n permissionsIncludeNonInheritedPermissions(folderPermissionsList?: FolderPermission[]) {\n return folderPermissionsList?.some(p => !p.inheritedFrom);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { CmsModelField } from "@webiny/api-headless-cms/types";
2
- export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
3
- fieldId?: string;
4
- }
5
- export declare const createModelField: (params: CreateModelFieldParams) => CmsModelField;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createModelField = void 0;
8
- var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
9
- const createModelField = params => {
10
- const {
11
- label,
12
- fieldId: initialFieldId,
13
- type,
14
- settings = {},
15
- listValidation = [],
16
- validation = [],
17
- multipleValues = false,
18
- predefinedValues = {
19
- values: [],
20
- enabled: false
21
- }
22
- } = params;
23
- const fieldId = initialFieldId ? (0, _camelCase.default)(initialFieldId) : (0, _camelCase.default)(label);
24
- return {
25
- id: fieldId,
26
- storageId: `${type}@${fieldId}`,
27
- fieldId,
28
- label,
29
- type,
30
- settings,
31
- listValidation,
32
- validation,
33
- multipleValues,
34
- predefinedValues
35
- };
36
- };
37
- exports.createModelField = createModelField;
38
-
39
- //# sourceMappingURL=createModelField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_camelCase","_interopRequireDefault","require","createModelField","params","label","fieldId","initialFieldId","type","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled","camelCase","id","storageId","exports"],"sources":["createModelField.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n}\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const {\n label,\n fieldId: initialFieldId,\n type,\n settings = {},\n listValidation = [],\n validation = [],\n multipleValues = false,\n predefinedValues = {\n values: [],\n enabled: false\n }\n } = params;\n\n const fieldId = initialFieldId ? camelCase(initialFieldId) : camelCase(label);\n\n return {\n id: fieldId,\n storageId: `${type}@${fieldId}`,\n fieldId,\n label,\n type,\n settings,\n listValidation,\n validation,\n multipleValues,\n predefinedValues\n };\n};\n"],"mappings":";;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOO,MAAMC,gBAAgB,GAAIC,MAA8B,IAAoB;EAC/E,MAAM;IACFC,KAAK;IACLC,OAAO,EAAEC,cAAc;IACvBC,IAAI;IACJC,QAAQ,GAAG,CAAC,CAAC;IACbC,cAAc,GAAG,EAAE;IACnBC,UAAU,GAAG,EAAE;IACfC,cAAc,GAAG,KAAK;IACtBC,gBAAgB,GAAG;MACfC,MAAM,EAAE,EAAE;MACVC,OAAO,EAAE;IACb;EACJ,CAAC,GAAGX,MAAM;EAEV,MAAME,OAAO,GAAGC,cAAc,GAAG,IAAAS,kBAAS,EAACT,cAAc,CAAC,GAAG,IAAAS,kBAAS,EAACX,KAAK,CAAC;EAE7E,OAAO;IACHY,EAAE,EAAEX,OAAO;IACXY,SAAS,EAAG,GAAEV,IAAK,IAAGF,OAAQ,EAAC;IAC/BA,OAAO;IACPD,KAAK;IACLG,IAAI;IACJC,QAAQ;IACRC,cAAc;IACdC,UAAU;IACVC,cAAc;IACdC;EACJ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA"}
@@ -1 +0,0 @@
1
- export declare const ROOT_FOLDER = "root";
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ROOT_FOLDER = void 0;
7
- const ROOT_FOLDER = "root";
8
- exports.ROOT_FOLDER = ROOT_FOLDER;
9
-
10
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ROOT_FOLDER","exports"],"sources":["constants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA"}
@@ -1,2 +0,0 @@
1
- import { CmsModel } from "@webiny/api-headless-cms/types";
2
- export declare const createFolderType: (model: CmsModel) => "FmFile" | "PbPage" | `cms:${string}`;
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createFolderType = void 0;
7
- var _isPageModel = require("./isPageModel");
8
- const createFolderType = model => {
9
- if (model.modelId === "fmFile") {
10
- return "FmFile";
11
- } else if ((0, _isPageModel.isPageModel)(model)) {
12
- return "PbPage";
13
- }
14
- return `cms:${model.modelId}`;
15
- };
16
- exports.createFolderType = createFolderType;
17
-
18
- //# sourceMappingURL=createFolderType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_isPageModel","require","createFolderType","model","modelId","isPageModel","exports"],"sources":["createFolderType.ts"],"sourcesContent":["import { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { isPageModel } from \"./isPageModel\";\n\nexport const createFolderType = (model: CmsModel): \"FmFile\" | \"PbPage\" | `cms:${string}` => {\n if (model.modelId === \"fmFile\") {\n return \"FmFile\";\n } else if (isPageModel(model)) {\n return \"PbPage\";\n }\n return `cms:${model.modelId}`;\n};\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,gBAAgB,GAAIC,KAAe,IAA4C;EACxF,IAAIA,KAAK,CAACC,OAAO,KAAK,QAAQ,EAAE;IAC5B,OAAO,QAAQ;EACnB,CAAC,MAAM,IAAI,IAAAC,wBAAW,EAACF,KAAK,CAAC,EAAE;IAC3B,OAAO,QAAQ;EACnB;EACA,OAAQ,OAAMA,KAAK,CAACC,OAAQ,EAAC;AACjC,CAAC;AAACE,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA"}
@@ -1,6 +0,0 @@
1
- import { AcoContext } from "../../types";
2
- import { CmsEntry, CmsModel } from "@webiny/api-headless-cms/types";
3
- import { FolderLevelPermissions } from "../FolderLevelPermissions";
4
- declare type Context = Pick<AcoContext, "aco" | "cms">;
5
- export declare const filterEntriesByFolderFactory: (context: Context, permissions: FolderLevelPermissions) => (model: CmsModel, entries: CmsEntry[]) => Promise<CmsEntry<import("@webiny/api-headless-cms/types").CmsEntryValues>[]>;
6
- export {};
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.filterEntriesByFolderFactory = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- var _constants = require("./constants");
9
- var _createFolderType = require("./createFolderType");
10
- const filterEntriesByFolderFactory = (context, permissions) => {
11
- return async (model, entries) => {
12
- const [folders] = await context.aco.folder.listAll({
13
- where: {
14
- type: (0, _createFolderType.createFolderType)(model)
15
- }
16
- });
17
- const results = await Promise.all(entries.map(async entry => {
18
- const folderId = entry.location?.folderId;
19
- if (!folderId || folderId === _constants.ROOT_FOLDER) {
20
- return entry;
21
- }
22
- const folder = folders.find(folder => folder.id === folderId);
23
- if (!folder) {
24
- throw new _handlerGraphql.NotFoundError(`Folder "${folderId}" not found.`);
25
- }
26
- const result = await permissions.canAccessFolderContent({
27
- folder,
28
- rwd: "r"
29
- });
30
- return result ? entry : null;
31
- }));
32
- return results.filter(entry => !!entry);
33
- };
34
- };
35
- exports.filterEntriesByFolderFactory = filterEntriesByFolderFactory;
36
-
37
- //# sourceMappingURL=filterEntriesByFolderFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_handlerGraphql","require","_constants","_createFolderType","filterEntriesByFolderFactory","context","permissions","model","entries","folders","aco","folder","listAll","where","type","createFolderType","results","Promise","all","map","entry","folderId","location","ROOT_FOLDER","find","id","NotFoundError","result","canAccessFolderContent","rwd","filter","exports"],"sources":["filterEntriesByFolderFactory.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { FolderLevelPermissions } from \"~/utils/FolderLevelPermissions\";\nimport { ROOT_FOLDER } from \"./constants\";\n\ntype Context = Pick<AcoContext, \"aco\" | \"cms\">;\n\nimport { createFolderType } from \"./createFolderType\";\n\nexport const filterEntriesByFolderFactory = (\n context: Context,\n permissions: FolderLevelPermissions\n) => {\n return async (model: CmsModel, entries: CmsEntry[]) => {\n const [folders] = await context.aco.folder.listAll({\n where: {\n type: createFolderType(model)\n }\n });\n\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 folder = folders.find(folder => folder.id === folderId);\n if (!folder) {\n throw new NotFoundError(`Folder \"${folderId}\" not found.`);\n }\n const result = await permissions.canAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n return result ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,eAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAIA,IAAAE,iBAAA,GAAAF,OAAA;AAEO,MAAMG,4BAA4B,GAAGA,CACxCC,OAAgB,EAChBC,WAAmC,KAClC;EACD,OAAO,OAAOC,KAAe,EAAEC,OAAmB,KAAK;IACnD,MAAM,CAACC,OAAO,CAAC,GAAG,MAAMJ,OAAO,CAACK,GAAG,CAACC,MAAM,CAACC,OAAO,CAAC;MAC/CC,KAAK,EAAE;QACHC,IAAI,EAAE,IAAAC,kCAAgB,EAACR,KAAK;MAChC;IACJ,CAAC,CAAC;IAEF,MAAMS,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BV,OAAO,CAACW,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKE,sBAAW,EAAE;QACvC,OAAOH,KAAK;MAChB;MAEA,MAAMT,MAAM,GAAGF,OAAO,CAACe,IAAI,CAACb,MAAM,IAAIA,MAAM,CAACc,EAAE,KAAKJ,QAAQ,CAAC;MAC7D,IAAI,CAACV,MAAM,EAAE;QACT,MAAM,IAAIe,6BAAa,CAAE,WAAUL,QAAS,cAAa,CAAC;MAC9D;MACA,MAAMM,MAAM,GAAG,MAAMrB,WAAW,CAACsB,sBAAsB,CAAC;QACpDjB,MAAM;QACNkB,GAAG,EAAE;MACT,CAAC,CAAC;MACF,OAAOF,MAAM,GAAGP,KAAK,GAAG,IAAI;IAChC,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACc,MAAM,CAAEV,KAAK,IAAwB,CAAC,CAACA,KAAK,CAAC;EAChE,CAAC;AACL,CAAC;AAACW,OAAA,CAAA3B,4BAAA,GAAAA,4BAAA"}
@@ -1,15 +0,0 @@
1
- import { CmsEntryListWhere, CmsModel } from "@webiny/api-headless-cms/types";
2
- import { Folder } from "../../folder/folder.types";
3
- interface Params {
4
- model: CmsModel;
5
- where: CmsEntryListWhere | undefined;
6
- folders: Folder[];
7
- }
8
- /**
9
- * There are multiple cases that we need to handle:
10
- * * existing location with no AND conditional
11
- * * existing location with AND conditional
12
- * * no existing location with no AND conditional + with AND conditional
13
- */
14
- export declare const createWhere: (params: Params) => CmsEntryListWhere | undefined;
15
- export {};
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createWhere = void 0;
7
- var _constants = require("./constants");
8
- var _isPageModel = require("./isPageModel");
9
- /**
10
- * There are multiple cases that we need to handle:
11
- * * existing location with no AND conditional
12
- * * existing location with AND conditional
13
- * * no existing location with no AND conditional + with AND conditional
14
- */
15
- const createWhere = params => {
16
- const {
17
- model,
18
- where,
19
- folders
20
- } = params;
21
-
22
- // Once we migrate PB to HCMS, we can remove this check and always use `wbAco_location`.
23
- const locationFieldName = (0, _isPageModel.isPageModel)(model) ? "location" : "wbyAco_location";
24
- const whereLocation = {
25
- [locationFieldName]: {
26
- // At the moment, all users can access entries in the root folder.
27
- // Root folder level permissions cannot be set yet.
28
- folderId_in: [_constants.ROOT_FOLDER, ...folders.map(folder => folder.id)]
29
- }
30
- };
31
- if (!where) {
32
- // If no `where` condition is present, that means we're performing a query
33
- // across all folders. Still, with FLP enabled, we need to filter out
34
- // folders to which the user does not have access.
35
- return whereLocation;
36
- }
37
- const whereAnd = where.AND;
38
- if (where[locationFieldName] && !whereAnd) {
39
- return {
40
- ...where,
41
- AND: [{
42
- ...whereLocation
43
- }]
44
- };
45
- } else if (where[locationFieldName] && whereAnd) {
46
- return {
47
- ...where,
48
- AND: [{
49
- ...whereLocation
50
- }, ...whereAnd]
51
- };
52
- }
53
- return {
54
- ...where,
55
- ...whereLocation
56
- };
57
- };
58
- exports.createWhere = createWhere;
59
-
60
- //# sourceMappingURL=where.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_constants","require","_isPageModel","createWhere","params","model","where","folders","locationFieldName","isPageModel","whereLocation","folderId_in","ROOT_FOLDER","map","folder","id","whereAnd","AND","exports"],"sources":["where.ts"],"sourcesContent":["import { CmsEntryListWhere, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { Folder } from \"~/folder/folder.types\";\nimport { ROOT_FOLDER } from \"./constants\";\nimport { isPageModel } from \"~/utils/decorators/isPageModel\";\n\ninterface Params {\n model: CmsModel;\n where: CmsEntryListWhere | undefined;\n folders: Folder[];\n}\n\n/**\n * There are multiple cases that we need to handle:\n * * existing location with no AND conditional\n * * existing location with AND conditional\n * * no existing location with no AND conditional + with AND conditional\n */\nexport const createWhere = (params: Params): CmsEntryListWhere | undefined => {\n const { model, where, folders } = params;\n\n // Once we migrate PB to HCMS, we can remove this check and always use `wbAco_location`.\n const locationFieldName = isPageModel(model) ? \"location\" : \"wbyAco_location\";\n\n const whereLocation = {\n [locationFieldName]: {\n // At the moment, all users can access entries in the root folder.\n // Root folder level permissions cannot be set yet.\n folderId_in: [ROOT_FOLDER, ...folders.map(folder => folder.id)]\n }\n };\n\n if (!where) {\n // If no `where` condition is present, that means we're performing a query\n // across all folders. Still, with FLP enabled, we need to filter out\n // folders to which the user does not have access.\n return whereLocation;\n }\n\n const whereAnd = where.AND;\n if (where[locationFieldName] && !whereAnd) {\n return {\n ...where,\n AND: [\n {\n ...whereLocation\n }\n ]\n };\n } else if (where[locationFieldName] && whereAnd) {\n return {\n ...where,\n AND: [\n {\n ...whereLocation\n },\n ...whereAnd\n ]\n };\n }\n\n return {\n ...where,\n ...whereLocation\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,WAAW,GAAIC,MAAc,IAAoC;EAC1E,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAGH,MAAM;;EAExC;EACA,MAAMI,iBAAiB,GAAG,IAAAC,wBAAW,EAACJ,KAAK,CAAC,GAAG,UAAU,GAAG,iBAAiB;EAE7E,MAAMK,aAAa,GAAG;IAClB,CAACF,iBAAiB,GAAG;MACjB;MACA;MACAG,WAAW,EAAE,CAACC,sBAAW,EAAE,GAAGL,OAAO,CAACM,GAAG,CAACC,MAAM,IAAIA,MAAM,CAACC,EAAE,CAAC;IAClE;EACJ,CAAC;EAED,IAAI,CAACT,KAAK,EAAE;IACR;IACA;IACA;IACA,OAAOI,aAAa;EACxB;EAEA,MAAMM,QAAQ,GAAGV,KAAK,CAACW,GAAG;EAC1B,IAAIX,KAAK,CAACE,iBAAiB,CAAC,IAAI,CAACQ,QAAQ,EAAE;IACvC,OAAO;MACH,GAAGV,KAAK;MACRW,GAAG,EAAE,CACD;QACI,GAAGP;MACP,CAAC;IAET,CAAC;EACL,CAAC,MAAM,IAAIJ,KAAK,CAACE,iBAAiB,CAAC,IAAIQ,QAAQ,EAAE;IAC7C,OAAO;MACH,GAAGV,KAAK;MACRW,GAAG,EAAE,CACD;QACI,GAAGP;MACP,CAAC,EACD,GAAGM,QAAQ;IAEnB,CAAC;EACL;EAEA,OAAO;IACH,GAAGV,KAAK;IACR,GAAGI;EACP,CAAC;AACL,CAAC;AAACQ,OAAA,CAAAf,WAAA,GAAAA,WAAA"}