@webiny/api-aco 5.43.0-beta.0 → 5.43.0-beta.1

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 (380) hide show
  1. package/constants.d.ts +3 -0
  2. package/constants.js +11 -0
  3. package/constants.js.map +1 -0
  4. package/createAcoContext.d.ts +3 -1
  5. package/createAcoContext.js +13 -99
  6. package/createAcoContext.js.map +1 -1
  7. package/createAcoHooks.js +2 -0
  8. package/createAcoHooks.js.map +1 -1
  9. package/createAcoStorageOperations.d.ts +2 -0
  10. package/createAcoStorageOperations.js +5 -3
  11. package/createAcoStorageOperations.js.map +1 -1
  12. package/createAcoTasks.d.ts +1 -0
  13. package/createAcoTasks.js +13 -0
  14. package/createAcoTasks.js.map +1 -0
  15. package/filter/filter.crud.js +7 -7
  16. package/filter/filter.crud.js.map +1 -1
  17. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  18. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  19. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  20. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  21. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  22. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  23. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  24. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  25. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  26. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  27. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  28. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  29. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  30. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  31. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  32. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  33. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  34. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  35. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  36. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  37. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  38. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  39. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  40. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  41. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  42. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  43. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  44. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  45. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  46. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  47. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  48. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  49. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  50. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  51. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  52. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  53. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  54. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  55. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  56. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  57. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  58. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  59. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  60. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  61. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  62. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  63. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  64. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  65. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  66. package/flp/FolderLevelPermissions/index.js +116 -0
  67. package/flp/FolderLevelPermissions/index.js.map +1 -0
  68. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  69. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +43 -0
  70. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  71. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  72. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  73. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  74. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  75. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  76. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  77. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  78. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +36 -0
  79. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  80. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  81. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  82. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  83. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  84. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  85. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  86. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  87. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  88. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  89. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  90. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  91. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  92. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  93. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  94. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  95. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  96. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  97. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  98. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  99. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  100. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  101. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  102. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  103. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  104. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  105. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  106. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  107. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  108. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  109. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  110. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  111. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  112. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  113. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  114. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  115. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  116. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  117. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  118. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  119. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  120. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  121. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  122. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +10 -0
  123. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +53 -0
  124. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  125. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  126. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +40 -0
  127. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  128. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  129. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  130. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  131. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  132. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  133. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  134. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  135. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  136. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  137. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  138. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  139. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  140. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  141. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  142. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  143. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  144. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  145. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  146. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  147. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  148. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  149. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  150. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  151. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  152. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  153. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  154. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  155. package/flp/flp.crud.d.ts +9 -0
  156. package/flp/flp.crud.js +172 -0
  157. package/flp/flp.crud.js.map +1 -0
  158. package/flp/flp.so.d.ts +26 -0
  159. package/flp/flp.so.js +304 -0
  160. package/flp/flp.so.js.map +1 -0
  161. package/flp/flp.types.d.ts +159 -0
  162. package/flp/flp.types.js +7 -0
  163. package/flp/flp.types.js.map +1 -0
  164. package/flp/hooks/index.d.ts +2 -0
  165. package/flp/hooks/index.js +17 -0
  166. package/flp/hooks/index.js.map +1 -0
  167. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  168. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  169. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  170. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  171. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  172. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  173. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  174. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  175. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  176. package/flp/index.d.ts +5 -0
  177. package/flp/index.js +62 -0
  178. package/flp/index.js.map +1 -0
  179. package/flp/tasks/createFlp.task.d.ts +2 -0
  180. package/flp/tasks/createFlp.task.js +49 -0
  181. package/flp/tasks/createFlp.task.js.map +1 -0
  182. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  183. package/flp/tasks/deleteFlp.task.js +49 -0
  184. package/flp/tasks/deleteFlp.task.js.map +1 -0
  185. package/flp/tasks/index.d.ts +5 -0
  186. package/flp/tasks/index.js +20 -0
  187. package/flp/tasks/index.js.map +1 -0
  188. package/flp/tasks/syncFlp.task.d.ts +2 -0
  189. package/flp/tasks/syncFlp.task.js +126 -0
  190. package/flp/tasks/syncFlp.task.js.map +1 -0
  191. package/flp/tasks/updateFlp.task.d.ts +2 -0
  192. package/flp/tasks/updateFlp.task.js +55 -0
  193. package/flp/tasks/updateFlp.task.js.map +1 -0
  194. package/flp/useCases/CreateFlp.d.ts +7 -0
  195. package/flp/useCases/CreateFlp.js +52 -0
  196. package/flp/useCases/CreateFlp.js.map +1 -0
  197. package/flp/useCases/DeleteFlp.d.ts +6 -0
  198. package/flp/useCases/DeleteFlp.js +30 -0
  199. package/flp/useCases/DeleteFlp.js.map +1 -0
  200. package/flp/useCases/Path.d.ts +3 -0
  201. package/flp/useCases/Path.js +18 -0
  202. package/flp/useCases/Path.js.map +1 -0
  203. package/flp/useCases/Permissions.d.ts +4 -0
  204. package/flp/useCases/Permissions.js +38 -0
  205. package/flp/useCases/Permissions.js.map +1 -0
  206. package/flp/useCases/UpdateFlp.d.ts +25 -0
  207. package/flp/useCases/UpdateFlp.js +182 -0
  208. package/flp/useCases/UpdateFlp.js.map +1 -0
  209. package/flp/useCases/index.d.ts +3 -0
  210. package/flp/useCases/index.js +40 -0
  211. package/flp/useCases/index.js.map +1 -0
  212. package/folder/createFolderTypeDefs.js +13 -2
  213. package/folder/createFolderTypeDefs.js.map +1 -1
  214. package/folder/folder.crud.d.ts +3 -6
  215. package/folder/folder.crud.js +90 -231
  216. package/folder/folder.crud.js.map +1 -1
  217. package/folder/folder.gql.js +30 -8
  218. package/folder/folder.gql.js.map +1 -1
  219. package/folder/folder.so.js +4 -1
  220. package/folder/folder.so.js.map +1 -1
  221. package/folder/folder.types.d.ts +17 -3
  222. package/folder/folder.types.js.map +1 -1
  223. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  224. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  225. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  226. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  227. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  228. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  229. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +24 -0
  230. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  231. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  232. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  233. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  234. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  235. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  236. package/folder/useCases/CreateFolder/index.js +20 -0
  237. package/folder/useCases/CreateFolder/index.js.map +1 -0
  238. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  239. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  240. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  241. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  242. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  243. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  244. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  245. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  246. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  247. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  248. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  249. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  250. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  251. package/folder/useCases/DeleteFolder/index.js +20 -0
  252. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  253. package/folder/useCases/GetAncestors/GetAncestors.d.ts +5 -0
  254. package/folder/useCases/GetAncestors/GetAncestors.js +57 -0
  255. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  256. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +8 -0
  257. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  258. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  259. package/folder/useCases/GetAncestors/index.d.ts +4 -0
  260. package/folder/useCases/GetAncestors/index.js +16 -0
  261. package/folder/useCases/GetAncestors/index.js.map +1 -0
  262. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  263. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  264. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  265. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +24 -0
  266. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  267. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  268. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  269. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  270. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  271. package/folder/useCases/GetFolder/index.d.ts +13 -0
  272. package/folder/useCases/GetFolder/index.js +19 -0
  273. package/folder/useCases/GetFolder/index.js.map +1 -0
  274. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  275. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  276. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  277. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  278. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  279. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  280. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  281. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  282. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  283. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  284. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  285. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  286. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  287. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  288. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  289. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  290. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  291. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  292. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  293. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  294. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  295. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  296. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  297. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  298. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  299. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  300. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  301. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  302. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  303. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  304. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  305. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  306. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  307. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  308. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  309. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  310. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  311. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  312. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  313. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  314. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  315. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  316. package/folder/useCases/ListFolders/index.d.ts +13 -0
  317. package/folder/useCases/ListFolders/index.js +19 -0
  318. package/folder/useCases/ListFolders/index.js.map +1 -0
  319. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  320. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  321. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  322. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  323. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  324. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  325. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  326. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  327. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  328. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +25 -0
  329. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  330. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  331. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  332. package/folder/useCases/UpdateFolder/index.js +20 -0
  333. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  334. package/folder/useCases/index.d.ts +8 -0
  335. package/folder/useCases/index.js +95 -0
  336. package/folder/useCases/index.js.map +1 -0
  337. package/index.d.ts +3 -1
  338. package/index.js +3 -2
  339. package/index.js.map +1 -1
  340. package/package.json +28 -26
  341. package/record/record.crud.js +10 -10
  342. package/record/record.crud.js.map +1 -1
  343. package/record/record.so.js +2 -1
  344. package/record/record.so.js.map +1 -1
  345. package/types.d.ts +15 -6
  346. package/types.js +12 -0
  347. package/types.js.map +1 -1
  348. package/utils/decorators/CmsEntriesCrudDecorators.js +41 -65
  349. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  350. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  351. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  352. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  353. package/utils/decorators/ListEntriesFactory.d.ts +15 -0
  354. package/utils/decorators/ListEntriesFactory.js +107 -0
  355. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  356. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +7 -0
  357. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
  358. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  359. package/utils/decorators/hasRootFolderId.js +27 -0
  360. package/utils/decorators/hasRootFolderId.js.map +1 -0
  361. package/utils/pickEntryFieldValues.js +1 -1
  362. package/utils/pickEntryFieldValues.js.map +1 -1
  363. package/utils/FolderLevelPermissions.d.ts +0 -75
  364. package/utils/FolderLevelPermissions.js +0 -390
  365. package/utils/FolderLevelPermissions.js.map +0 -1
  366. package/utils/decorators/constants.d.ts +0 -1
  367. package/utils/decorators/constants.js +0 -9
  368. package/utils/decorators/constants.js.map +0 -1
  369. package/utils/decorators/createFolderType.d.ts +0 -2
  370. package/utils/decorators/createFolderType.js +0 -18
  371. package/utils/decorators/createFolderType.js.map +0 -1
  372. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  373. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  374. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  375. package/utils/decorators/where.d.ts +0 -15
  376. package/utils/decorators/where.js +0 -60
  377. package/utils/decorators/where.js.map +0 -1
  378. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  379. package/utils/getFolderAndItsAncestors.js +0 -53
  380. package/utils/getFolderAndItsAncestors.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Path = void 0;
