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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/constants.d.ts +3 -0
  2. package/constants.js +11 -0
  3. package/constants.js.map +1 -0
  4. package/createAcoContext.d.ts +3 -1
  5. package/createAcoContext.js +13 -99
  6. package/createAcoContext.js.map +1 -1
  7. package/createAcoHooks.js +2 -0
  8. package/createAcoHooks.js.map +1 -1
  9. package/createAcoStorageOperations.d.ts +2 -0
  10. package/createAcoStorageOperations.js +5 -3
  11. package/createAcoStorageOperations.js.map +1 -1
  12. package/createAcoTasks.d.ts +1 -0
  13. package/createAcoTasks.js +13 -0
  14. package/createAcoTasks.js.map +1 -0
  15. package/filter/filter.crud.js +7 -7
  16. package/filter/filter.crud.js.map +1 -1
  17. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  18. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  19. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  20. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  21. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  22. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  23. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  24. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  25. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  26. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  27. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  28. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  29. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  30. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  31. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  32. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  33. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  34. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  35. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  36. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  37. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  38. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  39. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  40. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  41. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  42. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  43. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  44. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  45. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  46. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  47. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  48. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  49. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  50. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  51. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  52. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  53. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  54. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  55. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  56. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  57. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  58. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  59. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  60. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  61. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  62. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  63. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  64. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  65. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  66. package/flp/FolderLevelPermissions/index.js +116 -0
  67. package/flp/FolderLevelPermissions/index.js.map +1 -0
  68. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  69. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +43 -0
  70. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  71. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  72. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  73. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  74. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  75. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  76. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  77. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  78. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +36 -0
  79. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  80. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  81. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  82. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  83. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  84. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  85. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  86. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  87. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  88. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  89. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  90. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  91. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  92. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  93. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  94. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  95. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  96. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  97. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  98. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  99. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  100. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  101. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  102. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  103. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  104. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  105. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  106. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  107. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  108. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  109. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  110. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  111. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  112. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  113. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  114. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  115. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  116. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  117. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  118. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  119. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  120. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  121. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  122. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +10 -0
  123. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +53 -0
  124. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  125. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  126. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +40 -0
  127. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  128. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  129. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  130. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  131. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  132. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  133. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  134. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  135. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  136. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  137. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  138. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  139. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  140. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  141. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  142. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  143. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  144. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  145. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  146. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  147. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  148. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  149. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  150. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  151. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  152. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  153. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  154. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  155. package/flp/flp.crud.d.ts +9 -0
  156. package/flp/flp.crud.js +172 -0
  157. package/flp/flp.crud.js.map +1 -0
  158. package/flp/flp.so.d.ts +26 -0
  159. package/flp/flp.so.js +304 -0
  160. package/flp/flp.so.js.map +1 -0
  161. package/flp/flp.types.d.ts +159 -0
  162. package/flp/flp.types.js +7 -0
  163. package/flp/flp.types.js.map +1 -0
  164. package/flp/hooks/index.d.ts +2 -0
  165. package/flp/hooks/index.js +17 -0
  166. package/flp/hooks/index.js.map +1 -0
  167. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  168. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  169. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  170. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  171. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  172. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  173. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  174. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  175. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  176. package/flp/index.d.ts +5 -0
  177. package/flp/index.js +62 -0
  178. package/flp/index.js.map +1 -0
  179. package/flp/tasks/createFlp.task.d.ts +2 -0
  180. package/flp/tasks/createFlp.task.js +49 -0
  181. package/flp/tasks/createFlp.task.js.map +1 -0
  182. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  183. package/flp/tasks/deleteFlp.task.js +49 -0
  184. package/flp/tasks/deleteFlp.task.js.map +1 -0
  185. package/flp/tasks/index.d.ts +5 -0
  186. package/flp/tasks/index.js +20 -0
  187. package/flp/tasks/index.js.map +1 -0
  188. package/flp/tasks/syncFlp.task.d.ts +2 -0
  189. package/flp/tasks/syncFlp.task.js +126 -0
  190. package/flp/tasks/syncFlp.task.js.map +1 -0
  191. package/flp/tasks/updateFlp.task.d.ts +2 -0
  192. package/flp/tasks/updateFlp.task.js +55 -0
  193. package/flp/tasks/updateFlp.task.js.map +1 -0
  194. package/flp/useCases/CreateFlp.d.ts +7 -0
  195. package/flp/useCases/CreateFlp.js +52 -0
  196. package/flp/useCases/CreateFlp.js.map +1 -0
  197. package/flp/useCases/DeleteFlp.d.ts +6 -0
  198. package/flp/useCases/DeleteFlp.js +30 -0
  199. package/flp/useCases/DeleteFlp.js.map +1 -0
  200. package/flp/useCases/Path.d.ts +3 -0
  201. package/flp/useCases/Path.js +18 -0
  202. package/flp/useCases/Path.js.map +1 -0
  203. package/flp/useCases/Permissions.d.ts +4 -0
  204. package/flp/useCases/Permissions.js +38 -0
  205. package/flp/useCases/Permissions.js.map +1 -0
  206. package/flp/useCases/UpdateFlp.d.ts +25 -0
  207. package/flp/useCases/UpdateFlp.js +182 -0
  208. package/flp/useCases/UpdateFlp.js.map +1 -0
  209. package/flp/useCases/index.d.ts +3 -0
  210. package/flp/useCases/index.js +40 -0
  211. package/flp/useCases/index.js.map +1 -0
  212. package/folder/createFolderTypeDefs.js +13 -2
  213. package/folder/createFolderTypeDefs.js.map +1 -1
  214. package/folder/folder.crud.d.ts +3 -6
  215. package/folder/folder.crud.js +90 -231
  216. package/folder/folder.crud.js.map +1 -1
  217. package/folder/folder.gql.js +30 -8
  218. package/folder/folder.gql.js.map +1 -1
  219. package/folder/folder.so.js +4 -1
  220. package/folder/folder.so.js.map +1 -1
  221. package/folder/folder.types.d.ts +17 -3
  222. package/folder/folder.types.js.map +1 -1
  223. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  224. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  225. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  226. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  227. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  228. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  229. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +24 -0
  230. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  231. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  232. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  233. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  234. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  235. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  236. package/folder/useCases/CreateFolder/index.js +20 -0
  237. package/folder/useCases/CreateFolder/index.js.map +1 -0
  238. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  239. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  240. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  241. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  242. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  243. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  244. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  245. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  246. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  247. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  248. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  249. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  250. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  251. package/folder/useCases/DeleteFolder/index.js +20 -0
  252. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  253. package/folder/useCases/GetAncestors/GetAncestors.d.ts +5 -0
  254. package/folder/useCases/GetAncestors/GetAncestors.js +57 -0
  255. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  256. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +8 -0
  257. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  258. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  259. package/folder/useCases/GetAncestors/index.d.ts +4 -0
  260. package/folder/useCases/GetAncestors/index.js +16 -0
  261. package/folder/useCases/GetAncestors/index.js.map +1 -0
  262. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  263. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  264. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  265. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +24 -0
  266. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  267. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  268. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  269. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  270. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  271. package/folder/useCases/GetFolder/index.d.ts +13 -0
  272. package/folder/useCases/GetFolder/index.js +19 -0
  273. package/folder/useCases/GetFolder/index.js.map +1 -0
  274. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  275. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  276. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  277. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  278. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  279. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  280. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  281. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  282. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  283. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  284. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  285. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  286. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  287. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  288. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  289. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  290. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  291. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  292. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  293. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  294. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  295. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  296. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  297. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  298. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  299. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  300. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  301. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  302. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  303. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  304. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  305. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  306. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  307. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  308. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  309. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  310. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  311. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  312. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  313. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  314. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  315. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  316. package/folder/useCases/ListFolders/index.d.ts +13 -0
  317. package/folder/useCases/ListFolders/index.js +19 -0
  318. package/folder/useCases/ListFolders/index.js.map +1 -0
  319. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  320. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  321. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  322. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  323. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  324. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  325. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  326. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  327. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  328. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +25 -0
  329. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  330. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  331. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  332. package/folder/useCases/UpdateFolder/index.js +20 -0
  333. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  334. package/folder/useCases/index.d.ts +8 -0
  335. package/folder/useCases/index.js +95 -0
  336. package/folder/useCases/index.js.map +1 -0
  337. package/index.d.ts +3 -1
  338. package/index.js +3 -2
  339. package/index.js.map +1 -1
  340. package/package.json +28 -26
  341. package/record/record.crud.js +10 -10
  342. package/record/record.crud.js.map +1 -1
  343. package/record/record.so.js +2 -1
  344. package/record/record.so.js.map +1 -1
  345. package/types.d.ts +15 -6
  346. package/types.js +12 -0
  347. package/types.js.map +1 -1
  348. package/utils/decorators/CmsEntriesCrudDecorators.js +41 -65
  349. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  350. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  351. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  352. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  353. package/utils/decorators/ListEntriesFactory.d.ts +15 -0
  354. package/utils/decorators/ListEntriesFactory.js +107 -0
  355. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  356. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +7 -0
  357. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
  358. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  359. package/utils/decorators/hasRootFolderId.js +27 -0
  360. package/utils/decorators/hasRootFolderId.js.map +1 -0
  361. package/utils/pickEntryFieldValues.js +1 -1
  362. package/utils/pickEntryFieldValues.js.map +1 -1
  363. package/utils/FolderLevelPermissions.d.ts +0 -75
  364. package/utils/FolderLevelPermissions.js +0 -390
  365. package/utils/FolderLevelPermissions.js.map +0 -1
  366. package/utils/decorators/constants.d.ts +0 -1
  367. package/utils/decorators/constants.js +0 -9
  368. package/utils/decorators/constants.js.map +0 -1
  369. package/utils/decorators/createFolderType.d.ts +0 -2
  370. package/utils/decorators/createFolderType.js +0 -18
  371. package/utils/decorators/createFolderType.js.map +0 -1
  372. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  373. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  374. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  375. package/utils/decorators/where.d.ts +0 -15
  376. package/utils/decorators/where.js +0 -60
  377. package/utils/decorators/where.js.map +0 -1
  378. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  379. package/utils/getFolderAndItsAncestors.js +0 -53
  380. package/utils/getFolderAndItsAncestors.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
