@webiny/api-aco 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.9bd236cf5e

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/apps/AcoApp.d.ts +7 -2
  2. package/apps/AcoApp.js +56 -21
  3. package/apps/AcoApp.js.map +1 -1
  4. package/apps/AcoApps.d.ts +1 -1
  5. package/apps/AcoApps.js +7 -8
  6. package/apps/AcoApps.js.map +1 -1
  7. package/apps/app.gql.d.ts +1 -1
  8. package/apps/app.gql.js +6 -5
  9. package/apps/app.gql.js.map +1 -1
  10. package/apps/index.js +3 -1
  11. package/apps/index.js.map +1 -1
  12. package/constants.d.ts +3 -0
  13. package/constants.js +26 -0
  14. package/constants.js.map +1 -0
  15. package/createAcoContext.d.ts +8 -2
  16. package/createAcoContext.js +57 -27
  17. package/createAcoContext.js.map +1 -1
  18. package/createAcoGraphQL.d.ts +3 -2
  19. package/createAcoGraphQL.js +44 -2
  20. package/createAcoGraphQL.js.map +1 -1
  21. package/createAcoHooks.d.ts +1 -1
  22. package/createAcoHooks.js +11 -3
  23. package/createAcoHooks.js.map +1 -1
  24. package/createAcoModels.d.ts +2 -2
  25. package/createAcoModels.js +14 -21
  26. package/createAcoModels.js.map +1 -1
  27. package/createAcoStorageOperations.d.ts +6 -5
  28. package/createAcoStorageOperations.js +14 -9
  29. package/createAcoStorageOperations.js.map +1 -1
  30. package/createAcoTasks.d.ts +1 -0
  31. package/createAcoTasks.js +13 -0
  32. package/createAcoTasks.js.map +1 -0
  33. package/filter/filter.crud.d.ts +3 -0
  34. package/filter/filter.crud.js +94 -0
  35. package/filter/filter.crud.js.map +1 -0
  36. package/filter/filter.gql.d.ts +3 -0
  37. package/filter/filter.gql.js +152 -0
  38. package/filter/filter.gql.js.map +1 -0
  39. package/filter/filter.model.d.ts +2 -0
  40. package/filter/filter.model.js +124 -0
  41. package/filter/filter.model.js.map +1 -0
  42. package/filter/filter.so.d.ts +3 -0
  43. package/filter/filter.so.js +98 -0
  44. package/filter/filter.so.js.map +1 -0
  45. package/filter/filter.types.d.ts +95 -0
  46. package/filter/filter.types.js +13 -0
  47. package/filter/filter.types.js.map +1 -0
  48. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  49. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  50. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  51. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  52. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  53. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  54. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  55. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  56. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  57. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  58. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  59. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  60. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  61. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  62. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  63. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  64. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  65. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  66. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  67. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  68. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  69. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  70. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  71. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  72. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  73. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  74. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  75. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  76. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  77. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  78. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  79. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  80. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  81. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  82. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  83. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  84. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  85. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  86. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  87. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  88. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  89. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  90. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  91. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  92. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  93. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  94. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  95. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  96. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  97. package/flp/FolderLevelPermissions/index.js +116 -0
  98. package/flp/FolderLevelPermissions/index.js.map +1 -0
  99. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  100. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +48 -0
  101. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  102. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  103. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  104. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  105. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  106. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  107. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  108. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  109. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +41 -0
  110. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  111. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  112. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  113. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  114. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  115. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  116. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  117. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  118. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  119. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  120. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  121. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  122. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  123. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  124. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  125. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  126. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  127. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  128. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  129. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  130. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  131. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  132. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  133. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  134. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  135. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  136. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  137. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  138. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  139. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  140. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  141. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  142. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  143. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  144. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  145. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  146. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  147. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  148. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  149. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  150. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  151. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  152. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  153. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +6 -0
  154. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +77 -0
  155. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  156. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +9 -0
  157. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +21 -0
  158. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  159. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  160. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +42 -0
  161. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  162. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  163. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  164. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  165. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  166. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  167. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  168. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  169. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  170. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  171. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  172. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  173. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  174. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  175. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  176. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  177. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  178. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  179. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  180. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  181. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  182. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  183. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  184. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  185. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  186. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  187. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  188. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  189. package/flp/flp.crud.d.ts +9 -0
  190. package/flp/flp.crud.js +172 -0
  191. package/flp/flp.crud.js.map +1 -0
  192. package/flp/flp.so.d.ts +26 -0
  193. package/flp/flp.so.js +304 -0
  194. package/flp/flp.so.js.map +1 -0
  195. package/flp/flp.types.d.ts +147 -0
  196. package/flp/flp.types.js +18 -0
  197. package/flp/flp.types.js.map +1 -0
  198. package/flp/hooks/index.d.ts +2 -0
  199. package/flp/hooks/index.js +17 -0
  200. package/flp/hooks/index.js.map +1 -0
  201. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  202. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  203. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  204. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  205. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  206. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  207. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  208. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  209. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  210. package/flp/index.d.ts +5 -0
  211. package/flp/index.js +62 -0
  212. package/flp/index.js.map +1 -0
  213. package/flp/tasks/createFlp.task.d.ts +2 -0
  214. package/flp/tasks/createFlp.task.js +49 -0
  215. package/flp/tasks/createFlp.task.js.map +1 -0
  216. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  217. package/flp/tasks/deleteFlp.task.js +49 -0
  218. package/flp/tasks/deleteFlp.task.js.map +1 -0
  219. package/flp/tasks/index.d.ts +5 -0
  220. package/flp/tasks/index.js +20 -0
  221. package/flp/tasks/index.js.map +1 -0
  222. package/flp/tasks/syncFlp.task.d.ts +2 -0
  223. package/flp/tasks/syncFlp.task.js +126 -0
  224. package/flp/tasks/syncFlp.task.js.map +1 -0
  225. package/flp/tasks/updateFlp.task.d.ts +2 -0
  226. package/flp/tasks/updateFlp.task.js +55 -0
  227. package/flp/tasks/updateFlp.task.js.map +1 -0
  228. package/flp/useCases/CreateFlp.d.ts +7 -0
  229. package/flp/useCases/CreateFlp.js +51 -0
  230. package/flp/useCases/CreateFlp.js.map +1 -0
  231. package/flp/useCases/DeleteFlp.d.ts +6 -0
  232. package/flp/useCases/DeleteFlp.js +30 -0
  233. package/flp/useCases/DeleteFlp.js.map +1 -0
  234. package/flp/useCases/UpdateFlp.d.ts +26 -0
  235. package/flp/useCases/UpdateFlp.js +198 -0
  236. package/flp/useCases/UpdateFlp.js.map +1 -0
  237. package/flp/useCases/index.d.ts +3 -0
  238. package/flp/useCases/index.js +40 -0
  239. package/flp/useCases/index.js.map +1 -0
  240. package/folder/createFolderModelModifier.d.ts +36 -0
  241. package/folder/createFolderModelModifier.js +70 -0
  242. package/folder/createFolderModelModifier.js.map +1 -0
  243. package/folder/createFolderTypeDefs.d.ts +7 -0
  244. package/folder/createFolderTypeDefs.js +207 -0
  245. package/folder/createFolderTypeDefs.js.map +1 -0
  246. package/folder/ensureFolderIsEmpty.d.ts +8 -0
  247. package/folder/ensureFolderIsEmpty.js +63 -0
  248. package/folder/ensureFolderIsEmpty.js.map +1 -0
  249. package/folder/folder.crud.d.ts +8 -3
  250. package/folder/folder.crud.js +112 -65
  251. package/folder/folder.crud.js.map +1 -1
  252. package/folder/folder.gql.d.ts +3 -2
  253. package/folder/folder.gql.js +121 -104
  254. package/folder/folder.gql.js.map +1 -1
  255. package/folder/folder.model.d.ts +1 -3
  256. package/folder/folder.model.js +80 -11
  257. package/folder/folder.model.js.map +1 -1
  258. package/folder/folder.so.d.ts +2 -2
  259. package/folder/folder.so.js +68 -22
  260. package/folder/folder.so.js.map +1 -1
  261. package/folder/folder.types.d.ts +67 -8
  262. package/folder/folder.types.js +3 -1
  263. package/folder/folder.types.js.map +1 -1
  264. package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -0
  265. package/folder/onFolderBeforeDeleteAco.hook.js +54 -0
  266. package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -0
  267. package/folder/onFolderBeforeDeleteFm.hook.d.ts +2 -0
  268. package/folder/onFolderBeforeDeleteFm.hook.js +51 -0
  269. package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -0
  270. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +2 -0
  271. package/folder/onFolderBeforeDeleteHcms.hook.js +58 -0
  272. package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -0
  273. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  274. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  275. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  276. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  277. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  278. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  279. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +25 -0
  280. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  281. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  282. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  283. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  284. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  285. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  286. package/folder/useCases/CreateFolder/index.js +20 -0
  287. package/folder/useCases/CreateFolder/index.js.map +1 -0
  288. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  289. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  290. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  291. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  292. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  293. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  294. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  295. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  296. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  297. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  298. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  299. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  300. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  301. package/folder/useCases/DeleteFolder/index.js +20 -0
  302. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  303. package/folder/useCases/GetAncestors/GetAncestors.d.ts +9 -0
  304. package/folder/useCases/GetAncestors/GetAncestors.js +77 -0
  305. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  306. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +7 -0
  307. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  308. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  309. package/folder/useCases/GetAncestors/index.d.ts +9 -0
  310. package/folder/useCases/GetAncestors/index.js +16 -0
  311. package/folder/useCases/GetAncestors/index.js.map +1 -0
  312. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  313. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  314. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  315. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +25 -0
  316. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  317. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  318. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  319. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  320. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  321. package/folder/useCases/GetFolder/index.d.ts +13 -0
  322. package/folder/useCases/GetFolder/index.js +19 -0
  323. package/folder/useCases/GetFolder/index.js.map +1 -0
  324. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  325. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  326. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  327. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  328. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  329. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  330. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  331. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  332. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  333. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  334. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  335. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  336. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  337. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  338. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  339. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  340. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  341. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  342. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  343. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  344. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  345. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  346. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  347. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  348. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  349. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  350. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  351. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  352. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  353. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  354. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  355. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  356. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  357. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  358. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  359. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  360. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  361. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  362. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  363. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  364. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  365. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  366. package/folder/useCases/ListFolders/index.d.ts +13 -0
  367. package/folder/useCases/ListFolders/index.js +19 -0
  368. package/folder/useCases/ListFolders/index.js.map +1 -0
  369. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  370. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  371. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  372. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  373. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  374. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  375. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  376. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  377. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  378. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +26 -0
  379. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  380. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  381. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  382. package/folder/useCases/UpdateFolder/index.js +20 -0
  383. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  384. package/folder/useCases/index.d.ts +8 -0
  385. package/folder/useCases/index.js +95 -0
  386. package/folder/useCases/index.js.map +1 -0
  387. package/index.d.ts +8 -1
  388. package/index.js +27 -5
  389. package/index.js.map +1 -1
  390. package/package.json +33 -33
  391. package/plugins/AcoAppModifierPlugin.d.ts +3 -3
  392. package/plugins/AcoAppModifierPlugin.js +4 -5
  393. package/plugins/AcoAppModifierPlugin.js.map +1 -1
  394. package/plugins/AcoAppRegisterPlugin.d.ts +1 -1
  395. package/plugins/AcoAppRegisterPlugin.js +4 -5
  396. package/plugins/AcoAppRegisterPlugin.js.map +1 -1
  397. package/plugins/index.js +3 -1
  398. package/plugins/index.js.map +1 -1
  399. package/record/graphql/createAppResolvers.d.ts +2 -2
  400. package/record/graphql/createAppResolvers.js +26 -19
  401. package/record/graphql/createAppResolvers.js.map +1 -1
  402. package/record/graphql/createAppSchema.d.ts +2 -2
  403. package/record/graphql/createAppSchema.js +13 -9
  404. package/record/graphql/createAppSchema.js.map +1 -1
  405. package/record/record.crud.d.ts +2 -2
  406. package/record/record.crud.js +13 -11
  407. package/record/record.crud.js.map +1 -1
  408. package/record/record.gql.d.ts +1 -1
  409. package/record/record.gql.js +3 -1
  410. package/record/record.gql.js.map +1 -1
  411. package/record/record.model.d.ts +3 -5
  412. package/record/record.model.js +18 -13
  413. package/record/record.model.js.map +1 -1
  414. package/record/record.so.d.ts +2 -2
  415. package/record/record.so.js +114 -93
  416. package/record/record.so.js.map +1 -1
  417. package/record/record.types.d.ts +17 -16
  418. package/record/record.types.js +3 -1
  419. package/record/record.types.js.map +1 -1
  420. package/types.d.ts +41 -15
  421. package/types.js +36 -4
  422. package/types.js.map +1 -1
  423. package/utils/FoldersCacheFactory.d.ts +10 -0
  424. package/utils/FoldersCacheFactory.js +31 -0
  425. package/utils/FoldersCacheFactory.js.map +1 -0
  426. package/utils/ListCache.d.ts +23 -0
  427. package/utils/ListCache.js +31 -0
  428. package/utils/ListCache.js.map +1 -0
  429. package/utils/ListFoldersRepository.d.ts +10 -0
  430. package/utils/ListFoldersRepository.js +35 -0
  431. package/utils/ListFoldersRepository.js.map +1 -0
  432. package/utils/Path.d.ts +3 -0
  433. package/utils/Path.js +18 -0
  434. package/utils/Path.js.map +1 -0
  435. package/utils/acoRecordId.js +3 -1
  436. package/utils/acoRecordId.js.map +1 -1
  437. package/utils/compress.d.ts +4 -0
  438. package/utils/compress.js +19 -0
  439. package/utils/compress.js.map +1 -0
  440. package/utils/createListSort.d.ts +3 -2
  441. package/utils/createListSort.js +6 -2
  442. package/utils/createListSort.js.map +1 -1
  443. package/utils/createModelField.d.ts +1 -1
  444. package/utils/createModelField.js +3 -1
  445. package/utils/createModelField.js.map +1 -1
  446. package/utils/createOperationsWrapper.d.ts +2 -2
  447. package/utils/createOperationsWrapper.js +8 -10
  448. package/utils/createOperationsWrapper.js.map +1 -1
  449. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  450. package/utils/decorators/CmsEntriesCrudDecorators.js +210 -0
  451. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  452. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  453. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  454. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  455. package/utils/decorators/ListEntriesFactory.d.ts +16 -0
  456. package/utils/decorators/ListEntriesFactory.js +107 -0
  457. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  458. package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +23 -0
  459. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +54 -0
  460. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -0
  461. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  462. package/utils/decorators/hasRootFolderId.js +27 -0
  463. package/utils/decorators/hasRootFolderId.js.map +1 -0
  464. package/utils/decorators/isPageModel.d.ts +5 -0
  465. package/utils/decorators/isPageModel.js +20 -0
  466. package/utils/decorators/isPageModel.js.map +1 -0
  467. package/utils/ensureAuthentication.d.ts +2 -0
  468. package/utils/{checkPermissions.js → ensureAuthentication.js} +5 -3
  469. package/utils/ensureAuthentication.js.map +1 -0
  470. package/utils/modelFactory.d.ts +2 -4
  471. package/utils/modelFactory.js +7 -10
  472. package/utils/modelFactory.js.map +1 -1
  473. package/utils/pickEntryFieldValues.d.ts +3 -0
  474. package/utils/pickEntryFieldValues.js +30 -0
  475. package/utils/pickEntryFieldValues.js.map +1 -0
  476. package/utils/resolve.js +3 -1
  477. package/utils/resolve.js.map +1 -1
  478. package/fields/index.d.ts +0 -2
  479. package/fields/index.js +0 -12
  480. package/fields/index.js.map +0 -1
  481. package/fields/location.d.ts +0 -2
  482. package/fields/location.js +0 -44
  483. package/fields/location.js.map +0 -1
  484. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  485. package/folder/onFolderBeforeDelete.hook.js +0 -66
  486. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  487. package/utils/checkPermissions.d.ts +0 -2
  488. package/utils/checkPermissions.js.map +0 -1
  489. package/utils/fieldResolver.d.ts +0 -16
  490. package/utils/fieldResolver.js +0 -44
  491. package/utils/fieldResolver.js.map +0 -1
  492. package/utils/getFieldValues.d.ts +0 -5
  493. package/utils/getFieldValues.js +0 -16
  494. package/utils/getFieldValues.js.map +0 -1
  495. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  496. package/utils/getFolderAndItsAncestors.js +0 -48
  497. package/utils/getFolderAndItsAncestors.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
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createFolderModelDefinition = exports.FOLDER_MODEL_ID = void 0;
6
+ exports.createFolderModel = exports.FOLDER_MODEL_ID = void 0;
7
7
  var _createModelField = require("../utils/createModelField");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
