@webiny/api-aco 0.0.0-unstable.2af142b57e → 0.0.0-unstable.3bc8100a7f

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 (500) hide show
  1. package/README.md +6 -6
  2. package/apps/AcoApp.d.ts +21 -0
  3. package/apps/AcoApp.js +143 -0
  4. package/apps/AcoApp.js.map +1 -0
  5. package/apps/AcoApps.d.ts +10 -0
  6. package/apps/AcoApps.js +75 -0
  7. package/apps/AcoApps.js.map +1 -0
  8. package/apps/app.gql.d.ts +3 -0
  9. package/apps/app.gql.js +59 -0
  10. package/apps/app.gql.js.map +1 -0
  11. package/apps/index.d.ts +2 -0
  12. package/apps/index.js +29 -0
  13. package/apps/index.js.map +1 -0
  14. package/constants.d.ts +3 -0
  15. package/constants.js +26 -0
  16. package/constants.js.map +1 -0
  17. package/createAcoContext.d.ts +8 -2
  18. package/createAcoContext.js +97 -30
  19. package/createAcoContext.js.map +1 -1
  20. package/createAcoGraphQL.d.ts +3 -2
  21. package/createAcoGraphQL.js +86 -14
  22. package/createAcoGraphQL.js.map +1 -1
  23. package/createAcoHooks.d.ts +1 -1
  24. package/createAcoHooks.js +11 -3
  25. package/createAcoHooks.js.map +1 -1
  26. package/createAcoModels.d.ts +2 -2
  27. package/createAcoModels.js +13 -45
  28. package/createAcoModels.js.map +1 -1
  29. package/createAcoStorageOperations.d.ts +6 -5
  30. package/createAcoStorageOperations.js +14 -9
  31. package/createAcoStorageOperations.js.map +1 -1
  32. package/createAcoTasks.d.ts +1 -0
  33. package/createAcoTasks.js +13 -0
  34. package/createAcoTasks.js.map +1 -0
  35. package/filter/filter.crud.d.ts +3 -0
  36. package/filter/filter.crud.js +94 -0
  37. package/filter/filter.crud.js.map +1 -0
  38. package/filter/filter.gql.d.ts +3 -0
  39. package/filter/filter.gql.js +152 -0
  40. package/filter/filter.gql.js.map +1 -0
  41. package/filter/filter.model.d.ts +2 -0
  42. package/filter/filter.model.js +124 -0
  43. package/filter/filter.model.js.map +1 -0
  44. package/filter/filter.so.d.ts +3 -0
  45. package/filter/filter.so.js +98 -0
  46. package/filter/filter.so.js.map +1 -0
  47. package/filter/filter.types.d.ts +95 -0
  48. package/filter/filter.types.js +13 -0
  49. package/filter/filter.types.js.map +1 -0
  50. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  51. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  52. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  53. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  54. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  55. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  56. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  57. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  58. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  59. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  60. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  61. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  62. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  63. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  64. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  65. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  66. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  67. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  68. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  69. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  70. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  71. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  72. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  73. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  74. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  75. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  76. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  77. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  78. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  79. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  80. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  81. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  82. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  83. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  84. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  85. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  86. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  87. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  88. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  89. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  90. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  91. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  92. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  93. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  94. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  95. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  96. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  97. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  98. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  99. package/flp/FolderLevelPermissions/index.js +116 -0
  100. package/flp/FolderLevelPermissions/index.js.map +1 -0
  101. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  102. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +48 -0
  103. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  104. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  105. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  106. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  107. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  108. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  109. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  110. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  111. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +41 -0
  112. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  113. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  114. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  115. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  116. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  117. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  118. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  119. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  120. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  121. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  122. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  123. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  124. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  125. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  126. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  127. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  128. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  129. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  130. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  131. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  132. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  133. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  134. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  135. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  136. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  137. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  138. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  139. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  140. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  141. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  142. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  143. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  144. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  145. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  146. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  147. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  148. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  149. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  150. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  151. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  152. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  153. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  154. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  155. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +6 -0
  156. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +77 -0
  157. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  158. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +9 -0
  159. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +21 -0
  160. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  161. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  162. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +42 -0
  163. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  164. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  165. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  166. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  167. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  168. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  169. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  170. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  171. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  172. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  173. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  174. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  175. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  176. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  177. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  178. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  179. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  180. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  181. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  182. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  183. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  184. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  185. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  186. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  187. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  188. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  189. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  190. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  191. package/flp/flp.crud.d.ts +9 -0
  192. package/flp/flp.crud.js +172 -0
  193. package/flp/flp.crud.js.map +1 -0
  194. package/flp/flp.so.d.ts +26 -0
  195. package/flp/flp.so.js +304 -0
  196. package/flp/flp.so.js.map +1 -0
  197. package/flp/flp.types.d.ts +147 -0
  198. package/flp/flp.types.js +18 -0
  199. package/flp/flp.types.js.map +1 -0
  200. package/flp/hooks/index.d.ts +2 -0
  201. package/flp/hooks/index.js +17 -0
  202. package/flp/hooks/index.js.map +1 -0
  203. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  204. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  205. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  206. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  207. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  208. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  209. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  210. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  211. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  212. package/flp/index.d.ts +5 -0
  213. package/flp/index.js +62 -0
  214. package/flp/index.js.map +1 -0
  215. package/flp/tasks/createFlp.task.d.ts +2 -0
  216. package/flp/tasks/createFlp.task.js +49 -0
  217. package/flp/tasks/createFlp.task.js.map +1 -0
  218. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  219. package/flp/tasks/deleteFlp.task.js +49 -0
  220. package/flp/tasks/deleteFlp.task.js.map +1 -0
  221. package/flp/tasks/index.d.ts +5 -0
  222. package/flp/tasks/index.js +20 -0
  223. package/flp/tasks/index.js.map +1 -0
  224. package/flp/tasks/syncFlp.task.d.ts +2 -0
  225. package/flp/tasks/syncFlp.task.js +126 -0
  226. package/flp/tasks/syncFlp.task.js.map +1 -0
  227. package/flp/tasks/updateFlp.task.d.ts +2 -0
  228. package/flp/tasks/updateFlp.task.js +55 -0
  229. package/flp/tasks/updateFlp.task.js.map +1 -0
  230. package/flp/useCases/CreateFlp.d.ts +7 -0
  231. package/flp/useCases/CreateFlp.js +51 -0
  232. package/flp/useCases/CreateFlp.js.map +1 -0
  233. package/flp/useCases/DeleteFlp.d.ts +6 -0
  234. package/flp/useCases/DeleteFlp.js +30 -0
  235. package/flp/useCases/DeleteFlp.js.map +1 -0
  236. package/flp/useCases/UpdateFlp.d.ts +26 -0
  237. package/flp/useCases/UpdateFlp.js +198 -0
  238. package/flp/useCases/UpdateFlp.js.map +1 -0
  239. package/flp/useCases/index.d.ts +3 -0
  240. package/flp/useCases/index.js +40 -0
  241. package/flp/useCases/index.js.map +1 -0
  242. package/folder/createFolderModelModifier.d.ts +36 -0
  243. package/folder/createFolderModelModifier.js +70 -0
  244. package/folder/createFolderModelModifier.js.map +1 -0
  245. package/folder/createFolderTypeDefs.d.ts +7 -0
  246. package/folder/createFolderTypeDefs.js +207 -0
  247. package/folder/createFolderTypeDefs.js.map +1 -0
  248. package/folder/ensureFolderIsEmpty.d.ts +8 -0
  249. package/folder/ensureFolderIsEmpty.js +63 -0
  250. package/folder/ensureFolderIsEmpty.js.map +1 -0
  251. package/folder/folder.crud.d.ts +8 -3
  252. package/folder/folder.crud.js +114 -49
  253. package/folder/folder.crud.js.map +1 -1
  254. package/folder/folder.gql.d.ts +3 -2
  255. package/folder/folder.gql.js +121 -89
  256. package/folder/folder.gql.js.map +1 -1
  257. package/folder/folder.model.d.ts +2 -4
  258. package/folder/folder.model.js +81 -34
  259. package/folder/folder.model.js.map +1 -1
  260. package/folder/folder.so.d.ts +2 -7
  261. package/folder/folder.so.js +151 -110
  262. package/folder/folder.so.js.map +1 -1
  263. package/folder/folder.types.d.ts +74 -9
  264. package/folder/folder.types.js +3 -1
  265. package/folder/folder.types.js.map +1 -1
  266. package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -0
  267. package/folder/onFolderBeforeDeleteAco.hook.js +54 -0
  268. package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -0
  269. package/folder/onFolderBeforeDeleteFm.hook.d.ts +2 -0
  270. package/folder/onFolderBeforeDeleteFm.hook.js +51 -0
  271. package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -0
  272. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +2 -0
  273. package/folder/onFolderBeforeDeleteHcms.hook.js +58 -0
  274. package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -0
  275. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  276. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  277. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  278. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  279. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  280. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  281. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +25 -0
  282. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  283. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  284. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  285. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  286. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  287. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  288. package/folder/useCases/CreateFolder/index.js +20 -0
  289. package/folder/useCases/CreateFolder/index.js.map +1 -0
  290. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  291. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  292. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  293. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  294. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  295. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  296. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  297. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  298. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  299. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  300. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  301. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  302. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  303. package/folder/useCases/DeleteFolder/index.js +20 -0
  304. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  305. package/folder/useCases/GetAncestors/GetAncestors.d.ts +9 -0
  306. package/folder/useCases/GetAncestors/GetAncestors.js +77 -0
  307. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  308. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +7 -0
  309. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  310. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  311. package/folder/useCases/GetAncestors/index.d.ts +9 -0
  312. package/folder/useCases/GetAncestors/index.js +16 -0
  313. package/folder/useCases/GetAncestors/index.js.map +1 -0
  314. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  315. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  316. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  317. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +25 -0
  318. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  319. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  320. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  321. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  322. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  323. package/folder/useCases/GetFolder/index.d.ts +13 -0
  324. package/folder/useCases/GetFolder/index.js +19 -0
  325. package/folder/useCases/GetFolder/index.js.map +1 -0
  326. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  327. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  328. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  329. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  330. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  331. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  332. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  333. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  334. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  335. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  336. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  337. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  338. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  339. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  340. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  341. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  342. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  343. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  344. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  345. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  346. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  347. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  348. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  349. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  350. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  351. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  352. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  353. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  354. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  355. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  356. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  357. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  358. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  359. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  360. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  361. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  362. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  363. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  364. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  365. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  366. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  367. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  368. package/folder/useCases/ListFolders/index.d.ts +13 -0
  369. package/folder/useCases/ListFolders/index.js +19 -0
  370. package/folder/useCases/ListFolders/index.js.map +1 -0
  371. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  372. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  373. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  374. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  375. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  376. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  377. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  378. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  379. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  380. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +26 -0
  381. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  382. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  383. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  384. package/folder/useCases/UpdateFolder/index.js +20 -0
  385. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  386. package/folder/useCases/index.d.ts +8 -0
  387. package/folder/useCases/index.js +95 -0
  388. package/folder/useCases/index.js.map +1 -0
  389. package/index.d.ts +12 -1
  390. package/index.js +70 -6
  391. package/index.js.map +1 -1
  392. package/package.json +36 -33
  393. package/plugins/AcoAppModifierPlugin.d.ts +43 -0
  394. package/plugins/AcoAppModifierPlugin.js +58 -0
  395. package/plugins/AcoAppModifierPlugin.js.map +1 -0
  396. package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
  397. package/plugins/AcoAppRegisterPlugin.js +21 -0
  398. package/plugins/AcoAppRegisterPlugin.js.map +1 -0
  399. package/plugins/index.d.ts +2 -0
  400. package/plugins/index.js +29 -0
  401. package/plugins/index.js.map +1 -0
  402. package/record/graphql/createAppResolvers.d.ts +14 -0
  403. package/record/graphql/createAppResolvers.js +115 -0
  404. package/record/graphql/createAppResolvers.js.map +1 -0
  405. package/record/graphql/createAppSchema.d.ts +9 -0
  406. package/record/graphql/createAppSchema.js +146 -0
  407. package/record/graphql/createAppSchema.js.map +1 -0
  408. package/record/record.crud.d.ts +2 -2
  409. package/record/record.crud.js +49 -13
  410. package/record/record.crud.js.map +1 -1
  411. package/record/record.gql.d.ts +8 -3
  412. package/record/record.gql.js +38 -113
  413. package/record/record.gql.js.map +1 -1
  414. package/record/record.model.d.ts +8 -4
  415. package/record/record.model.js +50 -34
  416. package/record/record.model.js.map +1 -1
  417. package/record/record.so.d.ts +2 -7
  418. package/record/record.so.js +136 -65
  419. package/record/record.so.js.map +1 -1
  420. package/record/record.types.d.ts +75 -23
  421. package/record/record.types.js +3 -1
  422. package/record/record.types.js.map +1 -1
  423. package/types.d.ts +90 -11
  424. package/types.js +67 -1
  425. package/types.js.map +1 -1
  426. package/utils/FoldersCacheFactory.d.ts +10 -0
  427. package/utils/FoldersCacheFactory.js +31 -0
  428. package/utils/FoldersCacheFactory.js.map +1 -0
  429. package/utils/ListCache.d.ts +23 -0
  430. package/utils/ListCache.js +31 -0
  431. package/utils/ListCache.js.map +1 -0
  432. package/utils/ListFoldersRepository.d.ts +10 -0
  433. package/utils/ListFoldersRepository.js +35 -0
  434. package/utils/ListFoldersRepository.js.map +1 -0
  435. package/utils/Path.d.ts +3 -0
  436. package/utils/Path.js +18 -0
  437. package/utils/Path.js.map +1 -0
  438. package/utils/acoRecordId.d.ts +6 -0
  439. package/utils/acoRecordId.js +35 -0
  440. package/utils/acoRecordId.js.map +1 -0
  441. package/utils/compress.d.ts +4 -0
  442. package/utils/compress.js +19 -0
  443. package/utils/compress.js.map +1 -0
  444. package/utils/createListSort.d.ts +3 -0
  445. package/utils/createListSort.js +17 -0
  446. package/utils/createListSort.js.map +1 -0
  447. package/utils/createModelField.d.ts +1 -2
  448. package/utils/createModelField.js +5 -5
  449. package/utils/createModelField.js.map +1 -1
  450. package/utils/createOperationsWrapper.d.ts +9 -0
  451. package/utils/createOperationsWrapper.js +27 -0
  452. package/utils/createOperationsWrapper.js.map +1 -0
  453. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  454. package/utils/decorators/CmsEntriesCrudDecorators.js +210 -0
  455. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  456. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  457. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  458. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  459. package/utils/decorators/ListEntriesFactory.d.ts +16 -0
  460. package/utils/decorators/ListEntriesFactory.js +107 -0
  461. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  462. package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +23 -0
  463. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +54 -0
  464. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -0
  465. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  466. package/utils/decorators/hasRootFolderId.js +27 -0
  467. package/utils/decorators/hasRootFolderId.js.map +1 -0
  468. package/utils/decorators/isPageModel.d.ts +5 -0
  469. package/utils/decorators/isPageModel.js +20 -0
  470. package/utils/decorators/isPageModel.js.map +1 -0
  471. package/utils/ensureAuthentication.d.ts +2 -0
  472. package/utils/ensureAuthentication.js +16 -0
  473. package/utils/ensureAuthentication.js.map +1 -0
  474. package/utils/modelFactory.d.ts +2 -4
  475. package/utils/modelFactory.js +7 -8
  476. package/utils/modelFactory.js.map +1 -1
  477. package/utils/pickEntryFieldValues.d.ts +3 -0
  478. package/utils/pickEntryFieldValues.js +30 -0
  479. package/utils/pickEntryFieldValues.js.map +1 -0
  480. package/utils/resolve.d.ts +2 -1
  481. package/utils/resolve.js +13 -2
  482. package/utils/resolve.js.map +1 -1
  483. package/createAcoCrud.d.ts +0 -2
  484. package/createAcoCrud.js +0 -17
  485. package/createAcoCrud.js.map +0 -1
  486. package/createAcoFields.d.ts +0 -2
  487. package/createAcoFields.js +0 -40
  488. package/createAcoFields.js.map +0 -1
  489. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  490. package/folder/onFolderBeforeDelete.hook.js +0 -53
  491. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  492. package/utils/fieldResolver.d.ts +0 -16
  493. package/utils/fieldResolver.js +0 -44
  494. package/utils/fieldResolver.js.map +0 -1
  495. package/utils/getFieldValues.d.ts +0 -2
  496. package/utils/getFieldValues.js +0 -12
  497. package/utils/getFieldValues.js.map +0 -1
  498. package/utils/isInstallationPending.d.ts +0 -4
  499. package/utils/isInstallationPending.js +0 -21
  500. package/utils/isInstallationPending.js.map +0 -1