+ import type { AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations, FolderLevelPermission, StorageOperationsCreateFlpParams, StorageOperationsDeleteFlpParams, StorageOperationsGetFlpParams, StorageOperationsListFlpsParams, StorageOperationsUpdateFlpParams, StorageOperationsBatchUpdateFlpParams } from "./flp.types";
3
+ interface StorageOperationsConfig {
4
+ documentClient: DynamoDBDocument;
5
+ }
6
+ export interface CreateTableParams {
7
+ name?: string;
8
+ documentClient: DynamoDBDocument;
9
+ }
10
+ declare class FolderLevelPermissionsStorageOperations implements IAcoFolderLevelPermissionsStorageOperations {
11
+ private readonly entity;
12
+ private readonly table;
13
+ constructor({ documentClient }: StorageOperationsConfig);
14
+ list({ where: { tenant, locale, type, path_startsWith, parentId } }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;
15
+ get({ tenant, locale, id }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;
16
+ create({ data }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;
17
+ update({ data: inputData, original }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;
18
+ delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void>;
19
+ batchUpdate({ items }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;
20
+ private createEntity;
21
+ private createTable;
22
+ private createKeys;
23
+ private createGsiKeys;
24
+ }
25
+ export declare const createFlpOperations: (params: StorageOperationsConfig) => FolderLevelPermissionsStorageOperations;
26
+ export {};
package/flp/flp.so.js ADDED
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFlpOperations = void 0;
7
+ var _toolbox = require("@webiny/db-dynamodb/toolbox");
8
+ var _dbDynamodb = require("@webiny/db-dynamodb");
9
+ var _EntityWriteBatch = require("@webiny/db-dynamodb/utils/entity/EntityWriteBatch");
10
+ var _error = require("@webiny/error");
11
+ var _utils = require("@webiny/utils");
12
+ class FolderLevelPermissionsStorageOperations {
13
+ constructor({
14
+ documentClient
15
+ }) {
16
+ this.table = this.createTable({
17
+ documentClient
18
+ });
19
+ this.entity = this.createEntity({
20
+ table: this.table,
21
+ name: "ACO.flp"
22
+ });
23
+ }
24
+ async list({
25
+ where: {
26
+ tenant,
27
+ locale,
28
+ type,
29
+ path_startsWith,
30
+ parentId
31
+ }
32
+ }) {
33
+ try {
34
+ if (parentId) {
35
+ const entries = await (0, _dbDynamodb.queryAllClean)({
36
+ entity: this.entity,
37
+ partitionKey: `T#${tenant}#L#${locale}#FLP`,
38
+ options: {
39
+ index: "GSI2",
40
+ eq: parentId
41
+ }
42
+ });
43
+ return entries.map(entry => entry.data);
44
+ }
45
+ if (path_startsWith) {
46
+ const entries = await (0, _dbDynamodb.queryAllClean)({
47
+ entity: this.entity,
48
+ partitionKey: `T#${tenant}#L#${locale}#AT#${type}#FLP`,
49
+ options: {
50
+ index: "GSI1",
51
+ beginsWith: path_startsWith
52
+ }
53
+ });
54
+ return entries.map(entry => entry.data);
55
+ }
56
+ throw new _error.WebinyError("Missing required parameters.", "LIST_FLP_MISSING_PARAMETERS", {
57
+ tenant,
58
+ locale,
59
+ type,
60
+ path_startsWith,
61
+ parentId
62
+ });
63
+ } catch (err) {
64
+ throw _error.WebinyError.from(err, {
65
+ message: "Could not list folder level permissions.",
66
+ code: "LIST_FLP_ERROR"
67
+ });
68
+ }
69
+ }
70
+ async get({
71
+ tenant,
72
+ locale,
73
+ id
74
+ }) {
75
+ try {
76
+ const entry = await (0, _dbDynamodb.getClean)({
77
+ entity: this.entity,
78
+ keys: this.createKeys({
79
+ tenant,
80
+ locale,
81
+ id
82
+ })
83
+ });
84
+ if (!entry) {
85
+ return null;
86
+ }
87
+ return entry.data;
88
+ } catch (err) {
89
+ throw _error.WebinyError.from(err, {
90
+ message: "Could not load folder level permission.",
91
+ code: "GET_FLP_ERROR",
92
+ data: {
93
+ tenant,
94
+ locale,
95
+ id
96
+ }
97
+ });
98
+ }
99
+ }
100
+ async create({
101
+ data
102
+ }) {
103
+ const keys = {
104
+ ...this.createKeys(data),
105
+ ...this.createGsiKeys(data)
106
+ };
107
+ try {
108
+ await (0, _dbDynamodb.put)({
109
+ entity: this.entity,
110
+ item: {
111
+ ...keys,
112
+ data
113
+ }
114
+ });
115
+ return data;
116
+ } catch (err) {
117
+ throw _error.WebinyError.from(err, {
118
+ message: "Could not create folder level permission.",
119
+ code: "CREATE_FLP_ERROR",
120
+ data: {
121
+ keys,
122
+ data
123
+ }
124
+ });
125
+ }
126
+ }
127
+ async update({
128
+ data: inputData,
129
+ original
130
+ }) {
131
+ try {
132
+ const data = {
133
+ ...original,
134
+ ...inputData
135
+ };
136
+ const keys = {
137
+ ...this.createKeys(data),
138
+ ...this.createGsiKeys(data)
139
+ };
140
+ await (0, _dbDynamodb.put)({
141
+ entity: this.entity,
142
+ item: {
143
+ ...keys,
144
+ data
145
+ }
146
+ });
147
+ return data;
148
+ } catch (err) {
149
+ throw _error.WebinyError.from(err, {
150
+ message: "Could not update folder level permission.",
151
+ code: "UPDATE_FLP_ERROR",
152
+ data: {
153
+ inputData,
154
+ original
155
+ }
156
+ });
157
+ }
158
+ }
159
+ async delete({
160
+ flp
161
+ }) {
162
+ const keys = this.createKeys(flp);
163
+ try {
164
+ await (0, _dbDynamodb.deleteItem)({
165
+ entity: this.entity,
166
+ keys
167
+ });
168
+ } catch (err) {
169
+ throw _error.WebinyError.from(err, {
170
+ message: "Could not delete folder level permission.",
171
+ code: "DELETE_FLP_ERROR",
172
+ data: {
173
+ keys,
174
+ flp
175
+ }
176
+ });
177
+ }
178
+ }
179
+ async batchUpdate({
180
+ items
181
+ }) {
182
+ try {
183
+ const batch = (0, _EntityWriteBatch.createEntityWriteBatch)({
184
+ entity: this.entity
185
+ });
186
+ const updatedItems = [];
187
+ for (const {
188
+ original,
189
+ data: inputData
190
+ } of items) {
191
+ const data = {
192
+ ...original,
193
+ ...inputData
194
+ };
195
+ const keys = {
196
+ ...this.createKeys(data),
197
+ ...this.createGsiKeys(data)
198
+ };
199
+ batch.put({
200
+ ...keys,
201
+ data
202
+ });
203
+ updatedItems.push(data);
204
+ }
205
+ await (0, _utils.executeWithRetry)(async () => {
206
+ return await batch.execute();
207
+ });
208
+ return updatedItems;
209
+ } catch (err) {
210
+ throw _error.WebinyError.from(err, {
211
+ message: "Could not batch update folder level permissions.",
212
+ code: "BATCH_UPDATE_FLP_ERROR",
213
+ data: {
214
+ items
215
+ }
216
+ });
217
+ }
218
+ }
219
+ createEntity = params => {
220
+ return new _toolbox.Entity({
221
+ name: params.name,
222
+ table: params.table,
223
+ attributes: {
224
+ PK: {
225
+ partitionKey: true
226
+ },
227
+ SK: {
228
+ sortKey: true
229
+ },
230
+ GSI1_PK: {
231
+ type: "string",
232
+ required: true
233
+ },
234
+ GSI1_SK: {
235
+ type: "string",
236
+ required: true
237
+ },
238
+ GSI2_PK: {
239
+ type: "string",
240
+ required: true
241
+ },
242
+ GSI2_SK: {
243
+ type: "string",
244
+ required: true
245
+ },
246
+ TYPE: {
247
+ type: "string"
248
+ },
249
+ data: {
250
+ type: "map"
251
+ }
252
+ }
253
+ });
254
+ };
255
+ createTable = ({
256
+ name,
257
+ documentClient
258
+ }) => {
259
+ return new _toolbox.Table({
260
+ name: name || String(process.env.DB_TABLE),
261
+ partitionKey: "PK",
262
+ sortKey: "SK",
263
+ DocumentClient: documentClient,
264
+ indexes: {
265
+ GSI1: {
266
+ partitionKey: "GSI1_PK",
267
+ sortKey: "GSI1_SK"
268
+ },
269
+ GSI2: {
270
+ partitionKey: "GSI2_PK",
271
+ sortKey: "GSI2_SK"
272
+ }
273
+ },
274
+ autoExecute: true,
275
+ autoParse: true
276
+ });
277
+ };
278
+ createKeys = ({
279
+ id,
280
+ tenant,
281
+ locale
282
+ }) => ({
283
+ PK: `T#${tenant}#L#${locale}#FLP#${id}`,
284
+ SK: `A`
285
+ });
286
+ createGsiKeys = ({
287
+ tenant,
288
+ locale,
289
+ type,
290
+ path,
291
+ parentId
292
+ }) => ({
293
+ GSI1_PK: `T#${tenant}#L#${locale}#AT#${type}#FLP`,
294
+ GSI1_SK: path,
295
+ GSI2_PK: `T#${tenant}#L#${locale}#FLP`,
296
+ GSI2_SK: parentId
297
+ });
298
+ }
299
+ const createFlpOperations = params => {
300
+ return new FolderLevelPermissionsStorageOperations(params);
301
+ };
302
+ exports.createFlpOperations = createFlpOperations;
303
+
304
+ //# sourceMappingURL=flp.so.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_toolbox","require","_dbDynamodb","_EntityWriteBatch","_error","_utils","FolderLevelPermissionsStorageOperations","constructor","documentClient","table","createTable","entity","createEntity","name","list","where","tenant","locale","type","path_startsWith","parentId","entries","queryAllClean","partitionKey","options","index","eq","map","entry","data","beginsWith","WebinyError","err","from","message","code","get","id","getClean","keys","createKeys","create","createGsiKeys","put","item","update","inputData","original","delete","flp","deleteItem","batchUpdate","items","batch","createEntityWriteBatch","updatedItems","push","executeWithRetry","execute","params","Entity","attributes","PK","SK","sortKey","GSI1_PK","required","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","Table","String","process","env","DB_TABLE","DocumentClient","indexes","GSI1","GSI2","autoExecute","autoParse","path","createFlpOperations","exports"],"sources":["flp.so.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { deleteItem, getClean, put, queryAllClean } from \"@webiny/db-dynamodb\";\nimport { createEntityWriteBatch } from \"@webiny/db-dynamodb/utils/entity/EntityWriteBatch\";\n\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations,\n FolderLevelPermission,\n StorageOperationsCreateFlpParams,\n StorageOperationsDeleteFlpParams,\n StorageOperationsGetFlpParams,\n StorageOperationsListFlpsParams,\n StorageOperationsUpdateFlpParams,\n StorageOperationsBatchUpdateFlpParams\n} from \"~/flp/flp.types\";\nimport { executeWithRetry } from \"@webiny/utils\";\n\ninterface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\nexport interface CreateTableParams {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\ninterface CreateEntityParams {\n table: Table<string, string, string>;\n name: string;\n}\n\ninterface CreateKeysParams {\n tenant: string;\n locale: string;\n id: string;\n}\n\ninterface CreateGsiKeysParams {\n tenant: string;\n locale: string;\n id: string;\n type: string;\n path: string;\n parentId: string;\n}\n\nclass FolderLevelPermissionsStorageOperations\n implements IAcoFolderLevelPermissionsStorageOperations\n{\n private readonly entity: Entity<any>;\n private readonly table: Table<string, string, string>;\n\n constructor({ documentClient }: StorageOperationsConfig) {\n this.table = this.createTable({ documentClient });\n\n this.entity = this.createEntity({\n table: this.table,\n name: \"ACO.flp\"\n });\n }\n\n async list({\n where: { tenant, locale, type, path_startsWith, parentId }\n }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]> {\n try {\n if (parentId) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#FLP`,\n options: {\n index: \"GSI2\",\n eq: parentId\n }\n });\n return entries.map(entry => entry.data);\n }\n\n if (path_startsWith) {\n const entries = await queryAllClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n partitionKey: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n options: {\n index: \"GSI1\",\n beginsWith: path_startsWith\n }\n });\n return entries.map(entry => entry.data);\n }\n\n throw new WebinyError(\"Missing required parameters.\", \"LIST_FLP_MISSING_PARAMETERS\", {\n tenant,\n locale,\n type,\n path_startsWith,\n parentId\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not list folder level permissions.\",\n code: \"LIST_FLP_ERROR\"\n });\n }\n }\n\n async get({\n tenant,\n locale,\n id\n }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null> {\n try {\n const entry = await getClean<{ data: FolderLevelPermission }>({\n entity: this.entity,\n keys: this.createKeys({ tenant, locale, id })\n });\n\n if (!entry) {\n return null;\n }\n\n return entry.data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not load folder level permission.\",\n code: \"GET_FLP_ERROR\",\n data: { tenant, locale, id }\n });\n }\n }\n\n async create({ data }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission> {\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n try {\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create folder level permission.\",\n code: \"CREATE_FLP_ERROR\",\n data: { keys, data }\n });\n }\n }\n\n async update({\n data: inputData,\n original\n }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission> {\n try {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n await put({\n entity: this.entity,\n item: {\n ...keys,\n data\n }\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update folder level permission.\",\n code: \"UPDATE_FLP_ERROR\",\n data: { inputData, original }\n });\n }\n }\n\n async delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void> {\n const keys = this.createKeys(flp);\n\n try {\n await deleteItem({\n entity: this.entity,\n keys\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not delete folder level permission.\",\n code: \"DELETE_FLP_ERROR\",\n data: { keys, flp }\n });\n }\n }\n\n async batchUpdate({\n items\n }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]> {\n try {\n const batch = createEntityWriteBatch({\n entity: this.entity\n });\n\n const updatedItems: FolderLevelPermission[] = [];\n\n for (const { original, data: inputData } of items) {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n batch.put({\n ...keys,\n data\n });\n\n updatedItems.push(data);\n }\n\n await executeWithRetry(async () => {\n return await batch.execute();\n });\n\n return updatedItems;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not batch update folder level permissions.\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: { items }\n });\n }\n }\n\n private createEntity = (params: CreateEntityParams): Entity<any> => {\n return new Entity({\n name: params.name,\n table: params.table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\",\n required: true\n },\n GSI1_SK: {\n type: \"string\",\n required: true\n },\n GSI2_PK: {\n type: \"string\",\n required: true\n },\n GSI2_SK: {\n type: \"string\",\n required: true\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n }\n }\n });\n };\n\n private createTable = ({ name, documentClient }: CreateTableParams) => {\n return new Table({\n name: name || String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n };\n\n private createKeys = ({ id, tenant, locale }: CreateKeysParams) => ({\n PK: `T#${tenant}#L#${locale}#FLP#${id}`,\n SK: `A`\n });\n\n private createGsiKeys = ({ tenant, locale, type, path, parentId }: CreateGsiKeysParams) => ({\n GSI1_PK: `T#${tenant}#L#${locale}#AT#${type}#FLP`,\n GSI1_SK: path,\n GSI2_PK: `T#${tenant}#L#${locale}#FLP`,\n GSI2_SK: parentId\n });\n}\n\nexport const createFlpOperations = (params: StorageOperationsConfig) => {\n return new FolderLevelPermissionsStorageOperations(params);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,159 @@
1
+ import { Topic } from "@webiny/pubsub/types";
2
+ import { ITaskRunParams } from "@webiny/tasks/types";
3
+ import { type AcoContext, type Folder } from "../types";
4
+ export type FolderAccessLevel = "owner" | "viewer" | "editor" | "public";
5
+ export interface FolderPermission {
6
+ target: string;
7
+ level: FolderAccessLevel;
8
+ inheritedFrom?: string;
9
+ }
10
+ export interface FolderLevelPermission {
11
+ id: string;
12
+ parentId: string;
13
+ slug: string;
14
+ path: string;
15
+ permissions: FolderPermission[];
16
+ type: string;
17
+ }
18
+ /********
19
+ * CRUD operations
20
+ *******/
21
+ export interface ListFlpsParams {
22
+ where: {
23
+ path_startsWith?: string;
24
+ parentId?: string;
25
+ type: string;
26
+ };
27
+ }
28
+ export type CreateFlpParams = Pick<FolderLevelPermission, "id" | "type" | "permissions" | "path" | "parentId" | "slug">;
29
+ export interface UpdateFlpParams {
30
+ parentId?: string;
31
+ slug?: string;
32
+ path?: string;
33
+ permissions?: FolderPermission[];
34
+ type?: string;
35
+ }
36
+ export interface OnFlpBeforeCreateTopicParams {
37
+ input: CreateFlpParams;
38
+ }
39
+ export interface OnFlpAfterCreateTopicParams {
40
+ flp: FolderLevelPermission;
41
+ }
42
+ export interface OnFlpBeforeUpdateTopicParams {
43
+ original: FolderLevelPermission;
44
+ input: Record<string, any>;
45
+ }
46
+ export interface OnFlpAfterUpdateTopicParams {
47
+ original: FolderLevelPermission;
48
+ flp: FolderLevelPermission;
49
+ input: Record<string, any>;
50
+ }
51
+ export interface OnFlpBeforeDeleteTopicParams {
52
+ flp: FolderLevelPermission;
53
+ }
54
+ export interface OnFlpAfterDeleteTopicParams {
55
+ flp: FolderLevelPermission;
56
+ }
57
+ export interface OnFlpBatchBeforeUpdateTopicParams {
58
+ items: Array<{
59
+ original: FolderLevelPermission;
60
+ input: UpdateFlpParams;
61
+ }>;
62
+ }
63
+ export interface OnFlpBatchAfterUpdateTopicParams {
64
+ items: Array<{
65
+ original: FolderLevelPermission;
66
+ flp: FolderLevelPermission;
67
+ input: UpdateFlpParams;
68
+ }>;
69
+ }
70
+ export interface AcoFolderLevelPermissionsCrud {
71
+ list(params: ListFlpsParams): Promise<FolderLevelPermission[]>;
72
+ get(id: string): Promise<FolderLevelPermission | null>;
73
+ create(params: CreateFlpParams): Promise<FolderLevelPermission>;
74
+ update(id: string, data: UpdateFlpParams): Promise<FolderLevelPermission>;
75
+ delete(id: string): Promise<boolean>;
76
+ batchUpdate(items: Array<{
77
+ id: string;
78
+ data: UpdateFlpParams;
79
+ }>): Promise<FolderLevelPermission[]>;
80
+ onFlpBeforeCreate: Topic<OnFlpBeforeCreateTopicParams>;
81
+ onFlpAfterCreate: Topic<OnFlpAfterCreateTopicParams>;
82
+ onFlpBeforeUpdate: Topic<OnFlpBeforeUpdateTopicParams>;
83
+ onFlpAfterUpdate: Topic<OnFlpAfterUpdateTopicParams>;
84
+ onFlpBeforeDelete: Topic<OnFlpBeforeDeleteTopicParams>;
85
+ onFlpAfterDelete: Topic<OnFlpAfterDeleteTopicParams>;
86
+ onFlpBatchBeforeUpdate: Topic<OnFlpBatchBeforeUpdateTopicParams>;
87
+ onFlpBatchAfterUpdate: Topic<OnFlpBatchAfterUpdateTopicParams>;
88
+ }
89
+ /********
90
+ * Storage operations
91
+ *******/
92
+ export interface StorageOperationsListFlpsParams {
93
+ where: ListFlpsParams["where"] & {
94
+ tenant: string;
95
+ locale: string;
96
+ };
97
+ }
98
+ export interface StorageOperationsGetFlpParams {
99
+ id: string;
100
+ tenant: string;
101
+ locale: string;
102
+ }
103
+ export type StorageOperationsCreateFlpParams = {
104
+ data: FolderLevelPermission & {
105
+ tenant: string;
106
+ locale: string;
107
+ };
108
+ };
109
+ export type StorageOperationsUpdateFlpParams = {
110
+ original: FolderLevelPermission;
111
+ data: UpdateFlpParams & {
112
+ tenant: string;
113
+ locale: string;
114
+ };
115
+ };
116
+ export type StorageOperationsDeleteFlpParams = {
117
+ flp: FolderLevelPermission & {
118
+ tenant: string;
119
+ locale: string;
120
+ };
121
+ };
122
+ export interface StorageOperationsBatchUpdateFlpParams {
123
+ items: Array<{
124
+ original: FolderLevelPermission;
125
+ data: UpdateFlpParams & {
126
+ tenant: string;
127
+ locale: string;
128
+ };
129
+ }>;
130
+ }
131
+ export interface AcoFolderLevelPermissionsStorageOperations {
132
+ list(params: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;
133
+ get(params: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;
134
+ create(params: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;
135
+ update(params: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;
136
+ delete(params: StorageOperationsDeleteFlpParams): Promise<void>;
137
+ batchUpdate(params: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;
138
+ }
139
+ /********
140
+ * Background Tasks
141
+ *******/
142
+ export interface ICreateFlpTaskInput {
143
+ folder: Folder;
144
+ }
145
+ export type ICreateFlpTaskParams = ITaskRunParams<AcoContext, ICreateFlpTaskInput>;
146
+ export interface IUpdateFlpTaskInput {
147
+ folder: Folder;
148
+ queued?: string[];
149
+ }
150
+ export type IUpdateFlpTaskParams = ITaskRunParams<AcoContext, IUpdateFlpTaskInput>;
151
+ export interface IDeleteFlpTaskInput {
152
+ folder: Folder;
153
+ }
154
+ export type IDeleteFlpTaskParams = ITaskRunParams<AcoContext, IDeleteFlpTaskInput>;
155
+ export interface ISyncFlpTaskInput {
156
+ type?: string;
157
+ folderId?: string;
158
+ }
159
+ export type ISyncFlpTaskParams = ITaskRunParams<AcoContext, ISyncFlpTaskInput>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=flp.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["flp.types.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { ITaskRunParams } from \"@webiny/tasks/types\";\nimport { type AcoContext, type Folder } from \"~/types\";\n\nexport type FolderAccessLevel = \"owner\" | \"viewer\" | \"editor\" | \"public\";\n\nexport interface FolderPermission {\n target: string;\n level: FolderAccessLevel;\n inheritedFrom?: string;\n}\n\nexport interface FolderLevelPermission {\n id: string;\n parentId: string;\n slug: string;\n path: string;\n permissions: FolderPermission[];\n type: string;\n}\n\n/********\n * CRUD operations\n *******/\n\nexport interface ListFlpsParams {\n where: {\n path_startsWith?: string;\n parentId?: string;\n type: string;\n };\n}\n\nexport type CreateFlpParams = Pick<\n FolderLevelPermission,\n \"id\" | \"type\" | \"permissions\" | \"path\" | \"parentId\" | \"slug\"\n>;\n\nexport interface UpdateFlpParams {\n parentId?: string;\n slug?: string;\n path?: string;\n permissions?: FolderPermission[];\n type?: string;\n}\n\nexport interface OnFlpBeforeCreateTopicParams {\n input: CreateFlpParams;\n}\n\nexport interface OnFlpAfterCreateTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBeforeUpdateTopicParams {\n original: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpAfterUpdateTopicParams {\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: Record<string, any>;\n}\n\nexport interface OnFlpBeforeDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpAfterDeleteTopicParams {\n flp: FolderLevelPermission;\n}\n\nexport interface OnFlpBatchBeforeUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface OnFlpBatchAfterUpdateTopicParams {\n items: Array<{\n original: FolderLevelPermission;\n flp: FolderLevelPermission;\n input: UpdateFlpParams;\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsCrud {\n list(params: ListFlpsParams): Promise<FolderLevelPermission[]>;\n get(id: string): Promise<FolderLevelPermission | null>;\n create(params: CreateFlpParams): Promise<FolderLevelPermission>;\n update(id: string, data: UpdateFlpParams): Promise<FolderLevelPermission>;\n delete(id: string): Promise<boolean>;\n batchUpdate(\n items: Array<{ id: string; data: UpdateFlpParams }>\n ): Promise<FolderLevelPermission[]>;\n onFlpBeforeCreate: Topic<OnFlpBeforeCreateTopicParams>;\n onFlpAfterCreate: Topic<OnFlpAfterCreateTopicParams>;\n onFlpBeforeUpdate: Topic<OnFlpBeforeUpdateTopicParams>;\n onFlpAfterUpdate: Topic<OnFlpAfterUpdateTopicParams>;\n onFlpBeforeDelete: Topic<OnFlpBeforeDeleteTopicParams>;\n onFlpAfterDelete: Topic<OnFlpAfterDeleteTopicParams>;\n onFlpBatchBeforeUpdate: Topic<OnFlpBatchBeforeUpdateTopicParams>;\n onFlpBatchAfterUpdate: Topic<OnFlpBatchAfterUpdateTopicParams>;\n}\n\n/********\n * Storage operations\n *******/\n\nexport interface StorageOperationsListFlpsParams {\n where: ListFlpsParams[\"where\"] & {\n tenant: string;\n locale: string;\n };\n}\n\nexport interface StorageOperationsGetFlpParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport type StorageOperationsCreateFlpParams = {\n data: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsUpdateFlpParams = {\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n};\n\nexport type StorageOperationsDeleteFlpParams = {\n flp: FolderLevelPermission & {\n tenant: string;\n locale: string;\n };\n};\n\nexport interface StorageOperationsBatchUpdateFlpParams {\n items: Array<{\n original: FolderLevelPermission;\n data: UpdateFlpParams & {\n tenant: string;\n locale: string;\n };\n }>;\n}\n\nexport interface AcoFolderLevelPermissionsStorageOperations {\n list(params: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;\n get(params: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;\n create(params: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;\n update(params: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;\n delete(params: StorageOperationsDeleteFlpParams): Promise<void>;\n batchUpdate(params: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;\n}\n\n/********\n * Background Tasks\n *******/\n\nexport interface ICreateFlpTaskInput {\n folder: Folder;\n}\n\nexport type ICreateFlpTaskParams = ITaskRunParams<AcoContext, ICreateFlpTaskInput>;\n\nexport interface IUpdateFlpTaskInput {\n folder: Folder;\n queued?: string[];\n}\n\nexport type IUpdateFlpTaskParams = ITaskRunParams<AcoContext, IUpdateFlpTaskInput>;\n\nexport interface IDeleteFlpTaskInput {\n folder: Folder;\n}\n\nexport type IDeleteFlpTaskParams = ITaskRunParams<AcoContext, IDeleteFlpTaskInput>;\n\nexport interface ISyncFlpTaskInput {\n type?: string;\n folderId?: string;\n}\n\nexport type ISyncFlpTaskParams = ITaskRunParams<AcoContext, ISyncFlpTaskInput>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { AcoContext } from "../../types";
2
+ export declare const createFlpHooks: (context: AcoContext) => void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFlpHooks = void 0;
7
+ var _onFolderAfterCreateFlp = require("./onFolderAfterCreateFlp.hook");
8
+ var _onFolderAfterDeleteFlp = require("./onFolderAfterDeleteFlp.hook");
9
+ var _onFolderAfterUpdateFlp = require("./onFolderAfterUpdateFlp.hook");
10
+ const createFlpHooks = context => {
11
+ (0, _onFolderAfterCreateFlp.onFolderAfterCreateFlpHook)(context);
12
+ (0, _onFolderAfterDeleteFlp.onFolderAfterDeleteFlpHook)(context);
13
+ (0, _onFolderAfterUpdateFlp.onFolderAfterUpdateFlpHook)(context);
14
+ };
15
+ exports.createFlpHooks = createFlpHooks;
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_onFolderAfterCreateFlp","require","_onFolderAfterDeleteFlp","_onFolderAfterUpdateFlp","createFlpHooks","context","onFolderAfterCreateFlpHook","onFolderAfterDeleteFlpHook","onFolderAfterUpdateFlpHook","exports"],"sources":["index.ts"],"sourcesContent":["import { onFolderAfterCreateFlpHook } from \"./onFolderAfterCreateFlp.hook\";\nimport { onFolderAfterDeleteFlpHook } from \"./onFolderAfterDeleteFlp.hook\";\nimport { onFolderAfterUpdateFlpHook } from \"./onFolderAfterUpdateFlp.hook\";\nimport { AcoContext } from \"~/types\";\n\nexport const createFlpHooks = (context: AcoContext) => {\n onFolderAfterCreateFlpHook(context);\n onFolderAfterDeleteFlpHook(context);\n onFolderAfterUpdateFlpHook(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAGO,MAAMG,cAAc,GAAIC,OAAmB,IAAK;EACnD,IAAAC,kDAA0B,EAACD,OAAO,CAAC;EACnC,IAAAE,kDAA0B,EAACF,OAAO,CAAC;EACnC,IAAAG,kDAA0B,EAACH,OAAO,CAAC;AACvC,CAAC;AAACI,OAAA,CAAAL,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { AcoContext } from "../../types";
2
+ export declare const onFolderAfterCreateFlpHook: (context: AcoContext) => void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.onFolderAfterCreateFlpHook = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _tasks = require("../tasks");
10
+ var _useCases = require("../useCases");
11
+ const onFolderAfterCreateFlpHook = context => {
12
+ context.aco.folder.onFolderAfterCreate.subscribe(async ({
13
+ folder
14
+ }) => {
15
+ try {
16
+ if (!context.tasks) {
17
+ const useCase = new _useCases.CreateFlp(context);
18
+ await useCase.execute(folder);
19
+ return;
20
+ }
21
+ await context.tasks.trigger({
22
+ definition: _tasks.CREATE_FLP_TASK_ID,
23
+ input: {
24
+ folder
25
+ }
26
+ });
27
+ } catch (error) {
28
+ throw _error.default.from(error, {
29
+ message: "Error while executing onFolderAfterCreateFlpHook hook.",
30
+ code: "ACO_AFTER_FOLDER_CREATE_FLP_HOOK"
31
+ });
32
+ }
33
+ });
34
+ };
35
+ exports.onFolderAfterCreateFlpHook = onFolderAfterCreateFlpHook;
36
+
37
+ //# sourceMappingURL=onFolderAfterCreateFlp.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterCreateFlpHook","context","aco","folder","onFolderAfterCreate","subscribe","tasks","useCase","CreateFlp","execute","trigger","definition","CREATE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterCreateFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, type ICreateFlpTaskInput } from \"~/types\";\nimport { CREATE_FLP_TASK_ID } from \"../tasks\";\nimport { CreateFlp } from \"~/flp/useCases\";\n\nexport const onFolderAfterCreateFlpHook = (context: AcoContext) => {\n context.aco.folder.onFolderAfterCreate.subscribe(async ({ folder }) => {\n try {\n if (!context.tasks) {\n const useCase = new CreateFlp(context);\n await useCase.execute(folder);\n return;\n }\n\n await context.tasks.trigger<ICreateFlpTaskInput>({\n definition: CREATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderAfterCreateFlpHook hook.\",\n code: \"ACO_AFTER_FOLDER_CREATE_FLP_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACnE,IAAI;MACA,IAAI,CAACF,OAAO,CAACK,KAAK,EAAE;QAChB,MAAMC,OAAO,GAAG,IAAIC,mBAAS,CAACP,OAAO,CAAC;QACtC,MAAMM,OAAO,CAACE,OAAO,CAACN,MAAM,CAAC;QAC7B;MACJ;MAEA,MAAMF,OAAO,CAACK,KAAK,CAACI,OAAO,CAAsB;QAC7CC,UAAU,EAAEC,yBAAkB;QAC9BC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAnB,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { AcoContext } from "../../types";
2
+ export declare const onFolderAfterDeleteFlpHook: (context: AcoContext) => void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.onFolderAfterDeleteFlpHook = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _tasks = require("../tasks");
10
+ var _useCases = require("../useCases");
11
+ const onFolderAfterDeleteFlpHook = context => {
12
+ context.aco.folder.onFolderAfterDelete.subscribe(async ({
13
+ folder
14
+ }) => {
15
+ try {
16
+ if (!context.tasks) {
17
+ const useCase = new _useCases.DeleteFlp(context);
18
+ await useCase.execute(folder);
19
+ return;
20
+ }
21
+ await context.tasks.trigger({
22
+ definition: _tasks.DELETE_FLP_TASK_ID,
23
+ input: {
24
+ folder
25
+ }
26
+ });
27
+ } catch (error) {
28
+ throw _error.default.from(error, {
29
+ message: "Error while executing onFolderAfterDeleteFlpHook hook.",
30
+ code: "ACO_AFTER_FOLDER_DELETE_FLP_HOOK"
31
+ });
32
+ }
33
+ });
34
+ };
35
+ exports.onFolderAfterDeleteFlpHook = onFolderAfterDeleteFlpHook;
36
+
37
+ //# sourceMappingURL=onFolderAfterDeleteFlp.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_tasks","_useCases","onFolderAfterDeleteFlpHook","context","aco","folder","onFolderAfterDelete","subscribe","tasks","useCase","DeleteFlp","execute","trigger","definition","DELETE_FLP_TASK_ID","input","error","WebinyError","from","message","code","exports"],"sources":["onFolderAfterDeleteFlp.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext, type IDeleteFlpTaskInput } from \"~/types\";\nimport { DELETE_FLP_TASK_ID } from \"../tasks\";\nimport { DeleteFlp } from \"~/flp/useCases\";\n\nexport const onFolderAfterDeleteFlpHook = (context: AcoContext) => {\n context.aco.folder.onFolderAfterDelete.subscribe(async ({ folder }) => {\n try {\n if (!context.tasks) {\n const useCase = new DeleteFlp(context);\n await useCase.execute(folder);\n return;\n }\n\n await context.tasks.trigger<IDeleteFlpTaskInput>({\n definition: DELETE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderAfterDeleteFlpHook hook.\",\n code: \"ACO_AFTER_FOLDER_DELETE_FLP_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAIC,OAAmB,IAAK;EAC/DA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IACnE,IAAI;MACA,IAAI,CAACF,OAAO,CAACK,KAAK,EAAE;QAChB,MAAMC,OAAO,GAAG,IAAIC,mBAAS,CAACP,OAAO,CAAC;QACtC,MAAMM,OAAO,CAACE,OAAO,CAACN,MAAM,CAAC;QAC7B;MACJ;MAEA,MAAMF,OAAO,CAACK,KAAK,CAACI,OAAO,CAAsB;QAC7CC,UAAU,EAAEC,yBAAkB;QAC9BC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZ,MAAMC,cAAW,CAACC,IAAI,CAACF,KAAK,EAAE;QAC1BG,OAAO,EAAE,wDAAwD;QACjEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAnB,0BAAA,GAAAA,0BAAA","ignoreList":[]}