9
  const titleField = () => (0, _createModelField.createModelField)({
9
10
  label: "Title",
10
11
  type: "text",
@@ -41,17 +42,85 @@ const parentIdField = () => (0, _createModelField.createModelField)({
41
42
  label: "Parent Id",
42
43
  type: "text"
43
44
  });
44
- const FOLDER_MODEL_ID = "acoFolder";
45
- exports.FOLDER_MODEL_ID = FOLDER_MODEL_ID;
46
- const createFolderModelDefinition = () => {
47
- return {
45
+ const pathField = () => (0, _createModelField.createModelField)({
46
+ label: "Path",
47
+ type: "text"
48
+ });
49
+ const permissionsField = () => (0, _createModelField.createModelField)({
50
+ label: "Permissions",
51
+ fieldId: "permissions",
52
+ type: "object",
53
+ multipleValues: true,
54
+ listValidation: [],
55
+ settings: {
56
+ fields: [{
57
+ id: "target",
58
+ type: "text",
59
+ storageId: "text@target",
60
+ fieldId: "target",
61
+ label: "Target",
62
+ validation: [{
63
+ name: "required",
64
+ message: "Value is required."
65
+ }]
66
+ }, {
67
+ id: "level",
68
+ type: "text",
69
+ storageId: "text@level",
70
+ fieldId: "level",
71
+ label: "Level",
72
+ validation: [{
73
+ name: "required",
74
+ message: "Value is required."
75
+ }],
76
+ predefinedValues: {
77
+ enabled: true,
78
+ values: [{
79
+ label: "Viewer",
80
+ value: "viewer"
81
+ }, {
82
+ label: "Editor",
83
+ value: "editor"
84
+ }, {
85
+ label: "Owner",
86
+ value: "owner"
87
+ }, {
88
+ label: "Public",
89
+ value: "public"
90
+ }, {
91
+ label: "No Access",
92
+ value: "no-access"
93
+ }]
94
+ }
95
+ }],
96
+ layout: [["target"], ["level"]]
97
+ }
98
+ });
99
+ const extensionsField = () => (0, _createModelField.createModelField)({
100
+ label: "Extensions",
101
+ fieldId: "extensions",
102
+ type: "object",
103
+ settings: {
104
+ layout: [],
105
+ fields: []
106
+ }
107
+ });
108
+ const FOLDER_MODEL_ID = exports.FOLDER_MODEL_ID = "acoFolder";
109
+ const createFolderModel = () => {
110
+ return (0, _apiHeadlessCms.createPrivateModel)({
48
111
  name: "ACO - Folder",
49
112
  modelId: FOLDER_MODEL_ID,
113
+ authorization: {
114
+ // Disables base permission checks, but leaves FLP checks enabled.
115
+ permissions: false
116
+
117
+ // We're leaving FLP enabled (no need to set `flp: true`).
118
+ // flp: true
119
+ },
50
120
  titleFieldId: "title",
51
- layout: [["title"], ["slug"], ["type"], ["parentId"]],
52
- fields: [titleField(), slugField(), typeField(), parentIdField()],
53
- description: "ACO - Folder content model",
54
- isPrivate: true
55
- };
121
+ fields: [titleField(), slugField(), typeField(), parentIdField(), pathField(), permissionsField(), extensionsField()]
122
+ });
56
123
  };
57
- exports.createFolderModelDefinition = createFolderModelDefinition;
124
+ exports.createFolderModel = createFolderModel;
125
+
126
+ //# sourceMappingURL=folder.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","FOLDER_MODEL_ID","createFolderModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\nexport type FolderModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModelDefinition = (): FolderModelDefinition => {\n return {\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n titleFieldId: \"title\",\n layout: [[\"title\"], [\"slug\"], [\"type\"], [\"parentId\"]],\n fields: [titleField(), slugField(), typeField(), parentIdField()],\n description: \"ACO - Folder content model\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;AAAA;AAKA,MAAMA,UAAU,GAAG,MACf,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,SAAS,GAAG,MACd,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfG,QAAQ,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE,0BAA0B;MACjCC,KAAK,EAAE;IACX,CAAC;IACDL,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMM,SAAS,GAAG,MACd,IAAAX,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMO,aAAa,GAAG,MAClB,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEC,MAAMW,eAAe,GAAG,WAAW;AAAC;AAEpC,MAAMC,2BAA2B,GAAG,MAA6B;EACpE,OAAO;IACHV,IAAI,EAAE,cAAc;IACpBW,OAAO,EAAEF,eAAe;IACxBG,YAAY,EAAE,OAAO;IACrBC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACrDC,MAAM,EAAE,CAACnB,UAAU,EAAE,EAAEO,SAAS,EAAE,EAAEK,SAAS,EAAE,EAAEC,aAAa,EAAE,CAAC;IACjEO,WAAW,EAAE,4BAA4B;IACzCC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_createModelField","require","_apiHeadlessCms","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","pathField","permissionsField","fieldId","multipleValues","listValidation","fields","id","storageId","predefinedValues","enabled","values","value","layout","extensionsField","FOLDER_MODEL_ID","exports","createFolderModel","createPrivateModel","modelId","authorization","permissions","titleFieldId"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nconst pathField = () =>\n createModelField({\n label: \"Path\",\n type: \"text\"\n });\n\nconst permissionsField = () =>\n createModelField({\n label: \"Permissions\",\n fieldId: \"permissions\",\n type: \"object\",\n multipleValues: true,\n listValidation: [],\n settings: {\n fields: [\n {\n id: \"target\",\n type: \"text\",\n storageId: \"text@target\",\n fieldId: \"target\",\n label: \"Target\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n },\n {\n id: \"level\",\n type: \"text\",\n storageId: \"text@level\",\n fieldId: \"level\",\n label: \"Level\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n },\n {\n label: \"No Access\",\n value: \"no-access\"\n }\n ]\n }\n }\n ],\n layout: [[\"target\"], [\"level\"]]\n }\n });\n\nconst extensionsField = () =>\n createModelField({\n label: \"Extensions\",\n fieldId: \"extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModel = () => {\n return createPrivateModel({\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n titleFieldId: \"title\",\n fields: [\n titleField(),\n slugField(),\n typeField(),\n parentIdField(),\n pathField(),\n permissionsField(),\n extensionsField()\n ]\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,MAAME,UAAU,GAAGA,CAAA,KACf,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,SAAS,GAAGA,CAAA,KACd,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,EACD;IACID,IAAI,EAAE,SAAS;IACfG,QAAQ,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE,0BAA0B;MACjCC,KAAK,EAAE;IACX,CAAC;IACDL,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMM,SAAS,GAAGA,CAAA,KACd,IAAAX,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMO,aAAa,GAAGA,CAAA,KAClB,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMW,SAAS,GAAGA,CAAA,KACd,IAAAb,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMY,gBAAgB,GAAGA,CAAA,KACrB,IAAAd,kCAAgB,EAAC;EACbC,KAAK,EAAE,aAAa;EACpBc,OAAO,EAAE,aAAa;EACtBb,IAAI,EAAE,QAAQ;EACdc,cAAc,EAAE,IAAI;EACpBC,cAAc,EAAE,EAAE;EAClBV,QAAQ,EAAE;IACNW,MAAM,EAAE,CACJ;MACIC,EAAE,EAAE,QAAQ;MACZjB,IAAI,EAAE,MAAM;MACZkB,SAAS,EAAE,aAAa;MACxBL,OAAO,EAAE,QAAQ;MACjBd,KAAK,EAAE,QAAQ;MACfE,UAAU,EAAE,CACR;QACIC,IAAI,EAAE,UAAU;QAChBC,OAAO,EAAE;MACb,CAAC;IAET,CAAC,EACD;MACIc,EAAE,EAAE,OAAO;MACXjB,IAAI,EAAE,MAAM;MACZkB,SAAS,EAAE,YAAY;MACvBL,OAAO,EAAE,OAAO;MAChBd,KAAK,EAAE,OAAO;MACdE,UAAU,EAAE,CACR;QACIC,IAAI,EAAE,UAAU;QAChBC,OAAO,EAAE;MACb,CAAC,CACJ;MACDgB,gBAAgB,EAAE;QACdC,OAAO,EAAE,IAAI;QACbC,MAAM,EAAE,CACJ;UACItB,KAAK,EAAE,QAAQ;UACfuB,KAAK,EAAE;QACX,CAAC,EACD;UACIvB,KAAK,EAAE,QAAQ;UACfuB,KAAK,EAAE;QACX,CAAC,EACD;UACIvB,KAAK,EAAE,OAAO;UACduB,KAAK,EAAE;QACX,CAAC,EACD;UACIvB,KAAK,EAAE,QAAQ;UACfuB,KAAK,EAAE;QACX,CAAC,EACD;UACIvB,KAAK,EAAE,WAAW;UAClBuB,KAAK,EAAE;QACX,CAAC;MAET;IACJ,CAAC,CACJ;IACDC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;EAClC;AACJ,CAAC,CAAC;AAEN,MAAMC,eAAe,GAAGA,CAAA,KACpB,IAAA1B,kCAAgB,EAAC;EACbC,KAAK,EAAE,YAAY;EACnBc,OAAO,EAAE,YAAY;EACrBb,IAAI,EAAE,QAAQ;EACdK,QAAQ,EAAE;IACNkB,MAAM,EAAE,EAAE;IACVP,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC;AAEC,MAAMS,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,WAAW;AAEnC,MAAME,iBAAiB,GAAGA,CAAA,KAAM;EACnC,OAAO,IAAAC,kCAAkB,EAAC;IACtB1B,IAAI,EAAE,cAAc;IACpB2B,OAAO,EAAEJ,eAAe;IACxBK,aAAa,EAAE;MACX;MACAC,WAAW,EAAE;;MAEb;MACA;IACJ,CAAC;IACDC,YAAY,EAAE,OAAO;IACrBhB,MAAM,EAAE,CACJnB,UAAU,CAAC,CAAC,EACZO,SAAS,CAAC,CAAC,EACXK,SAAS,CAAC,CAAC,EACXC,aAAa,CAAC,CAAC,EACfC,SAAS,CAAC,CAAC,EACXC,gBAAgB,CAAC,CAAC,EAClBY,eAAe,CAAC,CAAC;EAEzB,CAAC,CAAC;AACN,CAAC;AAACE,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
2
- import { AcoFolderStorageOperations } from "./folder.types";
1
+ import type { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
2
+ import type { AcoFolderStorageOperations } from "./folder.types";
3
3
  export declare const createFolderOperations: (params: CreateAcoStorageOperationsParams) => AcoFolderStorageOperations;
@@ -5,22 +5,24 @@ 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
11
  var _createListSort = require("../utils/createListSort");
13
12
  var _createOperationsWrapper = require("../utils/createOperationsWrapper");
14
- var _getFieldValues = require("../utils/getFieldValues");
13
+ var _pickEntryFieldValues = require("../utils/pickEntryFieldValues");
14
+ var _Path = require("../utils/Path");
15
+ var _constants = require("@webiny/api-headless-cms/constants");
15
16
  const createFolderOperations = params => {
16
17
  const {
17
18
  cms
18
19
  } = params;
19
20
  const {
20
21
  withModel
21
- } = (0, _createOperationsWrapper.createOperationsWrapper)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
22
+ } = (0, _createOperationsWrapper.createOperationsWrapper)({
23
+ ...params,
22
24
  modelName: _folder.FOLDER_MODEL_ID
23
- }));
25
+ });
24
26
  const getFolder = ({
25
27
  id,
26
28
  slug,
@@ -49,7 +51,7 @@ const createFolderOperations = params => {
49
51
  parentId
50
52
  });
51
53
  }
52
- return (0, _getFieldValues.getFolderFieldValues)(entry, _createAcoStorageOperations.baseFields);
54
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
53
55
  });
