@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,77 +1,58 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
|
|
3
3
|
import { UpdateFolderUseCase } from "../abstractions.js";
|
|
4
4
|
import { GetFolderUseCase } from "../../GetFolder/index.js";
|
|
5
5
|
import { FolderCannotMoveToNewParent, FolderValidationError } from "../../../../domain/folder/errors.js";
|
|
6
6
|
class UpdateFolderWithFolderLevelPermissionsImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
async execute(id, params) {
|
|
13
|
-
const originalResult = await this.getFolder.execute(id);
|
|
14
|
-
if (originalResult.isFail()) {
|
|
15
|
-
return Result.fail(originalResult.error);
|
|
7
|
+
constructor(getFolder, folderLevelPermissions, decoretee){
|
|
8
|
+
this.getFolder = getFolder;
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.decoretee = decoretee;
|
|
16
11
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// Validate data.
|
|
37
|
-
if (Array.isArray(params.permissions)) {
|
|
38
|
-
for (const permission of params.permissions) {
|
|
39
|
-
const targetIsValid = permission.target.startsWith("admin:") || permission.target.startsWith("team:");
|
|
40
|
-
if (!targetIsValid) {
|
|
41
|
-
return Result.fail(new FolderValidationError(`Permission target "${permission.target}" is not valid.`));
|
|
12
|
+
async execute(id, params) {
|
|
13
|
+
const originalResult = await this.getFolder.execute(id);
|
|
14
|
+
if (originalResult.isFail()) return Result.fail(originalResult.error);
|
|
15
|
+
const original = originalResult.value;
|
|
16
|
+
const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);
|
|
17
|
+
await this.folderLevelPermissions.ensureCanAccessFolder({
|
|
18
|
+
permissions: originalPermissions,
|
|
19
|
+
rwd: "w"
|
|
20
|
+
});
|
|
21
|
+
const permissions = await this.folderLevelPermissions.getDefaultPermissions(params.permissions ?? []);
|
|
22
|
+
const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({
|
|
23
|
+
permissions,
|
|
24
|
+
rwd: "w"
|
|
25
|
+
});
|
|
26
|
+
if (!stillHasAccess) return Result.fail(new FolderValidationError("Cannot continue because you would loose access to this folder."));
|
|
27
|
+
if (Array.isArray(params.permissions)) for (const permission of params.permissions){
|
|
28
|
+
const targetIsValid = permission.target.startsWith("admin:") || permission.target.startsWith("team:");
|
|
29
|
+
if (!targetIsValid) return Result.fail(new FolderValidationError(`Permission target "${permission.target}" is not valid.`));
|
|
30
|
+
if (permission.inheritedFrom) return Result.fail(new FolderValidationError('Permission "inheritedFrom" cannot be set manually.'));
|
|
42
31
|
}
|
|
43
|
-
if (
|
|
44
|
-
|
|
32
|
+
if (params.parentId && params.parentId !== original.parentId) {
|
|
33
|
+
const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
|
|
34
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
|
|
35
|
+
permissions: parentPermissions,
|
|
36
|
+
rwd: "w"
|
|
37
|
+
});
|
|
38
|
+
if (!canAccessFolder) return Result.fail(new FolderCannotMoveToNewParent());
|
|
45
39
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
|
|
53
|
-
const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
|
|
54
|
-
permissions: parentPermissions,
|
|
55
|
-
rwd: "w"
|
|
56
|
-
});
|
|
57
|
-
if (!canAccessFolder) {
|
|
58
|
-
return Result.fail(new FolderCannotMoveToNewParent());
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
const result = await this.decoretee.execute(id, params);
|
|
62
|
-
if (result.isFail()) {
|
|
63
|
-
return Result.fail(result.error);
|
|
40
|
+
const result = await this.decoretee.execute(id, params);
|
|
41
|
+
if (result.isFail()) return Result.fail(result.error);
|
|
42
|
+
return Result.ok({
|
|
43
|
+
...result.value,
|
|
44
|
+
permissions
|
|
45
|
+
});
|
|
64
46
|
}
|
|
65
|
-
return Result.ok({
|
|
66
|
-
...result.value,
|
|
67
|
-
permissions
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
47
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
48
|
+
const UpdateFolderWithFolderLevelPermissions = createDecorator({
|
|
49
|
+
abstraction: UpdateFolderUseCase,
|
|
50
|
+
decorator: UpdateFolderWithFolderLevelPermissionsImpl,
|
|
51
|
+
dependencies: [
|
|
52
|
+
GetFolderUseCase,
|
|
53
|
+
FolderLevelPermissions
|
|
54
|
+
]
|
|
75
55
|
});
|
|
56
|
+
export { UpdateFolderWithFolderLevelPermissions };
|
|
76
57
|
|
|
77
58
|
//# sourceMappingURL=UpdateFolderWithFolderLevelPermissions.js.map
|
package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js","sources":["../../../../../src/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport type { UpdateFolderParams } from \"~/folder/folder.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { UpdateFolderUseCase } from \"../abstractions.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { FolderCannotMoveToNewParent, FolderValidationError } from \"~/domain/folder/errors.js\";\n\nclass UpdateFolderWithFolderLevelPermissionsImpl implements UpdateFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: UpdateFolderUseCase.Interface;\n\n constructor(\n private getFolder: GetFolderUseCase.Interface,\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: UpdateFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string, params: UpdateFolderParams): UpdateFolderUseCase.Return {\n const originalResult = await this.getFolder.execute(id);\n\n if (originalResult.isFail()) {\n return Result.fail(originalResult.error);\n }\n\n const original = originalResult.value;\n\n const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);\n\n // Let's ensure current identity's permission allows the update operation.\n await this.folderLevelPermissions.ensureCanAccessFolder({\n permissions: originalPermissions,\n rwd: \"w\"\n });\n\n const permissions = await this.folderLevelPermissions.getDefaultPermissions(\n params.permissions ?? []\n );\n\n // Check if the user still has access to the folder with the provided permissions.\n const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"w\"\n });\n\n if (!stillHasAccess) {\n return Result.fail(\n new FolderValidationError(\n `Cannot continue because you would loose access to this folder.`\n )\n );\n }\n\n // Validate data.\n if (Array.isArray(params.permissions)) {\n for (const permission of params.permissions) {\n const targetIsValid =\n permission.target.startsWith(\"admin:\") || permission.target.startsWith(\"team:\");\n if (!targetIsValid) {\n return Result.fail(\n new FolderValidationError(\n `Permission target \"${permission.target}\" is not valid.`\n )\n );\n }\n\n if (permission.inheritedFrom) {\n return Result.fail(\n new FolderValidationError(\n `Permission \"inheritedFrom\" cannot be set manually.`\n )\n );\n }\n }\n }\n\n // Parent change is not allowed if the user doesn't have access to the new parent.\n if (params.parentId && params.parentId !== original.parentId) {\n // Getting the parent folder permissions will throw an error if the user doesn't have access.\n const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n params.parentId\n );\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions: parentPermissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderCannotMoveToNewParent());\n }\n }\n\n const result = await this.decoretee.execute(id, params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok({\n ...result.value,\n permissions\n });\n }\n}\n\nexport const UpdateFolderWithFolderLevelPermissions = createDecorator({\n abstraction: UpdateFolderUseCase,\n decorator: UpdateFolderWithFolderLevelPermissionsImpl,\n dependencies: [GetFolderUseCase, FolderLevelPermissions]\n});\n"],"names":["UpdateFolderWithFolderLevelPermissionsImpl","getFolder","folderLevelPermissions","decoretee","id","params","originalResult","Result","original","originalPermissions","permissions","stillHasAccess","FolderValidationError","Array","permission","targetIsValid","parentPermissions","canAccessFolder","FolderCannotMoveToNewParent","result","UpdateFolderWithFolderLevelPermissions","createDecorator","UpdateFolderUseCase","GetFolderUseCase","FolderLevelPermissions"],"mappings":";;;;;AAOA,MAAMA;IAIF,YACYC,SAAqC,EAC7CC,sBAAwD,EACxDC,SAAwC,CAC1C;aAHUF,SAAS,GAATA;QAIR,IAAI,CAAC,sBAAsB,GAAGC;QAC9B,IAAI,CAAC,SAAS,GAAGC;IACrB;IAEA,MAAM,QAAQC,EAAU,EAAEC,MAA0B,EAA8B;QAC9E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF;QAEpD,IAAIE,eAAe,MAAM,IACrB,OAAOC,OAAO,IAAI,CAACD,eAAe,KAAK;QAG3C,MAAME,WAAWF,eAAe,KAAK;QAErC,MAAMG,sBAAsB,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACL;QAGxF,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;YACpD,aAAaK;YACb,KAAK;QACT;QAEA,MAAMC,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CACvEL,OAAO,WAAW,IAAI,EAAE;QAI5B,MAAMM,iBAAiB,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;YACrED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,gBACD,OAAOJ,OAAO,IAAI,CACd,IAAIK,sBACA;QAMZ,IAAIC,MAAM,OAAO,CAACR,OAAO,WAAW,GAChC,KAAK,MAAMS,cAAcT,OAAO,WAAW,CAAE;YACzC,MAAMU,gBACFD,WAAW,MAAM,CAAC,UAAU,CAAC,aAAaA,WAAW,MAAM,CAAC,UAAU,CAAC;YAC3E,IAAI,CAACC,eACD,OAAOR,OAAO,IAAI,CACd,IAAIK,sBACA,CAAC,mBAAmB,EAAEE,WAAW,MAAM,CAAC,eAAe,CAAC;YAKpE,IAAIA,WAAW,aAAa,EACxB,OAAOP,OAAO,IAAI,CACd,IAAIK,sBACA;QAIhB;QAIJ,IAAIP,OAAO,QAAQ,IAAIA,OAAO,QAAQ,KAAKG,SAAS,QAAQ,EAAE;YAE1D,MAAMQ,oBAAoB,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CACjFX,OAAO,QAAQ;YAGnB,MAAMY,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;gBACtE,aAAaD;gBACb,KAAK;YACT;YAEA,IAAI,CAACC,iBACD,OAAOV,OAAO,IAAI,CAAC,IAAIW;QAE/B;QAEA,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACf,IAAIC;QAEhD,IAAIc,OAAO,MAAM,IACb,OAAOZ,OAAO,IAAI,CAACY,OAAO,KAAK;QAGnC,OAAOZ,OAAO,EAAE,CAAC;YACb,GAAGY,OAAO,KAAK;YACfT;QACJ;IACJ;AACJ;AAEO,MAAMU,yCAAyCC,gBAAgB;IAClE,aAAaC;IACb,WAAWtB;IACX,cAAc;QAACuB;QAAkBC;KAAuB;AAC5D"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from "./abstractions.js";
|
|
3
3
|
export declare class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {
|
|
4
4
|
eventType: "folder.beforeUpdate";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
|
|
6
6
|
}
|
|
7
7
|
export declare class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {
|
|
8
8
|
eventType: "folder.afterUpdate";
|
|
9
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
|
|
10
10
|
}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler } from "./abstractions.js";
|
|
3
|
+
class FolderBeforeUpdateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return FolderBeforeUpdateEventHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "folder.beforeUpdate";
|
|
9
|
+
}
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
class FolderAfterUpdateEvent extends DomainEvent {
|
|
12
|
+
getHandlerAbstraction() {
|
|
13
|
+
return FolderAfterUpdateEventHandler;
|
|
14
|
+
}
|
|
15
|
+
constructor(...args){
|
|
16
|
+
super(...args), this.eventType = "folder.afterUpdate";
|
|
17
|
+
}
|
|
17
18
|
}
|
|
19
|
+
export { FolderAfterUpdateEvent, FolderBeforeUpdateEvent };
|
|
18
20
|
|
|
19
21
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/UpdateFolder/events.js","sources":["../../../../src/features/folder/UpdateFolder/events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FolderBeforeUpdateEventHandler, FolderAfterUpdateEventHandler } from \"./abstractions.js\";\nimport type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from \"./abstractions.js\";\n\n// FolderBeforeUpdate Event\nexport class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {\n eventType = \"folder.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeUpdateEventHandler;\n }\n}\n\n// FolderAfterUpdate Event\nexport class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {\n eventType = \"folder.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterUpdateEventHandler;\n }\n}\n"],"names":["FolderBeforeUpdateEvent","DomainEvent","FolderBeforeUpdateEventHandler","FolderAfterUpdateEvent","FolderAfterUpdateEventHandler"],"mappings":";;AAKO,MAAMA,gCAAgCC;IAGzC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMC,+BAA+BF;IAGxC,wBAAwB;QACpB,OAAOG;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -2,13 +2,14 @@ import { createFeature } from "@webiny/feature/api";
|
|
|
2
2
|
import { UpdateFolderRepository } from "./UpdateFolderRepository.js";
|
|
3
3
|
import { UpdateFolderUseCase } from "./UpdateFolderUseCase.js";
|
|
4
4
|
import { UpdateFolderWithFolderLevelPermissions } from "./decorators/UpdateFolderWithFolderLevelPermissions.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
const UpdateFolderFeature = createFeature({
|
|
6
|
+
name: "UpdateFolder",
|
|
7
|
+
register (container) {
|
|
8
|
+
container.register(UpdateFolderRepository).inSingletonScope();
|
|
9
|
+
container.register(UpdateFolderUseCase);
|
|
10
|
+
container.registerDecorator(UpdateFolderWithFolderLevelPermissions);
|
|
11
|
+
}
|
|
12
12
|
});
|
|
13
|
+
export { UpdateFolderFeature };
|
|
13
14
|
|
|
14
15
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/UpdateFolder/feature.js","sources":["../../../../src/features/folder/UpdateFolder/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { UpdateFolderRepository } from \"./UpdateFolderRepository.js\";\nimport { UpdateFolderUseCase } from \"./UpdateFolderUseCase.js\";\nimport { UpdateFolderWithFolderLevelPermissions } from \"./decorators/UpdateFolderWithFolderLevelPermissions.js\";\n\nexport const UpdateFolderFeature = createFeature({\n name: \"UpdateFolder\",\n register(container: Container) {\n container.register(UpdateFolderRepository).inSingletonScope();\n container.register(UpdateFolderUseCase);\n container.registerDecorator(UpdateFolderWithFolderLevelPermissions);\n }\n});\n"],"names":["UpdateFolderFeature","createFeature","container","UpdateFolderRepository","UpdateFolderUseCase","UpdateFolderWithFolderLevelPermissions"],"mappings":";;;;AAMO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAoB;QACzBA,UAAU,QAAQ,CAACC,wBAAwB,gBAAgB;QAC3DD,UAAU,QAAQ,CAACE;QACnBF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { UpdateFolderFeature } from "./feature.js";
|
|
2
|
-
export {
|
|
2
|
+
export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderUseCase } from "./abstractions.js";
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
export { UpdateFolderFeature } from "./feature.js";
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
2
|
+
export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderUseCase } from "./abstractions.js";
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
class EntryToFolderMapper {
|
|
2
|
+
static toFolder(entry) {
|
|
3
|
+
return {
|
|
4
|
+
id: entry.entryId,
|
|
5
|
+
createdOn: entry.createdOn,
|
|
6
|
+
modifiedOn: entry.modifiedOn ?? null,
|
|
7
|
+
savedOn: entry.savedOn,
|
|
8
|
+
createdBy: entry.createdBy,
|
|
9
|
+
modifiedBy: entry.modifiedBy ?? null,
|
|
10
|
+
savedBy: entry.savedBy,
|
|
11
|
+
title: entry.values.title,
|
|
12
|
+
slug: entry.values.slug,
|
|
13
|
+
permissions: entry.values.permissions,
|
|
14
|
+
type: entry.values.type,
|
|
15
|
+
parentId: entry.values.parentId ?? null,
|
|
16
|
+
path: entry.values.path,
|
|
17
|
+
extensions: entry.values.extensions
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
20
|
}
|
|
21
|
+
export { EntryToFolderMapper };
|
|
21
22
|
|
|
22
23
|
//# sourceMappingURL=EntryToFolderMapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/shared/EntryToFolderMapper.js","sources":["../../../../src/features/folder/shared/EntryToFolderMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\n\nexport class EntryToFolderMapper {\n static toFolder(entry: CmsEntry<CmsEntryFolder>): Folder {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn ?? null,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy ?? null,\n savedBy: entry.savedBy,\n title: entry.values.title,\n slug: entry.values.slug,\n permissions: entry.values.permissions,\n type: entry.values.type,\n parentId: entry.values.parentId ?? null,\n path: entry.values.path,\n extensions: entry.values.extensions\n };\n }\n}\n"],"names":["EntryToFolderMapper","entry"],"mappings":"AAGO,MAAMA;IACT,OAAO,SAASC,KAA+B,EAAU;QACrD,OAAO;YACH,IAAIA,MAAM,OAAO;YACjB,WAAWA,MAAM,SAAS;YAC1B,YAAYA,MAAM,UAAU,IAAI;YAChC,SAASA,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS;YAC1B,YAAYA,MAAM,UAAU,IAAI;YAChC,SAASA,MAAM,OAAO;YACtB,OAAOA,MAAM,MAAM,CAAC,KAAK;YACzB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,aAAaA,MAAM,MAAM,CAAC,WAAW;YACrC,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,UAAUA,MAAM,MAAM,CAAC,QAAQ,IAAI;YACnC,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,YAAYA,MAAM,MAAM,CAAC,UAAU;QACvC;IACJ;AACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AcoStorageOperations as IAcoStorageOperations } from "../../../types.js";
|
|
2
|
+
/** Storage operations for folder filtering. */
|
|
2
3
|
export declare const FilterStorageOperations: import("@webiny/di").Abstraction<import("~/types.js").AcoFilterStorageOperations>;
|
|
3
4
|
export declare namespace FilterStorageOperations {
|
|
4
5
|
type Interface = IAcoStorageOperations["filter"];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
2
|
+
const FilterStorageOperations = createAbstraction("FilterStorageOperations");
|
|
3
|
+
export { FilterStorageOperations };
|
|
3
4
|
|
|
4
5
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/folder/shared/abstractions.js","sources":["../../../../src/features/folder/shared/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AcoStorageOperations as IAcoStorageOperations } from \"~/types.js\";\n\n/** Storage operations for folder filtering. */\nexport const FilterStorageOperations =\n createAbstraction<IAcoStorageOperations[\"filter\"]>(\"FilterStorageOperations\");\n\nexport namespace FilterStorageOperations {\n export type Interface = IAcoStorageOperations[\"filter\"];\n}\n"],"names":["FilterStorageOperations","createAbstraction"],"mappings":";AAIO,MAAMA,0BACTC,kBAAmD"}
|
package/filter/filter.crud.js
CHANGED
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
data
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
};
|
|
1
|
+
const createFilterCrudMethods = ({ storageOperations })=>({
|
|
2
|
+
async get (id) {
|
|
3
|
+
return storageOperations.filter.getFilter({
|
|
4
|
+
id
|
|
5
|
+
});
|
|
6
|
+
},
|
|
7
|
+
async list (params) {
|
|
8
|
+
return storageOperations.filter.listFilters(params);
|
|
9
|
+
},
|
|
10
|
+
async create (data) {
|
|
11
|
+
return storageOperations.filter.createFilter({
|
|
12
|
+
data
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
async update (id, data) {
|
|
16
|
+
return await storageOperations.filter.updateFilter({
|
|
17
|
+
id,
|
|
18
|
+
data
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
async delete (id) {
|
|
22
|
+
await storageOperations.filter.deleteFilter({
|
|
23
|
+
id
|
|
24
|
+
});
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
export { createFilterCrudMethods };
|
|
32
29
|
|
|
33
30
|
//# sourceMappingURL=filter.crud.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"filter/filter.crud.js","sources":["../../src/filter/filter.crud.ts"],"sourcesContent":["import type { CreateAcoParams } from \"~/types.js\";\nimport type { AcoFilterCrud } from \"./filter.types.js\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n return {\n async get(id) {\n return storageOperations.filter.getFilter({ id });\n },\n async list(params) {\n return storageOperations.filter.listFilters(params);\n },\n async create(data) {\n return storageOperations.filter.createFilter({ data });\n },\n async update(id, data) {\n return await storageOperations.filter.updateFilter({ id, data });\n },\n async delete(id: string) {\n await storageOperations.filter.deleteFilter({ id });\n return true;\n }\n };\n};\n"],"names":["createFilterCrudMethods","storageOperations","id","params","data"],"mappings":"AAGO,MAAMA,0BAA0B,CAAC,EAAEC,iBAAiB,EAAmB,GACnE;QACH,MAAM,KAAIC,EAAE;YACR,OAAOD,kBAAkB,MAAM,CAAC,SAAS,CAAC;gBAAEC;YAAG;QACnD;QACA,MAAM,MAAKC,MAAM;YACb,OAAOF,kBAAkB,MAAM,CAAC,WAAW,CAACE;QAChD;QACA,MAAM,QAAOC,IAAI;YACb,OAAOH,kBAAkB,MAAM,CAAC,YAAY,CAAC;gBAAEG;YAAK;QACxD;QACA,MAAM,QAAOF,EAAE,EAAEE,IAAI;YACjB,OAAO,MAAMH,kBAAkB,MAAM,CAAC,YAAY,CAAC;gBAAEC;gBAAIE;YAAK;QAClE;QACA,MAAM,QAAOF,EAAU;YACnB,MAAMD,kBAAkB,MAAM,CAAC,YAAY,CAAC;gBAAEC;YAAG;YACjD,OAAO;QACX;IACJ"}
|
package/filter/filter.gql.js
CHANGED
|
@@ -2,8 +2,8 @@ import { ErrorResponse, ListResponse } from "@webiny/handler-graphql/responses.j
|
|
|
2
2
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
|
|
3
3
|
import { ensureAuthentication } from "../utils/ensureAuthentication.js";
|
|
4
4
|
import { resolve } from "../utils/resolve.js";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const filterSchema = new GraphQLSchemaPlugin({
|
|
6
|
+
typeDefs: `
|
|
7
7
|
enum OperationEnum {
|
|
8
8
|
AND
|
|
9
9
|
OR
|
|
@@ -93,54 +93,38 @@ export const filterSchema = new GraphQLSchemaPlugin({
|
|
|
93
93
|
deleteFilter(id: ID!): AcoBooleanResponse
|
|
94
94
|
}
|
|
95
95
|
`,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
96
|
+
resolvers: {
|
|
97
|
+
AcoQuery: {
|
|
98
|
+
getFilter: async (_, { id }, context)=>resolve(()=>{
|
|
99
|
+
ensureAuthentication(context);
|
|
100
|
+
return context.aco.filter.get(id);
|
|
101
|
+
}),
|
|
102
|
+
listFilters: async (_, args, context)=>{
|
|
103
|
+
try {
|
|
104
|
+
ensureAuthentication(context);
|
|
105
|
+
const [entries, meta] = await context.aco.filter.list(args);
|
|
106
|
+
return new ListResponse(entries, meta);
|
|
107
|
+
} catch (e) {
|
|
108
|
+
return new ErrorResponse(e);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
AcoMutation: {
|
|
113
|
+
createFilter: async (_, { data }, context)=>resolve(()=>{
|
|
114
|
+
ensureAuthentication(context);
|
|
115
|
+
return context.aco.filter.create(data);
|
|
116
|
+
}),
|
|
117
|
+
updateFilter: async (_, { id, data }, context)=>resolve(()=>{
|
|
118
|
+
ensureAuthentication(context);
|
|
119
|
+
return context.aco.filter.update(id, data);
|
|
120
|
+
}),
|
|
121
|
+
deleteFilter: async (_, { id }, context)=>resolve(()=>{
|
|
122
|
+
ensureAuthentication(context);
|
|
123
|
+
return context.aco.filter.delete(id);
|
|
124
|
+
})
|
|
113
125
|
}
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
AcoMutation: {
|
|
117
|
-
createFilter: async (_, {
|
|
118
|
-
data
|
|
119
|
-
}, context) => {
|
|
120
|
-
return resolve(() => {
|
|
121
|
-
ensureAuthentication(context);
|
|
122
|
-
return context.aco.filter.create(data);
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
updateFilter: async (_, {
|
|
126
|
-
id,
|
|
127
|
-
data
|
|
128
|
-
}, context) => {
|
|
129
|
-
return resolve(() => {
|
|
130
|
-
ensureAuthentication(context);
|
|
131
|
-
return context.aco.filter.update(id, data);
|
|
132
|
-
});
|
|
133
|
-
},
|
|
134
|
-
deleteFilter: async (_, {
|
|
135
|
-
id
|
|
136
|
-
}, context) => {
|
|
137
|
-
return resolve(() => {
|
|
138
|
-
ensureAuthentication(context);
|
|
139
|
-
return context.aco.filter.delete(id);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
126
|
}
|
|
143
|
-
}
|
|
144
127
|
});
|
|
128
|
+
export { filterSchema };
|
|
145
129
|
|
|
146
130
|
//# sourceMappingURL=filter.gql.js.map
|
package/filter/filter.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"filter/filter.gql.js","sources":["../../src/filter/filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication.js\";\nimport { resolve } from \"~/utils/resolve.js\";\n\nimport type { AcoContext } from \"~/types.js\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"names":["filterSchema","GraphQLSchemaPlugin","_","id","context","resolve","ensureAuthentication","args","entries","meta","ListResponse","e","ErrorResponse","data"],"mappings":";;;;AAQO,MAAMA,eAAe,IAAIC,oBAAgC;IAC5D,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFzB,CAAC;IACD,WAAW;QACP,UAAU;YACN,WAAW,OAAOC,GAAG,EAAEC,EAAE,EAAE,EAAEC,UAClBC,QAAQ;oBACXC,qBAAqBF;oBACrB,OAAOA,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAACD;gBAClC;YAEJ,aAAa,OAAOD,GAAGK,MAAWH;gBAC9B,IAAI;oBACAE,qBAAqBF;oBACrB,MAAM,CAACI,SAASC,KAAK,GAAG,MAAML,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAACG;oBACtD,OAAO,IAAIG,aAAaF,SAASC;gBACrC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;QACJ;QACA,aAAa;YACT,cAAc,OAAOT,GAAG,EAAEW,IAAI,EAAE,EAAET,UACvBC,QAAQ;oBACXC,qBAAqBF;oBACrB,OAAOA,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,CAACS;gBACrC;YAEJ,cAAc,OAAOX,GAAG,EAAEC,EAAE,EAAEU,IAAI,EAAE,EAAET,UAC3BC,QAAQ;oBACXC,qBAAqBF;oBACrB,OAAOA,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,CAACD,IAAIU;gBACzC;YAEJ,cAAc,OAAOX,GAAG,EAAEC,EAAE,EAAE,EAAEC,UACrBC,QAAQ;oBACXC,qBAAqBF;oBACrB,OAAOA,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,CAACD;gBACrC;QAER;IACJ;AACJ"}
|