@webiny/api-aco 0.0.0-unstable.2696f9d9e8 → 0.0.0-unstable.2aaa1916d9

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 (484) hide show
  1. package/apps/AcoApp.d.ts +2 -2
  2. package/apps/AcoApp.js +4 -4
  3. package/apps/AcoApp.js.map +1 -1
  4. package/apps/AcoApps.d.ts +1 -1
  5. package/apps/AcoApps.js.map +1 -1
  6. package/apps/app.gql.d.ts +1 -1
  7. package/apps/app.gql.js +1 -2
  8. package/apps/app.gql.js.map +1 -1
  9. package/apps/index.js.map +1 -1
  10. package/constants.d.ts +3 -0
  11. package/constants.js +26 -0
  12. package/constants.js.map +1 -0
  13. package/createAcoContext.d.ts +4 -2
  14. package/createAcoContext.js +16 -80
  15. package/createAcoContext.js.map +1 -1
  16. package/createAcoGraphQL.d.ts +3 -2
  17. package/createAcoGraphQL.js +39 -1
  18. package/createAcoGraphQL.js.map +1 -1
  19. package/createAcoHooks.d.ts +1 -1
  20. package/createAcoHooks.js +2 -0
  21. package/createAcoHooks.js.map +1 -1
  22. package/createAcoModels.d.ts +2 -2
  23. package/createAcoModels.js +9 -3
  24. package/createAcoModels.js.map +1 -1
  25. package/createAcoStorageOperations.d.ts +6 -4
  26. package/createAcoStorageOperations.js +7 -5
  27. package/createAcoStorageOperations.js.map +1 -1
  28. package/createAcoTasks.d.ts +1 -0
  29. package/createAcoTasks.js +13 -0
  30. package/createAcoTasks.js.map +1 -0
  31. package/filter/filter.crud.d.ts +2 -2
  32. package/filter/filter.crud.js +7 -7
  33. package/filter/filter.crud.js.map +1 -1
  34. package/filter/filter.gql.d.ts +1 -1
  35. package/filter/filter.gql.js +1 -2
  36. package/filter/filter.gql.js.map +1 -1
  37. package/filter/filter.model.d.ts +1 -1
  38. package/filter/filter.model.js +5 -6
  39. package/filter/filter.model.js.map +1 -1
  40. package/filter/filter.so.d.ts +2 -2
  41. package/filter/filter.so.js +7 -1
  42. package/filter/filter.so.js.map +1 -1
  43. package/filter/filter.types.d.ts +5 -5
  44. package/filter/filter.types.js +1 -2
  45. package/filter/filter.types.js.map +1 -1
  46. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  47. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  48. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  49. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  50. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  51. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  52. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  53. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  54. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  55. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  56. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  57. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  58. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  59. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  60. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  61. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  62. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  63. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  64. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  65. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  66. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  67. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  68. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  69. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  70. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  71. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  72. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  73. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  74. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  75. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  76. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  77. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  78. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  79. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  80. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  81. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  82. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  83. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  84. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  85. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  86. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  87. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  88. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  89. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  90. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  91. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  92. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  93. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  94. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  95. package/flp/FolderLevelPermissions/index.js +116 -0
  96. package/flp/FolderLevelPermissions/index.js.map +1 -0
  97. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  98. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +48 -0
  99. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  100. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  101. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  102. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  103. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  104. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  105. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  106. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  107. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +41 -0
  108. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  109. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  110. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  111. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  112. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  113. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  114. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  115. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  116. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  117. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  118. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  119. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  120. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  121. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  122. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  123. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  124. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  125. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  126. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  127. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  128. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  129. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  130. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  131. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  132. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  133. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  134. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  135. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  136. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  137. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  138. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  139. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  140. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  141. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  142. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  143. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  144. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  145. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  146. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  147. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  148. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  149. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  150. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  151. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +6 -0
  152. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +77 -0
  153. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  154. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +9 -0
  155. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +21 -0
  156. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  157. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  158. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +42 -0
  159. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  160. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  161. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  162. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  163. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  164. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  165. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  166. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  167. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  168. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  169. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  170. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  171. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  172. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  173. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  174. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  175. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  176. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  177. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  178. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  179. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  180. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  181. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  182. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  183. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  184. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  185. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  186. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  187. package/flp/flp.crud.d.ts +9 -0
  188. package/flp/flp.crud.js +172 -0
  189. package/flp/flp.crud.js.map +1 -0
  190. package/flp/flp.so.d.ts +26 -0
  191. package/flp/flp.so.js +304 -0
  192. package/flp/flp.so.js.map +1 -0
  193. package/flp/flp.types.d.ts +147 -0
  194. package/flp/flp.types.js +18 -0
  195. package/flp/flp.types.js.map +1 -0
  196. package/flp/hooks/index.d.ts +2 -0
  197. package/flp/hooks/index.js +17 -0
  198. package/flp/hooks/index.js.map +1 -0
  199. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  200. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  201. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  202. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  203. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  204. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  205. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  206. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  207. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  208. package/flp/index.d.ts +5 -0
  209. package/flp/index.js +62 -0
  210. package/flp/index.js.map +1 -0
  211. package/flp/tasks/createFlp.task.d.ts +2 -0
  212. package/flp/tasks/createFlp.task.js +49 -0
  213. package/flp/tasks/createFlp.task.js.map +1 -0
  214. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  215. package/flp/tasks/deleteFlp.task.js +49 -0
  216. package/flp/tasks/deleteFlp.task.js.map +1 -0
  217. package/flp/tasks/index.d.ts +5 -0
  218. package/flp/tasks/index.js +20 -0
  219. package/flp/tasks/index.js.map +1 -0
  220. package/flp/tasks/syncFlp.task.d.ts +2 -0
  221. package/flp/tasks/syncFlp.task.js +126 -0
  222. package/flp/tasks/syncFlp.task.js.map +1 -0
  223. package/flp/tasks/updateFlp.task.d.ts +2 -0
  224. package/flp/tasks/updateFlp.task.js +55 -0
  225. package/flp/tasks/updateFlp.task.js.map +1 -0
  226. package/flp/useCases/CreateFlp.d.ts +7 -0
  227. package/flp/useCases/CreateFlp.js +51 -0
  228. package/flp/useCases/CreateFlp.js.map +1 -0
  229. package/flp/useCases/DeleteFlp.d.ts +6 -0
  230. package/flp/useCases/DeleteFlp.js +30 -0
  231. package/flp/useCases/DeleteFlp.js.map +1 -0
  232. package/flp/useCases/UpdateFlp.d.ts +26 -0
  233. package/flp/useCases/UpdateFlp.js +198 -0
  234. package/flp/useCases/UpdateFlp.js.map +1 -0
  235. package/flp/useCases/index.d.ts +3 -0
  236. package/flp/useCases/index.js +40 -0
  237. package/flp/useCases/index.js.map +1 -0
  238. package/folder/createFolderModelModifier.d.ts +36 -0
  239. package/folder/createFolderModelModifier.js +70 -0
  240. package/folder/createFolderModelModifier.js.map +1 -0
  241. package/folder/createFolderTypeDefs.d.ts +7 -0
  242. package/folder/createFolderTypeDefs.js +207 -0
  243. package/folder/createFolderTypeDefs.js.map +1 -0
  244. package/folder/ensureFolderIsEmpty.d.ts +8 -0
  245. package/folder/ensureFolderIsEmpty.js +63 -0
  246. package/folder/ensureFolderIsEmpty.js.map +1 -0
  247. package/folder/folder.crud.d.ts +5 -7
  248. package/folder/folder.crud.js +93 -225
  249. package/folder/folder.crud.js.map +1 -1
  250. package/folder/folder.gql.d.ts +3 -2
  251. package/folder/folder.gql.js +117 -177
  252. package/folder/folder.gql.js.map +1 -1
  253. package/folder/folder.model.d.ts +1 -1
  254. package/folder/folder.model.js +29 -7
  255. package/folder/folder.model.js.map +1 -1
  256. package/folder/folder.so.d.ts +2 -2
  257. package/folder/folder.so.js +38 -6
  258. package/folder/folder.so.js.map +1 -1
  259. package/folder/folder.types.d.ts +41 -8
  260. package/folder/folder.types.js.map +1 -1
  261. package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -2
  262. package/folder/onFolderBeforeDeleteAco.hook.js +26 -39
  263. package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -1
  264. package/folder/onFolderBeforeDeleteFm.hook.d.ts +1 -1
  265. package/folder/onFolderBeforeDeleteFm.hook.js +15 -13
  266. package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -1
  267. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +1 -1
  268. package/folder/onFolderBeforeDeleteHcms.hook.js +17 -15
  269. package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -1
  270. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  271. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  272. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  273. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  274. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  275. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  276. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +25 -0
  277. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  278. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  279. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  280. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  281. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  282. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  283. package/folder/useCases/CreateFolder/index.js +20 -0
  284. package/folder/useCases/CreateFolder/index.js.map +1 -0
  285. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  286. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  287. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  288. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  289. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  290. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  291. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  292. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  293. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  294. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  295. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  296. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  297. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  298. package/folder/useCases/DeleteFolder/index.js +20 -0
  299. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  300. package/folder/useCases/GetAncestors/GetAncestors.d.ts +9 -0
  301. package/folder/useCases/GetAncestors/GetAncestors.js +77 -0
  302. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  303. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +7 -0
  304. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  305. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  306. package/folder/useCases/GetAncestors/index.d.ts +9 -0
  307. package/folder/useCases/GetAncestors/index.js +16 -0
  308. package/folder/useCases/GetAncestors/index.js.map +1 -0
  309. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  310. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  311. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  312. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +25 -0
  313. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  314. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  315. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  316. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  317. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  318. package/folder/useCases/GetFolder/index.d.ts +13 -0
  319. package/folder/useCases/GetFolder/index.js +19 -0
  320. package/folder/useCases/GetFolder/index.js.map +1 -0
  321. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  322. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  323. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  324. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  325. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  326. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  327. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  328. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  329. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  330. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  331. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  332. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  333. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  334. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  335. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  336. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  337. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  338. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  339. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  340. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  341. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  342. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  343. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  344. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  345. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  346. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  347. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  348. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  349. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  350. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  351. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  352. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  353. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  354. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  355. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  356. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  357. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  358. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  359. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  360. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  361. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  362. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  363. package/folder/useCases/ListFolders/index.d.ts +13 -0
  364. package/folder/useCases/ListFolders/index.js +19 -0
  365. package/folder/useCases/ListFolders/index.js.map +1 -0
  366. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  367. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  368. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  369. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  370. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  371. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  372. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  373. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  374. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  375. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +26 -0
  376. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  377. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  378. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  379. package/folder/useCases/UpdateFolder/index.js +20 -0
  380. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  381. package/folder/useCases/index.d.ts +8 -0
  382. package/folder/useCases/index.js +95 -0
  383. package/folder/useCases/index.js.map +1 -0
  384. package/index.d.ts +4 -1
  385. package/index.js +15 -3
  386. package/index.js.map +1 -1
  387. package/package.json +33 -37
  388. package/plugins/AcoAppModifierPlugin.d.ts +3 -3
  389. package/plugins/AcoAppModifierPlugin.js.map +1 -1
  390. package/plugins/AcoAppRegisterPlugin.d.ts +1 -1
  391. package/plugins/AcoAppRegisterPlugin.js.map +1 -1
  392. package/plugins/index.js.map +1 -1
  393. package/record/graphql/createAppResolvers.d.ts +2 -2
  394. package/record/graphql/createAppResolvers.js.map +1 -1
  395. package/record/graphql/createAppSchema.d.ts +2 -2
  396. package/record/graphql/createAppSchema.js +4 -5
  397. package/record/graphql/createAppSchema.js.map +1 -1
  398. package/record/record.crud.d.ts +2 -2
  399. package/record/record.crud.js +10 -10
  400. package/record/record.crud.js.map +1 -1
  401. package/record/record.gql.d.ts +1 -1
  402. package/record/record.gql.js.map +1 -1
  403. package/record/record.model.d.ts +3 -3
  404. package/record/record.model.js +13 -8
  405. package/record/record.model.js.map +1 -1
  406. package/record/record.so.d.ts +2 -2
  407. package/record/record.so.js +110 -95
  408. package/record/record.so.js.map +1 -1
  409. package/record/record.types.d.ts +13 -13
  410. package/record/record.types.js.map +1 -1
  411. package/types.d.ts +30 -21
  412. package/types.js +13 -2
  413. package/types.js.map +1 -1
  414. package/utils/FoldersCacheFactory.d.ts +10 -0
  415. package/utils/FoldersCacheFactory.js +31 -0
  416. package/utils/FoldersCacheFactory.js.map +1 -0
  417. package/utils/ListCache.d.ts +23 -0
  418. package/utils/ListCache.js +31 -0
  419. package/utils/ListCache.js.map +1 -0
  420. package/utils/ListFoldersRepository.d.ts +10 -0
  421. package/utils/ListFoldersRepository.js +35 -0
  422. package/utils/ListFoldersRepository.js.map +1 -0
  423. package/utils/Path.d.ts +3 -0
  424. package/utils/Path.js +18 -0
  425. package/utils/Path.js.map +1 -0
  426. package/utils/acoRecordId.js.map +1 -1
  427. package/utils/compress.d.ts +4 -0
  428. package/utils/compress.js +19 -0
  429. package/utils/compress.js.map +1 -0
  430. package/utils/createListSort.d.ts +3 -2
  431. package/utils/createListSort.js +3 -1
  432. package/utils/createListSort.js.map +1 -1
  433. package/utils/createModelField.d.ts +1 -1
  434. package/utils/createModelField.js.map +1 -1
  435. package/utils/createOperationsWrapper.d.ts +2 -2
  436. package/utils/createOperationsWrapper.js +5 -9
  437. package/utils/createOperationsWrapper.js.map +1 -1
  438. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
  439. package/utils/decorators/CmsEntriesCrudDecorators.js +106 -128
  440. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  441. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  442. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  443. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  444. package/utils/decorators/ListEntriesFactory.d.ts +16 -0
  445. package/utils/decorators/ListEntriesFactory.js +107 -0
  446. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  447. package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +23 -0
  448. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +54 -0
  449. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -0
  450. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  451. package/utils/decorators/hasRootFolderId.js +27 -0
  452. package/utils/decorators/hasRootFolderId.js.map +1 -0
  453. package/utils/decorators/isPageModel.d.ts +5 -0
  454. package/utils/decorators/isPageModel.js +20 -0
  455. package/utils/decorators/isPageModel.js.map +1 -0
  456. package/utils/ensureAuthentication.d.ts +1 -1
  457. package/utils/ensureAuthentication.js.map +1 -1
  458. package/utils/modelFactory.d.ts +1 -1
  459. package/utils/modelFactory.js.map +1 -1
  460. package/utils/pickEntryFieldValues.d.ts +1 -1
  461. package/utils/pickEntryFieldValues.js +2 -3
  462. package/utils/pickEntryFieldValues.js.map +1 -1
  463. package/utils/resolve.js.map +1 -1
  464. package/fields/index.d.ts +0 -2
  465. package/fields/index.js +0 -14
  466. package/fields/index.js.map +0 -1
  467. package/fields/location.d.ts +0 -2
  468. package/fields/location.js +0 -46
  469. package/fields/location.js.map +0 -1
  470. package/utils/FolderLevelPermissions.d.ts +0 -71
  471. package/utils/FolderLevelPermissions.js +0 -353
  472. package/utils/FolderLevelPermissions.js.map +0 -1
  473. package/utils/decorators/constants.d.ts +0 -1
  474. package/utils/decorators/constants.js +0 -10
  475. package/utils/decorators/constants.js.map +0 -1
  476. package/utils/decorators/where.d.ts +0 -14
  477. package/utils/decorators/where.js +0 -52
  478. package/utils/decorators/where.js.map +0 -1
  479. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  480. package/utils/getFolderAndItsAncestors.js +0 -53
  481. package/utils/getFolderAndItsAncestors.js.map +0 -1
  482. package/utils/isInstallationPending.d.ts +0 -4
  483. package/utils/isInstallationPending.js +0 -23
  484. package/utils/isInstallationPending.js.map +0 -1