54
56
  };
55
57
  const checkExistingFolder = ({
@@ -62,8 +64,14 @@ const createFolderOperations = params => {
62
64
  slug,
63
65
  parentId
64
66
  } = params;
65
- const [existings] = await cms.listLatestEntries(model, {
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,
66
72
  where: {
73
+ // Folders always work with latest entries. We never publish them.
74
+ latest: true,
67
75
  type,
68
76
  slug,
69
77
  parentId,
@@ -71,7 +79,7 @@ const createFolderOperations = params => {
71
79
  },
72
80
  limit: 1
73
81
  });
74
- if (existings.length > 0) {
82
+ if (listResult?.items?.length > 0) {
75
83
  throw new _error.default(`Folder with slug "${slug}" already exists at this level.`, "FOLDER_ALREADY_EXISTS", {
76
84
  id,
77
85
  params
@@ -80,6 +88,21 @@ const createFolderOperations = params => {
80
88
  return;
81
89
  });
82
90
  };
91
+ const createFolderPath = async ({
92
+ slug,
93
+ parentId
94
+ }) => {
95
+ let parentFolder = null;
96
+ if (parentId) {
97
+ parentFolder = await getFolder({
98
+ id: parentId
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
+ }
103
+ }
104
+ return _Path.Path.create(slug, parentFolder?.path);
105
+ };
83
106
  return {
84
107
  getFolder,
85
108
  listFolders(params) {
@@ -88,11 +111,17 @@ const createFolderOperations = params => {
88
111
  sort,
89
112
  where
90
113
  } = params;
91
- const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
92
- sort: (0, _createListSort.createListSort)(sort),
93
- where: (0, _objectSpread2.default)({}, where || {})
94
- }));
95
- return [entries.map(entry => (0, _getFieldValues.getFolderFieldValues)(entry, _createAcoStorageOperations.baseFields)), meta];
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];
96
125
  });
97
126
  },
98
127
  createFolder({
@@ -106,10 +135,12 @@ const createFolderOperations = params => {
106
135
  parentId: data.parentId
107
136
  }
108
137
  });
109
- const entry = await cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
110
- parentId: data.parentId || null
111
- }));
112
- return (0, _getFieldValues.getFolderFieldValues)(entry, _createAcoStorageOperations.baseFields);
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);
113
144
  });
