@webiny/api-aco 0.0.0-unstable.085ff6572f → 0.0.0-unstable.0d717d18dd
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/AcoFeature.d.ts +5 -0
- package/AcoFeature.js +122 -0
- package/AcoFeature.js.map +1 -0
- package/AcoInitializer.d.ts +25 -0
- package/AcoInitializer.js +79 -0
- package/AcoInitializer.js.map +1 -0
- package/README.md +6 -28
- package/constants.d.ts +2 -0
- package/constants.js +5 -0
- package/constants.js.map +1 -0
- package/createAcoGraphQL.d.ts +7 -3
- package/createAcoGraphQL.js +59 -110
- package/createAcoGraphQL.js.map +1 -1
- package/domain/folder/abstractions.d.ts +9 -0
- package/domain/folder/abstractions.js +5 -0
- package/domain/folder/abstractions.js.map +1 -0
- package/domain/folder/errors.d.ts +29 -0
- package/domain/folder/errors.js +51 -0
- package/domain/folder/errors.js.map +1 -0
- package/domain/folder/folder.model.d.ts +9 -0
- package/domain/folder/folder.model.js +58 -0
- package/domain/folder/folder.model.js.map +1 -0
- package/exports/api/aco/flp.d.ts +6 -0
- package/exports/api/aco/flp.js +6 -0
- package/exports/api/aco/folder.d.ts +11 -0
- package/exports/api/aco/folder.js +10 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +39 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js +33 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +39 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +41 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +36 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js +36 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js +49 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +14 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +39 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/feature.d.ts +4 -0
- package/features/cms/feature.js +37 -0
- package/features/cms/feature.js.map +1 -0
- package/features/cms/index.d.ts +1 -0
- package/features/cms/index.js +1 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js +34 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
- package/features/flp/CreateFlp/abstractions.d.ts +9 -0
- package/features/flp/CreateFlp/abstractions.js +5 -0
- package/features/flp/CreateFlp/abstractions.js.map +1 -0
- package/features/flp/CreateFlp/feature.d.ts +5 -0
- package/features/flp/CreateFlp/feature.js +13 -0
- package/features/flp/CreateFlp/feature.js.map +1 -0
- package/features/flp/CreateFlp/index.d.ts +2 -0
- package/features/flp/CreateFlp/index.js +2 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js +11 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.js +1 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +22 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
- package/features/flp/DeleteFlp/abstractions.d.ts +9 -0
- package/features/flp/DeleteFlp/abstractions.js +5 -0
- package/features/flp/DeleteFlp/abstractions.js.map +1 -0
- package/features/flp/DeleteFlp/feature.d.ts +5 -0
- package/features/flp/DeleteFlp/feature.js +13 -0
- package/features/flp/DeleteFlp/feature.js.map +1 -0
- package/features/flp/DeleteFlp/index.d.ts +2 -0
- package/features/flp/DeleteFlp/index.js +2 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +11 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.js +1 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +112 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.d.ts +26 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +5 -0
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/feature.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/feature.js +11 -0
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
- package/features/flp/FolderLevelPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +19 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +17 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +8 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +8 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +47 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +14 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +27 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +2 -0
- package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js +5 -0
- package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
- package/features/flp/GetFlp/GetFlpUseCase.js +11 -0
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
- package/features/flp/GetFlp/abstractions.d.ts +9 -0
- package/features/flp/GetFlp/abstractions.js +5 -0
- package/features/flp/GetFlp/abstractions.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +4 -0
- package/features/flp/GetFlp/feature.js +13 -0
- package/features/flp/GetFlp/feature.js.map +1 -0
- package/features/flp/GetFlp/index.d.ts +1 -0
- package/features/flp/GetFlp/index.js +1 -0
- package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js +11 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
- package/features/flp/ListFlps/abstractions.d.ts +17 -0
- package/features/flp/ListFlps/abstractions.js +5 -0
- package/features/flp/ListFlps/abstractions.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +4 -0
- package/features/flp/ListFlps/feature.js +13 -0
- package/features/flp/ListFlps/feature.js.map +1 -0
- package/features/flp/ListFlps/index.d.ts +1 -0
- package/features/flp/ListFlps/index.js +1 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +27 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +153 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
- package/features/flp/UpdateFlp/abstractions.d.ts +15 -0
- package/features/flp/UpdateFlp/abstractions.js +5 -0
- package/features/flp/UpdateFlp/abstractions.js.map +1 -0
- package/features/flp/UpdateFlp/feature.d.ts +5 -0
- package/features/flp/UpdateFlp/feature.js +17 -0
- package/features/flp/UpdateFlp/feature.js.map +1 -0
- package/features/flp/UpdateFlp/index.d.ts +2 -0
- package/features/flp/UpdateFlp/index.js +2 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +11 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.js +1 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js +85 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js +36 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
- package/features/folder/CreateFolder/abstractions.d.ts +59 -0
- package/features/folder/CreateFolder/abstractions.js +8 -0
- package/features/folder/CreateFolder/abstractions.js.map +1 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +39 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/CreateFolder/events.d.ts +10 -0
- package/features/folder/CreateFolder/events.js +21 -0
- package/features/folder/CreateFolder/events.js.map +1 -0
- package/features/folder/CreateFolder/feature.d.ts +5 -0
- package/features/folder/CreateFolder/feature.js +15 -0
- package/features/folder/CreateFolder/feature.js.map +1 -0
- package/features/folder/CreateFolder/index.d.ts +2 -0
- package/features/folder/CreateFolder/index.js +2 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +32 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +47 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
- package/features/folder/DeleteFolder/abstractions.d.ts +59 -0
- package/features/folder/DeleteFolder/abstractions.js +8 -0
- package/features/folder/DeleteFolder/abstractions.js.map +1 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +29 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/DeleteFolder/events.d.ts +10 -0
- package/features/folder/DeleteFolder/events.js +21 -0
- package/features/folder/DeleteFolder/events.js.map +1 -0
- package/features/folder/DeleteFolder/feature.d.ts +5 -0
- package/features/folder/DeleteFolder/feature.js +15 -0
- package/features/folder/DeleteFolder/feature.js.map +1 -0
- package/features/folder/DeleteFolder/index.d.ts +2 -0
- package/features/folder/DeleteFolder/index.js +2 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +59 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +21 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +5 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js +11 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.js +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +25 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +10 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +11 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +52 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +11 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js +58 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js +20 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
- package/features/folder/GetAncestors/abstractions.d.ts +40 -0
- package/features/folder/GetAncestors/abstractions.js +6 -0
- package/features/folder/GetAncestors/abstractions.js.map +1 -0
- package/features/folder/GetAncestors/feature.d.ts +5 -0
- package/features/folder/GetAncestors/feature.js +13 -0
- package/features/folder/GetAncestors/feature.js.map +1 -0
- package/features/folder/GetAncestors/index.d.ts +2 -0
- package/features/folder/GetAncestors/index.js +2 -0
- package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
- package/features/folder/GetFolder/GetFolderRepository.js +33 -0
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
- package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
- package/features/folder/GetFolder/GetFolderUseCase.js +20 -0
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
- package/features/folder/GetFolder/abstractions.d.ts +57 -0
- package/features/folder/GetFolder/abstractions.js +8 -0
- package/features/folder/GetFolder/abstractions.js.map +1 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +34 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolder/feature.d.ts +5 -0
- package/features/folder/GetFolder/feature.js +15 -0
- package/features/folder/GetFolder/feature.js.map +1 -0
- package/features/folder/GetFolder/index.d.ts +2 -0
- package/features/folder/GetFolder/index.js +2 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +84 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +20 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folder/GetFolderHierarchy/abstractions.d.ts +38 -0
- package/features/folder/GetFolderHierarchy/abstractions.js +6 -0
- package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +63 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/feature.d.ts +5 -0
- package/features/folder/GetFolderHierarchy/feature.js +15 -0
- package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
- package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
- package/features/folder/GetFolderHierarchy/index.js +2 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +75 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +11 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +5 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +11 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.js +1 -0
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
- package/features/folder/ListFolders/ListFoldersRepository.js +52 -0
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
- package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js +20 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
- package/features/folder/ListFolders/abstractions.d.ts +44 -0
- package/features/folder/ListFolders/abstractions.js +6 -0
- package/features/folder/ListFolders/abstractions.js.map +1 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +65 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/ListFolders/feature.d.ts +5 -0
- package/features/folder/ListFolders/feature.js +15 -0
- package/features/folder/ListFolders/feature.js.map +1 -0
- package/features/folder/ListFolders/index.d.ts +2 -0
- package/features/folder/ListFolders/index.js +2 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +84 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +48 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
- package/features/folder/UpdateFolder/abstractions.d.ts +64 -0
- package/features/folder/UpdateFolder/abstractions.js +8 -0
- package/features/folder/UpdateFolder/abstractions.js.map +1 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +58 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/UpdateFolder/events.d.ts +10 -0
- package/features/folder/UpdateFolder/events.js +21 -0
- package/features/folder/UpdateFolder/events.js.map +1 -0
- package/features/folder/UpdateFolder/feature.d.ts +5 -0
- package/features/folder/UpdateFolder/feature.js +15 -0
- package/features/folder/UpdateFolder/feature.js.map +1 -0
- package/features/folder/UpdateFolder/index.d.ts +2 -0
- package/features/folder/UpdateFolder/index.js +2 -0
- package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
- package/features/folder/shared/EntryToFolderMapper.js +23 -0
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
- package/features/folder/shared/abstractions.d.ts +20 -0
- package/features/folder/shared/abstractions.js +8 -0
- package/features/folder/shared/abstractions.js.map +1 -0
- package/filter/filter.crud.d.ts +3 -0
- package/filter/filter.crud.js +30 -0
- package/filter/filter.crud.js.map +1 -0
- package/filter/filter.gql.d.ts +2 -0
- package/filter/filter.gql.js +164 -0
- package/filter/filter.gql.js.map +1 -0
- package/filter/filter.model.d.ts +9 -0
- package/filter/filter.model.js +50 -0
- package/filter/filter.model.js.map +1 -0
- package/filter/filter.so.d.ts +11 -0
- package/filter/filter.so.js +84 -0
- package/filter/filter.so.js.map +1 -0
- package/filter/filter.types.d.ts +67 -0
- package/filter/filter.types.js +8 -0
- package/filter/filter.types.js.map +1 -0
- package/flp/flp.crud.d.ts +7 -0
- package/flp/flp.crud.js +74 -0
- package/flp/flp.crud.js.map +1 -0
- package/flp/flp.types.d.ts +93 -0
- package/flp/flp.types.js +0 -0
- package/flp/index.d.ts +2 -0
- package/flp/index.js +2 -0
- package/flp/tasks/createFlp.task.d.ts +18 -0
- package/flp/tasks/createFlp.task.js +36 -0
- package/flp/tasks/createFlp.task.js.map +1 -0
- package/flp/tasks/deleteFlp.task.d.ts +18 -0
- package/flp/tasks/deleteFlp.task.js +36 -0
- package/flp/tasks/deleteFlp.task.js.map +1 -0
- package/flp/tasks/index.d.ts +4 -0
- package/flp/tasks/index.js +7 -0
- package/flp/tasks/index.js.map +1 -0
- package/flp/tasks/syncFlp.task.d.ts +22 -0
- package/flp/tasks/syncFlp.task.js +112 -0
- package/flp/tasks/syncFlp.task.js.map +1 -0
- package/flp/tasks/updateFlp.task.d.ts +18 -0
- package/flp/tasks/updateFlp.task.js +43 -0
- package/flp/tasks/updateFlp.task.js.map +1 -0
- package/folder/createFolderModelModifier.d.ts +36 -0
- package/folder/createFolderModelModifier.js +61 -0
- package/folder/createFolderModelModifier.js.map +1 -0
- package/folder/createFolderTypeDefs.d.ts +8 -0
- package/folder/createFolderTypeDefs.js +175 -0
- package/folder/createFolderTypeDefs.js.map +1 -0
- package/folder/folder.gql.d.ts +4 -3
- package/folder/folder.gql.js +123 -116
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.d.ts +51 -64
- package/folder/folder.types.js +0 -5
- package/index.d.ts +3 -5
- package/index.js +3 -56
- package/package.json +34 -40
- package/types.d.ts +27 -64
- package/types.js +8 -38
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +10 -0
- package/utils/FoldersCacheFactory.js +25 -0
- package/utils/FoldersCacheFactory.js.map +1 -0
- package/utils/ListCache.d.ts +23 -0
- package/utils/ListCache.js +24 -0
- package/utils/ListCache.js.map +1 -0
- package/utils/Path.d.ts +3 -0
- package/utils/Path.js +10 -0
- package/utils/Path.js.map +1 -0
- package/utils/compress.d.ts +4 -0
- package/utils/compress.js +13 -0
- package/utils/compress.js.map +1 -0
- package/utils/createListSort.d.ts +3 -2
- package/utils/createListSort.js +6 -12
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +6 -3
- package/utils/createOperationsWrapper.js +14 -28
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js +179 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js +22 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
- package/utils/decorators/ListEntriesFactory.d.ts +17 -0
- package/utils/decorators/ListEntriesFactory.js +73 -0
- package/utils/decorators/ListEntriesFactory.js.map +1 -0
- package/utils/decorators/hasRootFolderId.d.ts +7 -0
- package/utils/decorators/hasRootFolderId.js +13 -0
- package/utils/decorators/hasRootFolderId.js.map +1 -0
- package/utils/decorators/isPageModel.d.ts +5 -0
- package/utils/decorators/isPageModel.js +8 -0
- package/utils/decorators/isPageModel.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/ensureAuthentication.js +11 -0
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/pickEntryFieldValues.d.ts +3 -0
- package/utils/pickEntryFieldValues.js +29 -0
- package/utils/pickEntryFieldValues.js.map +1 -0
- package/utils/resolve.d.ts +1 -2
- package/utils/resolve.js +10 -23
- package/utils/resolve.js.map +1 -1
- package/apps/AcoApp.d.ts +0 -16
- package/apps/AcoApp.js +0 -108
- package/apps/AcoApp.js.map +0 -1
- package/apps/AcoApps.d.ts +0 -10
- package/apps/AcoApps.js +0 -76
- package/apps/AcoApps.js.map +0 -1
- package/apps/app.gql.d.ts +0 -3
- package/apps/app.gql.js +0 -58
- package/apps/app.gql.js.map +0 -1
- package/apps/index.d.ts +0 -2
- package/apps/index.js +0 -27
- package/apps/index.js.map +0 -1
- package/createAcoContext.d.ts +0 -3
- package/createAcoContext.js +0 -100
- package/createAcoContext.js.map +0 -1
- package/createAcoHooks.d.ts +0 -2
- package/createAcoHooks.js +0 -11
- package/createAcoHooks.js.map +0 -1
- package/createAcoModels.d.ts +0 -2
- package/createAcoModels.js +0 -42
- package/createAcoModels.js.map +0 -1
- package/createAcoStorageOperations.d.ts +0 -10
- package/createAcoStorageOperations.js +0 -19
- package/createAcoStorageOperations.js.map +0 -1
- package/fields/index.d.ts +0 -2
- package/fields/index.js +0 -12
- package/fields/index.js.map +0 -1
- package/fields/location.d.ts +0 -2
- package/fields/location.js +0 -44
- package/fields/location.js.map +0 -1
- package/folder/folder.crud.d.ts +0 -3
- package/folder/folder.crud.js +0 -110
- package/folder/folder.crud.js.map +0 -1
- package/folder/folder.model.d.ts +0 -4
- package/folder/folder.model.js +0 -75
- package/folder/folder.model.js.map +0 -1
- package/folder/folder.so.d.ts +0 -3
- package/folder/folder.so.js +0 -151
- package/folder/folder.so.js.map +0 -1
- package/folder/folder.types.js.map +0 -1
- package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
- package/folder/onFolderBeforeDelete.hook.js +0 -66
- package/folder/onFolderBeforeDelete.hook.js.map +0 -1
- package/index.js.map +0 -1
- package/plugins/AcoAppModifierPlugin.d.ts +0 -43
- package/plugins/AcoAppModifierPlugin.js +0 -59
- package/plugins/AcoAppModifierPlugin.js.map +0 -1
- package/plugins/AcoAppRegisterPlugin.d.ts +0 -8
- package/plugins/AcoAppRegisterPlugin.js +0 -22
- package/plugins/AcoAppRegisterPlugin.js.map +0 -1
- package/plugins/index.d.ts +0 -2
- package/plugins/index.js +0 -27
- package/plugins/index.js.map +0 -1
- package/record/graphql/createAppResolvers.d.ts +0 -14
- package/record/graphql/createAppResolvers.js +0 -108
- package/record/graphql/createAppResolvers.js.map +0 -1
- package/record/graphql/createAppSchema.d.ts +0 -9
- package/record/graphql/createAppSchema.js +0 -142
- package/record/graphql/createAppSchema.js.map +0 -1
- package/record/record.crud.d.ts +0 -3
- package/record/record.crud.js +0 -126
- package/record/record.crud.js.map +0 -1
- package/record/record.gql.d.ts +0 -8
- package/record/record.gql.js +0 -41
- package/record/record.gql.js.map +0 -1
- package/record/record.model.d.ts +0 -10
- package/record/record.model.js +0 -86
- package/record/record.model.js.map +0 -1
- package/record/record.so.d.ts +0 -3
- package/record/record.so.js +0 -150
- package/record/record.so.js.map +0 -1
- package/record/record.types.d.ts +0 -143
- package/record/record.types.js +0 -5
- package/record/record.types.js.map +0 -1
- package/utils/acoRecordId.d.ts +0 -6
- package/utils/acoRecordId.js +0 -33
- package/utils/acoRecordId.js.map +0 -1
- package/utils/checkPermissions.d.ts +0 -2
- package/utils/checkPermissions.js +0 -14
- package/utils/checkPermissions.js.map +0 -1
- package/utils/createModelField.d.ts +0 -5
- package/utils/createModelField.js +0 -37
- package/utils/createModelField.js.map +0 -1
- package/utils/fieldResolver.d.ts +0 -16
- package/utils/fieldResolver.js +0 -44
- package/utils/fieldResolver.js.map +0 -1
- package/utils/getFieldValues.d.ts +0 -5
- package/utils/getFieldValues.js +0 -16
- package/utils/getFieldValues.js.map +0 -1
- package/utils/getFolderAndItsAncestors.d.ts +0 -7
- package/utils/getFolderAndItsAncestors.js +0 -48
- package/utils/getFolderAndItsAncestors.js.map +0 -1
- package/utils/isInstallationPending.d.ts +0 -4
- package/utils/isInstallationPending.js +0 -21
- package/utils/isInstallationPending.js.map +0 -1
- package/utils/modelFactory.d.ts +0 -15
- package/utils/modelFactory.js +0 -25
- package/utils/modelFactory.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/decorators/CmsEntriesCrudDecorators.js","sources":["../../../src/utils/decorators/CmsEntriesCrudDecorators.ts"],"sourcesContent":["// @ts-nocheck Being removed\nimport type { AcoContext } from \"~/types.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { ListEntriesFactory } from \"./ListEntriesFactory.js\";\nimport { FilterEntriesByFolderFactory } from \"./FilterEntriesByFolderFactory.js\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { GetRevisionByIdStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js\";\nimport { GetLatestRevisionByEntryIdStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js\";\n\ntype Context = AcoContext;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.container.resolve(FolderLevelPermissions);\n const getRevisionById = context.container.resolve(GetRevisionByIdStorageOperation);\n const getLatestRevisionByEntryId = context.container.resolve(\n GetLatestRevisionByEntryIdStorageOperation\n );\n\n const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);\n const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context, \"listEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"listLatestEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"listDeletedEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await getRevisionById.execute(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await getRevisionById.execute(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await getLatestRevisionByEntryId.execute(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await getRevisionById.execute(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await getRevisionById.execute(model, {\n id\n });\n\n const folderId = entry?.location?.folderId || ROOT_FOLDER;\n /**\n * If the entry is in the same folder we are trying to move it to, just continue.\n */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions =\n await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"names":["CmsEntriesCrudDecorators","context","folderLevelPermissions","FolderLevelPermissions","getRevisionById","GetRevisionByIdStorageOperation","getLatestRevisionByEntryId","GetLatestRevisionByEntryIdStorageOperation","filterEntriesByFolder","FilterEntriesByFolderFactory","listEntriesHandler","ListEntriesFactory","decorateIfModelAuthorizationEnabled","allParams","decoratee","model","initialParams","params","entry","folderId","ROOT_FOLDER","permissions","ids","entries","options","id","input","meta","targetFolderId"],"mappings":";;;;;;;AAgBO,MAAMA;IAGT,YAAmB,EAAEC,OAAO,EAAoC,CAAE;QAC9D,IAAI,CAAC,OAAO,GAAGA;IACnB;IAEO,WAAW;QACd,MAAMA,UAAU,IAAI,CAAC,OAAO;QAC5B,MAAMC,yBAAyBD,QAAQ,SAAS,CAAC,OAAO,CAACE;QACzD,MAAMC,kBAAkBH,QAAQ,SAAS,CAAC,OAAO,CAACI;QAClD,MAAMC,6BAA6BL,QAAQ,SAAS,CAAC,OAAO,CACxDM;QAGJ,MAAMC,wBAAwB,IAAIC,6BAA6BP;QAC/D,MAAMQ,qBAAqB,IAAIC,mBAAmBT;QAElDU,oCAAoCX,SAAS,eAAe,OAAO,GAAGY;YAClE,MAAM,CAACC,WAAWC,OAAOC,cAAc,GAAGH;YAC1C,OAAO,MAAMH,mBAAmB,OAAO,CAAC;gBAAEI;gBAAWC;gBAAOC;YAAc;QAC9E;QAEAJ,oCAAoCX,SAAS,qBAAqB,OAAO,GAAGY;YACxE,MAAM,CAACC,WAAWC,OAAOC,cAAc,GAAGH;YAC1C,OAAO,MAAMH,mBAAmB,OAAO,CAAC;gBAAEI;gBAAWC;gBAAOC;YAAc;QAC9E;QAEAJ,oCACIX,SACA,wBACA,OAAO,GAAGY;YACN,MAAM,CAACC,WAAWC,OAAOC,cAAc,GAAGH;YAC1C,OAAO,MAAMH,mBAAmB,OAAO,CAAC;gBAAEI;gBAAWC;gBAAOC;YAAc;QAC9E;QAGJJ,oCAAoCX,SAAS,sBAAsB,OAAO,GAAGY;YACzE,MAAM,CAACC,WAAWC,OAAOC,cAAc,GAAGH;YAC1C,OAAO,MAAMH,mBAAmB,OAAO,CAAC;gBAAEI;gBAAWC;gBAAOC;YAAc;QAC9E;QAEAJ,oCAAoCX,SAAS,YAAY,OAAO,GAAGY;YAC/D,MAAM,CAACC,WAAWC,OAAOE,OAAO,GAAGJ;YACnC,MAAMK,QAAQ,MAAMJ,UAAUC,OAAOE;YAErC,MAAME,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cAAc,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3E,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOH;QACX;QAEAN,oCAAoCX,SAAS,gBAAgB,OAAO,GAAGY;YACnE,MAAM,CAACC,WAAWC,OAAOE,OAAO,GAAGJ;YACnC,MAAMK,QAAQ,MAAMJ,UAAUC,OAAOE;YAErC,MAAME,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAEX,MAAMG,cAAc,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3E,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YACA,OAAOH;QACX;QAEAN,oCACIX,SACA,yBACA,OAAO,GAAGY;YACN,MAAM,CAACC,WAAWC,OAAOO,IAAI,GAAGT;YAEhC,MAAMU,UAAU,MAAMT,UAAUC,OAAOO;YAEvC,OAAOd,sBAAsB,OAAO,CAACe;QACzC;QAGJX,oCACIX,SACA,4BACA,OAAO,GAAGY;YACN,MAAM,CAACC,WAAWC,OAAOO,IAAI,GAAGT;YAEhC,MAAMU,UAAU,MAAMT,UAAUC,OAAOO;YACvC,OAAOd,sBAAsB,OAAO,CAACe;QACzC;QAGJX,oCAAoCX,SAAS,eAAe,OAAO,GAAGY;YAClE,MAAM,CAACC,WAAWC,OAAOE,QAAQO,QAAQ,GAAGX;YAC5C,MAAMM,WAAWF,OAAO,eAAe,EAAE,YAAYA,OAAO,QAAQ,EAAE;YAEtE,IAAI,CAACE,YAAYA,aAAaC,aAC1B,OAAON,UAAUC,OAAOE,QAAQO;YAGpC,MAAMH,cAAc,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3E,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOP,UAAUC,OAAOE,QAAQO;QACpC;QAEAZ,oCACIX,SACA,2BACA,OAAO,GAAGY;YACN,MAAM,CAACC,WAAWC,OAAOU,IAAIC,OAAOF,QAAQ,GAAGX;YAE/C,MAAMK,QAAQ,MAAMd,gBAAgB,OAAO,CAACW,OAAO;gBAC/CU;YACJ;YAEA,MAAMN,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAON,UAAUC,OAAOU,IAAIC,OAAOF;YAGvC,MAAMH,cACF,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3D,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOP,UAAUC,OAAOU,IAAIC,OAAOF;QACvC;QAGJZ,oCAAoCX,SAAS,eAAe,OAAO,GAAGY;YAClE,MAAM,CAACC,WAAWC,OAAOU,IAAIC,OAAOC,MAAMH,QAAQ,GAAGX;YACrD,MAAMK,QAAQ,MAAMd,gBAAgB,OAAO,CAACW,OAAO;gBAC/CU;YACJ;YAEA,MAAMN,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAON,UAAUC,OAAOU,IAAIC,OAAOC,MAAMH;YAG7C,MAAMH,cAAc,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3E,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOP,UAAUC,OAAOU,IAAIC,OAAOC,MAAMH;QAC7C;QAEAZ,oCAAoCX,SAAS,eAAe,OAAO,GAAGY;YAClE,MAAM,CAACC,WAAWC,OAAOU,IAAID,QAAQ,GAAGX;YAExC,MAAMK,QAAQ,MAAMZ,2BAA2B,OAAO,CAACS,OAAO;gBAC1DU;YACJ;YAEA,MAAMN,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAON,UAAUC,OAAOU,IAAID;YAGhC,MAAMH,cAAc,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3E,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOP,UAAUC,OAAOU,IAAID;QAChC;QAEAZ,oCACIX,SACA,uBACA,OAAO,GAAGY;YACN,MAAM,CAACC,WAAWC,OAAOU,GAAG,GAAGZ;YAE/B,MAAMK,QAAQ,MAAMd,gBAAgB,OAAO,CAACW,OAAO;gBAC/CU;YACJ;YAEA,MAAMN,WAAWD,OAAO,UAAU;YAClC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAON,UAAUC,OAAOU;YAG5B,MAAMJ,cACF,MAAMnB,uBAAuB,yBAAyB,CAACiB;YAC3D,MAAMjB,uBAAuB,4BAA4B,CAAC;gBACtDmB;gBACA,KAAK;YACT;YAEA,OAAOP,UAAUC,OAAOU;QAC5B;QAGJb,oCAAoCX,SAAS,aAAa,OAAO,GAAGY;YAChE,MAAM,CAACC,WAAWC,OAAOU,IAAIG,eAAe,GAAGf;YAK/C,MAAMK,QAAQ,MAAMd,gBAAgB,OAAO,CAACW,OAAO;gBAC/CU;YACJ;YAEA,MAAMN,WAAWD,OAAO,UAAU,YAAYE;YAI9C,IAAID,aAAaS,gBACb,OAAOd,UAAUC,OAAOU,IAAIG;YACzB,IAAIT,aAAaC,aAAa;gBAIjC,MAAMC,cACF,MAAMnB,uBAAuB,yBAAyB,CAACiB;gBAC3D,MAAMjB,uBAAuB,4BAA4B,CAAC;oBACtDmB;oBACA,KAAK;gBACT;YACJ;YAIA,IAAIO,mBAAmBR,aAAa;gBAChC,MAAMC,cACF,MAAMnB,uBAAuB,yBAAyB,CAACiB;gBAC3D,MAAMjB,uBAAuB,4BAA4B,CAAC;oBACtDmB;oBACA,KAAK;gBACT;YACJ;YAEA,OAAOP,UAAUC,OAAOU,IAAIG;QAChC;IACJ;AACJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
|
|
2
|
+
import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
|
|
3
|
+
export declare class FilterEntriesByFolderFactory {
|
|
4
|
+
private readonly folderLevelPermissions;
|
|
5
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface);
|
|
6
|
+
execute(entries: CmsEntry[]): Promise<CmsEntry[]>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ROOT_FOLDER } from "../../constants.js";
|
|
2
|
+
class FilterEntriesByFolderFactory {
|
|
3
|
+
constructor(folderLevelPermissions){
|
|
4
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
5
|
+
}
|
|
6
|
+
async execute(entries) {
|
|
7
|
+
const results = await Promise.all(entries.map(async (entry)=>{
|
|
8
|
+
const folderId = entry.location?.folderId;
|
|
9
|
+
if (!folderId || folderId === ROOT_FOLDER) return entry;
|
|
10
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
11
|
+
const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
|
|
12
|
+
permissions,
|
|
13
|
+
rwd: "r"
|
|
14
|
+
});
|
|
15
|
+
return canAccessFolderContent ? entry : null;
|
|
16
|
+
}));
|
|
17
|
+
return results.filter((entry)=>!!entry);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export { FilterEntriesByFolderFactory };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=FilterEntriesByFolderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/decorators/FilterEntriesByFolderFactory.js","sources":["../../../src/utils/decorators/FilterEntriesByFolderFactory.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\nexport class FilterEntriesByFolderFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n }\n\n public async execute(entries: CmsEntry[]): Promise<CmsEntry[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolderContent =\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccessFolderContent ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n }\n}\n"],"names":["FilterEntriesByFolderFactory","folderLevelPermissions","entries","results","Promise","entry","folderId","ROOT_FOLDER","permissions","canAccessFolderContent"],"mappings":";AAIO,MAAMA;IAGT,YAAYC,sBAAwD,CAAE;QAClE,IAAI,CAAC,sBAAsB,GAAGA;IAClC;IAEA,MAAa,QAAQC,OAAmB,EAAuB;QAC3D,MAAMC,UAAU,MAAMC,QAAQ,GAAG,CAC7BF,QAAQ,GAAG,CAAC,OAAMG;YACd,MAAMC,WAAWD,MAAM,QAAQ,EAAE;YACjC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAChE,MAAMG,yBACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBACrDD;gBACA,KAAK;YACT;YACJ,OAAOC,yBAAyBJ,QAAQ;QAC5C;QAGJ,OAAOF,QAAQ,MAAM,CAAC,CAACE,QAA6B,CAAC,CAACA;IAC1D;AACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CmsEntryListParams, CmsEntryValues } from "@webiny/api-headless-cms/types/index.js";
|
|
2
|
+
import { type CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
3
|
+
import type { IListEntriesResult } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
interface ListEntriesFactoryCallbackParams<T extends CmsEntryValues> {
|
|
6
|
+
model: CmsModel;
|
|
7
|
+
dataLoader: (params?: CmsEntryListParams) => Promise<IListEntriesResult<T>>;
|
|
8
|
+
initialParams?: CmsEntryListParams;
|
|
9
|
+
}
|
|
10
|
+
export declare class ListEntriesFactory {
|
|
11
|
+
private readonly folderLevelPermissions;
|
|
12
|
+
private readonly permissionsCache;
|
|
13
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface);
|
|
14
|
+
execute<T extends CmsEntryValues = CmsEntryValues>({ model, dataLoader, initialParams }: ListEntriesFactoryCallbackParams<T>): Promise<IListEntriesResult<T>>;
|
|
15
|
+
private getPermissions;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { hasRootFolderId } from "./hasRootFolderId.js";
|
|
2
|
+
class ListEntriesFactory {
|
|
3
|
+
constructor(folderLevelPermissions){
|
|
4
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
5
|
+
this.permissionsCache = new Map();
|
|
6
|
+
}
|
|
7
|
+
async execute({ model, dataLoader, initialParams = {} }) {
|
|
8
|
+
const limit = initialParams?.limit || 50;
|
|
9
|
+
const where = initialParams?.where;
|
|
10
|
+
const params = {
|
|
11
|
+
...initialParams,
|
|
12
|
+
limit
|
|
13
|
+
};
|
|
14
|
+
const hasRootFolder = hasRootFolderId({
|
|
15
|
+
model,
|
|
16
|
+
where
|
|
17
|
+
});
|
|
18
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions() || hasRootFolder) return dataLoader(params);
|
|
19
|
+
const resultEntries = [];
|
|
20
|
+
let totalCount = 0;
|
|
21
|
+
let hasMoreItems = true;
|
|
22
|
+
let cursor = null;
|
|
23
|
+
let fetchedAll = false;
|
|
24
|
+
let afterCursor = params.after;
|
|
25
|
+
while(!fetchedAll){
|
|
26
|
+
const queryParams = {
|
|
27
|
+
...params,
|
|
28
|
+
after: afterCursor
|
|
29
|
+
};
|
|
30
|
+
const { entries, meta } = await dataLoader(queryParams);
|
|
31
|
+
if (0 === totalCount) totalCount = meta.totalCount;
|
|
32
|
+
for (const entry of entries){
|
|
33
|
+
const folderId = entry.values?.location?.folderId || entry.location?.folderId;
|
|
34
|
+
if (!folderId) {
|
|
35
|
+
resultEntries.push(entry);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const permissions = await this.getPermissions(folderId);
|
|
39
|
+
if (!permissions.length) {
|
|
40
|
+
resultEntries.push(entry);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (await this.folderLevelPermissions.canAccessFolderContent({
|
|
44
|
+
permissions,
|
|
45
|
+
rwd: "r"
|
|
46
|
+
})) resultEntries.push(entry);
|
|
47
|
+
else totalCount--;
|
|
48
|
+
}
|
|
49
|
+
if (!meta.hasMoreItems || resultEntries.length >= limit) {
|
|
50
|
+
fetchedAll = true;
|
|
51
|
+
hasMoreItems = meta.hasMoreItems;
|
|
52
|
+
cursor = meta.cursor;
|
|
53
|
+
} else afterCursor = meta.cursor;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
entries: resultEntries,
|
|
57
|
+
meta: {
|
|
58
|
+
totalCount,
|
|
59
|
+
hasMoreItems,
|
|
60
|
+
cursor
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async getPermissions(folderId) {
|
|
65
|
+
if (this.permissionsCache.has(folderId)) return this.permissionsCache.get(folderId) ?? [];
|
|
66
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
67
|
+
this.permissionsCache.set(folderId, permissions);
|
|
68
|
+
return permissions;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export { ListEntriesFactory };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=ListEntriesFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/decorators/ListEntriesFactory.js","sources":["../../../src/utils/decorators/ListEntriesFactory.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryListParams,\n CmsEntryValues\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { type CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IListEntriesResult } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport { hasRootFolderId } from \"~/utils/decorators/hasRootFolderId.js\";\nimport type { FolderPermission } from \"~/flp/flp.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\n\ninterface ListEntriesFactoryCallbackParams<T extends CmsEntryValues> {\n model: CmsModel;\n dataLoader: (params?: CmsEntryListParams) => Promise<IListEntriesResult<T>>;\n initialParams?: CmsEntryListParams;\n}\n\nexport class ListEntriesFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly permissionsCache: Map<string, FolderPermission[]>;\n\n constructor(folderLevelPermissions: FolderLevelPermissions.Interface) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.permissionsCache = new Map();\n }\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>({\n model,\n dataLoader,\n initialParams = {}\n }: ListEntriesFactoryCallbackParams<T>): Promise<IListEntriesResult<T>> {\n const limit = initialParams?.limit || 50;\n const where = initialParams?.where;\n const params = { ...initialParams, limit };\n const hasRootFolder = hasRootFolderId({ model, where });\n\n // If FLP should be skipped, or we're querying the root folder, skip permission checks\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions() || hasRootFolder) {\n return dataLoader(params);\n }\n\n const resultEntries: CmsEntry<T>[] = [];\n let totalCount = 0;\n let hasMoreItems = true;\n let cursor: string | null = null;\n let fetchedAll = false;\n let afterCursor = params.after;\n\n // Process entries in batches until we have enough results or reach the end\n while (!fetchedAll) {\n const queryParams: CmsEntryListParams = { ...params, after: afterCursor };\n const { entries, meta } = await dataLoader(queryParams);\n\n if (totalCount === 0) {\n totalCount = meta.totalCount;\n }\n\n // Process each entry and check folder permissions\n for (const entry of entries) {\n const folderId = entry.values?.location?.folderId || entry.location?.folderId;\n\n // If entry has no folderId, it's not using ACO folders system\n // Include it in results as it's not subject to folder permissions\n if (!folderId) {\n resultEntries.push(entry);\n continue;\n }\n\n const permissions = await this.getPermissions(folderId);\n\n // If no FLP exists for the folder, the entry is accessible\n // This means the folder doesn't have any permission restrictions\n if (!permissions.length) {\n resultEntries.push(entry);\n continue;\n }\n\n // Check if user has read permission for the folder\n if (\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n })\n ) {\n resultEntries.push(entry);\n } else {\n totalCount--;\n }\n }\n\n // Determine if we need to fetch more entries\n if (!meta.hasMoreItems || resultEntries.length >= limit) {\n fetchedAll = true;\n hasMoreItems = meta.hasMoreItems;\n cursor = meta.cursor;\n } else {\n afterCursor = meta.cursor;\n }\n }\n\n return { entries: resultEntries, meta: { totalCount, hasMoreItems, cursor } };\n }\n\n private async getPermissions(folderId: string): Promise<FolderPermission[]> {\n if (this.permissionsCache.has(folderId)) {\n return this.permissionsCache.get(folderId) ?? [];\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n this.permissionsCache.set(folderId, permissions);\n return permissions;\n }\n}\n"],"names":["ListEntriesFactory","folderLevelPermissions","Map","model","dataLoader","initialParams","limit","where","params","hasRootFolder","hasRootFolderId","resultEntries","totalCount","hasMoreItems","cursor","fetchedAll","afterCursor","queryParams","entries","meta","entry","folderId","permissions"],"mappings":";AAiBO,MAAMA;IAIT,YAAYC,sBAAwD,CAAE;QAClE,IAAI,CAAC,sBAAsB,GAAGA;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAIC;IAChC;IAEA,MAAa,QAAmD,EAC5DC,KAAK,EACLC,UAAU,EACVC,gBAAgB,CAAC,CAAC,EACgB,EAAkC;QACpE,MAAMC,QAAQD,eAAe,SAAS;QACtC,MAAME,QAAQF,eAAe;QAC7B,MAAMG,SAAS;YAAE,GAAGH,aAAa;YAAEC;QAAM;QACzC,MAAMG,gBAAgBC,gBAAgB;YAAEP;YAAOI;QAAM;QAGrD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,MAAME,eAC/D,OAAOL,WAAWI;QAGtB,MAAMG,gBAA+B,EAAE;QACvC,IAAIC,aAAa;QACjB,IAAIC,eAAe;QACnB,IAAIC,SAAwB;QAC5B,IAAIC,aAAa;QACjB,IAAIC,cAAcR,OAAO,KAAK;QAG9B,MAAO,CAACO,WAAY;YAChB,MAAME,cAAkC;gBAAE,GAAGT,MAAM;gBAAE,OAAOQ;YAAY;YACxE,MAAM,EAAEE,OAAO,EAAEC,IAAI,EAAE,GAAG,MAAMf,WAAWa;YAE3C,IAAIL,AAAe,MAAfA,YACAA,aAAaO,KAAK,UAAU;YAIhC,KAAK,MAAMC,SAASF,QAAS;gBACzB,MAAMG,WAAWD,MAAM,MAAM,EAAE,UAAU,YAAYA,MAAM,QAAQ,EAAE;gBAIrE,IAAI,CAACC,UAAU;oBACXV,cAAc,IAAI,CAACS;oBACnB;gBACJ;gBAEA,MAAME,cAAc,MAAM,IAAI,CAAC,cAAc,CAACD;gBAI9C,IAAI,CAACC,YAAY,MAAM,EAAE;oBACrBX,cAAc,IAAI,CAACS;oBACnB;gBACJ;gBAGA,IACI,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;oBACrDE;oBACA,KAAK;gBACT,IAEAX,cAAc,IAAI,CAACS;qBAEnBR;YAER;YAGA,IAAI,CAACO,KAAK,YAAY,IAAIR,cAAc,MAAM,IAAIL,OAAO;gBACrDS,aAAa;gBACbF,eAAeM,KAAK,YAAY;gBAChCL,SAASK,KAAK,MAAM;YACxB,OACIH,cAAcG,KAAK,MAAM;QAEjC;QAEA,OAAO;YAAE,SAASR;YAAe,MAAM;gBAAEC;gBAAYC;gBAAcC;YAAO;QAAE;IAChF;IAEA,MAAc,eAAeO,QAAgB,EAA+B;QACxE,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACA,WAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACA,aAAa,EAAE;QAGpD,MAAMC,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACD;QAChF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACA,UAAUC;QACpC,OAAOA;IACX;AACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isPlainObject from "lodash/isPlainObject.js";
|
|
2
|
+
import { isPageModel } from "./isPageModel.js";
|
|
3
|
+
import { ROOT_FOLDER } from "../../constants.js";
|
|
4
|
+
const hasRootFolderId = ({ model, where })=>{
|
|
5
|
+
if (!where) return false;
|
|
6
|
+
const key = isPageModel(model) ? "location" : "wbyAco_location";
|
|
7
|
+
const location = where[key];
|
|
8
|
+
if ("object" == typeof location && null !== location && isPlainObject(location)) return location.folderId === ROOT_FOLDER;
|
|
9
|
+
return false;
|
|
10
|
+
};
|
|
11
|
+
export { hasRootFolderId };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=hasRootFolderId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/decorators/hasRootFolderId.js","sources":["../../../src/utils/decorators/hasRootFolderId.ts"],"sourcesContent":["import isPlainObject from \"lodash/isPlainObject.js\";\nimport { isPageModel } from \"~/utils/decorators/isPageModel.js\";\nimport type { CmsEntryListWhere, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\ninterface Params {\n model: CmsModel;\n where: CmsEntryListWhere | undefined;\n}\n\nexport const hasRootFolderId = ({ model, where }: Params): boolean => {\n if (!where) {\n return false;\n }\n\n const key = isPageModel(model) ? \"location\" : \"wbyAco_location\";\n const location = where[key];\n\n if (typeof location === \"object\" && location !== null && isPlainObject(location)) {\n return (location as Record<string, any>).folderId === ROOT_FOLDER;\n }\n\n return false;\n};\n"],"names":["hasRootFolderId","model","where","key","isPageModel","location","isPlainObject","ROOT_FOLDER"],"mappings":";;;AAUO,MAAMA,kBAAkB,CAAC,EAAEC,KAAK,EAAEC,KAAK,EAAU;IACpD,IAAI,CAACA,OACD,OAAO;IAGX,MAAMC,MAAMC,YAAYH,SAAS,aAAa;IAC9C,MAAMI,WAAWH,KAAK,CAACC,IAAI;IAE3B,IAAI,AAAoB,YAApB,OAAOE,YAAyBA,AAAa,SAAbA,YAAqBC,cAAcD,WACnE,OAAQA,SAAiC,QAAQ,KAAKE;IAG1D,OAAO;AACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/decorators/isPageModel.js","sources":["../../../src/utils/decorators/isPageModel.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\n/**\n * Keep this until we figure out how to fetch the folders.\n */\nexport const isPageModel = (model: CmsModel): boolean => {\n if (model.modelId === \"pbPage\") {\n return true;\n } else if (model.modelId === \"acoSearchRecord-pbpage\") {\n return true;\n }\n return false;\n};\n"],"names":["isPageModel","model"],"mappings":"AAKO,MAAMA,cAAc,CAACC;IACxB,IAAIA,AAAkB,aAAlBA,MAAM,OAAO,EACb,OAAO;IACJ,IAAIA,AAAkB,6BAAlBA,MAAM,OAAO,EACpB,OAAO;IAEX,OAAO;AACX"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/errors.js";
|
|
2
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
3
|
+
const ensureAuthentication = (context)=>{
|
|
4
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
5
|
+
const identity = identityContext.getIdentity();
|
|
6
|
+
if (!identity.isAnonymous()) return;
|
|
7
|
+
throw new NotAuthorizedError();
|
|
8
|
+
};
|
|
9
|
+
export { ensureAuthentication };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=ensureAuthentication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/ensureAuthentication.js","sources":["../../src/utils/ensureAuthentication.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/errors.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nexport const ensureAuthentication = (context: ApiCoreContext) => {\n const identityContext = context.container.resolve(IdentityContext);\n const identity = identityContext.getIdentity();\n\n if (!identity.isAnonymous()) {\n return;\n }\n throw new NotAuthorizedError();\n};\n"],"names":["ensureAuthentication","context","identityContext","IdentityContext","identity","NotAuthorizedError"],"mappings":";;AAIO,MAAMA,uBAAuB,CAACC;IACjC,MAAMC,kBAAkBD,QAAQ,SAAS,CAAC,OAAO,CAACE;IAClD,MAAMC,WAAWF,gBAAgB,WAAW;IAE5C,IAAI,CAACE,SAAS,WAAW,IACrB;IAEJ,MAAM,IAAIC;AACd"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const baseFields = [
|
|
2
|
+
"id",
|
|
3
|
+
"tenant",
|
|
4
|
+
"createdOn",
|
|
5
|
+
"modifiedOn",
|
|
6
|
+
"savedOn",
|
|
7
|
+
"createdBy",
|
|
8
|
+
"modifiedBy",
|
|
9
|
+
"savedBy"
|
|
10
|
+
];
|
|
11
|
+
const pickBaseEntryFieldValues = (entry)=>{
|
|
12
|
+
const pickedValues = {};
|
|
13
|
+
for (const fieldName of baseFields){
|
|
14
|
+
const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(":");
|
|
15
|
+
if (srcFieldName in entry) Object.assign(pickedValues, {
|
|
16
|
+
[targetFieldName]: entry[srcFieldName]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return pickedValues;
|
|
20
|
+
};
|
|
21
|
+
function pickEntryFieldValues(entry) {
|
|
22
|
+
return {
|
|
23
|
+
...pickBaseEntryFieldValues(entry),
|
|
24
|
+
...entry.values
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export { baseFields, pickEntryFieldValues };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=pickEntryFieldValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/pickEntryFieldValues.js","sources":["../../src/utils/pickEntryFieldValues.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const baseFields = [\n // Entry ID is mapped to \"id\" (we don't use revisions with ACO entities).\n \"id\",\n \"tenant\",\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\"\n];\n\nconst pickBaseEntryFieldValues = (entry: CmsEntry) => {\n const pickedValues: Partial<CmsEntry> = {};\n for (const fieldName of baseFields) {\n const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(\":\");\n if (srcFieldName in entry) {\n Object.assign(pickedValues, {\n [targetFieldName]: entry[srcFieldName as keyof CmsEntry]\n });\n }\n }\n\n return pickedValues;\n};\n\nexport function pickEntryFieldValues<T>(entry: CmsEntry): T {\n return {\n ...pickBaseEntryFieldValues(entry),\n ...entry.values\n } as T;\n}\n"],"names":["baseFields","pickBaseEntryFieldValues","entry","pickedValues","fieldName","srcFieldName","targetFieldName","Object","pickEntryFieldValues"],"mappings":"AAEO,MAAMA,aAAa;IAEtB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAED,MAAMC,2BAA2B,CAACC;IAC9B,MAAMC,eAAkC,CAAC;IACzC,KAAK,MAAMC,aAAaJ,WAAY;QAChC,MAAM,CAACK,cAAcC,kBAAkBD,YAAY,CAAC,GAAGD,UAAU,KAAK,CAAC;QACvE,IAAIC,gBAAgBH,OAChBK,OAAO,MAAM,CAACJ,cAAc;YACxB,CAACG,gBAAgB,EAAEJ,KAAK,CAACG,aAA+B;QAC5D;IAER;IAEA,OAAOF;AACX;AAEO,SAASK,qBAAwBN,KAAe;IACnD,OAAO;QACH,GAAGD,yBAAyBC,MAAM;QAClC,GAAGA,MAAM,MAAM;IACnB;AACJ"}
|
package/utils/resolve.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ErrorResponse,
|
|
1
|
+
import { ErrorResponse, Response } from "@webiny/api-graphql";
|
|
2
2
|
export declare const resolve: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
|
|
3
|
-
export declare const resolveList: (fn: () => Promise<any>) => Promise<ErrorResponse | ListResponse<unknown, any>>;
|
package/utils/resolve.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const resolve = async fn => {
|
|
9
|
-
try {
|
|
10
|
-
return new _handlerGraphql.Response(await fn());
|
|
11
|
-
} catch (e) {
|
|
12
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
exports.resolve = resolve;
|
|
16
|
-
const resolveList = async fn => {
|
|
17
|
-
try {
|
|
18
|
-
const [items, meta] = await fn();
|
|
19
|
-
return new _handlerGraphql.ListResponse(items, meta);
|
|
20
|
-
} catch (e) {
|
|
21
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
22
|
-
}
|
|
1
|
+
import { ErrorResponse, Response } from "@webiny/api-graphql";
|
|
2
|
+
const resolve = async (fn)=>{
|
|
3
|
+
try {
|
|
4
|
+
return new Response(await fn());
|
|
5
|
+
} catch (e) {
|
|
6
|
+
return new ErrorResponse(e);
|
|
7
|
+
}
|
|
23
8
|
};
|
|
24
|
-
|
|
9
|
+
export { resolve };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=resolve.js.map
|
package/utils/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils/resolve.js","sources":["../../src/utils/resolve.ts"],"sourcesContent":["import { ErrorResponse, Response } from \"@webiny/api-graphql\";\n\nexport const resolve = async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"names":["resolve","fn","Response","e","ErrorResponse"],"mappings":";AAEO,MAAMA,UAAU,OAAOC;IAC1B,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,GAAG;QACR,OAAO,IAAIC,cAAcD;IAC7B;AACJ"}
|
package/apps/AcoApp.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AcoContext, AcoSearchRecordCrudBase, IAcoApp, IAcoAppModifyFieldCallableCallback, IAcoAppParams } from "../types";
|
|
2
|
-
import { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
|
|
3
|
-
export declare class AcoApp implements IAcoApp {
|
|
4
|
-
readonly name: string;
|
|
5
|
-
readonly context: AcoContext;
|
|
6
|
-
readonly model: CmsModel;
|
|
7
|
-
private readonly fields;
|
|
8
|
-
get search(): AcoSearchRecordCrudBase;
|
|
9
|
-
get folder(): import("../types").AcoFolderCrud;
|
|
10
|
-
private constructor();
|
|
11
|
-
static create(context: AcoContext, params: IAcoAppParams): AcoApp;
|
|
12
|
-
getFields(): CmsModelField[];
|
|
13
|
-
addField(field: CmsModelField): void;
|
|
14
|
-
removeField(id: string): void;
|
|
15
|
-
modifyField(id: string, cb: IAcoAppModifyFieldCallableCallback): void;
|
|
16
|
-
}
|
package/apps/AcoApp.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.AcoApp = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
|
-
var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
|
|
11
|
-
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
12
|
-
var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
|
|
13
|
-
var _record = require("../record/record.model");
|
|
14
|
-
const createApiName = name => {
|
|
15
|
-
return (0, _upperFirst.default)((0, _camelCase.default)(name));
|
|
16
|
-
};
|
|
17
|
-
class AcoApp {
|
|
18
|
-
get search() {
|
|
19
|
-
return {
|
|
20
|
-
create: async data => {
|
|
21
|
-
return this.context.aco.search.create(this.model, data);
|
|
22
|
-
},
|
|
23
|
-
update: async (id, data) => {
|
|
24
|
-
/**
|
|
25
|
-
* Required to have as any atm as TS is breaking on the return type.
|
|
26
|
-
*/
|
|
27
|
-
return await this.context.aco.search.update(this.model, id, data);
|
|
28
|
-
},
|
|
29
|
-
move: async (id, folderId) => {
|
|
30
|
-
return this.context.aco.search.move(this.model, id, folderId);
|
|
31
|
-
},
|
|
32
|
-
get: async id => {
|
|
33
|
-
return this.context.aco.search.get(this.model, id);
|
|
34
|
-
},
|
|
35
|
-
list: async params => {
|
|
36
|
-
return this.context.aco.search.list(this.model, params);
|
|
37
|
-
},
|
|
38
|
-
delete: async id => {
|
|
39
|
-
return this.context.aco.search.delete(this.model, id);
|
|
40
|
-
},
|
|
41
|
-
listTags: async params => {
|
|
42
|
-
return this.context.aco.search.listTags(this.model, params);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
get folder() {
|
|
47
|
-
return this.context.aco.folder;
|
|
48
|
-
}
|
|
49
|
-
constructor(context, params) {
|
|
50
|
-
var _this$model$fields$in;
|
|
51
|
-
(0, _defineProperty2.default)(this, "name", void 0);
|
|
52
|
-
(0, _defineProperty2.default)(this, "context", void 0);
|
|
53
|
-
(0, _defineProperty2.default)(this, "model", void 0);
|
|
54
|
-
(0, _defineProperty2.default)(this, "fields", void 0);
|
|
55
|
-
this.context = context;
|
|
56
|
-
this.name = params.name;
|
|
57
|
-
this.model = (0, _structuredClone.default)(params.model);
|
|
58
|
-
/**
|
|
59
|
-
* We can safely define the api name of the model as we control everything here.
|
|
60
|
-
*/
|
|
61
|
-
this.model.name = `${this.model.name} ${this.name}`;
|
|
62
|
-
this.model.modelId = `${this.model.modelId}-${this.name.toLowerCase()}`;
|
|
63
|
-
const apiName = `AcoSearchRecord${createApiName(params.apiName)}`;
|
|
64
|
-
this.model.singularApiName = apiName;
|
|
65
|
-
this.model.pluralApiName = apiName;
|
|
66
|
-
const index = this.model.fields.findIndex(f => f.fieldId === "data");
|
|
67
|
-
if (index === -1) {
|
|
68
|
-
throw new _error.default(`The "data" field does not exist in model "${this.model.modelId}".`, "MODEL_DATA_FIELD_ERROR", {
|
|
69
|
-
modelId: this.model.modelId
|
|
70
|
-
});
|
|
71
|
-
} else if (!((_this$model$fields$in = this.model.fields[index].settings) !== null && _this$model$fields$in !== void 0 && _this$model$fields$in.fields)) {
|
|
72
|
-
this.model.fields[index].settings.fields = [];
|
|
73
|
-
}
|
|
74
|
-
this.fields = this.model.fields[index].settings.fields;
|
|
75
|
-
this.fields.push(...params.fields);
|
|
76
|
-
}
|
|
77
|
-
static create(context, params) {
|
|
78
|
-
return new AcoApp(context, params);
|
|
79
|
-
}
|
|
80
|
-
getFields() {
|
|
81
|
-
return this.fields;
|
|
82
|
-
}
|
|
83
|
-
addField(field) {
|
|
84
|
-
this.fields.push(field);
|
|
85
|
-
}
|
|
86
|
-
removeField(id) {
|
|
87
|
-
if (_record.DEFAULT_FIELDS.includes(id)) {
|
|
88
|
-
throw new _error.default(`Cannot remove the default field from the ACO App.`, "REMOVE_DEFAULT_FIELD_ERROR", {
|
|
89
|
-
fieldId: id
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
const index = this.fields.findIndex(field => field.id === id);
|
|
93
|
-
if (index === -1) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
this.fields.splice(index, 1);
|
|
97
|
-
}
|
|
98
|
-
modifyField(id, cb) {
|
|
99
|
-
const index = this.fields.findIndex(field => field.id === id);
|
|
100
|
-
if (index === -1) {
|
|
101
|
-
throw new _error.default(`There is no field "${id}" in app "${this.name}".`, "FIELD_NOT_FOUND_ERROR", {
|
|
102
|
-
id
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
this.fields[index] = cb((0, _structuredClone.default)(this.fields[index]));
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
exports.AcoApp = AcoApp;
|
package/apps/AcoApp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createApiName","name","lodashUpperFirst","lodashCamelCase","AcoApp","search","create","data","context","aco","model","update","id","move","folderId","get","list","params","delete","listTags","folder","constructor","structuredClone","modelId","toLowerCase","apiName","singularApiName","pluralApiName","index","fields","findIndex","f","fieldId","WebinyError","settings","push","getFields","addField","field","removeField","DEFAULT_FIELDS","includes","splice","modifyField","cb"],"sources":["AcoApp.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport structuredClone from \"@ungap/structured-clone\";\nimport {\n AcoContext,\n AcoSearchRecordCrudBase,\n CreateSearchRecordParams,\n IAcoApp,\n IAcoAppModifyFieldCallableCallback,\n IAcoAppParams,\n ListSearchRecordsParams,\n ListSearchRecordTagsParams,\n SearchRecord\n} from \"~/types\";\nimport { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport { DEFAULT_FIELDS } from \"~/record/record.model\";\n\nconst createApiName = (name: string) => {\n return lodashUpperFirst(lodashCamelCase(name));\n};\n\nexport class AcoApp implements IAcoApp {\n public readonly name: string;\n public readonly context: AcoContext;\n public readonly model: CmsModel;\n private readonly fields: CmsModelField[];\n\n public get search(): AcoSearchRecordCrudBase {\n return {\n create: async <TData>(data: CreateSearchRecordParams<TData>) => {\n return this.context.aco.search.create<TData>(this.model, data);\n },\n update: async <TData>(id: string, data: SearchRecord<TData>) => {\n /**\n * Required to have as any atm as TS is breaking on the return type.\n */\n return (await this.context.aco.search.update<TData>(this.model, id, data)) as any;\n },\n move: async (id: string, folderId?: string) => {\n return this.context.aco.search.move(this.model, id, folderId);\n },\n get: async <TData>(id: string) => {\n return this.context.aco.search.get<TData>(this.model, id);\n },\n list: async <TData>(params: ListSearchRecordsParams) => {\n return this.context.aco.search.list<TData>(this.model, params);\n },\n delete: async (id: string): Promise<Boolean> => {\n return this.context.aco.search.delete(this.model, id);\n },\n listTags: async (params: ListSearchRecordTagsParams) => {\n return this.context.aco.search.listTags(this.model, params);\n }\n };\n }\n\n public get folder() {\n return this.context.aco.folder;\n }\n\n private constructor(context: AcoContext, params: IAcoAppParams) {\n this.context = context;\n this.name = params.name;\n this.model = structuredClone(params.model);\n /**\n * We can safely define the api name of the model as we control everything here.\n */\n this.model.name = `${this.model.name} ${this.name}`;\n this.model.modelId = `${this.model.modelId}-${this.name.toLowerCase()}`;\n const apiName = `AcoSearchRecord${createApiName(params.apiName)}`;\n this.model.singularApiName = apiName;\n this.model.pluralApiName = apiName;\n\n const index = this.model.fields.findIndex(f => f.fieldId === \"data\");\n if (index === -1) {\n throw new WebinyError(\n `The \"data\" field does not exist in model \"${this.model.modelId}\".`,\n \"MODEL_DATA_FIELD_ERROR\",\n {\n modelId: this.model.modelId\n }\n );\n } else if (!this.model.fields[index].settings?.fields) {\n this.model.fields[index].settings!.fields = [];\n }\n this.fields = this.model.fields[index].settings!.fields as CmsModelField[];\n this.fields.push(...params.fields);\n }\n\n public static create(context: AcoContext, params: IAcoAppParams) {\n return new AcoApp(context, params);\n }\n\n public getFields(): CmsModelField[] {\n return this.fields;\n }\n\n public addField(field: CmsModelField): void {\n this.fields.push(field);\n }\n\n public removeField(id: string): void {\n if (DEFAULT_FIELDS.includes(id)) {\n throw new WebinyError(\n `Cannot remove the default field from the ACO App.`,\n \"REMOVE_DEFAULT_FIELD_ERROR\",\n {\n fieldId: id\n }\n );\n }\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n return;\n }\n this.fields.splice(index, 1);\n }\n\n public modifyField(id: string, cb: IAcoAppModifyFieldCallableCallback): void {\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n throw new WebinyError(\n `There is no field \"${id}\" in app \"${this.name}\".`,\n \"FIELD_NOT_FOUND_ERROR\",\n {\n id\n }\n );\n }\n this.fields[index] = cb(structuredClone(this.fields[index]));\n }\n}\n"],"mappings":"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"}
|
package/apps/AcoApps.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from "../types";
|
|
2
|
-
export declare class AcoApps implements IAcoApps {
|
|
3
|
-
private readonly apps;
|
|
4
|
-
private readonly context;
|
|
5
|
-
private readonly options;
|
|
6
|
-
constructor(context: AcoContext, options: IAcoAppsOptions);
|
|
7
|
-
get(name: string): IAcoApp;
|
|
8
|
-
list(): IAcoApp[];
|
|
9
|
-
register(options: IAcoAppParams): Promise<IAcoApp>;
|
|
10
|
-
}
|
package/apps/AcoApps.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.AcoApps = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
-
var _AcoApp = require("./AcoApp");
|
|
12
|
-
var _plugins = require("../plugins");
|
|
13
|
-
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
14
|
-
var _record = require("../record/record.gql");
|
|
15
|
-
class AcoApps {
|
|
16
|
-
constructor(context, options) {
|
|
17
|
-
(0, _defineProperty2.default)(this, "apps", new Map());
|
|
18
|
-
(0, _defineProperty2.default)(this, "context", void 0);
|
|
19
|
-
(0, _defineProperty2.default)(this, "options", void 0);
|
|
20
|
-
this.context = context;
|
|
21
|
-
this.options = options;
|
|
22
|
-
}
|
|
23
|
-
get(name) {
|
|
24
|
-
const app = this.apps.get(name);
|
|
25
|
-
if (app) {
|
|
26
|
-
return app;
|
|
27
|
-
}
|
|
28
|
-
throw new _error.default(`App "${name}" is not registered.`, "APP_NOT_REGISTERED", {
|
|
29
|
-
name,
|
|
30
|
-
apps: Array.from(this.apps.keys())
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
list() {
|
|
34
|
-
return Array.from(this.apps.values());
|
|
35
|
-
}
|
|
36
|
-
async register(options) {
|
|
37
|
-
const exists = this.apps.has(options.name);
|
|
38
|
-
if (exists) {
|
|
39
|
-
throw new _error.default(`An app with the name "${options.name}" is already registered.`, "APP_EXISTS", {
|
|
40
|
-
name: options.name
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* We need to create the app and run the modifiers on it.
|
|
45
|
-
*/
|
|
46
|
-
const app = _AcoApp.AcoApp.create(this.context, options);
|
|
47
|
-
const modifiers = this.context.plugins.byType(_plugins.AcoAppModifierPlugin.type);
|
|
48
|
-
for (const modifier of modifiers) {
|
|
49
|
-
if (modifier.canUse(app) === false) {
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
await modifier.modify({
|
|
53
|
-
context: this.context,
|
|
54
|
-
app
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Also, we need to register the app model as the plugin one, so it can be used in the CMS.
|
|
59
|
-
* We do not need to validate model or show it in the API.
|
|
60
|
-
*/
|
|
61
|
-
this.context.plugins.register(new _apiHeadlessCms.CmsModelPlugin((0, _objectSpread2.default)((0, _objectSpread2.default)({}, app.model), {}, {
|
|
62
|
-
singularApiName: undefined,
|
|
63
|
-
pluralApiName: undefined,
|
|
64
|
-
isPrivate: true,
|
|
65
|
-
noValidate: true
|
|
66
|
-
})));
|
|
67
|
-
this.apps.set(app.name, app);
|
|
68
|
-
const searchRecordSchema = await (0, _record.createSchema)({
|
|
69
|
-
context: this.context,
|
|
70
|
-
app
|
|
71
|
-
});
|
|
72
|
-
this.context.plugins.register(searchRecordSchema);
|
|
73
|
-
return app;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.AcoApps = AcoApps;
|
package/apps/AcoApps.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["AcoApps","constructor","context","options","Map","get","name","app","apps","WebinyError","Array","from","keys","list","values","register","exists","has","AcoApp","create","modifiers","plugins","byType","AcoAppModifierPlugin","type","modifier","canUse","modify","CmsModelPlugin","model","singularApiName","undefined","pluralApiName","isPrivate","noValidate","set","searchRecordSchema","createSchema"],"sources":["AcoApps.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoApp } from \"./AcoApp\";\nimport { AcoAppModifierPlugin } from \"~/plugins\";\nimport { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from \"~/types\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms\";\nimport { createSchema } from \"~/record/record.gql\";\n\nexport class AcoApps implements IAcoApps {\n private readonly apps: Map<string, IAcoApp> = new Map();\n private readonly context: AcoContext;\n private readonly options: IAcoAppsOptions;\n\n public constructor(context: AcoContext, options: IAcoAppsOptions) {\n this.context = context;\n this.options = options;\n }\n\n public get(name: string): IAcoApp {\n const app = this.apps.get(name);\n if (app) {\n return app;\n }\n throw new WebinyError(`App \"${name}\" is not registered.`, \"APP_NOT_REGISTERED\", {\n name,\n apps: Array.from(this.apps.keys())\n });\n }\n\n public list(): IAcoApp[] {\n return Array.from(this.apps.values());\n }\n\n public async register(options: IAcoAppParams): Promise<IAcoApp> {\n const exists = this.apps.has(options.name);\n if (exists) {\n throw new WebinyError(\n `An app with the name \"${options.name}\" is already registered.`,\n \"APP_EXISTS\",\n {\n name: options.name\n }\n );\n }\n /**\n * We need to create the app and run the modifiers on it.\n */\n const app = AcoApp.create(this.context, options);\n const modifiers = this.context.plugins.byType<AcoAppModifierPlugin>(\n AcoAppModifierPlugin.type\n );\n for (const modifier of modifiers) {\n if (modifier.canUse(app) === false) {\n continue;\n }\n await modifier.modify({\n context: this.context,\n app\n });\n }\n /**\n * Also, we need to register the app model as the plugin one, so it can be used in the CMS.\n * We do not need to validate model or show it in the API.\n */\n this.context.plugins.register(\n new CmsModelPlugin({\n ...app.model,\n singularApiName: undefined,\n pluralApiName: undefined,\n isPrivate: true,\n noValidate: true\n })\n );\n this.apps.set(app.name, app);\n\n const searchRecordSchema = await createSchema({\n context: this.context,\n app\n });\n this.context.plugins.register(searchRecordSchema);\n\n return app;\n }\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAEA;AACA;AAEO,MAAMA,OAAO,CAAqB;EAK9BC,WAAW,CAACC,OAAmB,EAAEC,OAAwB,EAAE;IAAA,4CAJpB,IAAIC,GAAG,EAAE;IAAA;IAAA;IAKnD,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEOE,GAAG,CAACC,IAAY,EAAW;IAC9B,MAAMC,GAAG,GAAG,IAAI,CAACC,IAAI,CAACH,GAAG,CAACC,IAAI,CAAC;IAC/B,IAAIC,GAAG,EAAE;MACL,OAAOA,GAAG;IACd;IACA,MAAM,IAAIE,cAAW,CAAE,QAAOH,IAAK,sBAAqB,EAAE,oBAAoB,EAAE;MAC5EA,IAAI;MACJE,IAAI,EAAEE,KAAK,CAACC,IAAI,CAAC,IAAI,CAACH,IAAI,CAACI,IAAI,EAAE;IACrC,CAAC,CAAC;EACN;EAEOC,IAAI,GAAc;IACrB,OAAOH,KAAK,CAACC,IAAI,CAAC,IAAI,CAACH,IAAI,CAACM,MAAM,EAAE,CAAC;EACzC;EAEA,MAAaC,QAAQ,CAACZ,OAAsB,EAAoB;IAC5D,MAAMa,MAAM,GAAG,IAAI,CAACR,IAAI,CAACS,GAAG,CAACd,OAAO,CAACG,IAAI,CAAC;IAC1C,IAAIU,MAAM,EAAE;MACR,MAAM,IAAIP,cAAW,CAChB,yBAAwBN,OAAO,CAACG,IAAK,0BAAyB,EAC/D,YAAY,EACZ;QACIA,IAAI,EAAEH,OAAO,CAACG;MAClB,CAAC,CACJ;IACL;IACA;AACR;AACA;IACQ,MAAMC,GAAG,GAAGW,cAAM,CAACC,MAAM,CAAC,IAAI,CAACjB,OAAO,EAAEC,OAAO,CAAC;IAChD,MAAMiB,SAAS,GAAG,IAAI,CAAClB,OAAO,CAACmB,OAAO,CAACC,MAAM,CACzCC,6BAAoB,CAACC,IAAI,CAC5B;IACD,KAAK,MAAMC,QAAQ,IAAIL,SAAS,EAAE;MAC9B,IAAIK,QAAQ,CAACC,MAAM,CAACnB,GAAG,CAAC,KAAK,KAAK,EAAE;QAChC;MACJ;MACA,MAAMkB,QAAQ,CAACE,MAAM,CAAC;QAClBzB,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBK;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;IACQ,IAAI,CAACL,OAAO,CAACmB,OAAO,CAACN,QAAQ,CACzB,IAAIa,8BAAc,6DACXrB,GAAG,CAACsB,KAAK;MACZC,eAAe,EAAEC,SAAS;MAC1BC,aAAa,EAAED,SAAS;MACxBE,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE;IAAI,GAClB,CACL;IACD,IAAI,CAAC1B,IAAI,CAAC2B,GAAG,CAAC5B,GAAG,CAACD,IAAI,EAAEC,GAAG,CAAC;IAE5B,MAAM6B,kBAAkB,GAAG,MAAM,IAAAC,oBAAY,EAAC;MAC1CnC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBK;IACJ,CAAC,CAAC;IACF,IAAI,CAACL,OAAO,CAACmB,OAAO,CAACN,QAAQ,CAACqB,kBAAkB,CAAC;IAEjD,OAAO7B,GAAG;EACd;AACJ;AAAC"}
|
package/apps/app.gql.d.ts
DELETED