@webiny/api-aco 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9
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/constants.js +2 -1
- package/constants.js.map +1 -1
- package/createAcoContext.d.ts +1 -1
- package/createAcoContext.js +75 -107
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.js +43 -44
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoStorageOperations.js +5 -6
- package/createAcoStorageOperations.js.map +1 -1
- package/createAcoTasks.js +7 -8
- package/createAcoTasks.js.map +1 -1
- package/domain/folder/abstractions.js +2 -5
- package/domain/folder/abstractions.js.map +1 -1
- package/domain/folder/errors.js +42 -47
- package/domain/folder/errors.js.map +1 -1
- package/domain/folder/folder.model.js +52 -33
- package/domain/folder/folder.model.js.map +1 -1
- package/exports/api/aco/flp.d.ts +6 -0
- package/exports/api/aco/flp.js +6 -0
- package/exports/api/aco/folder.d.ts +10 -0
- package/exports/api/aco/folder.js +10 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
- package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +27 -28
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +27 -27
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +27 -28
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +27 -28
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/feature.d.ts +4 -1
- package/features/cms/feature.js +19 -25
- package/features/cms/feature.js.map +1 -1
- package/features/cms/index.js +0 -2
- package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
- package/features/flp/CreateFlp/abstractions.d.ts +1 -0
- package/features/flp/CreateFlp/abstractions.js +2 -4
- package/features/flp/CreateFlp/abstractions.js.map +1 -1
- package/features/flp/CreateFlp/feature.d.ts +5 -1
- package/features/flp/CreateFlp/feature.js +7 -8
- package/features/flp/CreateFlp/feature.js.map +1 -1
- package/features/flp/CreateFlp/index.js +0 -2
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +3 -3
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +28 -28
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
- package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -1
- package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
- package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
- package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
- package/features/flp/DeleteFlp/abstractions.d.ts +1 -0
- package/features/flp/DeleteFlp/abstractions.js +2 -4
- package/features/flp/DeleteFlp/abstractions.js.map +1 -1
- package/features/flp/DeleteFlp/feature.d.ts +5 -1
- package/features/flp/DeleteFlp/feature.js +7 -8
- package/features/flp/DeleteFlp/feature.js.map +1 -1
- package/features/flp/DeleteFlp/index.js +0 -2
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +3 -3
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +28 -28
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
- package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -1
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
- package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +90 -111
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/abstractions.d.ts +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +2 -1
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/feature.d.ts +5 -1
- package/features/flp/FolderLevelPermissions/feature.js +6 -5
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
- package/features/flp/FolderLevelPermissions/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +2 -2
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
- package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
- package/features/flp/GetFlp/abstractions.d.ts +1 -0
- package/features/flp/GetFlp/abstractions.js +2 -1
- package/features/flp/GetFlp/abstractions.js.map +1 -1
- package/features/flp/GetFlp/feature.d.ts +4 -1
- package/features/flp/GetFlp/feature.js +7 -8
- package/features/flp/GetFlp/feature.js.map +1 -1
- package/features/flp/GetFlp/index.js +0 -2
- package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
- package/features/flp/ListFlps/abstractions.d.ts +1 -0
- package/features/flp/ListFlps/abstractions.js +2 -1
- package/features/flp/ListFlps/abstractions.js.map +1 -1
- package/features/flp/ListFlps/feature.d.ts +4 -1
- package/features/flp/ListFlps/feature.js +7 -8
- package/features/flp/ListFlps/feature.js.map +1 -1
- package/features/flp/ListFlps/index.js +0 -2
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +133 -184
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
- package/features/flp/UpdateFlp/abstractions.d.ts +1 -0
- package/features/flp/UpdateFlp/abstractions.js +2 -4
- package/features/flp/UpdateFlp/abstractions.js.map +1 -1
- package/features/flp/UpdateFlp/feature.d.ts +5 -1
- package/features/flp/UpdateFlp/feature.js +7 -8
- package/features/flp/UpdateFlp/feature.js.map +1 -1
- package/features/flp/UpdateFlp/index.js +0 -2
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +3 -3
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +30 -30
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
- package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -1
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
- package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
- package/features/folder/CreateFolder/CreateFolderRepository.js +67 -90
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
- package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +1 -1
- package/features/folder/CreateFolder/CreateFolderUseCase.js +28 -31
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
- package/features/folder/CreateFolder/abstractions.d.ts +9 -5
- package/features/folder/CreateFolder/abstractions.js +5 -18
- package/features/folder/CreateFolder/abstractions.js.map +1 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +29 -34
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/CreateFolder/events.d.ts +3 -3
- package/features/folder/CreateFolder/events.js +17 -15
- package/features/folder/CreateFolder/events.js.map +1 -1
- package/features/folder/CreateFolder/feature.d.ts +5 -1
- package/features/folder/CreateFolder/feature.js +8 -7
- package/features/folder/CreateFolder/feature.js.map +1 -1
- package/features/folder/CreateFolder/index.d.ts +1 -1
- package/features/folder/CreateFolder/index.js +1 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +22 -20
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
- package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +1 -1
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +36 -44
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
- package/features/folder/DeleteFolder/abstractions.d.ts +9 -5
- package/features/folder/DeleteFolder/abstractions.js +5 -18
- package/features/folder/DeleteFolder/abstractions.js.map +1 -1
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/DeleteFolder/events.d.ts +3 -3
- package/features/folder/DeleteFolder/events.js +17 -15
- package/features/folder/DeleteFolder/events.js.map +1 -1
- package/features/folder/DeleteFolder/feature.d.ts +5 -1
- package/features/folder/DeleteFolder/feature.js +8 -7
- package/features/folder/DeleteFolder/feature.js.map +1 -1
- package/features/folder/DeleteFolder/index.d.ts +1 -1
- package/features/folder/DeleteFolder/index.js +1 -3
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +43 -44
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -1
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -1
- package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
- package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +3 -3
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +17 -21
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +4 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +3 -3
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +37 -45
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
- package/features/folder/GetAncestors/GetAncestorsRepository.js +45 -75
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
- package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
- package/features/folder/GetAncestors/abstractions.d.ts +2 -0
- package/features/folder/GetAncestors/abstractions.js +3 -12
- package/features/folder/GetAncestors/abstractions.js.map +1 -1
- package/features/folder/GetAncestors/feature.d.ts +5 -1
- package/features/folder/GetAncestors/feature.js +7 -6
- package/features/folder/GetAncestors/feature.js.map +1 -1
- package/features/folder/GetAncestors/index.js +0 -2
- package/features/folder/GetFolder/GetFolderRepository.js +21 -19
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
- package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
- package/features/folder/GetFolder/abstractions.d.ts +8 -5
- package/features/folder/GetFolder/abstractions.js +5 -18
- package/features/folder/GetFolder/abstractions.js.map +1 -1
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/GetFolder/feature.d.ts +5 -1
- package/features/folder/GetFolder/feature.js +8 -7
- package/features/folder/GetFolder/feature.js.map +1 -1
- package/features/folder/GetFolder/index.d.ts +1 -1
- package/features/folder/GetFolder/index.js +1 -3
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +67 -86
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
- package/features/folder/GetFolderHierarchy/abstractions.d.ts +2 -0
- package/features/folder/GetFolderHierarchy/abstractions.js +3 -12
- package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/GetFolderHierarchy/feature.d.ts +5 -1
- package/features/folder/GetFolderHierarchy/feature.js +8 -7
- package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
- package/features/folder/GetFolderHierarchy/index.js +0 -2
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +2 -2
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +67 -60
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -4
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -1
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
- package/features/folder/ListFolders/ListFoldersRepository.js +39 -41
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
- package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
- package/features/folder/ListFolders/abstractions.d.ts +2 -0
- package/features/folder/ListFolders/abstractions.js +3 -12
- package/features/folder/ListFolders/abstractions.js.map +1 -1
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/ListFolders/feature.d.ts +5 -1
- package/features/folder/ListFolders/feature.js +8 -7
- package/features/folder/ListFolders/feature.js.map +1 -1
- package/features/folder/ListFolders/index.js +0 -2
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +66 -92
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
- package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +1 -1
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +39 -46
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
- package/features/folder/UpdateFolder/abstractions.d.ts +9 -5
- package/features/folder/UpdateFolder/abstractions.js +5 -18
- package/features/folder/UpdateFolder/abstractions.js.map +1 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +45 -64
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/UpdateFolder/events.d.ts +3 -3
- package/features/folder/UpdateFolder/events.js +17 -15
- package/features/folder/UpdateFolder/events.js.map +1 -1
- package/features/folder/UpdateFolder/feature.d.ts +5 -1
- package/features/folder/UpdateFolder/feature.js +8 -7
- package/features/folder/UpdateFolder/feature.js.map +1 -1
- package/features/folder/UpdateFolder/index.d.ts +1 -1
- package/features/folder/UpdateFolder/index.js +1 -3
- package/features/folder/shared/EntryToFolderMapper.js +20 -19
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
- package/features/folder/shared/abstractions.d.ts +1 -0
- package/features/folder/shared/abstractions.js +2 -1
- package/features/folder/shared/abstractions.js.map +1 -1
- package/filter/filter.crud.js +28 -31
- package/filter/filter.crud.js.map +1 -1
- package/filter/filter.gql.js +32 -48
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js +44 -32
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.js +73 -93
- package/filter/filter.so.js.map +1 -1
- package/filter/filter.types.js +5 -4
- package/filter/filter.types.js.map +1 -1
- package/flp/flp.crud.js +69 -86
- package/flp/flp.crud.js.map +1 -1
- package/flp/flp.so.js +162 -199
- package/flp/flp.so.js.map +1 -1
- package/flp/flp.types.js +0 -3
- package/flp/index.js +0 -2
- package/flp/tasks/createFlp.task.d.ts +6 -4
- package/flp/tasks/createFlp.task.js +27 -26
- package/flp/tasks/createFlp.task.js.map +1 -1
- package/flp/tasks/deleteFlp.task.d.ts +6 -4
- package/flp/tasks/deleteFlp.task.js +27 -26
- package/flp/tasks/deleteFlp.task.js.map +1 -1
- package/flp/tasks/index.js +13 -12
- package/flp/tasks/index.js.map +1 -1
- package/flp/tasks/syncFlp.task.d.ts +6 -4
- package/flp/tasks/syncFlp.task.js +84 -111
- package/flp/tasks/syncFlp.task.js.map +1 -1
- package/flp/tasks/updateFlp.task.d.ts +6 -4
- package/flp/tasks/updateFlp.task.js +34 -31
- package/flp/tasks/updateFlp.task.js.map +1 -1
- package/folder/createFolderModelModifier.js +50 -50
- package/folder/createFolderModelModifier.js.map +1 -1
- package/folder/createFolderTypeDefs.d.ts +3 -2
- package/folder/createFolderTypeDefs.js +39 -50
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/folder.gql.js +100 -133
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.js +0 -3
- package/index.d.ts +1 -1
- package/index.js +7 -4
- package/index.js.map +1 -1
- package/package.json +31 -41
- package/types.js +5 -4
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.js +20 -19
- package/utils/FoldersCacheFactory.js.map +1 -1
- package/utils/ListCache.js +20 -19
- package/utils/ListCache.js.map +1 -1
- package/utils/Path.js +5 -6
- package/utils/Path.js.map +1 -1
- package/utils/compress.js +8 -7
- package/utils/compress.js.map +1 -1
- package/utils/createListSort.js +4 -7
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.js +12 -19
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +165 -196
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
- package/utils/decorators/ListEntriesFactory.js +65 -98
- package/utils/decorators/ListEntriesFactory.js.map +1 -1
- package/utils/decorators/hasRootFolderId.js +6 -12
- package/utils/decorators/hasRootFolderId.js.map +1 -1
- package/utils/decorators/isPageModel.js +5 -10
- package/utils/decorators/isPageModel.js.map +1 -1
- package/utils/ensureAuthentication.js +6 -7
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/pickEntryFieldValues.js +24 -18
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/resolve.js +7 -6
- package/utils/resolve.js.map +1 -1
- package/features/cms/index.js.map +0 -1
- package/features/flp/CreateFlp/index.js.map +0 -1
- package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
- package/features/flp/DeleteFlp/index.js.map +0 -1
- package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
- package/features/flp/GetFlp/index.js.map +0 -1
- package/features/flp/ListFlps/index.js.map +0 -1
- package/features/flp/UpdateFlp/index.js.map +0 -1
- package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
- package/features/folder/CreateFolder/index.js.map +0 -1
- package/features/folder/DeleteFolder/index.js.map +0 -1
- package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
- package/features/folder/GetAncestors/index.js.map +0 -1
- package/features/folder/GetFolder/index.js.map +0 -1
- package/features/folder/GetFolderHierarchy/index.js.map +0 -1
- package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
- package/features/folder/ListFolders/index.js.map +0 -1
- package/features/folder/UpdateFolder/index.js.map +0 -1
- package/flp/flp.types.js.map +0 -1
- package/flp/index.js.map +0 -1
- package/folder/folder.types.js.map +0 -1
- package/utils/acoRecordId.d.ts +0 -6
- package/utils/acoRecordId.js +0 -27
- package/utils/acoRecordId.js.map +0 -1
|
@@ -1,56 +1,55 @@
|
|
|
1
1
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
2
2
|
import { ListFoldersUseCase } from "../ListFolders/index.js";
|
|
3
|
-
import { EnsureFolderIsEmpty
|
|
3
|
+
import { EnsureFolderIsEmpty } from "./abstractions.js";
|
|
4
4
|
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
5
5
|
import { FolderNotAuthorizedError, FolderNotEmptyError } from "../../../domain/folder/errors.js";
|
|
6
6
|
import { Result } from "@webiny/feature/api";
|
|
7
7
|
class EnsureFolderIsEmptyImpl {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
async execute(type, id, hasContentCallback) {
|
|
14
|
-
const hasFoldersCallback = async () => {
|
|
15
|
-
const result = await this.listFoldersUseCase.execute({
|
|
16
|
-
where: {
|
|
17
|
-
type,
|
|
18
|
-
parentId: id
|
|
19
|
-
},
|
|
20
|
-
limit: 1
|
|
21
|
-
});
|
|
22
|
-
const {
|
|
23
|
-
folders
|
|
24
|
-
} = result.value;
|
|
25
|
-
return folders.length > 0;
|
|
26
|
-
};
|
|
27
|
-
const [hasFolders, hasContent] = await Promise.all([hasFoldersCallback(), hasContentCallback()]);
|
|
28
|
-
if (hasFolders || hasContent) {
|
|
29
|
-
return Result.fail(new FolderNotEmptyError());
|
|
8
|
+
constructor(identityContext, folderLevelPermissions, listFoldersUseCase){
|
|
9
|
+
this.identityContext = identityContext;
|
|
10
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
11
|
+
this.listFoldersUseCase = listFoldersUseCase;
|
|
30
12
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
13
|
+
async execute(type, id, hasContentCallback) {
|
|
14
|
+
const hasFoldersCallback = async ()=>{
|
|
15
|
+
const result = await this.listFoldersUseCase.execute({
|
|
16
|
+
where: {
|
|
17
|
+
type,
|
|
18
|
+
parentId: id
|
|
19
|
+
},
|
|
20
|
+
limit: 1
|
|
21
|
+
});
|
|
22
|
+
const { folders } = result.value;
|
|
23
|
+
return folders.length > 0;
|
|
24
|
+
};
|
|
25
|
+
const [hasFolders, hasContent] = await Promise.all([
|
|
26
|
+
hasFoldersCallback(),
|
|
27
|
+
hasContentCallback()
|
|
28
|
+
]);
|
|
29
|
+
if (hasFolders || hasContent) return Result.fail(new FolderNotEmptyError());
|
|
30
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return Result.ok();
|
|
31
|
+
const [hasInvisibleFolders, hasInvisibleContent] = await this.identityContext.withoutAuthorization(async ()=>{
|
|
32
|
+
const [hasFolders, hasContent] = await Promise.all([
|
|
33
|
+
hasFoldersCallback(),
|
|
34
|
+
hasContentCallback()
|
|
35
|
+
]);
|
|
36
|
+
return [
|
|
37
|
+
hasFolders,
|
|
38
|
+
hasContent
|
|
39
|
+
];
|
|
40
|
+
});
|
|
41
|
+
if (hasInvisibleFolders || hasInvisibleContent) return Result.fail(new FolderNotAuthorizedError());
|
|
42
|
+
return Result.ok();
|
|
47
43
|
}
|
|
48
|
-
return Result.ok();
|
|
49
|
-
}
|
|
50
44
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
const EnsureFolderIsEmpty_EnsureFolderIsEmpty = EnsureFolderIsEmpty.createImplementation({
|
|
46
|
+
implementation: EnsureFolderIsEmptyImpl,
|
|
47
|
+
dependencies: [
|
|
48
|
+
IdentityContext,
|
|
49
|
+
FolderLevelPermissions,
|
|
50
|
+
ListFoldersUseCase
|
|
51
|
+
]
|
|
54
52
|
});
|
|
53
|
+
export { EnsureFolderIsEmpty_EnsureFolderIsEmpty as EnsureFolderIsEmpty };
|
|
55
54
|
|
|
56
55
|
//# sourceMappingURL=EnsureFolderIsEmpty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js","sources":["../../../../src/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.ts"],"sourcesContent":["import { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\nimport { EnsureFolderIsEmpty as Abstraction } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { FolderNotAuthorizedError, FolderNotEmptyError } from \"~/domain/folder/errors.js\";\nimport { Result } from \"@webiny/feature/api\";\n\nclass EnsureFolderIsEmptyImpl implements Abstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private listFoldersUseCase: ListFoldersUseCase.Interface\n ) {}\n\n async execute(\n type: string,\n id: string,\n hasContentCallback: Abstraction.HasContentCallback\n ): Abstraction.Return {\n const hasFoldersCallback = async () => {\n const result = await this.listFoldersUseCase.execute({\n where: {\n type,\n parentId: id\n },\n limit: 1\n });\n\n const { folders } = result.value;\n\n return folders.length > 0;\n };\n\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n\n if (hasFolders || hasContent) {\n return Result.fail(new FolderNotEmptyError());\n }\n\n // Let's also check if there are folders / content that are not visible because of folder permissions.\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n // If folder level permissions are not enabled, we can skip this check. This is because\n // in that case, all folders and content are visible to the user.\n return Result.ok();\n }\n\n const [hasInvisibleFolders, hasInvisibleContent] =\n await this.identityContext.withoutAuthorization(async () => {\n const [hasFolders, hasContent] = await Promise.all([\n hasFoldersCallback(),\n hasContentCallback()\n ]);\n return [hasFolders, hasContent];\n });\n\n // In case there are invisible folders or content, we'll throw a different error.\n // This is to prevent users from deleting folders that contain content they can't see.\n if (hasInvisibleFolders || hasInvisibleContent) {\n return Result.fail(new FolderNotAuthorizedError());\n }\n\n return Result.ok();\n }\n}\n\nexport const EnsureFolderIsEmpty = Abstraction.createImplementation({\n implementation: EnsureFolderIsEmptyImpl,\n dependencies: [IdentityContext, FolderLevelPermissions, ListFoldersUseCase]\n});\n"],"names":["EnsureFolderIsEmptyImpl","identityContext","folderLevelPermissions","listFoldersUseCase","type","id","hasContentCallback","hasFoldersCallback","result","folders","hasFolders","hasContent","Promise","Result","FolderNotEmptyError","hasInvisibleFolders","hasInvisibleContent","FolderNotAuthorizedError","EnsureFolderIsEmpty","Abstraction","IdentityContext","FolderLevelPermissions","ListFoldersUseCase"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,sBAAwD,EACxDC,kBAAgD,CAC1D;aAHUF,eAAe,GAAfA;aACAC,sBAAsB,GAAtBA;aACAC,kBAAkB,GAAlBA;IACT;IAEH,MAAM,QACFC,IAAY,EACZC,EAAU,EACVC,kBAAkD,EAChC;QAClB,MAAMC,qBAAqB;YACvB,MAAMC,SAAS,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACjD,OAAO;oBACHJ;oBACA,UAAUC;gBACd;gBACA,OAAO;YACX;YAEA,MAAM,EAAEI,OAAO,EAAE,GAAGD,OAAO,KAAK;YAEhC,OAAOC,QAAQ,MAAM,GAAG;QAC5B;QAEA,MAAM,CAACC,YAAYC,WAAW,GAAG,MAAMC,QAAQ,GAAG,CAAC;YAC/CL;YACAD;SACH;QAED,IAAII,cAAcC,YACd,OAAOE,OAAO,IAAI,CAAC,IAAIC;QAI3B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IAGzD,OAAOD,OAAO,EAAE;QAGpB,MAAM,CAACE,qBAAqBC,oBAAoB,GAC5C,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;YAC5C,MAAM,CAACN,YAAYC,WAAW,GAAG,MAAMC,QAAQ,GAAG,CAAC;gBAC/CL;gBACAD;aACH;YACD,OAAO;gBAACI;gBAAYC;aAAW;QACnC;QAIJ,IAAII,uBAAuBC,qBACvB,OAAOH,OAAO,IAAI,CAAC,IAAII;QAG3B,OAAOJ,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMK,0CAAsBC,oBAAAA,oBAAgC,CAAC;IAChE,gBAAgBnB;IAChB,cAAc;QAACoB;QAAiBC;QAAwBC;KAAmB;AAC/E"}
|
|
@@ -11,6 +11,7 @@ export interface IEnsureFolderIsEmptyError {
|
|
|
11
11
|
notEmpty: FolderNotEmptyError;
|
|
12
12
|
}
|
|
13
13
|
type UseCaseError = IEnsureFolderIsEmptyError[keyof IEnsureFolderIsEmptyError];
|
|
14
|
+
/** Verify a folder has no children before deletion. */
|
|
14
15
|
export declare const EnsureFolderIsEmpty: import("@webiny/di").Abstraction<IEnsureFolderIsEmpty>;
|
|
15
16
|
export declare namespace EnsureFolderIsEmpty {
|
|
16
17
|
type Interface = IEnsureFolderIsEmpty;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
2
|
+
const EnsureFolderIsEmpty = createAbstraction("EnsureFolderIsEmpty");
|
|
3
|
+
export { EnsureFolderIsEmpty };
|
|
3
4
|
|
|
4
5
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureFolderIsEmpty/abstractions.js","sources":["../../../../src/features/folder/EnsureFolderIsEmpty/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { FolderNotAuthorizedError, FolderNotEmptyError } from \"~/domain/folder/errors.js\";\n\nexport interface IHasContentCallback {\n (): boolean | Promise<boolean>;\n}\n\nexport interface IEnsureFolderIsEmpty {\n execute(\n type: string,\n id: string,\n hasContentCallback: IHasContentCallback\n ): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IEnsureFolderIsEmptyError {\n notAuthorized: FolderNotAuthorizedError;\n notEmpty: FolderNotEmptyError;\n}\n\ntype UseCaseError = IEnsureFolderIsEmptyError[keyof IEnsureFolderIsEmptyError];\n\n/** Verify a folder has no children before deletion. */\nexport const EnsureFolderIsEmpty = createAbstraction<IEnsureFolderIsEmpty>(\"EnsureFolderIsEmpty\");\n\nexport namespace EnsureFolderIsEmpty {\n export type Interface = IEnsureFolderIsEmpty;\n export type HasContentCallback = IHasContentCallback;\n export type Return = Promise<Result<void, UseCaseError>>;\n}\n"],"names":["EnsureFolderIsEmpty","createAbstraction"],"mappings":";AAuBO,MAAMA,sBAAsBC,kBAAwC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { EnsureFolderIsEmpty } from "./EnsureFolderIsEmpty.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const EnsureFolderIsEmptyFeature = createFeature({
|
|
4
|
+
name: "EnsureFolderIsEmptyFeature",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(EnsureFolderIsEmpty);
|
|
7
|
+
}
|
|
8
8
|
});
|
|
9
|
+
export { EnsureFolderIsEmptyFeature };
|
|
9
10
|
|
|
10
11
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureFolderIsEmpty/feature.js","sources":["../../../../src/features/folder/EnsureFolderIsEmpty/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { EnsureFolderIsEmpty } from \"./EnsureFolderIsEmpty.js\";\n\nexport const EnsureFolderIsEmptyFeature = createFeature({\n name: \"EnsureFolderIsEmptyFeature\",\n register(container) {\n container.register(EnsureFolderIsEmpty);\n }\n});\n"],"names":["EnsureFolderIsEmptyFeature","createFeature","container","EnsureFolderIsEmpty"],"mappings":";;AAGO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FolderBeforeDeleteEventHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
|
|
2
2
|
import type { FolderBeforeDeleteEvent } from "../../../features/folder/DeleteFolder/events.js";
|
|
3
3
|
import { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
|
|
4
|
-
declare class GenericFolderBeforeDeleteHandlerImpl implements
|
|
4
|
+
declare class GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {
|
|
5
5
|
private ensureFolderIsEmpty;
|
|
6
6
|
constructor(ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface);
|
|
7
7
|
handle(event: FolderBeforeDeleteEvent): Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
export declare const GenericFolderBeforeDeleteHandler: typeof GenericFolderBeforeDeleteHandlerImpl & {
|
|
10
|
-
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/eventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
|
|
11
11
|
};
|
|
12
12
|
export {};
|
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
import {
|
|
2
|
+
import { FolderBeforeDeleteEventHandler } from "../DeleteFolder/abstractions.js";
|
|
3
3
|
import { EnsureFolderIsEmpty } from "../EnsureFolderIsEmpty/abstractions.js";
|
|
4
4
|
class GenericFolderBeforeDeleteHandlerImpl {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
() => false);
|
|
16
|
-
if (result.isFail()) {
|
|
17
|
-
throw WebinyError.from(result.error, {
|
|
18
|
-
message: "Error while ensuring folder is empty before delete.",
|
|
19
|
-
code: "ACO_BEFORE_FOLDER_DELETE_FILE_HANDLER"
|
|
20
|
-
});
|
|
5
|
+
constructor(ensureFolderIsEmpty){
|
|
6
|
+
this.ensureFolderIsEmpty = ensureFolderIsEmpty;
|
|
7
|
+
}
|
|
8
|
+
async handle(event) {
|
|
9
|
+
const { folder } = event.payload;
|
|
10
|
+
const result = await this.ensureFolderIsEmpty.execute(folder.type, folder.id, ()=>false);
|
|
11
|
+
if (result.isFail()) throw WebinyError.from(result.error, {
|
|
12
|
+
message: "Error while ensuring folder is empty before delete.",
|
|
13
|
+
code: "ACO_BEFORE_FOLDER_DELETE_FILE_HANDLER"
|
|
14
|
+
});
|
|
21
15
|
}
|
|
22
|
-
}
|
|
23
16
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({
|
|
18
|
+
implementation: GenericFolderBeforeDeleteHandlerImpl,
|
|
19
|
+
dependencies: [
|
|
20
|
+
EnsureFolderIsEmpty
|
|
21
|
+
]
|
|
27
22
|
});
|
|
23
|
+
export { GenericFolderBeforeDeleteHandler };
|
|
28
24
|
|
|
29
25
|
//# sourceMappingURL=GenericFolderBeforeDeleteHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js","sources":["../../../../src/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteEventHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\n\nclass GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {\n constructor(private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const result = await this.ensureFolderIsEmpty.execute(\n folder.type,\n folder.id,\n // We can only check if a folder has child folders.\n // Content is controlled by individual apps, so content checks are implemented there.\n () => false\n );\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HANDLER\"\n });\n }\n }\n}\n\nexport const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation(\n {\n implementation: GenericFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty]\n }\n);\n"],"names":["GenericFolderBeforeDeleteHandlerImpl","ensureFolderIsEmpty","event","folder","result","WebinyError","GenericFolderBeforeDeleteHandler","FolderBeforeDeleteEventHandler","EnsureFolderIsEmpty"],"mappings":";;;AAKA,MAAMA;IACF,YAAoBC,mBAAkD,CAAE;aAApDA,mBAAmB,GAAnBA;IAAqD;IAEzE,MAAM,OAAOC,KAA8B,EAAiB;QACxD,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAM,OAAO;QAEhC,MAAME,SAAS,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CACjDD,OAAO,IAAI,EACXA,OAAO,EAAE,EAGT,IAAM;QAGV,IAAIC,OAAO,MAAM,IACb,MAAMC,YAAY,IAAI,CAACD,OAAO,KAAK,EAAE;YACjC,SAAS;YACT,MAAM;QACV;IAER;AACJ;AAEO,MAAME,mCAAmCC,+BAA+B,oBAAoB,CAC/F;IACI,gBAAgBP;IAChB,cAAc;QAACQ;KAAoB;AACvC"}
|
|
@@ -4,4 +4,7 @@
|
|
|
4
4
|
* Actual content cannot be checked, as folders do not have information about their records.
|
|
5
5
|
* Individual apps (like File Manager, Headless CMS, etc.) need to implement their own event handlers.
|
|
6
6
|
*/
|
|
7
|
-
export declare const EnsureFolderIsEmptyOnDeleteFeature:
|
|
7
|
+
export declare const EnsureFolderIsEmptyOnDeleteFeature: {
|
|
8
|
+
name: string;
|
|
9
|
+
register(container: import("@webiny/di").Container): void;
|
|
10
|
+
};
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { GenericFolderBeforeDeleteHandler } from "./GenericFolderBeforeDeleteHandler.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* Individual apps (like File Manager, Headless CMS, etc.) need to implement their own event handlers.
|
|
9
|
-
*/
|
|
10
|
-
export const EnsureFolderIsEmptyOnDeleteFeature = createFeature({
|
|
11
|
-
name: "EnsureFolderIsEmptyOnDelete",
|
|
12
|
-
register(container) {
|
|
13
|
-
container.register(GenericFolderBeforeDeleteHandler);
|
|
14
|
-
}
|
|
3
|
+
const EnsureFolderIsEmptyOnDeleteFeature = createFeature({
|
|
4
|
+
name: "EnsureFolderIsEmptyOnDelete",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(GenericFolderBeforeDeleteHandler);
|
|
7
|
+
}
|
|
15
8
|
});
|
|
9
|
+
export { EnsureFolderIsEmptyOnDeleteFeature };
|
|
16
10
|
|
|
17
11
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureFolderIsEmptyOnDelete/feature.js","sources":["../../../../src/features/folder/EnsureFolderIsEmptyOnDelete/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GenericFolderBeforeDeleteHandler } from \"./GenericFolderBeforeDeleteHandler.js\";\n\n/**\n * This feature checks whether a folder is allowed to be deleted.\n * This generic check simply checks if there are child folders within the given folder.\n * Actual content cannot be checked, as folders do not have information about their records.\n * Individual apps (like File Manager, Headless CMS, etc.) need to implement their own event handlers.\n */\nexport const EnsureFolderIsEmptyOnDeleteFeature = createFeature({\n name: \"EnsureFolderIsEmptyOnDelete\",\n register(container) {\n container.register(GenericFolderBeforeDeleteHandler);\n }\n});\n"],"names":["EnsureFolderIsEmptyOnDeleteFeature","createFeature","container","GenericFolderBeforeDeleteHandler"],"mappings":";;AASO,MAAMA,qCAAqCC,cAAc;IAC5D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FolderBeforeDeleteEventHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
|
|
2
2
|
import type { FolderBeforeDeleteEvent } from "../../../features/folder/DeleteFolder/events.js";
|
|
3
3
|
import { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
|
|
4
4
|
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
5
5
|
import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
6
|
-
declare class ModelFolderBeforeDeleteHandlerImpl implements
|
|
6
|
+
declare class ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {
|
|
7
7
|
private ensureFolderIsEmpty;
|
|
8
8
|
private getModel;
|
|
9
9
|
private listEntries;
|
|
@@ -11,6 +11,6 @@ declare class ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHa
|
|
|
11
11
|
handle(event: FolderBeforeDeleteEvent): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
export declare const ModelFolderBeforeDeleteHandler: typeof ModelFolderBeforeDeleteHandlerImpl & {
|
|
14
|
-
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/eventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
|
|
15
15
|
};
|
|
16
16
|
export {};
|
|
@@ -1,56 +1,48 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
import {
|
|
2
|
+
import { FolderBeforeDeleteEventHandler } from "../DeleteFolder/abstractions.js";
|
|
3
3
|
import { EnsureFolderIsEmpty } from "../EnsureFolderIsEmpty/abstractions.js";
|
|
4
4
|
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
5
5
|
import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
6
6
|
class ModelFolderBeforeDeleteHandlerImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
async handle(event) {
|
|
13
|
-
const {
|
|
14
|
-
folder
|
|
15
|
-
} = event.payload;
|
|
16
|
-
const {
|
|
17
|
-
id,
|
|
18
|
-
type
|
|
19
|
-
} = folder;
|
|
20
|
-
const modelId = type.split(":")[1];
|
|
21
|
-
if (!modelId) {
|
|
22
|
-
return;
|
|
7
|
+
constructor(ensureFolderIsEmpty, getModel, listEntries){
|
|
8
|
+
this.ensureFolderIsEmpty = ensureFolderIsEmpty;
|
|
9
|
+
this.getModel = getModel;
|
|
10
|
+
this.listEntries = listEntries;
|
|
23
11
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
async handle(event) {
|
|
13
|
+
const { folder } = event.payload;
|
|
14
|
+
const { id, type } = folder;
|
|
15
|
+
const modelId = type.split(":")[1];
|
|
16
|
+
if (!modelId) return;
|
|
17
|
+
const modelResult = await this.getModel.execute(modelId);
|
|
18
|
+
if (modelResult.isFail()) return;
|
|
19
|
+
const result = await this.ensureFolderIsEmpty.execute(type, id, async ()=>{
|
|
20
|
+
const result = await this.listEntries.execute(modelResult.value, {
|
|
21
|
+
where: {
|
|
22
|
+
latest: true,
|
|
23
|
+
wbyAco_location: {
|
|
24
|
+
folderId: id
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
limit: 1
|
|
28
|
+
});
|
|
29
|
+
const { entries } = result.value;
|
|
30
|
+
return entries.length > 0;
|
|
31
|
+
});
|
|
32
|
+
if (result.isFail()) throw WebinyError.from(result.error, {
|
|
33
|
+
message: "Error while ensuring HCMS folder is empty before delete.",
|
|
34
|
+
code: "ACO_BEFORE_FOLDER_DELETE_HCMS_HANDLER"
|
|
35
|
+
});
|
|
27
36
|
}
|
|
28
|
-
const result = await this.ensureFolderIsEmpty.execute(type, id, async () => {
|
|
29
|
-
const result = await this.listEntries.execute(modelResult.value, {
|
|
30
|
-
where: {
|
|
31
|
-
latest: true,
|
|
32
|
-
wbyAco_location: {
|
|
33
|
-
folderId: id
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
limit: 1
|
|
37
|
-
});
|
|
38
|
-
const {
|
|
39
|
-
entries
|
|
40
|
-
} = result.value;
|
|
41
|
-
return entries.length > 0;
|
|
42
|
-
});
|
|
43
|
-
if (result.isFail()) {
|
|
44
|
-
throw WebinyError.from(result.error, {
|
|
45
|
-
message: "Error while ensuring HCMS folder is empty before delete.",
|
|
46
|
-
code: "ACO_BEFORE_FOLDER_DELETE_HCMS_HANDLER"
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
37
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
38
|
+
const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({
|
|
39
|
+
implementation: ModelFolderBeforeDeleteHandlerImpl,
|
|
40
|
+
dependencies: [
|
|
41
|
+
EnsureFolderIsEmpty,
|
|
42
|
+
GetModelUseCase,
|
|
43
|
+
ListEntriesUseCase
|
|
44
|
+
]
|
|
54
45
|
});
|
|
46
|
+
export { ModelFolderBeforeDeleteHandler };
|
|
55
47
|
|
|
56
48
|
//# sourceMappingURL=ModelFolderBeforeDeleteHandler.js.map
|
package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js","sources":["../../../../src/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteEventHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { ListEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\n\nclass ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {\n constructor(\n private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface,\n private getModel: GetModelUseCase.Interface,\n private listEntries: ListEntriesUseCase.Interface\n ) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const { id, type } = folder;\n\n const modelId = type.split(\":\")[1];\n if (!modelId) {\n return;\n }\n\n const modelResult = await this.getModel.execute(modelId);\n if (modelResult.isFail()) {\n return;\n }\n\n const result = await this.ensureFolderIsEmpty.execute(type, id, async () => {\n const result = await this.listEntries.execute(modelResult.value, {\n where: {\n latest: true,\n wbyAco_location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n const { entries } = result.value;\n\n return entries.length > 0;\n });\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring HCMS folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HCMS_HANDLER\"\n });\n }\n }\n}\n\nexport const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({\n implementation: ModelFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty, GetModelUseCase, ListEntriesUseCase]\n});\n"],"names":["ModelFolderBeforeDeleteHandlerImpl","ensureFolderIsEmpty","getModel","listEntries","event","folder","id","type","modelId","modelResult","result","entries","WebinyError","ModelFolderBeforeDeleteHandler","FolderBeforeDeleteEventHandler","EnsureFolderIsEmpty","GetModelUseCase","ListEntriesUseCase"],"mappings":";;;;;AAOA,MAAMA;IACF,YACYC,mBAAkD,EAClDC,QAAmC,EACnCC,WAAyC,CACnD;aAHUF,mBAAmB,GAAnBA;aACAC,QAAQ,GAARA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,OAAOC,KAA8B,EAAiB;QACxD,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAM,OAAO;QAEhC,MAAM,EAAEE,EAAE,EAAEC,IAAI,EAAE,GAAGF;QAErB,MAAMG,UAAUD,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE;QAClC,IAAI,CAACC,SACD;QAGJ,MAAMC,cAAc,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACD;QAChD,IAAIC,YAAY,MAAM,IAClB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACH,MAAMD,IAAI;YAC5D,MAAMI,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACD,YAAY,KAAK,EAAE;gBAC7D,OAAO;oBACH,QAAQ;oBACR,iBAAiB;wBACb,UAAUH;oBACd;gBACJ;gBACA,OAAO;YACX;YAEA,MAAM,EAAEK,OAAO,EAAE,GAAGD,OAAO,KAAK;YAEhC,OAAOC,QAAQ,MAAM,GAAG;QAC5B;QAEA,IAAID,OAAO,MAAM,IACb,MAAME,YAAY,IAAI,CAACF,OAAO,KAAK,EAAE;YACjC,SAAS;YACT,MAAM;QACV;IAER;AACJ;AAEO,MAAMG,iCAAiCC,+BAA+B,oBAAoB,CAAC;IAC9F,gBAAgBd;IAChB,cAAc;QAACe;QAAqBC;QAAiBC;KAAmB;AAC5E"}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export declare const EnsureHcmsFolderIsEmptyOnDeleteFeature:
|
|
1
|
+
export declare const EnsureHcmsFolderIsEmptyOnDeleteFeature: {
|
|
2
|
+
name: string;
|
|
3
|
+
register(container: import("@webiny/di").Container): void;
|
|
4
|
+
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { ModelFolderBeforeDeleteHandler } from "./ModelFolderBeforeDeleteHandler.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const EnsureHcmsFolderIsEmptyOnDeleteFeature = createFeature({
|
|
4
|
+
name: "EnsureHcmsFolderIsEmptyOnDelete",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(ModelFolderBeforeDeleteHandler);
|
|
7
|
+
}
|
|
8
8
|
});
|
|
9
|
+
export { EnsureHcmsFolderIsEmptyOnDeleteFeature };
|
|
9
10
|
|
|
10
11
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js","sources":["../../../../src/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ModelFolderBeforeDeleteHandler } from \"./ModelFolderBeforeDeleteHandler.js\";\n\nexport const EnsureHcmsFolderIsEmptyOnDeleteFeature = createFeature({\n name: \"EnsureHcmsFolderIsEmptyOnDelete\",\n register(container) {\n container.register(ModelFolderBeforeDeleteHandler);\n }\n});\n"],"names":["EnsureHcmsFolderIsEmptyOnDeleteFeature","createFeature","container","ModelFolderBeforeDeleteHandler"],"mappings":";;AAGO,MAAMA,yCAAyCC,cAAc;IAChE,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|