114
145
  },
115
146
  updateFolder({
@@ -132,20 +163,35 @@ const createFolderOperations = params => {
132
163
  parentId: parentId !== undefined ? parentId : original.parentId // parentId can be `null`
133
164
  }
134
165
  });
135
-
136
- const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
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
+ };
137
178
  const entry = await cms.updateEntry(model, id, input);
138
- return (0, _getFieldValues.getFolderFieldValues)(entry, _createAcoStorageOperations.baseFields);
179
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
139
180
  });
140
181
  },
141
182
  deleteFolder({
142
183
  id
143
184
  }) {
144
185
  return withModel(async model => {
145
- await cms.deleteEntry(model, id);
186
+ await cms.deleteEntry(model, id, {
187
+ permanently: true,
188
+ force: true
189
+ });
146
190
  return true;
147
191
  });
148
192
  }
149
193
  };
150
194
  };
151
- exports.createFolderOperations = createFolderOperations;
195
+ exports.createFolderOperations = createFolderOperations;
196
+
197
+ //# sourceMappingURL=folder.so.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFolderOperations","params","cms","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","getFolder","id","slug","type","parentId","model","entry","getEntryById","getEntry","where","latest","WebinyError","getFolderFieldValues","baseFields","checkExistingFolder","existings","listLatestEntries","id_not","limit","length","listFolders","sort","entries","meta","createListSort","map","createFolder","data","createEntry","updateFolder","original","undefined","input","updateEntry","deleteFolder","deleteEntry"],"sources":["folder.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { FOLDER_MODEL_ID } from \"./folder.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { getFolderFieldValues } from \"~/utils/getFieldValues\";\n\nimport { AcoFolderStorageOperations } from \"./folder.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 getFolderFieldValues(entry, baseFields);\n });\n };\n\n const checkExistingFolder = ({ id, params }: AcoCheckExistingFolderParams) => {\n return withModel(async model => {\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 return;\n });\n };\n\n return {\n getFolder,\n listFolders(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(entry => getFolderFieldValues(entry, baseFields)), 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 });\n\n return getFolderFieldValues(entry, baseFields);\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 ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(model, id, input);\n return getFolderFieldValues(entry, baseFields);\n });\n },\n deleteFolder({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\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":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAEA,IAAAO,UAAA,GAAAP,OAAA;AAYO,MAAMQ,sBAAsB,GAC/BC,MAAwC,IACX;EAC7B,MAAM;IAAEC;EAAI,CAAC,GAAGD,MAAM;EAEtB,MAAM;IAAEE;EAAU,CAAC,GAAG,IAAAC,gDAAuB,EAAC;IAC1C,GAAGH,MAAM;IACTI,SAAS,EAAEC;EACf,CAAC,CAAC;EAEF,MAAMC,SAAkD,GAAGA,CAAC;IAAEC,EAAE;IAAEC,IAAI;IAAEC,IAAI;IAAEC;EAAS,CAAC,KAAK;IACzF,OAAOR,SAAS,CAAC,MAAMS,KAAK,IAAI;MAC5B,IAAIC,KAAK;MAET,IAAIL,EAAE,EAAE;QACJK,KAAK,GAAG,MAAMX,GAAG,CAACY,YAAY,CAACF,KAAK,EAAEJ,EAAE,CAAC;MAC7C,CAAC,MAAM,IAAIC,IAAI,IAAIC,IAAI,EAAE;QACrBG,KAAK,GAAG,MAAMX,GAAG,CAACa,QAAQ,CAACH,KAAK,EAAE;UAC9BI,KAAK,EAAE;YAAEP,IAAI;YAAEC,IAAI;YAAEC,QAAQ;YAAEM,MAAM,EAAE;UAAK;QAChD,CAAC,CAAC;MACN;MAEA,IAAI,CAACJ,KAAK,EAAE;QACR,MAAM,IAAIK,cAAW,CAAC,wBAAwB,EAAE,kBAAkB,EAAE;UAChEV,EAAE;UACFC,IAAI;UACJC,IAAI;UACJC;QACJ,CAAC,CAAC;MACN;MAEA,OAAO,IAAAQ,0CAAoB,EAACN,KAAK,CAAC;IACtC,CAAC,CAAC;EACN,CAAC;EAED,MAAMO,mBAAmB,GAAGA,CAAC;IAAEZ,EAAE;IAAEP;EAAqC,CAAC,KAAK;IAC1E,OAAOE,SAAS,CAAC,MAAMS,KAAK,IAAI;MAC5B,MAAM;QAAEF,IAAI;QAAED,IAAI;QAAEE;MAAS,CAAC,GAAGV,MAAM;;MAEvC;MACA;MACA,MAAMoB,UAAU,GAAG,MAAMnB,GAAG,CAACoB,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACZ,KAAK,EAAE;QAC/D,GAAGX,MAAM;QACTe,KAAK,EAAE;UACH;UACAC,MAAM,EAAE,IAAI;UACZP,IAAI;UACJD,IAAI;UACJE,QAAQ;UACRc,MAAM,EAAEjB;QACZ,CAAC;QACDkB,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIL,UAAU,EAAEM,KAAK,EAAEC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,IAAIV,cAAW,CACjB,qBAAqBT,IAAI,iCAAiC,EAC1D,uBAAuB,EACvB;UACID,EAAE;UACFP;QACJ,CACJ,CAAC;MACL;MAEA;IACJ,CAAC,CAAC;EACN,CAAC;EAED,MAAM4B,gBAAgB,GAAG,MAAAA,CAAO;IAC5BpB,IAAI;IACJE;EAC+B,CAAC,KAAsB;IACtD,IAAImB,YAA2B,GAAG,IAAI;IAEtC,IAAInB,QAAQ,EAAE;MACVmB,YAAY,GAAG,MAAMvB,SAAS,CAAC;QAAEC,EAAE,EAAEG;MAAS,CAAC,CAAC;MAEhD,IAAI,CAACmB,YAAY,EAAE;QACf,MAAM,IAAIZ,cAAW,CACjB,6DAA6D,EAC7D,kDACJ,CAAC;MACL;IACJ;IAEA,OAAOa,UAAI,CAACC,MAAM,CAACvB,IAAI,EAAEqB,YAAY,EAAEG,IAAI,CAAC;EAChD,CAAC;EAED,OAAO;IACH1B,SAAS;IACT2B,WAAWA,CAACjC,MAAM,EAAE;MAChB,OAAOE,SAAS,CAAC,MAAMS,KAAK,IAAI;QAC5B,MAAM;UAAEuB,IAAI;UAAEnB;QAAM,CAAC,GAAGf,MAAM;QAE9B,MAAMmC,QAAQ,GACVD,IAAI,IACH;UACGE,KAAK,EAAE;QACX,CAAyB;QAE7B,MAAM,CAACd,OAAO,EAAEe,IAAI,CAAC,GAAG,MAAMpC,GAAG,CAACqC,iBAAiB,CAAC3B,KAAK,EAAE;UACvD,GAAGX,MAAM;UACTkC,IAAI,EAAE,IAAAK,8BAAc,EAACJ,QAAQ,CAAC;UAC9BpB,KAAK,EAAE;YACH,IAAIA,KAAK,IAAI,CAAC,CAAC;UACnB;QACJ,CAAC,CAAC;QAEF,OAAO,CAACO,OAAO,CAACkB,GAAG,CAACtB,0CAA4B,CAAC,EAAEmB,IAAI,CAAC;MAC5D,CAAC,CAAC;IACN,CAAC;IACDI,YAAYA,CAAC;MAAEC;IAAK,CAAC,EAAE;MACnB,OAAOxC,SAAS,CAAC,MAAMS,KAAK,IAAI;QAC5B,MAAMQ,mBAAmB,CAAC;UACtBnB,MAAM,EAAE;YACJS,IAAI,EAAEiC,IAAI,CAACjC,IAAI;YACfD,IAAI,EAAEkC,IAAI,CAAClC,IAAI;YACfE,QAAQ,EAAEgC,IAAI,CAAChC;UACnB;QACJ,CAAC,CAAC;QAEF,MAAME,KAAK,GAAG,MAAMX,GAAG,CAAC0C,WAAW,CAAChC,KAAK,EAAE;UACvC,GAAG+B,IAAI;UACPhC,QAAQ,EAAEgC,IAAI,CAAChC,QAAQ,IAAI,IAAI;UAC/BsB,IAAI,EAAE,MAAMJ,gBAAgB,CAACc,IAAI;QACrC,CAAC,CAAC;QAEF,OAAO,IAAAxB,0CAAoB,EAACN,KAAK,CAAC;MACtC,CAAC,CAAC;IACN,CAAC;IACDgC,YAAYA,CAAC;MAAErC,EAAE;MAAEmC;IAAK,CAAC,EAAE;MACvB,OAAOxC,SAAS,CAAC,MAAMS,KAAK,IAAI;QAC5B,MAAM;UAAEH,IAAI;UAAEE;QAAS,CAAC,GAAGgC,IAAI;QAE/B,MAAMG,QAAQ,GAAG,MAAMvC,SAAS,CAAC;UAAEC;QAAG,CAAC,CAAC;QAExC,MAAMY,mBAAmB,CAAC;UACtBZ,EAAE;UACFP,MAAM,EAAE;YACJS,IAAI,EAAEoC,QAAQ,CAACpC,IAAI;YACnBD,IAAI,EAAEA,IAAI,IAAIqC,QAAQ,CAACrC,IAAI;YAC3BE,QAAQ,EAAEA,QAAQ,KAAKoC,SAAS,GAAGpC,QAAQ,GAAGmC,QAAQ,CAACnC,QAAQ,CAAC;UACpE;QACJ,CAAC,CAAC;QAEF,MAAMqC,KAAK,GAAG;UACV;AACpB;AACA;AACA;UACoB,GAAG,IAAAC,aAAI,EAACH,QAAQ,EAAEI,4BAAiB,CAAC;UACpC,GAAGP,IAAI;UACPV,IAAI,EAAE,MAAMJ,gBAAgB,CAAC;YACzBpB,IAAI,EAAEA,IAAI,IAAIqC,QAAQ,CAACrC,IAAI;YAC3BE,QAAQ,EAAEA,QAAQ,KAAKoC,SAAS,GAAGpC,QAAQ,GAAGmC,QAAQ,CAACnC,QAAQ,CAAC;UACpE,CAAC;QACL,CAAC;QAED,MAAME,KAAK,GAAG,MAAMX,GAAG,CAACiD,WAAW,CAACvC,KAAK,EAAEJ,EAAE,EAAEwC,KAAK,CAAC;QACrD,OAAO,IAAA7B,0CAAoB,EAACN,KAAK,CAAC;MACtC,CAAC,CAAC;IACN,CAAC;IACDuC,YAAYA,CAAC;MAAE5C;IAAG,CAAC,EAAE;MACjB,OAAOL,SAAS,CAAC,MAAMS,KAAK,IAAI;QAC5B,MAAMV,GAAG,CAACmD,WAAW,CAACzC,KAAK,EAAEJ,EAAE,EAAE;UAC7B8C,WAAW,EAAE,IAAI;UACjBC,KAAK,EAAE;QACX,CAAC,CAAC;QACF,OAAO,IAAI;MACf,CAAC,CAAC;IACN;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAxD,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,42 +1,91 @@
1
- import { ListMeta, ListSort, User } from "../types";
2
- import { Topic } from "@webiny/pubsub/types";
1
+ import type { ListMeta, ListSort, User } from "../types";
2
+ import { type FolderPermission } from "../types";
3
+ import type { Topic } from "@webiny/pubsub/types";
3
4
  export interface Folder {
4
5
  id: string;
5
6
  entryId: string;
6
7
  createdOn: string;
7
- createdBy: User;
8
+ modifiedOn: string | null;
8
9
  savedOn: string;
10
+ createdBy: User;
11
+ modifiedBy: User | null;
12
+ savedBy: User;
9
13
  title: string;
10
14
  slug: string;
15
+ permissions?: FolderPermission[];
11
16
  type: string;
12
17
  parentId?: string | null;
18
+ path: string;
19
+ extensions?: Record<string, any>;
13
20
  }