@@ -0,0 +1,36 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import type { CmsPrivateModelFull } from "@webiny/api-headless-cms";
3
+ import type { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
4
+ export type CmsModelField = Omit<BaseModelField, "storageId"> & {
5
+ modelIds?: string[];
6
+ };
7
+ export interface IFolderModelFieldsModifier {
8
+ setFields: (fields: BaseModelField[]) => void;
9
+ addField: (field: CmsModelField) => void;
10
+ }
11
+ export declare class FolderModelFieldsModifier implements IFolderModelFieldsModifier {
12
+ private fields;
13
+ private readonly namespace;
14
+ constructor(namespace: string);
15
+ setFields(fields: BaseModelField[]): void;
16
+ addField(field: CmsModelField): void;
17
+ }
18
+ interface CmsModelModifierCallableParams {
19
+ modifier: IFolderModelFieldsModifier;
20
+ }
21
+ export interface CmsModelModifierCallable {
22
+ (params: CmsModelModifierCallableParams): Promise<void> | void;
23
+ }
24
+ interface FolderCmsModelModifierPluginParams {
25
+ modifier: IFolderModelFieldsModifier;
26
+ callback: CmsModelModifierCallable;
27
+ }
28
+ export declare class FolderCmsModelModifierPlugin extends Plugin {
29
+ static type: string;
30
+ private readonly modifier;
31
+ private readonly callback;
32
+ constructor(params: FolderCmsModelModifierPluginParams);
33
+ modifyModel(model: CmsPrivateModelFull): Promise<void>;
34
+ }
35
+ export declare const createFolderModelModifier: (callback: CmsModelModifierCallable) => FolderCmsModelModifierPlugin;
36
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderModelModifier = exports.FolderModelFieldsModifier = exports.FolderCmsModelModifierPlugin = void 0;
7
+ var _plugins = require("@webiny/plugins");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
9
+ var _folder = require("./folder.model");
10
+ class FolderModelFieldsModifier {
11
+ fields = [];
12
+ constructor(namespace) {
13
+ this.namespace = namespace;
14
+ }
15
+ setFields(fields) {
16
+ this.fields = fields;
17
+ }
18
+ addField(field) {
19
+ const {
20
+ tags,
21
+ ...rest
22
+ } = field;
23
+ this.fields.push({
24
+ ...rest,
25
+ storageId: `${field.type}@${this.namespace}_${field.id}`,
26
+ tags: (tags ?? []).concat([`$namespace:${this.namespace}`])
27
+ });
28
+ }
29
+ }
30
+ exports.FolderModelFieldsModifier = FolderModelFieldsModifier;
31
+ class FolderCmsModelModifierPlugin extends _plugins.Plugin {
32
+ static type = "aco.folder.cms-model-modifier";
33
+ constructor(params) {
34
+ super();
35
+ this.modifier = params.modifier;
36
+ this.callback = params.callback;
37
+ }
38
+ async modifyModel(model) {
39
+ if (model.modelId !== _folder.FOLDER_MODEL_ID) {
40
+ return;
41
+ }
42
+ let extensionsField = model.fields.find(field => field.fieldId === "extensions");
43
+ if (!extensionsField) {
44
+ extensionsField = (0, _apiHeadlessCms.createModelField)({
45
+ label: "Extensions",
46
+ type: "object",
47
+ settings: {
48
+ layout: [],
49
+ fields: []
50
+ }
51
+ });
52
+ model.fields.push(extensionsField);
53
+ }
54
+ this.modifier.setFields(extensionsField.settings.fields);
55
+ await this.callback({
56
+ modifier: this.modifier
57
+ });
58
+ }
59
+ }
60
+ exports.FolderCmsModelModifierPlugin = FolderCmsModelModifierPlugin;
61
+ const createFolderModelModifier = callback => {
62
+ const modifier = new FolderModelFieldsModifier("global");
63
+ return new FolderCmsModelModifierPlugin({
64
+ callback,
65
+ modifier
66
+ });
67
+ };
68
+ exports.createFolderModelModifier = createFolderModelModifier;
69
+
70
+ //# sourceMappingURL=createFolderModelModifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_apiHeadlessCms","_folder","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","exports","FolderCmsModelModifierPlugin","Plugin","params","modifier","callback","modifyModel","model","modelId","FOLDER_MODEL_ID","extensionsField","find","fieldId","createModelField","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AASO,MAAMG,yBAAyB,CAAuC;EACjEC,MAAM,GAAqB,EAAE;EAGrCC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,SAASA,CAACH,MAAwB,EAAE;IAChC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAI,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAE/B,IAAI,CAACL,MAAM,CAACQ,IAAI,CAAC;MACb,GAAGD,IAAI;MACPE,SAAS,EAAE,GAAGJ,KAAK,CAACK,IAAI,IAAI,IAAI,CAACR,SAAS,IAAIG,KAAK,CAACM,EAAE,EAAE;MACxDL,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEM,MAAM,CAAC,CAAC,cAAc,IAAI,CAACV,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC;EACN;AACJ;AAACW,OAAA,CAAAd,yBAAA,GAAAA,yBAAA;AAeM,MAAMe,4BAA4B,SAASC,eAAM,CAAC;EACrD,OAAuBL,IAAI,GAAG,+BAA+B;EAI7DT,WAAWA,CAACe,MAA0C,EAAE;IACpD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAC/B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;EACnC;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACC,OAAO,KAAKC,uBAAe,EAAE;MACnC;IACJ;IAEA,IAAIC,eAAe,GAAGH,KAAK,CAACpB,MAAM,CAACwB,IAAI,CAACnB,KAAK,IAAIA,KAAK,CAACoB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,gCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBjB,IAAI,EAAE,QAAQ;QACdkB,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACV7B,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFoB,KAAK,CAACpB,MAAM,CAACQ,IAAI,CAACe,eAAe,CAAC;IACtC;IAEA,IAAI,CAACN,QAAQ,CAACd,SAAS,CAACoB,eAAe,CAACK,QAAQ,CAAE5B,MAAO,CAAC;IAE1D,MAAM,IAAI,CAACkB,QAAQ,CAAC;MAAED,QAAQ,EAAE,IAAI,CAACA;IAAS,CAAC,CAAC;EACpD;AACJ;AAACJ,OAAA,CAAAC,4BAAA,GAAAA,4BAAA;AAEM,MAAMgB,yBAAyB,GAAIZ,QAAkC,IAAK;EAC7E,MAAMD,QAAQ,GAAG,IAAIlB,yBAAyB,CAAC,QAAQ,CAAC;EAExD,OAAO,IAAIe,4BAA4B,CAAC;IACpCI,QAAQ;IACRD;EACJ,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAiB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ export interface CreateFolderTypeDefsParams {
3
+ model: CmsModel;
4
+ models: CmsModel[];
5
+ plugins: CmsFieldTypePlugins;
6
+ }
7
+ export declare const createFolderTypeDefs: (params: CreateFolderTypeDefsParams) => string;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderTypeDefs = void 0;
7
+ var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
8
+ var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
9
+ const removeFieldRequiredValidation = field => {
10
+ if (field.validation) {
11
+ field.validation = field.validation.filter(validation => validation.name !== "required");
12
+ }
13
+ if (field.listValidation) {
14
+ field.listValidation = field.listValidation.filter(v => v.name !== "required");
15
+ }
16
+ return field;
17
+ };
18
+ const createUpdateFields = fields => {
19
+ return fields.reduce((collection, field) => {
20
+ collection.push(removeFieldRequiredValidation({
21
+ ...field
22
+ }));
23
+ return collection;
24
+ }, []);
25
+ };
26
+ const createFolderTypeDefs = params => {
27
+ const {
28
+ model,
29
+ models,
30
+ plugins: fieldTypePlugins
31
+ } = params;
32
+ const {
33
+ fields
34
+ } = model;
35
+ const fieldTypes = (0, _renderFields.renderFields)({
36
+ models,
37
+ model,
38
+ fields,
39
+ type: "manage",
40
+ fieldTypePlugins
41
+ });
42
+ const inputCreateFields = (0, _renderInputFields.renderInputFields)({
43
+ models,
44
+ model,
45
+ fields,
46
+ fieldTypePlugins
47
+ });
48
+ const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
49
+ models,
50
+ model,
51
+ fields: createUpdateFields(fields),
52
+ fieldTypePlugins
53
+ });
54
+ return /* GraphQL */`
55
+ ${fieldTypes.map(f => f.typeDefs).join("\n")}
56
+
57
+ type CompressedResponse {
58
+ compression: String
59
+ value: String
60
+ }
61
+
62
+ type Folder {
63
+ id: ID!
64
+ # Tells us if the current user can manage folder structure.
65
+ canManageStructure: Boolean
66
+
67
+ # Tells us if the current user can manage folder permissions.
68
+ canManagePermissions: Boolean
69
+
70
+ # Tells us if the current user can manage folder content.
71
+ canManageContent: Boolean
72
+
73
+ # Tells us if the folder contains non-inherited permissions.
74
+ hasNonInheritedPermissions: Boolean
75
+
76
+ createdOn: DateTime
77
+ modifiedOn: DateTime
78
+ savedOn: DateTime
79
+ createdBy: AcoUser
80
+ modifiedBy: AcoUser
81
+ savedBy: AcoUser
82
+
83
+ ${fieldTypes.map(f => f.fields).join("\n")}
84
+ }
85
+
86
+ ${inputCreateFields.map(f => f.typeDefs).join("\n")}
87
+
88
+ input FolderCreateInput {
89
+ # Pass an ID if you want to create a folder with a specific ID.
90
+ id: ID
91
+
92
+ ${inputCreateFields.map(f => f.fields).join("\n")}
93
+ }
94
+
95
+ input FolderUpdateInput {
96
+ ${inputUpdateFields.map(f => f.fields).join("\n")}
97
+ }
98
+
99
+ input FoldersListWhereInput {
100
+ type: String!
101
+ parentId: ID
102
+ parentId_in: [ID]
103
+ slug: String
104
+ slug_not: String
105
+ slug_contains: String
106
+ slug_not_contains: String
107
+ slug_in: [String]
108
+ slug_not_in: [String]
109
+ slug_startsWith: String
110
+ slug_not_startsWith: String
111
+ path: String
112
+ path_not: String
113
+ path_contains: String
114
+ path_not_contains: String
115
+ path_in: [String]
116
+ path_not_in: [String]
117
+ path_startsWith: String
118
+ path_not_startsWith: String
119
+ createdBy: ID
120
+ }
121
+
122
+ type FolderResponse {
123
+ data: Folder
124
+ error: AcoError
125
+ }
126
+
127
+ type FoldersListResponse {
128
+ data: [Folder]
129
+ error: AcoError
130
+ meta: AcoMeta
131
+ }
132
+
133
+ type FoldersListCompressedResponse {
134
+ data: CompressedResponse
135
+ error: AcoError
136
+ }
137
+
138
+ type FoldersHierarchyData {
139
+ parents: [Folder]
140
+ siblings: [Folder]
141
+ }
142
+
143
+ type FoldersHierarchyResponse {
144
+ data: FoldersHierarchyData
145
+ error: AcoError
146
+ }
147
+
148
+ type FolderLevelPermissionsTarget {
149
+ id: ID!
150
+ type: String!
151
+ target: ID!
152
+ name: String!
153
+ meta: JSON
154
+ }
155
+
156
+ type FolderLevelPermissionsTargetsListMeta {
157
+ totalCount: Int!
158
+ }
159
+
160
+ type FolderLevelPermissionsTargetsListResponse {
161
+ data: [FolderLevelPermissionsTarget]
162
+ meta: FolderLevelPermissionsTargetsListMeta
163
+ error: AcoError
164
+ }
165
+
166
+ type FolderModelResponse {
167
+ data: JSON
168
+ error: AcoError
169
+ }
170
+
171
+ extend type AcoQuery {
172
+ getFolderModel: FolderModelResponse!
173
+ getFolder(id: ID!): FolderResponse
174
+ listFolders(
175
+ where: FoldersListWhereInput!
176
+ limit: Int
177
+ after: String
178
+ sort: AcoSort
179
+ ): FoldersListResponse
180
+ listFoldersCompressed(
181
+ where: FoldersListWhereInput!
182
+ limit: Int
183
+ after: String
184
+ sort: AcoSort
185
+ ): FoldersListCompressedResponse
186
+ getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse
187
+ listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
188
+ }
189
+
190
+ extend type AcoMutation {
191
+ createFolder(data: FolderCreateInput!): FolderResponse
192
+ updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
193
+ deleteFolder(id: ID!): AcoBooleanResponse
194
+ }
195
+
196
+ extend type AcoFolder_Permissions {
197
+ inheritedFrom: ID
198
+ }
199
+
200
+ extend input AcoFolder_PermissionsInput {
201
+ inheritedFrom: ID
202
+ }
203
+ `;
204
+ };
205
+ exports.createFolderTypeDefs = createFolderTypeDefs;
206
+
207
+ //# sourceMappingURL=createFolderTypeDefs.js.map
@@ -0,0 +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 type { 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 # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \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 slug: String\n slug_not: String\n slug_contains: String\n slug_not_contains: String\n slug_in: [String]\n slug_not_in: [String]\n slug_startsWith: String\n slug_not_startsWith: String\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: 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 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;AACA;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;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":[]}
@@ -0,0 +1,8 @@
1
+ import type { AcoContext, Folder } from "../types";
2
+ interface EnsureFolderIsEmptyParams {
3
+ context: AcoContext;
4
+ folder: Pick<Folder, "id" | "type">;
5
+ hasContentCallback: () => boolean | Promise<boolean>;
6
+ }
7
+ export declare const ensureFolderIsEmpty: ({ context, folder, hasContentCallback }: EnsureFolderIsEmptyParams) => Promise<void>;
8
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ensureFolderIsEmpty = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _apiSecurity = require("@webiny/api-security");
10
+ const ensureFolderIsEmpty = async ({
11
+ context,
12
+ folder,
13
+ hasContentCallback
14
+ }) => {
15
+ const hasFoldersCallback = async () => {
16
+ const {
17
+ id,
18
+ type
19
+ } = folder;
20
+ const [folders] = await context.aco.folder.list({
21
+ where: {
22
+ type,
23
+ parentId: id
24
+ },
25
+ limit: 1
26
+ });
27
+ return folders.length > 0;
28
+ };
29
+ const [hasFolders, hasContent] = await Promise.all([hasFoldersCallback(), hasContentCallback()]);
30
+ if (hasFolders || hasContent) {
31
+ throw new _error.default("Delete all child folders and entries before proceeding.", "DELETE_FOLDER_WITH_CHILDREN", {
32
+ folder,
33
+ hasFolders,
34
+ hasContent
35
+ });
36
+ }
37
+
38
+ // Let's also check if there are folders / content that are not visible because of folder permissions.
39
+ if (!context.aco.folderLevelPermissions.canUseFolderLevelPermissions()) {
40
+ // If folder level permissions are not enabled, we can skip this check. This is because
41
+ // in that case, all folders and content are visible to the user.
42
+ return;
43
+ }
44
+ const [hasInvisibleFolders, hasInvisibleContent] = await context.security.withoutAuthorization(async () => {
45
+ const [hasFolders, hasContent] = await Promise.all([hasFoldersCallback(), hasContentCallback()]);
46
+ return [hasFolders, hasContent];
47
+ });
48
+
49
+ // In case there are invisible folders or content, we'll throw a different error.
50
+ // This is to prevent users from deleting folders that contain content they can't see.
51
+ if (hasInvisibleFolders || hasInvisibleContent) {
52
+ throw new _apiSecurity.NotAuthorizedError({
53
+ data: {
54
+ folder,
55
+ hasFolders: hasInvisibleFolders,
56
+ hasContent: hasInvisibleContent
57
+ }
58
+ });
59
+ }
60
+ };
61
+ exports.ensureFolderIsEmpty = ensureFolderIsEmpty;
62
+
63
+ //# sourceMappingURL=ensureFolderIsEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_apiSecurity","ensureFolderIsEmpty","context","folder","hasContentCallback","hasFoldersCallback","id","type","folders","aco","list","where","parentId","limit","length","hasFolders","hasContent","Promise","all","WebinyError","folderLevelPermissions","canUseFolderLevelPermissions","hasInvisibleFolders","hasInvisibleContent","security","withoutAuthorization","NotAuthorizedError","data","exports"],"sources":["ensureFolderIsEmpty.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext, Folder } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\ninterface EnsureFolderIsEmptyParams {\n context: AcoContext;\n folder: Pick<Folder, \"id\" | \"type\">;\n hasContentCallback: () => boolean | Promise<boolean>;\n}\n\nexport const ensureFolderIsEmpty = async ({\n context,\n folder,\n hasContentCallback\n}: EnsureFolderIsEmptyParams) => {\n const hasFoldersCallback = async () => {\n const { id, type } = folder;\n const [folders] = await context.aco.folder.list({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n return folders.length > 0;\n };\n\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n\n if (hasFolders || hasContent) {\n throw new WebinyError(\n \"Delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder,\n hasFolders,\n hasContent\n }\n );\n }\n\n // Let's also check if there are folders / content that are not visible because of folder permissions.\n if (!context.aco.folderLevelPermissions.canUseFolderLevelPermissions()) {\n // If folder level permissions are not enabled, we can skip this check. This is because\n // in that case, all folders and content are visible to the user.\n return;\n }\n\n const [hasInvisibleFolders, hasInvisibleContent] = await context.security.withoutAuthorization(\n async () => {\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n return [hasFolders, hasContent];\n }\n );\n\n // In case there are invisible folders or content, we'll throw a different error.\n // This is to prevent users from deleting folders that contain content they can't see.\n if (hasInvisibleFolders || hasInvisibleContent) {\n throw new NotAuthorizedError({\n data: {\n folder,\n hasFolders: hasInvisibleFolders,\n hasContent: hasInvisibleContent\n }\n });\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAQO,MAAME,mBAAmB,GAAG,MAAAA,CAAO;EACtCC,OAAO;EACPC,MAAM;EACNC;AACuB,CAAC,KAAK;EAC7B,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACnC,MAAM;MAAEC,EAAE;MAAEC;IAAK,CAAC,GAAGJ,MAAM;IAC3B,MAAM,CAACK,OAAO,CAAC,GAAG,MAAMN,OAAO,CAACO,GAAG,CAACN,MAAM,CAACO,IAAI,CAAC;MAC5CC,KAAK,EAAE;QACHJ,IAAI;QACJK,QAAQ,EAAEN;MACd,CAAC;MACDO,KAAK,EAAE;IACX,CAAC,CAAC;IAEF,OAAOL,OAAO,CAACM,MAAM,GAAG,CAAC;EAC7B,CAAC;EAED,MAAM,CAACC,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;EAEF,IAAIW,UAAU,IAAIC,UAAU,EAAE;IAC1B,MAAM,IAAIG,cAAW,CACjB,yDAAyD,EACzD,6BAA6B,EAC7B;MACIhB,MAAM;MACNY,UAAU;MACVC;IACJ,CACJ,CAAC;EACL;;EAEA;EACA,IAAI,CAACd,OAAO,CAACO,GAAG,CAACW,sBAAsB,CAACC,4BAA4B,CAAC,CAAC,EAAE;IACpE;IACA;IACA;EACJ;EAEA,MAAM,CAACC,mBAAmB,EAAEC,mBAAmB,CAAC,GAAG,MAAMrB,OAAO,CAACsB,QAAQ,CAACC,oBAAoB,CAC1F,YAAY;IACR,MAAM,CAACV,UAAU,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/Cb,kBAAkB,CAAC,CAAC,EACpBD,kBAAkB,CAAC,CAAC,CACvB,CAAC;IACF,OAAO,CAACW,UAAU,EAAEC,UAAU,CAAC;EACnC,CACJ,CAAC;;EAED;EACA;EACA,IAAIM,mBAAmB,IAAIC,mBAAmB,EAAE;IAC5C,MAAM,IAAIG,+BAAkB,CAAC;MACzBC,IAAI,EAAE;QACFxB,MAAM;QACNY,UAAU,EAAEO,mBAAmB;QAC/BN,UAAU,EAAEO;MAChB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACK,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,10 +1,8 @@
1
- import { CreateAcoParams } from "../types";
2
- import { AcoFolderCrud } from "./folder.types";
3
- import { AdminUser } from "@webiny/api-admin-users/types";
4
- import { Team } from "@webiny/api-security/types";
1
+ import type { AcoFolderCrud } from "./folder.types";
2
+ import type { CreateAcoParams } from "../types";
3
+ import { type AcoContext } from "../types";
5
4
  interface CreateFolderCrudMethodsParams extends CreateAcoParams {
6
- listAdminUsers: () => Promise<AdminUser[]>;
7
- listTeams: () => Promise<Team[]>;
5
+ context: AcoContext;
8
6
  }
9
- export declare const createFolderCrudMethods: ({ storageOperations, folderLevelPermissions, listAdminUsers, listTeams }: CreateFolderCrudMethodsParams) => AcoFolderCrud;
7
+ export declare const createFolderCrudMethods: ({ storageOperations, folderLevelPermissions, context }: CreateFolderCrudMethodsParams) => AcoFolderCrud;
10
8
  export {};