@webiny/api-aco 5.43.0-beta.0 → 5.43.0-beta.2
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.
- package/apps/AcoApp.js +4 -4
- package/apps/AcoApp.js.map +1 -1
- package/constants.d.ts +3 -0
- package/constants.js +11 -0
- package/constants.js.map +1 -0
- package/createAcoContext.d.ts +3 -1
- package/createAcoContext.js +13 -99
- package/createAcoContext.js.map +1 -1
- package/createAcoHooks.js +2 -0
- package/createAcoHooks.js.map +1 -1
- package/createAcoStorageOperations.d.ts +2 -0
- package/createAcoStorageOperations.js +5 -3
- package/createAcoStorageOperations.js.map +1 -1
- package/createAcoTasks.d.ts +1 -0
- package/createAcoTasks.js +13 -0
- package/createAcoTasks.js.map +1 -0
- package/filter/filter.crud.js +7 -7
- package/filter/filter.crud.js.map +1 -1
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
- package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
- package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
- package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
- package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
- package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
- package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
- package/flp/FolderLevelPermissions/gateways/index.js +62 -0
- package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
- package/flp/FolderLevelPermissions/index.d.ts +33 -0
- package/flp/FolderLevelPermissions/index.js +116 -0
- package/flp/FolderLevelPermissions/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +48 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +41 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +10 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +53 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +40 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
- package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
- package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
- package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
- package/flp/FolderLevelPermissions/useCases/index.js +106 -0
- package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
- package/flp/flp.crud.d.ts +9 -0
- package/flp/flp.crud.js +172 -0
- package/flp/flp.crud.js.map +1 -0
- package/flp/flp.so.d.ts +26 -0
- package/flp/flp.so.js +304 -0
- package/flp/flp.so.js.map +1 -0
- package/flp/flp.types.d.ts +159 -0
- package/flp/flp.types.js +7 -0
- package/flp/flp.types.js.map +1 -0
- package/flp/hooks/index.d.ts +2 -0
- package/flp/hooks/index.js +17 -0
- package/flp/hooks/index.js.map +1 -0
- package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
- package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
- package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
- package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
- package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
- package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
- package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
- package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
- package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
- package/flp/index.d.ts +5 -0
- package/flp/index.js +62 -0
- package/flp/index.js.map +1 -0
- package/flp/tasks/createFlp.task.d.ts +2 -0
- package/flp/tasks/createFlp.task.js +49 -0
- package/flp/tasks/createFlp.task.js.map +1 -0
- package/flp/tasks/deleteFlp.task.d.ts +2 -0
- package/flp/tasks/deleteFlp.task.js +49 -0
- package/flp/tasks/deleteFlp.task.js.map +1 -0
- package/flp/tasks/index.d.ts +5 -0
- package/flp/tasks/index.js +20 -0
- package/flp/tasks/index.js.map +1 -0
- package/flp/tasks/syncFlp.task.d.ts +2 -0
- package/flp/tasks/syncFlp.task.js +126 -0
- package/flp/tasks/syncFlp.task.js.map +1 -0
- package/flp/tasks/updateFlp.task.d.ts +2 -0
- package/flp/tasks/updateFlp.task.js +55 -0
- package/flp/tasks/updateFlp.task.js.map +1 -0
- package/flp/useCases/CreateFlp.d.ts +7 -0
- package/flp/useCases/CreateFlp.js +52 -0
- package/flp/useCases/CreateFlp.js.map +1 -0
- package/flp/useCases/DeleteFlp.d.ts +6 -0
- package/flp/useCases/DeleteFlp.js +30 -0
- package/flp/useCases/DeleteFlp.js.map +1 -0
- package/flp/useCases/Path.d.ts +3 -0
- package/flp/useCases/Path.js +18 -0
- package/flp/useCases/Path.js.map +1 -0
- package/flp/useCases/Permissions.d.ts +4 -0
- package/flp/useCases/Permissions.js +38 -0
- package/flp/useCases/Permissions.js.map +1 -0
- package/flp/useCases/UpdateFlp.d.ts +25 -0
- package/flp/useCases/UpdateFlp.js +182 -0
- package/flp/useCases/UpdateFlp.js.map +1 -0
- package/flp/useCases/index.d.ts +3 -0
- package/flp/useCases/index.js +40 -0
- package/flp/useCases/index.js.map +1 -0
- package/folder/createFolderTypeDefs.js +13 -2
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/folder.crud.d.ts +3 -6
- package/folder/folder.crud.js +90 -231
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.js +30 -8
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.model.js +3 -0
- package/folder/folder.model.js.map +1 -1
- package/folder/folder.so.js +4 -1
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.d.ts +17 -3
- package/folder/folder.types.js.map +1 -1
- package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
- package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
- package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
- package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
- package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
- package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +24 -0
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
- package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
- package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
- package/folder/useCases/CreateFolder/index.d.ts +17 -0
- package/folder/useCases/CreateFolder/index.js +20 -0
- package/folder/useCases/CreateFolder/index.js.map +1 -0
- package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
- package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
- package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
- package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
- package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
- package/folder/useCases/DeleteFolder/index.d.ts +18 -0
- package/folder/useCases/DeleteFolder/index.js +20 -0
- package/folder/useCases/DeleteFolder/index.js.map +1 -0
- package/folder/useCases/GetAncestors/GetAncestors.d.ts +5 -0
- package/folder/useCases/GetAncestors/GetAncestors.js +57 -0
- package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
- package/folder/useCases/GetAncestors/IGetAncestors.d.ts +8 -0
- package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
- package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
- package/folder/useCases/GetAncestors/index.d.ts +4 -0
- package/folder/useCases/GetAncestors/index.js +16 -0
- package/folder/useCases/GetAncestors/index.js.map +1 -0
- package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
- package/folder/useCases/GetFolder/GetFolder.js +17 -0
- package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +24 -0
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
- package/folder/useCases/GetFolder/IGetFolder.js +7 -0
- package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
- package/folder/useCases/GetFolder/index.d.ts +13 -0
- package/folder/useCases/GetFolder/index.js +19 -0
- package/folder/useCases/GetFolder/index.js.map +1 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
- package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
- package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
- package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
- package/folder/useCases/GetFolderHierarchy/index.js +18 -0
- package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
- package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
- package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
- package/folder/useCases/ListFolders/IListFolders.js +7 -0
- package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
- package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
- package/folder/useCases/ListFolders/ListFolders.js +17 -0
- package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/ListFolders/index.d.ts +13 -0
- package/folder/useCases/ListFolders/index.js +19 -0
- package/folder/useCases/ListFolders/index.js.map +1 -0
- package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
- package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
- package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
- package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
- package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
- package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +25 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
- package/folder/useCases/UpdateFolder/index.d.ts +18 -0
- package/folder/useCases/UpdateFolder/index.js +20 -0
- package/folder/useCases/UpdateFolder/index.js.map +1 -0
- package/folder/useCases/index.d.ts +8 -0
- package/folder/useCases/index.js +95 -0
- package/folder/useCases/index.js.map +1 -0
- package/index.d.ts +3 -1
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/package.json +28 -26
- package/record/record.crud.js +10 -10
- package/record/record.crud.js.map +1 -1
- package/record/record.so.js +2 -1
- package/record/record.so.js.map +1 -1
- package/types.d.ts +17 -8
- package/types.js +12 -0
- package/types.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +41 -65
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
- package/utils/decorators/ListEntriesFactory.d.ts +15 -0
- package/utils/decorators/ListEntriesFactory.js +107 -0
- package/utils/decorators/ListEntriesFactory.js.map +1 -0
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js +7 -0
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
- package/utils/decorators/hasRootFolderId.d.ts +7 -0
- package/utils/decorators/hasRootFolderId.js +27 -0
- package/utils/decorators/hasRootFolderId.js.map +1 -0
- package/utils/pickEntryFieldValues.js +1 -1
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/FolderLevelPermissions.d.ts +0 -75
- package/utils/FolderLevelPermissions.js +0 -390
- package/utils/FolderLevelPermissions.js.map +0 -1
- package/utils/decorators/constants.d.ts +0 -1
- package/utils/decorators/constants.js +0 -9
- package/utils/decorators/constants.js.map +0 -1
- package/utils/decorators/createFolderType.d.ts +0 -2
- package/utils/decorators/createFolderType.js +0 -18
- package/utils/decorators/createFolderType.js.map +0 -1
- package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
- package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
- package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
- package/utils/decorators/where.d.ts +0 -15
- package/utils/decorators/where.js +0 -60
- package/utils/decorators/where.js.map +0 -1
- package/utils/getFolderAndItsAncestors.d.ts +0 -7
- package/utils/getFolderAndItsAncestors.js +0 -53
- package/utils/getFolderAndItsAncestors.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.syncFlpTask = void 0;
|
|
7
|
+
var _tasks = require("@webiny/tasks");
|
|
8
|
+
var _ = require("./");
|
|
9
|
+
var _constants = require("../../constants");
|
|
10
|
+
class SyncFlpTask {
|
|
11
|
+
init = () => {
|
|
12
|
+
return (0, _tasks.createTaskDefinition)({
|
|
13
|
+
id: _.SYNC_FLP_TASK_ID,
|
|
14
|
+
title: "ACO - Sync FLP record",
|
|
15
|
+
description: "Synchronizes the FLP catalog by updating the FLP record and its descendants.",
|
|
16
|
+
disableDatabaseLogs: true,
|
|
17
|
+
run: async params => {
|
|
18
|
+
const {
|
|
19
|
+
response,
|
|
20
|
+
isAborted,
|
|
21
|
+
input,
|
|
22
|
+
context,
|
|
23
|
+
store
|
|
24
|
+
} = params;
|
|
25
|
+
try {
|
|
26
|
+
if (isAborted()) {
|
|
27
|
+
return response.aborted();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* `folderId` provided in the task input. We need to:
|
|
32
|
+
*
|
|
33
|
+
* - update the FLP records for the found folder and all its descendants.
|
|
34
|
+
*/
|
|
35
|
+
if (input.folderId) {
|
|
36
|
+
const folder = await context.aco.folder.get(input.folderId, true);
|
|
37
|
+
await context.tasks.trigger({
|
|
38
|
+
definition: _.UPDATE_FLP_TASK_ID,
|
|
39
|
+
input: {
|
|
40
|
+
folder
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return response.done(`Task completed successfully: all FLP records for folderId "${input.folderId}" and its children have been queued to be synchronized.`);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Full update required. We need to:
|
|
48
|
+
*
|
|
49
|
+
* - list cms models to collect their types, together with the default ones [PB_PAGE_TYPE, FM_FILE_TYPE]
|
|
50
|
+
* - list all root folders
|
|
51
|
+
* - update the FLP records for the found folders and all its descendants.
|
|
52
|
+
*/
|
|
53
|
+
if (input.type && input.type === "*") {
|
|
54
|
+
// Some folder types are fixed: pages and files.
|
|
55
|
+
const folderTypes = [_constants.PB_PAGE_TYPE, _constants.FM_FILE_TYPE];
|
|
56
|
+
|
|
57
|
+
// List all non-private models for the current locale.
|
|
58
|
+
const models = await context.security.withoutAuthorization(async () => await context.cms.listModels());
|
|
59
|
+
for (const model of models) {
|
|
60
|
+
folderTypes.push(`cms:${model.modelId}`);
|
|
61
|
+
}
|
|
62
|
+
for (const folderType of folderTypes) {
|
|
63
|
+
const [folders] = await context.aco.folder.list({
|
|
64
|
+
where: {
|
|
65
|
+
type: folderType,
|
|
66
|
+
parentId: null
|
|
67
|
+
},
|
|
68
|
+
disablePermissions: true
|
|
69
|
+
});
|
|
70
|
+
for (const folder of folders) {
|
|
71
|
+
await context.tasks.trigger({
|
|
72
|
+
definition: _.UPDATE_FLP_TASK_ID,
|
|
73
|
+
input: {
|
|
74
|
+
folder
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
await store.addInfoLog({
|
|
79
|
+
message: `FLP Update task triggered for type ${folderType}`,
|
|
80
|
+
data: {
|
|
81
|
+
type: folderType
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return response.done(`Task completed successfully: all FLP records have been queued to be synchronized.`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* `type` provided in the task input. We need to:
|
|
90
|
+
*
|
|
91
|
+
* - list all root folders for the provided type
|
|
92
|
+
* - update the FLP records for the found folders and all its descendants.
|
|
93
|
+
*/
|
|
94
|
+
if (input.type) {
|
|
95
|
+
const [folders] = await context.aco.folder.list({
|
|
96
|
+
where: {
|
|
97
|
+
type: input.type,
|
|
98
|
+
parentId: null
|
|
99
|
+
},
|
|
100
|
+
disablePermissions: true
|
|
101
|
+
});
|
|
102
|
+
for (const folder of folders) {
|
|
103
|
+
await context.tasks.trigger({
|
|
104
|
+
definition: _.UPDATE_FLP_TASK_ID,
|
|
105
|
+
input: {
|
|
106
|
+
folder
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return response.done(`Task completed successfully: all FLP records for type "${input.type}" have been queued to be synchronized.`);
|
|
111
|
+
}
|
|
112
|
+
return response.error("Invalid input: please provide either `type` or `folderId`.");
|
|
113
|
+
} catch (error) {
|
|
114
|
+
return response.error(error);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const syncFlpTask = () => {
|
|
121
|
+
const task = new SyncFlpTask();
|
|
122
|
+
return task.init();
|
|
123
|
+
};
|
|
124
|
+
exports.syncFlpTask = syncFlpTask;
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=syncFlp.task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_tasks","require","_","_constants","SyncFlpTask","init","createTaskDefinition","id","SYNC_FLP_TASK_ID","title","description","disableDatabaseLogs","run","params","response","isAborted","input","context","store","aborted","folderId","folder","aco","get","tasks","trigger","definition","UPDATE_FLP_TASK_ID","done","type","folderTypes","PB_PAGE_TYPE","FM_FILE_TYPE","models","security","withoutAuthorization","cms","listModels","model","push","modelId","folderType","folders","list","where","parentId","disablePermissions","addInfoLog","message","data","error","syncFlpTask","task","exports"],"sources":["syncFlp.task.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from \"~/flp/tasks\";\nimport {\n type AcoContext,\n type ISyncFlpTaskInput,\n type ISyncFlpTaskParams,\n type IUpdateFlpTaskInput\n} from \"~/types\";\nimport { PB_PAGE_TYPE, FM_FILE_TYPE } from \"~/constants\";\n\nclass SyncFlpTask {\n public init = () => {\n return createTaskDefinition<AcoContext, ISyncFlpTaskInput>({\n id: SYNC_FLP_TASK_ID,\n title: \"ACO - Sync FLP record\",\n description:\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants.\",\n disableDatabaseLogs: true,\n run: async (params: ISyncFlpTaskParams) => {\n const { response, isAborted, input, context, store } = params;\n try {\n if (isAborted()) {\n return response.aborted();\n }\n\n /**\n * `folderId` provided in the task input. We need to:\n *\n * - update the FLP records for the found folder and all its descendants.\n */\n if (input.folderId) {\n const folder = await context.aco.folder.get(input.folderId, true);\n await context.tasks.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n\n return response.done(\n `Task completed successfully: all FLP records for folderId \"${input.folderId}\" and its children have been queued to be synchronized.`\n );\n }\n\n /**\n * Full update required. We need to:\n *\n * - list cms models to collect their types, together with the default ones [PB_PAGE_TYPE, FM_FILE_TYPE]\n * - list all root folders\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type && input.type === \"*\") {\n // Some folder types are fixed: pages and files.\n const folderTypes = [PB_PAGE_TYPE, FM_FILE_TYPE];\n\n // List all non-private models for the current locale.\n const models = await context.security.withoutAuthorization(\n async () => await context.cms.listModels()\n );\n\n for (const model of models) {\n folderTypes.push(`cms:${model.modelId}`);\n }\n\n for (const folderType of folderTypes) {\n const [folders] = await context.aco.folder.list({\n where: {\n type: folderType,\n parentId: null\n },\n disablePermissions: true\n });\n\n for (const folder of folders) {\n await context.tasks.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n await store.addInfoLog({\n message: `FLP Update task triggered for type ${folderType}`,\n data: {\n type: folderType\n }\n });\n }\n\n return response.done(\n `Task completed successfully: all FLP records have been queued to be synchronized.`\n );\n }\n\n /**\n * `type` provided in the task input. We need to:\n *\n * - list all root folders for the provided type\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type) {\n const [folders] = await context.aco.folder.list({\n where: {\n type: input.type,\n parentId: null\n },\n disablePermissions: true\n });\n\n for (const folder of folders) {\n await context.tasks.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n return response.done(\n `Task completed successfully: all FLP records for type \"${input.type}\" have been queued to be synchronized.`\n );\n }\n\n return response.error(\n \"Invalid input: please provide either `type` or `folderId`.\"\n );\n } catch (error) {\n return response.error(error);\n }\n }\n });\n };\n}\n\nexport const syncFlpTask = () => {\n const task = new SyncFlpTask();\n return task.init();\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.updateFlpTask = void 0;
|
|
7
|
+
var _tasks = require("@webiny/tasks");
|
|
8
|
+
var _ = require("./");
|
|
9
|
+
class UpdateFlpTask {
|
|
10
|
+
init = () => {
|
|
11
|
+
return (0, _tasks.createPrivateTaskDefinition)({
|
|
12
|
+
id: _.UPDATE_FLP_TASK_ID,
|
|
13
|
+
title: "ACO - Update FLP record",
|
|
14
|
+
description: "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.",
|
|
15
|
+
disableDatabaseLogs: true,
|
|
16
|
+
run: async params => {
|
|
17
|
+
const {
|
|
18
|
+
response,
|
|
19
|
+
isAborted,
|
|
20
|
+
input,
|
|
21
|
+
context,
|
|
22
|
+
isCloseToTimeout
|
|
23
|
+
} = params;
|
|
24
|
+
const {
|
|
25
|
+
UpdateFlp
|
|
26
|
+
} = await import(/* webpackChunkName: "UpdateFlp" */"../useCases/UpdateFlp");
|
|
27
|
+
const useCase = new UpdateFlp({
|
|
28
|
+
context,
|
|
29
|
+
queued: input.queued,
|
|
30
|
+
isCloseToTimeout: isCloseToTimeout,
|
|
31
|
+
handleTimeout: queued => response.continue({
|
|
32
|
+
...input,
|
|
33
|
+
queued
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
try {
|
|
37
|
+
if (isAborted()) {
|
|
38
|
+
return response.aborted();
|
|
39
|
+
}
|
|
40
|
+
await useCase.execute(input.folder);
|
|
41
|
+
return response.done("Task done: FLP record updated.");
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return response.error(error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const updateFlpTask = () => {
|
|
50
|
+
const task = new UpdateFlpTask();
|
|
51
|
+
return task.init();
|
|
52
|
+
};
|
|
53
|
+
exports.updateFlpTask = updateFlpTask;
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=updateFlp.task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_tasks","require","_","UpdateFlpTask","init","createPrivateTaskDefinition","id","UPDATE_FLP_TASK_ID","title","description","disableDatabaseLogs","run","params","response","isAborted","input","context","isCloseToTimeout","UpdateFlp","useCase","queued","handleTimeout","continue","aborted","execute","folder","done","error","updateFlpTask","task","exports"],"sources":["updateFlp.task.ts"],"sourcesContent":["import { createPrivateTaskDefinition } from \"@webiny/tasks\";\nimport { UPDATE_FLP_TASK_ID } from \"~/flp/tasks\";\nimport { type AcoContext, type IUpdateFlpTaskInput, type IUpdateFlpTaskParams } from \"~/types\";\n\nclass UpdateFlpTask {\n public init = () => {\n return createPrivateTaskDefinition<AcoContext, IUpdateFlpTaskInput>({\n id: UPDATE_FLP_TASK_ID,\n title: \"ACO - Update FLP record\",\n description:\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.\",\n disableDatabaseLogs: true,\n run: async (params: IUpdateFlpTaskParams) => {\n const { response, isAborted, input, context, isCloseToTimeout } = params;\n\n const { UpdateFlp } = await import(\n /* webpackChunkName: \"UpdateFlp\" */ \"../useCases/UpdateFlp\"\n );\n\n const useCase = new UpdateFlp({\n context,\n queued: input.queued,\n isCloseToTimeout: isCloseToTimeout,\n handleTimeout: (queued: string[]) => response.continue({ ...input, queued })\n });\n\n try {\n if (isAborted()) {\n return response.aborted();\n }\n await useCase.execute(input.folder);\n return response.done(\"Task done: FLP record updated.\");\n } catch (error) {\n return response.error(error);\n }\n }\n });\n };\n}\n\nexport const updateFlpTask = () => {\n const task = new UpdateFlpTask();\n return task.init();\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AAGA,MAAME,aAAa,CAAC;EACTC,IAAI,GAAGA,CAAA,KAAM;IAChB,OAAO,IAAAC,kCAA2B,EAAkC;MAChEC,EAAE,EAAEC,oBAAkB;MACtBC,KAAK,EAAE,yBAAyB;MAChCC,WAAW,EACP,2GAA2G;MAC/GC,mBAAmB,EAAE,IAAI;MACzBC,GAAG,EAAE,MAAOC,MAA4B,IAAK;QACzC,MAAM;UAAEC,QAAQ;UAAEC,SAAS;UAAEC,KAAK;UAAEC,OAAO;UAAEC;QAAiB,CAAC,GAAGL,MAAM;QAExE,MAAM;UAAEM;QAAU,CAAC,GAAG,MAAM,MAAM,CAC9B,0DACJ,CAAC;QAED,MAAMC,OAAO,GAAG,IAAID,SAAS,CAAC;UAC1BF,OAAO;UACPI,MAAM,EAAEL,KAAK,CAACK,MAAM;UACpBH,gBAAgB,EAAEA,gBAAgB;UAClCI,aAAa,EAAGD,MAAgB,IAAKP,QAAQ,CAACS,QAAQ,CAAC;YAAE,GAAGP,KAAK;YAAEK;UAAO,CAAC;QAC/E,CAAC,CAAC;QAEF,IAAI;UACA,IAAIN,SAAS,CAAC,CAAC,EAAE;YACb,OAAOD,QAAQ,CAACU,OAAO,CAAC,CAAC;UAC7B;UACA,MAAMJ,OAAO,CAACK,OAAO,CAACT,KAAK,CAACU,MAAM,CAAC;UACnC,OAAOZ,QAAQ,CAACa,IAAI,CAAC,gCAAgC,CAAC;QAC1D,CAAC,CAAC,OAAOC,KAAK,EAAE;UACZ,OAAOd,QAAQ,CAACc,KAAK,CAACA,KAAK,CAAC;QAChC;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL;AAEO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAMC,IAAI,GAAG,IAAI1B,aAAa,CAAC,CAAC;EAChC,OAAO0B,IAAI,CAACzB,IAAI,CAAC,CAAC;AACtB,CAAC;AAAC0B,OAAA,CAAAF,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CreateFlp = void 0;
|
|
7
|
+
var _error = require("@webiny/error");
|
|
8
|
+
var _Path = require("./Path");
|
|
9
|
+
var _Permissions = require("./Permissions");
|
|
10
|
+
var _constants = require("../../constants");
|
|
11
|
+
class CreateFlp {
|
|
12
|
+
constructor(context) {
|
|
13
|
+
this.context = context;
|
|
14
|
+
}
|
|
15
|
+
async execute(folder) {
|
|
16
|
+
try {
|
|
17
|
+
if (!folder) {
|
|
18
|
+
throw new _error.WebinyError("Missing `folder`, I can't create a new record into the FLP catalog.", "ERROR_CREATE_FLP_USE_CASE_FOLDER_NOT_PROVIDED");
|
|
19
|
+
}
|
|
20
|
+
const {
|
|
21
|
+
id,
|
|
22
|
+
type,
|
|
23
|
+
slug,
|
|
24
|
+
parentId,
|
|
25
|
+
permissions
|
|
26
|
+
} = folder;
|
|
27
|
+
let parentFlp = null;
|
|
28
|
+
if (parentId) {
|
|
29
|
+
parentFlp = await this.context.aco.flp.get(parentId);
|
|
30
|
+
if (!parentFlp) {
|
|
31
|
+
throw new _error.WebinyError("Parent folder level permission not found. Unable to create a new record in the FLP catalog.", "ERROR_CREATE_FLP_USE_CASE_PARENT_FLP_NOT_FOUND");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
await this.context.aco.flp.create({
|
|
35
|
+
id,
|
|
36
|
+
type,
|
|
37
|
+
slug,
|
|
38
|
+
parentId: parentId ?? _constants.ROOT_FOLDER,
|
|
39
|
+
path: _Path.Path.create(slug, parentFlp?.path),
|
|
40
|
+
permissions: _Permissions.Permissions.create(permissions, parentFlp)
|
|
41
|
+
});
|
|
42
|
+
} catch (error) {
|
|
43
|
+
throw _error.WebinyError.from(error, {
|
|
44
|
+
message: "Error while creating FLP",
|
|
45
|
+
code: "ERROR_CREATE_FLP_USE_CASE"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.CreateFlp = CreateFlp;
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=CreateFlp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","require","_Path","_Permissions","_constants","CreateFlp","constructor","context","execute","folder","WebinyError","id","type","slug","parentId","permissions","parentFlp","aco","flp","get","create","ROOT_FOLDER","path","Path","Permissions","error","from","message","code","exports"],"sources":["CreateFlp.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"./Path\";\nimport { Permissions } from \"./Permissions\";\nimport type { FolderLevelPermission as IFolderLevelPermission } from \"~/flp/flp.types\";\nimport type { Folder } from \"~/folder/folder.types\";\nimport type { AcoContext } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport class CreateFlp {\n private context: AcoContext;\n\n constructor(context: AcoContext) {\n this.context = context;\n }\n\n async execute(folder: Folder) {\n try {\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder`, I can't create a new record into the FLP catalog.\",\n \"ERROR_CREATE_FLP_USE_CASE_FOLDER_NOT_PROVIDED\"\n );\n }\n\n const { id, type, slug, parentId, permissions } = folder;\n let parentFlp: IFolderLevelPermission | null = null;\n\n if (parentId) {\n parentFlp = await this.context.aco.flp.get(parentId);\n\n if (!parentFlp) {\n throw new WebinyError(\n \"Parent folder level permission not found. Unable to create a new record in the FLP catalog.\",\n \"ERROR_CREATE_FLP_USE_CASE_PARENT_FLP_NOT_FOUND\"\n );\n }\n }\n\n 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 } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while creating FLP\",\n code: \"ERROR_CREATE_FLP_USE_CASE\"\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAIA,IAAAG,UAAA,GAAAH,OAAA;AAEO,MAAMI,SAAS,CAAC;EAGnBC,WAAWA,CAACC,OAAmB,EAAE;IAC7B,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,MAAc,EAAE;IAC1B,IAAI;MACA,IAAI,CAACA,MAAM,EAAE;QACT,MAAM,IAAIC,kBAAW,CACjB,qEAAqE,EACrE,+CACJ,CAAC;MACL;MAEA,MAAM;QAAEC,EAAE;QAAEC,IAAI;QAAEC,IAAI;QAAEC,QAAQ;QAAEC;MAAY,CAAC,GAAGN,MAAM;MACxD,IAAIO,SAAwC,GAAG,IAAI;MAEnD,IAAIF,QAAQ,EAAE;QACVE,SAAS,GAAG,MAAM,IAAI,CAACT,OAAO,CAACU,GAAG,CAACC,GAAG,CAACC,GAAG,CAACL,QAAQ,CAAC;QAEpD,IAAI,CAACE,SAAS,EAAE;UACZ,MAAM,IAAIN,kBAAW,CACjB,6FAA6F,EAC7F,gDACJ,CAAC;QACL;MACJ;MAEA,MAAM,IAAI,CAACH,OAAO,CAACU,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC;QAC9BT,EAAE;QACFC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,IAAIO,sBAAW;QACjCC,IAAI,EAAEC,UAAI,CAACH,MAAM,CAACP,IAAI,EAAEG,SAAS,EAAEM,IAAI,CAAC;QACxCP,WAAW,EAAES,wBAAW,CAACJ,MAAM,CAACL,WAAW,EAAEC,SAAS;MAC1D,CAAC,CAAC;IACN,CAAC,CAAC,OAAOS,KAAK,EAAE;MACZ,MAAMf,kBAAW,CAACgB,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0BAA0B;QACnCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAACC,OAAA,CAAAxB,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DeleteFlp = void 0;
|
|
7
|
+
var _error = require("@webiny/error");
|
|
8
|
+
class DeleteFlp {
|
|
9
|
+
constructor(context) {
|
|
10
|
+
this.context = context;
|
|
11
|
+
}
|
|
12
|
+
async execute(folder) {
|
|
13
|
+
try {
|
|
14
|
+
if (!folder) {
|
|
15
|
+
throw new _error.WebinyError("Missing `folder` from the task input, I can't delete the record from the FLP catalog.", "ERROR_DELETE_FLP_USE_CASE_FOLDER_NOT_PROVIDED", {
|
|
16
|
+
folder
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
await this.context.aco.flp.delete(folder.id);
|
|
20
|
+
} catch (error) {
|
|
21
|
+
throw _error.WebinyError.from(error, {
|
|
22
|
+
message: "Error while deleting FLP",
|
|
23
|
+
code: "ERROR_DELETE_FLP_USE_CASE"
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.DeleteFlp = DeleteFlp;
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=DeleteFlp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","require","DeleteFlp","constructor","context","execute","folder","WebinyError","aco","flp","delete","id","error","from","message","code","exports"],"sources":["DeleteFlp.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { AcoContext, Folder } from \"~/types\";\n\nexport class DeleteFlp {\n private context: AcoContext;\n\n constructor(context: AcoContext) {\n this.context = context;\n }\n\n async execute(folder: Folder) {\n try {\n if (!folder) {\n throw new WebinyError(\n \"Missing `folder` from the task input, I can't delete the record from the FLP catalog.\",\n \"ERROR_DELETE_FLP_USE_CASE_FOLDER_NOT_PROVIDED\",\n { folder }\n );\n }\n await this.context.aco.flp.delete(folder.id);\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while deleting FLP\",\n code: \"ERROR_DELETE_FLP_USE_CASE\"\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAMC,SAAS,CAAC;EAGnBC,WAAWA,CAACC,OAAmB,EAAE;IAC7B,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,OAAOA,CAACC,MAAc,EAAE;IAC1B,IAAI;MACA,IAAI,CAACA,MAAM,EAAE;QACT,MAAM,IAAIC,kBAAW,CACjB,uFAAuF,EACvF,+CAA+C,EAC/C;UAAED;QAAO,CACb,CAAC;MACL;MACA,MAAM,IAAI,CAACF,OAAO,CAACI,GAAG,CAACC,GAAG,CAACC,MAAM,CAACJ,MAAM,CAACK,EAAE,CAAC;IAChD,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,MAAML,kBAAW,CAACM,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,0BAA0B;QACnCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAACC,OAAA,CAAAd,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Path = void 0;
|
|
7
|
+
var _constants = require("../../constants");
|
|
8
|
+
class Path {
|
|
9
|
+
static create(slug, parentPath) {
|
|
10
|
+
if (parentPath) {
|
|
11
|
+
return `${parentPath}/${slug}`;
|
|
12
|
+
}
|
|
13
|
+
return `${_constants.ROOT_FOLDER}/${slug}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Path = Path;
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=Path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_constants","require","Path","create","slug","parentPath","ROOT_FOLDER","exports"],"sources":["Path.ts"],"sourcesContent":["import { ROOT_FOLDER } from \"~/constants\";\n\nexport class Path {\n static create(slug: string, parentPath?: string) {\n if (parentPath) {\n return `${parentPath}/${slug}`;\n }\n\n return `${ROOT_FOLDER}/${slug}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,IAAI,CAAC;EACd,OAAOC,MAAMA,CAACC,IAAY,EAAEC,UAAmB,EAAE;IAC7C,IAAIA,UAAU,EAAE;MACZ,OAAO,GAAGA,UAAU,IAAID,IAAI,EAAE;IAClC;IAEA,OAAO,GAAGE,sBAAW,IAAIF,IAAI,EAAE;EACnC;AACJ;AAACG,OAAA,CAAAL,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FolderLevelPermission as IFolderLevelPermission, FolderPermission } from "../flp.types";
|
|
2
|
+
export declare class Permissions {
|
|
3
|
+
static create(permissions?: FolderPermission[], parentFlp?: Pick<IFolderLevelPermission, "id" | "permissions"> | null): FolderPermission[];
|
|
4
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Permissions = void 0;
|
|
7
|
+
class Permissions {
|
|
8
|
+
static create(permissions, parentFlp) {
|
|
9
|
+
const folderPermissions = permissions ?? [];
|
|
10
|
+
|
|
11
|
+
// No permissions from the parent, let's return the permissions provided by the folder.
|
|
12
|
+
if (!parentFlp || !parentFlp.permissions?.length) {
|
|
13
|
+
return folderPermissions;
|
|
14
|
+
}
|
|
15
|
+
const {
|
|
16
|
+
id: parentId,
|
|
17
|
+
permissions: parentPermissions
|
|
18
|
+
} = parentFlp;
|
|
19
|
+
|
|
20
|
+
// Remove all previously inherited permissions
|
|
21
|
+
const cleanedPermissions = folderPermissions.filter(p => p.inheritedFrom !== `parent:${parentId}`);
|
|
22
|
+
|
|
23
|
+
// Store the `target` values from the current cleaned permissions.
|
|
24
|
+
// These will be used to exclude inherited permissions that target the same entities as the current folder's permissions.
|
|
25
|
+
const permissionsTargets = new Set(cleanedPermissions.map(p => p.target));
|
|
26
|
+
|
|
27
|
+
// Get inherited permissions from parent, preserving the original inheritance chain
|
|
28
|
+
const inheritedPermissions = parentPermissions.filter(p => !permissionsTargets.has(p.target)).map(p => ({
|
|
29
|
+
...p,
|
|
30
|
+
// If the permission was already inherited, keep its original source
|
|
31
|
+
inheritedFrom: `parent:${parentId}`
|
|
32
|
+
}));
|
|
33
|
+
return [...cleanedPermissions, ...inheritedPermissions];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Permissions = Permissions;
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=Permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Permissions","create","permissions","parentFlp","folderPermissions","length","id","parentId","parentPermissions","cleanedPermissions","filter","p","inheritedFrom","permissionsTargets","Set","map","target","inheritedPermissions","has","exports"],"sources":["Permissions.ts"],"sourcesContent":["import type {\n FolderLevelPermission as IFolderLevelPermission,\n FolderPermission\n} from \"~/flp/flp.types\";\n\nexport class Permissions {\n public static create(\n permissions?: FolderPermission[],\n parentFlp?: Pick<IFolderLevelPermission, \"id\" | \"permissions\"> | null\n ): FolderPermission[] {\n const folderPermissions = permissions ?? [];\n\n // No permissions from the parent, let's return the permissions provided by the folder.\n if (!parentFlp || !parentFlp.permissions?.length) {\n return folderPermissions;\n }\n\n const { id: parentId, permissions: parentPermissions } = parentFlp;\n\n // Remove all previously inherited permissions\n const cleanedPermissions = folderPermissions.filter(\n p => p.inheritedFrom !== `parent:${parentId}`\n );\n\n // Store the `target` values from the current cleaned permissions.\n // These will be used to exclude inherited permissions that target the same entities as the current folder's permissions.\n const permissionsTargets = new Set(cleanedPermissions.map(p => p.target));\n\n // Get inherited permissions from parent, preserving the original inheritance chain\n const inheritedPermissions = parentPermissions\n .filter(p => !permissionsTargets.has(p.target))\n .map(p => ({\n ...p,\n // If the permission was already inherited, keep its original source\n inheritedFrom: `parent:${parentId}`\n }));\n\n return [...cleanedPermissions, ...inheritedPermissions];\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,WAAW,CAAC;EACrB,OAAcC,MAAMA,CAChBC,WAAgC,EAChCC,SAAqE,EACnD;IAClB,MAAMC,iBAAiB,GAAGF,WAAW,IAAI,EAAE;;IAE3C;IACA,IAAI,CAACC,SAAS,IAAI,CAACA,SAAS,CAACD,WAAW,EAAEG,MAAM,EAAE;MAC9C,OAAOD,iBAAiB;IAC5B;IAEA,MAAM;MAAEE,EAAE,EAAEC,QAAQ;MAAEL,WAAW,EAAEM;IAAkB,CAAC,GAAGL,SAAS;;IAElE;IACA,MAAMM,kBAAkB,GAAGL,iBAAiB,CAACM,MAAM,CAC/CC,CAAC,IAAIA,CAAC,CAACC,aAAa,KAAK,UAAUL,QAAQ,EAC/C,CAAC;;IAED;IACA;IACA,MAAMM,kBAAkB,GAAG,IAAIC,GAAG,CAACL,kBAAkB,CAACM,GAAG,CAACJ,CAAC,IAAIA,CAAC,CAACK,MAAM,CAAC,CAAC;;IAEzE;IACA,MAAMC,oBAAoB,GAAGT,iBAAiB,CACzCE,MAAM,CAACC,CAAC,IAAI,CAACE,kBAAkB,CAACK,GAAG,CAACP,CAAC,CAACK,MAAM,CAAC,CAAC,CAC9CD,GAAG,CAACJ,CAAC,KAAK;MACP,GAAGA,CAAC;MACJ;MACAC,aAAa,EAAE,UAAUL,QAAQ;IACrC,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,GAAGE,kBAAkB,EAAE,GAAGQ,oBAAoB,CAAC;EAC3D;AACJ;AAACE,OAAA,CAAAnB,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,182 @@
|
|
|
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("./Path");
|
|
9
|
+
var _Permissions = require("./Permissions");
|
|
10
|
+
var _constants = require("../../constants");
|
|
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 ?? _constants.ROOT_FOLDER,
|
|
34
|
+
path: _Path.Path.create(folder.slug, parentFlp?.path),
|
|
35
|
+
permissions: _Permissions.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: _Permissions.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
|
+
} catch (error) {
|
|
121
|
+
throw _error.WebinyError.from(error, {
|
|
122
|
+
message: "Error while executing batch update of FLPs",
|
|
123
|
+
code: "BATCH_UPDATE_FLP_ERROR",
|
|
124
|
+
data: {
|
|
125
|
+
items: Array.from(this.flpsToUpdate.keys())
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
} finally {
|
|
129
|
+
// Clear the update collection after the batch update
|
|
130
|
+
this.flpsToUpdate.clear();
|
|
131
|
+
|
|
132
|
+
//Let's remove all the updated FLPs ids from the queue cache
|
|
133
|
+
this.clearQueuedList();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
getQueuedList() {
|
|
137
|
+
return Array.from(this.queued);
|
|
138
|
+
}
|
|
139
|
+
setQueued(id) {
|
|
140
|
+
this.queued.add(id);
|
|
141
|
+
}
|
|
142
|
+
isQueued(id) {
|
|
143
|
+
return this.queued.has(id);
|
|
144
|
+
}
|
|
145
|
+
clearQueuedList() {
|
|
146
|
+
return this.queued.clear();
|
|
147
|
+
}
|
|
148
|
+
async listDirectChildren(flp) {
|
|
149
|
+
const [folders] = await this.context.aco.folder.listAll({
|
|
150
|
+
where: {
|
|
151
|
+
type: flp.type,
|
|
152
|
+
parentId: flp.id
|
|
153
|
+
},
|
|
154
|
+
disablePermissions: true
|
|
155
|
+
});
|
|
156
|
+
return await Promise.all(folders.map(folder => this.getFlp(folder)));
|
|
157
|
+
}
|
|
158
|
+
async getFlp({
|
|
159
|
+
id,
|
|
160
|
+
type,
|
|
161
|
+
parentId,
|
|
162
|
+
slug,
|
|
163
|
+
permissions
|
|
164
|
+
}) {
|
|
165
|
+
const flp = await this.context.aco.flp.get(id);
|
|
166
|
+
if (!flp) {
|
|
167
|
+
const parentFlp = parentId ? await this.context.aco.flp.get(parentId) : null;
|
|
168
|
+
return await this.context.aco.flp.create({
|
|
169
|
+
id,
|
|
170
|
+
type,
|
|
171
|
+
slug,
|
|
172
|
+
parentId: parentId ?? _constants.ROOT_FOLDER,
|
|
173
|
+
path: _Path.Path.create(slug, parentFlp?.path),
|
|
174
|
+
permissions: _Permissions.Permissions.create(permissions, parentFlp)
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return flp;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.UpdateFlp = UpdateFlp;
|
|
181
|
+
|
|
182
|
+
//# sourceMappingURL=UpdateFlp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","require","_Path","_Permissions","_constants","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","keys","clearQueuedList","add","has","folders","listAll","where","type","disablePermissions","Promise","all","exports"],"sources":["UpdateFlp.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { Path } from \"./Path\";\nimport { Permissions } from \"./Permissions\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport type { AcoContext, Folder, FolderLevelPermission, FolderPermission } from \"~/types\";\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 } 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"],"mappings":"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","ignoreList":[]}
|