7
+ var _constants = require("../../constants");
8
+ class Path {
9
+ static create(slug, parentPath) {
10
+ if (parentPath) {
11
+ return `${parentPath}/${slug}`;
12
+ }
13
+ return `${_constants.ROOT_FOLDER}/${slug}`;
14
+ }
15
+ }
16
+ exports.Path = Path;
17
+
18
+ //# sourceMappingURL=Path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","Path","create","slug","parentPath","ROOT_FOLDER","exports"],"sources":["Path.ts"],"sourcesContent":["import { ROOT_FOLDER } from \"~/constants\";\n\nexport class Path {\n static create(slug: string, parentPath?: string) {\n if (parentPath) {\n return `${parentPath}/${slug}`;\n }\n\n return `${ROOT_FOLDER}/${slug}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,IAAI,CAAC;EACd,OAAOC,MAAMA,CAACC,IAAY,EAAEC,UAAmB,EAAE;IAC7C,IAAIA,UAAU,EAAE;MACZ,OAAO,GAAGA,UAAU,IAAID,IAAI,EAAE;IAClC;IAEA,OAAO,GAAGE,sBAAW,IAAIF,IAAI,EAAE;EACnC;AACJ;AAACG,OAAA,CAAAL,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { FolderLevelPermission as IFolderLevelPermission, FolderPermission } from "../flp.types";
2
+ export declare class Permissions {
3
+ static create(permissions?: FolderPermission[], parentFlp?: Pick<IFolderLevelPermission, "id" | "permissions"> | null): FolderPermission[];
4
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Permissions = void 0;
7
+ class Permissions {
8
+ static create(permissions, parentFlp) {
9
+ const folderPermissions = permissions ?? [];
10
+
11
+ // No permissions from the parent, let's return the permissions provided by the folder.
12
+ if (!parentFlp || !parentFlp.permissions?.length) {
13
+ return folderPermissions;
14
+ }
15
+ const {
16
+ id: parentId,
17
+ permissions: parentPermissions
18
+ } = parentFlp;
19
+
20
+ // Remove all previously inherited permissions
21
+ const cleanedPermissions = folderPermissions.filter(p => p.inheritedFrom !== `parent:${parentId}`);
22
+
23
+ // Store the `target` values from the current cleaned permissions.
24
+ // These will be used to exclude inherited permissions that target the same entities as the current folder's permissions.
25
+ const permissionsTargets = new Set(cleanedPermissions.map(p => p.target));
26
+
27
+ // Get inherited permissions from parent, preserving the original inheritance chain
28
+ const inheritedPermissions = parentPermissions.filter(p => !permissionsTargets.has(p.target)).map(p => ({
29
+ ...p,
30
+ // If the permission was already inherited, keep its original source
31
+ inheritedFrom: `parent:${parentId}`
32
+ }));
33
+ return [...cleanedPermissions, ...inheritedPermissions];
34
+ }
35
+ }
36
+ exports.Permissions = Permissions;
37
+
38
+ //# sourceMappingURL=Permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Permissions","create","permissions","parentFlp","folderPermissions","length","id","parentId","parentPermissions","cleanedPermissions","filter","p","inheritedFrom","permissionsTargets","Set","map","target","inheritedPermissions","has","exports"],"sources":["Permissions.ts"],"sourcesContent":["import type {\n FolderLevelPermission as IFolderLevelPermission,\n FolderPermission\n} from \"~/flp/flp.types\";\n\nexport class Permissions {\n public static create(\n permissions?: FolderPermission[],\n parentFlp?: Pick<IFolderLevelPermission, \"id\" | \"permissions\"> | null\n ): FolderPermission[] {\n const folderPermissions = permissions ?? [];\n\n // No permissions from the parent, let's return the permissions provided by the folder.\n if (!parentFlp || !parentFlp.permissions?.length) {\n return folderPermissions;\n }\n\n const { id: parentId, permissions: parentPermissions } = parentFlp;\n\n // Remove all previously inherited permissions\n const cleanedPermissions = folderPermissions.filter(\n p => p.inheritedFrom !== `parent:${parentId}`\n );\n\n // Store the `target` values from the current cleaned permissions.\n // These will be used to exclude inherited permissions that target the same entities as the current folder's permissions.\n const permissionsTargets = new Set(cleanedPermissions.map(p => p.target));\n\n // Get inherited permissions from parent, preserving the original inheritance chain\n const inheritedPermissions = parentPermissions\n .filter(p => !permissionsTargets.has(p.target))\n .map(p => ({\n ...p,\n // If the permission was already inherited, keep its original source\n inheritedFrom: `parent:${parentId}`\n }));\n\n return [...cleanedPermissions, ...inheritedPermissions];\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,WAAW,CAAC;EACrB,OAAcC,MAAMA,CAChBC,WAAgC,EAChCC,SAAqE,EACnD;IAClB,MAAMC,iBAAiB,GAAGF,WAAW,IAAI,EAAE;;IAE3C;IACA,IAAI,CAACC,SAAS,IAAI,CAACA,SAAS,CAACD,WAAW,EAAEG,MAAM,EAAE;MAC9C,OAAOD,iBAAiB;IAC5B;IAEA,MAAM;MAAEE,EAAE,EAAEC,QAAQ;MAAEL,WAAW,EAAEM;IAAkB,CAAC,GAAGL,SAAS;;IAElE;IACA,MAAMM,kBAAkB,GAAGL,iBAAiB,CAACM,MAAM,CAC/CC,CAAC,IAAIA,CAAC,CAACC,aAAa,KAAK,UAAUL,QAAQ,EAC/C,CAAC;;IAED;IACA;IACA,MAAMM,kBAAkB,GAAG,IAAIC,GAAG,CAACL,kBAAkB,CAACM,GAAG,CAACJ,CAAC,IAAIA,CAAC,CAACK,MAAM,CAAC,CAAC;;IAEzE;IACA,MAAMC,oBAAoB,GAAGT,iBAAiB,CACzCE,MAAM,CAACC,CAAC,IAAI,CAACE,kBAAkB,CAACK,GAAG,CAACP,CAAC,CAACK,MAAM,CAAC,CAAC,CAC9CD,GAAG,CAACJ,CAAC,KAAK;MACP,GAAGA,CAAC;MACJ;MACAC,aAAa,EAAE,UAAUL,QAAQ;IACrC,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,GAAGE,kBAAkB,EAAE,GAAGQ,oBAAoB,CAAC;EAC3D;AACJ;AAACE,OAAA,CAAAnB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import type { AcoContext, Folder } from "../../types";
2
+ interface UpdateFlpParams {
3
+ context: AcoContext;
4
+ queued?: string[];
5
+ isCloseToTimeout?: () => boolean;
6
+ handleTimeout?: (queued: string[]) => void;
7
+ }
8
+ export declare class UpdateFlp {
9
+ private context;
10
+ private readonly isCloseToTimeout?;
11
+ private readonly handleTimeout?;
12
+ private readonly queued;
13
+ private readonly flpsToUpdate;
14
+ constructor(params: UpdateFlpParams);
15
+ execute(folder: Folder): Promise<void>;
16
+ private collectBranchForUpdate;
17
+ private executeBatchUpdate;
18
+ private getQueuedList;
19
+ private setQueued;
20
+ private isQueued;
21
+ private clearQueuedList;
22
+ private listDirectChildren;
23
+ private getFlp;
24
+ }
25
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UpdateFlp = void 0;
7
+ var _error = require("@webiny/error");
8
+ var _Path = require("./Path");
9
+ var _Permissions = require("./Permissions");
10
+ var _constants = require("../../constants");
11
+ class UpdateFlp {
12
+ queued = new Set();
13
+ flpsToUpdate = new Map();
14
+ constructor(params) {
15
+ this.context = params.context;
16
+ this.queued = new Set(params.queued);
17
+ this.isCloseToTimeout = params.isCloseToTimeout;
18
+ this.handleTimeout = params.handleTimeout;
19
+ }
20
+ async execute(folder) {
21
+ try {
22
+ if (!folder) {
23
+ throw new _error.WebinyError("Missing `folder`, I can't update the FLP record.", "ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED", {
24
+ folder
25
+ });
26
+ }
27
+ const flp = await this.getFlp(folder);
28
+ const parentFlp = folder.parentId ? await this.context.aco.flp.get(folder.parentId) : null;
29
+
30
+ // Add the root folder to the update collection
31
+ this.flpsToUpdate.set(folder.id, {
32
+ slug: folder.slug,
33
+ parentId: folder.parentId ?? _constants.ROOT_FOLDER,
34
+ path: _Path.Path.create(folder.slug, parentFlp?.path),
35
+ permissions: _Permissions.Permissions.create(folder.permissions, parentFlp)
36
+ });
37
+
38
+ // Let's set the FLP as in queue
39
+ this.setQueued(flp.id);
40
+
41
+ // Get direct children and process each branch completely
42
+ const directChildren = await this.listDirectChildren(flp);
43
+ for (const child of directChildren) {
44
+ if (this.isCloseToTimeout?.()) {
45
+ await this.executeBatchUpdate();
46
+ this.handleTimeout?.(this.getQueuedList());
47
+ return;
48
+ }
49
+ await this.collectBranchForUpdate(child, flp);
50
+ }
51
+
52
+ // Execute batch update
53
+ await this.executeBatchUpdate();
54
+ } catch (error) {
55
+ // Clear the update collection in case of error
56
+ this.flpsToUpdate.clear();
57
+ this.queued.clear();
58
+ throw _error.WebinyError.from(error, {
59
+ message: "Error while updating FLP",
60
+ code: "ERROR_UPDATING_FLP_USE_CASE"
61
+ });
62
+ }
63
+ }
64
+ async collectBranchForUpdate(flp, parentFlp) {
65
+ if (this.isQueued(flp.id)) {
66
+ return;
67
+ }
68
+
69
+ // Get the parent's permissions from the update collection if available
70
+ const parentFlpData = this.flpsToUpdate.get(parentFlp.id);
71
+ const currentParentFlp = {
72
+ ...parentFlp,
73
+ ...(parentFlpData && {
74
+ ...parentFlpData
75
+ })
76
+ };
77
+
78
+ // Add the FLP to the update collection with inherited permissions
79
+ this.flpsToUpdate.set(flp.id, {
80
+ slug: flp.slug,
81
+ parentId: flp.parentId,
82
+ path: _Path.Path.create(flp.slug, currentParentFlp.path),
83
+ permissions: _Permissions.Permissions.create(flp.permissions, currentParentFlp)
84
+ });
85
+
86
+ // Add the FLP to the queue list so we don't fetch it again
87
+ this.setQueued(flp.id);
88
+
89
+ // Process all children of this folder before moving to siblings
90
+ const children = await this.listDirectChildren(flp);
91
+ for (const child of children) {
92
+ if (this.isCloseToTimeout?.()) {
93
+ await this.executeBatchUpdate();
94
+ this.handleTimeout?.(this.getQueuedList());
95
+ return;
96
+ }
97
+ // Pass the current FLP as the parent for the child
98
+ await this.collectBranchForUpdate(child, flp);
99
+ }
100
+ }
101
+ async executeBatchUpdate() {
102
+ try {
103
+ const items = Array.from(this.flpsToUpdate.entries()).map(([id, {
104
+ slug,
105
+ parentId,
106
+ path,
107
+ permissions
108
+ }]) => {
109
+ return {
110
+ id,
111
+ data: {
112
+ slug,
113
+ parentId,
114
+ path,
115
+ permissions
116
+ }
117
+ };
118
+ });
119
+ await this.context.aco.flp.batchUpdate(items);
120
+ } catch (error) {
121
+ throw _error.WebinyError.from(error, {
122
+ message: "Error while executing batch update of FLPs",
123
+ code: "BATCH_UPDATE_FLP_ERROR",
124
+ data: {
125
+ items: Array.from(this.flpsToUpdate.keys())
126
+ }
127
+ });
128
+ } finally {
129
+ // Clear the update collection after the batch update
130
+ this.flpsToUpdate.clear();
131
+
132
+ //Let's remove all the updated FLPs ids from the queue cache
133
+ this.clearQueuedList();
134
+ }
135
+ }
136
+ getQueuedList() {
137
+ return Array.from(this.queued);
138
+ }
139
+ setQueued(id) {
140
+ this.queued.add(id);
141
+ }
142
+ isQueued(id) {
143
+ return this.queued.has(id);
144
+ }
145
+ clearQueuedList() {
146
+ return this.queued.clear();
147
+ }
148
+ async listDirectChildren(flp) {
149
+ const [folders] = await this.context.aco.folder.listAll({
150
+ where: {
151
+ type: flp.type,
152
+ parentId: flp.id
153
+ },
154
+ disablePermissions: true
155
+ });
156
+ return await Promise.all(folders.map(folder => this.getFlp(folder)));
157
+ }
158
+ async getFlp({
159
+ id,
160
+ type,
161
+ parentId,
162
+ slug,
163
+ permissions
164
+ }) {
165
+ const flp = await this.context.aco.flp.get(id);
166
+ if (!flp) {
167
+ const parentFlp = parentId ? await this.context.aco.flp.get(parentId) : null;
168
+ return await this.context.aco.flp.create({
169
+ id,
170
+ type,
171
+ slug,
172
+ parentId: parentId ?? _constants.ROOT_FOLDER,
173
+ path: _Path.Path.create(slug, parentFlp?.path),
174
+ permissions: _Permissions.Permissions.create(permissions, parentFlp)
175
+ });
176
+ }
177
+ return flp;
178
+ }
179
+ }
180
+ exports.UpdateFlp = UpdateFlp;
181
+
182
+ //# sourceMappingURL=UpdateFlp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","require","_Path","_Permissions","_constants","UpdateFlp","queued","Set","flpsToUpdate","Map","constructor","params","context","isCloseToTimeout","handleTimeout","execute","folder","WebinyError","flp","getFlp","parentFlp","parentId","aco","get","set","id","slug","ROOT_FOLDER","path","Path","create","permissions","Permissions","setQueued","directChildren","listDirectChildren","child","executeBatchUpdate","getQueuedList","collectBranchForUpdate","error","clear","from","message","code","isQueued","parentFlpData","currentParentFlp","children","items","Array","entries","map","data","batchUpdate","keys","clearQueuedList","add","has","folders","listAll","where","type","disablePermissions","Promise","all","exports"],"sources":["UpdateFlp.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"./Path\";\nimport { Permissions } from \"./Permissions\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport type { AcoContext, Folder, FolderLevelPermission, FolderPermission } from \"~/types\";\n\ninterface UpdateFlpParams {\n context: AcoContext;\n queued?: string[];\n isCloseToTimeout?: () => boolean;\n handleTimeout?: (queued: string[]) => void;\n}\n\ninterface FlpUpdateData {\n parentId: string;\n slug: string;\n path: string;\n permissions: FolderPermission[];\n}\n\nexport class UpdateFlp {\n private context: AcoContext;\n private readonly isCloseToTimeout?: () => boolean;\n private readonly handleTimeout?: (updated: string[]) => void;\n\n private readonly queued: Set<string> = new Set();\n private readonly flpsToUpdate: Map<string, FlpUpdateData> = new Map();\n\n constructor(params: UpdateFlpParams) {\n this.context = params.context;\n this.queued = new Set(params.queued);\n this.isCloseToTimeout = params.isCloseToTimeout;\n this.handleTimeout = params.handleTimeout;\n }\n\n async execute(folder: Folder) {\n try {\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder`, I can't update the FLP record.\",\n \"ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED\",\n { folder }\n );\n }\n\n const flp = await this.getFlp(folder);\n const parentFlp = folder.parentId\n ? await this.context.aco.flp.get(folder.parentId)\n : null;\n\n // Add the root folder to the update collection\n this.flpsToUpdate.set(folder.id, {\n slug: folder.slug,\n parentId: folder.parentId ?? ROOT_FOLDER,\n path: Path.create(folder.slug, parentFlp?.path),\n permissions: Permissions.create(folder.permissions, parentFlp)\n });\n\n // Let's set the FLP as in queue\n this.setQueued(flp.id);\n\n // Get direct children and process each branch completely\n const directChildren = await this.listDirectChildren(flp);\n\n for (const child of directChildren) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n await this.collectBranchForUpdate(child, flp);\n }\n\n // Execute batch update\n await this.executeBatchUpdate();\n } catch (error) {\n // Clear the update collection in case of error\n this.flpsToUpdate.clear();\n this.queued.clear();\n throw WebinyError.from(error, {\n message: \"Error while updating FLP\",\n code: \"ERROR_UPDATING_FLP_USE_CASE\"\n });\n }\n }\n\n private async collectBranchForUpdate(\n flp: FolderLevelPermission,\n parentFlp: FolderLevelPermission\n ) {\n if (this.isQueued(flp.id)) {\n return;\n }\n\n // Get the parent's permissions from the update collection if available\n const parentFlpData = this.flpsToUpdate.get(parentFlp.id);\n const currentParentFlp = {\n ...parentFlp,\n ...(parentFlpData && { ...parentFlpData })\n };\n\n // Add the FLP to the update collection with inherited permissions\n this.flpsToUpdate.set(flp.id, {\n slug: flp.slug,\n parentId: flp.parentId,\n path: Path.create(flp.slug, currentParentFlp.path),\n permissions: Permissions.create(flp.permissions, currentParentFlp)\n });\n\n // Add the FLP to the queue list so we don't fetch it again\n this.setQueued(flp.id);\n\n // Process all children of this folder before moving to siblings\n const children = await this.listDirectChildren(flp);\n\n for (const child of children) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n // Pass the current FLP as the parent for the child\n await this.collectBranchForUpdate(child, flp);\n }\n }\n\n private async executeBatchUpdate() {\n try {\n const items = Array.from(this.flpsToUpdate.entries()).map(\n ([id, { slug, parentId, path, permissions }]) => {\n return {\n id,\n data: {\n slug,\n parentId,\n path,\n permissions\n }\n };\n }\n );\n\n await this.context.aco.flp.batchUpdate(items);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing batch update of FLPs\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: {\n items: Array.from(this.flpsToUpdate.keys())\n }\n });\n } finally {\n // Clear the update collection after the batch update\n this.flpsToUpdate.clear();\n\n //Let's remove all the updated FLPs ids from the queue cache\n this.clearQueuedList();\n }\n }\n\n private getQueuedList() {\n return Array.from(this.queued);\n }\n\n private setQueued(id: string) {\n this.queued.add(id);\n }\n\n private isQueued(id: string) {\n return this.queued.has(id);\n }\n\n private clearQueuedList() {\n return this.queued.clear();\n }\n\n private async listDirectChildren(flp: FolderLevelPermission): Promise<FolderLevelPermission[]> {\n const [folders] = await this.context.aco.folder.listAll({\n where: {\n type: flp.type,\n parentId: flp.id\n },\n disablePermissions: true\n });\n\n return await Promise.all(folders.map(folder => this.getFlp(folder)));\n }\n\n private async getFlp({ id, type, parentId, slug, permissions }: Folder) {\n const flp = await this.context.aco.flp.get(id);\n\n if (!flp) {\n const parentFlp = parentId ? await this.context.aco.flp.get(parentId) : null;\n\n return await this.context.aco.flp.create({\n id,\n type,\n slug,\n parentId: parentId ?? ROOT_FOLDER,\n path: Path.create(slug, parentFlp?.path),\n permissions: Permissions.create(permissions, parentFlp)\n });\n }\n\n return flp;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from "./CreateFlp";
2
+ export * from "./DeleteFlp";
3
+ export * from "./UpdateFlp";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _CreateFlp = require("./CreateFlp");
7
+ Object.keys(_CreateFlp).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _CreateFlp[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _CreateFlp[key];
14
+ }
15
+ });
16
+ });
17
+ var _DeleteFlp = require("./DeleteFlp");
18
+ Object.keys(_DeleteFlp).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _DeleteFlp[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _DeleteFlp[key];
25
+ }
26
+ });
27
+ });
28
+ var _UpdateFlp = require("./UpdateFlp");
29
+ Object.keys(_UpdateFlp).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _UpdateFlp[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _UpdateFlp[key];
36
+ }
37
+ });
38
+ });
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_CreateFlp","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_DeleteFlp","_UpdateFlp"],"sources":["index.ts"],"sourcesContent":["export * from \"./CreateFlp\";\nexport * from \"./DeleteFlp\";\nexport * from \"./UpdateFlp\";\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -95,7 +95,8 @@ const createFolderTypeDefs = params => {
95
95
 
