@webiny/api-headless-cms 6.4.5 → 6.6.0-alpha.0
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/HeadlessCmsContextualSchema.d.ts +16 -0
- package/HeadlessCmsContextualSchema.js +32 -0
- package/HeadlessCmsContextualSchema.js.map +1 -0
- package/HeadlessCmsEndpointConfig.d.ts +10 -0
- package/HeadlessCmsEndpointConfig.js +5 -0
- package/HeadlessCmsEndpointConfig.js.map +1 -0
- package/HeadlessCmsFeature.d.ts +10 -0
- package/HeadlessCmsFeature.js +192 -0
- package/HeadlessCmsFeature.js.map +1 -0
- package/createCmsRoute.d.ts +21 -0
- package/createCmsRoute.js +49 -0
- package/createCmsRoute.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +1 -1
- package/crud/contentEntry/entryDataValidation.js +2 -15
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/references/validateEntries.d.ts +1 -1
- package/crud/contentEntry/references/validateEntries.js +17 -7
- package/crud/contentEntry/references/validateEntries.js.map +1 -1
- package/crud/contentEntry.crud.js +22 -20
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel.crud.js +8 -6
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup.crud.js +7 -5
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/domain/contentModel/schemas.d.ts +6 -6
- package/domain/contentModel/schemas.js +1 -1
- package/domain/contentModel/schemas.js.map +1 -1
- package/domain/contentModel/validation/modelFields.js +21 -15
- package/domain/contentModel/validation/modelFields.js.map +1 -1
- package/export/abstractions.d.ts +9 -0
- package/export/abstractions.js +6 -0
- package/export/abstractions.js.map +1 -0
- package/export/crud/exporting.js +8 -2
- package/export/crud/exporting.js.map +1 -1
- package/export/crud/importing.js +13 -4
- package/export/crud/importing.js.map +1 -1
- package/export/crud/imports/importGroups.js +23 -23
- package/export/crud/imports/importGroups.js.map +1 -1
- package/export/crud/imports/importModels.js +25 -22
- package/export/crud/imports/importModels.js.map +1 -1
- package/export/graphql/index.d.ts +2 -3
- package/export/graphql/index.js +6 -10
- package/export/graphql/index.js.map +1 -1
- package/exports/api/cms/storage.d.ts +0 -1
- package/exports/api/cms/storage.js +0 -1
- package/features/contentEntry/CreateEntry/CreateEntryRepository.d.ts +6 -4
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js +7 -8
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +3 -1
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +2 -3
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.d.ts +6 -4
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +7 -8
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +3 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +2 -3
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.d.ts +6 -4
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +7 -8
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.d.ts +3 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +2 -3
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.d.ts +6 -4
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +7 -8
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.d.ts +3 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +2 -3
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.d.ts +3 -3
- package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js +5 -5
- package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.d.ts +6 -4
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +7 -8
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.d.ts +3 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +2 -3
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.d.ts +6 -4
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +7 -8
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.d.ts +3 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +2 -3
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.d.ts +6 -4
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +7 -8
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.d.ts +3 -1
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js +2 -3
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetEntry/GetEntryUseCase.d.ts +3 -1
- package/features/contentEntry/GetEntry/GetEntryUseCase.js +2 -3
- package/features/contentEntry/GetEntry/GetEntryUseCase.js.map +1 -1
- package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js +2 -3
- package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.d.ts +6 -4
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +7 -8
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.d.ts +3 -1
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js +2 -3
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.d.ts +3 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js +2 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.d.ts +6 -4
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +7 -8
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js +2 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.d.ts +3 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js +1 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js +2 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.d.ts +3 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js +2 -3
- package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.d.ts +6 -4
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +7 -8
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js +2 -3
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.d.ts +6 -4
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +7 -8
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.d.ts +3 -1
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js +2 -3
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.d.ts +6 -4
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +7 -8
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js +2 -3
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.d.ts +6 -4
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +7 -8
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js +1 -3
- package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.d.ts +6 -4
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +7 -8
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.d.ts +3 -1
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js +2 -3
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js +1 -3
- package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.d.ts +6 -4
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +7 -8
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.d.ts +6 -2
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +8 -6
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.d.ts +3 -1
- package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js +1 -3
- package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesRepository.d.ts +6 -4
- package/features/contentEntry/ListEntries/ListEntriesRepository.js +7 -8
- package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.d.ts +3 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js +2 -3
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.d.ts +3 -1
- package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js +1 -3
- package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.d.ts +3 -1
- package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js +1 -3
- package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js.map +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryRepository.d.ts +6 -4
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js +7 -8
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.d.ts +3 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +2 -3
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryRepository.d.ts +6 -4
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js +7 -8
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +3 -1
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +2 -3
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.d.ts +8 -4
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +11 -9
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +3 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +2 -3
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.d.ts +6 -4
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +7 -8
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.d.ts +3 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +2 -3
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.d.ts +6 -4
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +7 -8
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +3 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +2 -3
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.d.ts +6 -4
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +7 -8
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +3 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +2 -3
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +3 -1
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +2 -3
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -1
- package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.d.ts +3 -1
- package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js +2 -3
- package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +2 -4
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +4 -4
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +4 -8
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js +1 -3
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js +1 -3
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js +1 -3
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +2 -4
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -1
- package/features/contentModel/ContentModelFeature.js +2 -0
- package/features/contentModel/ContentModelFeature.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.d.ts +4 -3
- package/features/contentModel/CreateModel/CreateModelRepository.js +6 -5
- package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +4 -3
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +6 -5
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelRepository.d.ts +3 -3
- package/features/contentModel/DeleteModel/DeleteModelRepository.js +5 -5
- package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.d.ts +1 -0
- package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js +11 -8
- package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelRepository.d.ts +6 -3
- package/features/contentModel/UpdateModel/UpdateModelRepository.js +11 -7
- package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.d.ts +16 -0
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js +51 -0
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js.map +1 -0
- package/features/contentModel/ValuesSelectionGenerator/abstractions.d.ts +8 -0
- package/features/contentModel/ValuesSelectionGenerator/abstractions.js +5 -0
- package/features/contentModel/ValuesSelectionGenerator/abstractions.js.map +1 -0
- package/features/contentModel/ValuesSelectionGenerator/feature.d.ts +4 -0
- package/features/contentModel/ValuesSelectionGenerator/feature.js +11 -0
- package/features/contentModel/ValuesSelectionGenerator/feature.js.map +1 -0
- package/features/contentModel/ValuesSelectionGenerator/index.d.ts +1 -0
- package/features/contentModel/ValuesSelectionGenerator/index.js +1 -0
- package/features/contentModel/shared/ModelsFetcher.d.ts +3 -3
- package/features/contentModel/shared/ModelsFetcher.js +5 -5
- package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
- package/features/contentModel/shared/PluginModelsProvider.d.ts +5 -4
- package/features/contentModel/shared/PluginModelsProvider.js +11 -8
- package/features/contentModel/shared/PluginModelsProvider.js.map +1 -1
- package/features/contentModel/shared/abstractions.d.ts +10 -0
- package/features/contentModel/shared/abstractions.js +2 -1
- package/features/contentModel/shared/abstractions.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +8 -4
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +13 -11
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +3 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +2 -3
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.d.ts +8 -4
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +11 -9
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.d.ts +3 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +2 -3
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/GetGroup/GetGroupRepository.d.ts +6 -4
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js +9 -9
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
- package/features/contentModelGroup/GetGroup/GetGroupUseCase.d.ts +3 -1
- package/features/contentModelGroup/GetGroup/GetGroupUseCase.js +2 -3
- package/features/contentModelGroup/GetGroup/GetGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.d.ts +6 -4
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +9 -9
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
- package/features/contentModelGroup/ListGroups/ListGroupsUseCase.d.ts +3 -1
- package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js +2 -3
- package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.d.ts +6 -4
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +7 -8
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +3 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +2 -3
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/shared/PluginGroupsProvider.d.ts +6 -4
- package/features/contentModelGroup/shared/PluginGroupsProvider.js +13 -11
- package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
- package/features/contentModelGroup/shared/abstractions.d.ts +10 -0
- package/features/contentModelGroup/shared/abstractions.js +2 -1
- package/features/contentModelGroup/shared/abstractions.js.map +1 -1
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.d.ts +2 -2
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/RefToGraphQL.d.ts +1 -1
- package/features/graphql/fields/base/RefToGraphQL.js +3 -1
- package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/richText/richTextResolver.d.ts +1 -1
- package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -1
- package/features/modelBuilder/fields/BaseFieldBuilder.d.ts +1 -3
- package/features/modelBuilder/fields/BaseFieldBuilder.js +0 -4
- package/features/modelBuilder/fields/BaseFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/DataFieldBuilder.d.ts +12 -18
- package/features/modelBuilder/fields/DataFieldBuilder.js +1 -2
- package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/DynamicZoneFieldType.js +3 -8
- package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
- package/features/modelBuilder/fields/TextFieldType.d.ts +3 -1
- package/features/modelBuilder/fields/TextFieldType.js +1 -3
- package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiAlertFieldType.js +1 -2
- package/features/modelBuilder/fields/UiAlertFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiSeparatorFieldType.js +1 -2
- package/features/modelBuilder/fields/UiSeparatorFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiTabsFieldType.d.ts +1 -2
- package/features/modelBuilder/fields/UiTabsFieldType.js +3 -6
- package/features/modelBuilder/fields/UiTabsFieldType.js.map +1 -1
- package/features/shared/abstractions.d.ts +11 -15
- package/features/shared/abstractions.js +3 -3
- package/features/shared/abstractions.js.map +1 -1
- package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/CreateEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/ListEntriesStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/MoveEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/MoveToBinStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/PublishEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js +5 -0
- package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/group/CreateGroupStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/group/CreateGroupStorageOperation.js +5 -0
- package/features/shared/storageOperations/group/CreateGroupStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/group/DeleteGroupStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js +5 -0
- package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/group/GetGroupStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/group/GetGroupStorageOperation.js +5 -0
- package/features/shared/storageOperations/group/GetGroupStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/group/ListGroupsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/group/ListGroupsStorageOperation.js +5 -0
- package/features/shared/storageOperations/group/ListGroupsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/group/UpdateGroupStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js +5 -0
- package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/index.d.ts +32 -0
- package/features/shared/storageOperations/index.js +32 -0
- package/features/shared/storageOperations/model/CreateModelStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/model/CreateModelStorageOperation.js +5 -0
- package/features/shared/storageOperations/model/CreateModelStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/model/DeleteModelStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/model/DeleteModelStorageOperation.js +5 -0
- package/features/shared/storageOperations/model/DeleteModelStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/model/GetModelStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/model/GetModelStorageOperation.js +5 -0
- package/features/shared/storageOperations/model/GetModelStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/model/ListModelsStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/model/ListModelsStorageOperation.js +5 -0
- package/features/shared/storageOperations/model/ListModelsStorageOperation.js.map +1 -0
- package/features/shared/storageOperations/model/UpdateModelStorageOperation.d.ts +8 -0
- package/features/shared/storageOperations/model/UpdateModelStorageOperation.js +5 -0
- package/features/shared/storageOperations/model/UpdateModelStorageOperation.js.map +1 -0
- package/fieldConverters/abstractions.d.ts +14 -0
- package/fieldConverters/abstractions.js +13 -0
- package/fieldConverters/abstractions.js.map +1 -0
- package/fieldConverters/index.d.ts +1 -1
- package/graphql/CmsGraphQLSchemaFactory.d.ts +8 -0
- package/graphql/CmsGraphQLSchemaFactory.js +5 -0
- package/graphql/CmsGraphQLSchemaFactory.js.map +1 -0
- package/graphql/CmsSchemaExecutor.d.ts +10 -0
- package/graphql/CmsSchemaExecutor.js +5 -0
- package/graphql/CmsSchemaExecutor.js.map +1 -0
- package/graphql/buildSchemaPlugins.d.ts +2 -1
- package/graphql/buildSchemaPlugins.js +1 -3
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.js +5 -2
- package/graphql/checkEndpointAccess.js.map +1 -1
- package/graphql/createExecutableSchema.d.ts +1 -1
- package/graphql/createExecutableSchema.js +1 -1
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/generateSchema.d.ts +2 -1
- package/graphql/generateSchema.js +14 -5
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema.js +7 -2
- package/graphql/getSchema.js.map +1 -1
- package/graphql/scalars/RevisionIdScalarPlugin.d.ts +1 -1
- package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
- package/graphql/schema/baseContentSchema.d.ts +1 -6
- package/graphql/schema/baseContentSchema.js +5 -8
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +2 -2
- package/graphql/schema/baseSchema.js +6 -41
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/cms/CmsBaseErrorTypeFactory.d.ts +14 -0
- package/graphql/schema/cms/CmsBaseErrorTypeFactory.js +21 -0
- package/graphql/schema/cms/CmsBaseErrorTypeFactory.js.map +1 -0
- package/graphql/schema/cms/createEntryResolver.js +2 -2
- package/graphql/schema/cms/createEntryResolver.js.map +1 -1
- package/graphql/schema/cms/deleteEntryResolver.js +2 -2
- package/graphql/schema/cms/deleteEntryResolver.js.map +1 -1
- package/graphql/schema/cms/getEntryResolver.js +2 -2
- package/graphql/schema/cms/getEntryResolver.js.map +1 -1
- package/graphql/schema/cms/helpers/getModel.d.ts +0 -3
- package/graphql/schema/cms/helpers/getModel.js +5 -3
- package/graphql/schema/cms/helpers/getModel.js.map +1 -1
- package/graphql/schema/cms/helpers/transformWhereToNested.js +17 -39
- package/graphql/schema/cms/helpers/transformWhereToNested.js.map +1 -1
- package/graphql/schema/cms/listEntriesResolver.js +2 -2
- package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
- package/graphql/schema/cms/publishEntryResolver.js +2 -2
- package/graphql/schema/cms/publishEntryResolver.js.map +1 -1
- package/graphql/schema/cms/resolvers/createEntry.d.ts +2 -2
- package/graphql/schema/cms/resolvers/createEntry.js +1 -1
- package/graphql/schema/cms/resolvers/createEntry.js.map +1 -1
- package/graphql/schema/cms/resolvers/deleteEntryRevision.d.ts +2 -2
- package/graphql/schema/cms/resolvers/deleteEntryRevision.js +1 -1
- package/graphql/schema/cms/resolvers/deleteEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/getEntry.d.ts +2 -2
- package/graphql/schema/cms/resolvers/getEntry.js +1 -1
- package/graphql/schema/cms/resolvers/getEntry.js.map +1 -1
- package/graphql/schema/cms/resolvers/listEntries.d.ts +2 -2
- package/graphql/schema/cms/resolvers/listEntries.js +1 -1
- package/graphql/schema/cms/resolvers/listEntries.js.map +1 -1
- package/graphql/schema/cms/resolvers/mutationCms.d.ts +2 -2
- package/graphql/schema/cms/resolvers/mutationCms.js +1 -1
- package/graphql/schema/cms/resolvers/mutationCms.js.map +1 -1
- package/graphql/schema/cms/resolvers/publishEntryRevision.d.ts +2 -2
- package/graphql/schema/cms/resolvers/publishEntryRevision.js +1 -1
- package/graphql/schema/cms/resolvers/publishEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/queryCms.d.ts +2 -2
- package/graphql/schema/cms/resolvers/queryCms.js +1 -1
- package/graphql/schema/cms/resolvers/queryCms.js.map +1 -1
- package/graphql/schema/cms/resolvers/unpublishEntryRevision.d.ts +2 -2
- package/graphql/schema/cms/resolvers/unpublishEntryRevision.js +1 -1
- package/graphql/schema/cms/resolvers/unpublishEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/updateEntryRevision.d.ts +2 -2
- package/graphql/schema/cms/resolvers/updateEntryRevision.js +1 -1
- package/graphql/schema/cms/resolvers/updateEntryRevision.js.map +1 -1
- package/graphql/schema/cms/typeDefs/mutation.d.ts +2 -2
- package/graphql/schema/cms/typeDefs/mutation.js +1 -1
- package/graphql/schema/cms/typeDefs/mutation.js.map +1 -1
- package/graphql/schema/cms/typeDefs/query.d.ts +2 -2
- package/graphql/schema/cms/typeDefs/query.js +1 -1
- package/graphql/schema/cms/typeDefs/query.js.map +1 -1
- package/graphql/schema/cms/typeDefs/responses.d.ts +2 -2
- package/graphql/schema/cms/typeDefs/responses.js +1 -1
- package/graphql/schema/cms/typeDefs/responses.js.map +1 -1
- package/graphql/schema/cms/unpublishEntryResolver.js +2 -2
- package/graphql/schema/cms/unpublishEntryResolver.js.map +1 -1
- package/graphql/schema/cms/updateEntryResolver.js +2 -2
- package/graphql/schema/cms/updateEntryResolver.js.map +1 -1
- package/graphql/schema/contentEntries.js +43 -32
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +39 -18
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +37 -16
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +4 -2
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +5 -3
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +5 -3
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +9 -4
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +5 -3
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +11 -6
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +5 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +5 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +5 -3
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +5 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveListDeleted.js +5 -3
- package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.js +4 -2
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +5 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +5 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +5 -3
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +5 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +5 -3
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js +5 -3
- package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.js +5 -3
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +6 -3
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +5 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +5 -2
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +5 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/singular/resolveGet.js +1 -1
- package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/singular/resolveUpdate.js +1 -1
- package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
- package/graphql/schema/schemaPlugins.d.ts +2 -1
- package/graphql/schema/schemaPlugins.js +2 -4
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/index.d.ts +7 -6
- package/index.js +4 -22
- package/legacy/abstractions.js.map +1 -1
- package/package.json +22 -27
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +1 -1
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/index.d.ts +0 -1
- package/plugins/index.js +0 -1
- package/types/fields/dynamicZoneField.d.ts +2 -2
- package/types/modelField.d.ts +1 -1
- package/types/types.d.ts +10 -183
- package/types/types.js.map +1 -1
- package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.d.ts +28 -0
- package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js +324 -0
- package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js.map +1 -0
- package/utils/contentModelToJsonSchema/index.d.ts +2 -0
- package/utils/contentModelToJsonSchema/index.js +1 -0
- package/utils/contentModelToJsonSchema/types.d.ts +24 -0
- package/utils/contentModelToJsonSchema/types.js +0 -0
- package/utils/converters/ConverterCollection.d.ts +2 -2
- package/utils/converters/ConverterCollection.js +1 -3
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyFromStorageConverter.d.ts +2 -2
- package/utils/converters/valueKeyFromStorageConverter.js +2 -2
- package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +4 -2
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyToStorageConverter.d.ts +2 -2
- package/utils/converters/valueKeyToStorageConverter.js +2 -2
- package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +2 -2
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +1 -0
- package/utils/isHeadlessCmsReady.d.ts +1 -1
- package/utils/isHeadlessCmsReady.js +3 -2
- package/utils/isHeadlessCmsReady.js.map +1 -1
- package/abstractions/entryHooks/OnEntryBeforeCreate.d.ts +0 -8
- package/abstractions/entryHooks/OnEntryBeforeCreate.js +0 -5
- package/abstractions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
- package/abstractions/entryHooks/index.d.ts +0 -1
- package/abstractions/entryHooks/index.js +0 -1
- package/abstractions/index.d.ts +0 -1
- package/abstractions/index.js +0 -1
- package/context.d.ts +0 -3
- package/context.js +0 -131
- package/context.js.map +0 -1
- package/extensions/entryHooks/OnEntryBeforeCreate.d.ts +0 -4
- package/extensions/entryHooks/OnEntryBeforeCreate.js +0 -21
- package/extensions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
- package/extensions/entryHooks/index.d.ts +0 -1
- package/extensions/entryHooks/index.js +0 -1
- package/extensions/index.d.ts +0 -5
- package/extensions/index.js +0 -7
- package/extensions/index.js.map +0 -1
- package/graphql/graphQLHandlerFactory.d.ts +0 -5
- package/graphql/graphQLHandlerFactory.js +0 -22
- package/graphql/graphQLHandlerFactory.js.map +0 -1
- package/graphql/handleRequest.d.ts +0 -11
- package/graphql/handleRequest.js +0 -62
- package/graphql/handleRequest.js.map +0 -1
- package/graphql/index.d.ts +0 -4
- package/graphql/index.js +0 -11
- package/graphql/index.js.map +0 -1
- package/graphql/schema/cms/index.d.ts +0 -2
- package/graphql/schema/cms/index.js +0 -24
- package/graphql/schema/cms/index.js.map +0 -1
- package/index.js.map +0 -1
- package/parameters/context.d.ts +0 -2
- package/parameters/context.js +0 -7
- package/parameters/context.js.map +0 -1
- package/parameters/header.d.ts +0 -2
- package/parameters/header.js +0 -13
- package/parameters/header.js.map +0 -1
- package/parameters/index.d.ts +0 -3
- package/parameters/index.js +0 -3
- package/parameters/path.d.ts +0 -2
- package/parameters/path.js +0 -12
- package/parameters/path.js.map +0 -1
- package/plugins/CmsParametersPlugin.d.ts +0 -18
- package/plugins/CmsParametersPlugin.js +0 -16
- package/plugins/CmsParametersPlugin.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js","sources":["../../../../src/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js","sources":["../../../../src/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { MoveEntryToBinUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { MoveEntryToBinRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetLatestRevisionByEntryIdUseCase } from \"~/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { EntryBeforeDeleteEvent, EntryAfterDeleteEvent, EntryDeleteErrorEvent } from \"./events.js\";\nimport { EntryNotAuthorizedError } from \"~/domain/contentEntry/errors.js\";\nimport { EntryNotFoundError } from \"~/domain/contentEntry/errors.js\";\nimport { getDate } from \"~/utils/date.js\";\nimport { getIdentity } from \"~/utils/identity.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\n/**\n * MoveEntryToBinUseCase - Orchestrates soft deletion of an entry (move to bin).\n *\n * Responsibilities:\n * - Apply access control\n * - Get the entry to delete by ID\n * - Mark entry as deleted (wbyDeleted = true)\n * - Update deletion metadata\n * - Publish domain events with permanent: false\n * - Delegate to repository for storage operations\n */\nclass MoveEntryToBinUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private repository: MoveEntryToBinRepository.Interface,\n private accessControl: AccessControl.Interface,\n private getLatestRevision: GetLatestRevisionByEntryIdUseCase.Interface,\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(model: CmsModel, id: string): Promise<Result<void, UseCaseAbstraction.Error>> {\n // Check access control\n const canAccess = await this.accessControl.canAccessEntry({ model, rwd: \"d\" });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n // Get the entry to delete by ID\n const getResult = await this.getLatestRevision.execute(model, { id });\n\n if (getResult.isFail()) {\n return Result.fail(new EntryNotFoundError(id));\n }\n\n const originalEntry = getResult.value;\n\n // Check access control on the specific entry\n const canAccessEntry = await this.accessControl.canAccessEntry({\n model,\n entry: originalEntry,\n rwd: \"d\"\n });\n\n if (!canAccessEntry) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n // Create the deleted entry data\n const currentDateTime = new Date().toISOString();\n const currentIdentity = this.identityContext.getIdentity();\n\n const entryToDelete = {\n ...originalEntry,\n wbyDeleted: true,\n\n // Entry location fields - move to root folder\n location: {\n folderId: ROOT_FOLDER\n },\n binOriginalFolderId: originalEntry.location?.folderId,\n\n // Entry-level meta fields\n deletedOn: getDate(currentDateTime, null),\n deletedBy: getIdentity(currentIdentity, null),\n\n // Revision-level meta fields\n revisionDeletedOn: getDate(currentDateTime, null),\n revisionDeletedBy: getIdentity(currentIdentity, null)\n };\n\n try {\n // Publish before event\n await this.eventPublisher.publish(\n new EntryBeforeDeleteEvent({\n entry: entryToDelete,\n model,\n permanent: false\n })\n );\n\n // Delegate to repository\n const result = await this.repository.execute({\n model,\n entry: entryToDelete\n });\n\n if (result.isFail()) {\n await this.eventPublisher.publish(\n new EntryDeleteErrorEvent({\n entry: entryToDelete,\n model,\n permanent: false,\n error: result.error\n })\n );\n return Result.fail(result.error);\n }\n\n // Publish after event\n await this.eventPublisher.publish(\n new EntryAfterDeleteEvent({\n entry: entryToDelete,\n model,\n permanent: false\n })\n );\n\n return Result.ok();\n } catch (error) {\n await this.eventPublisher.publish(\n new EntryDeleteErrorEvent({\n entry: entryToDelete,\n model,\n permanent: false,\n error: error as Error\n })\n );\n return Result.fail(error as any);\n }\n }\n}\n\nexport const MoveEntryToBinUseCase = UseCaseAbstraction.createImplementation({\n implementation: MoveEntryToBinUseCaseImpl,\n dependencies: [\n MoveEntryToBinRepository,\n AccessControl,\n GetLatestRevisionByEntryIdUseCase,\n IdentityContext,\n EventPublisher\n ]\n});\n"],"names":["MoveEntryToBinUseCaseImpl","repository","accessControl","getLatestRevision","identityContext","eventPublisher","model","id","canAccess","Result","EntryNotAuthorizedError","getResult","EntryNotFoundError","originalEntry","canAccessEntry","currentDateTime","Date","currentIdentity","entryToDelete","ROOT_FOLDER","getDate","getIdentity","EntryBeforeDeleteEvent","result","EntryDeleteErrorEvent","EntryAfterDeleteEvent","error","MoveEntryToBinUseCase","UseCaseAbstraction","MoveEntryToBinRepository","AccessControl","GetLatestRevisionByEntryIdUseCase","IdentityContext","EventPublisher"],"mappings":";;;;;;;;;;;AA0BA,MAAMA;IACF,YACYC,UAA8C,EAC9CC,aAAsC,EACtCC,iBAA8D,EAC9DC,eAA0C,EAC1CC,cAAwC,CAClD;aALUJ,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,iBAAiB,GAAjBA;aACAC,eAAe,GAAfA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAe,EAAEC,EAAU,EAAmD;QAExF,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEF;YAAO,KAAK;QAAI;QAC5E,IAAI,CAACE,WACD,OAAOC,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACJ;QAIzD,MAAMK,YAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACL,OAAO;YAAEC;QAAG;QAEnE,IAAII,UAAU,MAAM,IAChB,OAAOF,OAAO,IAAI,CAAC,IAAIG,mBAAmBL;QAG9C,MAAMM,gBAAgBF,UAAU,KAAK;QAGrC,MAAMG,iBAAiB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAC3DR;YACA,OAAOO;YACP,KAAK;QACT;QAEA,IAAI,CAACC,gBACD,OAAOL,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMK,kBAAkB,IAAIC,OAAO,WAAW;QAC9C,MAAMC,kBAAkB,IAAI,CAAC,eAAe,CAAC,WAAW;QAExD,MAAMC,gBAAgB;YAClB,GAAGL,aAAa;YAChB,YAAY;YAGZ,UAAU;gBACN,UAAUM;YACd;YACA,qBAAqBN,cAAc,QAAQ,EAAE;YAG7C,WAAWO,QAAQL,iBAAiB;YACpC,WAAWM,YAAYJ,iBAAiB;YAGxC,mBAAmBG,QAAQL,iBAAiB;YAC5C,mBAAmBM,YAAYJ,iBAAiB;QACpD;QAEA,IAAI;YAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIK,uBAAuB;gBACvB,OAAOJ;gBACPZ;gBACA,WAAW;YACf;YAIJ,MAAMiB,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACzCjB;gBACA,OAAOY;YACX;YAEA,IAAIK,OAAO,MAAM,IAAI;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,sBAAsB;oBACtB,OAAON;oBACPZ;oBACA,WAAW;oBACX,OAAOiB,OAAO,KAAK;gBACvB;gBAEJ,OAAOd,OAAO,IAAI,CAACc,OAAO,KAAK;YACnC;YAGA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,sBAAsB;gBACtB,OAAOP;gBACPZ;gBACA,WAAW;YACf;YAGJ,OAAOG,OAAO,EAAE;QACpB,EAAE,OAAOiB,OAAO;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIF,sBAAsB;gBACtB,OAAON;gBACPZ;gBACA,WAAW;gBACX,OAAOoB;YACX;YAEJ,OAAOjB,OAAO,IAAI,CAACiB;QACvB;IACJ;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAAuC,CAAC;IACzE,gBAAgB5B;IAChB,cAAc;QACV6B;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryUseCase } from "../abstractions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { DeleteEntryStorageOperation } from "../../../../features/shared/storageOperations/entry/DeleteEntryStorageOperation.js";
|
|
4
4
|
import type { CmsModel, CmsDeleteEntryOptions } from "../../../../types/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* Handles force delete logic for cleanup scenarios.
|
|
@@ -10,9 +10,9 @@ import type { CmsModel, CmsDeleteEntryOptions } from "../../../../types/index.js
|
|
|
10
10
|
* record is already deleted).
|
|
11
11
|
*/
|
|
12
12
|
declare class ForceDeleteDecoratorImpl implements DeleteEntryUseCase.Interface {
|
|
13
|
-
private
|
|
13
|
+
private deleteEntryStorage;
|
|
14
14
|
private decoratee;
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(deleteEntryStorage: DeleteEntryStorageOperation.Interface, decoratee: DeleteEntryUseCase.Interface);
|
|
16
16
|
execute(model: CmsModel, id: string, options?: CmsDeleteEntryOptions): Promise<Result<void, DeleteEntryUseCase.Error>>;
|
|
17
17
|
}
|
|
18
18
|
export declare const ForceDeleteDecorator: typeof ForceDeleteDecoratorImpl;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryUseCase } from "../abstractions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { DeleteEntryStorageOperation } from "../../../shared/storageOperations/entry/DeleteEntryStorageOperation.js";
|
|
4
4
|
import { parseIdentifier } from "@webiny/utils";
|
|
5
5
|
import { EntryPersistenceError } from "../../../../domain/contentEntry/errors.js";
|
|
6
6
|
class ForceDeleteDecoratorImpl {
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
7
|
+
constructor(deleteEntryStorage, decoratee){
|
|
8
|
+
this.deleteEntryStorage = deleteEntryStorage;
|
|
9
9
|
this.decoratee = decoratee;
|
|
10
10
|
}
|
|
11
11
|
async execute(model, id, options = {}) {
|
|
@@ -14,7 +14,7 @@ class ForceDeleteDecoratorImpl {
|
|
|
14
14
|
if (force && result.isFail() && "Cms/Entry/NotFound" === result.error.code) {
|
|
15
15
|
const { id: entryId } = parseIdentifier(id);
|
|
16
16
|
try {
|
|
17
|
-
await this.
|
|
17
|
+
await this.deleteEntryStorage.execute(model, {
|
|
18
18
|
entry: {
|
|
19
19
|
id,
|
|
20
20
|
entryId
|
|
@@ -32,7 +32,7 @@ const ForceDeleteDecorator = createDecorator({
|
|
|
32
32
|
abstraction: DeleteEntryUseCase,
|
|
33
33
|
decorator: ForceDeleteDecoratorImpl,
|
|
34
34
|
dependencies: [
|
|
35
|
-
|
|
35
|
+
DeleteEntryStorageOperation
|
|
36
36
|
]
|
|
37
37
|
});
|
|
38
38
|
export { ForceDeleteDecorator };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js","sources":["../../../../../src/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"../abstractions.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js","sources":["../../../../../src/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"../abstractions.js\";\nimport { DeleteEntryStorageOperation } from \"~/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js\";\nimport type { CmsModel, CmsDeleteEntryOptions } from \"~/types/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * Handles force delete logic for cleanup scenarios.\n *\n * When force=true and entry doesn't exist, this decorator directly calls storage\n * operations to clean up any orphaned records (e.g., in Elasticsearch when DynamoDB\n * record is already deleted).\n */\nclass ForceDeleteDecoratorImpl implements DeleteEntryUseCase.Interface {\n public constructor(\n private deleteEntryStorage: DeleteEntryStorageOperation.Interface,\n private decoratee: DeleteEntryUseCase.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n id: string,\n options: CmsDeleteEntryOptions = {}\n ): Promise<Result<void, DeleteEntryUseCase.Error>> {\n const { force = false } = options;\n\n const result = await this.decoratee.execute(model, id, options);\n\n if (force && result.isFail() && result.error.code === \"Cms/Entry/NotFound\") {\n const { id: entryId } = parseIdentifier(id);\n\n try {\n // Not the nicest way to do it, but we need to revisit storage operations anyway.\n await this.deleteEntryStorage.execute(model, {\n entry: {\n id,\n entryId\n }\n } as any);\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n\n return result;\n }\n}\n\nexport const ForceDeleteDecorator = createDecorator({\n abstraction: DeleteEntryUseCase,\n decorator: ForceDeleteDecoratorImpl,\n dependencies: [DeleteEntryStorageOperation]\n});\n"],"names":["ForceDeleteDecoratorImpl","deleteEntryStorage","decoratee","model","id","options","force","result","entryId","parseIdentifier","Result","error","EntryPersistenceError","ForceDeleteDecorator","createDecorator","DeleteEntryUseCase","DeleteEntryStorageOperation"],"mappings":";;;;;AAeA,MAAMA;IACF,YACYC,kBAAyD,EACzDC,SAAuC,CACjD;aAFUD,kBAAkB,GAAlBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EACVC,UAAiC,CAAC,CAAC,EACY;QAC/C,MAAM,EAAEC,QAAQ,KAAK,EAAE,GAAGD;QAE1B,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACJ,OAAOC,IAAIC;QAEvD,IAAIC,SAASC,OAAO,MAAM,MAAMA,AAAsB,yBAAtBA,OAAO,KAAK,CAAC,IAAI,EAA2B;YACxE,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBL;YAExC,IAAI;gBAEA,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,OAAO;oBACzC,OAAO;wBACHC;wBACAI;oBACJ;gBACJ;gBAEA,OAAOE,OAAO,EAAE;YACpB,EAAE,OAAOC,OAAO;gBACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;YACjD;QACJ;QAEA,OAAOJ;IACX;AACJ;AAEO,MAAMM,uBAAuBC,gBAAgB;IAChD,aAAaC;IACb,WAAWf;IACX,cAAc;QAACgB;KAA4B;AAC/C"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryRevisionRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
3
|
import type { CmsEntry, CmsModel } from "../../../types/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DeleteEntryRevisionStorageOperation } from "../../../features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js";
|
|
5
5
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
6
|
/**
|
|
7
7
|
* DeleteEntryRevisionRepository - Handles storage operations for deleting entry revisions.
|
|
8
8
|
*/
|
|
9
9
|
declare class DeleteEntryRevisionRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
10
10
|
private entryToStorageTransform;
|
|
11
|
-
private
|
|
12
|
-
constructor(entryToStorageTransform: EntryToStorageTransform.Interface,
|
|
11
|
+
private deleteEntryRevisionStorage;
|
|
12
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, deleteEntryRevisionStorage: DeleteEntryRevisionStorageOperation.Interface);
|
|
13
13
|
execute(params: {
|
|
14
14
|
model: CmsModel;
|
|
15
15
|
entry: CmsEntry;
|
|
16
16
|
latestEntry: CmsEntry | null;
|
|
17
17
|
}): Promise<Result<void, RepositoryAbstraction.Error>>;
|
|
18
18
|
}
|
|
19
|
-
export declare const DeleteEntryRevisionRepository:
|
|
19
|
+
export declare const DeleteEntryRevisionRepository: typeof DeleteEntryRevisionRepositoryImpl & {
|
|
20
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteEntryRevisionRepository>;
|
|
21
|
+
};
|
|
20
22
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryRevisionRepository } from "./abstractions.js";
|
|
3
3
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DeleteEntryRevisionStorageOperation } from "../../shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js";
|
|
5
5
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
6
|
import { isEntryLevelEntryMetaField, pickEntryMetaFields } from "../../../constants.js";
|
|
7
7
|
class DeleteEntryRevisionRepositoryImpl {
|
|
8
|
-
constructor(entryToStorageTransform,
|
|
8
|
+
constructor(entryToStorageTransform, deleteEntryRevisionStorage){
|
|
9
9
|
this.entryToStorageTransform = entryToStorageTransform;
|
|
10
|
-
this.
|
|
10
|
+
this.deleteEntryRevisionStorage = deleteEntryRevisionStorage;
|
|
11
11
|
}
|
|
12
12
|
async execute(params) {
|
|
13
13
|
const { model, entry, latestEntry } = params;
|
|
@@ -22,7 +22,7 @@ class DeleteEntryRevisionRepositoryImpl {
|
|
|
22
22
|
};
|
|
23
23
|
storageLatestEntry = await this.entryToStorageTransform(model, updatedLatestEntry);
|
|
24
24
|
}
|
|
25
|
-
await this.
|
|
25
|
+
await this.deleteEntryRevisionStorage.execute(model, {
|
|
26
26
|
entry,
|
|
27
27
|
storageEntry,
|
|
28
28
|
latestEntry: latestEntry,
|
|
@@ -34,12 +34,11 @@ class DeleteEntryRevisionRepositoryImpl {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
const DeleteEntryRevisionRepository_DeleteEntryRevisionRepository = createImplementation({
|
|
38
|
-
abstraction: DeleteEntryRevisionRepository,
|
|
37
|
+
const DeleteEntryRevisionRepository_DeleteEntryRevisionRepository = DeleteEntryRevisionRepository.createImplementation({
|
|
39
38
|
implementation: DeleteEntryRevisionRepositoryImpl,
|
|
40
39
|
dependencies: [
|
|
41
40
|
EntryToStorageTransform,
|
|
42
|
-
|
|
41
|
+
DeleteEntryRevisionStorageOperation
|
|
43
42
|
]
|
|
44
43
|
});
|
|
45
44
|
export { DeleteEntryRevisionRepository_DeleteEntryRevisionRepository as DeleteEntryRevisionRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js","sources":["../../../../src/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js","sources":["../../../../src/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryRevisionRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsModel } from \"~/types/index.js\";\nimport { DeleteEntryRevisionStorageOperation } from \"~/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport { isEntryLevelEntryMetaField, pickEntryMetaFields } from \"~/constants.js\";\n\n/**\n * DeleteEntryRevisionRepository - Handles storage operations for deleting entry revisions.\n */\nclass DeleteEntryRevisionRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private deleteEntryRevisionStorage: DeleteEntryRevisionStorageOperation.Interface\n ) {}\n\n async execute(params: {\n model: CmsModel;\n entry: CmsEntry;\n latestEntry: CmsEntry | null;\n }): Promise<Result<void, RepositoryAbstraction.Error>> {\n const { model, entry, latestEntry } = params;\n\n try {\n const storageEntry = await this.entryToStorageTransform(model, entry);\n\n let storageLatestEntry = null;\n if (latestEntry) {\n // Pick entry-level meta fields from the deleted entry to update the new latest\n const pickedEntryLevelMetaFields = pickEntryMetaFields(\n entry,\n isEntryLevelEntryMetaField\n );\n\n const updatedLatestEntry = {\n ...latestEntry,\n ...pickedEntryLevelMetaFields\n };\n\n storageLatestEntry = await this.entryToStorageTransform(model, updatedLatestEntry);\n }\n\n await this.deleteEntryRevisionStorage.execute(model, {\n entry,\n storageEntry,\n latestEntry: latestEntry,\n latestStorageEntry: storageLatestEntry\n });\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const DeleteEntryRevisionRepository = RepositoryAbstraction.createImplementation({\n implementation: DeleteEntryRevisionRepositoryImpl,\n dependencies: [EntryToStorageTransform, DeleteEntryRevisionStorageOperation]\n});\n"],"names":["DeleteEntryRevisionRepositoryImpl","entryToStorageTransform","deleteEntryRevisionStorage","params","model","entry","latestEntry","storageEntry","storageLatestEntry","pickedEntryLevelMetaFields","pickEntryMetaFields","isEntryLevelEntryMetaField","updatedLatestEntry","Result","error","EntryPersistenceError","DeleteEntryRevisionRepository","RepositoryAbstraction","EntryToStorageTransform","DeleteEntryRevisionStorageOperation"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,0BAAyE,CACnF;aAFUD,uBAAuB,GAAvBA;aACAC,0BAA0B,GAA1BA;IACT;IAEH,MAAM,QAAQC,MAIb,EAAsD;QACnD,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,WAAW,EAAE,GAAGH;QAEtC,IAAI;YACA,MAAMI,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAACH,OAAOC;YAE/D,IAAIG,qBAAqB;YACzB,IAAIF,aAAa;gBAEb,MAAMG,6BAA6BC,oBAC/BL,OACAM;gBAGJ,MAAMC,qBAAqB;oBACvB,GAAGN,WAAW;oBACd,GAAGG,0BAA0B;gBACjC;gBAEAD,qBAAqB,MAAM,IAAI,CAAC,uBAAuB,CAACJ,OAAOQ;YACnE;YAEA,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAACR,OAAO;gBACjDC;gBACAE;gBACA,aAAaD;gBACb,oBAAoBE;YACxB;YAEA,OAAOK,OAAO,EAAE;QACpB,EAAE,OAAOC,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,8DAAgCC,8BAAAA,oBAA0C,CAAC;IACpF,gBAAgBjB;IAChB,cAAc;QAACkB;QAAyBC;KAAoC;AAChF"}
|
|
@@ -32,5 +32,7 @@ declare class DeleteEntryRevisionUseCaseImpl implements UseCaseAbstraction.Inter
|
|
|
32
32
|
constructor(repository: DeleteEntryRevisionRepository.Interface, accessControl: AccessControl.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, getLatestRevision: GetLatestRevisionByEntryIdIncludingDeletedUseCase.Interface, getPreviousRevision: GetPreviousRevisionByEntryIdUseCase.Interface, deleteEntry: DeleteEntryUseCase.Interface, eventPublisher: EventPublisher.Interface);
|
|
33
33
|
execute(model: CmsModel, revisionId: string): Promise<Result<void, UseCaseAbstraction.Error>>;
|
|
34
34
|
}
|
|
35
|
-
export declare const DeleteEntryRevisionUseCase:
|
|
35
|
+
export declare const DeleteEntryRevisionUseCase: typeof DeleteEntryRevisionUseCaseImpl & {
|
|
36
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteEntryRevisionUseCase>;
|
|
37
|
+
};
|
|
36
38
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryRevisionRepository, DeleteEntryRevisionUseCase } from "./abstractions.js";
|
|
3
3
|
import { AccessControl } from "../../shared/abstractions.js";
|
|
4
4
|
import { GetRevisionByIdUseCase } from "../GetRevisionById/index.js";
|
|
@@ -82,8 +82,7 @@ class DeleteEntryRevisionUseCaseImpl {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
const DeleteEntryRevisionUseCase_DeleteEntryRevisionUseCase = createImplementation({
|
|
86
|
-
abstraction: DeleteEntryRevisionUseCase,
|
|
85
|
+
const DeleteEntryRevisionUseCase_DeleteEntryRevisionUseCase = DeleteEntryRevisionUseCase.createImplementation({
|
|
87
86
|
implementation: DeleteEntryRevisionUseCaseImpl,
|
|
88
87
|
dependencies: [
|
|
89
88
|
DeleteEntryRevisionRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js","sources":["../../../../src/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js","sources":["../../../../src/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryRevisionUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DeleteEntryRevisionRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"~/features/contentEntry/GetRevisionById/index.js\";\nimport { GetLatestRevisionByEntryIdIncludingDeletedUseCase } from \"~/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { GetPreviousRevisionByEntryIdUseCase } from \"~/features/contentEntry/GetPreviousRevisionByEntryId/index.js\";\nimport { DeleteEntryUseCase } from \"~/features/contentEntry/DeleteEntry/index.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n EntryRevisionBeforeDeleteEvent,\n EntryRevisionAfterDeleteEvent,\n EntryRevisionDeleteErrorEvent\n} from \"./events.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { EntryNotAuthorizedError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * DeleteEntryRevisionUseCase - Orchestrates deletion of a specific entry revision.\n *\n * Responsibilities:\n * - Parse revision ID to extract entry ID and version\n * - Apply access control\n * - Get the revision to delete\n * - Determine if this is the latest revision\n * - If latest and no previous revision exists, perform full entry delete\n * - If latest and previous exists, set previous as new latest\n * - Publish domain events\n * - Delegate to repository for storage operations\n */\nclass DeleteEntryRevisionUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private repository: DeleteEntryRevisionRepository.Interface,\n private accessControl: AccessControl.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private getLatestRevision: GetLatestRevisionByEntryIdIncludingDeletedUseCase.Interface,\n private getPreviousRevision: GetPreviousRevisionByEntryIdUseCase.Interface,\n private deleteEntry: DeleteEntryUseCase.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n revisionId: string\n ): Promise<Result<void, UseCaseAbstraction.Error>> {\n // Check access control\n const canAccess = await this.accessControl.canAccessEntry({ model, rwd: \"d\" });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n const { id: entryId, version } = parseIdentifier(revisionId);\n\n // Get the revision to delete\n const getRevisionResult = await this.getRevisionById.execute(model, revisionId);\n if (getRevisionResult.isFail()) {\n return Result.fail(getRevisionResult.error);\n }\n\n const entryToDelete = getRevisionResult.value;\n\n // Check access control on the specific entry\n const canAccessEntry = await this.accessControl.canAccessEntry({\n model,\n entry: entryToDelete,\n rwd: \"d\"\n });\n\n if (!canAccessEntry) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n // Get the latest revision\n const latestRevisionResult = await this.getLatestRevision.execute(model, { id: entryId });\n if (latestRevisionResult.isFail()) {\n return Result.fail(latestRevisionResult.error);\n }\n\n const latestRevision = latestRevisionResult.value;\n const latestRevisionId = latestRevision?.id || null;\n\n // Get the previous revision\n const previousRevisionResult = await this.getPreviousRevision.execute(model, {\n entryId,\n version: version as number\n });\n\n // If targeted record is the latest entry record and there is no previous revision,\n // delete the entire entry.\n const previousRevision = previousRevisionResult.isFail()\n ? null\n : previousRevisionResult.value;\n if (previousRevisionResult.isFail() && entryToDelete.id === latestRevisionId) {\n return await this.deleteEntry.execute(model, revisionId, {});\n }\n\n // Determine the entry to set as latest (if deleting current latest)\n let latestEntry = null;\n if (entryToDelete.id === latestRevisionId && previousRevision) {\n latestEntry = previousRevision;\n }\n\n try {\n // Publish before event\n await this.eventPublisher.publish(\n new EntryRevisionBeforeDeleteEvent({\n entry: entryToDelete,\n model\n })\n );\n\n // Delegate to repository\n const result = await this.repository.execute({\n model,\n entry: entryToDelete,\n latestEntry\n });\n\n if (result.isFail()) {\n await this.eventPublisher.publish(\n new EntryRevisionDeleteErrorEvent({\n entry: entryToDelete,\n model,\n error: result.error\n })\n );\n return Result.fail(result.error);\n }\n\n // Publish after event\n await this.eventPublisher.publish(\n new EntryRevisionAfterDeleteEvent({\n entry: entryToDelete,\n model\n })\n );\n\n return Result.ok();\n } catch (error) {\n await this.eventPublisher.publish(\n new EntryRevisionDeleteErrorEvent({\n entry: entryToDelete,\n model,\n error: error as Error\n })\n );\n return Result.fail(error as any);\n }\n }\n}\n\nexport const DeleteEntryRevisionUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeleteEntryRevisionUseCaseImpl,\n dependencies: [\n DeleteEntryRevisionRepository,\n AccessControl,\n GetRevisionByIdUseCase,\n GetLatestRevisionByEntryIdIncludingDeletedUseCase,\n GetPreviousRevisionByEntryIdUseCase,\n DeleteEntryUseCase,\n EventPublisher\n ]\n});\n"],"names":["DeleteEntryRevisionUseCaseImpl","repository","accessControl","getRevisionById","getLatestRevision","getPreviousRevision","deleteEntry","eventPublisher","model","revisionId","canAccess","Result","EntryNotAuthorizedError","entryId","version","parseIdentifier","getRevisionResult","entryToDelete","canAccessEntry","latestRevisionResult","latestRevision","latestRevisionId","previousRevisionResult","previousRevision","latestEntry","EntryRevisionBeforeDeleteEvent","result","EntryRevisionDeleteErrorEvent","EntryRevisionAfterDeleteEvent","error","DeleteEntryRevisionUseCase","UseCaseAbstraction","DeleteEntryRevisionRepository","AccessControl","GetRevisionByIdUseCase","GetLatestRevisionByEntryIdIncludingDeletedUseCase","GetPreviousRevisionByEntryIdUseCase","DeleteEntryUseCase","EventPublisher"],"mappings":";;;;;;;;;;;AA+BA,MAAMA;IACF,YACYC,UAAmD,EACnDC,aAAsC,EACtCC,eAAiD,EACjDC,iBAA8E,EAC9EC,mBAAkE,EAClEC,WAAyC,EACzCC,cAAwC,CAClD;aAPUN,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,eAAe,GAAfA;aACAC,iBAAiB,GAAjBA;aACAC,mBAAmB,GAAnBA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,UAAkB,EAC6B;QAE/C,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEF;YAAO,KAAK;QAAI;QAC5E,IAAI,CAACE,WACD,OAAOC,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACJ;QAGzD,MAAM,EAAE,IAAIK,OAAO,EAAEC,OAAO,EAAE,GAAGC,gBAAgBN;QAGjD,MAAMO,oBAAoB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAACR,OAAOC;QACpE,IAAIO,kBAAkB,MAAM,IACxB,OAAOL,OAAO,IAAI,CAACK,kBAAkB,KAAK;QAG9C,MAAMC,gBAAgBD,kBAAkB,KAAK;QAG7C,MAAME,iBAAiB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAC3DV;YACA,OAAOS;YACP,KAAK;QACT;QAEA,IAAI,CAACC,gBACD,OAAOP,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMO,uBAAuB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACX,OAAO;YAAE,IAAIK;QAAQ;QACvF,IAAIM,qBAAqB,MAAM,IAC3B,OAAOR,OAAO,IAAI,CAACQ,qBAAqB,KAAK;QAGjD,MAAMC,iBAAiBD,qBAAqB,KAAK;QACjD,MAAME,mBAAmBD,gBAAgB,MAAM;QAG/C,MAAME,yBAAyB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,OAAO;YACzEK;YACA,SAASC;QACb;QAIA,MAAMS,mBAAmBD,uBAAuB,MAAM,KAChD,OACAA,uBAAuB,KAAK;QAClC,IAAIA,uBAAuB,MAAM,MAAML,cAAc,EAAE,KAAKI,kBACxD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACb,OAAOC,YAAY,CAAC;QAI9D,IAAIe,cAAc;QAClB,IAAIP,cAAc,EAAE,KAAKI,oBAAoBE,kBACzCC,cAAcD;QAGlB,IAAI;YAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,+BAA+B;gBAC/B,OAAOR;gBACPT;YACJ;YAIJ,MAAMkB,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACzClB;gBACA,OAAOS;gBACPO;YACJ;YAEA,IAAIE,OAAO,MAAM,IAAI;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,8BAA8B;oBAC9B,OAAOV;oBACPT;oBACA,OAAOkB,OAAO,KAAK;gBACvB;gBAEJ,OAAOf,OAAO,IAAI,CAACe,OAAO,KAAK;YACnC;YAGA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,8BAA8B;gBAC9B,OAAOX;gBACPT;YACJ;YAGJ,OAAOG,OAAO,EAAE;QACpB,EAAE,OAAOkB,OAAO;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIF,8BAA8B;gBAC9B,OAAOV;gBACPT;gBACA,OAAOqB;YACX;YAEJ,OAAOlB,OAAO,IAAI,CAACkB;QACvB;IACJ;AACJ;AAEO,MAAMC,wDAA6BC,2BAAAA,oBAAuC,CAAC;IAC9E,gBAAgB/B;IAChB,cAAc;QACVgC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteMultipleEntriesRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { DeleteMultipleEntriesStorageOperation } from "../../../features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js";
|
|
4
4
|
import type { CmsModel } from "../../../types/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* DeleteMultipleEntriesRepository - Handles storage operations for deleting multiple entries.
|
|
@@ -10,9 +10,11 @@ import type { CmsModel } from "../../../types/index.js";
|
|
|
10
10
|
* - Handle storage errors
|
|
11
11
|
*/
|
|
12
12
|
declare class DeleteMultipleEntriesRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
13
|
-
private
|
|
14
|
-
constructor(
|
|
13
|
+
private deleteMultipleEntriesStorage;
|
|
14
|
+
constructor(deleteMultipleEntriesStorage: DeleteMultipleEntriesStorageOperation.Interface);
|
|
15
15
|
execute(model: CmsModel, entryIds: string[]): Promise<Result<void, RepositoryAbstraction.Error>>;
|
|
16
16
|
}
|
|
17
|
-
export declare const DeleteMultipleEntriesRepository:
|
|
17
|
+
export declare const DeleteMultipleEntriesRepository: typeof DeleteMultipleEntriesRepositoryImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteMultipleEntriesRepository>;
|
|
19
|
+
};
|
|
18
20
|
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteMultipleEntriesRepository } from "./abstractions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { DeleteMultipleEntriesStorageOperation } from "../../shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js";
|
|
4
4
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
5
5
|
class DeleteMultipleEntriesRepositoryImpl {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
6
|
+
constructor(deleteMultipleEntriesStorage){
|
|
7
|
+
this.deleteMultipleEntriesStorage = deleteMultipleEntriesStorage;
|
|
8
8
|
}
|
|
9
9
|
async execute(model, entryIds) {
|
|
10
10
|
try {
|
|
11
|
-
await this.
|
|
11
|
+
await this.deleteMultipleEntriesStorage.execute(model, {
|
|
12
12
|
entries: entryIds
|
|
13
13
|
});
|
|
14
14
|
return Result.ok();
|
|
@@ -17,11 +17,10 @@ class DeleteMultipleEntriesRepositoryImpl {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
const DeleteMultipleEntriesRepository_DeleteMultipleEntriesRepository = createImplementation({
|
|
21
|
-
abstraction: DeleteMultipleEntriesRepository,
|
|
20
|
+
const DeleteMultipleEntriesRepository_DeleteMultipleEntriesRepository = DeleteMultipleEntriesRepository.createImplementation({
|
|
22
21
|
implementation: DeleteMultipleEntriesRepositoryImpl,
|
|
23
22
|
dependencies: [
|
|
24
|
-
|
|
23
|
+
DeleteMultipleEntriesStorageOperation
|
|
25
24
|
]
|
|
26
25
|
});
|
|
27
26
|
export { DeleteMultipleEntriesRepository_DeleteMultipleEntriesRepository as DeleteMultipleEntriesRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js","sources":["../../../../src/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js","sources":["../../../../src/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteMultipleEntriesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { DeleteMultipleEntriesStorageOperation } from \"~/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * DeleteMultipleEntriesRepository - Handles storage operations for deleting multiple entries.\n *\n * Responsibilities:\n * - Call storage operation to delete multiple entries\n * - Handle storage errors\n */\nclass DeleteMultipleEntriesRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private deleteMultipleEntriesStorage: DeleteMultipleEntriesStorageOperation.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n entryIds: string[]\n ): Promise<Result<void, RepositoryAbstraction.Error>> {\n try {\n await this.deleteMultipleEntriesStorage.execute(model, {\n entries: entryIds\n });\n return Result.ok();\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const DeleteMultipleEntriesRepository = RepositoryAbstraction.createImplementation({\n implementation: DeleteMultipleEntriesRepositoryImpl,\n dependencies: [DeleteMultipleEntriesStorageOperation]\n});\n"],"names":["DeleteMultipleEntriesRepositoryImpl","deleteMultipleEntriesStorage","model","entryIds","Result","error","EntryPersistenceError","DeleteMultipleEntriesRepository","RepositoryAbstraction","DeleteMultipleEntriesStorageOperation"],"mappings":";;;;AAaA,MAAMA;IACF,YACYC,4BAA6E,CACvF;aADUA,4BAA4B,GAA5BA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,QAAkB,EACgC;QAClD,IAAI;YACA,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAACD,OAAO;gBACnD,SAASC;YACb;YACA,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOC,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,kEAAkCC,gCAAAA,oBAA0C,CAAC;IACtF,gBAAgBR;IAChB,cAAc;QAACS;KAAsC;AACzD"}
|
|
@@ -29,5 +29,7 @@ declare class DeleteMultipleEntriesUseCaseImpl implements UseCaseAbstraction.Int
|
|
|
29
29
|
id: string;
|
|
30
30
|
}>, UseCaseAbstraction.Error>>;
|
|
31
31
|
}
|
|
32
|
-
export declare const DeleteMultipleEntriesUseCase:
|
|
32
|
+
export declare const DeleteMultipleEntriesUseCase: typeof DeleteMultipleEntriesUseCaseImpl & {
|
|
33
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteMultipleEntriesUseCase>;
|
|
34
|
+
};
|
|
33
35
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
3
|
import { DeleteMultipleEntriesRepository, DeleteMultipleEntriesUseCase } from "./abstractions.js";
|
|
4
4
|
import { AccessControl } from "../../shared/abstractions.js";
|
|
@@ -81,8 +81,7 @@ class DeleteMultipleEntriesUseCaseImpl {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
const DeleteMultipleEntriesUseCase_DeleteMultipleEntriesUseCase = createImplementation({
|
|
85
|
-
abstraction: DeleteMultipleEntriesUseCase,
|
|
84
|
+
const DeleteMultipleEntriesUseCase_DeleteMultipleEntriesUseCase = DeleteMultipleEntriesUseCase.createImplementation({
|
|
86
85
|
implementation: DeleteMultipleEntriesUseCaseImpl,
|
|
87
86
|
dependencies: [
|
|
88
87
|
DeleteMultipleEntriesRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js","sources":["../../../../src/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js","sources":["../../../../src/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { DeleteMultipleEntriesUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DeleteMultipleEntriesRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { ListEntriesUseCase } from \"~/features/contentEntry/ListEntries/abstractions.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport {\n EntryBeforeDeleteMultipleEvent,\n EntryAfterDeleteMultipleEvent,\n EntryDeleteMultipleErrorEvent\n} from \"./events.js\";\nimport { EntryNotAuthorizedError } from \"~/domain/contentEntry/errors.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport WebinyError from \"@webiny/error\";\nimport { filterAsync } from \"~/utils/filterAsync.js\";\n\n/**\n * DeleteMultipleEntriesUseCase - Orchestrates deleting multiple entries.\n *\n * Responsibilities:\n * - Validate max entries limit (50)\n * - Parse entry IDs to unique entry IDs\n * - Apply access control\n * - Fetch entries using ListEntries use case\n * - Filter entries by access control\n * - Publish domain events\n * - Delegate to repository for storage operations\n */\nclass DeleteMultipleEntriesUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private repository: DeleteMultipleEntriesRepository.Interface,\n private accessControl: AccessControl.Interface,\n private listEntries: ListEntriesUseCase.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n params: { entries: string[] }\n ): Promise<Result<Array<{ id: string }>, UseCaseAbstraction.Error>> {\n const { entries: input } = params;\n const maxDeletableEntries = 50;\n\n // Parse entry IDs to unique entry IDs\n const entryIdList = new Set<string>();\n for (const id of input) {\n const { id: entryId } = parseIdentifier(id);\n entryIdList.add(entryId);\n }\n const ids = Array.from(entryIdList);\n\n // Validate max entries limit\n if (ids.length > maxDeletableEntries) {\n return Result.fail(\n new WebinyError(\n \"Cannot delete more than 50 entries at once.\",\n \"DELETE_ENTRIES_MAX\",\n {\n entries: ids\n }\n ) as any\n );\n }\n\n // Check access control\n const canAccess = await this.accessControl.canAccessEntry({ model, rwd: \"d\" });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n // Fetch entries using ListEntries use case\n const listResult = await this.listEntries.execute(model, {\n where: {\n latest: true,\n entryId_in: ids\n },\n limit: maxDeletableEntries + 1\n });\n\n if (listResult.isFail()) {\n return Result.fail(listResult.error);\n }\n\n const { entries } = listResult.value;\n\n // Filter entries by access control (only delete entries user can access)\n const accessibleEntries = await filterAsync(entries, async entry => {\n return this.accessControl.canAccessEntry({ model, entry });\n });\n\n const items = accessibleEntries.map(entry => entry.id);\n\n try {\n // Publish before event\n await this.eventPublisher.publish(\n new EntryBeforeDeleteMultipleEvent({\n entries,\n ids,\n model\n })\n );\n\n // Delegate to repository\n const result = await this.repository.execute(model, items);\n\n if (result.isFail()) {\n await this.eventPublisher.publish(\n new EntryDeleteMultipleErrorEvent({\n entries,\n ids,\n model,\n error: result.error\n })\n );\n return Result.fail(result.error);\n }\n\n // Publish after event\n await this.eventPublisher.publish(\n new EntryAfterDeleteMultipleEvent({\n entries,\n ids,\n model\n })\n );\n\n return Result.ok(\n items.map(id => {\n return { id };\n })\n );\n } catch (error) {\n await this.eventPublisher.publish(\n new EntryDeleteMultipleErrorEvent({\n entries,\n ids,\n model,\n error: error as Error\n })\n );\n return Result.fail(error as any);\n }\n }\n}\n\nexport const DeleteMultipleEntriesUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeleteMultipleEntriesUseCaseImpl,\n dependencies: [\n DeleteMultipleEntriesRepository,\n AccessControl,\n ListEntriesUseCase,\n EventPublisher\n ]\n});\n"],"names":["DeleteMultipleEntriesUseCaseImpl","repository","accessControl","listEntries","eventPublisher","model","params","input","maxDeletableEntries","entryIdList","Set","id","entryId","parseIdentifier","ids","Array","Result","WebinyError","canAccess","EntryNotAuthorizedError","listResult","entries","accessibleEntries","filterAsync","entry","items","EntryBeforeDeleteMultipleEvent","result","EntryDeleteMultipleErrorEvent","EntryAfterDeleteMultipleEvent","error","DeleteMultipleEntriesUseCase","UseCaseAbstraction","DeleteMultipleEntriesRepository","AccessControl","ListEntriesUseCase","EventPublisher"],"mappings":";;;;;;;;;;AA6BA,MAAMA;IACF,YACYC,UAAqD,EACrDC,aAAsC,EACtCC,WAAyC,EACzCC,cAAwC,CAClD;aAJUH,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAA6B,EACmC;QAChE,MAAM,EAAE,SAASC,KAAK,EAAE,GAAGD;QAC3B,MAAME,sBAAsB;QAG5B,MAAMC,cAAc,IAAIC;QACxB,KAAK,MAAMC,MAAMJ,MAAO;YACpB,MAAM,EAAE,IAAIK,OAAO,EAAE,GAAGC,gBAAgBF;YACxCF,YAAY,GAAG,CAACG;QACpB;QACA,MAAME,MAAMC,MAAM,IAAI,CAACN;QAGvB,IAAIK,IAAI,MAAM,GAAGN,qBACb,OAAOQ,OAAO,IAAI,CACd,IAAIC,cACA,+CACA,sBACA;YACI,SAASH;QACb;QAMZ,MAAMI,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEb;YAAO,KAAK;QAAI;QAC5E,IAAI,CAACa,WACD,OAAOF,OAAO,IAAI,CAACG,wBAAwB,SAAS,CAACd;QAIzD,MAAMe,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACf,OAAO;YACrD,OAAO;gBACH,QAAQ;gBACR,YAAYS;YAChB;YACA,OAAON,sBAAsB;QACjC;QAEA,IAAIY,WAAW,MAAM,IACjB,OAAOJ,OAAO,IAAI,CAACI,WAAW,KAAK;QAGvC,MAAM,EAAEC,OAAO,EAAE,GAAGD,WAAW,KAAK;QAGpC,MAAME,oBAAoB,MAAMC,YAAYF,SAAS,OAAMG,QAChD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;gBAAEnB;gBAAOmB;YAAM;QAG5D,MAAMC,QAAQH,kBAAkB,GAAG,CAACE,CAAAA,QAASA,MAAM,EAAE;QAErD,IAAI;YAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,+BAA+B;gBAC/BL;gBACAP;gBACAT;YACJ;YAIJ,MAAMsB,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACtB,OAAOoB;YAEpD,IAAIE,OAAO,MAAM,IAAI;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,8BAA8B;oBAC9BP;oBACAP;oBACAT;oBACA,OAAOsB,OAAO,KAAK;gBACvB;gBAEJ,OAAOX,OAAO,IAAI,CAACW,OAAO,KAAK;YACnC;YAGA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,8BAA8B;gBAC9BR;gBACAP;gBACAT;YACJ;YAGJ,OAAOW,OAAO,EAAE,CACZS,MAAM,GAAG,CAACd,CAAAA,KACC;oBAAEA;gBAAG;QAGxB,EAAE,OAAOmB,OAAO;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIF,8BAA8B;gBAC9BP;gBACAP;gBACAT;gBACA,OAAOyB;YACX;YAEJ,OAAOd,OAAO,IAAI,CAACc;QACvB;IACJ;AACJ;AAEO,MAAMC,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBhC;IAChB,cAAc;QACViC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntriesByIdsRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
3
|
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { GetEntriesByIdsStorageOperation } from "../../../features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js";
|
|
5
5
|
import { EntryFromStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
6
|
import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
|
|
7
7
|
/**
|
|
@@ -11,9 +11,11 @@ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
|
|
|
11
11
|
declare class GetEntriesByIdsRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
12
12
|
private tenantContext;
|
|
13
13
|
private entryFromStorageTransform;
|
|
14
|
-
private
|
|
15
|
-
constructor(tenantContext: TenantContext.Interface, entryFromStorageTransform: EntryFromStorageTransform.Interface,
|
|
14
|
+
private getEntriesByIdsStorage;
|
|
15
|
+
constructor(tenantContext: TenantContext.Interface, entryFromStorageTransform: EntryFromStorageTransform.Interface, getEntriesByIdsStorage: GetEntriesByIdsStorageOperation.Interface);
|
|
16
16
|
execute<T extends CmsEntryValues>(model: CmsModel, ids: string[]): Promise<Result<CmsEntry<T>[], RepositoryAbstraction.Error>>;
|
|
17
17
|
}
|
|
18
|
-
export declare const GetEntriesByIdsRepository:
|
|
18
|
+
export declare const GetEntriesByIdsRepository: typeof GetEntriesByIdsRepositoryImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetEntriesByIdsRepository>;
|
|
20
|
+
};
|
|
19
21
|
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntriesByIdsRepository } from "./abstractions.js";
|
|
3
3
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
|
-
import {
|
|
4
|
+
import { GetEntriesByIdsStorageOperation } from "../../shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js";
|
|
5
5
|
import { EntryFromStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
6
|
import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
|
|
7
7
|
class GetEntriesByIdsRepositoryImpl {
|
|
8
|
-
constructor(tenantContext, entryFromStorageTransform,
|
|
8
|
+
constructor(tenantContext, entryFromStorageTransform, getEntriesByIdsStorage){
|
|
9
9
|
this.tenantContext = tenantContext;
|
|
10
10
|
this.entryFromStorageTransform = entryFromStorageTransform;
|
|
11
|
-
this.
|
|
11
|
+
this.getEntriesByIdsStorage = getEntriesByIdsStorage;
|
|
12
12
|
}
|
|
13
13
|
async execute(model, ids) {
|
|
14
14
|
try {
|
|
@@ -16,7 +16,7 @@ class GetEntriesByIdsRepositoryImpl {
|
|
|
16
16
|
...model,
|
|
17
17
|
tenant: this.tenantContext.getTenant().id
|
|
18
18
|
};
|
|
19
|
-
const result = await this.
|
|
19
|
+
const result = await this.getEntriesByIdsStorage.execute(modelWithTenant, {
|
|
20
20
|
ids
|
|
21
21
|
});
|
|
22
22
|
const items = await Promise.all(result.map(async (entry)=>this.entryFromStorageTransform(model, entry)));
|
|
@@ -26,13 +26,12 @@ class GetEntriesByIdsRepositoryImpl {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
const GetEntriesByIdsRepository_GetEntriesByIdsRepository = createImplementation({
|
|
30
|
-
abstraction: GetEntriesByIdsRepository,
|
|
29
|
+
const GetEntriesByIdsRepository_GetEntriesByIdsRepository = GetEntriesByIdsRepository.createImplementation({
|
|
31
30
|
implementation: GetEntriesByIdsRepositoryImpl,
|
|
32
31
|
dependencies: [
|
|
33
32
|
TenantContext,
|
|
34
33
|
EntryFromStorageTransform,
|
|
35
|
-
|
|
34
|
+
GetEntriesByIdsStorageOperation
|
|
36
35
|
]
|
|
37
36
|
});
|
|
38
37
|
export { GetEntriesByIdsRepository_GetEntriesByIdsRepository as GetEntriesByIdsRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js","sources":["../../../../src/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js","sources":["../../../../src/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntriesByIdsRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { GetEntriesByIdsStorageOperation } from \"~/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js\";\nimport { EntryFromStorageTransform } from \"~/legacy/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/exports/api/tenancy.js\";\n\n/**\n * GetEntriesByIdsRepository - Fetches entries by IDs from storage and transforms them.\n * Returns array of entries.\n */\nclass GetEntriesByIdsRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private tenantContext: TenantContext.Interface,\n private entryFromStorageTransform: EntryFromStorageTransform.Interface,\n private getEntriesByIdsStorage: GetEntriesByIdsStorageOperation.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], RepositoryAbstraction.Error>> {\n try {\n const modelWithTenant = { ...model, tenant: this.tenantContext.getTenant().id };\n const result = await this.getEntriesByIdsStorage.execute<T>(modelWithTenant, {\n ids\n });\n\n // Transform storage entries to domain entries\n const items = await Promise.all(\n result.map(async entry => {\n return this.entryFromStorageTransform(model, entry);\n })\n );\n\n return Result.ok(items);\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const GetEntriesByIdsRepository = RepositoryAbstraction.createImplementation({\n implementation: GetEntriesByIdsRepositoryImpl,\n dependencies: [TenantContext, EntryFromStorageTransform, GetEntriesByIdsStorageOperation]\n});\n"],"names":["GetEntriesByIdsRepositoryImpl","tenantContext","entryFromStorageTransform","getEntriesByIdsStorage","model","ids","modelWithTenant","result","items","Promise","entry","Result","error","EntryPersistenceError","GetEntriesByIdsRepository","RepositoryAbstraction","TenantContext","EntryFromStorageTransform","GetEntriesByIdsStorageOperation"],"mappings":";;;;;;AAYA,MAAMA;IACF,YACYC,aAAsC,EACtCC,yBAA8D,EAC9DC,sBAAiE,CAC3E;aAHUF,aAAa,GAAbA;aACAC,yBAAyB,GAAzBA;aACAC,sBAAsB,GAAtBA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,GAAa,EAC8C;QAC3D,IAAI;YACA,MAAMC,kBAAkB;gBAAE,GAAGF,KAAK;gBAAE,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;YAAC;YAC9E,MAAMG,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAID,iBAAiB;gBACzED;YACJ;YAGA,MAAMG,QAAQ,MAAMC,QAAQ,GAAG,CAC3BF,OAAO,GAAG,CAAC,OAAMG,QACN,IAAI,CAAC,yBAAyB,CAACN,OAAOM;YAIrD,OAAOC,OAAO,EAAE,CAACH;QACrB,EAAE,OAAOI,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,sDAA4BC,0BAAAA,oBAA0C,CAAC;IAChF,gBAAgBf;IAChB,cAAc;QAACgB;QAAeC;QAA2BC;KAAgC;AAC7F"}
|
|
@@ -16,5 +16,7 @@ declare class GetEntriesByIdsUseCaseImpl implements UseCaseAbstraction.Interface
|
|
|
16
16
|
constructor(repository: GetEntriesByIdsRepository.Interface, accessControl: AccessControl.Interface);
|
|
17
17
|
execute<T extends CmsEntryValues>(model: CmsModel, ids: string[]): Promise<Result<CmsEntry<T>[], UseCaseAbstraction.Error>>;
|
|
18
18
|
}
|
|
19
|
-
export declare const GetEntriesByIdsUseCase:
|
|
19
|
+
export declare const GetEntriesByIdsUseCase: typeof GetEntriesByIdsUseCaseImpl & {
|
|
20
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetEntriesByIdsUseCase>;
|
|
21
|
+
};
|
|
20
22
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntriesByIdsRepository, GetEntriesByIdsUseCase } from "./abstractions.js";
|
|
3
3
|
import { AccessControl } from "../../shared/abstractions.js";
|
|
4
4
|
import { EntryNotAuthorizedError } from "../../../domain/contentEntry/errors.js";
|
|
@@ -17,8 +17,7 @@ class GetEntriesByIdsUseCaseImpl {
|
|
|
17
17
|
return Result.ok(result.value);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
const GetEntriesByIdsUseCase_GetEntriesByIdsUseCase = createImplementation({
|
|
21
|
-
abstraction: GetEntriesByIdsUseCase,
|
|
20
|
+
const GetEntriesByIdsUseCase_GetEntriesByIdsUseCase = GetEntriesByIdsUseCase.createImplementation({
|
|
22
21
|
implementation: GetEntriesByIdsUseCaseImpl,
|
|
23
22
|
dependencies: [
|
|
24
23
|
GetEntriesByIdsRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js","sources":["../../../../src/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {
|
|
1
|
+
{"version":3,"file":"features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js","sources":["../../../../src/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntriesByIdsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { GetEntriesByIdsRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryNotAuthorizedError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * GetEntriesByIdsUseCase - Orchestrates fetching entries by IDs with access control.\n *\n * Responsibilities:\n * - Apply access control\n * - Delegate to repository for data fetching\n */\nclass GetEntriesByIdsUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private repository: GetEntriesByIdsRepository.Interface,\n private accessControl: AccessControl.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], UseCaseAbstraction.Error>> {\n // Check access control\n const canAccess = await this.accessControl.canAccessEntry({ model });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n // Delegate to repository\n const result = await this.repository.execute<T>(model, ids);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const GetEntriesByIdsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetEntriesByIdsUseCaseImpl,\n dependencies: [GetEntriesByIdsRepository, AccessControl]\n});\n"],"names":["GetEntriesByIdsUseCaseImpl","repository","accessControl","model","ids","canAccess","Result","EntryNotAuthorizedError","result","GetEntriesByIdsUseCase","UseCaseAbstraction","GetEntriesByIdsRepository","AccessControl"],"mappings":";;;;AAcA,MAAMA;IACF,YACYC,UAA+C,EAC/CC,aAAsC,CAChD;aAFUD,UAAU,GAAVA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,GAAa,EAC2C;QAExD,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEF;QAAM;QAClE,IAAI,CAACE,WACD,OAAOC,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACJ;QAIzD,MAAMK,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAIL,OAAOC;QAEvD,IAAII,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAACE,OAAO,KAAK;QAGnC,OAAOF,OAAO,EAAE,CAACE,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAuC,CAAC;IAC1E,gBAAgBV;IAChB,cAAc;QAACW;QAA2BC;KAAc;AAC5D"}
|
|
@@ -11,5 +11,7 @@ declare class GetEntryUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
|
11
11
|
constructor(listEntriesUseCase: ListEntriesUseCase.Interface);
|
|
12
12
|
execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryGetParams): Promise<Result<CmsEntry<T>, UseCaseAbstraction.Error>>;
|
|
13
13
|
}
|
|
14
|
-
export declare const GetEntryUseCase:
|
|
14
|
+
export declare const GetEntryUseCase: typeof GetEntryUseCaseImpl & {
|
|
15
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetEntryUseCase>;
|
|
16
|
+
};
|
|
15
17
|
export {};
|