@webiny/api-headless-cms 6.4.11 → 6.6.0-alpha.1
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 +195 -0
- package/HeadlessCmsFeature.js.map +1 -0
- package/createCmsRoute.d.ts +26 -0
- package/createCmsRoute.js +59 -0
- package/createCmsRoute.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +1 -1
- package/crud/contentEntry/entryDataValidation.js +29 -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/defaultFields.js +3 -2
- package/crud/contentModel/defaultFields.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 +2 -0
- package/domain/contentModel/schemas.js +4 -2
- 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/model.d.ts +4 -1
- package/exports/api/cms/model.js +2 -0
- package/exports/api/cms/storage.d.ts +0 -1
- package/exports/api/cms/storage.js +0 -1
- package/features/ai/DescribeContentModelTool.d.ts +55 -0
- package/features/ai/DescribeContentModelTool.js +60 -0
- package/features/ai/DescribeContentModelTool.js.map +1 -0
- package/features/ai/ListContentModelsTool.d.ts +41 -0
- package/features/ai/ListContentModelsTool.js +44 -0
- package/features/ai/ListContentModelsTool.js.map +1 -0
- package/features/ai/QueryEntriesTool.d.ts +75 -0
- package/features/ai/QueryEntriesTool.js +90 -0
- package/features/ai/QueryEntriesTool.js.map +1 -0
- package/features/ai/feature.d.ts +8 -0
- package/features/ai/feature.js +15 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +4 -0
- package/features/ai/index.js +4 -0
- package/features/contentEntry/ContentEntriesFeature.js +0 -2
- package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
- package/features/contentEntry/CreateEntry/CreateEntryRepository.d.ts +7 -7
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js +8 -14
- 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 +7 -7
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +8 -14
- 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 +7 -7
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +8 -14
- 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 -6
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +8 -14
- 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 -6
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +8 -14
- 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 +7 -7
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +8 -13
- 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 +9 -7
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +15 -13
- 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 +7 -7
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/ListEntries/ListEntriesRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js +8 -13
- 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 +7 -7
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js +8 -14
- 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 +9 -7
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +12 -15
- 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 +7 -7
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +8 -14
- 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 +7 -7
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +8 -14
- 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 +7 -7
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +8 -14
- 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/ComponentMapGenerator/ComponentMapGenerator.d.ts +14 -0
- package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js +32 -0
- package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js.map +1 -0
- package/features/contentModel/ComponentMapGenerator/abstractions.d.ts +8 -0
- package/features/contentModel/ComponentMapGenerator/abstractions.js +5 -0
- package/features/contentModel/ComponentMapGenerator/abstractions.js.map +1 -0
- package/features/contentModel/ComponentMapGenerator/feature.d.ts +4 -0
- package/features/contentModel/ComponentMapGenerator/feature.js +11 -0
- package/features/contentModel/ComponentMapGenerator/feature.js.map +1 -0
- package/features/contentModel/ComponentMapGenerator/index.d.ts +2 -0
- package/features/contentModel/ComponentMapGenerator/index.js +2 -0
- package/features/contentModel/ContentModelFeature.js +6 -0
- package/features/contentModel/ContentModelFeature.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.d.ts +5 -6
- package/features/contentModel/CreateModel/CreateModelRepository.js +9 -12
- package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelUseCase.js +2 -2
- package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
- package/features/contentModel/CreateModel/abstractions.d.ts +1 -1
- package/features/contentModel/CreateModel/abstractions.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +5 -6
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +9 -12
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +2 -2
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
- package/features/contentModel/CreateModelFrom/abstractions.d.ts +1 -1
- package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelRepository.d.ts +4 -6
- package/features/contentModel/DeleteModel/DeleteModelRepository.js +6 -10
- 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/RefModelsGenerator/RefModelsGenerator.d.ts +19 -0
- package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js +56 -0
- package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js.map +1 -0
- package/features/contentModel/RefModelsGenerator/abstractions.d.ts +11 -0
- package/features/contentModel/RefModelsGenerator/abstractions.js +5 -0
- package/features/contentModel/RefModelsGenerator/abstractions.js.map +1 -0
- package/features/contentModel/RefModelsGenerator/feature.d.ts +4 -0
- package/features/contentModel/RefModelsGenerator/feature.js +11 -0
- package/features/contentModel/RefModelsGenerator/feature.js.map +1 -0
- package/features/contentModel/RefModelsGenerator/index.d.ts +2 -0
- package/features/contentModel/RefModelsGenerator/index.js +2 -0
- package/features/contentModel/UpdateModel/UpdateModelRepository.d.ts +7 -6
- package/features/contentModel/UpdateModel/UpdateModelRepository.js +12 -12
- package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
- package/features/contentModel/UpdateModel/abstractions.d.ts +1 -1
- package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.d.ts +16 -0
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js +53 -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 +11 -7
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +19 -19
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +6 -2
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +9 -8
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/abstractions.d.ts +1 -1
- package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.d.ts +9 -7
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +12 -14
- 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 +7 -7
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +9 -14
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +3 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +4 -5
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/abstractions.d.ts +1 -1
- package/features/contentModelGroup/UpdateGroup/abstractions.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/feature.js +2 -0
- package/features/graphql/feature.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/AssetToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/AssetToGraphQL.js +148 -0
- package/features/graphql/fields/base/AssetToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js +5 -1
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/ObjectToGraphQL.js +2 -2
- package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/RefToGraphQL.d.ts +1 -1
- package/features/graphql/fields/base/RefToGraphQL.js +10 -18
- 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/abstractions.d.ts +10 -0
- package/features/modelBuilder/abstractions.js.map +1 -1
- package/features/modelBuilder/feature.js +2 -0
- package/features/modelBuilder/feature.js.map +1 -1
- package/features/modelBuilder/fields/AssetFieldType.d.ts +20 -0
- package/features/modelBuilder/fields/AssetFieldType.js +46 -0
- package/features/modelBuilder/fields/AssetFieldType.js.map +1 -0
- package/features/modelBuilder/fields/DataFieldBuilder.d.ts +54 -18
- package/features/modelBuilder/fields/DataFieldBuilder.js +3 -0
- package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/DynamicZoneFieldType.d.ts +1 -0
- package/features/modelBuilder/fields/DynamicZoneFieldType.js +2 -6
- 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/resolveAssetUrl.d.ts +35 -0
- package/features/modelBuilder/fields/resolveAssetUrl.js +26 -0
- package/features/modelBuilder/fields/resolveAssetUrl.js.map +1 -0
- package/features/modelBuilder/index.d.ts +1 -1
- package/features/modelBuilder/models/BaseModelBuilder.d.ts +3 -1
- package/features/modelBuilder/models/BaseModelBuilder.js +7 -0
- package/features/modelBuilder/models/BaseModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/PrivateModelBuilder.js +2 -1
- package/features/modelBuilder/models/PrivateModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/PublicModelBuilder.js +2 -1
- package/features/modelBuilder/models/PublicModelBuilder.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/features/sortMapper/SortMapper.js +2 -5
- package/features/sortMapper/SortMapper.js.map +1 -1
- package/features/whereMapper/WhereMapper.js +7 -5
- package/features/whereMapper/WhereMapper.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -7
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- 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 +5 -4
- package/graphql/schema/cms/getEntryResolver.js.map +1 -1
- package/graphql/schema/cms/getModelResolver.d.ts +35 -0
- package/graphql/schema/cms/getModelResolver.js +49 -0
- package/graphql/schema/cms/getModelResolver.js.map +1 -0
- package/graphql/schema/cms/helpers/buildFieldsSelection.js +9 -2
- package/graphql/schema/cms/helpers/buildFieldsSelection.js.map +1 -1
- package/graphql/schema/cms/helpers/expandFieldWildcards.d.ts +2 -0
- package/graphql/schema/cms/helpers/expandFieldWildcards.js +13 -0
- package/graphql/schema/cms/helpers/expandFieldWildcards.js.map +1 -0
- 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/index.d.ts +1 -0
- package/graphql/schema/cms/helpers/index.js +1 -0
- package/graphql/schema/cms/helpers.d.ts +1 -0
- package/graphql/schema/cms/helpers.js +1 -0
- package/graphql/schema/cms/listEntriesResolver.js +5 -4
- 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/getModel.d.ts +8 -0
- package/graphql/schema/cms/resolvers/getModel.js +18 -0
- package/graphql/schema/cms/resolvers/getModel.js.map +1 -0
- package/graphql/schema/cms/resolvers/index.d.ts +1 -0
- package/graphql/schema/cms/resolvers/index.js +1 -0
- 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 +2 -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 +6 -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 +68 -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 +23 -29
- 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/CmsModelPlugin.js +2 -1
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/index.d.ts +0 -1
- package/plugins/index.js +0 -1
- package/types/fields/dynamicZoneField.d.ts +1 -0
- package/types/model.d.ts +6 -0
- package/types/modelField.d.ts +2 -0
- 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/features/runtimeTenant/RuntimeTenant.d.ts +0 -13
- package/features/runtimeTenant/RuntimeTenant.js +0 -22
- package/features/runtimeTenant/RuntimeTenant.js.map +0 -1
- package/features/runtimeTenant/abstractions.d.ts +0 -11
- package/features/runtimeTenant/abstractions.js +0 -5
- package/features/runtimeTenant/abstractions.js.map +0 -1
- package/features/runtimeTenant/index.d.ts +0 -2
- package/features/runtimeTenant/index.js +0 -2
- 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":"crud/contentEntry/entryDataValidation.js","sources":["../../../src/crud/contentEntry/entryDataValidation.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport camelCase from \"lodash/camelCase.js\";\nimport { EntryValidationError } from \"~/domain/contentEntry/errors.js\";\nimport {\n type CmsModelFieldValidator,\n CmsModelFieldValidatorRegistry\n} from \"~/features/validation/index.js\";\n\ntype PluginValidationCallable = (\n params: CmsModelFieldValidator.Params\n) => CmsModelFieldValidator.Response;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\n\ninterface ExecuteValidationParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n const { validatorList, context, field, model, entry } = params;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n } else if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n for (const predefinedValue of predefinedValues) {\n /**\n * No strict compare because the value sent can be 12345 (number) and predefinedValue can be \"12345\" (string),\n * and we want it to match.\n */\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n\nconst getFieldValidation = (\n listValidation?: CmsModelFieldValidation[]\n): CmsModelFieldValidation[] => {\n if (!listValidation?.length) {\n return [];\n }\n return listValidation.filter(item => item.name !== \"dynamicZone\");\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { field, values: initialValues } = params;\n const values = initialValues[field.fieldId as keyof TValues] as\n | PossibleValue[]\n | null\n | undefined;\n const valuesError = await validateValue(\n params,\n getFieldValidation(field.listValidation),\n values\n );\n if (valuesError) {\n return valuesError;\n }\n if (values === null || values === undefined) {\n return null;\n }\n for (const value of values) {\n const valueError = await validateValue(params, getFieldValidation(field.validation), value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { values, field } = params;\n const value = values[field.fieldId as keyof TValues];\n const error = await validateValue(params, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (params: ExecuteValidationParams): Promise<string | null> => {\n const { field } = params;\n if (field.list) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\ninterface IValidateModelEntryDataParams<TValues extends CmsEntryValues = CmsEntryValues> {\n context: CmsContext;\n model: CmsModel;\n values: TValues;\n entry?: CmsEntry<TValues>;\n skipValidators?: string[];\n}\n\nexport const validateModelEntryData = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const { context, model, entry, values, skipValidators } = params;\n\n const isValidatorSkipped = (validator: CmsModelFieldValidator.Interface) => {\n if (!skipValidators) {\n return false;\n }\n return skipValidators.includes(camelCase(validator.name));\n };\n\n const skippedValidators = new Set<string>();\n\n const validatorList: PluginValidationList = {};\n const registry = context.container.resolve(CmsModelFieldValidatorRegistry);\n const validators = registry.getAll();\n for (const validator of validators) {\n const name = validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n const isSkipped = isValidatorSkipped(validator);\n if (isSkipped) {\n skippedValidators.add(name);\n validatorList[name].push(async () => {\n return true;\n });\n continue;\n }\n validatorList[name].push(params => {\n return validator.validate(params);\n });\n }\n /**\n * No point in continuing if all validators are skipped.\n */\n const keys = Object.keys(validatorList);\n if (keys.length === skippedValidators.size) {\n return [];\n }\n\n return await validate<TValues>({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n values: {\n ...entry?.values,\n ...values\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async <\n TValues extends CmsEntryValues = CmsEntryValues\n>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new EntryValidationError(\"Validation failed.\", invalidFields);\n};\n\n/**\n *\n */\ninterface FieldError {\n id: string;\n fieldId: string;\n storageId: string;\n error: any;\n parents: string[];\n}\n\ninterface ValidateFieldParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n field: CmsModelField;\n entry?: CmsEntry<TValues>;\n}\n\nconst executeFieldValidation = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldParams<TValues>\n): Promise<FieldError[]> => {\n // TODO put per-field validation into plugins.\n const { field } = params;\n /**\n * Object field.\n */\n if (field.type === \"object\") {\n const fields = field.settings?.fields;\n if (!Array.isArray(fields)) {\n return [];\n }\n const validations: FieldError[] = [];\n /**\n * We need to validate the object field as well.\n */\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n const objectValue = params.values[field.fieldId as keyof TValues];\n if (!objectValue) {\n return validations;\n }\n const values = (Array.isArray(objectValue) ? objectValue : [objectValue]) as TValues[];\n for (const index in values) {\n const parents = field.list ? [field.fieldId, index] : [field.fieldId];\n const value = values[index] as TValues;\n for (const childField of fields) {\n const errors = await executeFieldValidation<typeof value>({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: value\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n return validations;\n }\n /**\n * Dynamic Zone Field\n */\n //\n else if (field.type === \"dynamicZone\") {\n const validations: FieldError[] = [];\n\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n\n const templates = (field.settings?.templates || []) as CmsDynamicZoneTemplate[];\n for (const template of templates) {\n const fields = template.fields;\n const fieldData = params.values[field.fieldId as keyof TValues];\n if (!fieldData) {\n continue;\n }\n const values: TValues[keyof TValues][] = Array.isArray(fieldData)\n ? fieldData\n : [fieldData];\n for (const index in values) {\n const templateValue = values[index]?.[template.gqlTypeName];\n if (!templateValue) {\n continue;\n }\n /**\n * Order of the parents must be\n * - fieldId\n * - index (if multiple values)\n * - gqlTypeName\n */\n const parents = [field.fieldId];\n if (field.list) {\n parents.push(index);\n }\n parents.push(template.gqlTypeName);\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: templateValue\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n }\n\n return validations;\n }\n const error = await execValidation({\n ...params\n });\n if (!error) {\n return [];\n }\n return [\n {\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n }\n ];\n};\n\ninterface ValidateFieldsParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n fields: CmsModelField[];\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\nconst validate = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldsParams<TValues>\n): Promise<FieldError[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n\n const results = await Promise.all(\n fields.map(async field => {\n return await executeFieldValidation<TValues>({\n ...params,\n field\n });\n })\n );\n\n for (const result of results) {\n if (result.length === 0) {\n continue;\n }\n errors.push(...result);\n }\n return errors;\n};\n"],"names":["validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","validate","result","ex","validatePredefinedValue","enabled","predefinedValues","Array","predefinedValue","getFieldValidation","listValidation","item","runFieldMultipleValuesValidations","initialValues","values","valuesError","valueError","predefinedValueError","runFieldValueValidations","error","execValidation","validateModelEntryData","skipValidators","isValidatorSkipped","validator","camelCase","skippedValidators","Set","registry","CmsModelFieldValidatorRegistry","validators","isSkipped","keys","Object","validateModelEntryDataOrThrow","invalidFields","EntryValidationError","executeFieldValidation","fields","objectValue","index","parents","childField","errors","templates","template","fieldData","templateValue","results","Promise"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud/contentEntry/entryDataValidation.js","sources":["../../../src/crud/contentEntry/entryDataValidation.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { EntryValidationError } from \"~/domain/contentEntry/errors.js\";\nimport {\n type CmsModelFieldValidator,\n CmsModelFieldValidatorRegistry\n} from \"~/features/validation/index.js\";\n\ntype PluginValidationCallable = (\n params: CmsModelFieldValidator.Params\n) => CmsModelFieldValidator.Response;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\n\ninterface ExecuteValidationParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n const { validatorList, context, field, model, entry } = params;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n } else if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n for (const predefinedValue of predefinedValues) {\n /**\n * No strict compare because the value sent can be 12345 (number) and predefinedValue can be \"12345\" (string),\n * and we want it to match.\n */\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst TIME_RE = /^\\d{2}:\\d{2}(:\\d{2})?$/;\nconst DATETIME_RE = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}/;\n\nconst validateDatetimeFormat = (field: CmsModelField, value: any): string | null => {\n if (field.type !== \"datetime\") {\n return null;\n }\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n if (typeof value !== \"string\") {\n return null;\n }\n\n const dateType = field.settings?.type;\n\n switch (dateType) {\n case \"date\":\n if (!DATE_RE.test(value)) {\n return `Invalid date format for field \"${field.fieldId}\". Expected YYYY-MM-DD.`;\n }\n return null;\n case \"time\":\n if (!TIME_RE.test(value)) {\n return `Invalid time format for field \"${field.fieldId}\". Expected HH:mm or HH:mm:ss.`;\n }\n return null;\n case \"dateTimeWithTimezone\":\n case \"dateTimeWithoutTimezone\":\n if (!DATETIME_RE.test(value)) {\n return `Invalid dateTime format for field \"${field.fieldId}\". Expected ISO 8601 dateTime.`;\n }\n return null;\n default:\n return null;\n }\n};\n\nconst getFieldValidation = (\n listValidation?: CmsModelFieldValidation[]\n): CmsModelFieldValidation[] => {\n if (!listValidation?.length) {\n return [];\n }\n // Filter out the legacy \"dynamicZone\" validator that was never implemented.\n // Existing models may still have it in their persisted listValidation data.\n return listValidation.filter(item => item.name !== \"dynamicZone\");\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { field, values: initialValues } = params;\n const values = initialValues[field.fieldId as keyof TValues] as\n | PossibleValue[]\n | null\n | undefined;\n const valuesError = await validateValue(\n params,\n getFieldValidation(field.listValidation),\n values\n );\n if (valuesError) {\n return valuesError;\n }\n if (values === null || values === undefined) {\n return null;\n }\n for (const value of values) {\n const datetimeError = validateDatetimeFormat(field, value);\n if (datetimeError) {\n return datetimeError;\n }\n const valueError = await validateValue(params, getFieldValidation(field.validation), value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { values, field } = params;\n const value = values[field.fieldId as keyof TValues];\n const datetimeError = validateDatetimeFormat(field, value);\n if (datetimeError) {\n return datetimeError;\n }\n const error = await validateValue(params, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (params: ExecuteValidationParams): Promise<string | null> => {\n const { field } = params;\n if (field.list) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\ninterface IValidateModelEntryDataParams<TValues extends CmsEntryValues = CmsEntryValues> {\n context: CmsContext;\n model: CmsModel;\n values: TValues;\n entry?: CmsEntry<TValues>;\n skipValidation?: boolean;\n}\n\nexport const validateModelEntryData = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const { context, model, entry, values, skipValidation } = params;\n\n if (skipValidation) {\n return [];\n }\n\n const validatorList: PluginValidationList = {};\n const registry = context.container.resolve(CmsModelFieldValidatorRegistry);\n const validators = registry.getAll();\n for (const validator of validators) {\n const name = validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n validatorList[name].push(params => {\n return validator.validate(params);\n });\n }\n\n return await validate<TValues>({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n values: {\n ...entry?.values,\n ...values\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async <\n TValues extends CmsEntryValues = CmsEntryValues\n>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new EntryValidationError(\"Validation failed.\", invalidFields);\n};\n\n/**\n *\n */\ninterface FieldError {\n id: string;\n fieldId: string;\n storageId: string;\n error: any;\n parents: string[];\n}\n\ninterface ValidateFieldParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n field: CmsModelField;\n entry?: CmsEntry<TValues>;\n}\n\nconst executeFieldValidation = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldParams<TValues>\n): Promise<FieldError[]> => {\n // TODO put per-field validation into plugins.\n const { field } = params;\n /**\n * Object field.\n */\n if (field.type === \"object\") {\n const fields = field.settings?.fields;\n if (!Array.isArray(fields)) {\n return [];\n }\n const validations: FieldError[] = [];\n /**\n * We need to validate the object field as well.\n */\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n const objectValue = params.values[field.fieldId as keyof TValues];\n if (!objectValue) {\n return validations;\n }\n const values = (Array.isArray(objectValue) ? objectValue : [objectValue]) as TValues[];\n for (const index in values) {\n const parents = field.list ? [field.fieldId, index] : [field.fieldId];\n const value = values[index] as TValues;\n for (const childField of fields) {\n const errors = await executeFieldValidation<typeof value>({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: value\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n return validations;\n }\n /**\n * Dynamic Zone Field\n */\n //\n else if (field.type === \"dynamicZone\") {\n const validations: FieldError[] = [];\n\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n\n const templates = (field.settings?.templates || []) as CmsDynamicZoneTemplate[];\n for (const template of templates) {\n const fields = template.fields;\n const fieldData = params.values[field.fieldId as keyof TValues];\n if (!fieldData) {\n continue;\n }\n const values: TValues[keyof TValues][] = Array.isArray(fieldData)\n ? fieldData\n : [fieldData];\n for (const index in values) {\n const templateValue = values[index]?.[template.gqlTypeName];\n if (!templateValue) {\n continue;\n }\n /**\n * Order of the parents must be\n * - fieldId\n * - index (if multiple values)\n * - gqlTypeName\n */\n const parents = [field.fieldId];\n if (field.list) {\n parents.push(index);\n }\n parents.push(template.gqlTypeName);\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: templateValue\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n }\n\n return validations;\n }\n const error = await execValidation({\n ...params\n });\n if (!error) {\n return [];\n }\n return [\n {\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n }\n ];\n};\n\ninterface ValidateFieldsParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n fields: CmsModelField[];\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\nconst validate = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldsParams<TValues>\n): Promise<FieldError[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n\n const results = await Promise.all(\n fields.map(async field => {\n return await executeFieldValidation<TValues>({\n ...params,\n field\n });\n })\n );\n\n for (const result of results) {\n if (result.length === 0) {\n continue;\n }\n errors.push(...result);\n }\n return errors;\n};\n"],"names":["validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","validate","result","ex","validatePredefinedValue","enabled","predefinedValues","Array","predefinedValue","DATE_RE","TIME_RE","DATETIME_RE","validateDatetimeFormat","dateType","getFieldValidation","listValidation","item","runFieldMultipleValuesValidations","initialValues","values","valuesError","datetimeError","valueError","predefinedValueError","runFieldValueValidations","error","execValidation","validateModelEntryData","skipValidation","registry","CmsModelFieldValidatorRegistry","validators","validator","validateModelEntryDataOrThrow","invalidFields","EntryValidationError","executeFieldValidation","fields","objectValue","index","parents","childField","errors","templates","template","fieldData","templateValue","results","Promise"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CmsContext } from "../../../types/index.js";
|
|
2
2
|
interface ValidateReferencedEntriesParams {
|
|
3
3
|
output: Record<string, any>;
|
|
4
|
-
context: Pick<CmsContext, "
|
|
4
|
+
context: Pick<CmsContext, "container">;
|
|
5
5
|
referenceFieldPaths: string[];
|
|
6
6
|
}
|
|
7
7
|
export declare const validateReferencedEntries: ({ output, context, referenceFieldPaths }: ValidateReferencedEntriesParams) => Promise<void>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
|
|
1
2
|
import dot_prop_immutable from "dot-prop-immutable";
|
|
2
3
|
import { WebinyError } from "@webiny/error";
|
|
4
|
+
import { ListModelsUseCase } from "../../../features/contentModel/ListModels/index.js";
|
|
5
|
+
import { GetEntriesByIdsUseCase } from "../../../features/contentEntry/GetEntriesByIds/index.js";
|
|
3
6
|
const getReferenceFieldValue = (ref)=>{
|
|
4
7
|
if (!ref?.id || !ref.modelId) return null;
|
|
5
8
|
return ref;
|
|
@@ -15,14 +18,21 @@ const validateReferencedEntries = async ({ output, context, referenceFieldPaths
|
|
|
15
18
|
referencesByModel.set(result.modelId, refs);
|
|
16
19
|
}
|
|
17
20
|
if (0 === referencesByModel.size) return;
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const modelsResult = await context.container.resolve(IdentityContext).withoutAuthorization(async ()=>context.container.resolve(ListModelsUseCase).execute());
|
|
22
|
+
if (modelsResult.isFail()) throw modelsResult.error;
|
|
23
|
+
const models = modelsResult.value.filter((model)=>{
|
|
24
|
+
const entries = referencesByModel.get(model.modelId) || [];
|
|
25
|
+
return entries.length > 0;
|
|
26
|
+
});
|
|
23
27
|
if (!models.length) return;
|
|
24
|
-
const
|
|
25
|
-
|
|
28
|
+
const allEntries = await context.container.resolve(IdentityContext).withoutAuthorization(async ()=>{
|
|
29
|
+
const fetches = models.map(async (model)=>{
|
|
30
|
+
const result = await context.container.resolve(GetEntriesByIdsUseCase).execute(model, referencesByModel.get(model.modelId) || []);
|
|
31
|
+
if (result.isFail()) throw result.error;
|
|
32
|
+
return result.value;
|
|
33
|
+
});
|
|
34
|
+
return (await Promise.all(fetches)).flat();
|
|
35
|
+
});
|
|
26
36
|
const entriesByModel = allEntries.reduce((acc, entry)=>({
|
|
27
37
|
...acc,
|
|
28
38
|
[entry.modelId]: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud/contentEntry/references/validateEntries.js","sources":["../../../../src/crud/contentEntry/references/validateEntries.ts"],"sourcesContent":["import type { CmsContext } from \"~/types/index.js\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport { WebinyError } from \"@webiny/error\";\n\ninterface ReferenceObject {\n id: string;\n modelId: string;\n}\n\ninterface ValidateReferencedEntriesParams {\n output: Record<string, any>;\n context: Pick<CmsContext, \"
|
|
1
|
+
{"version":3,"file":"crud/contentEntry/references/validateEntries.js","sources":["../../../../src/crud/contentEntry/references/validateEntries.ts"],"sourcesContent":["import { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport type { CmsContext } from \"~/types/index.js\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport { WebinyError } from \"@webiny/error\";\nimport { ListModelsUseCase } from \"~/features/contentModel/ListModels/index.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\n\ninterface ReferenceObject {\n id: string;\n modelId: string;\n}\n\ninterface ValidateReferencedEntriesParams {\n output: Record<string, any>;\n context: Pick<CmsContext, \"container\">;\n referenceFieldPaths: string[];\n}\n\nconst getReferenceFieldValue = (\n ref: Partial<ReferenceObject> | null | undefined\n): ReferenceObject | null => {\n if (!ref?.id || !ref.modelId) {\n return null;\n }\n return ref as ReferenceObject;\n};\n\nexport const validateReferencedEntries = async ({\n output,\n context,\n referenceFieldPaths\n}: ValidateReferencedEntriesParams) => {\n const referencesByModel = new Map<string, string[]>();\n\n /**\n * Group references by modelId.\n */\n for (const path of referenceFieldPaths) {\n const ref = dotPropImmutable.get(output, path) as ReferenceObject | any;\n\n const result = getReferenceFieldValue(ref);\n\n if (!result) {\n continue;\n }\n\n const refs = referencesByModel.get(result.modelId) || [];\n refs.push(result.id);\n referencesByModel.set(result.modelId, refs);\n }\n\n if (referencesByModel.size === 0) {\n return;\n }\n\n /**\n * Load all models and use only those that are used in reference.\n */\n const modelsResult = await context.container\n .resolve(IdentityContext)\n .withoutAuthorization(async () => {\n return context.container.resolve(ListModelsUseCase).execute();\n });\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n const models = modelsResult.value.filter(model => {\n const entries = referencesByModel.get(model.modelId) || [];\n return entries.length > 0;\n });\n\n if (!models.length) {\n return;\n }\n\n /**\n * Load all the entries by their IDs.\n */\n const allEntries = await context.container\n .resolve(IdentityContext)\n .withoutAuthorization(async () => {\n const fetches = models.map(async model => {\n const result = await context.container\n .resolve(GetEntriesByIdsUseCase)\n .execute(model, referencesByModel.get(model.modelId) || []);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n return (await Promise.all(fetches)).flat();\n });\n const entriesByModel = allEntries.reduce<Record<string, string[]>>((acc, entry) => {\n return { ...acc, [entry.modelId]: [...(acc[entry.modelId] || []), entry.id] };\n }, {});\n\n /**\n * Verify that all entries exist.\n */\n referencesByModel.forEach((ids, modelId) => {\n const modelEntriesInDb = entriesByModel[modelId];\n for (const id of ids) {\n if (!modelEntriesInDb || !modelEntriesInDb.includes(id)) {\n throw new WebinyError(\n `Missing referenced entry with id \"${id}\" in model \"${modelId}\".`,\n \"ENTRY_NOT_FOUND\",\n {\n id,\n model: modelId\n }\n );\n }\n }\n });\n};\n"],"names":["getReferenceFieldValue","ref","validateReferencedEntries","output","context","referenceFieldPaths","referencesByModel","Map","path","dotPropImmutable","result","refs","modelsResult","IdentityContext","ListModelsUseCase","models","model","entries","allEntries","fetches","GetEntriesByIdsUseCase","Promise","entriesByModel","acc","entry","ids","modelId","modelEntriesInDb","id","WebinyError"],"mappings":";;;;;AAkBA,MAAMA,yBAAyB,CAC3BC;IAEA,IAAI,CAACA,KAAK,MAAM,CAACA,IAAI,OAAO,EACxB,OAAO;IAEX,OAAOA;AACX;AAEO,MAAMC,4BAA4B,OAAO,EAC5CC,MAAM,EACNC,OAAO,EACPC,mBAAmB,EACW;IAC9B,MAAMC,oBAAoB,IAAIC;IAK9B,KAAK,MAAMC,QAAQH,oBAAqB;QACpC,MAAMJ,MAAMQ,mBAAAA,GAAoB,CAACN,QAAQK;QAEzC,MAAME,SAASV,uBAAuBC;QAEtC,IAAI,CAACS,QACD;QAGJ,MAAMC,OAAOL,kBAAkB,GAAG,CAACI,OAAO,OAAO,KAAK,EAAE;QACxDC,KAAK,IAAI,CAACD,OAAO,EAAE;QACnBJ,kBAAkB,GAAG,CAACI,OAAO,OAAO,EAAEC;IAC1C;IAEA,IAAIL,AAA2B,MAA3BA,kBAAkB,IAAI,EACtB;IAMJ,MAAMM,eAAe,MAAMR,QAAQ,SAAS,CACvC,OAAO,CAACS,iBACR,oBAAoB,CAAC,UACXT,QAAQ,SAAS,CAAC,OAAO,CAACU,mBAAmB,OAAO;IAEnE,IAAIF,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;IAE5B,MAAMG,SAASH,aAAa,KAAK,CAAC,MAAM,CAACI,CAAAA;QACrC,MAAMC,UAAUX,kBAAkB,GAAG,CAACU,MAAM,OAAO,KAAK,EAAE;QAC1D,OAAOC,QAAQ,MAAM,GAAG;IAC5B;IAEA,IAAI,CAACF,OAAO,MAAM,EACd;IAMJ,MAAMG,aAAa,MAAMd,QAAQ,SAAS,CACrC,OAAO,CAACS,iBACR,oBAAoB,CAAC;QAClB,MAAMM,UAAUJ,OAAO,GAAG,CAAC,OAAMC;YAC7B,MAAMN,SAAS,MAAMN,QAAQ,SAAS,CACjC,OAAO,CAACgB,wBACR,OAAO,CAACJ,OAAOV,kBAAkB,GAAG,CAACU,MAAM,OAAO,KAAK,EAAE;YAC9D,IAAIN,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QACA,OAAQ,OAAMW,QAAQ,GAAG,CAACF,QAAO,EAAG,IAAI;IAC5C;IACJ,MAAMG,iBAAiBJ,WAAW,MAAM,CAA2B,CAACK,KAAKC,QAC9D;YAAE,GAAGD,GAAG;YAAE,CAACC,MAAM,OAAO,CAAC,EAAE;mBAAKD,GAAG,CAACC,MAAM,OAAO,CAAC,IAAI,EAAE;gBAAGA,MAAM,EAAE;aAAC;QAAC,IAC7E,CAAC;IAKJlB,kBAAkB,OAAO,CAAC,CAACmB,KAAKC;QAC5B,MAAMC,mBAAmBL,cAAc,CAACI,QAAQ;QAChD,KAAK,MAAME,MAAMH,IACb,IAAI,CAACE,oBAAoB,CAACA,iBAAiB,QAAQ,CAACC,KAChD,MAAM,IAAIC,YACN,CAAC,kCAAkC,EAAED,GAAG,YAAY,EAAEF,QAAQ,EAAE,CAAC,EACjE,mBACA;YACIE;YACA,OAAOF;QACX;IAIhB;AACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _webiny_error from "@webiny/error";
|
|
2
|
+
import { BenchmarkAbstraction } from "@webiny/api";
|
|
2
3
|
import { CreateEntryUseCase } from "../features/contentEntry/CreateEntry/index.js";
|
|
3
4
|
import { CreateEntryRevisionFromUseCase } from "../features/contentEntry/CreateEntryRevisionFrom/abstractions.js";
|
|
4
5
|
import { UpdateEntryUseCase } from "../features/contentEntry/UpdateEntry/index.js";
|
|
@@ -23,6 +24,7 @@ import { GetUniqueFieldValuesUseCase } from "../features/contentEntry/GetUniqueF
|
|
|
23
24
|
import { UpdateRevisionDescriptionUseCase } from "../features/contentEntry/UpdateRevisionDescription/index.js";
|
|
24
25
|
const createContentEntryCrud = (params)=>{
|
|
25
26
|
const { context } = params;
|
|
27
|
+
const benchmark = context.container.resolve(BenchmarkAbstraction);
|
|
26
28
|
const createEntry = async (model, rawInput, options)=>{
|
|
27
29
|
const useCase = context.container.resolve(CreateEntryUseCase);
|
|
28
30
|
const result = await useCase.execute(model, rawInput, options);
|
|
@@ -123,7 +125,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
123
125
|
};
|
|
124
126
|
return {
|
|
125
127
|
async getEntriesByIds (model, ids) {
|
|
126
|
-
return
|
|
128
|
+
return benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async ()=>{
|
|
127
129
|
const useCase = context.container.resolve(GetEntriesByIdsUseCase);
|
|
128
130
|
const result = await useCase.execute(model, ids);
|
|
129
131
|
if (result.isFail()) {
|
|
@@ -138,7 +140,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
138
140
|
});
|
|
139
141
|
},
|
|
140
142
|
async getEntryById (model, id) {
|
|
141
|
-
return
|
|
143
|
+
return benchmark.measure("headlessCms.crud.entries.getEntryById", async ()=>{
|
|
142
144
|
const useCase = context.container.resolve(GetEntryByIdUseCase);
|
|
143
145
|
const result = await useCase.execute(model, id);
|
|
144
146
|
if (result.isFail()) {
|
|
@@ -149,7 +151,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
149
151
|
});
|
|
150
152
|
},
|
|
151
153
|
async getPublishedEntriesByIds (model, ids) {
|
|
152
|
-
return
|
|
154
|
+
return benchmark.measure("headlessCms.crud.entries.getPublishedEntriesByIds", async ()=>{
|
|
153
155
|
const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);
|
|
154
156
|
const result = await useCase.execute(model, ids);
|
|
155
157
|
if (result.isFail()) {
|
|
@@ -164,7 +166,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
164
166
|
});
|
|
165
167
|
},
|
|
166
168
|
async getLatestEntriesByIds (model, ids) {
|
|
167
|
-
return
|
|
169
|
+
return benchmark.measure("headlessCms.crud.entries.getLatestEntriesByIds", async ()=>{
|
|
168
170
|
const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);
|
|
169
171
|
const result = await useCase.execute(model, ids);
|
|
170
172
|
if (result.isFail()) {
|
|
@@ -179,7 +181,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
179
181
|
});
|
|
180
182
|
},
|
|
181
183
|
async getEntryRevisions (model, entryId) {
|
|
182
|
-
return
|
|
184
|
+
return benchmark.measure("headlessCms.crud.entries.getEntryRevisions", async ()=>{
|
|
183
185
|
const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);
|
|
184
186
|
const result = await useCase.execute(model, entryId);
|
|
185
187
|
if (result.isFail()) {
|
|
@@ -194,7 +196,7 @@ const createContentEntryCrud = (params)=>{
|
|
|
194
196
|
});
|
|
195
197
|
},
|
|
196
198
|
async getEntry (model, params) {
|
|
197
|
-
return
|
|
199
|
+
return benchmark.measure("headlessCms.crud.entries.getEntry", async ()=>{
|
|
198
200
|
const useCase = context.container.resolve(GetEntryUseCase);
|
|
199
201
|
const result = await useCase.execute(model, params);
|
|
200
202
|
if (result.isFail()) {
|
|
@@ -277,38 +279,38 @@ const createContentEntryCrud = (params)=>{
|
|
|
277
279
|
];
|
|
278
280
|
},
|
|
279
281
|
async createEntry (model, input, options) {
|
|
280
|
-
return
|
|
282
|
+
return benchmark.measure("headlessCms.crud.entries.createEntry", async ()=>createEntry(model, input, options));
|
|
281
283
|
},
|
|
282
284
|
async createEntryRevisionFrom (model, sourceId, input, options) {
|
|
283
|
-
return
|
|
285
|
+
return benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async ()=>createEntryRevisionFrom(model, sourceId, input, options));
|
|
284
286
|
},
|
|
285
287
|
async updateEntry (model, id, input, options) {
|
|
286
|
-
return
|
|
288
|
+
return benchmark.measure("headlessCms.crud.entries.updateEntry", async ()=>updateEntry(model, id, input, options));
|
|
287
289
|
},
|
|
288
290
|
async updateRevisionDescription (model, id, revisionDescription) {
|
|
289
|
-
return
|
|
291
|
+
return benchmark.measure("headlessCms.crud.entries.updateRevisionDescription", async ()=>updateRevisionDescription(model, id, revisionDescription));
|
|
290
292
|
},
|
|
291
293
|
async validateEntry (model, id, input) {
|
|
292
|
-
return
|
|
294
|
+
return benchmark.measure("headlessCms.crud.entries.validateEntry", async ()=>validateEntry(model, id, input));
|
|
293
295
|
},
|
|
294
296
|
async moveEntry (model, id, folderId) {
|
|
295
|
-
return
|
|
297
|
+
return benchmark.measure("headlessCms.crud.entries.moveEntry", async ()=>moveEntry(model, id, folderId));
|
|
296
298
|
},
|
|
297
299
|
async republishEntry (model, id) {
|
|
298
|
-
return
|
|
300
|
+
return benchmark.measure("headlessCms.crud.entries.republishEntry", async ()=>republishEntry(model, id));
|
|
299
301
|
},
|
|
300
302
|
async deleteEntryRevision (model, id) {
|
|
301
|
-
return
|
|
303
|
+
return benchmark.measure("headlessCms.crud.entries.deleteEntryRevision", async ()=>deleteEntryRevision(model, id));
|
|
302
304
|
},
|
|
303
305
|
async deleteEntry (model, entryId, options) {
|
|
304
306
|
const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);
|
|
305
|
-
return
|
|
307
|
+
return benchmark.measure("headlessCms.crud.entries.deleteEntry", async ()=>{
|
|
306
308
|
const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});
|
|
307
309
|
if (result.isFail()) throw new _webiny_error(result.error.message, result.error.code, result.error.data);
|
|
308
310
|
});
|
|
309
311
|
},
|
|
310
312
|
async restoreEntryFromBin (model, entryId) {
|
|
311
|
-
return
|
|
313
|
+
return benchmark.measure("headlessCms.crud.entries.restoreEntryFromBin", async ()=>{
|
|
312
314
|
const useCase = context.container.resolve(RestoreEntryFromBinUseCase);
|
|
313
315
|
const result = await useCase.execute(model, entryId);
|
|
314
316
|
if (result.isFail()) throw new _webiny_error(result.error.message, result.error.code, result.error.data);
|
|
@@ -316,16 +318,16 @@ const createContentEntryCrud = (params)=>{
|
|
|
316
318
|
});
|
|
317
319
|
},
|
|
318
320
|
async deleteMultipleEntries (model, ids) {
|
|
319
|
-
return
|
|
321
|
+
return benchmark.measure("headlessCms.crud.entries.deleteMultipleEntries", async ()=>deleteMultipleEntries(model, ids));
|
|
320
322
|
},
|
|
321
323
|
async publishEntry (model, id) {
|
|
322
|
-
return
|
|
324
|
+
return benchmark.measure("headlessCms.crud.entries.publishEntry", async ()=>publishEntry(model, id));
|
|
323
325
|
},
|
|
324
326
|
async unpublishEntry (model, id) {
|
|
325
|
-
return
|
|
327
|
+
return benchmark.measure("headlessCms.crud.entries.unpublishEntry", async ()=>unpublishEntry(model, id));
|
|
326
328
|
},
|
|
327
329
|
async getUniqueFieldValues (model, params) {
|
|
328
|
-
return
|
|
330
|
+
return benchmark.measure("headlessCms.crud.entries.getUniqueFieldValues", async ()=>getUniqueFieldValues(model, params));
|
|
329
331
|
}
|
|
330
332
|
};
|
|
331
333
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud/contentEntry.crud.js","sources":["../../src/crud/contentEntry.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsEntryContext,\n CmsEntryGetParams,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput,\n CreateFromCmsEntryInput,\n CreateRevisionCmsEntryOptionsInput,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types/index.js\";\nimport { CreateEntryUseCase } from \"~/features/contentEntry/CreateEntry/index.js\";\nimport { CreateEntryRevisionFromUseCase } from \"~/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { UpdateEntryUseCase } from \"~/features/contentEntry/UpdateEntry/index.js\";\nimport { ValidateEntryUseCase } from \"~/features/contentEntry/ValidateEntry/abstractions.js\";\nimport { MoveEntryUseCase } from \"~/features/contentEntry/MoveEntry/abstractions.js\";\nimport { RepublishEntryUseCase } from \"~/features/contentEntry/RepublishEntry/abstractions.js\";\nimport { PublishEntryUseCase } from \"~/features/contentEntry/PublishEntry/abstractions.js\";\nimport {\n ListDeletedEntriesUseCase,\n ListLatestEntriesUseCase,\n ListPublishedEntriesUseCase\n} from \"~/features/contentEntry/ListEntries/index.js\";\nimport { ListEntriesUseCase } from \"~/features/contentEntry/ListEntries/abstractions.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\nimport { GetEntryByIdUseCase } from \"~/features/contentEntry/GetEntryById/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\nimport { GetRevisionsByEntryIdUseCase } from \"~/features/contentEntry/GetRevisionsByEntryId/index.js\";\nimport { GetEntryUseCase } from \"~/features/contentEntry/GetEntry/index.js\";\nimport { DeleteEntryRevisionUseCase } from \"~/features/contentEntry/DeleteEntryRevision/index.js\";\nimport { DeleteEntryUseCase } from \"~/features/contentEntry/DeleteEntry/index.js\";\nimport { DeleteMultipleEntriesUseCase } from \"~/features/contentEntry/DeleteMultipleEntries/abstractions.js\";\nimport { RestoreEntryFromBinUseCase } from \"~/features/contentEntry/RestoreEntryFromBin/abstractions.js\";\nimport { UnpublishEntryUseCase } from \"~/features/contentEntry/UnpublishEntry/index.js\";\nimport { GetUniqueFieldValuesUseCase } from \"~/features/contentEntry/GetUniqueFieldValues/index.js\";\nimport { UpdateRevisionDescriptionUseCase } from \"~/features/contentEntry/UpdateRevisionDescription/index.js\";\n\ninterface CreateContentEntryCrudParams {\n context: CmsContext;\n}\n\nexport const createContentEntryCrud = (params: CreateContentEntryCrudParams): CmsEntryContext => {\n const { context } = params;\n\n const createEntry: CmsEntryContext[\"createEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n rawInput: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new CreateEntry use case\n const useCase = context.container.resolve(CreateEntryUseCase);\n const result = await useCase.execute<T>(model, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create content entry.\",\n error.code || \"CREATE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const createEntryRevisionFrom: CmsEntryContext[\"createEntryRevisionFrom\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n sourceId: string,\n rawInput: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) => {\n // Delegate to new CreateEntryRevisionFrom use case\n const useCase = context.container.resolve(CreateEntryRevisionFromUseCase);\n const result = await useCase.execute<T>(model, sourceId, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create entry from existing one.\",\n error.code || \"CREATE_FROM_REVISION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const updateEntry: CmsEntryContext[\"updateEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n rawInput: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new UpdateEntry use case\n const useCase = context.container.resolve(UpdateEntryUseCase);\n const result = await useCase.execute<T>(model, id, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update existing entry.\",\n error.code || \"UPDATE_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const updateRevisionDescription: CmsEntryContext[\"updateRevisionDescription\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n revisionDescription: string | undefined\n ) => {\n const useCase = context.container.resolve(UpdateRevisionDescriptionUseCase);\n const result = await useCase.execute<T>(model, id, revisionDescription);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update revision description of the revision.\",\n error.code || \"UPDATE_REVISION_DESCRIPTION_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const validateEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) => {\n // Delegate to new ValidateEntry use case\n const useCase = context.container.resolve(ValidateEntryUseCase);\n const result = await useCase.execute<T>(model, id || null, input);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not validate entry.\",\n error.code || \"VALIDATION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const moveEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) => {\n // Delegate to new MoveEntry use case\n const useCase = context.container.resolve(MoveEntryUseCase);\n const result = await useCase.execute<T>(model, id, folderId);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || `Could not move entry \"${id}\" of model \"${model.modelId}\".`,\n error.code || \"MOVE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const republishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new RepublishEntry use case\n const useCase = context.container.resolve(RepublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not republish entry.\",\n error.code || \"REPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const deleteEntryRevision: CmsEntryContext[\"deleteEntryRevision\"] = async (\n model,\n revisionId\n ) => {\n const useCase = context.container.resolve(DeleteEntryRevisionUseCase);\n const result = await useCase.execute(model, revisionId);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n };\n const deleteMultipleEntries: CmsEntryContext[\"deleteMultipleEntries\"] = async (\n model,\n params\n ) => {\n // Delegate to new DeleteMultipleEntries use case\n const useCase = context.container.resolve(DeleteMultipleEntriesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not delete multiple entries.\",\n error.code || \"DELETE_ENTRIES_MULTIPLE_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const publishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new PublishEntry use case\n const useCase = context.container.resolve(PublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n throw new WebinyError(\n result.error.message || \"Could not publish entry.\",\n result.error.code || \"PUBLISH_ERROR\",\n result.error.data\n );\n }\n\n return result.value;\n };\n const unpublishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new UnpublishEntry use case\n const useCase = context.container.resolve(UnpublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not unpublish entry.\",\n error.code || \"UNPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const getUniqueFieldValues: CmsEntryContext[\"getUniqueFieldValues\"] = async (model, params) => {\n const useCase = context.container.resolve(GetUniqueFieldValuesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n\n return result.value;\n };\n\n return {\n /**\n * Get entries by exact revision IDs from the database.\n */\n async getEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entries by IDs.\",\n error.code || \"GET_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get a single entry by revision ID from the database.\n */\n async getEntryById<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return context.benchmark.measure(\"headlessCms.crud.entries.getEntryById\", async () => {\n const useCase = context.container.resolve(GetEntryByIdUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || `Entry by ID \"${id}\" not found.`,\n error.code || \"GET_ENTRY_BY_ID_ERROR\",\n error.data\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get published revisions by entry IDs.\n */\n async getPublishedEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getPublishedEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get published entries by IDs.\",\n error.code || \"GET_PUBLISHED_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get the latest revisions by entry IDs.\n */\n async getLatestEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getLatestEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get latest entries by IDs.\",\n error.code || \"GET_LATEST_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n async getEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getEntryRevisions\",\n async () => {\n const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);\n const result = await useCase.execute<T>(model, entryId);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entry revisions.\",\n error.code || \"GET_ENTRY_REVISIONS_ERROR\",\n {\n error,\n entryId,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * @internal\n */\n async getEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<CmsEntry<T>> {\n return context.benchmark.measure(\"headlessCms.crud.entries.getEntry\", async () => {\n const useCase = context.container.resolve(GetEntryUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Entry not found!\",\n error.code || \"GET_ENTRY_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @description Should not be used directly. Internal use only!\n *\n * @internal\n */\n async listEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list entries.\",\n error.code || \"LIST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listLatestEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListLatestEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list latest entries.\",\n error.code || \"LIST_LATEST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listDeletedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListDeletedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list deleted entries.\",\n error.code || \"LIST_DELETED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listPublishedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListPublishedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list published entries.\",\n error.code || \"LIST_PUBLISHED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n return [entries, meta];\n },\n async createEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> {\n return context.benchmark.measure(\"headlessCms.crud.entries.createEntry\", async () => {\n return createEntry(model, input, options);\n });\n },\n async createEntryRevisionFrom<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.createEntryRevisionFrom\",\n async () => {\n return createEntryRevisionFrom<T>(model, sourceId, input, options);\n }\n );\n },\n async updateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.updateEntry\", async () => {\n return updateEntry<T>(model, id, input, options);\n });\n },\n\n async updateRevisionDescription(model, id, revisionDescription) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.updateRevisionDescription\",\n async () => {\n return updateRevisionDescription(model, id, revisionDescription);\n }\n );\n },\n async validateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.validateEntry\", async () => {\n return validateEntry<T>(model, id, input);\n });\n },\n async moveEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.moveEntry\", async () => {\n return moveEntry<T>(model, id, folderId);\n });\n },\n /**\n * Method used internally. Not documented and should not be used in users systems.\n * @internal\n */\n async republishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.republishEntry\",\n async () => {\n return republishEntry<T>(model, id);\n }\n );\n },\n async deleteEntryRevision(model, id) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.deleteEntryRevision\",\n async () => {\n return deleteEntryRevision(model, id);\n }\n );\n },\n async deleteEntry(model, entryId, options) {\n const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);\n return context.benchmark.measure(\"headlessCms.crud.entries.deleteEntry\", async () => {\n const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});\n\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n });\n },\n async restoreEntryFromBin<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.restoreEntryFromBin\",\n async () => {\n const useCase = context.container.resolve(RestoreEntryFromBinUseCase);\n const result = await useCase.execute<T>(model, entryId);\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n return result.value;\n }\n );\n },\n async deleteMultipleEntries(model, ids) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.deleteMultipleEntries\",\n async () => {\n return deleteMultipleEntries(model, ids);\n }\n );\n },\n async publishEntry<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return context.benchmark.measure(\"headlessCms.crud.entries.publishEntry\", async () => {\n return publishEntry<T>(model, id);\n });\n },\n async unpublishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.unpublishEntry\",\n async () => {\n return unpublishEntry<T>(model, id);\n }\n );\n },\n async getUniqueFieldValues(model, params) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getUniqueFieldValues\",\n async () => {\n return getUniqueFieldValues(model, params);\n }\n );\n }\n };\n};\n"],"names":["createContentEntryCrud","params","context","createEntry","model","rawInput","options","useCase","CreateEntryUseCase","result","error","WebinyError","createEntryRevisionFrom","sourceId","CreateEntryRevisionFromUseCase","updateEntry","id","UpdateEntryUseCase","updateRevisionDescription","revisionDescription","UpdateRevisionDescriptionUseCase","validateEntry","input","ValidateEntryUseCase","moveEntry","folderId","MoveEntryUseCase","republishEntry","RepublishEntryUseCase","deleteEntryRevision","revisionId","DeleteEntryRevisionUseCase","deleteMultipleEntries","DeleteMultipleEntriesUseCase","publishEntry","PublishEntryUseCase","unpublishEntry","UnpublishEntryUseCase","getUniqueFieldValues","GetUniqueFieldValuesUseCase","ids","GetEntriesByIdsUseCase","GetEntryByIdUseCase","GetPublishedEntriesByIdsUseCase","GetLatestEntriesByIdsUseCase","entryId","GetRevisionsByEntryIdUseCase","GetEntryUseCase","ListEntriesUseCase","entries","meta","ListLatestEntriesUseCase","ListDeletedEntriesUseCase","ListPublishedEntriesUseCase","deleteEntryUseCase","DeleteEntryUseCase","RestoreEntryFromBinUseCase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud/contentEntry.crud.js","sources":["../../src/crud/contentEntry.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { BenchmarkAbstraction } from \"@webiny/api\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsEntryContext,\n CmsEntryGetParams,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput,\n CreateFromCmsEntryInput,\n CreateRevisionCmsEntryOptionsInput,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types/index.js\";\nimport { CreateEntryUseCase } from \"~/features/contentEntry/CreateEntry/index.js\";\nimport { CreateEntryRevisionFromUseCase } from \"~/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { UpdateEntryUseCase } from \"~/features/contentEntry/UpdateEntry/index.js\";\nimport { ValidateEntryUseCase } from \"~/features/contentEntry/ValidateEntry/abstractions.js\";\nimport { MoveEntryUseCase } from \"~/features/contentEntry/MoveEntry/abstractions.js\";\nimport { RepublishEntryUseCase } from \"~/features/contentEntry/RepublishEntry/abstractions.js\";\nimport { PublishEntryUseCase } from \"~/features/contentEntry/PublishEntry/abstractions.js\";\nimport {\n ListDeletedEntriesUseCase,\n ListLatestEntriesUseCase,\n ListPublishedEntriesUseCase\n} from \"~/features/contentEntry/ListEntries/index.js\";\nimport { ListEntriesUseCase } from \"~/features/contentEntry/ListEntries/abstractions.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\nimport { GetEntryByIdUseCase } from \"~/features/contentEntry/GetEntryById/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\nimport { GetRevisionsByEntryIdUseCase } from \"~/features/contentEntry/GetRevisionsByEntryId/index.js\";\nimport { GetEntryUseCase } from \"~/features/contentEntry/GetEntry/index.js\";\nimport { DeleteEntryRevisionUseCase } from \"~/features/contentEntry/DeleteEntryRevision/index.js\";\nimport { DeleteEntryUseCase } from \"~/features/contentEntry/DeleteEntry/index.js\";\nimport { DeleteMultipleEntriesUseCase } from \"~/features/contentEntry/DeleteMultipleEntries/abstractions.js\";\nimport { RestoreEntryFromBinUseCase } from \"~/features/contentEntry/RestoreEntryFromBin/abstractions.js\";\nimport { UnpublishEntryUseCase } from \"~/features/contentEntry/UnpublishEntry/index.js\";\nimport { GetUniqueFieldValuesUseCase } from \"~/features/contentEntry/GetUniqueFieldValues/index.js\";\nimport { UpdateRevisionDescriptionUseCase } from \"~/features/contentEntry/UpdateRevisionDescription/index.js\";\n\ninterface CreateContentEntryCrudParams {\n context: CmsContext;\n}\n\nexport const createContentEntryCrud = (params: CreateContentEntryCrudParams): CmsEntryContext => {\n const { context } = params;\n const benchmark = context.container.resolve(BenchmarkAbstraction);\n\n const createEntry: CmsEntryContext[\"createEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n rawInput: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new CreateEntry use case\n const useCase = context.container.resolve(CreateEntryUseCase);\n const result = await useCase.execute<T>(model, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create content entry.\",\n error.code || \"CREATE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const createEntryRevisionFrom: CmsEntryContext[\"createEntryRevisionFrom\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n sourceId: string,\n rawInput: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) => {\n // Delegate to new CreateEntryRevisionFrom use case\n const useCase = context.container.resolve(CreateEntryRevisionFromUseCase);\n const result = await useCase.execute<T>(model, sourceId, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create entry from existing one.\",\n error.code || \"CREATE_FROM_REVISION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const updateEntry: CmsEntryContext[\"updateEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n rawInput: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new UpdateEntry use case\n const useCase = context.container.resolve(UpdateEntryUseCase);\n const result = await useCase.execute<T>(model, id, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update existing entry.\",\n error.code || \"UPDATE_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const updateRevisionDescription: CmsEntryContext[\"updateRevisionDescription\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n revisionDescription: string | undefined\n ) => {\n const useCase = context.container.resolve(UpdateRevisionDescriptionUseCase);\n const result = await useCase.execute<T>(model, id, revisionDescription);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update revision description of the revision.\",\n error.code || \"UPDATE_REVISION_DESCRIPTION_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const validateEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) => {\n // Delegate to new ValidateEntry use case\n const useCase = context.container.resolve(ValidateEntryUseCase);\n const result = await useCase.execute<T>(model, id || null, input);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not validate entry.\",\n error.code || \"VALIDATION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const moveEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) => {\n // Delegate to new MoveEntry use case\n const useCase = context.container.resolve(MoveEntryUseCase);\n const result = await useCase.execute<T>(model, id, folderId);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || `Could not move entry \"${id}\" of model \"${model.modelId}\".`,\n error.code || \"MOVE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const republishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new RepublishEntry use case\n const useCase = context.container.resolve(RepublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not republish entry.\",\n error.code || \"REPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const deleteEntryRevision: CmsEntryContext[\"deleteEntryRevision\"] = async (\n model,\n revisionId\n ) => {\n const useCase = context.container.resolve(DeleteEntryRevisionUseCase);\n const result = await useCase.execute(model, revisionId);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n };\n const deleteMultipleEntries: CmsEntryContext[\"deleteMultipleEntries\"] = async (\n model,\n params\n ) => {\n // Delegate to new DeleteMultipleEntries use case\n const useCase = context.container.resolve(DeleteMultipleEntriesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not delete multiple entries.\",\n error.code || \"DELETE_ENTRIES_MULTIPLE_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const publishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new PublishEntry use case\n const useCase = context.container.resolve(PublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n throw new WebinyError(\n result.error.message || \"Could not publish entry.\",\n result.error.code || \"PUBLISH_ERROR\",\n result.error.data\n );\n }\n\n return result.value;\n };\n const unpublishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new UnpublishEntry use case\n const useCase = context.container.resolve(UnpublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not unpublish entry.\",\n error.code || \"UNPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const getUniqueFieldValues: CmsEntryContext[\"getUniqueFieldValues\"] = async (model, params) => {\n const useCase = context.container.resolve(GetUniqueFieldValuesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n\n return result.value;\n };\n\n return {\n /**\n * Get entries by exact revision IDs from the database.\n */\n async getEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntriesByIds\", async () => {\n const useCase = context.container.resolve(GetEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entries by IDs.\",\n error.code || \"GET_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get a single entry by revision ID from the database.\n */\n async getEntryById<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntryById\", async () => {\n const useCase = context.container.resolve(GetEntryByIdUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || `Entry by ID \"${id}\" not found.`,\n error.code || \"GET_ENTRY_BY_ID_ERROR\",\n error.data\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get published revisions by entry IDs.\n */\n async getPublishedEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\n \"headlessCms.crud.entries.getPublishedEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get published entries by IDs.\",\n error.code || \"GET_PUBLISHED_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get the latest revisions by entry IDs.\n */\n async getLatestEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getLatestEntriesByIds\", async () => {\n const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get latest entries by IDs.\",\n error.code || \"GET_LATEST_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n async getEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntryRevisions\", async () => {\n const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);\n const result = await useCase.execute<T>(model, entryId);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entry revisions.\",\n error.code || \"GET_ENTRY_REVISIONS_ERROR\",\n {\n error,\n entryId,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @internal\n */\n async getEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<CmsEntry<T>> {\n return benchmark.measure(\"headlessCms.crud.entries.getEntry\", async () => {\n const useCase = context.container.resolve(GetEntryUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Entry not found!\",\n error.code || \"GET_ENTRY_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @description Should not be used directly. Internal use only!\n *\n * @internal\n */\n async listEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list entries.\",\n error.code || \"LIST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listLatestEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListLatestEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list latest entries.\",\n error.code || \"LIST_LATEST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listDeletedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListDeletedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list deleted entries.\",\n error.code || \"LIST_DELETED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listPublishedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListPublishedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list published entries.\",\n error.code || \"LIST_PUBLISHED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n return [entries, meta];\n },\n async createEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> {\n return benchmark.measure(\"headlessCms.crud.entries.createEntry\", async () => {\n return createEntry(model, input, options);\n });\n },\n async createEntryRevisionFrom<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) {\n return benchmark.measure(\n \"headlessCms.crud.entries.createEntryRevisionFrom\",\n async () => {\n return createEntryRevisionFrom<T>(model, sourceId, input, options);\n }\n );\n },\n async updateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.updateEntry\", async () => {\n return updateEntry<T>(model, id, input, options);\n });\n },\n\n async updateRevisionDescription(model, id, revisionDescription) {\n return benchmark.measure(\n \"headlessCms.crud.entries.updateRevisionDescription\",\n async () => {\n return updateRevisionDescription(model, id, revisionDescription);\n }\n );\n },\n async validateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.validateEntry\", async () => {\n return validateEntry<T>(model, id, input);\n });\n },\n async moveEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.moveEntry\", async () => {\n return moveEntry<T>(model, id, folderId);\n });\n },\n /**\n * Method used internally. Not documented and should not be used in users systems.\n * @internal\n */\n async republishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.republishEntry\", async () => {\n return republishEntry<T>(model, id);\n });\n },\n async deleteEntryRevision(model, id) {\n return benchmark.measure(\"headlessCms.crud.entries.deleteEntryRevision\", async () => {\n return deleteEntryRevision(model, id);\n });\n },\n async deleteEntry(model, entryId, options) {\n const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);\n return benchmark.measure(\"headlessCms.crud.entries.deleteEntry\", async () => {\n const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});\n\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n });\n },\n async restoreEntryFromBin<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.restoreEntryFromBin\", async () => {\n const useCase = context.container.resolve(RestoreEntryFromBinUseCase);\n const result = await useCase.execute<T>(model, entryId);\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n return result.value;\n });\n },\n async deleteMultipleEntries(model, ids) {\n return benchmark.measure(\"headlessCms.crud.entries.deleteMultipleEntries\", async () => {\n return deleteMultipleEntries(model, ids);\n });\n },\n async publishEntry<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return benchmark.measure(\"headlessCms.crud.entries.publishEntry\", async () => {\n return publishEntry<T>(model, id);\n });\n },\n async unpublishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.unpublishEntry\", async () => {\n return unpublishEntry<T>(model, id);\n });\n },\n async getUniqueFieldValues(model, params) {\n return benchmark.measure(\"headlessCms.crud.entries.getUniqueFieldValues\", async () => {\n return getUniqueFieldValues(model, params);\n });\n }\n };\n};\n"],"names":["createContentEntryCrud","params","context","benchmark","BenchmarkAbstraction","createEntry","model","rawInput","options","useCase","CreateEntryUseCase","result","error","WebinyError","createEntryRevisionFrom","sourceId","CreateEntryRevisionFromUseCase","updateEntry","id","UpdateEntryUseCase","updateRevisionDescription","revisionDescription","UpdateRevisionDescriptionUseCase","validateEntry","input","ValidateEntryUseCase","moveEntry","folderId","MoveEntryUseCase","republishEntry","RepublishEntryUseCase","deleteEntryRevision","revisionId","DeleteEntryRevisionUseCase","deleteMultipleEntries","DeleteMultipleEntriesUseCase","publishEntry","PublishEntryUseCase","unpublishEntry","UnpublishEntryUseCase","getUniqueFieldValues","GetUniqueFieldValuesUseCase","ids","GetEntriesByIdsUseCase","GetEntryByIdUseCase","GetPublishedEntriesByIdsUseCase","GetLatestEntriesByIdsUseCase","entryId","GetRevisionsByEntryIdUseCase","GetEntryUseCase","ListEntriesUseCase","entries","meta","ListLatestEntriesUseCase","ListDeletedEntriesUseCase","ListPublishedEntriesUseCase","deleteEntryUseCase","DeleteEntryUseCase","RestoreEntryFromBinUseCase"],"mappings":"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"}
|
|
@@ -30,13 +30,14 @@ const createDefaultFields = ()=>[
|
|
|
30
30
|
{
|
|
31
31
|
id: generateAlphaNumericLowerCaseId(8),
|
|
32
32
|
fieldId: "image",
|
|
33
|
-
type: "
|
|
33
|
+
type: "asset",
|
|
34
34
|
label: "Image",
|
|
35
35
|
validation: [],
|
|
36
36
|
listValidation: [],
|
|
37
37
|
renderer: {
|
|
38
|
-
name: "
|
|
38
|
+
name: "asset-input"
|
|
39
39
|
},
|
|
40
|
+
tags: [],
|
|
40
41
|
settings: {
|
|
41
42
|
imagesOnly: true
|
|
42
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud/contentModel/defaultFields.js","sources":["../../../src/crud/contentModel/defaultFields.ts"],"sourcesContent":["import type { CmsModelCreateInput, CmsModelFieldInput } from \"~/types/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\n\nconst createDefaultFields = (): CmsModelFieldInput[] => {\n return [\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"title\",\n type: \"text\",\n label: \"Title\",\n validation: [\n {\n name: \"required\",\n message: \"Title is a required field.\"\n }\n ],\n listValidation: [],\n renderer: {\n name: \"text-input\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"description\",\n type: \"long-text\",\n label: \"Description\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"long-text-text-area\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"image\",\n type: \"
|
|
1
|
+
{"version":3,"file":"crud/contentModel/defaultFields.js","sources":["../../../src/crud/contentModel/defaultFields.ts"],"sourcesContent":["import type { CmsModelCreateInput, CmsModelFieldInput } from \"~/types/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\n\nconst createDefaultFields = (): CmsModelFieldInput[] => {\n return [\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"title\",\n type: \"text\",\n label: \"Title\",\n validation: [\n {\n name: \"required\",\n message: \"Title is a required field.\"\n }\n ],\n listValidation: [],\n renderer: {\n name: \"text-input\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"description\",\n type: \"long-text\",\n label: \"Description\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"long-text-text-area\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"image\",\n type: \"asset\",\n label: \"Image\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"asset-input\"\n },\n tags: [],\n settings: {\n imagesOnly: true\n }\n }\n ];\n};\n\n/**\n * We only assign default fields if there are no fields in the model already.\n */\nexport const assignModelDefaultFields = (model: CmsModelCreateInput): void => {\n if (model.fields && model.fields.length !== 0) {\n return;\n }\n\n model.fields = createDefaultFields();\n model.layout = [[model.fields[0].id], [model.fields[1].id, model.fields[2].id]];\n};\n"],"names":["createDefaultFields","generateAlphaNumericLowerCaseId","assignModelDefaultFields","model"],"mappings":";AAGA,MAAMA,sBAAsB,IACjB;QACH;YACI,IAAIC,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY;gBACR;oBACI,MAAM;oBACN,SAAS;gBACb;aACH;YACD,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;YACA,MAAM,EAAE;YACR,UAAU;gBACN,YAAY;YAChB;QACJ;KACH;AAME,MAAMC,2BAA2B,CAACC;IACrC,IAAIA,MAAM,MAAM,IAAIA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EACnC;IAGJA,MAAM,MAAM,GAAGH;IACfG,MAAM,MAAM,GAAG;QAAC;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;QAAE;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;YAAEA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;KAAC;AACnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import error from "@webiny/error";
|
|
2
|
+
import { BenchmarkAbstraction } from "@webiny/api";
|
|
2
3
|
import { CreateModelUseCase } from "../features/contentModel/CreateModel/index.js";
|
|
3
4
|
import { CreateModelFromUseCase } from "../features/contentModel/CreateModelFrom/index.js";
|
|
4
5
|
import { UpdateModelUseCase } from "../features/contentModel/UpdateModel/index.js";
|
|
@@ -10,6 +11,7 @@ import { CmsModelFieldToAstConverterFromPlugins, CmsModelToAstConverter } from "
|
|
|
10
11
|
import { CmsModelFieldToGraphQLRegistry } from "../features/graphql/index.js";
|
|
11
12
|
const createModelsCrud = (params)=>{
|
|
12
13
|
const { context } = params;
|
|
14
|
+
const benchmark = context.container.resolve(BenchmarkAbstraction);
|
|
13
15
|
const listFilteredModelsCache = createMemoryCache();
|
|
14
16
|
const listDatabaseModelsCache = createMemoryCache();
|
|
15
17
|
const clearModelsCache = ()=>{
|
|
@@ -18,13 +20,13 @@ const createModelsCrud = (params)=>{
|
|
|
18
20
|
};
|
|
19
21
|
const fieldTypePlugins = context.container.resolve(CmsModelFieldToGraphQLRegistry).getAll();
|
|
20
22
|
const getModelToAstConverter = ()=>new CmsModelToAstConverter(new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins));
|
|
21
|
-
const listModels = async (input)=>
|
|
23
|
+
const listModels = async (input)=>benchmark.measure("headlessCms.crud.models.listModels", async ()=>{
|
|
22
24
|
const useCase = context.container.resolve(ListModelsUseCase);
|
|
23
25
|
const result = await useCase.execute(input);
|
|
24
26
|
if (result.isFail()) throw new error(result.error.message, result.error.code, result.error.data);
|
|
25
27
|
return result.value;
|
|
26
28
|
});
|
|
27
|
-
const getModel = async (modelId)=>
|
|
29
|
+
const getModel = async (modelId)=>benchmark.measure("headlessCms.crud.models.getModel", async ()=>{
|
|
28
30
|
const useCase = context.container.resolve(GetModelUseCase);
|
|
29
31
|
const result = await useCase.execute(modelId);
|
|
30
32
|
if (result.isFail()) throw new error(result.error.message, result.error.code, result.error.data);
|
|
@@ -59,16 +61,16 @@ const createModelsCrud = (params)=>{
|
|
|
59
61
|
getModelToAstConverter,
|
|
60
62
|
listModels,
|
|
61
63
|
async createModel (input) {
|
|
62
|
-
return
|
|
64
|
+
return benchmark.measure("headlessCms.crud.models.createModel", async ()=>createModel(input));
|
|
63
65
|
},
|
|
64
66
|
async createModelFrom (modelId, userInput) {
|
|
65
|
-
return
|
|
67
|
+
return benchmark.measure("headlessCms.crud.models.createModelFrom", async ()=>createModelFrom(modelId, userInput));
|
|
66
68
|
},
|
|
67
69
|
async updateModel (modelId, input) {
|
|
68
|
-
return
|
|
70
|
+
return benchmark.measure("headlessCms.crud.models.updateModel", async ()=>updateModel(modelId, input));
|
|
69
71
|
},
|
|
70
72
|
async deleteModel (modelId) {
|
|
71
|
-
return
|
|
73
|
+
return benchmark.measure("headlessCms.crud.models.deleteModel", async ()=>deleteModel(modelId));
|
|
72
74
|
}
|
|
73
75
|
};
|
|
74
76
|
};
|