96
96
  input FoldersListWhereInput {
97
97
  type: String!
98
- parentId: String
98
+ parentId: ID
99
+ parentId_in: [ID]
99
100
  createdBy: ID
100
101
  }
101
102
 
@@ -114,6 +115,16 @@ const createFolderTypeDefs = params => {
114
115
  data: CompressedResponse
115
116
  error: AcoError
116
117
  }
118
+
119
+ type FoldersHierarchyData {
120
+ parents: [Folder]
121
+ siblings: [Folder]
122
+ }
123
+
124
+ type FoldersHierarchyResponse {
125
+ data: FoldersHierarchyData
126
+ error: AcoError
127
+ }
117
128
 
118
129
  type FolderLevelPermissionsTarget {
119
130
  id: ID!
@@ -153,7 +164,7 @@ const createFolderTypeDefs = params => {
153
164
  after: String
154
165
  sort: AcoSort
155
166
  ): FoldersListCompressedResponse
156
-
167
+ getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse
157
168
  listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
158
169
  }
159
170
 
@@ -1 +1 @@
1
- {"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1,10 +1,7 @@
1
- import { CreateAcoParams } from "../types";
2
1
  import { AcoFolderCrud } from "./folder.types";
3
- import { AdminUser } from "@webiny/api-admin-users/types";
4
- import { Team } from "@webiny/api-security/types";
2
+ import { type AcoContext, CreateAcoParams } from "../types";
5
3
  interface CreateFolderCrudMethodsParams extends CreateAcoParams {
6
- listAdminUsers: () => Promise<AdminUser[]>;
7
- listTeams: () => Promise<Team[]>;
4
+ context: AcoContext;
8
5
  }
9
- export declare const createFolderCrudMethods: ({ storageOperations, folderLevelPermissions, listAdminUsers, listTeams }: CreateFolderCrudMethodsParams) => AcoFolderCrud;
6
+ export declare const createFolderCrudMethods: ({ storageOperations, folderLevelPermissions, context }: CreateFolderCrudMethodsParams) => AcoFolderCrud;
10
7
  export {};