@webiny/api-headless-cms 6.3.0 → 6.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +2 -0
- package/exports/api/cms/entry.js +15 -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.js +0 -2
- 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.js +31 -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.js +157 -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.js +123 -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.js +24 -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 +13 -12
- package/features/storage/feature.js.map +1 -1
- 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 +25 -25
- 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,18 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
const disallowedEnding = [
|
|
2
|
+
"Response",
|
|
3
|
+
"List",
|
|
4
|
+
"Meta",
|
|
5
|
+
"Input",
|
|
6
|
+
"Sorter",
|
|
7
|
+
"RefType"
|
|
8
|
+
];
|
|
9
|
+
const isModelEndingAllowed = (apiName)=>{
|
|
10
|
+
for (const ending of disallowedEnding){
|
|
11
|
+
const re = new RegExp(`${ending}$`);
|
|
12
|
+
const matched = apiName.match(re);
|
|
13
|
+
if (null !== matched) return false;
|
|
12
14
|
}
|
|
13
|
-
return
|
|
14
|
-
}
|
|
15
|
-
return true;
|
|
15
|
+
return true;
|
|
16
16
|
};
|
|
17
|
+
export { disallowedEnding, isModelEndingAllowed };
|
|
17
18
|
|
|
18
19
|
//# sourceMappingURL=isModelEndingAllowed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/contentModel/validation/isModelEndingAllowed.js","sources":["../../../../src/domain/contentModel/validation/isModelEndingAllowed.ts"],"sourcesContent":["/**\n * This list is to disallow creating models that might interfere with GraphQL schema creation.\n * Add more if required.\n */\nexport const disallowedEnding: string[] = [\n \"Response\",\n \"List\",\n \"Meta\",\n \"Input\",\n \"Sorter\",\n \"RefType\"\n];\n\nexport const isModelEndingAllowed = (apiName: string): boolean => {\n for (const ending of disallowedEnding) {\n const re = new RegExp(`${ending}$`);\n const matched = apiName.match(re);\n if (matched === null) {\n continue;\n }\n return false;\n }\n return true;\n};\n"],"names":["disallowedEnding","isModelEndingAllowed","apiName","ending","re","RegExp","matched"],"mappings":"AAIO,MAAMA,mBAA6B;IACtC;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMC,uBAAuB,CAACC;IACjC,KAAK,MAAMC,UAAUH,iBAAkB;QACnC,MAAMI,KAAK,IAAIC,OAAO,GAAGF,OAAO,CAAC,CAAC;QAClC,MAAMG,UAAUJ,QAAQ,KAAK,CAACE;QAC9B,IAAIE,AAAY,SAAZA,SAGJ,OAAO;IACX;IACA,OAAO;AACX"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import graphql_tag from "graphql-tag";
|
|
2
2
|
import { generateAlphaNumericId } from "@webiny/utils";
|
|
3
|
-
import
|
|
3
|
+
import _webiny_error from "@webiny/error";
|
|
4
4
|
import { createManageSDL } from "../../../graphql/schema/createManageSDL.js";
|
|
5
5
|
import { createFieldStorageId } from "../createFieldStorageId.js";
|
|
6
6
|
import { getBaseFieldType } from "../../../utils/getBaseFieldType.js";
|
|
@@ -11,257 +11,155 @@ import { CmsGraphQLSchemaPlugin } from "../../../plugins/index.js";
|
|
|
11
11
|
import { buildSchemaPlugins } from "../../../graphql/buildSchemaPlugins.js";
|
|
12
12
|
import { createExecutableSchema } from "../../../graphql/createExecutableSchema.js";
|
|
13
13
|
import { CmsGraphQLSchemaSorter, CmsModelFieldToGraphQLRegistry } from "../../../features/graphql/index.js";
|
|
14
|
-
const extractInvalidField = (model, err)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
for (let i = lineNumber; i > 0; i--) {
|
|
29
|
-
if (sdlLine && sdlLine.includes("type ")) {
|
|
30
|
-
gqlType = sdlLine.match(/type\s+(.*?)\s+{/);
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
sdlLine = sdlLines[i];
|
|
34
|
-
}
|
|
35
|
-
let invalidField = undefined;
|
|
36
|
-
if (Array.isArray(gqlType)) {
|
|
37
|
-
const fieldRegex = new RegExp(`([^\\s+].*?):\\s+\\[?${gqlType[1]}!?\\]?`);
|
|
38
|
-
const matched = sdl.match(fieldRegex);
|
|
39
|
-
if (matched) {
|
|
40
|
-
invalidField = matched[1];
|
|
14
|
+
const extractInvalidField = (model, err)=>{
|
|
15
|
+
const sdl = err.source?.body || "";
|
|
16
|
+
const { line: lineNumber } = err.locations ? err.locations[0] : {
|
|
17
|
+
line: 0
|
|
18
|
+
};
|
|
19
|
+
const sdlLines = sdl.split("\n");
|
|
20
|
+
let sdlLine;
|
|
21
|
+
let gqlType;
|
|
22
|
+
for(let i = lineNumber; i > 0; i--){
|
|
23
|
+
if (sdlLine && sdlLine.includes("type ")) {
|
|
24
|
+
gqlType = sdlLine.match(/type\s+(.*?)\s+{/);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
sdlLine = sdlLines[i];
|
|
41
28
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return {
|
|
48
|
-
data: {
|
|
49
|
-
modelId: model.modelId,
|
|
50
|
-
sdl,
|
|
51
|
-
invalidField
|
|
52
|
-
},
|
|
53
|
-
code: "INVALID_MODEL_DEFINITION",
|
|
54
|
-
message: [`Model "${model.modelId}" was not saved!`, message].join("\n")
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
const createValidateChildFields = registry => {
|
|
58
|
-
return ({
|
|
59
|
-
fields,
|
|
60
|
-
originalFields
|
|
61
|
-
}) => {
|
|
62
|
-
if (fields.length === 0 && originalFields.length === 0) {
|
|
63
|
-
return;
|
|
29
|
+
let invalidField;
|
|
30
|
+
if (Array.isArray(gqlType)) {
|
|
31
|
+
const fieldRegex = new RegExp(`([^\\s+].*?):\\s+\\[?${gqlType[1]}!?\\]?`);
|
|
32
|
+
const matched = sdl.match(fieldRegex);
|
|
33
|
+
if (matched) invalidField = matched[1];
|
|
64
34
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
35
|
+
let message = "See more details in the browser console.";
|
|
36
|
+
if (invalidField) message = `Please review the definition of "${invalidField}" field.`;
|
|
37
|
+
return {
|
|
38
|
+
data: {
|
|
39
|
+
modelId: model.modelId,
|
|
40
|
+
sdl,
|
|
41
|
+
invalidField
|
|
42
|
+
},
|
|
43
|
+
code: "INVALID_MODEL_DEFINITION",
|
|
44
|
+
message: [
|
|
45
|
+
`Model "${model.modelId}" was not saved!`,
|
|
46
|
+
message
|
|
47
|
+
].join("\n")
|
|
48
|
+
};
|
|
71
49
|
};
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
* Why are we using the @?
|
|
109
|
-
*
|
|
110
|
-
* It is not part of special characters for the query syntax in the Lucene.
|
|
111
|
-
*
|
|
112
|
-
* Relevant links:
|
|
113
|
-
* https://lucene.apache.org/core/3_4_0/queryparsersyntax.html
|
|
114
|
-
* https://discuss.elastic.co/t/special-characters-in-field-names/10658/3
|
|
115
|
-
* https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2
|
|
116
|
-
*/
|
|
117
|
-
if (!field.storageId) {
|
|
118
|
-
/**
|
|
119
|
-
* When having an original field, set the storageId to value from the originalField
|
|
120
|
-
*/
|
|
121
|
-
if (originalField) {
|
|
122
|
-
field.storageId = originalField.storageId;
|
|
123
|
-
} else {
|
|
124
|
-
field.storageId = createFieldStorageId(field);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Check the field's fieldId against existing ones.
|
|
129
|
-
* There cannot be two fields with the same fieldId - outside world identifier.
|
|
130
|
-
*/
|
|
131
|
-
if (fieldIdList.includes(field.fieldId)) {
|
|
132
|
-
throw new WebinyError(`Cannot update content model because field "${field.storageId}" has fieldId "${field.fieldId}", which is already used.`);
|
|
133
|
-
}
|
|
134
|
-
fieldIdList.push(field.fieldId);
|
|
135
|
-
/**
|
|
136
|
-
* Check the field's storageId against the existing ones.
|
|
137
|
-
* There cannot be two fields with the same storageId.
|
|
138
|
-
*/
|
|
139
|
-
if (storageIdList.includes(field.storageId)) {
|
|
140
|
-
throw new WebinyError(`Cannot update content model because field "${field.label}" has storageId "${field.storageId}", which is already used.`);
|
|
50
|
+
const createValidateChildFields = (registry)=>({ fields, originalFields })=>{
|
|
51
|
+
if (0 === fields.length && 0 === originalFields.length) return;
|
|
52
|
+
validateFields({
|
|
53
|
+
fields,
|
|
54
|
+
originalFields,
|
|
55
|
+
registry
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
const validateFields = (params)=>{
|
|
59
|
+
const { registry, fields, originalFields } = params;
|
|
60
|
+
const idList = [];
|
|
61
|
+
const fieldIdList = [];
|
|
62
|
+
const storageIdList = [];
|
|
63
|
+
for (const field of fields){
|
|
64
|
+
const baseType = getBaseFieldType(field);
|
|
65
|
+
const fieldImpl = registry.get(baseType);
|
|
66
|
+
if (!fieldImpl) throw new Error(`Cannot update content model because of the unknown "${baseType}" field.`);
|
|
67
|
+
if (idList.includes(field.id)) throw new _webiny_error(`Cannot update content model because field "${field.storageId || field.fieldId}" has id "${field.id}", which is already used.`);
|
|
68
|
+
idList.push(field.id);
|
|
69
|
+
const originalField = originalFields.find((f)=>f.id === field.id);
|
|
70
|
+
if (!field.fieldId) throw new _webiny_error('Field does not have an "fieldId" defined.', "MISSING_FIELD_ID", {
|
|
71
|
+
field
|
|
72
|
+
});
|
|
73
|
+
if (!field.storageId) if (originalField) field.storageId = originalField.storageId;
|
|
74
|
+
else field.storageId = createFieldStorageId(field);
|
|
75
|
+
if (fieldIdList.includes(field.fieldId)) throw new _webiny_error(`Cannot update content model because field "${field.storageId}" has fieldId "${field.fieldId}", which is already used.`);
|
|
76
|
+
fieldIdList.push(field.fieldId);
|
|
77
|
+
if (storageIdList.includes(field.storageId)) throw new _webiny_error(`Cannot update content model because field "${field.label}" has storageId "${field.storageId}", which is already used.`);
|
|
78
|
+
storageIdList.push(field.storageId);
|
|
79
|
+
if (!fieldImpl.validateChildFields) continue;
|
|
80
|
+
const validateChildFields = createValidateChildFields(registry);
|
|
81
|
+
fieldImpl.validateChildFields({
|
|
82
|
+
field,
|
|
83
|
+
originalField,
|
|
84
|
+
validate: validateChildFields
|
|
85
|
+
});
|
|
141
86
|
}
|
|
142
|
-
storageIdList.push(field.storageId);
|
|
143
|
-
/**
|
|
144
|
-
* There might be some plugins which allow child fields.
|
|
145
|
-
* We use this method to validate them as well.
|
|
146
|
-
*/
|
|
147
|
-
if (!fieldImpl.validateChildFields) {
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
const validateChildFields = createValidateChildFields(registry);
|
|
151
|
-
fieldImpl.validateChildFields({
|
|
152
|
-
field,
|
|
153
|
-
originalField,
|
|
154
|
-
validate: validateChildFields
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
87
|
};
|
|
158
|
-
const createGraphQLSchema = async params
|
|
159
|
-
|
|
160
|
-
context
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
88
|
+
const createGraphQLSchema = async (params)=>{
|
|
89
|
+
const { context, model } = params;
|
|
90
|
+
const models = await context.security.withoutAuthorization(async ()=>(await context.cms.listModels()).filter((model)=>true !== model.isPrivate));
|
|
91
|
+
const modelPlugins = await buildSchemaPlugins({
|
|
92
|
+
context,
|
|
93
|
+
models: models.filter((m)=>m.modelId !== model.modelId).concat([
|
|
94
|
+
model
|
|
95
|
+
])
|
|
166
96
|
});
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
const plugins = context.plugins.byType(CmsGraphQLSchemaPlugin.type).filter(plugin => plugin.isApplicable(context)).reduce((collection, plugin) => {
|
|
176
|
-
const name = plugin.name || `${CmsGraphQLSchemaPlugin.type}-${generateAlphaNumericId(16)}`;
|
|
177
|
-
collection[name] = plugin;
|
|
178
|
-
return collection;
|
|
179
|
-
}, {});
|
|
180
|
-
for (const plugin of modelPlugins) {
|
|
181
|
-
const name = plugin.name || `${plugin.type}-${generateAlphaNumericId(16)}`;
|
|
182
|
-
plugins[name] = plugin;
|
|
183
|
-
}
|
|
184
|
-
return createExecutableSchema({
|
|
185
|
-
plugins: Object.values(plugins)
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
const extractErrorObject = error => {
|
|
189
|
-
return ["message", "code", "data", "stack"].reduce((output, key) => {
|
|
190
|
-
if (!error[key]) {
|
|
191
|
-
return output;
|
|
97
|
+
const plugins = context.plugins.byType(CmsGraphQLSchemaPlugin.type).filter((plugin)=>plugin.isApplicable(context)).reduce((collection, plugin)=>{
|
|
98
|
+
const name = plugin.name || `${CmsGraphQLSchemaPlugin.type}-${generateAlphaNumericId(16)}`;
|
|
99
|
+
collection[name] = plugin;
|
|
100
|
+
return collection;
|
|
101
|
+
}, {});
|
|
102
|
+
for (const plugin of modelPlugins){
|
|
103
|
+
const name = plugin.name || `${plugin.type}-${generateAlphaNumericId(16)}`;
|
|
104
|
+
plugins[name] = plugin;
|
|
192
105
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
106
|
+
return createExecutableSchema({
|
|
107
|
+
plugins: Object.values(plugins)
|
|
108
|
+
});
|
|
196
109
|
};
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Let's inspect the fields of the received content model. We prevent saving of a content model if it
|
|
219
|
-
* contains a field for which a "cms-model-field-to-graphql" plugin does not exist on the backend.
|
|
220
|
-
*/
|
|
221
|
-
const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
222
|
-
const sorters = context.container.resolveAll(CmsGraphQLSchemaSorter);
|
|
223
|
-
validateFields({
|
|
224
|
-
fields,
|
|
225
|
-
originalFields: original?.fields || [],
|
|
226
|
-
registry: fieldRegistry
|
|
227
|
-
});
|
|
228
|
-
if (fields.length) {
|
|
229
|
-
/**
|
|
230
|
-
* Make sure that this model can be safely converted to a GraphQL SDL
|
|
231
|
-
*/
|
|
232
|
-
const schema = createManageSDL({
|
|
233
|
-
models,
|
|
234
|
-
model,
|
|
235
|
-
fieldRegistry,
|
|
236
|
-
sorters
|
|
110
|
+
const extractErrorObject = (error)=>[
|
|
111
|
+
"message",
|
|
112
|
+
"code",
|
|
113
|
+
"data",
|
|
114
|
+
"stack"
|
|
115
|
+
].reduce((output, key)=>{
|
|
116
|
+
if (!error[key]) return output;
|
|
117
|
+
output[key] = error[key];
|
|
118
|
+
return output;
|
|
119
|
+
}, {});
|
|
120
|
+
const validateModelFields = async (params)=>{
|
|
121
|
+
const { models, model, original, context } = params;
|
|
122
|
+
const { titleFieldId, descriptionFieldId, imageFieldId } = model;
|
|
123
|
+
const { fields = [] } = model;
|
|
124
|
+
const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
125
|
+
const sorters = context.container.resolveAll(CmsGraphQLSchemaSorter);
|
|
126
|
+
validateFields({
|
|
127
|
+
fields,
|
|
128
|
+
originalFields: original?.fields || [],
|
|
129
|
+
registry: fieldRegistry
|
|
237
130
|
});
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
131
|
+
if (fields.length) {
|
|
132
|
+
const schema = createManageSDL({
|
|
133
|
+
models,
|
|
134
|
+
model,
|
|
135
|
+
fieldRegistry,
|
|
136
|
+
sorters
|
|
137
|
+
});
|
|
138
|
+
try {
|
|
139
|
+
graphql_tag(schema);
|
|
140
|
+
} catch (err) {
|
|
141
|
+
throw new _webiny_error(extractInvalidField(model, err));
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
await createGraphQLSchema({
|
|
145
|
+
context,
|
|
146
|
+
model
|
|
147
|
+
});
|
|
148
|
+
} catch (err) {
|
|
149
|
+
throw new _webiny_error({
|
|
150
|
+
message: "Cannot generate GraphQL schema when testing with the given model. Please check the response for more details.",
|
|
151
|
+
code: "GRAPHQL_SCHEMA_ERROR",
|
|
152
|
+
data: {
|
|
153
|
+
modelId: model.modelId,
|
|
154
|
+
error: extractErrorObject(err)
|
|
155
|
+
}
|
|
156
|
+
});
|
|
258
157
|
}
|
|
259
|
-
});
|
|
260
158
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
model.imageFieldId = getContentModelImageFieldId(fields, imageFieldId);
|
|
159
|
+
model.titleFieldId = getContentModelTitleFieldId(fields, titleFieldId);
|
|
160
|
+
model.descriptionFieldId = getContentModelDescriptionFieldId(fields, descriptionFieldId);
|
|
161
|
+
model.imageFieldId = getContentModelImageFieldId(fields, imageFieldId);
|
|
265
162
|
};
|
|
163
|
+
export { validateModelFields };
|
|
266
164
|
|
|
267
165
|
//# sourceMappingURL=modelFields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["gql","generateAlphaNumericId","WebinyError","createManageSDL","createFieldStorageId","getBaseFieldType","getContentModelTitleFieldId","getContentModelDescriptionFieldId","getContentModelImageFieldId","CmsGraphQLSchemaPlugin","buildSchemaPlugins","createExecutableSchema","CmsGraphQLSchemaSorter","CmsModelFieldToGraphQLRegistry","extractInvalidField","model","err","sdl","source","body","line","lineNumber","locations","sdlLines","split","sdlLine","gqlType","i","includes","match","invalidField","undefined","Array","isArray","fieldRegex","RegExp","matched","message","data","modelId","code","join","createValidateChildFields","registry","fields","originalFields","length","validateFields","params","idList","fieldIdList","storageIdList","field","baseType","fieldImpl","get","Error","id","storageId","fieldId","push","originalField","find","f","label","validateChildFields","validate","createGraphQLSchema","context","models","security","withoutAuthorization","cms","listModels","filter","isPrivate","modelPlugins","m","concat","plugins","byType","type","plugin","isApplicable","reduce","collection","name","Object","values","extractErrorObject","error","output","key","validateModelFields","original","titleFieldId","descriptionFieldId","imageFieldId","fieldRegistry","container","resolve","sorters","resolveAll","schema"],"sources":["modelFields.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { generateAlphaNumericId } from \"@webiny/utils\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsContext, CmsModel, CmsModelField } from \"~/types/index.js\";\nimport type { ValidateChildFieldsValidate } from \"~/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js\";\nimport { createManageSDL } from \"~/graphql/schema/createManageSDL.js\";\nimport { createFieldStorageId } from \"../createFieldStorageId.js\";\nimport type { GraphQLError } from \"graphql\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { getContentModelTitleFieldId } from \"./fields/titleField.js\";\nimport { getContentModelDescriptionFieldId } from \"./fields/descriptionField.js\";\nimport { getContentModelImageFieldId } from \"./fields/imageField.js\";\nimport type { ICmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport { buildSchemaPlugins } from \"~/graphql/buildSchemaPlugins.js\";\nimport { createExecutableSchema } from \"~/graphql/createExecutableSchema.js\";\nimport {\n CmsGraphQLSchemaSorter,\n CmsModelFieldToGraphQLRegistry\n} from \"~/features/graphql/index.js\";\n\nconst extractInvalidField = (model: CmsModel, err: GraphQLError) => {\n const sdl = err.source?.body || \"\";\n\n /**\n * Find the invalid type\n */\n const { line: lineNumber } = err.locations\n ? err.locations[0]\n : {\n line: 0\n };\n const sdlLines = sdl.split(\"\\n\");\n let sdlLine;\n let gqlType;\n for (let i = lineNumber; i > 0; i--) {\n if (sdlLine && sdlLine.includes(\"type \")) {\n gqlType = sdlLine.match(/type\\s+(.*?)\\s+{/);\n break;\n }\n\n sdlLine = sdlLines[i];\n }\n\n let invalidField: string | undefined = undefined;\n if (Array.isArray(gqlType)) {\n const fieldRegex = new RegExp(`([^\\\\s+].*?):\\\\s+\\\\[?${gqlType[1]}!?\\\\]?`);\n\n const matched = sdl.match(fieldRegex);\n if (matched) {\n invalidField = matched[1];\n }\n }\n\n let message = `See more details in the browser console.`;\n if (invalidField) {\n message = `Please review the definition of \"${invalidField}\" field.`;\n }\n\n return {\n data: {\n modelId: model.modelId,\n sdl,\n invalidField\n },\n code: \"INVALID_MODEL_DEFINITION\",\n message: [`Model \"${model.modelId}\" was not saved!`, message].join(\"\\n\")\n };\n};\n\nconst createValidateChildFields = (\n registry: CmsModelFieldToGraphQLRegistry.Interface\n): ValidateChildFieldsValidate => {\n return ({ fields, originalFields }) => {\n if (fields.length === 0 && originalFields.length === 0) {\n return;\n }\n validateFields({\n fields,\n originalFields,\n registry\n });\n };\n};\n\ninterface ValidateFieldsParams {\n registry: CmsModelFieldToGraphQLRegistry.Interface;\n fields: CmsModelField[];\n originalFields: CmsModelField[];\n}\n\nconst validateFields = (params: ValidateFieldsParams) => {\n const { registry, fields, originalFields } = params;\n\n const idList: string[] = [];\n const fieldIdList: string[] = [];\n const storageIdList: string[] = [];\n\n for (const field of fields) {\n const baseType = getBaseFieldType(field);\n const fieldImpl = registry.get(baseType);\n\n if (!fieldImpl) {\n throw new Error(\n `Cannot update content model because of the unknown \"${baseType}\" field.`\n );\n }\n /**\n * Check the field's id against existing ones.\n * There cannot be two fields with the same id.\n */\n if (idList.includes(field.id)) {\n throw new WebinyError(\n `Cannot update content model because field \"${\n field.storageId || field.fieldId\n }\" has id \"${field.id}\", which is already used.`\n );\n }\n idList.push(field.id);\n\n const originalField = originalFields.find(f => f.id === field.id);\n /**\n * Field MUST have an fieldId defined.\n */\n if (!field.fieldId) {\n throw new WebinyError(`Field does not have an \"fieldId\" defined.`, \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * If storageId does not match a certain pattern, add that pattern, but only if field is not locked (used) already.\n * This is to avoid errors in the already installed systems.\n *\n * Why are we using the @?\n *\n * It is not part of special characters for the query syntax in the Lucene.\n *\n * Relevant links:\n * https://lucene.apache.org/core/3_4_0/queryparsersyntax.html\n * https://discuss.elastic.co/t/special-characters-in-field-names/10658/3\n * https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2\n */\n if (!field.storageId) {\n /**\n * When having an original field, set the storageId to value from the originalField\n */\n if (originalField) {\n field.storageId = originalField.storageId;\n } else {\n field.storageId = createFieldStorageId(field);\n }\n }\n /**\n * Check the field's fieldId against existing ones.\n * There cannot be two fields with the same fieldId - outside world identifier.\n */\n if (fieldIdList.includes(field.fieldId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.storageId}\" has fieldId \"${field.fieldId}\", which is already used.`\n );\n }\n fieldIdList.push(field.fieldId);\n /**\n * Check the field's storageId against the existing ones.\n * There cannot be two fields with the same storageId.\n */\n if (storageIdList.includes(field.storageId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.label}\" has storageId \"${field.storageId}\", which is already used.`\n );\n }\n storageIdList.push(field.storageId);\n /**\n * There might be some plugins which allow child fields.\n * We use this method to validate them as well.\n */\n if (!fieldImpl.validateChildFields) {\n continue;\n }\n const validateChildFields = createValidateChildFields(registry);\n fieldImpl.validateChildFields({\n field,\n originalField,\n validate: validateChildFields\n });\n }\n};\n\ninterface CreateGraphQLSchemaParams {\n context: CmsContext;\n model: CmsModel;\n}\n\nconst createGraphQLSchema = async (params: CreateGraphQLSchemaParams): Promise<any> => {\n const { context, model } = params;\n\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter((model): model is CmsModel => {\n return model.isPrivate !== true;\n });\n });\n\n const modelPlugins = await buildSchemaPlugins({\n context,\n /**\n * Must remove the current model from the list, as we are possibly updating it - there would be two if we didn't.\n */\n models: models.filter(m => m.modelId !== model.modelId).concat([model])\n });\n\n const plugins = context.plugins\n .byType<ICmsGraphQLSchemaPlugin>(CmsGraphQLSchemaPlugin.type)\n .filter(plugin => plugin.isApplicable(context))\n .reduce<Record<string, ICmsGraphQLSchemaPlugin>>((collection, plugin) => {\n const name =\n plugin.name || `${CmsGraphQLSchemaPlugin.type}-${generateAlphaNumericId(16)}`;\n collection[name] = plugin;\n return collection;\n }, {});\n for (const plugin of modelPlugins) {\n const name = plugin.name || `${plugin.type}-${generateAlphaNumericId(16)}`;\n plugins[name] = plugin;\n }\n\n return createExecutableSchema({\n plugins: Object.values(plugins)\n });\n};\n\nconst extractErrorObject = (error: any) => {\n return [\"message\", \"code\", \"data\", \"stack\"].reduce<Record<string, any>>((output, key) => {\n if (!error[key]) {\n return output;\n }\n output[key] = error[key];\n return output;\n }, {});\n};\n\ninterface ValidateModelFieldsParams {\n models: CmsModel[];\n model: CmsModel;\n original?: CmsModel;\n context: CmsContext;\n}\n\nexport const validateModelFields = async (params: ValidateModelFieldsParams): Promise<void> => {\n const { models, model, original, context } = params;\n const { titleFieldId, descriptionFieldId, imageFieldId } = model;\n\n /**\n * There should be fields/locked fields in either model or data to be updated.\n */\n const { fields = [] } = model;\n\n /**\n * Let's inspect the fields of the received content model. We prevent saving of a content model if it\n * contains a field for which a \"cms-model-field-to-graphql\" plugin does not exist on the backend.\n */\n const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);\n const sorters = context.container.resolveAll(CmsGraphQLSchemaSorter);\n\n validateFields({\n fields,\n originalFields: original?.fields || [],\n registry: fieldRegistry\n });\n\n if (fields.length) {\n /**\n * Make sure that this model can be safely converted to a GraphQL SDL\n */\n const schema = createManageSDL({\n models,\n model,\n fieldRegistry,\n sorters\n });\n\n try {\n gql(schema);\n } catch (err) {\n throw new WebinyError(extractInvalidField(model, err));\n }\n /**\n *\n */\n try {\n await createGraphQLSchema({\n context,\n model\n });\n } catch (err) {\n throw new WebinyError({\n message:\n \"Cannot generate GraphQL schema when testing with the given model. Please check the response for more details.\",\n code: \"GRAPHQL_SCHEMA_ERROR\",\n data: {\n modelId: model.modelId,\n error: extractErrorObject(err)\n }\n });\n }\n }\n\n model.titleFieldId = getContentModelTitleFieldId(fields, titleFieldId);\n model.descriptionFieldId = getContentModelDescriptionFieldId(fields, descriptionFieldId);\n model.imageFieldId = getContentModelImageFieldId(fields, imageFieldId);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"domain/contentModel/validation/modelFields.js","sources":["../../../../src/domain/contentModel/validation/modelFields.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { generateAlphaNumericId } from \"@webiny/utils\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsContext, CmsModel, CmsModelField } from \"~/types/index.js\";\nimport type { ValidateChildFieldsValidate } from \"~/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js\";\nimport { createManageSDL } from \"~/graphql/schema/createManageSDL.js\";\nimport { createFieldStorageId } from \"../createFieldStorageId.js\";\nimport type { GraphQLError } from \"graphql\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { getContentModelTitleFieldId } from \"./fields/titleField.js\";\nimport { getContentModelDescriptionFieldId } from \"./fields/descriptionField.js\";\nimport { getContentModelImageFieldId } from \"./fields/imageField.js\";\nimport type { ICmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport { buildSchemaPlugins } from \"~/graphql/buildSchemaPlugins.js\";\nimport { createExecutableSchema } from \"~/graphql/createExecutableSchema.js\";\nimport {\n CmsGraphQLSchemaSorter,\n CmsModelFieldToGraphQLRegistry\n} from \"~/features/graphql/index.js\";\n\nconst extractInvalidField = (model: CmsModel, err: GraphQLError) => {\n const sdl = err.source?.body || \"\";\n\n /**\n * Find the invalid type\n */\n const { line: lineNumber } = err.locations\n ? err.locations[0]\n : {\n line: 0\n };\n const sdlLines = sdl.split(\"\\n\");\n let sdlLine;\n let gqlType;\n for (let i = lineNumber; i > 0; i--) {\n if (sdlLine && sdlLine.includes(\"type \")) {\n gqlType = sdlLine.match(/type\\s+(.*?)\\s+{/);\n break;\n }\n\n sdlLine = sdlLines[i];\n }\n\n let invalidField: string | undefined = undefined;\n if (Array.isArray(gqlType)) {\n const fieldRegex = new RegExp(`([^\\\\s+].*?):\\\\s+\\\\[?${gqlType[1]}!?\\\\]?`);\n\n const matched = sdl.match(fieldRegex);\n if (matched) {\n invalidField = matched[1];\n }\n }\n\n let message = `See more details in the browser console.`;\n if (invalidField) {\n message = `Please review the definition of \"${invalidField}\" field.`;\n }\n\n return {\n data: {\n modelId: model.modelId,\n sdl,\n invalidField\n },\n code: \"INVALID_MODEL_DEFINITION\",\n message: [`Model \"${model.modelId}\" was not saved!`, message].join(\"\\n\")\n };\n};\n\nconst createValidateChildFields = (\n registry: CmsModelFieldToGraphQLRegistry.Interface\n): ValidateChildFieldsValidate => {\n return ({ fields, originalFields }) => {\n if (fields.length === 0 && originalFields.length === 0) {\n return;\n }\n validateFields({\n fields,\n originalFields,\n registry\n });\n };\n};\n\ninterface ValidateFieldsParams {\n registry: CmsModelFieldToGraphQLRegistry.Interface;\n fields: CmsModelField[];\n originalFields: CmsModelField[];\n}\n\nconst validateFields = (params: ValidateFieldsParams) => {\n const { registry, fields, originalFields } = params;\n\n const idList: string[] = [];\n const fieldIdList: string[] = [];\n const storageIdList: string[] = [];\n\n for (const field of fields) {\n const baseType = getBaseFieldType(field);\n const fieldImpl = registry.get(baseType);\n\n if (!fieldImpl) {\n throw new Error(\n `Cannot update content model because of the unknown \"${baseType}\" field.`\n );\n }\n /**\n * Check the field's id against existing ones.\n * There cannot be two fields with the same id.\n */\n if (idList.includes(field.id)) {\n throw new WebinyError(\n `Cannot update content model because field \"${\n field.storageId || field.fieldId\n }\" has id \"${field.id}\", which is already used.`\n );\n }\n idList.push(field.id);\n\n const originalField = originalFields.find(f => f.id === field.id);\n /**\n * Field MUST have an fieldId defined.\n */\n if (!field.fieldId) {\n throw new WebinyError(`Field does not have an \"fieldId\" defined.`, \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * If storageId does not match a certain pattern, add that pattern, but only if field is not locked (used) already.\n * This is to avoid errors in the already installed systems.\n *\n * Why are we using the @?\n *\n * It is not part of special characters for the query syntax in the Lucene.\n *\n * Relevant links:\n * https://lucene.apache.org/core/3_4_0/queryparsersyntax.html\n * https://discuss.elastic.co/t/special-characters-in-field-names/10658/3\n * https://discuss.elastic.co/t/illegal-characters-in-elasticsearch-field-names/17196/2\n */\n if (!field.storageId) {\n /**\n * When having an original field, set the storageId to value from the originalField\n */\n if (originalField) {\n field.storageId = originalField.storageId;\n } else {\n field.storageId = createFieldStorageId(field);\n }\n }\n /**\n * Check the field's fieldId against existing ones.\n * There cannot be two fields with the same fieldId - outside world identifier.\n */\n if (fieldIdList.includes(field.fieldId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.storageId}\" has fieldId \"${field.fieldId}\", which is already used.`\n );\n }\n fieldIdList.push(field.fieldId);\n /**\n * Check the field's storageId against the existing ones.\n * There cannot be two fields with the same storageId.\n */\n if (storageIdList.includes(field.storageId)) {\n throw new WebinyError(\n `Cannot update content model because field \"${field.label}\" has storageId \"${field.storageId}\", which is already used.`\n );\n }\n storageIdList.push(field.storageId);\n /**\n * There might be some plugins which allow child fields.\n * We use this method to validate them as well.\n */\n if (!fieldImpl.validateChildFields) {\n continue;\n }\n const validateChildFields = createValidateChildFields(registry);\n fieldImpl.validateChildFields({\n field,\n originalField,\n validate: validateChildFields\n });\n }\n};\n\ninterface CreateGraphQLSchemaParams {\n context: CmsContext;\n model: CmsModel;\n}\n\nconst createGraphQLSchema = async (params: CreateGraphQLSchemaParams): Promise<any> => {\n const { context, model } = params;\n\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter((model): model is CmsModel => {\n return model.isPrivate !== true;\n });\n });\n\n const modelPlugins = await buildSchemaPlugins({\n context,\n /**\n * Must remove the current model from the list, as we are possibly updating it - there would be two if we didn't.\n */\n models: models.filter(m => m.modelId !== model.modelId).concat([model])\n });\n\n const plugins = context.plugins\n .byType<ICmsGraphQLSchemaPlugin>(CmsGraphQLSchemaPlugin.type)\n .filter(plugin => plugin.isApplicable(context))\n .reduce<Record<string, ICmsGraphQLSchemaPlugin>>((collection, plugin) => {\n const name =\n plugin.name || `${CmsGraphQLSchemaPlugin.type}-${generateAlphaNumericId(16)}`;\n collection[name] = plugin;\n return collection;\n }, {});\n for (const plugin of modelPlugins) {\n const name = plugin.name || `${plugin.type}-${generateAlphaNumericId(16)}`;\n plugins[name] = plugin;\n }\n\n return createExecutableSchema({\n plugins: Object.values(plugins)\n });\n};\n\nconst extractErrorObject = (error: any) => {\n return [\"message\", \"code\", \"data\", \"stack\"].reduce<Record<string, any>>((output, key) => {\n if (!error[key]) {\n return output;\n }\n output[key] = error[key];\n return output;\n }, {});\n};\n\ninterface ValidateModelFieldsParams {\n models: CmsModel[];\n model: CmsModel;\n original?: CmsModel;\n context: CmsContext;\n}\n\nexport const validateModelFields = async (params: ValidateModelFieldsParams): Promise<void> => {\n const { models, model, original, context } = params;\n const { titleFieldId, descriptionFieldId, imageFieldId } = model;\n\n /**\n * There should be fields/locked fields in either model or data to be updated.\n */\n const { fields = [] } = model;\n\n /**\n * Let's inspect the fields of the received content model. We prevent saving of a content model if it\n * contains a field for which a \"cms-model-field-to-graphql\" plugin does not exist on the backend.\n */\n const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);\n const sorters = context.container.resolveAll(CmsGraphQLSchemaSorter);\n\n validateFields({\n fields,\n originalFields: original?.fields || [],\n registry: fieldRegistry\n });\n\n if (fields.length) {\n /**\n * Make sure that this model can be safely converted to a GraphQL SDL\n */\n const schema = createManageSDL({\n models,\n model,\n fieldRegistry,\n sorters\n });\n\n try {\n gql(schema);\n } catch (err) {\n throw new WebinyError(extractInvalidField(model, err));\n }\n /**\n *\n */\n try {\n await createGraphQLSchema({\n context,\n model\n });\n } catch (err) {\n throw new WebinyError({\n message:\n \"Cannot generate GraphQL schema when testing with the given model. Please check the response for more details.\",\n code: \"GRAPHQL_SCHEMA_ERROR\",\n data: {\n modelId: model.modelId,\n error: extractErrorObject(err)\n }\n });\n }\n }\n\n model.titleFieldId = getContentModelTitleFieldId(fields, titleFieldId);\n model.descriptionFieldId = getContentModelDescriptionFieldId(fields, descriptionFieldId);\n model.imageFieldId = getContentModelImageFieldId(fields, imageFieldId);\n};\n"],"names":["extractInvalidField","model","err","sdl","lineNumber","sdlLines","sdlLine","gqlType","i","invalidField","Array","fieldRegex","RegExp","matched","message","createValidateChildFields","registry","fields","originalFields","validateFields","params","idList","fieldIdList","storageIdList","field","baseType","getBaseFieldType","fieldImpl","Error","WebinyError","originalField","f","createFieldStorageId","validateChildFields","createGraphQLSchema","context","models","modelPlugins","buildSchemaPlugins","m","plugins","CmsGraphQLSchemaPlugin","plugin","collection","name","generateAlphaNumericId","createExecutableSchema","Object","extractErrorObject","error","output","key","validateModelFields","original","titleFieldId","descriptionFieldId","imageFieldId","fieldRegistry","CmsModelFieldToGraphQLRegistry","sorters","CmsGraphQLSchemaSorter","schema","createManageSDL","gql","getContentModelTitleFieldId","getContentModelDescriptionFieldId","getContentModelImageFieldId"],"mappings":"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"}
|
|
@@ -1,29 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
const disallowedModelIdList = [
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
1
|
+
import error from "@webiny/error";
|
|
2
|
+
const disallowedModelIdList = [
|
|
3
|
+
"contentModel",
|
|
4
|
+
"contentModels",
|
|
5
|
+
"contentModelGroup",
|
|
6
|
+
"contentModelGroups"
|
|
7
|
+
];
|
|
8
|
+
const isModelIdAllowed = (modelId)=>false === disallowedModelIdList.includes(modelId);
|
|
9
|
+
const validateModelIdAllowed = (params)=>{
|
|
10
|
+
const { model } = params;
|
|
11
|
+
if (isModelIdAllowed(model.modelId)) return;
|
|
12
|
+
throw new error(`Provided model ID "${model.modelId}" is not allowed.`, "MODEL_ID_NOT_ALLOWED", {
|
|
13
|
+
input: model.modelId
|
|
14
|
+
});
|
|
16
15
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
existingModel,
|
|
20
|
-
|
|
21
|
-
} = params;
|
|
22
|
-
if (existingModel.modelId === model.modelId) {
|
|
23
|
-
throw new WebinyError(`Content model with modelId "${model.modelId}" already exists.`, "MODEL_ID_EXISTS", {
|
|
24
|
-
input: existingModel.modelId
|
|
16
|
+
const validateExistingModelId = (params)=>{
|
|
17
|
+
const { existingModel, model } = params;
|
|
18
|
+
if (existingModel.modelId === model.modelId) throw new error(`Content model with modelId "${model.modelId}" already exists.`, "MODEL_ID_EXISTS", {
|
|
19
|
+
input: existingModel.modelId
|
|
25
20
|
});
|
|
26
|
-
}
|
|
27
21
|
};
|
|
22
|
+
export { validateExistingModelId, validateModelIdAllowed };
|
|
28
23
|
|
|
29
24
|
//# sourceMappingURL=modelId.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/contentModel/validation/modelId.js","sources":["../../../../src/domain/contentModel/validation/modelId.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsModel } from \"~/types/index.js\";\n\nconst disallowedModelIdList: string[] = [\n \"contentModel\",\n \"contentModels\",\n \"contentModelGroup\",\n \"contentModelGroups\"\n];\nconst isModelIdAllowed = (modelId: string): boolean => {\n return disallowedModelIdList.includes(modelId) === false;\n};\n\ninterface ModelIdAllowedParams {\n model: Pick<CmsModel, \"modelId\">;\n}\n\nexport const validateModelIdAllowed = (params: ModelIdAllowedParams) => {\n const { model } = params;\n if (isModelIdAllowed(model.modelId)) {\n return;\n }\n throw new WebinyError(\n `Provided model ID \"${model.modelId}\" is not allowed.`,\n \"MODEL_ID_NOT_ALLOWED\",\n {\n input: model.modelId\n }\n );\n};\n\ninterface Params {\n existingModel: Pick<CmsModel, \"modelId\">;\n model: Pick<CmsModel, \"modelId\">;\n}\n\nexport const validateExistingModelId = (params: Params): void => {\n const { existingModel, model } = params;\n\n if (existingModel.modelId === model.modelId) {\n throw new WebinyError(\n `Content model with modelId \"${model.modelId}\" already exists.`,\n \"MODEL_ID_EXISTS\",\n {\n input: existingModel.modelId\n }\n );\n }\n};\n"],"names":["disallowedModelIdList","isModelIdAllowed","modelId","validateModelIdAllowed","params","model","WebinyError","validateExistingModelId","existingModel"],"mappings":";AAGA,MAAMA,wBAAkC;IACpC;IACA;IACA;IACA;CACH;AACD,MAAMC,mBAAmB,CAACC,UACfF,AAA4C,UAA5CA,sBAAsB,QAAQ,CAACE;AAOnC,MAAMC,yBAAyB,CAACC;IACnC,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,IAAIH,iBAAiBI,MAAM,OAAO,GAC9B;IAEJ,MAAM,IAAIC,MACN,CAAC,mBAAmB,EAAED,MAAM,OAAO,CAAC,iBAAiB,CAAC,EACtD,wBACA;QACI,OAAOA,MAAM,OAAO;IACxB;AAER;AAOO,MAAME,0BAA0B,CAACH;IACpC,MAAM,EAAEI,aAAa,EAAEH,KAAK,EAAE,GAAGD;IAEjC,IAAII,cAAc,OAAO,KAAKH,MAAM,OAAO,EACvC,MAAM,IAAIC,MACN,CAAC,4BAA4B,EAAED,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAC/D,mBACA;QACI,OAAOG,cAAc,OAAO;IAChC;AAGZ"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
existingModel,
|
|
5
|
-
|
|
6
|
-
} = params;
|
|
7
|
-
if (existingModel.singularApiName === model.pluralApiName) {
|
|
8
|
-
throw new WebinyError(`Content model with singularApiName "${model.pluralApiName}" already exists.`, "MODEL_SINGULAR_API_NAME_EXISTS", {
|
|
9
|
-
input: model.pluralApiName
|
|
1
|
+
import error from "@webiny/error";
|
|
2
|
+
const validatePluralApiName = (params)=>{
|
|
3
|
+
const { existingModel, model } = params;
|
|
4
|
+
if (existingModel.singularApiName === model.pluralApiName) throw new error(`Content model with singularApiName "${model.pluralApiName}" already exists.`, "MODEL_SINGULAR_API_NAME_EXISTS", {
|
|
5
|
+
input: model.pluralApiName
|
|
10
6
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
input: model.pluralApiName
|
|
7
|
+
if (existingModel.pluralApiName === model.pluralApiName) throw new error(`Content model with pluralApiName "${model.pluralApiName}" already exists.`, "MODEL_PLURAL_API_NAME_EXISTS", {
|
|
8
|
+
input: model.pluralApiName
|
|
14
9
|
});
|
|
15
|
-
}
|
|
16
10
|
};
|
|
11
|
+
export { validatePluralApiName };
|
|
17
12
|
|
|
18
13
|
//# sourceMappingURL=pluralApiName.js.map
|