14
21
  export interface ListFoldersWhere {
15
22
  type: string;
23
+ id_not_in?: string[];
16
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;
17
42
  }
18
43
  export interface ListFoldersParams {
19
44
  where: ListFoldersWhere;
20
45
  sort?: ListSort;
21
46
  limit?: number;
22
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[];
23
58
  }
24
- export declare type CreateFolderParams = Pick<Folder, "title" | "slug" | "type" | "parentId">;
59
+ export type CreateFolderParams = Pick<Folder, "title" | "slug" | "type" | "parentId">;
25
60
  export interface UpdateFolderParams {
26
61
  title?: string;
27
62
  slug?: string;
63
+ permissions?: FolderPermission[];
28
64
  parentId?: string;
29
65
  }
30
66
  export interface DeleteFolderParams {
31
67
  id: string;
32
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
+ }
33
79
  export interface StorageOperationsGetFolderParams {
34
80
  id?: string;
35
81
  slug?: string;
36
82
  type?: string;
37
83
  parentId?: string | null;
38
84
  }
39
- export declare type StorageOperationsListFoldersParams = ListFoldersParams;
85
+ export interface GetFolderParams {
86
+ id: string;
87
+ }
88
+ export type StorageOperationsListFoldersParams = ListFoldersParams;
40
89
  export interface StorageOperationsCreateFolderParams {
41
90
  data: CreateFolderParams;
42
91
  }
