@webiny/api-headless-cms 6.3.0 → 6.4.0-beta.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/abstractions/entryHooks/OnEntryBeforeCreate.js +2 -1
- package/abstractions/entryHooks/OnEntryBeforeCreate.js.map +1 -1
- package/abstractions/entryHooks/index.js +0 -2
- package/abstractions/index.js +0 -2
- package/constants.js +56 -56
- package/constants.js.map +1 -1
- package/context.js +97 -127
- package/context.js.map +1 -1
- package/crud/AccessControl/AccessControl.js +315 -470
- package/crud/AccessControl/AccessControl.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +191 -309
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +29 -59
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/references/buildPaths.js +105 -130
- package/crud/contentEntry/references/buildPaths.js.map +1 -1
- package/crud/contentEntry/references/validateEntries.js +36 -74
- package/crud/contentEntry/references/validateEntries.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +42 -57
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.js +287 -348
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.js +7 -10
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +6 -8
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.js +56 -49
- package/crud/contentModel/defaultFields.js.map +1 -1
- package/crud/contentModel/fields/descriptionField.js +8 -18
- package/crud/contentModel/fields/descriptionField.js.map +1 -1
- package/crud/contentModel/fields/getApplicableFieldById.js +4 -5
- package/crud/contentModel/fields/getApplicableFieldById.js.map +1 -1
- package/crud/contentModel/fields/imageField.js +8 -13
- package/crud/contentModel/fields/imageField.js.map +1 -1
- package/crud/contentModel/fields/titleField.js +8 -18
- package/crud/contentModel/fields/titleField.js.map +1 -1
- package/crud/contentModel/validate/endingAllowed.js +10 -14
- package/crud/contentModel/validate/endingAllowed.js.map +1 -1
- package/crud/contentModel/validate/isModelEndingAllowed.js +15 -14
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
- package/crud/contentModel/validate/modelId.js +19 -24
- package/crud/contentModel/validate/modelId.js.map +1 -1
- package/crud/contentModel/validate/pluralApiName.js +8 -13
- package/crud/contentModel/validate/pluralApiName.js.map +1 -1
- package/crud/contentModel/validate/singularApiName.js +8 -13
- package/crud/contentModel/validate/singularApiName.js.map +1 -1
- package/crud/contentModel/validateStorageId.js +10 -8
- package/crud/contentModel/validateStorageId.js.map +1 -1
- package/crud/contentModel/validation.js +190 -209
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.js +65 -109
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup.crud.js +65 -90
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/domain/contentEntry/EntryId.js +37 -45
- package/domain/contentEntry/EntryId.js.map +1 -1
- package/domain/contentEntry/errors.js +38 -42
- package/domain/contentEntry/errors.js.map +1 -1
- package/domain/contentModel/createFieldStorageId.js +6 -8
- package/domain/contentModel/createFieldStorageId.js.map +1 -1
- package/domain/contentModel/ensureTypeTag.js +5 -11
- package/domain/contentModel/ensureTypeTag.js.map +1 -1
- package/domain/contentModel/errors.js +82 -91
- package/domain/contentModel/errors.js.map +1 -1
- package/domain/contentModel/schemas.js +130 -161
- package/domain/contentModel/schemas.js.map +1 -1
- package/domain/contentModel/validation/endingAllowed.js +10 -14
- package/domain/contentModel/validation/endingAllowed.js.map +1 -1
- package/domain/contentModel/validation/fields/descriptionField.js +8 -18
- package/domain/contentModel/validation/fields/descriptionField.js.map +1 -1
- package/domain/contentModel/validation/fields/getApplicableFieldById.js +4 -5
- package/domain/contentModel/validation/fields/getApplicableFieldById.js.map +1 -1
- package/domain/contentModel/validation/fields/imageField.js +8 -13
- package/domain/contentModel/validation/fields/imageField.js.map +1 -1
- package/domain/contentModel/validation/fields/titleField.js +8 -18
- package/domain/contentModel/validation/fields/titleField.js.map +1 -1
- package/domain/contentModel/validation/isModelEndingAllowed.js +15 -14
- package/domain/contentModel/validation/isModelEndingAllowed.js.map +1 -1
- package/domain/contentModel/validation/modelFields.js +140 -242
- package/domain/contentModel/validation/modelFields.js.map +1 -1
- package/domain/contentModel/validation/modelId.js +19 -24
- package/domain/contentModel/validation/modelId.js.map +1 -1
- package/domain/contentModel/validation/pluralApiName.js +8 -13
- package/domain/contentModel/validation/pluralApiName.js.map +1 -1
- package/domain/contentModel/validation/singularApiName.js +8 -13
- package/domain/contentModel/validation/singularApiName.js.map +1 -1
- package/domain/contentModelGroup/errors.js +60 -67
- package/domain/contentModelGroup/errors.js.map +1 -1
- package/domain/contentModelGroup/validation.js +22 -31
- package/domain/contentModelGroup/validation.js.map +1 -1
- package/export/crud/exporting.js +18 -38
- package/export/crud/exporting.js.map +1 -1
- package/export/crud/importing.js +48 -67
- package/export/crud/importing.js.map +1 -1
- package/export/crud/imports/importData.js +28 -39
- package/export/crud/imports/importData.js.map +1 -1
- package/export/crud/imports/importGroups.js +75 -90
- package/export/crud/imports/importGroups.js.map +1 -1
- package/export/crud/imports/importModels.js +99 -120
- package/export/crud/imports/importModels.js.map +1 -1
- package/export/crud/imports/remapIcon.js +7 -10
- package/export/crud/imports/remapIcon.js.map +1 -1
- package/export/crud/imports/validateGroups.js +75 -99
- package/export/crud/imports/validateGroups.js.map +1 -1
- package/export/crud/imports/validateInput.js +42 -60
- package/export/crud/imports/validateInput.js.map +1 -1
- package/export/crud/imports/validateModels.js +117 -175
- package/export/crud/imports/validateModels.js.map +1 -1
- package/export/crud/index.js +4 -5
- package/export/crud/index.js.map +1 -1
- package/export/crud/sanitize.js +23 -26
- package/export/crud/sanitize.js.map +1 -1
- package/export/graphql/index.js +43 -46
- package/export/graphql/index.js.map +1 -1
- package/export/index.js +0 -2
- package/export/types.js +7 -13
- package/export/types.js.map +1 -1
- package/exports/api/cms/entry.d.ts +8 -0
- package/exports/api/cms/entry.js +21 -69
- package/exports/api/cms/graphql.js +1 -3
- package/exports/api/cms/group.js +3 -14
- package/exports/api/cms/model.js +5 -21
- package/exports/api/cms/storage.js +0 -2
- package/exports/api/cms/validation.js +0 -2
- package/extensions/entryHooks/OnEntryBeforeCreate.js +16 -19
- package/extensions/entryHooks/OnEntryBeforeCreate.js.map +1 -1
- package/extensions/entryHooks/index.js +0 -2
- package/extensions/index.js +4 -2
- package/extensions/index.js.map +1 -1
- package/features/contentEntry/ContentEntriesFeature.js +36 -36
- package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
- package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverser.js +61 -81
- package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverser.js.map +1 -1
- package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js +18 -16
- package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js.map +1 -1
- package/features/contentEntry/ContentEntryTraverser/abstractions.js +2 -4
- package/features/contentEntry/ContentEntryTraverser/abstractions.js.map +1 -1
- package/features/contentEntry/ContentEntryTraverser/feature.js +6 -5
- package/features/contentEntry/ContentEntryTraverser/feature.js.map +1 -1
- package/features/contentEntry/ContentEntryTraverser/index.js +0 -2
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js +25 -30
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +4 -16
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +50 -88
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntry/abstractions.js +3 -14
- package/features/contentEntry/CreateEntry/abstractions.js.map +1 -1
- package/features/contentEntry/CreateEntry/events.js +17 -27
- package/features/contentEntry/CreateEntry/events.js.map +1 -1
- package/features/contentEntry/CreateEntry/feature.js +7 -18
- package/features/contentEntry/CreateEntry/feature.js.map +1 -1
- package/features/contentEntry/CreateEntry/index.js +1 -3
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +29 -41
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +4 -20
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +81 -129
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js +3 -25
- package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/events.js +25 -31
- package/features/contentEntry/CreateEntryRevisionFrom/events.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/feature.js +7 -9
- package/features/contentEntry/CreateEntryRevisionFrom/feature.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/index.js +0 -2
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +21 -23
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +70 -96
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +26 -30
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +86 -115
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/abstractions.js +5 -40
- package/features/contentEntry/DeleteEntry/abstractions.js.map +1 -1
- package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js +30 -41
- package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js.map +1 -1
- package/features/contentEntry/DeleteEntry/events.js +25 -31
- package/features/contentEntry/DeleteEntry/events.js.map +1 -1
- package/features/contentEntry/DeleteEntry/feature.js +10 -14
- package/features/contentEntry/DeleteEntry/feature.js.map +1 -1
- package/features/contentEntry/DeleteEntry/index.js +2 -4
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +37 -43
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +85 -126
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/abstractions.js +3 -26
- package/features/contentEntry/DeleteEntryRevision/abstractions.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/events.js +25 -31
- package/features/contentEntry/DeleteEntryRevision/events.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/feature.js +7 -9
- package/features/contentEntry/DeleteEntryRevision/feature.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/index.js +2 -4
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +21 -27
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +82 -122
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/abstractions.js +3 -25
- package/features/contentEntry/DeleteMultipleEntries/abstractions.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/events.js +25 -31
- package/features/contentEntry/DeleteMultipleEntries/events.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/feature.js +7 -9
- package/features/contentEntry/DeleteMultipleEntries/feature.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/index.js +0 -2
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +30 -35
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js +21 -34
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/abstractions.js +3 -14
- package/features/contentEntry/GetEntriesByIds/abstractions.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/decorators/GetEntriesByIdsNotDeletedDecorator.js +15 -25
- package/features/contentEntry/GetEntriesByIds/decorators/GetEntriesByIdsNotDeletedDecorator.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/feature.js +8 -7
- package/features/contentEntry/GetEntriesByIds/feature.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/index.js +1 -3
- package/features/contentEntry/GetEntry/GetEntryUseCase.js +22 -31
- package/features/contentEntry/GetEntry/GetEntryUseCase.js.map +1 -1
- package/features/contentEntry/GetEntry/abstractions.js +2 -8
- package/features/contentEntry/GetEntry/abstractions.js.map +1 -1
- package/features/contentEntry/GetEntry/feature.js +6 -5
- package/features/contentEntry/GetEntry/feature.js.map +1 -1
- package/features/contentEntry/GetEntry/index.js +0 -2
- package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js +20 -25
- package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js.map +1 -1
- package/features/contentEntry/GetEntryById/abstractions.js +2 -8
- package/features/contentEntry/GetEntryById/abstractions.js.map +1 -1
- package/features/contentEntry/GetEntryById/feature.js +6 -5
- package/features/contentEntry/GetEntryById/feature.js.map +1 -1
- package/features/contentEntry/GetEntryById/index.js +0 -2
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +24 -30
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js +21 -34
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/abstractions.js +3 -14
- package/features/contentEntry/GetLatestEntriesByIds/abstractions.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/decorators/GetLatestEntriesByIdsNotDeletedDecorator.js +15 -25
- package/features/contentEntry/GetLatestEntriesByIds/decorators/GetLatestEntriesByIdsNotDeletedDecorator.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/feature.js +8 -7
- package/features/contentEntry/GetLatestEntriesByIds/feature.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/index.js +1 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js +21 -35
- package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +23 -29
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js +6 -21
- package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/feature.js +10 -19
- package/features/contentEntry/GetLatestRevisionByEntryId/feature.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/index.js +1 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js +17 -29
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js +14 -16
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js +17 -27
- package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js +21 -35
- package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +23 -29
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js +17 -28
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js +4 -16
- package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/feature.js +8 -12
- package/features/contentEntry/GetPreviousRevisionByEntryId/feature.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/index.js +1 -3
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +24 -29
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js +21 -34
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js +3 -14
- package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/decorators/GetPublishedEntriesByIdsNotDeletedDecorator.js +15 -25
- package/features/contentEntry/GetPublishedEntriesByIds/decorators/GetPublishedEntriesByIdsNotDeletedDecorator.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/feature.js +8 -7
- package/features/contentEntry/GetPublishedEntriesByIds/feature.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/index.js +1 -3
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +25 -31
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js +16 -23
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js +3 -13
- package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/feature.js +7 -17
- package/features/contentEntry/GetPublishedRevisionByEntryId/feature.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/index.js +1 -3
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +26 -33
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js +14 -17
- package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js.map +1 -1
- package/features/contentEntry/GetRevisionById/abstractions.js +3 -15
- package/features/contentEntry/GetRevisionById/abstractions.js.map +1 -1
- package/features/contentEntry/GetRevisionById/decorators/GetRevisionByIdNotDeletedDecorator.js +14 -26
- package/features/contentEntry/GetRevisionById/decorators/GetRevisionByIdNotDeletedDecorator.js.map +1 -1
- package/features/contentEntry/GetRevisionById/feature.js +8 -21
- package/features/contentEntry/GetRevisionById/feature.js.map +1 -1
- package/features/contentEntry/GetRevisionById/index.js +1 -3
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +24 -30
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js +21 -34
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/abstractions.js +3 -14
- package/features/contentEntry/GetRevisionsByEntryId/abstractions.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/feature.js +7 -6
- package/features/contentEntry/GetRevisionsByEntryId/feature.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/index.js +1 -3
- package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js +25 -43
- package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js.map +1 -1
- package/features/contentEntry/GetSingletonEntry/abstractions.js +2 -9
- package/features/contentEntry/GetSingletonEntry/abstractions.js.map +1 -1
- package/features/contentEntry/GetSingletonEntry/feature.js +6 -13
- package/features/contentEntry/GetSingletonEntry/feature.js.map +1 -1
- package/features/contentEntry/GetSingletonEntry/index.js +0 -2
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +23 -24
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +45 -61
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/abstractions.js +3 -13
- package/features/contentEntry/GetUniqueFieldValues/abstractions.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/errors.js +19 -20
- package/features/contentEntry/GetUniqueFieldValues/errors.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/feature.js +7 -6
- package/features/contentEntry/GetUniqueFieldValues/feature.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/index.js +1 -3
- package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js +22 -29
- package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesRepository.js +55 -57
- package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js +33 -53
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js +25 -27
- package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js +22 -29
- package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/abstractions.js +6 -35
- package/features/contentEntry/ListEntries/abstractions.js.map +1 -1
- package/features/contentEntry/ListEntries/feature.js +10 -12
- package/features/contentEntry/ListEntries/feature.js.map +1 -1
- package/features/contentEntry/ListEntries/index.js +1 -3
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js +19 -25
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +66 -94
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
- package/features/contentEntry/MoveEntry/abstractions.js +3 -25
- package/features/contentEntry/MoveEntry/abstractions.js.map +1 -1
- package/features/contentEntry/MoveEntry/events.js +25 -31
- package/features/contentEntry/MoveEntry/events.js.map +1 -1
- package/features/contentEntry/MoveEntry/feature.js +7 -9
- package/features/contentEntry/MoveEntry/feature.js.map +1 -1
- package/features/contentEntry/MoveEntry/index.js +1 -3
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js +28 -38
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +3 -17
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +77 -118
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/PublishEntry/abstractions.js +3 -25
- package/features/contentEntry/PublishEntry/abstractions.js.map +1 -1
- package/features/contentEntry/PublishEntry/events.js +25 -31
- package/features/contentEntry/PublishEntry/events.js.map +1 -1
- package/features/contentEntry/PublishEntry/feature.js +7 -9
- package/features/contentEntry/PublishEntry/feature.js.map +1 -1
- package/features/contentEntry/PublishEntry/index.js +1 -3
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +33 -48
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +3 -15
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +68 -103
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/RepublishEntry/abstractions.js +3 -26
- package/features/contentEntry/RepublishEntry/abstractions.js.map +1 -1
- package/features/contentEntry/RepublishEntry/events.js +25 -31
- package/features/contentEntry/RepublishEntry/events.js.map +1 -1
- package/features/contentEntry/RepublishEntry/feature.js +7 -9
- package/features/contentEntry/RepublishEntry/feature.js.map +1 -1
- package/features/contentEntry/RepublishEntry/index.js +0 -2
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +28 -38
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +80 -110
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/abstractions.js +3 -26
- package/features/contentEntry/RestoreEntryFromBin/abstractions.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/events.js +25 -31
- package/features/contentEntry/RestoreEntryFromBin/events.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/feature.js +7 -9
- package/features/contentEntry/RestoreEntryFromBin/feature.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/index.js +0 -2
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +25 -30
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +3 -14
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +70 -115
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/abstractions.js +3 -14
- package/features/contentEntry/UnpublishEntry/abstractions.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/events.js +25 -36
- package/features/contentEntry/UnpublishEntry/events.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/feature.js +7 -18
- package/features/contentEntry/UnpublishEntry/feature.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/index.js +1 -3
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +25 -30
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +5 -22
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +58 -107
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
- package/features/contentEntry/UpdateEntry/abstractions.d.ts +1 -3
- package/features/contentEntry/UpdateEntry/abstractions.js +3 -14
- package/features/contentEntry/UpdateEntry/abstractions.js.map +1 -1
- package/features/contentEntry/UpdateEntry/events.js +17 -27
- package/features/contentEntry/UpdateEntry/events.js.map +1 -1
- package/features/contentEntry/UpdateEntry/feature.js +7 -18
- package/features/contentEntry/UpdateEntry/feature.js.map +1 -1
- package/features/contentEntry/UpdateEntry/index.js +1 -3
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +22 -0
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +77 -0
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -0
- package/features/contentEntry/UpdateRevisionDescription/abstractions.d.ts +25 -0
- package/features/contentEntry/UpdateRevisionDescription/abstractions.js +5 -0
- package/features/contentEntry/UpdateRevisionDescription/abstractions.js.map +1 -0
- package/features/contentEntry/UpdateRevisionDescription/events.d.ts +44 -0
- package/features/contentEntry/UpdateRevisionDescription/events.js +23 -0
- package/features/contentEntry/UpdateRevisionDescription/events.js.map +1 -0
- package/features/contentEntry/UpdateRevisionDescription/feature.d.ts +12 -0
- package/features/contentEntry/UpdateRevisionDescription/feature.js +11 -0
- package/features/contentEntry/UpdateRevisionDescription/feature.js.map +1 -0
- package/features/contentEntry/UpdateRevisionDescription/index.d.ts +2 -0
- package/features/contentEntry/UpdateRevisionDescription/index.js +2 -0
- package/features/contentEntry/UpdateSingletonEntry/UpdateSingletonEntryUseCase.js +17 -26
- package/features/contentEntry/UpdateSingletonEntry/UpdateSingletonEntryUseCase.js.map +1 -1
- package/features/contentEntry/UpdateSingletonEntry/abstractions.js +2 -9
- package/features/contentEntry/UpdateSingletonEntry/abstractions.js.map +1 -1
- package/features/contentEntry/UpdateSingletonEntry/feature.js +6 -13
- package/features/contentEntry/UpdateSingletonEntry/feature.js.map +1 -1
- package/features/contentEntry/UpdateSingletonEntry/index.js +0 -2
- package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js +42 -63
- package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js.map +1 -1
- package/features/contentEntry/ValidateEntry/abstractions.js +2 -8
- package/features/contentEntry/ValidateEntry/abstractions.js.map +1 -1
- package/features/contentEntry/ValidateEntry/feature.js +6 -6
- package/features/contentEntry/ValidateEntry/feature.js.map +1 -1
- package/features/contentEntry/ValidateEntry/index.js +0 -2
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +15 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +212 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.d.ts +13 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/index.js +2 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +15 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +150 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.d.ts +13 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/index.js +2 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js +66 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/index.js +2 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js +62 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/index.js +2 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.d.ts +10 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js +41 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/index.js +2 -0
- package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.js +21 -0
- package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +12 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +104 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.d.ts +13 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.js +5 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.js.map +1 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.d.ts +4 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.js +11 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.js.map +1 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/index.d.ts +2 -0
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/index.js +2 -0
- package/{crud → features}/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +0 -3
- package/features/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +17 -0
- package/features/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
- package/features/contentEntry/entryDataFactories/statuses.js +7 -0
- package/features/contentEntry/entryDataFactories/statuses.js.map +1 -0
- package/features/contentEntry/entryDataFactories/system.js +10 -0
- package/features/contentEntry/entryDataFactories/system.js.map +1 -0
- package/features/contentModel/ContentModelFeature.js +16 -19
- package/features/contentModel/ContentModelFeature.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.js +104 -148
- package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelUseCase.js +74 -119
- package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
- package/features/contentModel/CreateModel/abstractions.js +3 -13
- package/features/contentModel/CreateModel/abstractions.js.map +1 -1
- package/features/contentModel/CreateModel/events.js +25 -36
- package/features/contentModel/CreateModel/events.js.map +1 -1
- package/features/contentModel/CreateModel/feature.js +7 -16
- package/features/contentModel/CreateModel/feature.js.map +1 -1
- package/features/contentModel/CreateModel/index.js +1 -3
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +107 -150
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +84 -119
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
- package/features/contentModel/CreateModelFrom/abstractions.js +3 -13
- package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
- package/features/contentModel/CreateModelFrom/events.js +25 -36
- package/features/contentModel/CreateModelFrom/events.js.map +1 -1
- package/features/contentModel/CreateModelFrom/feature.js +7 -16
- package/features/contentModel/CreateModelFrom/feature.js.map +1 -1
- package/features/contentModel/CreateModelFrom/index.js +1 -3
- package/features/contentModel/DeleteModel/DeleteModelRepository.js +27 -41
- package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelUseCase.js +44 -72
- package/features/contentModel/DeleteModel/DeleteModelUseCase.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js +50 -83
- package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js.map +1 -1
- package/features/contentModel/DeleteModel/abstractions.js +3 -13
- package/features/contentModel/DeleteModel/abstractions.js.map +1 -1
- package/features/contentModel/DeleteModel/events.js +25 -36
- package/features/contentModel/DeleteModel/events.js.map +1 -1
- package/features/contentModel/DeleteModel/feature.js +8 -19
- package/features/contentModel/DeleteModel/feature.js.map +1 -1
- package/features/contentModel/DeleteModel/index.js +1 -3
- package/features/contentModel/GetModel/GetModelRepository.js +15 -23
- package/features/contentModel/GetModel/GetModelRepository.js.map +1 -1
- package/features/contentModel/GetModel/GetModelUseCase.js +21 -34
- package/features/contentModel/GetModel/GetModelUseCase.js.map +1 -1
- package/features/contentModel/GetModel/abstractions.js +3 -13
- package/features/contentModel/GetModel/abstractions.js.map +1 -1
- package/features/contentModel/GetModel/feature.js +7 -16
- package/features/contentModel/GetModel/feature.js.map +1 -1
- package/features/contentModel/GetModel/index.d.ts +1 -1
- package/features/contentModel/GetModel/index.js +1 -3
- package/features/contentModel/ListModels/ListModelsRepository.js +18 -36
- package/features/contentModel/ListModels/ListModelsRepository.js.map +1 -1
- package/features/contentModel/ListModels/ListModelsUseCase.js +23 -41
- package/features/contentModel/ListModels/ListModelsUseCase.js.map +1 -1
- package/features/contentModel/ListModels/abstractions.js +3 -13
- package/features/contentModel/ListModels/abstractions.js.map +1 -1
- package/features/contentModel/ListModels/feature.js +7 -17
- package/features/contentModel/ListModels/feature.js.map +1 -1
- package/features/contentModel/ListModels/index.js +0 -2
- package/features/contentModel/ModelFieldCompression/ModelFieldCompression.js +18 -18
- package/features/contentModel/ModelFieldCompression/ModelFieldCompression.js.map +1 -1
- package/features/contentModel/ModelFieldCompression/abstractions.js +2 -1
- package/features/contentModel/ModelFieldCompression/abstractions.js.map +1 -1
- package/features/contentModel/ModelFieldCompression/feature.js +6 -5
- package/features/contentModel/ModelFieldCompression/feature.js.map +1 -1
- package/features/contentModel/ModelFieldCompression/index.js +0 -2
- package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js +15 -19
- package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js.map +1 -1
- package/features/contentModel/ModelToAstConverter/abstractions.js +2 -6
- package/features/contentModel/ModelToAstConverter/abstractions.js.map +1 -1
- package/features/contentModel/ModelToAstConverter/feature.js +6 -5
- package/features/contentModel/ModelToAstConverter/feature.js.map +1 -1
- package/features/contentModel/ModelToAstConverter/index.js +0 -2
- package/features/contentModel/UpdateModel/UpdateModelRepository.js +71 -97
- package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js +75 -118
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
- package/features/contentModel/UpdateModel/abstractions.js +3 -13
- package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
- package/features/contentModel/UpdateModel/events.js +25 -36
- package/features/contentModel/UpdateModel/events.js.map +1 -1
- package/features/contentModel/UpdateModel/feature.js +7 -16
- package/features/contentModel/UpdateModel/feature.js.map +1 -1
- package/features/contentModel/UpdateModel/index.js +1 -3
- package/features/contentModel/shared/ModelsFetcher.js +66 -81
- package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
- package/features/contentModel/shared/PluginModelsProvider.js +38 -54
- package/features/contentModel/shared/PluginModelsProvider.js.map +1 -1
- package/features/contentModel/shared/abstractions.js +4 -16
- package/features/contentModel/shared/abstractions.js.map +1 -1
- package/features/contentModelGroup/ContentModelGroupFeature.js +12 -16
- package/features/contentModelGroup/ContentModelGroupFeature.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +63 -94
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +80 -107
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/abstractions.js +3 -13
- package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/events.js +25 -36
- package/features/contentModelGroup/CreateGroup/events.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/feature.js +7 -16
- package/features/contentModelGroup/CreateGroup/feature.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/index.js +0 -2
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +37 -56
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +53 -80
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/abstractions.js +3 -13
- package/features/contentModelGroup/DeleteGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/events.js +25 -36
- package/features/contentModelGroup/DeleteGroup/events.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/feature.js +7 -16
- package/features/contentModelGroup/DeleteGroup/feature.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/index.js +0 -2
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js +60 -80
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
- package/features/contentModelGroup/GetGroup/GetGroupUseCase.js +19 -34
- package/features/contentModelGroup/GetGroup/GetGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/GetGroup/abstractions.js +3 -13
- package/features/contentModelGroup/GetGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/GetGroup/feature.js +7 -16
- package/features/contentModelGroup/GetGroup/feature.js.map +1 -1
- package/features/contentModelGroup/GetGroup/index.js +0 -2
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +57 -74
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
- package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js +19 -34
- package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js.map +1 -1
- package/features/contentModelGroup/ListGroups/abstractions.js +3 -13
- package/features/contentModelGroup/ListGroups/abstractions.js.map +1 -1
- package/features/contentModelGroup/ListGroups/feature.js +7 -16
- package/features/contentModelGroup/ListGroups/feature.js.map +1 -1
- package/features/contentModelGroup/ListGroups/index.js +0 -2
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +31 -44
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +75 -111
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/abstractions.js +3 -13
- package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/events.js +25 -36
- package/features/contentModelGroup/UpdateGroup/events.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/feature.js +7 -16
- package/features/contentModelGroup/UpdateGroup/feature.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/index.js +0 -2
- package/features/contentModelGroup/shared/PluginGroupsProvider.js +61 -78
- package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
- package/features/contentModelGroup/shared/abstractions.js +4 -9
- package/features/contentModelGroup/shared/abstractions.js.map +1 -1
- package/features/contentModelGroup/shared/index.js +1 -3
- package/features/graphql/feature.js +18 -17
- package/features/graphql/feature.js.map +1 -1
- package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js +24 -20
- package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js.map +1 -1
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js +2 -1
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js +2 -1
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js.map +1 -1
- package/features/graphql/fields/base/BooleanToGraphQL.js +37 -52
- package/features/graphql/fields/base/BooleanToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/DateTimeToGraphQL.js +48 -63
- package/features/graphql/fields/base/DateTimeToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js +168 -252
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/FileToGraphQL.js +24 -27
- package/features/graphql/fields/base/FileToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/JsonToGraphQL.js +30 -39
- package/features/graphql/fields/base/JsonToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/LongTextToGraphQL.js +31 -42
- package/features/graphql/fields/base/LongTextToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/NumberToGraphQL.js +37 -52
- package/features/graphql/fields/base/NumberToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/ObjectToGraphQL.js +180 -239
- package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/RefToGraphQL.js +150 -210
- package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/RichTextToGraphQL.js +35 -46
- package/features/graphql/fields/base/RichTextToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/SearchableJsonToGraphQL.js +38 -51
- package/features/graphql/fields/base/SearchableJsonToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/TextToGraphQL.js +37 -52
- package/features/graphql/fields/base/TextToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js +26 -31
- package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js.map +1 -1
- package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js +7 -10
- package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js.map +1 -1
- package/features/graphql/fields/base/richText/richTextResolver.js +11 -20
- package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -1
- package/features/graphql/fields/base/utils/createGraphQLInputField.js +6 -13
- package/features/graphql/fields/base/utils/createGraphQLInputField.js.map +1 -1
- package/features/graphql/index.js +0 -2
- package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js +2 -1
- package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js.map +1 -1
- package/features/installer/CmsInstaller.js +31 -32
- package/features/installer/CmsInstaller.js.map +1 -1
- package/features/installer/feature.js +6 -5
- package/features/installer/feature.js.map +1 -1
- package/features/modelBuilder/LayoutBuilder.js +66 -122
- package/features/modelBuilder/LayoutBuilder.js.map +1 -1
- package/features/modelBuilder/abstractions.js +3 -17
- package/features/modelBuilder/abstractions.js.map +1 -1
- package/features/modelBuilder/feature.js +31 -42
- package/features/modelBuilder/feature.js.map +1 -1
- package/features/modelBuilder/fields/BaseFieldBuilder.d.ts +3 -0
- package/features/modelBuilder/fields/BaseFieldBuilder.js +38 -38
- package/features/modelBuilder/fields/BaseFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/BooleanFieldType.js +18 -17
- package/features/modelBuilder/fields/BooleanFieldType.js.map +1 -1
- package/features/modelBuilder/fields/DataFieldBuilder.d.ts +1 -0
- package/features/modelBuilder/fields/DataFieldBuilder.js +161 -201
- package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/DateTimeFieldType.js +59 -78
- package/features/modelBuilder/fields/DateTimeFieldType.js.map +1 -1
- package/features/modelBuilder/fields/DynamicZoneFieldType.js +51 -54
- package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
- package/features/modelBuilder/fields/FieldBuilder.js +0 -2
- package/features/modelBuilder/fields/FieldBuilderRegistry.js +38 -62
- package/features/modelBuilder/fields/FieldBuilderRegistry.js.map +1 -1
- package/features/modelBuilder/fields/FileFieldType.js +25 -24
- package/features/modelBuilder/fields/FileFieldType.js.map +1 -1
- package/features/modelBuilder/fields/JsonFieldType.js +13 -12
- package/features/modelBuilder/fields/JsonFieldType.js.map +1 -1
- package/features/modelBuilder/fields/LayoutFieldBuilder.js +3 -6
- package/features/modelBuilder/fields/LayoutFieldBuilder.js.map +1 -1
- package/features/modelBuilder/fields/LocationFieldType.js +15 -14
- package/features/modelBuilder/fields/LocationFieldType.js.map +1 -1
- package/features/modelBuilder/fields/LongTextFieldType.js +115 -114
- package/features/modelBuilder/fields/LongTextFieldType.js.map +1 -1
- package/features/modelBuilder/fields/NumberFieldType.js +38 -37
- package/features/modelBuilder/fields/NumberFieldType.js.map +1 -1
- package/features/modelBuilder/fields/ObjectFieldType.js +50 -67
- package/features/modelBuilder/fields/ObjectFieldType.js.map +1 -1
- package/features/modelBuilder/fields/RefFieldType.js +25 -24
- package/features/modelBuilder/fields/RefFieldType.js.map +1 -1
- package/features/modelBuilder/fields/RichTextFieldType.js +20 -19
- package/features/modelBuilder/fields/RichTextFieldType.js.map +1 -1
- package/features/modelBuilder/fields/SearchableJsonFieldType.js +13 -12
- package/features/modelBuilder/fields/SearchableJsonFieldType.js.map +1 -1
- package/features/modelBuilder/fields/TextFieldType.d.ts +1 -0
- package/features/modelBuilder/fields/TextFieldType.js +130 -123
- package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiAlertFieldType.js +27 -27
- package/features/modelBuilder/fields/UiAlertFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiSeparatorFieldType.js +23 -22
- package/features/modelBuilder/fields/UiSeparatorFieldType.js.map +1 -1
- package/features/modelBuilder/fields/UiTabsFieldType.js +58 -63
- package/features/modelBuilder/fields/UiTabsFieldType.js.map +1 -1
- package/features/modelBuilder/fields/abstractions.js +2 -9
- package/features/modelBuilder/fields/abstractions.js.map +1 -1
- package/features/modelBuilder/fields/fieldTypeValidator.js +0 -31
- package/features/modelBuilder/index.js +10 -16
- package/features/modelBuilder/models/BaseModelBuilder.js +70 -130
- package/features/modelBuilder/models/BaseModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/ModelBuilder.js +18 -33
- package/features/modelBuilder/models/ModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/ModelsProvider.js +24 -33
- package/features/modelBuilder/models/ModelsProvider.js.map +1 -1
- package/features/modelBuilder/models/PrivateModelBuilder.js +15 -24
- package/features/modelBuilder/models/PrivateModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/PublicModelBuilder.js +89 -114
- package/features/modelBuilder/models/PublicModelBuilder.js.map +1 -1
- package/features/modelBuilder/models/abstractions.js +2 -6
- package/features/modelBuilder/models/abstractions.js.map +1 -1
- package/features/shared/abstractions.js +5 -16
- package/features/shared/abstractions.js.map +1 -1
- package/features/sortMapper/SortMapper.js +27 -46
- package/features/sortMapper/SortMapper.js.map +1 -1
- package/features/sortMapper/abstractions.js +2 -2
- package/features/sortMapper/abstractions.js.map +1 -1
- package/features/sortMapper/feature.js +7 -6
- package/features/sortMapper/feature.js.map +1 -1
- package/features/storage/StorageTransformRegistry.d.ts +1 -0
- package/features/storage/StorageTransformRegistry.js +29 -20
- package/features/storage/StorageTransformRegistry.js.map +1 -1
- package/features/storage/abstractions/StorageTransform.js +2 -1
- package/features/storage/abstractions/StorageTransform.js.map +1 -1
- package/features/storage/abstractions/StorageTransformRegistry.js +2 -1
- package/features/storage/abstractions/StorageTransformRegistry.js.map +1 -1
- package/features/storage/feature.js +15 -12
- package/features/storage/feature.js.map +1 -1
- package/features/storage/fields/CompressedTextStorageTransform.d.ts +13 -0
- package/features/storage/fields/CompressedTextStorageTransform.js +37 -0
- package/features/storage/fields/CompressedTextStorageTransform.js.map +1 -0
- package/features/storage/fields/DateStorageTransform.js +67 -96
- package/features/storage/fields/DateStorageTransform.js.map +1 -1
- package/features/storage/fields/DefaultStorageTransform.js +13 -14
- package/features/storage/fields/DefaultStorageTransform.js.map +1 -1
- package/features/storage/fields/DynamicZoneStorageTransform.js +91 -128
- package/features/storage/fields/DynamicZoneStorageTransform.js.map +1 -1
- package/features/storage/fields/JsonStorageTransform.js +17 -22
- package/features/storage/fields/JsonStorageTransform.js.map +1 -1
- package/features/storage/fields/LongTextStorageTransform.js +33 -44
- package/features/storage/fields/LongTextStorageTransform.js.map +1 -1
- package/features/storage/fields/ObjectStorageTransform.js +64 -87
- package/features/storage/fields/ObjectStorageTransform.js.map +1 -1
- package/features/storage/fields/RichTextStorageTransform.js +23 -28
- package/features/storage/fields/RichTextStorageTransform.js.map +1 -1
- package/features/storage/index.js +0 -2
- package/features/validation/CmsModelFieldPatternValidatorRegistry.js +21 -15
- package/features/validation/CmsModelFieldPatternValidatorRegistry.js.map +1 -1
- package/features/validation/CmsModelFieldValidatorRegistry.js +21 -17
- package/features/validation/CmsModelFieldValidatorRegistry.js.map +1 -1
- package/features/validation/abstractions/CmsModelFieldPatternValidator.js +2 -1
- package/features/validation/abstractions/CmsModelFieldPatternValidator.js.map +1 -1
- package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js +2 -1
- package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js.map +1 -1
- package/features/validation/abstractions/CmsModelFieldValidator.js +2 -1
- package/features/validation/abstractions/CmsModelFieldValidator.js.map +1 -1
- package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js +2 -1
- package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js.map +1 -1
- package/features/validation/feature.js +25 -24
- package/features/validation/feature.js.map +1 -1
- package/features/validation/index.js +0 -2
- package/features/validation/validators/DateGteValidator.js +12 -18
- package/features/validation/validators/DateGteValidator.js.map +1 -1
- package/features/validation/validators/DateLteValidator.js +12 -18
- package/features/validation/validators/DateLteValidator.js.map +1 -1
- package/features/validation/validators/GteValidator.js +11 -13
- package/features/validation/validators/GteValidator.js.map +1 -1
- package/features/validation/validators/InValidator.js +11 -13
- package/features/validation/validators/InValidator.js.map +1 -1
- package/features/validation/validators/LteValidator.js +11 -13
- package/features/validation/validators/LteValidator.js.map +1 -1
- package/features/validation/validators/MaxLengthValidator.js +11 -13
- package/features/validation/validators/MaxLengthValidator.js.map +1 -1
- package/features/validation/validators/MinLengthValidator.js +11 -13
- package/features/validation/validators/MinLengthValidator.js.map +1 -1
- package/features/validation/validators/PatternValidator.js +20 -29
- package/features/validation/validators/PatternValidator.js.map +1 -1
- package/features/validation/validators/RequiredValidator.js +10 -9
- package/features/validation/validators/RequiredValidator.js.map +1 -1
- package/features/validation/validators/TimeGteValidator.js +11 -13
- package/features/validation/validators/TimeGteValidator.js.map +1 -1
- package/features/validation/validators/TimeLteValidator.js +11 -13
- package/features/validation/validators/TimeLteValidator.js.map +1 -1
- package/features/validation/validators/UniqueValidator.js +31 -38
- package/features/validation/validators/UniqueValidator.js.map +1 -1
- package/features/validation/validators/patterns/EmailPattern.js +11 -8
- package/features/validation/validators/patterns/EmailPattern.js.map +1 -1
- package/features/validation/validators/patterns/LowerCasePattern.js +11 -8
- package/features/validation/validators/patterns/LowerCasePattern.js.map +1 -1
- package/features/validation/validators/patterns/LowerCaseSpacePattern.js +11 -8
- package/features/validation/validators/patterns/LowerCaseSpacePattern.js.map +1 -1
- package/features/validation/validators/patterns/UpperCasePattern.js +11 -8
- package/features/validation/validators/patterns/UpperCasePattern.js.map +1 -1
- package/features/validation/validators/patterns/UpperCaseSpacePattern.js +11 -8
- package/features/validation/validators/patterns/UpperCaseSpacePattern.js.map +1 -1
- package/features/validation/validators/patterns/UrlPattern.js +11 -8
- package/features/validation/validators/patterns/UrlPattern.js.map +1 -1
- package/features/whereMapper/WhereMapper.js +42 -69
- package/features/whereMapper/WhereMapper.js.map +1 -1
- package/features/whereMapper/abstractions.js +2 -2
- package/features/whereMapper/abstractions.js.map +1 -1
- package/features/whereMapper/feature.js +7 -6
- package/features/whereMapper/feature.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +18 -37
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +92 -136
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +103 -152
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +6 -6
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.js +16 -20
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.js +4 -5
- package/graphql/checkEndpointAccess.js.map +1 -1
- package/graphql/createExecutableSchema.js +30 -41
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/formatErrorPayload.js +13 -14
- package/graphql/formatErrorPayload.js.map +1 -1
- package/graphql/generateSchema.js +20 -24
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema/generateCacheId.js +7 -6
- package/graphql/getSchema/generateCacheId.js.map +1 -1
- package/graphql/getSchema/generateCacheKey.js +23 -23
- package/graphql/getSchema/generateCacheKey.js.map +1 -1
- package/graphql/getSchema.js +46 -63
- package/graphql/getSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +15 -23
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.js +50 -63
- package/graphql/handleRequest.js.map +1 -1
- package/graphql/index.js +6 -3
- package/graphql/index.js.map +1 -1
- package/graphql/scalars/RevisionId.js +10 -14
- package/graphql/scalars/RevisionId.js.map +1 -1
- package/graphql/scalars/RevisionIdScalarPlugin.js +10 -7
- package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +29 -30
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.js +33 -36
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/cms/createEntryResolver.js +37 -49
- package/graphql/schema/cms/createEntryResolver.js.map +1 -1
- package/graphql/schema/cms/deleteEntryResolver.js +39 -51
- package/graphql/schema/cms/deleteEntryResolver.js.map +1 -1
- package/graphql/schema/cms/getEntryResolver.js +37 -51
- package/graphql/schema/cms/getEntryResolver.js.map +1 -1
- package/graphql/schema/cms/helpers/buildFieldsSelection.js +26 -71
- package/graphql/schema/cms/helpers/buildFieldsSelection.js.map +1 -1
- package/graphql/schema/cms/helpers/getErrorMessage.js +5 -11
- package/graphql/schema/cms/helpers/getErrorMessage.js.map +1 -1
- package/graphql/schema/cms/helpers/getModel.js +5 -9
- package/graphql/schema/cms/helpers/getModel.js.map +1 -1
- package/graphql/schema/cms/helpers/index.js +0 -2
- package/graphql/schema/cms/helpers/transformSortToArray.js +7 -34
- package/graphql/schema/cms/helpers/transformSortToArray.js.map +1 -1
- package/graphql/schema/cms/helpers/transformWhereToNested.js +23 -50
- package/graphql/schema/cms/helpers/transformWhereToNested.js.map +1 -1
- package/graphql/schema/cms/helpers.js +0 -2
- package/graphql/schema/cms/index.js +20 -22
- package/graphql/schema/cms/index.js.map +1 -1
- package/graphql/schema/cms/listEntriesResolver.js +58 -82
- package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
- package/graphql/schema/cms/publishEntryResolver.js +37 -49
- package/graphql/schema/cms/publishEntryResolver.js.map +1 -1
- package/graphql/schema/cms/resolvers/createEntry.js +11 -10
- package/graphql/schema/cms/resolvers/createEntry.js.map +1 -1
- package/graphql/schema/cms/resolvers/deleteEntryRevision.js +11 -10
- package/graphql/schema/cms/resolvers/deleteEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/getEntry.js +11 -10
- package/graphql/schema/cms/resolvers/getEntry.js.map +1 -1
- package/graphql/schema/cms/resolvers/index.js +0 -2
- package/graphql/schema/cms/resolvers/listEntries.js +11 -10
- package/graphql/schema/cms/resolvers/listEntries.js.map +1 -1
- package/graphql/schema/cms/resolvers/mutationCms.js +13 -18
- package/graphql/schema/cms/resolvers/mutationCms.js.map +1 -1
- package/graphql/schema/cms/resolvers/publishEntryRevision.js +11 -10
- package/graphql/schema/cms/resolvers/publishEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/queryCms.js +13 -17
- package/graphql/schema/cms/resolvers/queryCms.js.map +1 -1
- package/graphql/schema/cms/resolvers/unpublishEntryRevision.js +11 -10
- package/graphql/schema/cms/resolvers/unpublishEntryRevision.js.map +1 -1
- package/graphql/schema/cms/resolvers/updateEntryRevision.js +11 -10
- package/graphql/schema/cms/resolvers/updateEntryRevision.js.map +1 -1
- package/graphql/schema/cms/typeDefs/index.js +0 -2
- package/graphql/schema/cms/typeDefs/mutation.js +8 -7
- package/graphql/schema/cms/typeDefs/mutation.js.map +1 -1
- package/graphql/schema/cms/typeDefs/query.js +8 -7
- package/graphql/schema/cms/typeDefs/query.js.map +1 -1
- package/graphql/schema/cms/typeDefs/responses.js +8 -7
- package/graphql/schema/cms/typeDefs/responses.js.map +1 -1
- package/graphql/schema/cms/unpublishEntryResolver.js +37 -49
- package/graphql/schema/cms/unpublishEntryResolver.js.map +1 -1
- package/graphql/schema/cms/updateEntryResolver.js +38 -51
- package/graphql/schema/cms/updateEntryResolver.js.map +1 -1
- package/graphql/schema/contentEntries.js +218 -305
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +70 -89
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +92 -105
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +67 -121
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +70 -86
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +48 -58
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +24 -27
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +26 -35
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +35 -42
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/createSingularResolvers.js +32 -40
- package/graphql/schema/createSingularResolvers.js.map +1 -1
- package/graphql/schema/createSingularSDL.js +32 -44
- package/graphql/schema/createSingularSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +36 -48
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +9 -10
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +9 -10
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +18 -28
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +11 -12
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +41 -53
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +9 -10
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +9 -10
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +9 -10
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +10 -11
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveListDeleted.js +10 -11
- package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.js +11 -17
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +9 -10
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +10 -11
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +9 -10
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +10 -11
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +9 -10
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js +12 -0
- package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js +10 -11
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +13 -16
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +10 -11
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +13 -16
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +10 -11
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/singular/resolveGet.js +7 -10
- package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/singular/resolveUpdate.js +7 -10
- package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +81 -97
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/index.js +17 -23
- package/index.js.map +1 -1
- package/legacy/abstractions.js +5 -22
- package/legacy/abstractions.js.map +1 -1
- package/package.json +26 -26
- package/parameters/context.js +4 -7
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +10 -22
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +0 -2
- package/parameters/path.js +9 -19
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +6 -5
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin/index.js +0 -2
- package/plugins/CmsGroupPlugin.js +15 -26
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +5 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.js +135 -213
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +12 -14
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageOperationsCmsModelPlugin.js +22 -29
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
- package/plugins/index.js +0 -2
- package/types/context.d.ts +6 -2
- package/types/context.js +0 -3
- package/types/fields/dynamicZoneField.js +0 -3
- package/types/fields/objectField.js +0 -3
- package/types/identity.js +0 -3
- package/types/index.js +0 -2
- package/types/model.js +0 -3
- package/types/modelAst.js +0 -3
- package/types/modelField.js +0 -3
- package/types/modelGroup.js +0 -3
- package/types/plugins.js +0 -3
- package/types/types.d.ts +4 -9
- package/types/types.js +6 -218
- package/types/types.js.map +1 -1
- package/utils/caching/Cache.js +28 -35
- package/utils/caching/Cache.js.map +1 -1
- package/utils/caching/CacheKey.js +13 -14
- package/utils/caching/CacheKey.js.map +1 -1
- package/utils/caching/index.js +0 -2
- package/utils/caching/types.js +0 -3
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +12 -15
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -1
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +13 -12
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -1
- package/utils/contentModelAst/CmsModelToAstConverter.js +14 -18
- package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
- package/utils/contentModelAst/index.js +0 -2
- package/utils/converters/Converter.js +35 -44
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +70 -107
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/types.js +0 -3
- package/utils/converters/valueKeyFromStorageConverter.js +13 -19
- package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +18 -21
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyToStorageConverter.js +13 -19
- package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
- package/utils/createModelField.js +24 -44
- package/utils/createModelField.js.map +1 -1
- package/utils/createTypeFromFields.js +30 -52
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js +2 -3
- package/utils/createTypeName.js.map +1 -1
- package/utils/date.js +9 -24
- package/utils/date.js.map +1 -1
- package/utils/entryStorage.js +57 -90
- package/utils/entryStorage.js.map +1 -1
- package/utils/errors.js +7 -7
- package/utils/errors.js.map +1 -1
- package/utils/filterAsync.js +8 -9
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.js +4 -5
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.js +9 -14
- package/utils/getEntryDescription.js.map +1 -1
- package/utils/getEntryImage.js +9 -14
- package/utils/getEntryImage.js.map +1 -1
- package/utils/getEntryTitle.js +11 -26
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.js +27 -39
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/identity.js +9 -16
- package/utils/identity.js.map +1 -1
- package/utils/incrementEntryIdVersion.js +14 -18
- package/utils/incrementEntryIdVersion.js.map +1 -1
- package/utils/index.js +0 -2
- package/utils/isHeadlessCmsReady.js +5 -14
- package/utils/isHeadlessCmsReady.js.map +1 -1
- package/utils/modelFieldTraverser/ModelFieldTraverser.js +27 -29
- package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -1
- package/utils/modelFieldTraverser/index.js +0 -2
- package/utils/renderFields.js +26 -49
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +31 -37
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +23 -40
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +60 -56
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +21 -23
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +6 -7
- package/utils/toSlug.js.map +1 -1
- package/abstractions/entryHooks/index.js.map +0 -1
- package/abstractions/index.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +0 -19
- package/crud/contentEntry/entryDataFactories/createEntryData.js +0 -263
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +0 -22
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +0 -165
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +0 -14
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +0 -59
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +0 -13
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +0 -54
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +0 -11
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +0 -34
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +0 -19
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +0 -131
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/index.d.ts +0 -8
- package/crud/contentEntry/entryDataFactories/index.js +0 -10
- package/crud/contentEntry/entryDataFactories/index.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +0 -32
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/statuses.js +0 -6
- package/crud/contentEntry/entryDataFactories/statuses.js.map +0 -1
- package/crud/contentEntry/entryDataFactories/system.js +0 -14
- package/crud/contentEntry/entryDataFactories/system.js.map +0 -1
- package/export/index.js.map +0 -1
- package/exports/api/cms/entry.js.map +0 -1
- package/exports/api/cms/graphql.js.map +0 -1
- package/exports/api/cms/group.js.map +0 -1
- package/exports/api/cms/model.js.map +0 -1
- package/exports/api/cms/storage.js.map +0 -1
- package/exports/api/cms/validation.js.map +0 -1
- package/extensions/entryHooks/index.js.map +0 -1
- package/features/contentEntry/ContentEntryTraverser/index.js.map +0 -1
- package/features/contentEntry/CreateEntry/index.js.map +0 -1
- package/features/contentEntry/CreateEntryRevisionFrom/index.js.map +0 -1
- package/features/contentEntry/DeleteEntry/index.js.map +0 -1
- package/features/contentEntry/DeleteEntryRevision/index.js.map +0 -1
- package/features/contentEntry/DeleteMultipleEntries/index.js.map +0 -1
- package/features/contentEntry/GetEntriesByIds/index.js.map +0 -1
- package/features/contentEntry/GetEntry/index.js.map +0 -1
- package/features/contentEntry/GetEntryById/index.js.map +0 -1
- package/features/contentEntry/GetLatestEntriesByIds/index.js.map +0 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/index.js.map +0 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/index.js.map +0 -1
- package/features/contentEntry/GetPublishedEntriesByIds/index.js.map +0 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/index.js.map +0 -1
- package/features/contentEntry/GetRevisionById/index.js.map +0 -1
- package/features/contentEntry/GetRevisionsByEntryId/index.js.map +0 -1
- package/features/contentEntry/GetSingletonEntry/index.js.map +0 -1
- package/features/contentEntry/GetUniqueFieldValues/index.js.map +0 -1
- package/features/contentEntry/ListEntries/index.js.map +0 -1
- package/features/contentEntry/MoveEntry/index.js.map +0 -1
- package/features/contentEntry/PublishEntry/index.js.map +0 -1
- package/features/contentEntry/RepublishEntry/index.js.map +0 -1
- package/features/contentEntry/RestoreEntryFromBin/index.js.map +0 -1
- package/features/contentEntry/UnpublishEntry/index.js.map +0 -1
- package/features/contentEntry/UpdateEntry/index.js.map +0 -1
- package/features/contentEntry/UpdateSingletonEntry/index.js.map +0 -1
- package/features/contentEntry/ValidateEntry/index.js.map +0 -1
- package/features/contentModel/CreateModel/index.js.map +0 -1
- package/features/contentModel/CreateModelFrom/index.js.map +0 -1
- package/features/contentModel/DeleteModel/index.js.map +0 -1
- package/features/contentModel/GetModel/index.js.map +0 -1
- package/features/contentModel/ListModels/index.js.map +0 -1
- package/features/contentModel/ModelFieldCompression/index.js.map +0 -1
- package/features/contentModel/ModelToAstConverter/index.js.map +0 -1
- package/features/contentModel/UpdateModel/index.js.map +0 -1
- package/features/contentModelGroup/CreateGroup/index.js.map +0 -1
- package/features/contentModelGroup/DeleteGroup/index.js.map +0 -1
- package/features/contentModelGroup/GetGroup/index.js.map +0 -1
- package/features/contentModelGroup/ListGroups/index.js.map +0 -1
- package/features/contentModelGroup/UpdateGroup/index.js.map +0 -1
- package/features/contentModelGroup/shared/index.js.map +0 -1
- package/features/graphql/index.js.map +0 -1
- package/features/modelBuilder/fields/FieldBuilder.js.map +0 -1
- package/features/modelBuilder/fields/fieldTypeValidator.js.map +0 -1
- package/features/modelBuilder/index.js.map +0 -1
- package/features/storage/index.js.map +0 -1
- package/features/validation/index.js.map +0 -1
- package/graphql/schema/cms/helpers/index.js.map +0 -1
- package/graphql/schema/cms/helpers.js.map +0 -1
- package/graphql/schema/cms/resolvers/index.js.map +0 -1
- package/graphql/schema/cms/typeDefs/index.js.map +0 -1
- package/parameters/index.js.map +0 -1
- package/plugins/CmsGraphQLSchemaPlugin/index.js.map +0 -1
- package/plugins/index.js.map +0 -1
- package/types/context.js.map +0 -1
- package/types/fields/dynamicZoneField.js.map +0 -1
- package/types/fields/objectField.js.map +0 -1
- package/types/identity.js.map +0 -1
- package/types/index.js.map +0 -1
- package/types/model.js.map +0 -1
- package/types/modelAst.js.map +0 -1
- package/types/modelField.js.map +0 -1
- package/types/modelGroup.js.map +0 -1
- package/types/plugins.js.map +0 -1
- package/utils/caching/index.js.map +0 -1
- package/utils/caching/types.js.map +0 -1
- package/utils/contentModelAst/index.js.map +0 -1
- package/utils/converters/types.js.map +0 -1
- package/utils/index.js.map +0 -1
- package/utils/modelFieldTraverser/index.js.map +0 -1
- /package/{crud → features}/contentEntry/entryDataFactories/statuses.d.ts +0 -0
- /package/{crud → features}/contentEntry/entryDataFactories/system.d.ts +0 -0
|
@@ -1,336 +1,218 @@
|
|
|
1
1
|
import camelCase from "lodash/camelCase.js";
|
|
2
2
|
import { EntryValidationError } from "../../domain/contentEntry/errors.js";
|
|
3
3
|
import { CmsModelFieldValidatorRegistry } from "../../features/validation/index.js";
|
|
4
|
-
const validateValue = async (params, fieldValidators, value)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const result = await validate({
|
|
24
|
-
value,
|
|
25
|
-
context,
|
|
26
|
-
validator: fieldValidator,
|
|
27
|
-
field,
|
|
28
|
-
model,
|
|
29
|
-
entry
|
|
30
|
-
});
|
|
31
|
-
if (!result) {
|
|
32
|
-
return fieldValidator.message;
|
|
4
|
+
const validateValue = async (params, fieldValidators, value)=>{
|
|
5
|
+
if (!fieldValidators) return null;
|
|
6
|
+
const { validatorList, context, field, model, entry } = params;
|
|
7
|
+
try {
|
|
8
|
+
for (const fieldValidator of fieldValidators){
|
|
9
|
+
const name = fieldValidator.name;
|
|
10
|
+
const validations = validatorList[name];
|
|
11
|
+
if (!validations || 0 === validations.length) return `There are no "${name}" validators defined.`;
|
|
12
|
+
for (const validate of validations){
|
|
13
|
+
const result = await validate({
|
|
14
|
+
value,
|
|
15
|
+
context,
|
|
16
|
+
validator: fieldValidator,
|
|
17
|
+
field,
|
|
18
|
+
model,
|
|
19
|
+
entry
|
|
20
|
+
});
|
|
21
|
+
if (!result) return fieldValidator.message;
|
|
22
|
+
}
|
|
33
23
|
}
|
|
34
|
-
|
|
24
|
+
} catch (ex) {
|
|
25
|
+
return ex.message;
|
|
35
26
|
}
|
|
36
|
-
} catch (ex) {
|
|
37
|
-
return ex.message;
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
const validatePredefinedValue = (field, value) => {
|
|
42
|
-
const {
|
|
43
|
-
enabled = false,
|
|
44
|
-
values: predefinedValues = []
|
|
45
|
-
} = field.predefinedValues || {};
|
|
46
|
-
if (!enabled) {
|
|
47
27
|
return null;
|
|
48
|
-
} else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {
|
|
49
|
-
return "Missing predefined values to validate against.";
|
|
50
|
-
} else if (value === "" || value === null || value === undefined) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
for (const predefinedValue of predefinedValues) {
|
|
54
|
-
/**
|
|
55
|
-
* No strict compare because the value sent can be 12345 (number) and predefinedValue can be "12345" (string),
|
|
56
|
-
* and we want it to match.
|
|
57
|
-
*/
|
|
58
|
-
if (predefinedValue.value == value) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return "Value sent does not match any of the available predefined values.";
|
|
63
28
|
};
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
29
|
+
const validatePredefinedValue = (field, value)=>{
|
|
30
|
+
const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};
|
|
31
|
+
if (!enabled) return null;
|
|
32
|
+
if (false === Array.isArray(predefinedValues) || 0 === predefinedValues.length) return "Missing predefined values to validate against.";
|
|
33
|
+
if ("" === value || null == value) return null;
|
|
34
|
+
for (const predefinedValue of predefinedValues)if (predefinedValue.value == value) return null;
|
|
35
|
+
return "Value sent does not match any of the available predefined values.";
|
|
69
36
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const runFieldMultipleValuesValidations = async params
|
|
75
|
-
|
|
76
|
-
field
|
|
77
|
-
values
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
for (const value of values) {
|
|
88
|
-
const valueError = await validateValue(params, getFieldValidation(field.validation), value);
|
|
89
|
-
if (valueError) {
|
|
90
|
-
return valueError;
|
|
91
|
-
}
|
|
92
|
-
const predefinedValueError = validatePredefinedValue(field, value);
|
|
93
|
-
if (predefinedValueError) {
|
|
94
|
-
return predefinedValueError;
|
|
37
|
+
const getFieldValidation = (listValidation)=>{
|
|
38
|
+
if (!listValidation?.length) return [];
|
|
39
|
+
return listValidation.filter((item)=>"dynamicZone" !== item.name);
|
|
40
|
+
};
|
|
41
|
+
const runFieldMultipleValuesValidations = async (params)=>{
|
|
42
|
+
const { field, values: initialValues } = params;
|
|
43
|
+
const values = initialValues[field.fieldId];
|
|
44
|
+
const valuesError = await validateValue(params, getFieldValidation(field.listValidation), values);
|
|
45
|
+
if (valuesError) return valuesError;
|
|
46
|
+
if (null == values) return null;
|
|
47
|
+
for (const value of values){
|
|
48
|
+
const valueError = await validateValue(params, getFieldValidation(field.validation), value);
|
|
49
|
+
if (valueError) return valueError;
|
|
50
|
+
const predefinedValueError = validatePredefinedValue(field, value);
|
|
51
|
+
if (predefinedValueError) return predefinedValueError;
|
|
95
52
|
}
|
|
96
|
-
|
|
97
|
-
return null;
|
|
53
|
+
return null;
|
|
98
54
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
field
|
|
106
|
-
} = params;
|
|
107
|
-
const value = values[field.fieldId];
|
|
108
|
-
const error = await validateValue(params, field.validation || [], value);
|
|
109
|
-
if (error) {
|
|
110
|
-
return error;
|
|
111
|
-
}
|
|
112
|
-
return validatePredefinedValue(field, value);
|
|
55
|
+
const runFieldValueValidations = async (params)=>{
|
|
56
|
+
const { values, field } = params;
|
|
57
|
+
const value = values[field.fieldId];
|
|
58
|
+
const error = await validateValue(params, field.validation || [], value);
|
|
59
|
+
if (error) return error;
|
|
60
|
+
return validatePredefinedValue(field, value);
|
|
113
61
|
};
|
|
114
|
-
const execValidation = async params
|
|
115
|
-
|
|
116
|
-
field
|
|
117
|
-
|
|
118
|
-
if (field.list) {
|
|
119
|
-
return await runFieldMultipleValuesValidations(params);
|
|
120
|
-
}
|
|
121
|
-
return await runFieldValueValidations(params);
|
|
62
|
+
const execValidation = async (params)=>{
|
|
63
|
+
const { field } = params;
|
|
64
|
+
if (field.list) return await runFieldMultipleValuesValidations(params);
|
|
65
|
+
return await runFieldValueValidations(params);
|
|
122
66
|
};
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (!validatorList[name]) {
|
|
144
|
-
validatorList[name] = [];
|
|
145
|
-
}
|
|
146
|
-
const isSkipped = isValidatorSkipped(validator);
|
|
147
|
-
if (isSkipped) {
|
|
148
|
-
skippedValidators.add(name);
|
|
149
|
-
validatorList[name].push(async () => {
|
|
150
|
-
return true;
|
|
151
|
-
});
|
|
152
|
-
continue;
|
|
67
|
+
const validateModelEntryData = async (params)=>{
|
|
68
|
+
const { context, model, entry, values, skipValidators } = params;
|
|
69
|
+
const isValidatorSkipped = (validator)=>{
|
|
70
|
+
if (!skipValidators) return false;
|
|
71
|
+
return skipValidators.includes(camelCase(validator.name));
|
|
72
|
+
};
|
|
73
|
+
const skippedValidators = new Set();
|
|
74
|
+
const validatorList = {};
|
|
75
|
+
const registry = context.container.resolve(CmsModelFieldValidatorRegistry);
|
|
76
|
+
const validators = registry.getAll();
|
|
77
|
+
for (const validator of validators){
|
|
78
|
+
const name = validator.name;
|
|
79
|
+
if (!validatorList[name]) validatorList[name] = [];
|
|
80
|
+
const isSkipped = isValidatorSkipped(validator);
|
|
81
|
+
if (isSkipped) {
|
|
82
|
+
skippedValidators.add(name);
|
|
83
|
+
validatorList[name].push(async ()=>true);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
validatorList[name].push((params)=>validator.validate(params));
|
|
153
87
|
}
|
|
154
|
-
|
|
155
|
-
|
|
88
|
+
const keys = Object.keys(validatorList);
|
|
89
|
+
if (keys.length === skippedValidators.size) return [];
|
|
90
|
+
return await entryDataValidation_validate({
|
|
91
|
+
validatorList,
|
|
92
|
+
context,
|
|
93
|
+
model,
|
|
94
|
+
entry,
|
|
95
|
+
parents: [],
|
|
96
|
+
fields: model.fields,
|
|
97
|
+
values: {
|
|
98
|
+
...entry?.values,
|
|
99
|
+
...values
|
|
100
|
+
}
|
|
156
101
|
});
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* No point in continuing if all validators are skipped.
|
|
160
|
-
*/
|
|
161
|
-
const keys = Object.keys(validatorList);
|
|
162
|
-
if (keys.length === skippedValidators.size) {
|
|
163
|
-
return [];
|
|
164
|
-
}
|
|
165
|
-
return await validate({
|
|
166
|
-
validatorList,
|
|
167
|
-
context,
|
|
168
|
-
model,
|
|
169
|
-
entry,
|
|
170
|
-
parents: [],
|
|
171
|
-
fields: model.fields,
|
|
172
|
-
values: {
|
|
173
|
-
...entry?.values,
|
|
174
|
-
...values
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
102
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
throw new EntryValidationError("Validation failed.", invalidFields);
|
|
103
|
+
const validateModelEntryDataOrThrow = async (params)=>{
|
|
104
|
+
const invalidFields = await validateModelEntryData(params);
|
|
105
|
+
if (0 === invalidFields.length) return;
|
|
106
|
+
throw new EntryValidationError("Validation failed.", invalidFields);
|
|
184
107
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
108
|
+
const executeFieldValidation = async (params)=>{
|
|
109
|
+
const { field } = params;
|
|
110
|
+
if ("object" === field.type) {
|
|
111
|
+
const fields = field.settings?.fields;
|
|
112
|
+
if (!Array.isArray(fields)) return [];
|
|
113
|
+
const validations = [];
|
|
114
|
+
const error = await execValidation({
|
|
115
|
+
...params,
|
|
116
|
+
field
|
|
117
|
+
});
|
|
118
|
+
if (error) validations.push({
|
|
119
|
+
id: field.id,
|
|
120
|
+
fieldId: field.fieldId,
|
|
121
|
+
storageId: field.storageId,
|
|
122
|
+
error,
|
|
123
|
+
parents: params.parents
|
|
124
|
+
});
|
|
125
|
+
const objectValue = params.values[field.fieldId];
|
|
126
|
+
if (!objectValue) return validations;
|
|
127
|
+
const values = Array.isArray(objectValue) ? objectValue : [
|
|
128
|
+
objectValue
|
|
129
|
+
];
|
|
130
|
+
for(const index in values){
|
|
131
|
+
const parents = field.list ? [
|
|
132
|
+
field.fieldId,
|
|
133
|
+
index
|
|
134
|
+
] : [
|
|
135
|
+
field.fieldId
|
|
136
|
+
];
|
|
137
|
+
const value = values[index];
|
|
138
|
+
for (const childField of fields){
|
|
139
|
+
const errors = await executeFieldValidation({
|
|
140
|
+
...params,
|
|
141
|
+
parents: params.parents.concat(parents),
|
|
142
|
+
field: childField,
|
|
143
|
+
values: value
|
|
144
|
+
});
|
|
145
|
+
if (0 !== errors.length) validations.push(...errors);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return validations;
|
|
223
149
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
150
|
+
if ("dynamicZone" === field.type) {
|
|
151
|
+
const validations = [];
|
|
152
|
+
const error = await execValidation({
|
|
153
|
+
...params,
|
|
154
|
+
field
|
|
155
|
+
});
|
|
156
|
+
if (error) validations.push({
|
|
157
|
+
id: field.id,
|
|
158
|
+
fieldId: field.fieldId,
|
|
159
|
+
storageId: field.storageId,
|
|
160
|
+
error,
|
|
161
|
+
parents: params.parents
|
|
234
162
|
});
|
|
235
|
-
|
|
236
|
-
|
|
163
|
+
const templates = field.settings?.templates || [];
|
|
164
|
+
for (const template of templates){
|
|
165
|
+
const fields = template.fields;
|
|
166
|
+
const fieldData = params.values[field.fieldId];
|
|
167
|
+
if (!fieldData) continue;
|
|
168
|
+
const values = Array.isArray(fieldData) ? fieldData : [
|
|
169
|
+
fieldData
|
|
170
|
+
];
|
|
171
|
+
for(const index in values){
|
|
172
|
+
const templateValue = values[index]?.[template.gqlTypeName];
|
|
173
|
+
if (!templateValue) continue;
|
|
174
|
+
const parents = [
|
|
175
|
+
field.fieldId
|
|
176
|
+
];
|
|
177
|
+
if (field.list) parents.push(index);
|
|
178
|
+
parents.push(template.gqlTypeName);
|
|
179
|
+
for (const childField of fields){
|
|
180
|
+
const errors = await executeFieldValidation({
|
|
181
|
+
...params,
|
|
182
|
+
parents: params.parents.concat(parents),
|
|
183
|
+
field: childField,
|
|
184
|
+
values: templateValue
|
|
185
|
+
});
|
|
186
|
+
if (0 !== errors.length) validations.push(...errors);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
237
189
|
}
|
|
238
|
-
validations
|
|
239
|
-
}
|
|
190
|
+
return validations;
|
|
240
191
|
}
|
|
241
|
-
return validations;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Dynamic Zone Field
|
|
245
|
-
*/
|
|
246
|
-
//
|
|
247
|
-
else if (field.type === "dynamicZone") {
|
|
248
|
-
const validations = [];
|
|
249
192
|
const error = await execValidation({
|
|
250
|
-
|
|
251
|
-
field
|
|
193
|
+
...params
|
|
252
194
|
});
|
|
253
|
-
if (error)
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
const templates = field.settings?.templates || [];
|
|
263
|
-
for (const template of templates) {
|
|
264
|
-
const fields = template.fields;
|
|
265
|
-
const fieldData = params.values[field.fieldId];
|
|
266
|
-
if (!fieldData) {
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
const values = Array.isArray(fieldData) ? fieldData : [fieldData];
|
|
270
|
-
for (const index in values) {
|
|
271
|
-
const templateValue = values[index]?.[template.gqlTypeName];
|
|
272
|
-
if (!templateValue) {
|
|
273
|
-
continue;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Order of the parents must be
|
|
277
|
-
* - fieldId
|
|
278
|
-
* - index (if multiple values)
|
|
279
|
-
* - gqlTypeName
|
|
280
|
-
*/
|
|
281
|
-
const parents = [field.fieldId];
|
|
282
|
-
if (field.list) {
|
|
283
|
-
parents.push(index);
|
|
284
|
-
}
|
|
285
|
-
parents.push(template.gqlTypeName);
|
|
286
|
-
for (const childField of fields) {
|
|
287
|
-
const errors = await executeFieldValidation({
|
|
288
|
-
...params,
|
|
289
|
-
parents: params.parents.concat(parents),
|
|
290
|
-
field: childField,
|
|
291
|
-
values: templateValue
|
|
292
|
-
});
|
|
293
|
-
if (errors.length === 0) {
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
validations.push(...errors);
|
|
195
|
+
if (!error) return [];
|
|
196
|
+
return [
|
|
197
|
+
{
|
|
198
|
+
id: field.id,
|
|
199
|
+
fieldId: field.fieldId,
|
|
200
|
+
storageId: field.storageId,
|
|
201
|
+
error,
|
|
202
|
+
parents: params.parents
|
|
297
203
|
}
|
|
298
|
-
|
|
299
|
-
}
|
|
300
|
-
return validations;
|
|
301
|
-
}
|
|
302
|
-
const error = await execValidation({
|
|
303
|
-
...params
|
|
304
|
-
});
|
|
305
|
-
if (!error) {
|
|
306
|
-
return [];
|
|
307
|
-
}
|
|
308
|
-
return [{
|
|
309
|
-
id: field.id,
|
|
310
|
-
fieldId: field.fieldId,
|
|
311
|
-
storageId: field.storageId,
|
|
312
|
-
error,
|
|
313
|
-
parents: params.parents
|
|
314
|
-
}];
|
|
204
|
+
];
|
|
315
205
|
};
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
});
|
|
326
|
-
}));
|
|
327
|
-
for (const result of results) {
|
|
328
|
-
if (result.length === 0) {
|
|
329
|
-
continue;
|
|
330
|
-
}
|
|
331
|
-
errors.push(...result);
|
|
332
|
-
}
|
|
333
|
-
return errors;
|
|
206
|
+
const entryDataValidation_validate = async (params)=>{
|
|
207
|
+
const { fields } = params;
|
|
208
|
+
const errors = [];
|
|
209
|
+
const results = await Promise.all(fields.map(async (field)=>await executeFieldValidation({
|
|
210
|
+
...params,
|
|
211
|
+
field
|
|
212
|
+
})));
|
|
213
|
+
for (const result of results)if (0 !== result.length) errors.push(...result);
|
|
214
|
+
return errors;
|
|
334
215
|
};
|
|
216
|
+
export { validateModelEntryData, validateModelEntryDataOrThrow };
|
|
335
217
|
|
|
336
218
|
//# sourceMappingURL=entryDataValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["camelCase","EntryValidationError","CmsModelFieldValidatorRegistry","validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","length","validate","result","validator","message","ex","validatePredefinedValue","enabled","values","predefinedValues","Array","isArray","undefined","predefinedValue","getFieldValidation","listValidation","filter","item","runFieldMultipleValuesValidations","initialValues","fieldId","valuesError","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","list","validateModelEntryData","skipValidators","isValidatorSkipped","includes","skippedValidators","Set","registry","container","resolve","validators","getAll","isSkipped","add","push","keys","Object","size","parents","fields","validateModelEntryDataOrThrow","invalidFields","executeFieldValidation","type","settings","id","storageId","objectValue","index","childField","errors","concat","templates","template","fieldData","templateValue","gqlTypeName","results","Promise","all","map"],"sources":["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"],"mappings":"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","ignoreList":[]}
|
|
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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"}
|