@webiny/api-aco 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.e9333b3f0b
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 +132 -0
- package/AcoFeature.js.map +1 -0
- package/AcoFolderSchemaFactory.d.ts +32 -0
- package/AcoFolderSchemaFactory.js +82 -0
- package/AcoFolderSchemaFactory.js.map +1 -0
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- package/createAcoGraphQL.d.ts +8 -4
- package/createAcoGraphQL.js +56 -97
- package/createAcoGraphQL.js.map +1 -1
- package/domain/folder/abstractions.d.ts +12 -5
- 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 +53 -36
- package/domain/folder/folder.model.js.map +1 -1
- package/exports/api/aco/flp.d.ts +1 -0
- package/exports/api/aco/flp.js +1 -2
- package/exports/api/aco/folder.d.ts +2 -1
- package/exports/api/aco/folder.js +5 -7
- package/features/ai/CreateFolderTool.d.ts +51 -0
- package/features/ai/CreateFolderTool.js +65 -0
- package/features/ai/CreateFolderTool.js.map +1 -0
- package/features/ai/CreateTeamTool.d.ts +48 -0
- package/features/ai/CreateTeamTool.js +56 -0
- package/features/ai/CreateTeamTool.js.map +1 -0
- package/features/ai/DeleteFolderTool.d.ts +50 -0
- package/features/ai/DeleteFolderTool.js +62 -0
- package/features/ai/DeleteFolderTool.js.map +1 -0
- package/features/ai/GrantFolderAccessTool.d.ts +79 -0
- package/features/ai/GrantFolderAccessTool.js +87 -0
- package/features/ai/GrantFolderAccessTool.js.map +1 -0
- package/features/ai/ListFoldersTool.d.ts +47 -0
- package/features/ai/ListFoldersTool.js +57 -0
- package/features/ai/ListFoldersTool.js.map +1 -0
- package/features/ai/ListRolesTool.d.ts +39 -0
- package/features/ai/ListRolesTool.js +48 -0
- package/features/ai/ListRolesTool.js.map +1 -0
- package/features/ai/ListTeamsTool.d.ts +39 -0
- package/features/ai/ListTeamsTool.js +48 -0
- package/features/ai/ListTeamsTool.js.map +1 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.d.ts +11 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js +37 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js.map +1 -0
- package/features/ai/NotifyFolderChange/abstractions.d.ts +20 -0
- package/features/ai/NotifyFolderChange/abstractions.js +8 -0
- package/features/ai/NotifyFolderChange/abstractions.js.map +1 -0
- package/features/ai/NotifyFolderChange/index.d.ts +1 -0
- package/features/ai/NotifyFolderChange/index.js +1 -0
- package/features/ai/RevokeFolderAccessTool.d.ts +65 -0
- package/features/ai/RevokeFolderAccessTool.js +76 -0
- package/features/ai/RevokeFolderAccessTool.js.map +1 -0
- package/features/ai/assertTargetIsUsable.d.ts +10 -0
- package/features/ai/assertTargetIsUsable.js +14 -0
- package/features/ai/assertTargetIsUsable.js.map +1 -0
- package/features/ai/feature.d.ts +12 -0
- package/features/ai/feature.js +27 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +9 -0
- package/features/ai/index.js +9 -0
- package/features/ai/loadFolderPermissions.d.ts +16 -0
- package/features/ai/loadFolderPermissions.js +14 -0
- package/features/ai/loadFolderPermissions.js.map +1 -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 +28 -28
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +28 -27
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +28 -28
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +28 -28
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +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.js +19 -25
- package/features/cms/feature.js.map +1 -1
- package/features/cms/index.js +0 -2
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +3 -3
- package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
- package/features/flp/CreateFlp/abstractions.js +2 -5
- package/features/flp/CreateFlp/abstractions.js.map +1 -1
- package/features/flp/CreateFlp/feature.d.ts +1 -6
- package/features/flp/CreateFlp/feature.js +8 -8
- package/features/flp/CreateFlp/feature.js.map +1 -1
- package/features/flp/CreateFlp/index.js +0 -2
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +27 -27
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -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.d.ts +3 -3
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
- package/features/flp/DeleteFlp/abstractions.js +2 -5
- package/features/flp/DeleteFlp/abstractions.js.map +1 -1
- package/features/flp/DeleteFlp/feature.d.ts +1 -6
- package/features/flp/DeleteFlp/feature.js +8 -8
- package/features/flp/DeleteFlp/feature.js.map +1 -1
- package/features/flp/DeleteFlp/index.js +0 -2
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +27 -27
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -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 +88 -109
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
- 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.js +2 -2
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/feature.js +6 -5
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
- package/features/flp/FolderLevelPermissions/index.d.ts +1 -0
- package/features/flp/FolderLevelPermissions/index.js +1 -2
- 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.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.js +10 -9
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
- 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.js +2 -2
- package/features/flp/GetFlp/abstractions.js.map +1 -1
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.d.ts +13 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js +26 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +1 -1
- package/features/flp/GetFlp/feature.js +8 -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.js +2 -2
- package/features/flp/ListFlps/abstractions.js.map +1 -1
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.d.ts +13 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js +27 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +1 -1
- package/features/flp/ListFlps/feature.js +8 -8
- package/features/flp/ListFlps/feature.js.map +1 -1
- package/features/flp/ListFlps/index.js +0 -2
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +15 -8
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +130 -186
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
- package/features/flp/UpdateFlp/abstractions.d.ts +6 -2
- package/features/flp/UpdateFlp/abstractions.js +2 -5
- package/features/flp/UpdateFlp/abstractions.js.map +1 -1
- package/features/flp/UpdateFlp/feature.d.ts +1 -6
- package/features/flp/UpdateFlp/feature.js +12 -8
- package/features/flp/UpdateFlp/feature.js.map +1 -1
- package/features/flp/UpdateFlp/index.js +0 -2
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +29 -29
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -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/flp/shared/CodeFlpMerger.d.ts +26 -0
- package/features/flp/shared/CodeFlpMerger.js +20 -0
- package/features/flp/shared/CodeFlpMerger.js.map +1 -0
- package/features/flp/shared/CodeFlpPath.d.ts +15 -0
- package/features/flp/shared/CodeFlpPath.js +29 -0
- package/features/flp/shared/CodeFlpPath.js.map +1 -0
- package/features/flp/shared/CodeFlpTarget.d.ts +10 -0
- package/features/flp/shared/CodeFlpTarget.js +26 -0
- package/features/flp/shared/CodeFlpTarget.js.map +1 -0
- package/features/flp/shared/CodeFlpsProvider.d.ts +14 -0
- package/features/flp/shared/CodeFlpsProvider.js +33 -0
- package/features/flp/shared/CodeFlpsProvider.js.map +1 -0
- package/features/flp/shared/abstractions.d.ts +77 -0
- package/features/flp/shared/abstractions.js +19 -0
- package/features/flp/shared/abstractions.js.map +1 -0
- package/features/flp/shared/feature.d.ts +5 -0
- package/features/flp/shared/feature.js +17 -0
- package/features/flp/shared/feature.js.map +1 -0
- package/features/flp/shared/index.d.ts +4 -0
- package/features/flp/shared/index.js +4 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +3 -3
- package/features/folder/CreateFolder/CreateFolderRepository.js +71 -91
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
- package/features/folder/CreateFolder/CreateFolderUseCase.js +27 -30
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
- package/features/folder/CreateFolder/abstractions.js +5 -22
- package/features/folder/CreateFolder/abstractions.js.map +1 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +9 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +45 -33
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/CreateFolder/events.js +16 -14
- package/features/folder/CreateFolder/events.js.map +1 -1
- package/features/folder/CreateFolder/feature.js +8 -7
- package/features/folder/CreateFolder/feature.js.map +1 -1
- package/features/folder/CreateFolder/index.js +1 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +3 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +24 -21
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +35 -43
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
- package/features/folder/DeleteFolder/abstractions.js +5 -22
- package/features/folder/DeleteFolder/abstractions.js.map +1 -1
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +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.js +16 -14
- package/features/folder/DeleteFolder/events.js.map +1 -1
- package/features/folder/DeleteFolder/feature.js +8 -7
- package/features/folder/DeleteFolder/feature.js.map +1 -1
- package/features/folder/DeleteFolder/index.js +1 -3
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +47 -44
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -2
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -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.js +16 -20
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -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.js +40 -44
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -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/FolderModelProvider.d.ts +26 -0
- package/features/folder/FolderModelProvider.js +22 -0
- package/features/folder/FolderModelProvider.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +3 -3
- package/features/folder/GetAncestors/GetAncestorsRepository.js +47 -76
- 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.js +3 -14
- package/features/folder/GetAncestors/abstractions.js.map +1 -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.d.ts +3 -3
- package/features/folder/GetFolder/GetFolderRepository.js +23 -20
- 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.js +5 -21
- package/features/folder/GetFolder/abstractions.js.map +1 -1
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +8 -8
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/GetFolder/feature.js +8 -7
- package/features/folder/GetFolder/feature.js.map +1 -1
- package/features/folder/GetFolder/index.js +0 -2
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +3 -3
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +70 -87
- 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.js +3 -14
- 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.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.js +65 -58
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -5
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -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.d.ts +3 -3
- package/features/folder/ListFolders/ListFoldersRepository.js +41 -42
- 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.js +3 -14
- 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.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.d.ts +3 -3
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +70 -93
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +38 -45
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
- package/features/folder/UpdateFolder/abstractions.js +5 -22
- package/features/folder/UpdateFolder/abstractions.js.map +1 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +14 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +91 -62
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/UpdateFolder/events.js +16 -14
- package/features/folder/UpdateFolder/events.js.map +1 -1
- package/features/folder/UpdateFolder/feature.js +8 -7
- package/features/folder/UpdateFolder/feature.js.map +1 -1
- package/features/folder/UpdateFolder/index.js +0 -2
- package/features/folder/shared/EntryToFolderMapper.js +20 -19
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
- package/features/folder/shared/abstractions.d.ts +14 -0
- package/features/folder/shared/abstractions.js +5 -2
- 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.d.ts +2 -3
- package/filter/filter.gql.js +72 -54
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js +45 -35
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.d.ts +8 -2
- package/filter/filter.so.js +85 -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.types.d.ts +2 -1
- package/flp/flp.types.js +0 -3
- package/flp/index.d.ts +0 -1
- package/flp/index.js +0 -3
- package/flp/tasks/createFlp.task.d.ts +14 -8
- package/flp/tasks/createFlp.task.js +37 -28
- package/flp/tasks/createFlp.task.js.map +1 -1
- package/flp/tasks/deleteFlp.task.d.ts +14 -8
- package/flp/tasks/deleteFlp.task.js +37 -28
- package/flp/tasks/deleteFlp.task.js.map +1 -1
- package/flp/tasks/index.d.ts +0 -1
- package/flp/tasks/index.js +5 -17
- package/flp/tasks/index.js.map +1 -1
- package/flp/tasks/syncFlp.task.d.ts +14 -8
- package/flp/tasks/syncFlp.task.js +107 -114
- package/flp/tasks/syncFlp.task.js.map +1 -1
- package/flp/tasks/updateFlp.task.d.ts +14 -8
- package/flp/tasks/updateFlp.task.js +48 -33
- 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.js +43 -51
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/folder.gql.d.ts +1 -1
- package/folder/folder.gql.js +109 -136
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.js +0 -3
- package/index.d.ts +1 -6
- package/index.js +2 -9
- package/package.json +30 -29
- package/types.d.ts +1 -1
- 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.d.ts +5 -2
- package/utils/createOperationsWrapper.js +12 -19
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +169 -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.d.ts +2 -2
- package/utils/resolve.js +8 -7
- package/utils/resolve.js.map +1 -1
- package/createAcoContext.d.ts +0 -9
- package/createAcoContext.js +0 -137
- package/createAcoContext.js.map +0 -1
- package/createAcoStorageOperations.d.ts +0 -12
- package/createAcoStorageOperations.js +0 -10
- package/createAcoStorageOperations.js.map +0 -1
- package/createAcoTasks.d.ts +0 -1
- package/createAcoTasks.js +0 -15
- package/createAcoTasks.js.map +0 -1
- package/exports/api/aco/flp.js.map +0 -1
- package/exports/api/aco/folder.js.map +0 -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.so.d.ts +0 -20
- package/flp/flp.so.js +0 -220
- package/flp/flp.so.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/index.js.map +0 -1
package/domain/folder/errors.js
CHANGED
|
@@ -1,56 +1,51 @@
|
|
|
1
1
|
import { BaseError } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
}
|
|
2
|
+
class FolderNotFoundError extends BaseError {
|
|
3
|
+
constructor(id){
|
|
4
|
+
super({
|
|
5
|
+
message: "Folder not found!",
|
|
6
|
+
data: {
|
|
7
|
+
folder: {
|
|
8
|
+
id
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}), this.code = "Aco/Folder/NotFound";
|
|
12
|
+
}
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
}
|
|
14
|
+
class FolderNotAuthorizedError extends BaseError {
|
|
15
|
+
constructor(){
|
|
16
|
+
super({
|
|
17
|
+
message: "Not authorized."
|
|
18
|
+
}), this.code = "Aco/Folder/NotAuthorizedError";
|
|
19
|
+
}
|
|
22
20
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
}
|
|
21
|
+
class FolderPersistenceError extends BaseError {
|
|
22
|
+
constructor(error){
|
|
23
|
+
super({
|
|
24
|
+
message: error.message
|
|
25
|
+
}), this.code = "Aco/Folder/PersistenceError";
|
|
26
|
+
}
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
}
|
|
28
|
+
class FolderValidationError extends BaseError {
|
|
29
|
+
constructor(message){
|
|
30
|
+
super({
|
|
31
|
+
message
|
|
32
|
+
}), this.code = "Aco/Folder/ValidationError";
|
|
33
|
+
}
|
|
38
34
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
}
|
|
35
|
+
class FolderCannotMoveToNewParent extends BaseError {
|
|
36
|
+
constructor(){
|
|
37
|
+
super({
|
|
38
|
+
message: "Cannot move folder to a new parent because you don't have access to the new parent."
|
|
39
|
+
}), this.code = "Aco/Folder/CannotMoveToNewParent";
|
|
40
|
+
}
|
|
46
41
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
}
|
|
42
|
+
class FolderNotEmptyError extends BaseError {
|
|
43
|
+
constructor(){
|
|
44
|
+
super({
|
|
45
|
+
message: "Folder is not empty."
|
|
46
|
+
}), this.code = "Aco/Folder/NotEmpty";
|
|
47
|
+
}
|
|
54
48
|
}
|
|
49
|
+
export { FolderCannotMoveToNewParent, FolderNotAuthorizedError, FolderNotEmptyError, FolderNotFoundError, FolderPersistenceError, FolderValidationError };
|
|
55
50
|
|
|
56
51
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/folder/errors.js","sources":["../../../src/domain/folder/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class FolderNotFoundError extends BaseError<{ folder: { id: string } }> {\n override readonly code = \"Aco/Folder/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Folder not found!\",\n data: {\n folder: {\n id\n }\n }\n });\n }\n}\n\nexport class FolderNotAuthorizedError extends BaseError {\n override readonly code = \"Aco/Folder/NotAuthorizedError\" as const;\n\n constructor() {\n super({\n message: `Not authorized.`\n });\n }\n}\n\nexport class FolderPersistenceError extends BaseError {\n override readonly code = \"Aco/Folder/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({\n message: error.message\n });\n }\n}\n\nexport class FolderValidationError extends BaseError {\n override readonly code = \"Aco/Folder/ValidationError\" as const;\n\n constructor(message: string) {\n super({\n message\n });\n }\n}\n\nexport class FolderCannotMoveToNewParent extends BaseError {\n override readonly code = \"Aco/Folder/CannotMoveToNewParent\" as const;\n\n constructor() {\n super({\n message: `Cannot move folder to a new parent because you don't have access to the new parent.`\n });\n }\n}\n\nexport class FolderNotEmptyError extends BaseError {\n override readonly code = \"Aco/Folder/NotEmpty\" as const;\n\n constructor() {\n super({\n message: `Folder is not empty.`\n });\n }\n}\n"],"names":["FolderNotFoundError","BaseError","id","FolderNotAuthorizedError","FolderPersistenceError","error","FolderValidationError","message","FolderCannotMoveToNewParent","FolderNotEmptyError"],"mappings":";AAEO,MAAMA,4BAA4BC;IAGrC,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YACF,SAAS;YACT,MAAM;gBACF,QAAQ;oBACJA;gBACJ;YACJ;QACJ,SAVc,IAAI,GAAG;IAWzB;AACJ;AAEO,MAAMC,iCAAiCF;IAG1C,aAAc;QACV,KAAK,CAAC;YACF,SAAS;QACb,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMG,+BAA+BH;IAGxC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YACF,SAASA,MAAM,OAAO;QAC1B,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMC,8BAA8BL;IAGvC,YAAYM,OAAe,CAAE;QACzB,KAAK,CAAC;YACFA;QACJ,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMC,oCAAoCP;IAG7C,aAAc;QACV,KAAK,CAAC;YACF,SAAS;QACb,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMQ,4BAA4BR;IAGrC,aAAc;QACV,KAAK,CAAC;YACF,SAAS;QACb,SALc,IAAI,GAAG;IAMzB;AACJ"}
|
|
@@ -1,42 +1,59 @@
|
|
|
1
1
|
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
-
|
|
2
|
+
const FOLDER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "acoFolder" : "wbyAcoFolder";
|
|
3
3
|
class FolderPrivateModelImpl {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
return [
|
|
6
|
+
builder.private({
|
|
7
|
+
modelId: FOLDER_MODEL_ID,
|
|
8
|
+
name: "ACO - Folder",
|
|
9
|
+
lifecycleEvents: false
|
|
10
|
+
}).fields((fields)=>({
|
|
11
|
+
title: fields.text().label("Title").required("Value is required."),
|
|
12
|
+
slug: fields.text().label("Slug").required("Value is required.").pattern("^[a-z0-9]+(-[a-z0-9]+)*$", "g", "Value must consist of only 'a-z', '0-9' and '-'."),
|
|
13
|
+
type: fields.text().label("Type").required("Value is required."),
|
|
14
|
+
parentId: fields.text().label("Parent Id"),
|
|
15
|
+
path: fields.text().label("Path"),
|
|
16
|
+
permissions: fields.object().label("Permissions").list().fields((fields)=>({
|
|
17
|
+
target: fields.text().label("Target").required("Value is required."),
|
|
18
|
+
level: fields.text().label("Level").required("Value is required.").predefinedValues([
|
|
19
|
+
{
|
|
20
|
+
label: "Viewer",
|
|
21
|
+
value: "viewer"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: "Editor",
|
|
25
|
+
value: "editor"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: "Owner",
|
|
29
|
+
value: "owner"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: "Public",
|
|
33
|
+
value: "public"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: "No Access",
|
|
37
|
+
value: "no-access"
|
|
38
|
+
}
|
|
39
|
+
])
|
|
40
|
+
})).layout([
|
|
41
|
+
[
|
|
42
|
+
"target"
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
"level"
|
|
46
|
+
]
|
|
47
|
+
]),
|
|
48
|
+
extensions: fields.object().label("Extensions")
|
|
49
|
+
}))
|
|
50
|
+
];
|
|
51
|
+
}
|
|
36
52
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
const FolderModel = ModelFactory.createImplementation({
|
|
54
|
+
implementation: FolderPrivateModelImpl,
|
|
55
|
+
dependencies: []
|
|
40
56
|
});
|
|
57
|
+
export { FOLDER_MODEL_ID, FolderModel };
|
|
41
58
|
|
|
42
59
|
//# sourceMappingURL=folder.model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/folder/folder.model.js","sources":["../../../src/domain/folder/folder.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\n\nexport const FOLDER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"acoFolder\" : \"wbyAcoFolder\";\n\nclass FolderPrivateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: FOLDER_MODEL_ID,\n name: \"ACO - Folder\",\n lifecycleEvents: false\n })\n .fields(fields => ({\n title: fields.text().label(\"Title\").required(\"Value is required.\"),\n slug: fields\n .text()\n .label(\"Slug\")\n .required(\"Value is required.\")\n .pattern(\n \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n \"g\",\n \"Value must consist of only 'a-z', '0-9' and '-'.\"\n ),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n parentId: fields.text().label(\"Parent Id\"),\n path: fields.text().label(\"Path\"),\n permissions: fields\n .object()\n .label(\"Permissions\")\n .list()\n .fields(fields => ({\n target: fields.text().label(\"Target\").required(\"Value is required.\"),\n level: fields\n .text()\n .label(\"Level\")\n .required(\"Value is required.\")\n .predefinedValues([\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n },\n {\n label: \"No Access\",\n value: \"no-access\"\n }\n ])\n }))\n .layout([[\"target\"], [\"level\"]]),\n extensions: fields.object().label(\"Extensions\")\n }))\n ];\n }\n}\n\nexport const FolderModel = ModelFactory.createImplementation({\n implementation: FolderPrivateModelImpl,\n dependencies: []\n});\n"],"names":["FOLDER_MODEL_ID","process","FolderPrivateModelImpl","builder","fields","FolderModel","ModelFactory"],"mappings":";AAEO,MAAMA,kBAAkBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,cAAc;AAEpF,MAAMC;IACF,MAAa,QAAQC,OAA6B,EAAE;QAChD,OAAO;YACHA,QACK,OAAO,CAAC;gBACL,SAASH;gBACT,MAAM;gBACN,iBAAiB;YACrB,GACC,MAAM,CAACI,CAAAA,SAAW;oBACf,OAAOA,OAAO,IAAI,GAAG,KAAK,CAAC,SAAS,QAAQ,CAAC;oBAC7C,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,QAAQ,CAAC,sBACT,OAAO,CACJ,4BACA,KACA;oBAER,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;oBAC3C,UAAUA,OAAO,IAAI,GAAG,KAAK,CAAC;oBAC9B,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC;oBAC1B,aAAaA,OACR,MAAM,GACN,KAAK,CAAC,eACN,IAAI,GACJ,MAAM,CAACA,CAAAA,SAAW;4BACf,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC,UAAU,QAAQ,CAAC;4BAC/C,OAAOA,OACF,IAAI,GACJ,KAAK,CAAC,SACN,QAAQ,CAAC,sBACT,gBAAgB,CAAC;gCACd;oCACI,OAAO;oCACP,OAAO;gCACX;gCACA;oCACI,OAAO;oCACP,OAAO;gCACX;gCACA;oCACI,OAAO;oCACP,OAAO;gCACX;gCACA;oCACI,OAAO;oCACP,OAAO;gCACX;gCACA;oCACI,OAAO;oCACP,OAAO;gCACX;6BACH;wBACT,IACC,MAAM,CAAC;wBAAC;4BAAC;yBAAS;wBAAE;4BAAC;yBAAQ;qBAAC;oBACnC,YAAYA,OAAO,MAAM,GAAG,KAAK,CAAC;gBACtC;SACP;IACL;AACJ;AAEO,MAAMC,cAAcC,aAAa,oBAAoB,CAAC;IACzD,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
|
package/exports/api/aco/flp.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { FlpFactory } from "../../../features/flp/shared/abstractions.js";
|
|
1
2
|
export { CreateFlpUseCase } from "../../../features/flp/CreateFlp/abstractions.js";
|
|
2
3
|
export { DeleteFlpUseCase } from "../../../features/flp/DeleteFlp/abstractions.js";
|
|
3
4
|
export { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/abstractions.js";
|
package/exports/api/aco/flp.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
export { FlpFactory } from "../../../features/flp/shared/abstractions.js";
|
|
1
2
|
export { CreateFlpUseCase } from "../../../features/flp/CreateFlp/abstractions.js";
|
|
2
3
|
export { DeleteFlpUseCase } from "../../../features/flp/DeleteFlp/abstractions.js";
|
|
3
4
|
export { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/abstractions.js";
|
|
4
5
|
export { GetFlpUseCase } from "../../../features/flp/GetFlp/abstractions.js";
|
|
5
6
|
export { ListFlpsUseCase } from "../../../features/flp/ListFlps/abstractions.js";
|
|
6
7
|
export { UpdateFlpUseCase } from "../../../features/flp/UpdateFlp/abstractions.js";
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=flp.js.map
|
|
@@ -7,4 +7,5 @@ export { FolderAfterDeleteEventHandler, FolderBeforeDeleteEventHandler, DeleteFo
|
|
|
7
7
|
export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderRepository, UpdateFolderUseCase } from "../../../features/folder/UpdateFolder/abstractions.js";
|
|
8
8
|
export { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
|
|
9
9
|
export { ListFoldersUseCase, ListFoldersRepository } from "../../../features/folder/ListFolders/abstractions.js";
|
|
10
|
-
export { FilterStorageOperations } from "../../../features/folder/shared/abstractions.js";
|
|
10
|
+
export { FilterStorageOperations, FlpStorageOperations } from "../../../features/folder/shared/abstractions.js";
|
|
11
|
+
export type { Folder } from "../../../folder/folder.types.js";
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
export { GetAncestorsRepository, GetAncestorsUseCase } from "../../../features/folder/GetAncestors/abstractions.js";
|
|
2
|
-
export {
|
|
2
|
+
export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "../../../features/folder/GetFolder/abstractions.js";
|
|
3
3
|
export { GetFolderHierarchyRepository, GetFolderHierarchyUseCase } from "../../../features/folder/GetFolderHierarchy/abstractions.js";
|
|
4
4
|
export { ListFolderLevelPermissionsTargetsUseCase } from "../../../features/folder/ListFolderLevelPermissionsTargets/abstractions.js";
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
5
|
+
export { CreateFolderRepository, CreateFolderUseCase, FolderAfterCreateEventHandler, FolderBeforeCreateEventHandler } from "../../../features/folder/CreateFolder/abstractions.js";
|
|
6
|
+
export { DeleteFolderRepository, DeleteFolderUseCase, FolderAfterDeleteEventHandler, FolderBeforeDeleteEventHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
|
|
7
7
|
export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderRepository, UpdateFolderUseCase } from "../../../features/folder/UpdateFolder/abstractions.js";
|
|
8
8
|
export { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
|
|
9
|
-
export {
|
|
10
|
-
export { FilterStorageOperations } from "../../../features/folder/shared/abstractions.js";
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=folder.js.map
|
|
9
|
+
export { ListFoldersRepository, ListFoldersUseCase } from "../../../features/folder/ListFolders/abstractions.js";
|
|
10
|
+
export { FilterStorageOperations, FlpStorageOperations } from "../../../features/folder/shared/abstractions.js";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { NotifyFolderChangeUseCase } from "./NotifyFolderChange/index.js";
|
|
4
|
+
import { CreateFolderUseCase } from "../../features/folder/CreateFolder/index.js";
|
|
5
|
+
declare const inputSchema: z.ZodObject<{
|
|
6
|
+
title: z.ZodString;
|
|
7
|
+
slug: z.ZodString;
|
|
8
|
+
type: z.ZodString;
|
|
9
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
type Input = z.infer<typeof inputSchema>;
|
|
12
|
+
interface CreatedFolder {
|
|
13
|
+
id: string;
|
|
14
|
+
title: string;
|
|
15
|
+
slug: string;
|
|
16
|
+
path: string;
|
|
17
|
+
type: string;
|
|
18
|
+
}
|
|
19
|
+
declare class CreateFolderToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {
|
|
20
|
+
private createFolder;
|
|
21
|
+
private notifyFolderChange;
|
|
22
|
+
constructor(createFolder: CreateFolderUseCase.Interface, notifyFolderChange: NotifyFolderChangeUseCase.Interface);
|
|
23
|
+
execute(input: Input): Promise<CreatedFolder>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a folder.
|
|
27
|
+
*
|
|
28
|
+
* Additive and reversible, so it is not flagged destructive — but it still changes the project, so it
|
|
29
|
+
* is not read-only either and therefore needs the user to approve the exact arguments.
|
|
30
|
+
*/
|
|
31
|
+
declare class CreateFolderToolImpl implements AiSdkToolDefinition.Interface<Input> {
|
|
32
|
+
readonly name = "createFolder";
|
|
33
|
+
readonly title = "Create folder";
|
|
34
|
+
readonly description = "Creates a folder in the File Manager ('FmFile') or under a content model ('cms:<modelId>'). Call listFolders first to pick a parent, or omit parentId for the root. Requires user approval.";
|
|
35
|
+
readonly inputSchema: z.ZodObject<{
|
|
36
|
+
title: z.ZodString;
|
|
37
|
+
slug: z.ZodString;
|
|
38
|
+
type: z.ZodString;
|
|
39
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
readonly annotations: {
|
|
42
|
+
readOnlyHint: boolean;
|
|
43
|
+
};
|
|
44
|
+
readonly handler: typeof CreateFolderToolHandlerImpl & {
|
|
45
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions.js").IAiSdkToolHandler<any>>;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export declare const CreateFolderTool: typeof CreateFolderToolImpl & {
|
|
49
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions.js").IAiSdkToolDefinition<any>>;
|
|
50
|
+
};
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { NotifyFolderChangeUseCase } from "./NotifyFolderChange/index.js";
|
|
4
|
+
import { CreateFolderUseCase } from "../folder/CreateFolder/index.js";
|
|
5
|
+
const inputSchema = z.object({
|
|
6
|
+
title: z.string().describe("Human-readable folder name, e.g. 'Marketing'."),
|
|
7
|
+
slug: z.string().describe("URL-safe identifier, e.g. 'marketing'. Lowercase, hyphens instead of spaces."),
|
|
8
|
+
type: z.string().describe("Folder namespace: 'FmFile' for File Manager, or 'cms:<modelId>' for a content model's folders."),
|
|
9
|
+
parentId: z.string().optional().describe("Id of the parent folder. Omit to create at the root of that namespace.")
|
|
10
|
+
});
|
|
11
|
+
class CreateFolderToolHandlerImpl {
|
|
12
|
+
constructor(createFolder, notifyFolderChange){
|
|
13
|
+
this.createFolder = createFolder;
|
|
14
|
+
this.notifyFolderChange = notifyFolderChange;
|
|
15
|
+
}
|
|
16
|
+
async execute(input) {
|
|
17
|
+
const params = {
|
|
18
|
+
title: input.title,
|
|
19
|
+
slug: input.slug,
|
|
20
|
+
type: input.type,
|
|
21
|
+
parentId: null
|
|
22
|
+
};
|
|
23
|
+
if (input.parentId) params.parentId = input.parentId;
|
|
24
|
+
const result = await this.createFolder.execute(params);
|
|
25
|
+
if (result.isFail()) throw new Error(`Could not create the folder: ${result.error.message}`);
|
|
26
|
+
const folder = result.value;
|
|
27
|
+
await this.notifyFolderChange.execute({
|
|
28
|
+
id: folder.id,
|
|
29
|
+
change: "created"
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
id: folder.id,
|
|
33
|
+
title: folder.title,
|
|
34
|
+
slug: folder.slug,
|
|
35
|
+
path: folder.path,
|
|
36
|
+
type: folder.type
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const CreateFolderToolHandler = AiSdkToolHandler.createImplementation({
|
|
41
|
+
implementation: CreateFolderToolHandlerImpl,
|
|
42
|
+
dependencies: [
|
|
43
|
+
CreateFolderUseCase,
|
|
44
|
+
NotifyFolderChangeUseCase
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
class CreateFolderToolImpl {
|
|
48
|
+
constructor(){
|
|
49
|
+
this.name = "createFolder";
|
|
50
|
+
this.title = "Create folder";
|
|
51
|
+
this.description = "Creates a folder in the File Manager ('FmFile') or under a content model ('cms:<modelId>'). Call listFolders first to pick a parent, or omit parentId for the root. Requires user approval.";
|
|
52
|
+
this.inputSchema = inputSchema;
|
|
53
|
+
this.annotations = {
|
|
54
|
+
readOnlyHint: false
|
|
55
|
+
};
|
|
56
|
+
this.handler = CreateFolderToolHandler;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const CreateFolderTool = AiSdkToolDefinition.createImplementation({
|
|
60
|
+
implementation: CreateFolderToolImpl,
|
|
61
|
+
dependencies: []
|
|
62
|
+
});
|
|
63
|
+
export { CreateFolderTool };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=CreateFolderTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/ai/CreateFolderTool.js","sources":["../../../src/features/ai/CreateFolderTool.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiSdkToolDefinition, AiSdkToolHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { NotifyFolderChangeUseCase } from \"./NotifyFolderChange/index.js\";\nimport { CreateFolderUseCase } from \"~/features/folder/CreateFolder/index.js\";\n\nconst inputSchema = z.object({\n title: z.string().describe(\"Human-readable folder name, e.g. 'Marketing'.\"),\n slug: z\n .string()\n .describe(\"URL-safe identifier, e.g. 'marketing'. Lowercase, hyphens instead of spaces.\"),\n type: z\n .string()\n .describe(\n \"Folder namespace: 'FmFile' for File Manager, or 'cms:<modelId>' for a content model's folders.\"\n ),\n parentId: z\n .string()\n .optional()\n .describe(\"Id of the parent folder. Omit to create at the root of that namespace.\")\n});\n\ntype Input = z.infer<typeof inputSchema>;\n\ninterface CreatedFolder {\n id: string;\n title: string;\n slug: string;\n path: string;\n type: string;\n}\n\nclass CreateFolderToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {\n constructor(\n private createFolder: CreateFolderUseCase.Interface,\n private notifyFolderChange: NotifyFolderChangeUseCase.Interface\n ) {}\n\n async execute(input: Input): Promise<CreatedFolder> {\n const params: {\n title: string;\n slug: string;\n type: string;\n parentId: string | null;\n } = {\n title: input.title,\n slug: input.slug,\n type: input.type,\n parentId: null\n };\n\n if (input.parentId) {\n params.parentId = input.parentId;\n }\n\n const result = await this.createFolder.execute(params);\n\n if (result.isFail()) {\n throw new Error(`Could not create the folder: ${result.error.message}`);\n }\n\n const folder = result.value;\n\n await this.notifyFolderChange.execute({ id: folder.id, change: \"created\" });\n\n return {\n id: folder.id,\n title: folder.title,\n slug: folder.slug,\n path: folder.path,\n type: folder.type\n };\n }\n}\n\nconst CreateFolderToolHandler = AiSdkToolHandler.createImplementation({\n implementation: CreateFolderToolHandlerImpl,\n dependencies: [CreateFolderUseCase, NotifyFolderChangeUseCase]\n});\n\n/**\n * Creates a folder.\n *\n * Additive and reversible, so it is not flagged destructive — but it still changes the project, so it\n * is not read-only either and therefore needs the user to approve the exact arguments.\n */\nclass CreateFolderToolImpl implements AiSdkToolDefinition.Interface<Input> {\n readonly name = \"createFolder\";\n readonly title = \"Create folder\";\n readonly description =\n \"Creates a folder in the File Manager ('FmFile') or under a content model ('cms:<modelId>'). Call listFolders first to pick a parent, or omit parentId for the root. Requires user approval.\";\n readonly inputSchema = inputSchema;\n readonly annotations = { readOnlyHint: false };\n readonly handler = CreateFolderToolHandler;\n}\n\nexport const CreateFolderTool = AiSdkToolDefinition.createImplementation({\n implementation: CreateFolderToolImpl,\n dependencies: []\n});\n"],"names":["inputSchema","z","CreateFolderToolHandlerImpl","createFolder","notifyFolderChange","input","params","result","Error","folder","CreateFolderToolHandler","AiSdkToolHandler","CreateFolderUseCase","NotifyFolderChangeUseCase","CreateFolderToolImpl","CreateFolderTool","AiSdkToolDefinition"],"mappings":";;;;AAKA,MAAMA,cAAcC,EAAE,MAAM,CAAC;IACzB,OAAOA,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,MAAMA,EAAAA,MACK,GACN,QAAQ,CAAC;IACd,MAAMA,EAAAA,MACK,GACN,QAAQ,CACL;IAER,UAAUA,EAAAA,MACC,GACN,QAAQ,GACR,QAAQ,CAAC;AAClB;AAYA,MAAMC;IACF,YACYC,YAA2C,EAC3CC,kBAAuD,CACjE;aAFUD,YAAY,GAAZA;aACAC,kBAAkB,GAAlBA;IACT;IAEH,MAAM,QAAQC,KAAY,EAA0B;QAChD,MAAMC,SAKF;YACA,OAAOD,MAAM,KAAK;YAClB,MAAMA,MAAM,IAAI;YAChB,MAAMA,MAAM,IAAI;YAChB,UAAU;QACd;QAEA,IAAIA,MAAM,QAAQ,EACdC,OAAO,QAAQ,GAAGD,MAAM,QAAQ;QAGpC,MAAME,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD;QAE/C,IAAIC,OAAO,MAAM,IACb,MAAM,IAAIC,MAAM,CAAC,6BAA6B,EAAED,OAAO,KAAK,CAAC,OAAO,EAAE;QAG1E,MAAME,SAASF,OAAO,KAAK;QAE3B,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAAE,IAAIE,OAAO,EAAE;YAAE,QAAQ;QAAU;QAEzE,OAAO;YACH,IAAIA,OAAO,EAAE;YACb,OAAOA,OAAO,KAAK;YACnB,MAAMA,OAAO,IAAI;YACjB,MAAMA,OAAO,IAAI;YACjB,MAAMA,OAAO,IAAI;QACrB;IACJ;AACJ;AAEA,MAAMC,0BAA0BC,iBAAiB,oBAAoB,CAAC;IAClE,gBAAgBT;IAChB,cAAc;QAACU;QAAqBC;KAA0B;AAClE;AAQA,MAAMC;;aACO,IAAI,GAAG;aACP,KAAK,GAAG;aACR,WAAW,GAChB;aACK,WAAW,GAAGd;aACd,WAAW,GAAG;YAAE,cAAc;QAAM;aACpC,OAAO,GAAGU;;AACvB;AAEO,MAAMK,mBAAmBC,oBAAoB,oBAAoB,CAAC;IACrE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { CreateTeam } from "@webiny/api-core/features/security/teams/CreateTeam/index.js";
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
slug: z.ZodString;
|
|
7
|
+
description: z.ZodOptional<z.ZodString>;
|
|
8
|
+
roles: z.ZodArray<z.ZodString>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
type Input = z.infer<typeof inputSchema>;
|
|
11
|
+
interface CreatedTeam {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
slug: string;
|
|
15
|
+
roles: string[];
|
|
16
|
+
}
|
|
17
|
+
declare class CreateTeamToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {
|
|
18
|
+
private createTeam;
|
|
19
|
+
constructor(createTeam: CreateTeam.Interface);
|
|
20
|
+
execute(input: Input): Promise<CreatedTeam>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates a team.
|
|
24
|
+
*
|
|
25
|
+
* Not read-only, so it needs approval: a team is an access-control object, and the roles it carries
|
|
26
|
+
* decide what its members can do. The user should see which roles are being granted before it exists.
|
|
27
|
+
*/
|
|
28
|
+
declare class CreateTeamToolImpl implements AiSdkToolDefinition.Interface<Input> {
|
|
29
|
+
readonly name = "createTeam";
|
|
30
|
+
readonly title = "Create team";
|
|
31
|
+
readonly description = "Creates a team with a set of roles. Call listRoles first and pass what it returns; do not guess role identifiers. Requires user approval.";
|
|
32
|
+
readonly inputSchema: z.ZodObject<{
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
slug: z.ZodString;
|
|
35
|
+
description: z.ZodOptional<z.ZodString>;
|
|
36
|
+
roles: z.ZodArray<z.ZodString>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
readonly annotations: {
|
|
39
|
+
readOnlyHint: boolean;
|
|
40
|
+
};
|
|
41
|
+
readonly handler: typeof CreateTeamToolHandlerImpl & {
|
|
42
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions").IAiSdkToolHandler<any>>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export declare const CreateTeamTool: typeof CreateTeamToolImpl & {
|
|
46
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions").IAiSdkToolDefinition<any>>;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { CreateTeam } from "@webiny/api-core/features/security/teams/CreateTeam/index.js";
|
|
4
|
+
import { descriptionOnCreate } from "@webiny/api-core/features/security/shared/index.js";
|
|
5
|
+
const inputSchema = z.object({
|
|
6
|
+
name: z.string().describe("Human-readable team name, e.g. 'Marketing'."),
|
|
7
|
+
slug: z.string().describe("URL-safe identifier, e.g. 'marketing'. Lowercase, hyphens instead of spaces."),
|
|
8
|
+
description: z.string().max(500).optional().describe("What the team is for. Shown in the admin UI. Omit it if the user did not say."),
|
|
9
|
+
roles: z.array(z.string()).describe("Roles from listRoles. Prefer the `id`; a `slug` is accepted and resolved for you. Resolve them with listRoles first, since an unknown value is rejected rather than stored.")
|
|
10
|
+
});
|
|
11
|
+
class CreateTeamToolHandlerImpl {
|
|
12
|
+
constructor(createTeam){
|
|
13
|
+
this.createTeam = createTeam;
|
|
14
|
+
}
|
|
15
|
+
async execute(input) {
|
|
16
|
+
const result = await this.createTeam.execute({
|
|
17
|
+
name: input.name,
|
|
18
|
+
slug: input.slug,
|
|
19
|
+
description: descriptionOnCreate(input.description),
|
|
20
|
+
roles: input.roles
|
|
21
|
+
});
|
|
22
|
+
if (result.isFail()) throw new Error(`Could not create the team: ${result.error.message}`);
|
|
23
|
+
const team = result.value;
|
|
24
|
+
return {
|
|
25
|
+
id: team.id,
|
|
26
|
+
name: team.name,
|
|
27
|
+
slug: team.slug,
|
|
28
|
+
roles: team.roles
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const CreateTeamToolHandler = AiSdkToolHandler.createImplementation({
|
|
33
|
+
implementation: CreateTeamToolHandlerImpl,
|
|
34
|
+
dependencies: [
|
|
35
|
+
CreateTeam
|
|
36
|
+
]
|
|
37
|
+
});
|
|
38
|
+
class CreateTeamToolImpl {
|
|
39
|
+
constructor(){
|
|
40
|
+
this.name = "createTeam";
|
|
41
|
+
this.title = "Create team";
|
|
42
|
+
this.description = "Creates a team with a set of roles. Call listRoles first and pass what it returns; do not guess role identifiers. Requires user approval.";
|
|
43
|
+
this.inputSchema = inputSchema;
|
|
44
|
+
this.annotations = {
|
|
45
|
+
readOnlyHint: false
|
|
46
|
+
};
|
|
47
|
+
this.handler = CreateTeamToolHandler;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const CreateTeamTool = AiSdkToolDefinition.createImplementation({
|
|
51
|
+
implementation: CreateTeamToolImpl,
|
|
52
|
+
dependencies: []
|
|
53
|
+
});
|
|
54
|
+
export { CreateTeamTool };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=CreateTeamTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/ai/CreateTeamTool.js","sources":["../../../src/features/ai/CreateTeamTool.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiSdkToolDefinition, AiSdkToolHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { CreateTeam } from \"@webiny/api-core/features/security/teams/CreateTeam/index.js\";\nimport { descriptionOnCreate } from \"@webiny/api-core/features/security/shared/index.js\";\n\nconst inputSchema = z.object({\n name: z.string().describe(\"Human-readable team name, e.g. 'Marketing'.\"),\n slug: z\n .string()\n .describe(\"URL-safe identifier, e.g. 'marketing'. Lowercase, hyphens instead of spaces.\"),\n /*\n * Optional and capped, mirroring the use case's own schema. Requiring it made the model invent a\n * description for every team; `CreateTeam` treats an absent one as empty via `descriptionOnCreate`.\n */\n description: z\n .string()\n .max(500)\n .optional()\n .describe(\"What the team is for. Shown in the admin UI. Omit it if the user did not say.\"),\n roles: z\n .array(z.string())\n .describe(\n \"Roles from listRoles. Prefer the `id`; a `slug` is accepted and resolved for you. Resolve them with listRoles first, since an unknown value is rejected rather than stored.\"\n )\n});\n\ntype Input = z.infer<typeof inputSchema>;\n\ninterface CreatedTeam {\n id: string;\n name: string;\n slug: string;\n roles: string[];\n}\n\nclass CreateTeamToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {\n constructor(private createTeam: CreateTeam.Interface) {}\n\n async execute(input: Input): Promise<CreatedTeam> {\n /*\n * Roles go through untouched. `CreateTeam` accepts a role id or a slug and resolves either to\n * the id a team stores, so the tool has nothing to add: doing it here too would read the roles\n * a second time and leave two copies of the same rule to keep in step.\n */\n const result = await this.createTeam.execute({\n name: input.name,\n slug: input.slug,\n // An omitted description becomes \"\", the same mapping the use case applies to its own input.\n description: descriptionOnCreate(input.description),\n roles: input.roles\n });\n\n if (result.isFail()) {\n throw new Error(`Could not create the team: ${result.error.message}`);\n }\n\n const team = result.value;\n\n return {\n id: team.id,\n name: team.name,\n slug: team.slug,\n // From the created team, so the caller sees the resolved ids that were actually stored.\n roles: team.roles\n };\n }\n}\n\nconst CreateTeamToolHandler = AiSdkToolHandler.createImplementation({\n implementation: CreateTeamToolHandlerImpl,\n dependencies: [CreateTeam]\n});\n\n/**\n * Creates a team.\n *\n * Not read-only, so it needs approval: a team is an access-control object, and the roles it carries\n * decide what its members can do. The user should see which roles are being granted before it exists.\n */\nclass CreateTeamToolImpl implements AiSdkToolDefinition.Interface<Input> {\n readonly name = \"createTeam\";\n readonly title = \"Create team\";\n readonly description =\n \"Creates a team with a set of roles. Call listRoles first and pass what it returns; do not guess role identifiers. Requires user approval.\";\n readonly inputSchema = inputSchema;\n readonly annotations = { readOnlyHint: false };\n readonly handler = CreateTeamToolHandler;\n}\n\nexport const CreateTeamTool = AiSdkToolDefinition.createImplementation({\n implementation: CreateTeamToolImpl,\n dependencies: []\n});\n"],"names":["inputSchema","z","CreateTeamToolHandlerImpl","createTeam","input","result","descriptionOnCreate","Error","team","CreateTeamToolHandler","AiSdkToolHandler","CreateTeam","CreateTeamToolImpl","CreateTeamTool","AiSdkToolDefinition"],"mappings":";;;;AAKA,MAAMA,cAAcC,EAAE,MAAM,CAAC;IACzB,MAAMA,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAMA,EAAAA,MACK,GACN,QAAQ,CAAC;IAKd,aAAaA,EAAAA,MACF,GACN,GAAG,CAAC,KACJ,QAAQ,GACR,QAAQ,CAAC;IACd,OAAOA,EAAAA,KACG,CAACA,EAAE,MAAM,IACd,QAAQ,CACL;AAEZ;AAWA,MAAMC;IACF,YAAoBC,UAAgC,CAAE;aAAlCA,UAAU,GAAVA;IAAmC;IAEvD,MAAM,QAAQC,KAAY,EAAwB;QAM9C,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,MAAMD,MAAM,IAAI;YAChB,MAAMA,MAAM,IAAI;YAEhB,aAAaE,oBAAoBF,MAAM,WAAW;YAClD,OAAOA,MAAM,KAAK;QACtB;QAEA,IAAIC,OAAO,MAAM,IACb,MAAM,IAAIE,MAAM,CAAC,2BAA2B,EAAEF,OAAO,KAAK,CAAC,OAAO,EAAE;QAGxE,MAAMG,OAAOH,OAAO,KAAK;QAEzB,OAAO;YACH,IAAIG,KAAK,EAAE;YACX,MAAMA,KAAK,IAAI;YACf,MAAMA,KAAK,IAAI;YAEf,OAAOA,KAAK,KAAK;QACrB;IACJ;AACJ;AAEA,MAAMC,wBAAwBC,iBAAiB,oBAAoB,CAAC;IAChE,gBAAgBR;IAChB,cAAc;QAACS;KAAW;AAC9B;AAQA,MAAMC;;aACO,IAAI,GAAG;aACP,KAAK,GAAG;aACR,WAAW,GAChB;aACK,WAAW,GAAGZ;aACd,WAAW,GAAG;YAAE,cAAc;QAAM;aACpC,OAAO,GAAGS;;AACvB;AAEO,MAAMI,iBAAiBC,oBAAoB,oBAAoB,CAAC;IACnE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { GetFolderUseCase } from "../../features/folder/GetFolder/index.js";
|
|
4
|
+
import { DeleteFolderUseCase } from "../../features/folder/DeleteFolder/index.js";
|
|
5
|
+
import { NotifyFolderChangeUseCase } from "./NotifyFolderChange/index.js";
|
|
6
|
+
declare const inputSchema: z.ZodObject<{
|
|
7
|
+
folderId: z.ZodString;
|
|
8
|
+
title: z.ZodString;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
type Input = z.infer<typeof inputSchema>;
|
|
11
|
+
interface DeletedFolder {
|
|
12
|
+
id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
path: string;
|
|
15
|
+
type: string;
|
|
16
|
+
}
|
|
17
|
+
declare class DeleteFolderToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {
|
|
18
|
+
private getFolder;
|
|
19
|
+
private deleteFolder;
|
|
20
|
+
private notifyFolderChange;
|
|
21
|
+
constructor(getFolder: GetFolderUseCase.Interface, deleteFolder: DeleteFolderUseCase.Interface, notifyFolderChange: NotifyFolderChangeUseCase.Interface);
|
|
22
|
+
execute(input: Input): Promise<DeletedFolder>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Deletes one folder.
|
|
26
|
+
*
|
|
27
|
+
* Destructive, so the approval says it cannot be undone. Only an empty folder can go: the folder
|
|
28
|
+
* feature refuses to delete one that still holds subfolders or content, and that error reaches the
|
|
29
|
+
* model as-is.
|
|
30
|
+
*/
|
|
31
|
+
declare class DeleteFolderToolImpl implements AiSdkToolDefinition.Interface<Input> {
|
|
32
|
+
readonly name = "deleteFolder";
|
|
33
|
+
readonly title = "Delete folder";
|
|
34
|
+
readonly description = "Deletes one empty folder. Folders that still contain subfolders or content are refused. Call listFolders first for the id and exact title. Requires user approval.";
|
|
35
|
+
readonly inputSchema: z.ZodObject<{
|
|
36
|
+
folderId: z.ZodString;
|
|
37
|
+
title: z.ZodString;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
readonly annotations: {
|
|
40
|
+
readOnlyHint: boolean;
|
|
41
|
+
destructiveHint: boolean;
|
|
42
|
+
};
|
|
43
|
+
readonly handler: typeof DeleteFolderToolHandlerImpl & {
|
|
44
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions.js").IAiSdkToolHandler<any>>;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export declare const DeleteFolderTool: typeof DeleteFolderToolImpl & {
|
|
48
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions.js").IAiSdkToolDefinition<any>>;
|
|
49
|
+
};
|
|
50
|
+
export {};
|