@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
@@ -0,0 +1,26 @@
1
+ import type { AcoContext, Folder } from "../../types";
2
+ interface UpdateFlpParams {
3
+ context: AcoContext;
4
+ queued?: string[];
5
+ isCloseToTimeout?: () => boolean;
6
+ handleTimeout?: (queued: string[]) => void;
7
+ }
8
+ export declare class UpdateFlp {
9
+ private context;
10
+ private readonly isCloseToTimeout?;
11
+ private readonly handleTimeout?;
12
+ private readonly queued;
13
+ private readonly flpsToUpdate;
14
+ constructor(params: UpdateFlpParams);
15
+ execute(folder: Folder): Promise<void>;
16
+ private collectBranchForUpdate;
17
+ private executeBatchUpdate;
18
+ private getQueuedList;
19
+ private setQueued;
20
+ private isQueued;
21
+ private clearQueuedList;
22
+ private listDirectChildren;
23
+ private getFlp;
24
+ private getFolderModel;
25
+ }
26
+ export {};
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UpdateFlp = void 0;
7
+ var _error = require("@webiny/error");
8
+ var _Path = require("../../utils/Path");
9
+ var _sharedAco = require("@webiny/shared-aco");
10
+ var _folder = require("../../folder/folder.model");
11
+ class UpdateFlp {
12
+ queued = new Set();
13
+ flpsToUpdate = new Map();
14
+ constructor(params) {
15
+ this.context = params.context;
16
+ this.queued = new Set(params.queued);
17
+ this.isCloseToTimeout = params.isCloseToTimeout;
18
+ this.handleTimeout = params.handleTimeout;
19
+ }
20
+ async execute(folder) {
21
+ try {
22
+ if (!folder) {
23
+ throw new _error.WebinyError("Missing `folder`, I can't update the FLP record.", "ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED", {
24
+ folder
25
+ });
26
+ }
27
+ const flp = await this.getFlp(folder);
28
+ const parentFlp = folder.parentId ? await this.context.aco.flp.get(folder.parentId) : null;
29
+
30
+ // Add the root folder to the update collection
31
+ this.flpsToUpdate.set(folder.id, {
32
+ slug: folder.slug,
33
+ parentId: folder.parentId ?? _sharedAco.ROOT_FOLDER,
34
+ path: _Path.Path.create(folder.slug, parentFlp?.path),
35
+ permissions: _sharedAco.Permissions.create(folder.permissions, parentFlp)
36
+ });
37
+
38
+ // Let's set the FLP as in queue
39
+ this.setQueued(flp.id);
40
+
41
+ // Get direct children and process each branch completely
42
+ const directChildren = await this.listDirectChildren(flp);
43
+ for (const child of directChildren) {
44
+ if (this.isCloseToTimeout?.()) {
45
+ await this.executeBatchUpdate();
46
+ this.handleTimeout?.(this.getQueuedList());
47
+ return;
48
+ }
49
+ await this.collectBranchForUpdate(child, flp);
50
+ }
51
+
52
+ // Execute batch update
53
+ await this.executeBatchUpdate();
54
+ } catch (error) {
55
+ // Clear the update collection in case of error
56
+ this.flpsToUpdate.clear();
57
+ this.queued.clear();
58
+ throw _error.WebinyError.from(error, {
59
+ message: "Error while updating FLP",
60
+ code: "ERROR_UPDATING_FLP_USE_CASE"
61
+ });
62
+ }
63
+ }
64
+ async collectBranchForUpdate(flp, parentFlp) {
65
+ if (this.isQueued(flp.id)) {
66
+ return;
67
+ }
68
+
69
+ // Get the parent's permissions from the update collection if available
70
+ const parentFlpData = this.flpsToUpdate.get(parentFlp.id);
71
+ const currentParentFlp = {
72
+ ...parentFlp,
73
+ ...(parentFlpData && {
74
+ ...parentFlpData
75
+ })
76
+ };
77
+
78
+ // Add the FLP to the update collection with inherited permissions
79
+ this.flpsToUpdate.set(flp.id, {
80
+ slug: flp.slug,
81
+ parentId: flp.parentId,
82
+ path: _Path.Path.create(flp.slug, currentParentFlp.path),
83
+ permissions: _sharedAco.Permissions.create(flp.permissions, currentParentFlp)
84
+ });
85
+
86
+ // Add the FLP to the queue list so we don't fetch it again
87
+ this.setQueued(flp.id);
88
+
89
+ // Process all children of this folder before moving to siblings
90
+ const children = await this.listDirectChildren(flp);
91
+ for (const child of children) {
92
+ if (this.isCloseToTimeout?.()) {
93
+ await this.executeBatchUpdate();
94
+ this.handleTimeout?.(this.getQueuedList());
95
+ return;
96
+ }
97
+ // Pass the current FLP as the parent for the child
98
+ await this.collectBranchForUpdate(child, flp);
99
+ }
100
+ }
101
+ async executeBatchUpdate() {
102
+ try {
103
+ const items = Array.from(this.flpsToUpdate.entries()).map(([id, {
104
+ slug,
105
+ parentId,
106
+ path,
107
+ permissions
108
+ }]) => {
109
+ return {
110
+ id,
111
+ data: {
112
+ slug,
113
+ parentId,
114
+ path,
115
+ permissions
116
+ }
117
+ };
118
+ });
119
+ await this.context.aco.flp.batchUpdate(items);
120
+
121
+ // Update all folders with the new path
122
+ const folderModel = await this.getFolderModel();
123
+ for (const item of items) {
124
+ const {
125
+ id,
126
+ data
127
+ } = item;
128
+ // Directly update the folder in CMS storage to bypass any folder update event triggers.
129
+ await this.context.cms.updateEntry(folderModel, id, {
130
+ path: data.path
131
+ });
132
+ }
133
+ } catch (error) {
134
+ throw _error.WebinyError.from(error, {
135
+ message: "Error while executing batch update of FLPs",
136
+ code: "BATCH_UPDATE_FLP_ERROR",
137
+ data: {
138
+ items: Array.from(this.flpsToUpdate.keys())
139
+ }
140
+ });
141
+ } finally {
142
+ // Clear the update collection after the batch update
143
+ this.flpsToUpdate.clear();
144
+
145
+ //Let's remove all the updated FLPs ids from the queue cache
146
+ this.clearQueuedList();
147
+ }
148
+ }
149
+ getQueuedList() {
150
+ return Array.from(this.queued);
151
+ }
152
+ setQueued(id) {
153
+ this.queued.add(id);
154
+ }
155
+ isQueued(id) {
156
+ return this.queued.has(id);
157
+ }
158
+ clearQueuedList() {
159
+ return this.queued.clear();
160
+ }
161
+ async listDirectChildren(flp) {
162
+ const [folders] = await this.context.aco.folder.listAll({
163
+ where: {
164
+ type: flp.type,
165
+ parentId: flp.id
166
+ },
167
+ disablePermissions: true
168
+ });
169
+ return await Promise.all(folders.map(folder => this.getFlp(folder)));
170
+ }
171
+ async getFlp({
172
+ id,
173
+ type,
174
+ parentId,
175
+ slug,
176
+ permissions
177
+ }) {
178
+ const flp = await this.context.aco.flp.get(id);
179
+ if (!flp) {
180
+ const parentFlp = parentId ? await this.context.aco.flp.get(parentId) : null;
181
+ return await this.context.aco.flp.create({
182
+ id,
183
+ type,
184
+ slug,
185
+ parentId: parentId ?? _sharedAco.ROOT_FOLDER,
186
+ path: _Path.Path.create(slug, parentFlp?.path),
187
+ permissions: _sharedAco.Permissions.create(permissions, parentFlp)
188
+ });
189
+ }
190
+ return flp;
191
+ }
192
+ async getFolderModel() {
193
+ return await this.context.cms.getModel(_folder.FOLDER_MODEL_ID);
194
+ }
195
+ }
196
+ exports.UpdateFlp = UpdateFlp;
197
+
198
+ //# sourceMappingURL=UpdateFlp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","require","_Path","_sharedAco","_folder","UpdateFlp","queued","Set","flpsToUpdate","Map","constructor","params","context","isCloseToTimeout","handleTimeout","execute","folder","WebinyError","flp","getFlp","parentFlp","parentId","aco","get","set","id","slug","ROOT_FOLDER","path","Path","create","permissions","Permissions","setQueued","directChildren","listDirectChildren","child","executeBatchUpdate","getQueuedList","collectBranchForUpdate","error","clear","from","message","code","isQueued","parentFlpData","currentParentFlp","children","items","Array","entries","map","data","batchUpdate","folderModel","getFolderModel","item","cms","updateEntry","keys","clearQueuedList","add","has","folders","listAll","where","type","disablePermissions","Promise","all","getModel","FOLDER_MODEL_ID","exports"],"sources":["UpdateFlp.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"~/utils/Path\";\nimport { Permissions, ROOT_FOLDER } from \"@webiny/shared-aco\";\nimport type { AcoContext, Folder, FolderLevelPermission, FolderPermission } from \"~/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\ninterface UpdateFlpParams {\n context: AcoContext;\n queued?: string[];\n isCloseToTimeout?: () => boolean;\n handleTimeout?: (queued: string[]) => void;\n}\n\ninterface FlpUpdateData {\n parentId: string;\n slug: string;\n path: string;\n permissions: FolderPermission[];\n}\n\nexport class UpdateFlp {\n private context: AcoContext;\n private readonly isCloseToTimeout?: () => boolean;\n private readonly handleTimeout?: (updated: string[]) => void;\n\n private readonly queued: Set<string> = new Set();\n private readonly flpsToUpdate: Map<string, FlpUpdateData> = new Map();\n\n constructor(params: UpdateFlpParams) {\n this.context = params.context;\n this.queued = new Set(params.queued);\n this.isCloseToTimeout = params.isCloseToTimeout;\n this.handleTimeout = params.handleTimeout;\n }\n\n async execute(folder: Folder) {\n try {\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder`, I can't update the FLP record.\",\n \"ERROR_UPDATING_FLP_USE_CASE_FOLDER_NOT_PROVIDED\",\n { folder }\n );\n }\n\n const flp = await this.getFlp(folder);\n const parentFlp = folder.parentId\n ? await this.context.aco.flp.get(folder.parentId)\n : null;\n\n // Add the root folder to the update collection\n this.flpsToUpdate.set(folder.id, {\n slug: folder.slug,\n parentId: folder.parentId ?? ROOT_FOLDER,\n path: Path.create(folder.slug, parentFlp?.path),\n permissions: Permissions.create(folder.permissions, parentFlp)\n });\n\n // Let's set the FLP as in queue\n this.setQueued(flp.id);\n\n // Get direct children and process each branch completely\n const directChildren = await this.listDirectChildren(flp);\n\n for (const child of directChildren) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n await this.collectBranchForUpdate(child, flp);\n }\n\n // Execute batch update\n await this.executeBatchUpdate();\n } catch (error) {\n // Clear the update collection in case of error\n this.flpsToUpdate.clear();\n this.queued.clear();\n throw WebinyError.from(error, {\n message: \"Error while updating FLP\",\n code: \"ERROR_UPDATING_FLP_USE_CASE\"\n });\n }\n }\n\n private async collectBranchForUpdate(\n flp: FolderLevelPermission,\n parentFlp: FolderLevelPermission\n ) {\n if (this.isQueued(flp.id)) {\n return;\n }\n\n // Get the parent's permissions from the update collection if available\n const parentFlpData = this.flpsToUpdate.get(parentFlp.id);\n const currentParentFlp = {\n ...parentFlp,\n ...(parentFlpData && { ...parentFlpData })\n };\n\n // Add the FLP to the update collection with inherited permissions\n this.flpsToUpdate.set(flp.id, {\n slug: flp.slug,\n parentId: flp.parentId,\n path: Path.create(flp.slug, currentParentFlp.path),\n permissions: Permissions.create(flp.permissions, currentParentFlp)\n });\n\n // Add the FLP to the queue list so we don't fetch it again\n this.setQueued(flp.id);\n\n // Process all children of this folder before moving to siblings\n const children = await this.listDirectChildren(flp);\n\n for (const child of children) {\n if (this.isCloseToTimeout?.()) {\n await this.executeBatchUpdate();\n this.handleTimeout?.(this.getQueuedList());\n return;\n }\n // Pass the current FLP as the parent for the child\n await this.collectBranchForUpdate(child, flp);\n }\n }\n\n private async executeBatchUpdate() {\n try {\n const items = Array.from(this.flpsToUpdate.entries()).map(\n ([id, { slug, parentId, path, permissions }]) => {\n return {\n id,\n data: {\n slug,\n parentId,\n path,\n permissions\n }\n };\n }\n );\n\n await this.context.aco.flp.batchUpdate(items);\n\n // Update all folders with the new path\n const folderModel = await this.getFolderModel();\n for (const item of items) {\n const { id, data } = item;\n // Directly update the folder in CMS storage to bypass any folder update event triggers.\n await this.context.cms.updateEntry(folderModel, id, { path: data.path });\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing batch update of FLPs\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: {\n items: Array.from(this.flpsToUpdate.keys())\n }\n });\n } finally {\n // Clear the update collection after the batch update\n this.flpsToUpdate.clear();\n\n //Let's remove all the updated FLPs ids from the queue cache\n this.clearQueuedList();\n }\n }\n\n private getQueuedList() {\n return Array.from(this.queued);\n }\n\n private setQueued(id: string) {\n this.queued.add(id);\n }\n\n private isQueued(id: string) {\n return this.queued.has(id);\n }\n\n private clearQueuedList() {\n return this.queued.clear();\n }\n\n private async listDirectChildren(flp: FolderLevelPermission): Promise<FolderLevelPermission[]> {\n const [folders] = await this.context.aco.folder.listAll({\n where: {\n type: flp.type,\n parentId: flp.id\n },\n disablePermissions: true\n });\n\n return await Promise.all(folders.map(folder => this.getFlp(folder)));\n }\n\n private async getFlp({ id, type, parentId, slug, permissions }: Folder) {\n const flp = await this.context.aco.flp.get(id);\n\n if (!flp) {\n const parentFlp = parentId ? await this.context.aco.flp.get(parentId) : null;\n\n return await this.context.aco.flp.create({\n id,\n type,\n slug,\n parentId: parentId ?? ROOT_FOLDER,\n path: Path.create(slug, parentFlp?.path),\n permissions: Permissions.create(permissions, parentFlp)\n });\n }\n\n return flp;\n }\n\n private async getFolderModel() {\n return await this.context.cms.getModel(FOLDER_MODEL_ID);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from "./CreateFlp";
2
+ export * from "./DeleteFlp";
3
+ export * from "./UpdateFlp";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _CreateFlp = require("./CreateFlp");
7
+ Object.keys(_CreateFlp).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _CreateFlp[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _CreateFlp[key];
14
+ }
15
+ });
16
+ });
17
+ var _DeleteFlp = require("./DeleteFlp");
18
+ Object.keys(_DeleteFlp).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _DeleteFlp[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _DeleteFlp[key];
25
+ }
26
+ });
27
+ });
28
+ var _UpdateFlp = require("./UpdateFlp");
29
+ Object.keys(_UpdateFlp).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _UpdateFlp[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _UpdateFlp[key];
36
+ }
37
+ });
38
+ });
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_CreateFlp","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_DeleteFlp","_UpdateFlp"],"sources":["index.ts"],"sourcesContent":["export * from \"./CreateFlp\";\nexport * from \"./DeleteFlp\";\nexport * from \"./UpdateFlp\";\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import type { CmsPrivateModelFull } from "@webiny/api-headless-cms";
3
+ import type { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
4
+ export type CmsModelField = Omit<BaseModelField, "storageId"> & {
5
+ modelIds?: string[];
6
+ };
7
+ export interface IFolderModelFieldsModifier {
8
+ setFields: (fields: BaseModelField[]) => void;
9
+ addField: (field: CmsModelField) => void;
10
+ }
11
+ export declare class FolderModelFieldsModifier implements IFolderModelFieldsModifier {
12
+ private fields;
13
+ private readonly namespace;
14
+ constructor(namespace: string);
15
+ setFields(fields: BaseModelField[]): void;
16
+ addField(field: CmsModelField): void;
17
+ }
18
+ interface CmsModelModifierCallableParams {
19
+ modifier: IFolderModelFieldsModifier;
20
+ }
21
+ export interface CmsModelModifierCallable {
22
+ (params: CmsModelModifierCallableParams): Promise<void> | void;
23
+ }
24
+ interface FolderCmsModelModifierPluginParams {
25
+ modifier: IFolderModelFieldsModifier;
26
+ callback: CmsModelModifierCallable;
27
+ }
28
+ export declare class FolderCmsModelModifierPlugin extends Plugin {
29
+ static type: string;
30
+ private readonly modifier;
31
+ private readonly callback;
32
+ constructor(params: FolderCmsModelModifierPluginParams);
33
+ modifyModel(model: CmsPrivateModelFull): Promise<void>;
34
+ }
35
+ export declare const createFolderModelModifier: (callback: CmsModelModifierCallable) => FolderCmsModelModifierPlugin;
36
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderModelModifier = exports.FolderModelFieldsModifier = exports.FolderCmsModelModifierPlugin = void 0;
7
+ var _plugins = require("@webiny/plugins");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
9
+ var _folder = require("./folder.model");
10
+ class FolderModelFieldsModifier {
11
+ fields = [];
12
+ constructor(namespace) {
13
+ this.namespace = namespace;
14
+ }
15
+ setFields(fields) {
16
+ this.fields = fields;
17
+ }
18
+ addField(field) {
19
+ const {
20
+ tags,
21
+ ...rest
22
+ } = field;
23
+ this.fields.push({
24
+ ...rest,
25
+ storageId: `${field.type}@${this.namespace}_${field.id}`,
26
+ tags: (tags ?? []).concat([`$namespace:${this.namespace}`])
27
+ });
28
+ }
29
+ }
30
+ exports.FolderModelFieldsModifier = FolderModelFieldsModifier;
31
+ class FolderCmsModelModifierPlugin extends _plugins.Plugin {
32
+ static type = "aco.folder.cms-model-modifier";
33
+ constructor(params) {
34
+ super();
35
+ this.modifier = params.modifier;
36
+ this.callback = params.callback;
37
+ }
38
+ async modifyModel(model) {
39
+ if (model.modelId !== _folder.FOLDER_MODEL_ID) {
40
+ return;
41
+ }
42
+ let extensionsField = model.fields.find(field => field.fieldId === "extensions");
43
+ if (!extensionsField) {
44
+ extensionsField = (0, _apiHeadlessCms.createModelField)({
45
+ label: "Extensions",
46
+ type: "object",
47
+ settings: {
48
+ layout: [],
49
+ fields: []
50
+ }
51
+ });
52
+ model.fields.push(extensionsField);
53
+ }
54
+ this.modifier.setFields(extensionsField.settings.fields);
55
+ await this.callback({
56
+ modifier: this.modifier
57
+ });
58
+ }
59
+ }
60
+ exports.FolderCmsModelModifierPlugin = FolderCmsModelModifierPlugin;
61
+ const createFolderModelModifier = callback => {
62
+ const modifier = new FolderModelFieldsModifier("global");
63
+ return new FolderCmsModelModifierPlugin({
64
+ callback,
65
+ modifier
66
+ });
67
+ };
68
+ exports.createFolderModelModifier = createFolderModelModifier;
69
+
70
+ //# sourceMappingURL=createFolderModelModifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_apiHeadlessCms","_folder","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","exports","FolderCmsModelModifierPlugin","Plugin","params","modifier","callback","modifyModel","model","modelId","FOLDER_MODEL_ID","extensionsField","find","fieldId","createModelField","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AASO,MAAMG,yBAAyB,CAAuC;EACjEC,MAAM,GAAqB,EAAE;EAGrCC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,SAASA,CAACH,MAAwB,EAAE;IAChC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAI,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAE/B,IAAI,CAACL,MAAM,CAACQ,IAAI,CAAC;MACb,GAAGD,IAAI;MACPE,SAAS,EAAE,GAAGJ,KAAK,CAACK,IAAI,IAAI,IAAI,CAACR,SAAS,IAAIG,KAAK,CAACM,EAAE,EAAE;MACxDL,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEM,MAAM,CAAC,CAAC,cAAc,IAAI,CAACV,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC;EACN;AACJ;AAACW,OAAA,CAAAd,yBAAA,GAAAA,yBAAA;AAeM,MAAMe,4BAA4B,SAASC,eAAM,CAAC;EACrD,OAAuBL,IAAI,GAAG,+BAA+B;EAI7DT,WAAWA,CAACe,MAA0C,EAAE;IACpD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAC/B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;EACnC;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACC,OAAO,KAAKC,uBAAe,EAAE;MACnC;IACJ;IAEA,IAAIC,eAAe,GAAGH,KAAK,CAACpB,MAAM,CAACwB,IAAI,CAACnB,KAAK,IAAIA,KAAK,CAACoB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,gCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBjB,IAAI,EAAE,QAAQ;QACdkB,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACV7B,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFoB,KAAK,CAACpB,MAAM,CAACQ,IAAI,CAACe,eAAe,CAAC;IACtC;IAEA,IAAI,CAACN,QAAQ,CAACd,SAAS,CAACoB,eAAe,CAACK,QAAQ,CAAE5B,MAAO,CAAC;IAE1D,MAAM,IAAI,CAACkB,QAAQ,CAAC;MAAED,QAAQ,EAAE,IAAI,CAACA;IAAS,CAAC,CAAC;EACpD;AACJ;AAACJ,OAAA,CAAAC,4BAAA,GAAAA,4BAAA;AAEM,MAAMgB,yBAAyB,GAAIZ,QAAkC,IAAK;EAC7E,MAAMD,QAAQ,GAAG,IAAIlB,yBAAyB,CAAC,QAAQ,CAAC;EAExD,OAAO,IAAIe,4BAA4B,CAAC;IACpCI,QAAQ;IACRD;EACJ,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAiB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ export interface CreateFolderTypeDefsParams {
3
+ model: CmsModel;
4
+ models: CmsModel[];
5
+ plugins: CmsFieldTypePlugins;
6
+ }
7
+ export declare const createFolderTypeDefs: (params: CreateFolderTypeDefsParams) => string;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFolderTypeDefs = void 0;
7
+ var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
8
+ var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
9
+ const removeFieldRequiredValidation = field => {
10
+ if (field.validation) {
11
+ field.validation = field.validation.filter(validation => validation.name !== "required");
12
+ }
13
+ if (field.listValidation) {
14
+ field.listValidation = field.listValidation.filter(v => v.name !== "required");
15
+ }
16
+ return field;
17
+ };
18
+ const createUpdateFields = fields => {
19
+ return fields.reduce((collection, field) => {
20
+ collection.push(removeFieldRequiredValidation({
21
+ ...field
22
+ }));
23
+ return collection;
24
+ }, []);
25
+ };
26
+ const createFolderTypeDefs = params => {
27
+ const {
28
+ model,
29
+ models,
30
+ plugins: fieldTypePlugins
31
+ } = params;
32
+ const {
33
+ fields
34
+ } = model;
35
+ const fieldTypes = (0, _renderFields.renderFields)({
36
+ models,
37
+ model,
38
+ fields,
39
+ type: "manage",
40
+ fieldTypePlugins
41
+ });
42
+ const inputCreateFields = (0, _renderInputFields.renderInputFields)({
43
+ models,
44
+ model,
45
+ fields,
46
+ fieldTypePlugins
47
+ });
48
+ const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
49
+ models,
50
+ model,
51
+ fields: createUpdateFields(fields),
52
+ fieldTypePlugins
53
+ });
54
+ return /* GraphQL */`
55
+ ${fieldTypes.map(f => f.typeDefs).join("\n")}
56
+
57
+ type CompressedResponse {
58
+ compression: String
59
+ value: String
60
+ }
61
+
62
+ type Folder {
63
+ id: ID!
64
+ # Tells us if the current user can manage folder structure.
65
+ canManageStructure: Boolean
66
+
67
+ # Tells us if the current user can manage folder permissions.
68
+ canManagePermissions: Boolean
69
+
70
+ # Tells us if the current user can manage folder content.
71
+ canManageContent: Boolean
72
+
73
+ # Tells us if the folder contains non-inherited permissions.
74
+ hasNonInheritedPermissions: Boolean
75
+
76
+ createdOn: DateTime
77
+ modifiedOn: DateTime
78
+ savedOn: DateTime
79
+ createdBy: AcoUser
80
+ modifiedBy: AcoUser
81
+ savedBy: AcoUser
82
+
83
+ ${fieldTypes.map(f => f.fields).join("\n")}
84
+ }
85
+
86
+ ${inputCreateFields.map(f => f.typeDefs).join("\n")}
87
+
88
+ input FolderCreateInput {
89
+ # Pass an ID if you want to create a folder with a specific ID.
90
+ id: ID
91
+
92
+ ${inputCreateFields.map(f => f.fields).join("\n")}
93
+ }
94
+
95
+ input FolderUpdateInput {
96
+ ${inputUpdateFields.map(f => f.fields).join("\n")}
97
+ }
98
+
99
+ input FoldersListWhereInput {
100
+ type: String!
101
+ parentId: ID
102
+ parentId_in: [ID]
103
+ slug: String
104
+ slug_not: String
105
+ slug_contains: String
106
+ slug_not_contains: String
107
+ slug_in: [String]
108
+ slug_not_in: [String]
109
+ slug_startsWith: String
110
+ slug_not_startsWith: String
111
+ path: String
112
+ path_not: String
113
+ path_contains: String
114
+ path_not_contains: String
115
+ path_in: [String]
116
+ path_not_in: [String]
117
+ path_startsWith: String
118
+ path_not_startsWith: String
119
+ createdBy: ID
120
+ }
121
+
122
+ type FolderResponse {
123
+ data: Folder
124
+ error: AcoError
125
+ }
126
+
127
+ type FoldersListResponse {
128
+ data: [Folder]
129
+ error: AcoError
130
+ meta: AcoMeta
131
+ }
132
+
133
+ type FoldersListCompressedResponse {
134
+ data: CompressedResponse
135
+ error: AcoError
136
+ }
137
+
138
+ type FoldersHierarchyData {
139
+ parents: [Folder]
140
+ siblings: [Folder]
141
+ }
142
+
143
+ type FoldersHierarchyResponse {
144
+ data: FoldersHierarchyData
145
+ error: AcoError
146
+ }
147
+
148
+ type FolderLevelPermissionsTarget {
149
+ id: ID!
150
+ type: String!
151
+ target: ID!
152
+ name: String!
153
+ meta: JSON
154
+ }
155
+
156
+ type FolderLevelPermissionsTargetsListMeta {
157
+ totalCount: Int!
158
+ }
159
+
160
+ type FolderLevelPermissionsTargetsListResponse {
161
+ data: [FolderLevelPermissionsTarget]
162
+ meta: FolderLevelPermissionsTargetsListMeta
163
+ error: AcoError
164
+ }
165
+
166
+ type FolderModelResponse {
167
+ data: JSON
168
+ error: AcoError
169
+ }
170
+
171
+ extend type AcoQuery {
172
+ getFolderModel: FolderModelResponse!
173
+ getFolder(id: ID!): FolderResponse
174
+ listFolders(
175
+ where: FoldersListWhereInput!
176
+ limit: Int
177
+ after: String
178
+ sort: AcoSort
179
+ ): FoldersListResponse
180
+ listFoldersCompressed(
181
+ where: FoldersListWhereInput!
182
+ limit: Int
183
+ after: String
184
+ sort: AcoSort
185
+ ): FoldersListCompressedResponse
186
+ getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse
187
+ listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
188
+ }
189
+
190
+ extend type AcoMutation {
191
+ createFolder(data: FolderCreateInput!): FolderResponse
192
+ updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
193
+ deleteFolder(id: ID!): AcoBooleanResponse
194
+ }
195
+
196
+ extend type AcoFolder_Permissions {
197
+ inheritedFrom: ID
198
+ }
199
+
200
+ extend input AcoFolder_PermissionsInput {
201
+ inheritedFrom: ID
202
+ }
203
+ `;
204
+ };
205
+ exports.createFolderTypeDefs = createFolderTypeDefs;
206
+
207
+ //# sourceMappingURL=createFolderTypeDefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n slug: String\n slug_not: String\n slug_contains: String\n slug_not_contains: String\n slug_in: [String]\n slug_not_in: [String]\n slug_startsWith: String\n slug_not_startsWith: String\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { AcoContext, Folder } from "../types";
2
+ interface EnsureFolderIsEmptyParams {
3
+ context: AcoContext;
4
+ folder: Pick<Folder, "id" | "type">;
5
+ hasContentCallback: () => boolean | Promise<boolean>;
6
+ }
7
+ export declare const ensureFolderIsEmpty: ({ context, folder, hasContentCallback }: EnsureFolderIsEmptyParams) => Promise<void>;
8
+ export {};