@@ -5,152 +5,193 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createFolderOperations = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
+ var _omit = _interopRequireDefault(require("lodash/omit"));
9
9
  var _error = _interopRequireDefault(require("@webiny/error"));
10
10
  var _folder = require("./folder.model");
11
- var _createAcoStorageOperations = require("../createAcoStorageOperations");
12
- var _getFieldValues = require("../utils/getFieldValues");
11
+ var _createListSort = require("../utils/createListSort");
12
+ var _createOperationsWrapper = require("../utils/createOperationsWrapper");
13
+ var _pickEntryFieldValues = require("../utils/pickEntryFieldValues");
14
+ var _Path = require("../utils/Path");
15
+ var _constants = require("@webiny/api-headless-cms/constants");
13
16
  const createFolderOperations = params => {
14
17
  const {
15
- cms,
16
- security
18
+ cms
17
19
  } = params;
18
- const getFolderModel = async () => {
19
- security.disableAuthorization();
20
- const model = await cms.getModel(_folder.FOLDER_MODEL_ID);
21
- security.enableAuthorization();
22
- if (!model) {
23
- throw new _error.default(`Could not find "${_folder.FOLDER_MODEL_ID}" model.`, "MODEL_NOT_FOUND_ERROR");
24
- }
25
- return model;
26
- };
27
- const getFolder = async ({
20
+ const {
21
+ withModel
22
+ } = (0, _createOperationsWrapper.createOperationsWrapper)({
23
+ ...params,
24
+ modelName: _folder.FOLDER_MODEL_ID
25
+ });
26
+ const getFolder = ({
28
27
  id,
29
28
  slug,
30
29
  type,
31
30
  parentId
32
31
  }) => {
33
- const model = await getFolderModel();
34
- security.disableAuthorization();
35
- let entry;
36
- if (id) {
37
- entry = await cms.getEntryById(model, id);
38
- } else if (slug && type) {
39
- entry = await cms.getEntry(model, {
40
- where: {
32
+ return withModel(async model => {
33
+ let entry;
34
+ if (id) {
35
+ entry = await cms.getEntryById(model, id);
36
+ } else if (slug && type) {
37
+ entry = await cms.getEntry(model, {
38
+ where: {
39
+ slug,
40
+ type,
41
+ parentId,
42
+ latest: true
43
+ }
44
+ });
45
+ }
46
+ if (!entry) {
47
+ throw new _error.default("Could not load folder.", "GET_FOLDER_ERROR", {
48
+ id,
41
49
  slug,
42
50
  type,
43
- parentId,
44
- latest: true
45
- }
46
- });
47
- }
48
- if (!entry) {
49
- throw new _error.default("Could not load folder.", "GET_FOLDER_ERROR", {
50
- id,
51
- slug,
52
- type,
53
- parentId
54
- });
55
- }
56
- security.enableAuthorization();
57
- return (0, _getFieldValues.getFieldValues)(entry, _createAcoStorageOperations.baseFields);
51
+ parentId
52
+ });
53
+ }
54
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
55
+ });
58
56
  };
59
- const checkExistingFolder = async ({
57
+ const checkExistingFolder = ({
60
58
  id,
61
59
  params
62
60
  }) => {
63
- const model = await getFolderModel();
64
- security.disableAuthorization();
65
- const {
66
- type,
67
- slug,
68
- parentId
69
- } = params;
70
- const [existings] = await cms.listLatestEntries(model, {
71
- where: {
61
+ return withModel(async model => {
62
+ const {
72
63
  type,
73
64
  slug,
74
- parentId,
75
- id_not: id
76
- },
77
- limit: 1
65
+ parentId
66
+ } = params;
67
+
68
+ // We don't need to perform any kind of authorization or checks here. We just need to check
69
+ // if the folder already exists in the database. Hence the direct storage operations access.
70
+ const listResult = await cms.storageOperations.entries.list(model, {
71
+ ...params,
72
+ where: {
73
+ // Folders always work with latest entries. We never publish them.
74
+ latest: true,
75
+ type,
76
+ slug,
77
+ parentId,
78
+ id_not: id
79
+ },
80
+ limit: 1
81
+ });
82
+ if (listResult?.items?.length > 0) {
83
+ throw new _error.default(`Folder with slug "${slug}" already exists at this level.`, "FOLDER_ALREADY_EXISTS", {
84
+ id,
85
+ params
86
+ });
87
+ }
88
+ return;
78
89
  });
79
- if (existings.length > 0) {
80
- throw new _error.default(`Folder with slug "${slug}" already exists at this level.`, "FOLDER_ALREADY_EXISTS", {
81
- id,
82
- params
90
+ };
91
+ const createFolderPath = async ({
92
+ slug,
93
+ parentId
94
+ }) => {
95
+ let parentFolder = null;
96
+ if (parentId) {
97
+ parentFolder = await getFolder({
98
+ id: parentId
83
99
  });
100
+ if (!parentFolder) {
101
+ throw new _error.default("Parent folder not found. Unable to create the folder `path`", "ERROR_CREATE_FOLDER_PATH_PARENT_FOLDER_NOT_FOUND");
102
+ }
84
103
  }
85
- security.enableAuthorization();
86
- return;
104
+ return _Path.Path.create(slug, parentFolder?.path);
87
105
  };
88
106
  return {
89
- getFolderModel,
90
107
  getFolder,
91
- async listFolders(params) {
92
- const model = await getFolderModel();
93
- security.disableAuthorization();
94
- const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
95
- where: (0, _objectSpread2.default)({}, params.where || {})
96
- }));
97
- security.enableAuthorization();
98
- return [entries.map(entry => (0, _getFieldValues.getFieldValues)(entry, _createAcoStorageOperations.baseFields)), meta];
108
+ listFolders(params) {
109
+ return withModel(async model => {
110
+ const {
111
+ sort,
112
+ where
113
+ } = params;
114
+ const listSort = sort || {
115
+ title: "ASC"
116
+ };
117
+ const [entries, meta] = await cms.listLatestEntries(model, {
118
+ ...params,
119
+ sort: (0, _createListSort.createListSort)(listSort),
120
+ where: {
121
+ ...(where || {})
122
+ }
123
+ });
124
+ return [entries.map(_pickEntryFieldValues.pickEntryFieldValues), meta];
125
+ });
99
126
  },
100
- async createFolder({
127
+ createFolder({
101
128
  data
102
129
  }) {
103
- const model = await getFolderModel();
104
- security.disableAuthorization();
105
- await checkExistingFolder({
106
- params: {
107
- type: data.type,
108
- slug: data.slug,
109
- parentId: data.parentId
110
- }
130
+ return withModel(async model => {
131
+ await checkExistingFolder({
132
+ params: {
133
+ type: data.type,
134
+ slug: data.slug,
135
+ parentId: data.parentId
136
+ }
137
+ });
138
+ const entry = await cms.createEntry(model, {
139
+ ...data,
140
+ parentId: data.parentId || null,
141
+ path: await createFolderPath(data)
142
+ });
143
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
111
144
  });
112
- const entry = await cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
113
- parentId: data.parentId || null
114
- }));
115
- security.enableAuthorization();
116
- return (0, _getFieldValues.getFieldValues)(entry, _createAcoStorageOperations.baseFields);
117
145
  },
118
- async updateFolder({
146
+ updateFolder({
119
147
  id,
120
148
  data
121
149
  }) {
122
- const {
123
- slug,
124
- parentId
125
- } = data;
126
- const model = await getFolderModel();
127
- security.disableAuthorization();
128
- const original = await getFolder({
129
- id
130
- });
131
- await checkExistingFolder({
132
- id,
133
- params: {
134
- type: original.type,
135
- slug: slug || original.slug,
136
- parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`
137
- }
150
+ return withModel(async model => {
151
+ const {
152
+ slug,
153
+ parentId
154
+ } = data;
155
+ const original = await getFolder({
156
+ id
157
+ });
158
+ await checkExistingFolder({
159
+ id,
160
+ params: {
161
+ type: original.type,
162
+ slug: slug || original.slug,
163
+ parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`
164
+ }
165
+ });
166
+ const input = {
167
+ /**
168
+ * We are omitting the standard entry meta fields:
169
+ * we don't want to override them with the ones coming from the `original` entry.
170
+ */
171
+ ...(0, _omit.default)(original, _constants.ENTRY_META_FIELDS),
172
+ ...data,
173
+ path: await createFolderPath({
174
+ slug: slug || original.slug,
175
+ parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`
176
+ })
177
+ };
178
+ const entry = await cms.updateEntry(model, id, input);
179
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
138
180
  });
139
-
140
- const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
141
- const entry = await cms.updateEntry(model, id, input);
142
- security.enableAuthorization();
143
- return (0, _getFieldValues.getFieldValues)(entry, _createAcoStorageOperations.baseFields);
144
181
  },
145
- async deleteFolder({
182
+ deleteFolder({
146
183
  id
147
184
  }) {
148
- const model = await getFolderModel();
149
- security.disableAuthorization();
150
- await cms.deleteEntry(model, id);
151
- security.enableAuthorization();
152
- return true;
185
+ return withModel(async model => {
186
+ await cms.deleteEntry(model, id, {
187
+ permanently: true,
188
+ force: true
189
+ });
190
+ return true;
191
+ });
153
192
  }
154
193
  };
155
194
  };
156
- exports.createFolderOperations = createFolderOperations;
195
+ exports.createFolderOperations = createFolderOperations;
196
+
197
+ //# sourceMappingURL=folder.so.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFolderOperations","params","cms","security","getFolderModel","disableAuthorization","model","getModel","FOLDER_MODEL_ID","enableAuthorization","WebinyError","getFolder","id","slug","type","parentId","entry","getEntryById","getEntry","where","latest","getFieldValues","baseFields","checkExistingFolder","existings","listLatestEntries","id_not","limit","length","listFolders","entries","meta","map","createFolder","data","createEntry","updateFolder","original","undefined","input","updateEntry","deleteFolder","deleteEntry"],"sources":["folder.so.ts"],"sourcesContent":["import { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\n\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { getFieldValues } from \"~/utils/getFieldValues\";\n\nimport { AcoFolderStorageOperations as BaseAcoFolderStorageOperations } from \"./folder.types\";\n\ninterface AcoFolderStorageOperations extends BaseAcoFolderStorageOperations {\n getFolderModel(): Promise<CmsModel>;\n}\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms, security } = params;\n const getFolderModel = async () => {\n security.disableAuthorization();\n const model = await cms.getModel(FOLDER_MODEL_ID);\n security.enableAuthorization();\n if (!model) {\n throw new WebinyError(\n `Could not find \"${FOLDER_MODEL_ID}\" model.`,\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = async ({\n id,\n slug,\n type,\n parentId\n }) => {\n const model = await getFolderModel();\n security.disableAuthorization();\n\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, { where: { slug, type, parentId, latest: true } });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n };\n\n const checkExistingFolder = async ({ id, params }: AcoCheckExistingFolderParams) => {\n const model = await getFolderModel();\n security.disableAuthorization();\n\n const { type, slug, parentId } = params;\n\n const [existings] = await cms.listLatestEntries(model, {\n where: {\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (existings.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n security.enableAuthorization();\n return;\n };\n\n return {\n getFolderModel,\n getFolder,\n async listFolders(params) {\n const model = await getFolderModel();\n security.disableAuthorization();\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...(params.where || {})\n }\n });\n\n security.enableAuthorization();\n return [entries.map(entry => getFieldValues(entry, baseFields)), meta];\n },\n async createFolder({ data }) {\n const model = await getFolderModel();\n security.disableAuthorization();\n\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null\n });\n\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n },\n async updateFolder({ id, data }) {\n const { slug, parentId } = data;\n const model = await getFolderModel();\n security.disableAuthorization();\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n },\n async deleteFolder({ id }) {\n const model = await getFolderModel();\n security.disableAuthorization();\n\n await cms.deleteEntry(model, id);\n\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_folder","_createListSort","_createOperationsWrapper","_pickEntryFieldValues","_Path","_constants","createFolderOperations","params","cms","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","pickEntryFieldValues","checkExistingFolder","listResult","storageOperations","entries","list","id_not","limit","items","length","createFolderPath","parentFolder","Path","create","path","listFolders","sort","listSort","title","meta","listLatestEntries","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","omit","ENTRY_META_FIELDS","updateEntry","deleteFolder","deleteEntry","permanently","force","exports"],"sources":["folder.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport type { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { Path } from \"~/utils/Path\";\nimport type { AcoFolderStorageOperations, Folder } from \"./folder.types\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\nimport type { ListSort } from \"~/types\";\n\ninterface AcoCheckExistingFolderParams {\n params: {\n type: string;\n slug: string;\n parentId?: string | null;\n };\n id?: string;\n}\n\nexport const createFolderOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFolderStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FOLDER_MODEL_ID\n });\n\n const getFolder: AcoFolderStorageOperations[\"getFolder\"] = ({ id, slug, type, parentId }) => {\n return withModel(async model => {\n let entry;\n\n if (id) {\n entry = await cms.getEntryById(model, id);\n } else if (slug && type) {\n entry = await cms.getEntry(model, {\n where: { slug, type, parentId, latest: true }\n });\n }\n\n if (!entry) {\n throw new WebinyError(\"Could not load folder.\", \"GET_FOLDER_ERROR\", {\n id,\n slug,\n type,\n parentId\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\n const { type, slug, parentId } = params;\n\n // We don't need to perform any kind of authorization or checks here. We just need to check\n // if the folder already exists in the database. Hence the direct storage operations access.\n const listResult = await cms.storageOperations.entries.list(model, {\n ...params,\n where: {\n // Folders always work with latest entries. We never publish them.\n latest: true,\n type,\n slug,\n parentId,\n id_not: id\n },\n limit: 1\n });\n\n if (listResult?.items?.length > 0) {\n throw new WebinyError(\n `Folder with slug \"${slug}\" already exists at this level.`,\n \"FOLDER_ALREADY_EXISTS\",\n {\n id,\n params\n }\n );\n }\n\n return;\n });\n };\n\n const createFolderPath = async ({\n slug,\n parentId\n }: Pick<Folder, \"slug\" | \"parentId\">): Promise<string> => {\n let parentFolder: Folder | null = null;\n\n if (parentId) {\n parentFolder = await getFolder({ id: parentId });\n\n if (!parentFolder) {\n throw new WebinyError(\n \"Parent folder not found. Unable to create the folder `path`\",\n \"ERROR_CREATE_FOLDER_PATH_PARENT_FOLDER_NOT_FOUND\"\n );\n }\n }\n\n return Path.create(slug, parentFolder?.path);\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const listSort =\n sort ||\n ({\n title: \"ASC\"\n } as unknown as ListSort);\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(listSort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<Folder>), meta];\n });\n },\n createFolder({ data }) {\n return withModel(async model => {\n await checkExistingFolder({\n params: {\n type: data.type,\n slug: data.slug,\n parentId: data.parentId\n }\n });\n\n const entry = await cms.createEntry(model, {\n ...data,\n parentId: data.parentId || null,\n path: await createFolderPath(data)\n });\n\n return pickEntryFieldValues(entry);\n });\n },\n updateFolder({ id, data }) {\n return withModel(async model => {\n const { slug, parentId } = data;\n\n const original = await getFolder({ id });\n\n await checkExistingFolder({\n id,\n params: {\n type: original.type,\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n }\n });\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n ...data,\n path: await createFolderPath({\n slug: slug || original.slug,\n parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`\n })\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id, {\n permanently: true,\n force: true\n });\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,37 +1,91 @@
1
- import { AcoBaseFields, ListMeta } from "../types";
2
- import { Topic } from "@webiny/pubsub/types";
3
- export interface Folder extends AcoBaseFields {
1
+ import type { ListMeta, ListSort, User } from "../types";
2
+ import { type FolderPermission } from "../types";
3
+ import type { Topic } from "@webiny/pubsub/types";
4
+ export interface Folder {
5
+ id: string;
6
+ entryId: string;
7
+ createdOn: string;
8
+ modifiedOn: string | null;
9
+ savedOn: string;
10
+ createdBy: User;
11
+ modifiedBy: User | null;
12
+ savedBy: User;
4
13
  title: string;
5
14
  slug: string;
15
+ permissions?: FolderPermission[];
6
16
  type: string;
7
17
  parentId?: string | null;
18
+ path: string;
19
+ extensions?: Record<string, any>;
8
20
  }
9
21
  export interface ListFoldersWhere {
10
22
  type: string;
23
+ id_not_in?: string[];
11
24
  parentId?: string | null;
25
+ parentId_in?: string[];
26
+ slug?: string;
27
+ slug_not?: string;
28
+ slug_contains?: string;
29
+ slug_not_contains?: string;
30
+ slug_in?: string[];
31
+ slug_not_in?: string[];
32
+ slug_startsWith?: string;
33
+ slug_not_startsWith?: string;
34
+ path?: string;
35
+ path_not?: string;
36
+ path_contains?: string;
37
+ path_not_contains?: string;
38
+ path_in?: string[];
39
+ path_not_in?: string[];
40
+ path_startsWith?: string;
41
+ path_not_startsWith?: string;
12
42
  }
13
43
  export interface ListFoldersParams {
14
44
  where: ListFoldersWhere;
15
- sort?: string[];
45
+ sort?: ListSort;
16
46
  limit?: number;
17
47
  after?: string | null;
48
+ disablePermissions?: boolean;
49
+ }
50
+ export type ListAllFoldersParams = Omit<ListFoldersParams, "limit" | "after">;
51
+ export interface GetFolderHierarchyParams {
52
+ type: string;
53
+ id: string;
54
+ }
55
+ export interface GetFolderHierarchyResponse {
56
+ parents: Folder[];
57
+ siblings: Folder[];
18
58
  }
19
- export declare type CreateFolderParams = Pick<Folder, "title" | "slug" | "type" | "parentId">;
59
+ export type CreateFolderParams = Pick<Folder, "title" | "slug" | "type" | "parentId">;
20
60
  export interface UpdateFolderParams {
21
61
  title?: string;
22
62
  slug?: string;
63
+ permissions?: FolderPermission[];
23
64
  parentId?: string;
24
65
  }
25
66
  export interface DeleteFolderParams {
26
67
  id: string;
27
68
  }
69
+ export interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {
70
+ id: string;
71
+ target: string;
72
+ name: string;
73
+ type: string;
74
+ meta: TMeta;
75
+ }
76
+ export interface FolderLevelPermissionsTargetListMeta {
77
+ totalCount: number;
78
+ }
28
79
  export interface StorageOperationsGetFolderParams {
29
80
  id?: string;
30
81
  slug?: string;
31
82
  type?: string;
32
83
  parentId?: string | null;
33
84
  }
34
- export declare type StorageOperationsListFoldersParams = ListFoldersParams;
85
+ export interface GetFolderParams {
86
+ id: string;
87
+ }
88
+ export type StorageOperationsListFoldersParams = ListFoldersParams;
35
89
  export interface StorageOperationsCreateFolderParams {
36
90
  data: CreateFolderParams;
37
91
  }
@@ -39,7 +93,7 @@ export interface StorageOperationsUpdateFolderParams {
39
93
  id: string;
40
94
  data: UpdateFolderParams;
41
95
  }
42
- export declare type StorageOperationsDeleteFolderParams = DeleteFolderParams;
96
+ export type StorageOperationsDeleteFolderParams = DeleteFolderParams;
43
97
  export interface OnFolderBeforeCreateTopicParams {
44
98
  input: CreateFolderParams;
45
99
  }
@@ -62,11 +116,22 @@ export interface OnFolderAfterDeleteTopicParams {
62
116
  folder: Folder;
63
117
  }
64
118
  export interface AcoFolderCrud {
65
- get(id: string): Promise<Folder>;
119
+ get(id: string, disablePermissions?: boolean): Promise<Folder>;
66
120
  list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;
121
+ listFolderLevelPermissionsTargets(): Promise<[
122
+ FolderLevelPermissionsTarget[],
123
+ FolderLevelPermissionsTargetListMeta
124
+ ]>;
125
+ listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;
67
126
  create(data: CreateFolderParams): Promise<Folder>;
68
127
  update(id: string, data: UpdateFolderParams): Promise<Folder>;
69
- delete(id: string): Promise<Boolean>;
128
+ delete(id: string): Promise<boolean>;
129
+ getAncestors(folder: Folder): Promise<Folder[]>;
130
+ getFolderHierarchy(params: GetFolderHierarchyParams): Promise<GetFolderHierarchyResponse>;
131
+ /**
132
+ * @deprecated use `getAncestors` instead
133
+ */
134
+ getFolderWithAncestors(id: string): Promise<Folder[]>;
70
135
  onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;
71
136
  onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;
72
137
  onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;
@@ -2,4 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
5
+ });
6
+
7
+ //# sourceMappingURL=folder.types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder extends AcoBaseFields {\n title: string;\n slug: string;\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: string[];\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n create(data: CreateFolderParams): Promise<Folder>;\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n delete(id: string): Promise<Boolean>;\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import type { ListMeta, ListSort, User } from \"~/types\";\nimport { type FolderPermission } from \"~/types\";\nimport type { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n path: string;\n extensions?: Record<string, any>;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n id_not_in?: string[];\n parentId?: string | null;\n parentId_in?: string[];\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}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n disablePermissions?: boolean;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport interface GetFolderHierarchyParams {\n type: string;\n id: string;\n}\n\nexport interface GetFolderHierarchyResponse {\n parents: Folder[];\n siblings: Folder[];\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport interface GetFolderParams {\n id: string;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string, disablePermissions?: boolean): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n getFolderHierarchy(params: GetFolderHierarchyParams): Promise<GetFolderHierarchyResponse>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { AcoContext } from "../types";
2
+ export declare const onFolderBeforeDeleteAcoHook: (context: AcoContext) => void;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.onFolderBeforeDeleteAcoHook = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _ensureFolderIsEmpty = require("./ensureFolderIsEmpty");
10
+ const onFolderBeforeDeleteAcoHook = context => {
11
+ context.aco.folder.onFolderBeforeDelete.subscribe(async ({
12
+ folder
13
+ }) => {
14
+ try {
15
+ const {
16
+ id,
17
+ type
18
+ } = folder;
19
+ await (0, _ensureFolderIsEmpty.ensureFolderIsEmpty)({
20
+ context,
21
+ folder,
22
+ hasContentCallback: async () => {
23
+ const content = [];
24
+ try {
25
+ const app = context.aco.getApp(type);
26
+ if (app) {
27
+ const [acoSearchRecords] = await app.search.list({
28
+ where: {
29
+ type,
30
+ location: {
31
+ folderId: id
32
+ }
33
+ },
34
+ limit: 1
35
+ });
36
+ content.push(...acoSearchRecords);
37
+ }
38
+ } catch {
39
+ // Do nothing.
40
+ }
41
+ return content.length > 0;
42
+ }
43
+ });
44
+ } catch (error) {
45
+ throw _error.default.from(error, {
46
+ message: "Error while executing onFolderBeforeDeleteAcoHook hook.",
47
+ code: "ACO_BEFORE_FOLDER_DELETE_ACO_HOOK"
48
+ });
49
+ }
50
+ });
51
+ };
52
+ exports.onFolderBeforeDeleteAcoHook = onFolderBeforeDeleteAcoHook;
53
+
54
+ //# sourceMappingURL=onFolderBeforeDeleteAco.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_ensureFolderIsEmpty","onFolderBeforeDeleteAcoHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","ensureFolderIsEmpty","hasContentCallback","content","app","getApp","acoSearchRecords","search","list","where","location","folderId","limit","push","length","error","WebinyError","from","message","code","exports"],"sources":["onFolderBeforeDeleteAco.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext, SearchRecord } from \"~/types\";\nimport { ensureFolderIsEmpty } from \"~/folder/ensureFolderIsEmpty\";\n\nexport const onFolderBeforeDeleteAcoHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n await ensureFolderIsEmpty({\n context,\n folder,\n hasContentCallback: async () => {\n const content: SearchRecord[] = [];\n try {\n const app = context.aco.getApp(type);\n if (app) {\n const [acoSearchRecords] = await app.search.list({\n where: {\n type,\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n content.push(...acoSearchRecords);\n }\n } catch {\n // Do nothing.\n }\n\n return content.length > 0;\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteAcoHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_ACO_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAEO,MAAME,2BAA2B,GAAIC,OAAmB,IAAK;EAChEA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;MAE3B,MAAM,IAAAK,wCAAmB,EAAC;QACtBP,OAAO;QACPE,MAAM;QACNM,kBAAkB,EAAE,MAAAA,CAAA,KAAY;UAC5B,MAAMC,OAAuB,GAAG,EAAE;UAClC,IAAI;YACA,MAAMC,GAAG,GAAGV,OAAO,CAACC,GAAG,CAACU,MAAM,CAACL,IAAI,CAAC;YACpC,IAAII,GAAG,EAAE;cACL,MAAM,CAACE,gBAAgB,CAAC,GAAG,MAAMF,GAAG,CAACG,MAAM,CAACC,IAAI,CAAC;gBAC7CC,KAAK,EAAE;kBACHT,IAAI;kBACJU,QAAQ,EAAE;oBACNC,QAAQ,EAAEZ;kBACd;gBACJ,CAAC;gBACDa,KAAK,EAAE;cACX,CAAC,CAAC;cACFT,OAAO,CAACU,IAAI,CAAC,GAAGP,gBAAgB,CAAC;YACrC;UACJ,CAAC,CAAC,MAAM;YACJ;UAAA;UAGJ,OAAOH,OAAO,CAACW,MAAM,GAAG,CAAC;QAC7B;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,yDAAyD;QAClEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAA3B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { AcoContext } from "../types";
2
+ export declare const onFolderBeforeDeleteFmHook: (context: AcoContext) => void;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.onFolderBeforeDeleteFmHook = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _ensureFolderIsEmpty = require("./ensureFolderIsEmpty");
10
+ const onFolderBeforeDeleteFmHook = context => {
11
+ context.aco.folder.onFolderBeforeDelete.subscribe(async ({
12
+ folder
13
+ }) => {
14
+ try {
15
+ const {
16
+ id,
17
+ type
18
+ } = folder;
19
+
20
+ /**
21
+ * Exit if the folder type is not related to File Manager
22
+ */
23
+ if (type !== "FmFile") {
24
+ return;
25
+ }
26
+ await (0, _ensureFolderIsEmpty.ensureFolderIsEmpty)({
27
+ context,
28
+ folder,
29
+ hasContentCallback: async () => {
30
+ const [content] = await context.fileManager.listFiles({
31
+ where: {
32
+ location: {
33
+ folderId: id
34
+ }
35
+ },
36
+ limit: 1
37
+ });
38
+ return content.length > 0;
39
+ }
40
+ });
41
+ } catch (error) {
42
+ throw _error.default.from(error, {
43
+ message: "Error while executing onFolderBeforeDeleteFmHook hook.",
44
+ code: "ACO_BEFORE_FOLDER_DELETE_FILE_HOOK"
45
+ });
46
+ }
47
+ });
48
+ };
49
+ exports.onFolderBeforeDeleteFmHook = onFolderBeforeDeleteFmHook;
50
+
51
+ //# sourceMappingURL=onFolderBeforeDeleteFm.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_ensureFolderIsEmpty","onFolderBeforeDeleteFmHook","context","aco","folder","onFolderBeforeDelete","subscribe","id","type","ensureFolderIsEmpty","hasContentCallback","content","fileManager","listFiles","where","location","folderId","limit","length","error","WebinyError","from","message","code","exports"],"sources":["onFolderBeforeDeleteFm.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { AcoContext } from \"~/types\";\nimport { ensureFolderIsEmpty } from \"~/folder/ensureFolderIsEmpty\";\n\nexport const onFolderBeforeDeleteFmHook = (context: AcoContext) => {\n context.aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n /**\n * Exit if the folder type is not related to File Manager\n */\n if (type !== \"FmFile\") {\n return;\n }\n\n await ensureFolderIsEmpty({\n context,\n folder,\n hasContentCallback: async () => {\n const [content] = await context.fileManager.listFiles({\n where: {\n location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n return content.length > 0;\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDeleteFmHook hook.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAEO,MAAME,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACpE,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;;MAE3B;AACZ;AACA;MACY,IAAII,IAAI,KAAK,QAAQ,EAAE;QACnB;MACJ;MAEA,MAAM,IAAAC,wCAAmB,EAAC;QACtBP,OAAO;QACPE,MAAM;QACNM,kBAAkB,EAAE,MAAAA,CAAA,KAAY;UAC5B,MAAM,CAACC,OAAO,CAAC,GAAG,MAAMT,OAAO,CAACU,WAAW,CAACC,SAAS,CAAC;YAClDC,KAAK,EAAE;cACHC,QAAQ,EAAE;gBACNC,QAAQ,EAAET;cACd;YACJ,CAAC;YACDU,KAAK,EAAE;UACX,CAAC,CAAC;UAEF,OAAON,OAAO,CAACO,MAAM,GAAG,CAAC;QAC7B;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAvB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { AcoContext } from "../types";
2
+ export declare const onFolderBeforeDeleteHcmsHook: (context: AcoContext) => void;