@webiny/api-headless-cms 6.3.0-beta.4 → 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,133 +1,90 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { UpdateModelUseCase
|
|
3
|
-
import { UpdateModelRepository } from "./abstractions.js";
|
|
2
|
+
import { UpdateModelRepository, UpdateModelUseCase } from "./abstractions.js";
|
|
4
3
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
5
|
-
import { ModelBeforeUpdateEvent } from "./events.js";
|
|
6
|
-
import { ModelAfterUpdateEvent } from "./events.js";
|
|
7
|
-
import { ModelUpdateErrorEvent } from "./events.js";
|
|
4
|
+
import { ModelAfterUpdateEvent, ModelBeforeUpdateEvent, ModelUpdateErrorEvent } from "./events.js";
|
|
8
5
|
import { AccessControl } from "../../shared/abstractions.js";
|
|
9
6
|
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
10
7
|
import { ModelNotAuthorizedError, ModelValidationError } from "../../../domain/contentModel/errors.js";
|
|
11
|
-
import { createZodError } from "@webiny/utils";
|
|
12
|
-
import { removeUndefinedValues } from "@webiny/utils";
|
|
8
|
+
import { createZodError, removeUndefinedValues } from "@webiny/utils";
|
|
13
9
|
import { createModelUpdateValidation } from "../../../domain/contentModel/schemas.js";
|
|
14
10
|
import { ensureTypeTag } from "../../../domain/contentModel/ensureTypeTag.js";
|
|
15
11
|
import { GetModelUseCase } from "../GetModel/index.js";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* UpdateModelUseCase - Core model update orchestration.
|
|
19
|
-
*
|
|
20
|
-
* Responsibilities:
|
|
21
|
-
* - Validate input (Zod)
|
|
22
|
-
* - Fetch original model
|
|
23
|
-
* - Create updated domain model object
|
|
24
|
-
* - Handle group changes
|
|
25
|
-
* - Handle field ID changes (title, description, image)
|
|
26
|
-
* - Access control checks
|
|
27
|
-
* - Publish before event
|
|
28
|
-
* - Delegate to repository for validation and persistence
|
|
29
|
-
* - Publish after event or error event
|
|
30
|
-
*
|
|
31
|
-
* Note: Repository handles domain validations (API name uniqueness, field validation, etc.)
|
|
32
|
-
*/
|
|
33
12
|
class UpdateModelUseCaseImpl {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
async execute(modelId, input) {
|
|
42
|
-
// Initial access control check
|
|
43
|
-
const canAccess = await this.accessControl.canAccessModel({
|
|
44
|
-
rwd: "w"
|
|
45
|
-
});
|
|
46
|
-
if (!canAccess) {
|
|
47
|
-
return Result.fail(new ModelNotAuthorizedError());
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Get the original model (with access control check)
|
|
51
|
-
const getResult = await this.getModelUseCase.execute(modelId);
|
|
52
|
-
if (getResult.isFail()) {
|
|
53
|
-
return getResult;
|
|
54
|
-
}
|
|
55
|
-
const original = structuredClone(getResult.value);
|
|
56
|
-
|
|
57
|
-
// Validate input
|
|
58
|
-
const validationResult = await createModelUpdateValidation().safeParseAsync(input);
|
|
59
|
-
if (!validationResult.success) {
|
|
60
|
-
const zodError = createZodError(validationResult.error);
|
|
61
|
-
return Result.fail(new ModelValidationError({
|
|
62
|
-
message: zodError.message,
|
|
63
|
-
data: zodError.data
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
const data = removeUndefinedValues(validationResult.data);
|
|
67
|
-
|
|
68
|
-
// If no changes, return original
|
|
69
|
-
if (Object.keys(data).length === 0) {
|
|
70
|
-
return Result.ok(original);
|
|
13
|
+
constructor(getModelUseCase, eventPublisher, repository, accessControl, tenantContext){
|
|
14
|
+
this.getModelUseCase = getModelUseCase;
|
|
15
|
+
this.eventPublisher = eventPublisher;
|
|
16
|
+
this.repository = repository;
|
|
17
|
+
this.accessControl = accessControl;
|
|
18
|
+
this.tenantContext = tenantContext;
|
|
71
19
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
20
|
+
async execute(modelId, input) {
|
|
21
|
+
const canAccess = await this.accessControl.canAccessModel({
|
|
22
|
+
rwd: "w"
|
|
23
|
+
});
|
|
24
|
+
if (!canAccess) return Result.fail(new ModelNotAuthorizedError());
|
|
25
|
+
const getResult = await this.getModelUseCase.execute(modelId);
|
|
26
|
+
if (getResult.isFail()) return getResult;
|
|
27
|
+
const original = structuredClone(getResult.value);
|
|
28
|
+
const validationResult = await createModelUpdateValidation().safeParseAsync(input);
|
|
29
|
+
if (!validationResult.success) {
|
|
30
|
+
const zodError = createZodError(validationResult.error);
|
|
31
|
+
return Result.fail(new ModelValidationError({
|
|
32
|
+
message: zodError.message,
|
|
33
|
+
data: zodError.data
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
const data = removeUndefinedValues(validationResult.data);
|
|
37
|
+
if (0 === Object.keys(data).length) return Result.ok(original);
|
|
38
|
+
const tenant = this.tenantContext.getTenant();
|
|
39
|
+
const model = {
|
|
40
|
+
...original,
|
|
41
|
+
...data,
|
|
42
|
+
icon: data.icon ?? original.icon,
|
|
43
|
+
titleFieldId: void 0 === data.titleFieldId ? original.titleFieldId : data.titleFieldId,
|
|
44
|
+
descriptionFieldId: void 0 === data.descriptionFieldId ? original.descriptionFieldId : data.descriptionFieldId,
|
|
45
|
+
imageFieldId: void 0 === data.imageFieldId ? original.imageFieldId : data.imageFieldId,
|
|
46
|
+
description: data.description || original.description,
|
|
47
|
+
tenant: original.tenant || tenant.id,
|
|
48
|
+
savedOn: new Date().toISOString()
|
|
49
|
+
};
|
|
50
|
+
const canAccessModel = await this.accessControl.canAccessModel({
|
|
51
|
+
model,
|
|
52
|
+
rwd: "w"
|
|
53
|
+
});
|
|
54
|
+
if (!canAccessModel) return Result.fail(ModelNotAuthorizedError.fromModel(model));
|
|
55
|
+
model.tags = ensureTypeTag(model);
|
|
56
|
+
await this.eventPublisher.publish(new ModelBeforeUpdateEvent({
|
|
57
|
+
model,
|
|
58
|
+
original,
|
|
59
|
+
input: data
|
|
60
|
+
}));
|
|
61
|
+
const result = await this.repository.execute(model, original);
|
|
62
|
+
if (result.isFail()) {
|
|
63
|
+
await this.eventPublisher.publish(new ModelUpdateErrorEvent({
|
|
64
|
+
input: data,
|
|
65
|
+
model,
|
|
66
|
+
original,
|
|
67
|
+
error: result.error
|
|
68
|
+
}));
|
|
69
|
+
return Result.fail(result.error);
|
|
70
|
+
}
|
|
71
|
+
await this.eventPublisher.publish(new ModelAfterUpdateEvent({
|
|
72
|
+
model,
|
|
73
|
+
original
|
|
74
|
+
}));
|
|
75
|
+
return Result.ok(model);
|
|
95
76
|
}
|
|
96
|
-
|
|
97
|
-
// Ensure type tags
|
|
98
|
-
model.tags = ensureTypeTag(model);
|
|
99
|
-
|
|
100
|
-
// Publish before event
|
|
101
|
-
await this.eventPublisher.publish(new ModelBeforeUpdateEvent({
|
|
102
|
-
model,
|
|
103
|
-
original,
|
|
104
|
-
input: data
|
|
105
|
-
}));
|
|
106
|
-
|
|
107
|
-
// Persist via repository (repository will validate)
|
|
108
|
-
const result = await this.repository.execute(model, original);
|
|
109
|
-
if (result.isFail()) {
|
|
110
|
-
// Publish error event
|
|
111
|
-
await this.eventPublisher.publish(new ModelUpdateErrorEvent({
|
|
112
|
-
input: data,
|
|
113
|
-
model,
|
|
114
|
-
original,
|
|
115
|
-
error: result.error
|
|
116
|
-
}));
|
|
117
|
-
return Result.fail(result.error);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Publish after event
|
|
121
|
-
await this.eventPublisher.publish(new ModelAfterUpdateEvent({
|
|
122
|
-
model,
|
|
123
|
-
original
|
|
124
|
-
}));
|
|
125
|
-
return Result.ok(model);
|
|
126
|
-
}
|
|
127
77
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
78
|
+
const UpdateModelUseCase_UpdateModelUseCase = UpdateModelUseCase.createImplementation({
|
|
79
|
+
implementation: UpdateModelUseCaseImpl,
|
|
80
|
+
dependencies: [
|
|
81
|
+
GetModelUseCase,
|
|
82
|
+
EventPublisher,
|
|
83
|
+
UpdateModelRepository,
|
|
84
|
+
AccessControl,
|
|
85
|
+
TenantContext
|
|
86
|
+
]
|
|
131
87
|
});
|
|
88
|
+
export { UpdateModelUseCase_UpdateModelUseCase as UpdateModelUseCase };
|
|
132
89
|
|
|
133
90
|
//# sourceMappingURL=UpdateModelUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","UpdateModelUseCase","UseCaseAbstraction","UpdateModelRepository","EventPublisher","ModelBeforeUpdateEvent","ModelAfterUpdateEvent","ModelUpdateErrorEvent","AccessControl","TenantContext","ModelNotAuthorizedError","ModelValidationError","createZodError","removeUndefinedValues","createModelUpdateValidation","ensureTypeTag","GetModelUseCase","UpdateModelUseCaseImpl","constructor","getModelUseCase","eventPublisher","repository","accessControl","tenantContext","execute","modelId","input","canAccess","canAccessModel","rwd","fail","getResult","isFail","original","structuredClone","value","validationResult","safeParseAsync","success","zodError","error","message","data","Object","keys","length","ok","tenant","getTenant","model","icon","titleFieldId","undefined","descriptionFieldId","imageFieldId","description","id","savedOn","Date","toISOString","fromModel","tags","publish","result","createImplementation","implementation","dependencies"],"sources":["UpdateModelUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UpdateModelUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { UpdateModelRepository } from \"./abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ModelBeforeUpdateEvent } from \"./events.js\";\nimport { ModelAfterUpdateEvent } from \"./events.js\";\nimport { ModelUpdateErrorEvent } from \"./events.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { ModelNotAuthorizedError, ModelValidationError } from \"~/domain/contentModel/errors.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { removeUndefinedValues } from \"@webiny/utils\";\nimport { createModelUpdateValidation } from \"~/domain/contentModel/schemas.js\";\nimport { ensureTypeTag } from \"~/domain/contentModel/ensureTypeTag.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport type { CmsModelUpdateInput } from \"~/types/index.js\";\nimport { GetModelUseCase } from \"~/features/contentModel/GetModel/index.js\";\n\n/**\n * UpdateModelUseCase - Core model update orchestration.\n *\n * Responsibilities:\n * - Validate input (Zod)\n * - Fetch original model\n * - Create updated domain model object\n * - Handle group changes\n * - Handle field ID changes (title, description, image)\n * - Access control checks\n * - Publish before event\n * - Delegate to repository for validation and persistence\n * - Publish after event or error event\n *\n * Note: Repository handles domain validations (API name uniqueness, field validation, etc.)\n */\nclass UpdateModelUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private getModelUseCase: GetModelUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateModelRepository.Interface,\n private accessControl: AccessControl.Interface,\n private tenantContext: TenantContext.Interface\n ) {}\n\n async execute(\n modelId: string,\n input: CmsModelUpdateInput\n ): Promise<Result<CmsModel, UseCaseAbstraction.Error>> {\n // Initial access control check\n const canAccess = await this.accessControl.canAccessModel({ rwd: \"w\" });\n if (!canAccess) {\n return Result.fail(new ModelNotAuthorizedError());\n }\n\n // Get the original model (with access control check)\n const getResult = await this.getModelUseCase.execute(modelId);\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = structuredClone(getResult.value);\n\n // Validate input\n const validationResult = await createModelUpdateValidation().safeParseAsync(input);\n if (!validationResult.success) {\n const zodError = createZodError(validationResult.error);\n return Result.fail(\n new ModelValidationError({\n message: zodError.message,\n data: zodError.data\n })\n );\n }\n\n const data = removeUndefinedValues(validationResult.data);\n\n // If no changes, return original\n if (Object.keys(data).length === 0) {\n return Result.ok(original);\n }\n\n // Create updated model\n const tenant = this.tenantContext.getTenant();\n\n const model: CmsModel = {\n ...original,\n ...data,\n icon: data.icon ?? original.icon,\n // Handle optional field IDs explicitly\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n description: data.description || original.description,\n tenant: original.tenant || tenant.id,\n savedOn: new Date().toISOString()\n };\n\n // Access control check on the updated model\n const canAccessModel = await this.accessControl.canAccessModel({ model, rwd: \"w\" });\n if (!canAccessModel) {\n return Result.fail(ModelNotAuthorizedError.fromModel(model));\n }\n\n // Ensure type tags\n model.tags = ensureTypeTag(model);\n\n // Publish before event\n await this.eventPublisher.publish(\n new ModelBeforeUpdateEvent({ model, original, input: data })\n );\n\n // Persist via repository (repository will validate)\n const result = await this.repository.execute(model, original);\n if (result.isFail()) {\n // Publish error event\n await this.eventPublisher.publish(\n new ModelUpdateErrorEvent({\n input: data,\n model,\n original,\n error: result.error\n })\n );\n return Result.fail(result.error);\n }\n\n // Publish after event\n await this.eventPublisher.publish(new ModelAfterUpdateEvent({ model, original }));\n\n return Result.ok(model);\n }\n}\n\nexport const UpdateModelUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateModelUseCaseImpl,\n dependencies: [\n GetModelUseCase,\n EventPublisher,\n UpdateModelRepository,\n AccessControl,\n TenantContext\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,IAAIC,kBAAkB;AACjD,SAASC,qBAAqB;AAC9B,SAASC,cAAc,QAAQ,mDAAmD;AAClF,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,aAAa;AACtB,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASC,uBAAuB,EAAEC,oBAAoB;AACtD,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,qBAAqB,QAAQ,eAAe;AACrD,SAASC,2BAA2B;AACpC,SAASC,aAAa;AAGtB,SAASC,eAAe;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,CAAyC;EAC1DC,WAAWA,CACNC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA2C,EAC3CC,aAAsC,EACtCC,aAAsC,EAChD;IAAA,KALUJ,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA2C,GAA3CA,UAA2C;IAAA,KAC3CC,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEH,MAAMC,OAAOA,CACTC,OAAe,EACfC,KAA0B,EACyB;IACnD;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACL,aAAa,CAACM,cAAc,CAAC;MAAEC,GAAG,EAAE;IAAI,CAAC,CAAC;IACvE,IAAI,CAACF,SAAS,EAAE;MACZ,OAAO3B,MAAM,CAAC8B,IAAI,CAAC,IAAIpB,uBAAuB,CAAC,CAAC,CAAC;IACrD;;IAEA;IACA,MAAMqB,SAAS,GAAG,MAAM,IAAI,CAACZ,eAAe,CAACK,OAAO,CAACC,OAAO,CAAC;IAC7D,IAAIM,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGC,eAAe,CAACH,SAAS,CAACI,KAAK,CAAC;;IAEjD;IACA,MAAMC,gBAAgB,GAAG,MAAMtB,2BAA2B,CAAC,CAAC,CAACuB,cAAc,CAACX,KAAK,CAAC;IAClF,IAAI,CAACU,gBAAgB,CAACE,OAAO,EAAE;MAC3B,MAAMC,QAAQ,GAAG3B,cAAc,CAACwB,gBAAgB,CAACI,KAAK,CAAC;MACvD,OAAOxC,MAAM,CAAC8B,IAAI,CACd,IAAInB,oBAAoB,CAAC;QACrB8B,OAAO,EAAEF,QAAQ,CAACE,OAAO;QACzBC,IAAI,EAAEH,QAAQ,CAACG;MACnB,CAAC,CACL,CAAC;IACL;IAEA,MAAMA,IAAI,GAAG7B,qBAAqB,CAACuB,gBAAgB,CAACM,IAAI,CAAC;;IAEzD;IACA,IAAIC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,KAAK,CAAC,EAAE;MAChC,OAAO7C,MAAM,CAAC8C,EAAE,CAACb,QAAQ,CAAC;IAC9B;;IAEA;IACA,MAAMc,MAAM,GAAG,IAAI,CAACxB,aAAa,CAACyB,SAAS,CAAC,CAAC;IAE7C,MAAMC,KAAe,GAAG;MACpB,GAAGhB,QAAQ;MACX,GAAGS,IAAI;MACPQ,IAAI,EAAER,IAAI,CAACQ,IAAI,IAAIjB,QAAQ,CAACiB,IAAI;MAChC;MACAC,YAAY,EACRT,IAAI,CAACS,YAAY,KAAKC,SAAS,GACzBnB,QAAQ,CAACkB,YAAY,GACpBT,IAAI,CAACS,YAAuB;MACvCE,kBAAkB,EACdX,IAAI,CAACW,kBAAkB,KAAKD,SAAS,GAC/BnB,QAAQ,CAACoB,kBAAkB,GAC3BX,IAAI,CAACW,kBAAkB;MACjCC,YAAY,EACRZ,IAAI,CAACY,YAAY,KAAKF,SAAS,GAAGnB,QAAQ,CAACqB,YAAY,GAAGZ,IAAI,CAACY,YAAY;MAC/EC,WAAW,EAAEb,IAAI,CAACa,WAAW,IAAItB,QAAQ,CAACsB,WAAW;MACrDR,MAAM,EAAEd,QAAQ,CAACc,MAAM,IAAIA,MAAM,CAACS,EAAE;MACpCC,OAAO,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;IACpC,CAAC;;IAED;IACA,MAAM/B,cAAc,GAAG,MAAM,IAAI,CAACN,aAAa,CAACM,cAAc,CAAC;MAAEqB,KAAK;MAAEpB,GAAG,EAAE;IAAI,CAAC,CAAC;IACnF,IAAI,CAACD,cAAc,EAAE;MACjB,OAAO5B,MAAM,CAAC8B,IAAI,CAACpB,uBAAuB,CAACkD,SAAS,CAACX,KAAK,CAAC,CAAC;IAChE;;IAEA;IACAA,KAAK,CAACY,IAAI,GAAG9C,aAAa,CAACkC,KAAK,CAAC;;IAEjC;IACA,MAAM,IAAI,CAAC7B,cAAc,CAAC0C,OAAO,CAC7B,IAAIzD,sBAAsB,CAAC;MAAE4C,KAAK;MAAEhB,QAAQ;MAAEP,KAAK,EAAEgB;IAAK,CAAC,CAC/D,CAAC;;IAED;IACA,MAAMqB,MAAM,GAAG,MAAM,IAAI,CAAC1C,UAAU,CAACG,OAAO,CAACyB,KAAK,EAAEhB,QAAQ,CAAC;IAC7D,IAAI8B,MAAM,CAAC/B,MAAM,CAAC,CAAC,EAAE;MACjB;MACA,MAAM,IAAI,CAACZ,cAAc,CAAC0C,OAAO,CAC7B,IAAIvD,qBAAqB,CAAC;QACtBmB,KAAK,EAAEgB,IAAI;QACXO,KAAK;QACLhB,QAAQ;QACRO,KAAK,EAAEuB,MAAM,CAACvB;MAClB,CAAC,CACL,CAAC;MACD,OAAOxC,MAAM,CAAC8B,IAAI,CAACiC,MAAM,CAACvB,KAAK,CAAC;IACpC;;IAEA;IACA,MAAM,IAAI,CAACpB,cAAc,CAAC0C,OAAO,CAAC,IAAIxD,qBAAqB,CAAC;MAAE2C,KAAK;MAAEhB;IAAS,CAAC,CAAC,CAAC;IAEjF,OAAOjC,MAAM,CAAC8C,EAAE,CAACG,KAAK,CAAC;EAC3B;AACJ;AAEA,OAAO,MAAMhD,kBAAkB,GAAGC,kBAAkB,CAAC8D,oBAAoB,CAAC;EACtEC,cAAc,EAAEhD,sBAAsB;EACtCiD,YAAY,EAAE,CACVlD,eAAe,EACfZ,cAAc,EACdD,qBAAqB,EACrBK,aAAa,EACbC,aAAa;AAErB,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"features/contentModel/UpdateModel/UpdateModelUseCase.js","sources":["../../../../src/features/contentModel/UpdateModel/UpdateModelUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UpdateModelUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { UpdateModelRepository } from \"./abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ModelBeforeUpdateEvent } from \"./events.js\";\nimport { ModelAfterUpdateEvent } from \"./events.js\";\nimport { ModelUpdateErrorEvent } from \"./events.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { ModelNotAuthorizedError, ModelValidationError } from \"~/domain/contentModel/errors.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { removeUndefinedValues } from \"@webiny/utils\";\nimport { createModelUpdateValidation } from \"~/domain/contentModel/schemas.js\";\nimport { ensureTypeTag } from \"~/domain/contentModel/ensureTypeTag.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport type { CmsModelUpdateInput } from \"~/types/index.js\";\nimport { GetModelUseCase } from \"~/features/contentModel/GetModel/index.js\";\n\n/**\n * UpdateModelUseCase - Core model update orchestration.\n *\n * Responsibilities:\n * - Validate input (Zod)\n * - Fetch original model\n * - Create updated domain model object\n * - Handle group changes\n * - Handle field ID changes (title, description, image)\n * - Access control checks\n * - Publish before event\n * - Delegate to repository for validation and persistence\n * - Publish after event or error event\n *\n * Note: Repository handles domain validations (API name uniqueness, field validation, etc.)\n */\nclass UpdateModelUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private getModelUseCase: GetModelUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateModelRepository.Interface,\n private accessControl: AccessControl.Interface,\n private tenantContext: TenantContext.Interface\n ) {}\n\n async execute(\n modelId: string,\n input: CmsModelUpdateInput\n ): Promise<Result<CmsModel, UseCaseAbstraction.Error>> {\n // Initial access control check\n const canAccess = await this.accessControl.canAccessModel({ rwd: \"w\" });\n if (!canAccess) {\n return Result.fail(new ModelNotAuthorizedError());\n }\n\n // Get the original model (with access control check)\n const getResult = await this.getModelUseCase.execute(modelId);\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = structuredClone(getResult.value);\n\n // Validate input\n const validationResult = await createModelUpdateValidation().safeParseAsync(input);\n if (!validationResult.success) {\n const zodError = createZodError(validationResult.error);\n return Result.fail(\n new ModelValidationError({\n message: zodError.message,\n data: zodError.data\n })\n );\n }\n\n const data = removeUndefinedValues(validationResult.data);\n\n // If no changes, return original\n if (Object.keys(data).length === 0) {\n return Result.ok(original);\n }\n\n // Create updated model\n const tenant = this.tenantContext.getTenant();\n\n const model: CmsModel = {\n ...original,\n ...data,\n icon: data.icon ?? original.icon,\n // Handle optional field IDs explicitly\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n description: data.description || original.description,\n tenant: original.tenant || tenant.id,\n savedOn: new Date().toISOString()\n };\n\n // Access control check on the updated model\n const canAccessModel = await this.accessControl.canAccessModel({ model, rwd: \"w\" });\n if (!canAccessModel) {\n return Result.fail(ModelNotAuthorizedError.fromModel(model));\n }\n\n // Ensure type tags\n model.tags = ensureTypeTag(model);\n\n // Publish before event\n await this.eventPublisher.publish(\n new ModelBeforeUpdateEvent({ model, original, input: data })\n );\n\n // Persist via repository (repository will validate)\n const result = await this.repository.execute(model, original);\n if (result.isFail()) {\n // Publish error event\n await this.eventPublisher.publish(\n new ModelUpdateErrorEvent({\n input: data,\n model,\n original,\n error: result.error\n })\n );\n return Result.fail(result.error);\n }\n\n // Publish after event\n await this.eventPublisher.publish(new ModelAfterUpdateEvent({ model, original }));\n\n return Result.ok(model);\n }\n}\n\nexport const UpdateModelUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateModelUseCaseImpl,\n dependencies: [\n GetModelUseCase,\n EventPublisher,\n UpdateModelRepository,\n AccessControl,\n TenantContext\n ]\n});\n"],"names":["UpdateModelUseCaseImpl","getModelUseCase","eventPublisher","repository","accessControl","tenantContext","modelId","input","canAccess","Result","ModelNotAuthorizedError","getResult","original","structuredClone","validationResult","createModelUpdateValidation","zodError","createZodError","ModelValidationError","data","removeUndefinedValues","Object","tenant","model","undefined","Date","canAccessModel","ensureTypeTag","ModelBeforeUpdateEvent","result","ModelUpdateErrorEvent","ModelAfterUpdateEvent","UpdateModelUseCase","UseCaseAbstraction","GetModelUseCase","EventPublisher","UpdateModelRepository","AccessControl","TenantContext"],"mappings":";;;;;;;;;;;AAkCA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA2C,EAC3CC,aAAsC,EACtCC,aAAsC,CAChD;aALUJ,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QACFC,OAAe,EACfC,KAA0B,EACyB;QAEnD,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAE,KAAK;QAAI;QACrE,IAAI,CAACA,WACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAACL;QACrD,IAAIK,UAAU,MAAM,IAChB,OAAOA;QAGX,MAAMC,WAAWC,gBAAgBF,UAAU,KAAK;QAGhD,MAAMG,mBAAmB,MAAMC,8BAA8B,cAAc,CAACR;QAC5E,IAAI,CAACO,iBAAiB,OAAO,EAAE;YAC3B,MAAME,WAAWC,eAAeH,iBAAiB,KAAK;YACtD,OAAOL,OAAO,IAAI,CACd,IAAIS,qBAAqB;gBACrB,SAASF,SAAS,OAAO;gBACzB,MAAMA,SAAS,IAAI;YACvB;QAER;QAEA,MAAMG,OAAOC,sBAAsBN,iBAAiB,IAAI;QAGxD,IAAIO,AAA6B,MAA7BA,OAAO,IAAI,CAACF,MAAM,MAAM,EACxB,OAAOV,OAAO,EAAE,CAACG;QAIrB,MAAMU,SAAS,IAAI,CAAC,aAAa,CAAC,SAAS;QAE3C,MAAMC,QAAkB;YACpB,GAAGX,QAAQ;YACX,GAAGO,IAAI;YACP,MAAMA,KAAK,IAAI,IAAIP,SAAS,IAAI;YAEhC,cACIO,AAAsBK,WAAtBL,KAAK,YAAY,GACXP,SAAS,YAAY,GACpBO,KAAK,YAAY;YAC5B,oBACIA,AAA4BK,WAA5BL,KAAK,kBAAkB,GACjBP,SAAS,kBAAkB,GAC3BO,KAAK,kBAAkB;YACjC,cACIA,AAAsBK,WAAtBL,KAAK,YAAY,GAAiBP,SAAS,YAAY,GAAGO,KAAK,YAAY;YAC/E,aAAaA,KAAK,WAAW,IAAIP,SAAS,WAAW;YACrD,QAAQA,SAAS,MAAM,IAAIU,OAAO,EAAE;YACpC,SAAS,IAAIG,OAAO,WAAW;QACnC;QAGA,MAAMC,iBAAiB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEH;YAAO,KAAK;QAAI;QACjF,IAAI,CAACG,gBACD,OAAOjB,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACa;QAIzDA,MAAM,IAAI,GAAGI,cAAcJ;QAG3B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIK,uBAAuB;YAAEL;YAAOX;YAAU,OAAOO;QAAK;QAI9D,MAAMU,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACN,OAAOX;QACpD,IAAIiB,OAAO,MAAM,IAAI;YAEjB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,sBAAsB;gBACtB,OAAOX;gBACPI;gBACAX;gBACA,OAAOiB,OAAO,KAAK;YACvB;YAEJ,OAAOpB,OAAO,IAAI,CAACoB,OAAO,KAAK;QACnC;QAGA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIE,sBAAsB;YAAER;YAAOX;QAAS;QAE9E,OAAOH,OAAO,EAAE,CAACc;IACrB;AACJ;AAEO,MAAMS,wCAAqBC,mBAAAA,oBAAuC,CAAC;IACtE,gBAAgBjC;IAChB,cAAc;QACVkC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/** Update a content model. */
|
|
8
|
-
export const UpdateModelUseCase = createAbstraction("UpdateModelUseCase");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* UpdateModelRepository - Validates domain rules and persists model updates.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
export const UpdateModelRepository = createAbstraction("UpdateModelRepository");
|
|
2
|
+
const UpdateModelUseCase = createAbstraction("UpdateModelUseCase");
|
|
3
|
+
const UpdateModelRepository = createAbstraction("UpdateModelRepository");
|
|
4
|
+
export { UpdateModelRepository, UpdateModelUseCase };
|
|
15
5
|
|
|
16
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/contentModel/UpdateModel/abstractions.js","sources":["../../../../src/features/contentModel/UpdateModel/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport type { CmsModelUpdateInput } from \"~/types/index.js\";\nimport {\n type ModelSlugTakenError,\n ModelNotAuthorizedError,\n type ModelNotFoundError,\n type ModelValidationError,\n type ModelPersistenceError,\n ModelCannotUpdateCodeModelError\n} from \"~/domain/contentModel/errors.js\";\nimport {\n type GroupNotFoundError,\n type GroupNotAuthorizedError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * UpdateModel Use Case\n */\nexport interface IUpdateModelUseCase {\n execute(modelId: string, input: CmsModelUpdateInput): Promise<Result<CmsModel, UseCaseError>>;\n}\n\nexport interface IUpdateModelUseCaseErrors {\n notFound: ModelNotFoundError;\n notAuthorized: ModelNotAuthorizedError;\n validation: ModelValidationError;\n alreadyExists: ModelSlugTakenError;\n persistence: ModelPersistenceError;\n updateCodeModel: ModelCannotUpdateCodeModelError;\n groupNotFound: GroupNotFoundError;\n groupNotAccessible: GroupNotAuthorizedError;\n}\n\ntype UseCaseError = IUpdateModelUseCaseErrors[keyof IUpdateModelUseCaseErrors];\n\n/** Update a content model. */\nexport const UpdateModelUseCase = createAbstraction<IUpdateModelUseCase>(\"UpdateModelUseCase\");\n\nexport namespace UpdateModelUseCase {\n export type Interface = IUpdateModelUseCase;\n export type Input = CmsModelUpdateInput;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsModel, UseCaseError>>;\n}\n\n/**\n * UpdateModelRepository - Validates domain rules and persists model updates.\n */\nexport interface IUpdateModelRepository {\n execute(model: CmsModel, original: CmsModel): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IUpdateModelRepositoryErrors {\n alreadyExists: ModelSlugTakenError;\n validation: ModelValidationError;\n persistence: ModelPersistenceError;\n updateCodeModel: ModelCannotUpdateCodeModelError;\n}\n\ntype RepositoryError = IUpdateModelRepositoryErrors[keyof IUpdateModelRepositoryErrors];\n\nexport const UpdateModelRepository =\n createAbstraction<IUpdateModelRepository>(\"UpdateModelRepository\");\n\nexport namespace UpdateModelRepository {\n export type Interface = IUpdateModelRepository;\n export type Error = RepositoryError;\n}\n"],"names":["UpdateModelUseCase","createAbstraction","UpdateModelRepository"],"mappings":";AAsCO,MAAMA,qBAAqBC,kBAAuC;AA0BlE,MAAMC,wBACTD,kBAA0C"}
|
|
@@ -1,43 +1,32 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
2
|
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
export class ModelBeforeUpdateEvent extends DomainEvent {
|
|
12
|
-
eventType = "Cms/Model/BeforeUpdate";
|
|
13
|
-
getHandlerAbstraction() {
|
|
14
|
-
return ModelBeforeUpdateEventHandler;
|
|
15
|
-
}
|
|
3
|
+
class ModelBeforeUpdateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return ModelBeforeUpdateEventHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "Cms/Model/BeforeUpdate";
|
|
9
|
+
}
|
|
16
10
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
getHandlerAbstraction() {
|
|
26
|
-
return ModelAfterUpdateEventHandler;
|
|
27
|
-
}
|
|
11
|
+
const ModelBeforeUpdateEventHandler = createAbstraction("ModelBeforeUpdateEventHandler");
|
|
12
|
+
class ModelAfterUpdateEvent extends DomainEvent {
|
|
13
|
+
getHandlerAbstraction() {
|
|
14
|
+
return ModelAfterUpdateEventHandler;
|
|
15
|
+
}
|
|
16
|
+
constructor(...args){
|
|
17
|
+
super(...args), this.eventType = "Cms/Model/AfterUpdate";
|
|
18
|
+
}
|
|
28
19
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
getHandlerAbstraction() {
|
|
38
|
-
return ModelUpdateErrorEventHandler;
|
|
39
|
-
}
|
|
20
|
+
const ModelAfterUpdateEventHandler = createAbstraction("ModelAfterUpdateEventHandler");
|
|
21
|
+
class ModelUpdateErrorEvent extends DomainEvent {
|
|
22
|
+
getHandlerAbstraction() {
|
|
23
|
+
return ModelUpdateErrorEventHandler;
|
|
24
|
+
}
|
|
25
|
+
constructor(...args){
|
|
26
|
+
super(...args), this.eventType = "Cms/Model/UpdateError";
|
|
27
|
+
}
|
|
40
28
|
}
|
|
41
|
-
|
|
29
|
+
const ModelUpdateErrorEventHandler = createAbstraction("ModelUpdateErrorEventHandler");
|
|
30
|
+
export { ModelAfterUpdateEvent, ModelAfterUpdateEventHandler, ModelBeforeUpdateEvent, ModelBeforeUpdateEventHandler, ModelUpdateErrorEvent, ModelUpdateErrorEventHandler };
|
|
42
31
|
|
|
43
32
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/contentModel/UpdateModel/events.js","sources":["../../../../src/features/contentModel/UpdateModel/events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { CmsModel, CmsModelUpdateInput } from \"~/types/index.js\";\n\n/**\n * Event payloads\n */\nexport interface ModelBeforeUpdateEventPayload {\n model: CmsModel;\n original: CmsModel;\n input: CmsModelUpdateInput;\n}\n\nexport interface ModelAfterUpdateEventPayload {\n model: CmsModel;\n original: CmsModel;\n}\n\nexport interface ModelUpdateErrorEventPayload {\n input: CmsModelUpdateInput;\n model: CmsModel;\n original: CmsModel;\n error: Error;\n}\n\n/**\n * ModelBeforeUpdateEvent - Published before updating a model\n */\nexport class ModelBeforeUpdateEvent extends DomainEvent<ModelBeforeUpdateEventPayload> {\n eventType = \"Cms/Model/BeforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return ModelBeforeUpdateEventHandler;\n }\n}\n\n/** Hook into model lifecycle before a model is updated. */\nexport const ModelBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<ModelBeforeUpdateEvent>\n>(\"ModelBeforeUpdateEventHandler\");\n\nexport namespace ModelBeforeUpdateEventHandler {\n export type Interface = IEventHandler<ModelBeforeUpdateEvent>;\n export type Event = ModelBeforeUpdateEvent;\n}\n\n/**\n * ModelAfterUpdateEvent - Published after updating a model\n */\nexport class ModelAfterUpdateEvent extends DomainEvent<ModelAfterUpdateEventPayload> {\n eventType = \"Cms/Model/AfterUpdate\" as const;\n\n getHandlerAbstraction() {\n return ModelAfterUpdateEventHandler;\n }\n}\n\n/** Hook into model lifecycle after a model is updated. */\nexport const ModelAfterUpdateEventHandler = createAbstraction<IEventHandler<ModelAfterUpdateEvent>>(\n \"ModelAfterUpdateEventHandler\"\n);\n\nexport namespace ModelAfterUpdateEventHandler {\n export type Interface = IEventHandler<ModelAfterUpdateEvent>;\n export type Event = ModelAfterUpdateEvent;\n}\n\n/**\n * ModelUpdateErrorEvent - Published when update fails\n */\nexport class ModelUpdateErrorEvent extends DomainEvent<ModelUpdateErrorEventPayload> {\n eventType = \"Cms/Model/UpdateError\" as const;\n\n getHandlerAbstraction() {\n return ModelUpdateErrorEventHandler;\n }\n}\n\nexport const ModelUpdateErrorEventHandler = createAbstraction<IEventHandler<ModelUpdateErrorEvent>>(\n \"ModelUpdateErrorEventHandler\"\n);\n\nexport namespace ModelUpdateErrorEventHandler {\n export type Interface = IEventHandler<ModelUpdateErrorEvent>;\n export type Event = ModelUpdateErrorEvent;\n}\n"],"names":["ModelBeforeUpdateEvent","DomainEvent","ModelBeforeUpdateEventHandler","createAbstraction","ModelAfterUpdateEvent","ModelAfterUpdateEventHandler","ModelUpdateErrorEvent","ModelUpdateErrorEventHandler"],"mappings":";;AA6BO,MAAMA,+BAA+BC;IAGxC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,gCAAgCC,kBAE3C;AAUK,MAAMC,8BAA8BH;IAGvC,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,+BAA+BF,kBACxC;AAWG,MAAMG,8BAA8BL;IAGvC,wBAAwB;QACpB,OAAOM;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,+BAA+BJ,kBACxC"}
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { UpdateModelUseCase } from "./UpdateModelUseCase.js";
|
|
3
3
|
import { UpdateModelRepository } from "./UpdateModelRepository.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
export const UpdateModelFeature = createFeature({
|
|
12
|
-
name: "UpdateModel",
|
|
13
|
-
register(container) {
|
|
14
|
-
// Register core use case
|
|
15
|
-
container.register(UpdateModelUseCase);
|
|
16
|
-
|
|
17
|
-
// Register repository in singleton scope (shared instance)
|
|
18
|
-
container.register(UpdateModelRepository).inSingletonScope();
|
|
19
|
-
}
|
|
4
|
+
const UpdateModelFeature = createFeature({
|
|
5
|
+
name: "UpdateModel",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(UpdateModelUseCase);
|
|
8
|
+
container.register(UpdateModelRepository).inSingletonScope();
|
|
9
|
+
}
|
|
20
10
|
});
|
|
11
|
+
export { UpdateModelFeature };
|
|
21
12
|
|
|
22
13
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/contentModel/UpdateModel/feature.js","sources":["../../../../src/features/contentModel/UpdateModel/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateModelUseCase } from \"./UpdateModelUseCase.js\";\nimport { UpdateModelRepository } from \"./UpdateModelRepository.js\";\n\n/**\n * UpdateModel Feature\n *\n * Provides functionality for updating existing content models.\n * All validation (API name uniqueness, field validation) is handled by the repository.\n */\nexport const UpdateModelFeature = createFeature({\n name: \"UpdateModel\",\n register(container) {\n // Register core use case\n container.register(UpdateModelUseCase);\n\n // Register repository in singleton scope (shared instance)\n container.register(UpdateModelRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateModelFeature","createFeature","container","UpdateModelUseCase","UpdateModelRepository"],"mappings":";;;AAUO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QAEdA,UAAU,QAAQ,CAACC;QAGnBD,UAAU,QAAQ,CAACE,uBAAuB,gBAAgB;IAC9D;AACJ"}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { UpdateModelRepository, UpdateModelUseCase } from "./abstractions.js";
|
|
2
2
|
export { ModelAfterUpdateEventHandler, ModelBeforeUpdateEventHandler } from "./events.js";
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,96 +1,81 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { ModelCache, ModelsFetcher
|
|
3
|
-
import { PluginModelsProvider } from "./abstractions.js";
|
|
2
|
+
import { ModelCache, ModelsFetcher, PluginModelsProvider } from "./abstractions.js";
|
|
4
3
|
import { StorageOperations } from "../../shared/abstractions.js";
|
|
5
4
|
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
6
5
|
import { ModelNotFoundError, ModelPersistenceError } from "../../../domain/contentModel/errors.js";
|
|
7
6
|
import { createCacheKey } from "../../../utils/index.js";
|
|
8
7
|
import { ensureTypeTag } from "../../../domain/contentModel/ensureTypeTag.js";
|
|
9
8
|
import { ModelFieldCompression } from "../ModelFieldCompression/index.js";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* ModelsFetcherImpl - Implementation with multi-level caching.
|
|
13
|
-
*
|
|
14
|
-
* Caching strategy:
|
|
15
|
-
* 1. Plugin models are cached per tenant (with access control applied by PluginModelsProvider)
|
|
16
|
-
* 2. Database models are cached per tenant (raw from DB)
|
|
17
|
-
* 3. Filtered database models are cached per tenant + identity (with access control applied)
|
|
18
|
-
* 4. Final merged list is cached per tenant + identity
|
|
19
|
-
*/
|
|
20
9
|
class ModelsFetcherImpl {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
async fetchAll() {
|
|
29
|
-
try {
|
|
30
|
-
const tenant = this.tenantContext.getTenant();
|
|
31
|
-
|
|
32
|
-
// Create a cache key based on tenant + identity
|
|
33
|
-
const cacheKey = createCacheKey({
|
|
34
|
-
tenant: tenant.id
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// Fetch plugin models (with caching and access control)
|
|
38
|
-
const pluginModels = await this.pluginModelsProvider.list(tenant.id);
|
|
39
|
-
|
|
40
|
-
// Try to get from cache first
|
|
41
|
-
const cached = await this.modelCache.getOrSet(cacheKey, async () => {
|
|
42
|
-
return this.fetchAndMergeModels(tenant.id);
|
|
43
|
-
});
|
|
44
|
-
return Result.ok([...cached, ...pluginModels]);
|
|
45
|
-
} catch (error) {
|
|
46
|
-
return Result.fail(new ModelPersistenceError(error));
|
|
10
|
+
constructor(modelCache, pluginModelsProvider, storageOperations, tenantContext, modelFieldCompression){
|
|
11
|
+
this.modelCache = modelCache;
|
|
12
|
+
this.pluginModelsProvider = pluginModelsProvider;
|
|
13
|
+
this.storageOperations = storageOperations;
|
|
14
|
+
this.tenantContext = tenantContext;
|
|
15
|
+
this.modelFieldCompression = modelFieldCompression;
|
|
47
16
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
17
|
+
async fetchAll() {
|
|
18
|
+
try {
|
|
19
|
+
const tenant = this.tenantContext.getTenant();
|
|
20
|
+
const cacheKey = createCacheKey({
|
|
21
|
+
tenant: tenant.id
|
|
22
|
+
});
|
|
23
|
+
const cached = await this.modelCache.getOrSet(cacheKey, async ()=>{
|
|
24
|
+
const pluginModels = await this.pluginModelsProvider.list(tenant.id);
|
|
25
|
+
const databaseModels = await this.fetchAndMergeModels(tenant.id);
|
|
26
|
+
return [
|
|
27
|
+
...pluginModels,
|
|
28
|
+
...databaseModels
|
|
29
|
+
];
|
|
30
|
+
});
|
|
31
|
+
return Result.ok(cached);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
return Result.fail(new ModelPersistenceError(error));
|
|
34
|
+
}
|
|
53
35
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
36
|
+
async fetchById(modelId) {
|
|
37
|
+
const result = await this.fetchAll();
|
|
38
|
+
if (result.isFail()) return Result.fail(new ModelPersistenceError(result.error));
|
|
39
|
+
const model = result.value.find((m)=>m.modelId === modelId);
|
|
40
|
+
if (!model) return Result.fail(new ModelNotFoundError(modelId));
|
|
41
|
+
return Result.ok(model);
|
|
42
|
+
}
|
|
43
|
+
async fetchAndMergeModels(tenant) {
|
|
44
|
+
const dbCacheKey = createCacheKey({
|
|
45
|
+
tenant,
|
|
46
|
+
id: "storage"
|
|
47
|
+
});
|
|
48
|
+
const databaseModels = await this.modelCache.getOrSet(dbCacheKey, async ()=>{
|
|
49
|
+
const models = await this.storageOperations.models.list({
|
|
50
|
+
where: {
|
|
51
|
+
tenant
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return Promise.all(models.map(async (model)=>{
|
|
55
|
+
const fields = await this.modelFieldCompression.decompress(model.fields);
|
|
56
|
+
return {
|
|
57
|
+
...model,
|
|
58
|
+
fields
|
|
59
|
+
};
|
|
60
|
+
}));
|
|
61
|
+
});
|
|
62
|
+
const taggedDatabaseModels = databaseModels.map((model)=>{
|
|
63
|
+
model.tags = ensureTypeTag(model);
|
|
64
|
+
return model;
|
|
65
|
+
});
|
|
66
|
+
return taggedDatabaseModels;
|
|
57
67
|
}
|
|
58
|
-
return Result.ok(model);
|
|
59
|
-
}
|
|
60
|
-
async fetchAndMergeModels(tenant) {
|
|
61
|
-
// 1. Fetch database models (with caching)
|
|
62
|
-
const dbCacheKey = createCacheKey({
|
|
63
|
-
tenant,
|
|
64
|
-
id: "storage"
|
|
65
|
-
});
|
|
66
|
-
const databaseModels = await this.modelCache.getOrSet(dbCacheKey, async () => {
|
|
67
|
-
const models = await this.storageOperations.models.list({
|
|
68
|
-
where: {
|
|
69
|
-
tenant
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
return Promise.all(models.map(async model => {
|
|
73
|
-
const fields = await this.modelFieldCompression.decompress(model.fields);
|
|
74
|
-
return {
|
|
75
|
-
...model,
|
|
76
|
-
fields
|
|
77
|
-
};
|
|
78
|
-
}));
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// 2. Ensure type tags on database models
|
|
82
|
-
const taggedDatabaseModels = databaseModels.map(model => {
|
|
83
|
-
model.tags = ensureTypeTag(model);
|
|
84
|
-
return model;
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// 3. Return merged models.
|
|
88
|
-
return taggedDatabaseModels;
|
|
89
|
-
}
|
|
90
68
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
69
|
+
const ModelsFetcher_ModelsFetcher = ModelsFetcher.createImplementation({
|
|
70
|
+
implementation: ModelsFetcherImpl,
|
|
71
|
+
dependencies: [
|
|
72
|
+
ModelCache,
|
|
73
|
+
PluginModelsProvider,
|
|
74
|
+
StorageOperations,
|
|
75
|
+
TenantContext,
|
|
76
|
+
ModelFieldCompression
|
|
77
|
+
]
|
|
94
78
|
});
|
|
79
|
+
export { ModelsFetcher_ModelsFetcher as ModelsFetcher };
|
|
95
80
|
|
|
96
81
|
//# sourceMappingURL=ModelsFetcher.js.map
|