@@ -44,7 +93,7 @@ export interface StorageOperationsUpdateFolderParams {
44
93
  id: string;
45
94
  data: UpdateFolderParams;
46
95
  }
47
- export declare type StorageOperationsDeleteFolderParams = DeleteFolderParams;
96
+ export type StorageOperationsDeleteFolderParams = DeleteFolderParams;
48
97
  export interface OnFolderBeforeCreateTopicParams {
49
98
  input: CreateFolderParams;
50
99
  }
@@ -67,11 +116,21 @@ export interface OnFolderAfterDeleteTopicParams {
67
116
  folder: Folder;
68
117
  }
69
118
  export interface AcoFolderCrud {
70
- get(id: string): Promise<Folder>;
119
+ get(id: string, disablePermissions?: boolean): Promise<Folder>;
71
120
  list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;
121
+ listFolderLevelPermissionsTargets(): Promise<[
122
+ FolderLevelPermissionsTarget[],
123
+ FolderLevelPermissionsTargetListMeta
124
+ ]>;
125
+ listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;
72
126
  create(data: CreateFolderParams): Promise<Folder>;
73
127
  update(id: string, data: UpdateFolderParams): Promise<Folder>;
74
- 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
+ */
75
134
  getFolderWithAncestors(id: string): Promise<Folder[]>;
76
135
  onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;
77
136
  onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;
@@ -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 { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n createdBy: User;\n savedOn: string;\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?: ListSort;\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 getFolderWithAncestors(id: string): Promise<Folder[]>;\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