@webiny/api-headless-cms 6.1.0 → 6.2.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/context.d.ts +2 -5
- package/context.js +16 -7
- package/context.js.map +1 -1
- package/crud/AccessControl/AccessControl.d.ts +18 -28
- package/crud/AccessControl/AccessControl.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.js +17 -6
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +9 -3
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.d.ts +1 -1
- package/crud/contentEntry/entryDataValidation.js +16 -13
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +2 -3
- package/crud/contentEntry/searchableFields.js +10 -18
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentModel.crud.js +2 -1
- package/crud/contentModel.crud.js.map +1 -1
- package/domain/contentModel/validation/modelFields.js +15 -20
- package/domain/contentModel/validation/modelFields.js.map +1 -1
- package/exports/api/cms/graphql.d.ts +1 -0
- package/exports/api/cms/graphql.js +3 -0
- package/exports/api/cms/graphql.js.map +1 -0
- package/exports/api/cms/storage.d.ts +3 -0
- package/exports/api/cms/storage.js +5 -0
- package/exports/api/cms/storage.js.map +1 -0
- package/exports/api/cms/validation.d.ts +4 -0
- package/exports/api/cms/validation.js +6 -0
- package/exports/api/cms/validation.js.map +1 -0
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +3 -3
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +3 -3
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntry/events.d.ts +2 -2
- package/features/contentEntry/CreateEntry/events.js +1 -1
- package/features/contentEntry/CreateEntry/events.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +3 -3
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +3 -3
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/events.d.ts +2 -2
- package/features/contentEntry/CreateEntryRevisionFrom/events.js +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/events.js.map +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.d.ts +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.d.ts +2 -2
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +2 -2
- package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/events.d.ts +2 -2
- package/features/contentEntry/DeleteEntry/events.js +1 -1
- package/features/contentEntry/DeleteEntry/events.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.d.ts +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/events.d.ts +2 -2
- package/features/contentEntry/DeleteEntryRevision/events.js +1 -1
- package/features/contentEntry/DeleteEntryRevision/events.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.d.ts +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/events.d.ts +2 -2
- package/features/contentEntry/DeleteMultipleEntries/events.js +1 -1
- package/features/contentEntry/DeleteMultipleEntries/events.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +6 -11
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.d.ts +1 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js +1 -1
- package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.d.ts +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
- package/features/contentEntry/MoveEntry/events.d.ts +2 -2
- package/features/contentEntry/MoveEntry/events.js +1 -1
- package/features/contentEntry/MoveEntry/events.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +2 -2
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +2 -2
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/PublishEntry/events.d.ts +2 -2
- package/features/contentEntry/PublishEntry/events.js +1 -1
- package/features/contentEntry/PublishEntry/events.js.map +1 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +2 -2
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +2 -2
- package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/RepublishEntry/events.d.ts +2 -2
- package/features/contentEntry/RepublishEntry/events.js +1 -1
- package/features/contentEntry/RepublishEntry/events.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.d.ts +2 -2
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +2 -2
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/events.d.ts +2 -2
- package/features/contentEntry/RestoreEntryFromBin/events.js +1 -1
- package/features/contentEntry/RestoreEntryFromBin/events.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +2 -2
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +2 -2
- package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/events.d.ts +2 -2
- package/features/contentEntry/UnpublishEntry/events.js +1 -1
- package/features/contentEntry/UnpublishEntry/events.js.map +1 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +3 -3
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +3 -3
- package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
- package/features/contentEntry/UpdateEntry/events.d.ts +2 -2
- package/features/contentEntry/UpdateEntry/events.js +1 -1
- package/features/contentEntry/UpdateEntry/events.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.d.ts +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.js +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelUseCase.d.ts +3 -3
- package/features/contentModel/CreateModel/CreateModelUseCase.js +3 -3
- package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
- package/features/contentModel/CreateModel/events.d.ts +2 -2
- package/features/contentModel/CreateModel/events.js +1 -1
- package/features/contentModel/CreateModel/events.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.d.ts +3 -3
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +4 -3
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
- package/features/contentModel/CreateModelFrom/events.d.ts +2 -2
- package/features/contentModel/CreateModelFrom/events.js +1 -1
- package/features/contentModel/CreateModelFrom/events.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelUseCase.d.ts +1 -1
- package/features/contentModel/DeleteModel/DeleteModelUseCase.js +1 -1
- package/features/contentModel/DeleteModel/DeleteModelUseCase.js.map +1 -1
- package/features/contentModel/DeleteModel/events.d.ts +2 -2
- package/features/contentModel/DeleteModel/events.js +1 -1
- package/features/contentModel/DeleteModel/events.js.map +1 -1
- package/features/contentModel/ModelToAstConverter/ModelToAstConverter.d.ts +3 -3
- package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js +6 -6
- package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelUseCase.d.ts +2 -2
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
- package/features/contentModel/UpdateModel/events.d.ts +2 -2
- package/features/contentModel/UpdateModel/events.js +1 -1
- package/features/contentModel/UpdateModel/events.js.map +1 -1
- package/features/contentModel/shared/ModelsFetcher.d.ts +1 -1
- package/features/contentModel/shared/ModelsFetcher.js +1 -1
- package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +3 -3
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +3 -3
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/events.d.ts +2 -2
- package/features/contentModelGroup/CreateGroup/events.js +1 -1
- package/features/contentModelGroup/CreateGroup/events.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.d.ts +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/events.d.ts +2 -2
- package/features/contentModelGroup/DeleteGroup/events.js +1 -1
- package/features/contentModelGroup/DeleteGroup/events.js.map +1 -1
- package/features/contentModelGroup/GetGroup/GetGroupRepository.d.ts +2 -2
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js +2 -2
- package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.d.ts +2 -2
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +2 -2
- package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +2 -2
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +2 -2
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/events.d.ts +2 -2
- package/features/contentModelGroup/UpdateGroup/events.js +1 -1
- package/features/contentModelGroup/UpdateGroup/events.js.map +1 -1
- package/features/contentModelGroup/shared/PluginGroupsProvider.d.ts +2 -2
- package/features/contentModelGroup/shared/PluginGroupsProvider.js +2 -2
- package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
- package/features/graphql/feature.d.ts +1 -0
- package/features/graphql/feature.js +34 -0
- package/features/graphql/feature.js.map +1 -0
- package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.d.ts +13 -0
- package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js +27 -0
- package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js.map +1 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.d.ts +97 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js +4 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.d.ts +10 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js +4 -0
- package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js.map +1 -0
- package/features/graphql/fields/base/BooleanToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/BooleanToGraphQL.js +68 -0
- package/features/graphql/fields/base/BooleanToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/DateTimeToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/DateTimeToGraphQL.js +97 -0
- package/features/graphql/fields/base/DateTimeToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/DynamicZoneToGraphQL.d.ts +30 -0
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js +280 -0
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/FileToGraphQL.d.ts +22 -0
- package/features/graphql/fields/base/FileToGraphQL.js +39 -0
- package/features/graphql/fields/base/FileToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/JsonToGraphQL.d.ts +24 -0
- package/features/graphql/fields/base/JsonToGraphQL.js +52 -0
- package/features/graphql/fields/base/JsonToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/LongTextToGraphQL.d.ts +24 -0
- package/features/graphql/fields/base/LongTextToGraphQL.js +57 -0
- package/features/graphql/fields/base/LongTextToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/NumberToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/NumberToGraphQL.js +78 -0
- package/features/graphql/fields/base/NumberToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/ObjectToGraphQL.d.ts +31 -0
- package/features/graphql/fields/base/ObjectToGraphQL.js +264 -0
- package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/RefToGraphQL.d.ts +29 -0
- package/features/graphql/fields/base/RefToGraphQL.js +261 -0
- package/features/graphql/fields/base/RefToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/RichTextToGraphQL.d.ts +25 -0
- package/features/graphql/fields/base/RichTextToGraphQL.js +58 -0
- package/features/graphql/fields/base/RichTextToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/SearchableJsonToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/SearchableJsonToGraphQL.js +62 -0
- package/features/graphql/fields/base/SearchableJsonToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/TextToGraphQL.d.ts +26 -0
- package/features/graphql/fields/base/TextToGraphQL.js +74 -0
- package/features/graphql/fields/base/TextToGraphQL.js.map +1 -0
- package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.d.ts +16 -0
- package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js +37 -0
- package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js.map +1 -0
- package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.d.ts +3 -0
- package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js +14 -0
- package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js.map +1 -0
- package/{graphqlFields → features/graphql/fields/base}/richText/richTextResolver.d.ts +1 -1
- package/{graphqlFields → features/graphql/fields/base}/richText/richTextResolver.js +2 -2
- package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -0
- package/{graphqlFields/helpers.d.ts → features/graphql/fields/base/utils/createGraphQLInputField.d.ts} +1 -1
- package/features/graphql/fields/base/utils/createGraphQLInputField.js +17 -0
- package/features/graphql/fields/base/utils/createGraphQLInputField.js.map +1 -0
- package/features/graphql/index.d.ts +4 -0
- package/features/graphql/index.js +6 -0
- package/features/graphql/index.js.map +1 -0
- package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.d.ts +13 -0
- package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js +4 -0
- package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js.map +1 -0
- package/features/installer/CmsInstaller.d.ts +1 -1
- package/features/installer/CmsInstaller.js +1 -1
- package/features/installer/CmsInstaller.js.map +1 -1
- package/features/shared/abstractions.d.ts +9 -2
- package/features/shared/abstractions.js +1 -0
- package/features/shared/abstractions.js.map +1 -1
- package/features/storage/StorageTransformRegistry.d.ts +13 -0
- package/features/storage/StorageTransformRegistry.js +27 -0
- package/features/storage/StorageTransformRegistry.js.map +1 -0
- package/features/storage/abstractions/StorageTransform.d.ts +26 -0
- package/features/storage/abstractions/StorageTransform.js +4 -0
- package/features/storage/abstractions/StorageTransform.js.map +1 -0
- package/features/storage/abstractions/StorageTransformRegistry.d.ts +10 -0
- package/features/storage/abstractions/StorageTransformRegistry.js +4 -0
- package/features/storage/abstractions/StorageTransformRegistry.js.map +1 -0
- package/features/storage/feature.d.ts +1 -0
- package/features/storage/feature.js +24 -0
- package/features/storage/feature.js.map +1 -0
- package/features/storage/fields/DateStorageTransform.d.ts +10 -0
- package/features/storage/fields/DateStorageTransform.js +110 -0
- package/features/storage/fields/DateStorageTransform.js.map +1 -0
- package/features/storage/fields/DefaultStorageTransform.d.ts +10 -0
- package/features/storage/fields/DefaultStorageTransform.js +20 -0
- package/features/storage/fields/DefaultStorageTransform.js.map +1 -0
- package/features/storage/fields/DynamicZoneStorageTransform.d.ts +10 -0
- package/features/storage/fields/DynamicZoneStorageTransform.js +142 -0
- package/features/storage/fields/DynamicZoneStorageTransform.js.map +1 -0
- package/features/storage/fields/JsonStorageTransform.d.ts +13 -0
- package/features/storage/fields/JsonStorageTransform.js +31 -0
- package/features/storage/fields/JsonStorageTransform.js.map +1 -0
- package/features/storage/fields/LongTextStorageTransform.d.ts +18 -0
- package/features/storage/fields/LongTextStorageTransform.js +55 -0
- package/features/storage/fields/LongTextStorageTransform.js.map +1 -0
- package/features/storage/fields/ObjectStorageTransform.d.ts +10 -0
- package/features/storage/fields/ObjectStorageTransform.js +99 -0
- package/features/storage/fields/ObjectStorageTransform.js.map +1 -0
- package/features/storage/fields/RichTextStorageTransform.d.ts +13 -0
- package/features/storage/fields/RichTextStorageTransform.js +39 -0
- package/features/storage/fields/RichTextStorageTransform.js.map +1 -0
- package/features/storage/index.d.ts +3 -0
- package/features/storage/index.js +5 -0
- package/features/storage/index.js.map +1 -0
- package/features/validation/CmsModelFieldPatternValidatorRegistry.d.ts +12 -0
- package/features/validation/CmsModelFieldPatternValidatorRegistry.js +21 -0
- package/features/validation/CmsModelFieldPatternValidatorRegistry.js.map +1 -0
- package/features/validation/CmsModelFieldValidatorRegistry.d.ts +12 -0
- package/features/validation/CmsModelFieldValidatorRegistry.js +23 -0
- package/features/validation/CmsModelFieldValidatorRegistry.js.map +1 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidator.d.ts +13 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidator.js +4 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidator.js.map +1 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.d.ts +9 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js +4 -0
- package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js.map +1 -0
- package/features/validation/abstractions/CmsModelFieldValidator.d.ts +11 -0
- package/features/validation/abstractions/CmsModelFieldValidator.js +4 -0
- package/features/validation/abstractions/CmsModelFieldValidator.js.map +1 -0
- package/features/validation/abstractions/CmsModelFieldValidatorRegistry.d.ts +9 -0
- package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js +4 -0
- package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js.map +1 -0
- package/features/validation/feature.d.ts +1 -0
- package/features/validation/feature.js +48 -0
- package/features/validation/feature.js.map +1 -0
- package/features/validation/index.d.ts +5 -0
- package/features/validation/index.js +7 -0
- package/features/validation/index.js.map +1 -0
- package/features/validation/validators/DateGteValidator.d.ts +10 -0
- package/features/validation/validators/DateGteValidator.js +26 -0
- package/features/validation/validators/DateGteValidator.js.map +1 -0
- package/features/validation/validators/DateLteValidator.d.ts +10 -0
- package/features/validation/validators/DateLteValidator.js +26 -0
- package/features/validation/validators/DateLteValidator.js.map +1 -0
- package/features/validation/validators/GteValidator.d.ts +10 -0
- package/features/validation/validators/GteValidator.js +21 -0
- package/features/validation/validators/GteValidator.js.map +1 -0
- package/features/validation/validators/InValidator.d.ts +10 -0
- package/features/validation/validators/InValidator.js +21 -0
- package/features/validation/validators/InValidator.js.map +1 -0
- package/features/validation/validators/LteValidator.d.ts +10 -0
- package/features/validation/validators/LteValidator.js +21 -0
- package/features/validation/validators/LteValidator.js.map +1 -0
- package/features/validation/validators/MaxLengthValidator.d.ts +10 -0
- package/features/validation/validators/MaxLengthValidator.js +21 -0
- package/features/validation/validators/MaxLengthValidator.js.map +1 -0
- package/features/validation/validators/MinLengthValidator.d.ts +10 -0
- package/features/validation/validators/MinLengthValidator.js +21 -0
- package/features/validation/validators/MinLengthValidator.js.map +1 -0
- package/features/validation/validators/PatternValidator.d.ts +13 -0
- package/features/validation/validators/PatternValidator.js +38 -0
- package/features/validation/validators/PatternValidator.js.map +1 -0
- package/features/validation/validators/RequiredValidator.d.ts +10 -0
- package/features/validation/validators/RequiredValidator.js +16 -0
- package/features/validation/validators/RequiredValidator.js.map +1 -0
- package/features/validation/validators/TimeGteValidator.d.ts +10 -0
- package/features/validation/validators/TimeGteValidator.js +21 -0
- package/features/validation/validators/TimeGteValidator.js.map +1 -0
- package/features/validation/validators/TimeLteValidator.d.ts +10 -0
- package/features/validation/validators/TimeLteValidator.js +21 -0
- package/features/validation/validators/TimeLteValidator.js.map +1 -0
- package/features/validation/validators/UniqueValidator.d.ts +10 -0
- package/features/validation/validators/UniqueValidator.js +47 -0
- package/features/validation/validators/UniqueValidator.js.map +1 -0
- package/features/validation/validators/patterns/EmailPattern.d.ts +12 -0
- package/features/validation/validators/patterns/EmailPattern.js +14 -0
- package/features/validation/validators/patterns/EmailPattern.js.map +1 -0
- package/features/validation/validators/patterns/LowerCasePattern.d.ts +12 -0
- package/features/validation/validators/patterns/LowerCasePattern.js +14 -0
- package/features/validation/validators/patterns/LowerCasePattern.js.map +1 -0
- package/features/validation/validators/patterns/LowerCaseSpacePattern.d.ts +12 -0
- package/features/validation/validators/patterns/LowerCaseSpacePattern.js +14 -0
- package/features/validation/validators/patterns/LowerCaseSpacePattern.js.map +1 -0
- package/features/validation/validators/patterns/UpperCasePattern.d.ts +12 -0
- package/features/validation/validators/patterns/UpperCasePattern.js +14 -0
- package/features/validation/validators/patterns/UpperCasePattern.js.map +1 -0
- package/features/validation/validators/patterns/UpperCaseSpacePattern.d.ts +12 -0
- package/features/validation/validators/patterns/UpperCaseSpacePattern.js +14 -0
- package/features/validation/validators/patterns/UpperCaseSpacePattern.js.map +1 -0
- package/features/validation/validators/patterns/UrlPattern.d.ts +12 -0
- package/features/validation/validators/patterns/UrlPattern.js +14 -0
- package/features/validation/validators/patterns/UrlPattern.js.map +1 -0
- package/graphql/getSchema/generateCacheKey.js +1 -1
- package/graphql/getSchema/generateCacheKey.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +2 -1
- package/graphql/schema/baseSchema.js +11 -9
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +3 -2
- package/graphql/schema/createFieldResolvers.js +5 -4
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.d.ts +3 -2
- package/graphql/schema/createManageResolvers.js +3 -3
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +4 -4
- package/graphql/schema/createManageSDL.js +8 -8
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.d.ts +3 -2
- package/graphql/schema/createPreviewResolvers.js +4 -4
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.d.ts +3 -2
- package/graphql/schema/createReadResolvers.js +4 -4
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +4 -4
- package/graphql/schema/createReadSDL.js +7 -7
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/createSingularResolvers.d.ts +3 -2
- package/graphql/schema/createSingularResolvers.js +3 -3
- package/graphql/schema/createSingularResolvers.js.map +1 -1
- package/graphql/schema/createSingularSDL.d.ts +3 -2
- package/graphql/schema/createSingularSDL.js +3 -3
- package/graphql/schema/createSingularSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +6 -7
- package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +14 -17
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/index.d.ts +1 -4
- package/index.js +2 -6
- package/index.js.map +1 -1
- package/package.json +25 -25
- package/plugins/index.d.ts +0 -2
- package/plugins/index.js +0 -2
- package/plugins/index.js.map +1 -1
- package/types/modelField.d.ts +1 -1
- package/types/modelField.js.map +1 -1
- package/types/plugins.d.ts +1 -305
- package/types/plugins.js.map +1 -1
- package/types/types.d.ts +4 -44
- package/types/types.js +0 -4
- package/types/types.js.map +1 -1
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +3 -2
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +3 -3
- package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -1
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +4 -3
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +3 -3
- package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -1
- package/utils/converters/ConverterCollection.d.ts +2 -0
- package/utils/converters/ConverterCollection.js +3 -2
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyFromStorageConverter.d.ts +2 -0
- package/utils/converters/valueKeyFromStorageConverter.js +4 -2
- package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +2 -3
- package/utils/converters/valueKeyStorageConverter.js +7 -3
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/converters/valueKeyToStorageConverter.d.ts +2 -0
- package/utils/converters/valueKeyToStorageConverter.js +4 -2
- package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +3 -2
- package/utils/createTypeFromFields.js +3 -3
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/entryStorage.d.ts +8 -15
- package/utils/entryStorage.js +31 -59
- package/utils/entryStorage.js.map +1 -1
- package/utils/getBaseFieldType.js +3 -0
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +3 -2
- package/utils/getSchemaFromFieldPlugins.js +5 -9
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/renderFields.d.ts +4 -3
- package/utils/renderFields.js +14 -9
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.d.ts +3 -2
- package/utils/renderGetFilterFields.js +2 -2
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +4 -3
- package/utils/renderInputFields.js +5 -11
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.d.ts +3 -2
- package/utils/renderListFilterFields.js +5 -3
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +4 -4
- package/utils/renderSortEnum.js +11 -11
- package/utils/renderSortEnum.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.d.ts +0 -3
- package/graphql/schema/createFieldTypePluginRecords.js +0 -8
- package/graphql/schema/createFieldTypePluginRecords.js.map +0 -1
- package/graphqlFields/boolean.d.ts +0 -2
- package/graphqlFields/boolean.js +0 -52
- package/graphqlFields/boolean.js.map +0 -1
- package/graphqlFields/datetime.d.ts +0 -2
- package/graphqlFields/datetime.js +0 -71
- package/graphqlFields/datetime.js.map +0 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +0 -2
- package/graphqlFields/dynamicZone/dynamicZoneField.js +0 -313
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +0 -1
- package/graphqlFields/dynamicZone/index.d.ts +0 -1
- package/graphqlFields/dynamicZone/index.js +0 -3
- package/graphqlFields/dynamicZone/index.js.map +0 -1
- package/graphqlFields/file.d.ts +0 -2
- package/graphqlFields/file.js +0 -37
- package/graphqlFields/file.js.map +0 -1
- package/graphqlFields/helpers.js +0 -20
- package/graphqlFields/helpers.js.map +0 -1
- package/graphqlFields/index.d.ts +0 -2
- package/graphqlFields/index.js +0 -15
- package/graphqlFields/index.js.map +0 -1
- package/graphqlFields/json.d.ts +0 -2
- package/graphqlFields/json.js +0 -42
- package/graphqlFields/json.js.map +0 -1
- package/graphqlFields/longText.d.ts +0 -2
- package/graphqlFields/longText.js +0 -57
- package/graphqlFields/longText.js.map +0 -1
- package/graphqlFields/number.d.ts +0 -2
- package/graphqlFields/number.js +0 -63
- package/graphqlFields/number.js.map +0 -1
- package/graphqlFields/object.d.ts +0 -2
- package/graphqlFields/object.js +0 -245
- package/graphqlFields/object.js.map +0 -1
- package/graphqlFields/ref.d.ts +0 -2
- package/graphqlFields/ref.js +0 -286
- package/graphqlFields/ref.js.map +0 -1
- package/graphqlFields/richText/richTextResolver.js.map +0 -1
- package/graphqlFields/richText.d.ts +0 -2
- package/graphqlFields/richText.js +0 -48
- package/graphqlFields/richText.js.map +0 -1
- package/graphqlFields/searchableJson.d.ts +0 -2
- package/graphqlFields/searchableJson.js +0 -53
- package/graphqlFields/searchableJson.js.map +0 -1
- package/graphqlFields/text.d.ts +0 -2
- package/graphqlFields/text.js +0 -59
- package/graphqlFields/text.js.map +0 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +0 -20
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -19
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +0 -1
- package/plugins/StorageTransformPlugin.d.ts +0 -35
- package/plugins/StorageTransformPlugin.js +0 -26
- package/plugins/StorageTransformPlugin.js.map +0 -1
- package/storage/date.d.ts +0 -3
- package/storage/date.js +0 -110
- package/storage/date.js.map +0 -1
- package/storage/default.d.ts +0 -2
- package/storage/default.js +0 -19
- package/storage/default.js.map +0 -1
- package/storage/dynamicZone.d.ts +0 -2
- package/storage/dynamicZone.js +0 -149
- package/storage/dynamicZone.js.map +0 -1
- package/storage/index.d.ts +0 -1
- package/storage/index.js +0 -13
- package/storage/index.js.map +0 -1
- package/storage/json.d.ts +0 -2
- package/storage/json.js +0 -49
- package/storage/json.js.map +0 -1
- package/storage/object.d.ts +0 -2
- package/storage/object.js +0 -104
- package/storage/object.js.map +0 -1
- package/validators/dateGte.d.ts +0 -2
- package/validators/dateGte.js +0 -25
- package/validators/dateGte.js.map +0 -1
- package/validators/dateLte.d.ts +0 -2
- package/validators/dateLte.js +0 -25
- package/validators/dateLte.js.map +0 -1
- package/validators/gte.d.ts +0 -2
- package/validators/gte.js +0 -22
- package/validators/gte.js.map +0 -1
- package/validators/in.d.ts +0 -2
- package/validators/in.js +0 -22
- package/validators/in.js.map +0 -1
- package/validators/index.d.ts +0 -1
- package/validators/index.js +0 -16
- package/validators/index.js.map +0 -1
- package/validators/lte.d.ts +0 -2
- package/validators/lte.js +0 -22
- package/validators/lte.js.map +0 -1
- package/validators/maxLength.d.ts +0 -2
- package/validators/maxLength.js +0 -22
- package/validators/maxLength.js.map +0 -1
- package/validators/minLength.d.ts +0 -2
- package/validators/minLength.js +0 -22
- package/validators/minLength.js.map +0 -1
- package/validators/pattern.d.ts +0 -2
- package/validators/pattern.js +0 -36
- package/validators/pattern.js.map +0 -1
- package/validators/patternPlugins/email.d.ts +0 -2
- package/validators/patternPlugins/email.js +0 -13
- package/validators/patternPlugins/email.js.map +0 -1
- package/validators/patternPlugins/index.d.ts +0 -2
- package/validators/patternPlugins/index.js +0 -11
- package/validators/patternPlugins/index.js.map +0 -1
- package/validators/patternPlugins/lowerCase.d.ts +0 -2
- package/validators/patternPlugins/lowerCase.js +0 -13
- package/validators/patternPlugins/lowerCase.js.map +0 -1
- package/validators/patternPlugins/lowerCaseSpace.d.ts +0 -2
- package/validators/patternPlugins/lowerCaseSpace.js +0 -13
- package/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
- package/validators/patternPlugins/upperCase.d.ts +0 -2
- package/validators/patternPlugins/upperCase.js +0 -13
- package/validators/patternPlugins/upperCase.js.map +0 -1
- package/validators/patternPlugins/upperCaseSpace.d.ts +0 -2
- package/validators/patternPlugins/upperCaseSpace.js +0 -13
- package/validators/patternPlugins/upperCaseSpace.js.map +0 -1
- package/validators/patternPlugins/url.d.ts +0 -2
- package/validators/patternPlugins/url.js +0 -13
- package/validators/patternPlugins/url.js.map +0 -1
- package/validators/required.d.ts +0 -2
- package/validators/required.js +0 -17
- package/validators/required.js.map +0 -1
- package/validators/timeGte.d.ts +0 -2
- package/validators/timeGte.js +0 -20
- package/validators/timeGte.js.map +0 -1
- package/validators/timeLte.d.ts +0 -2
- package/validators/timeLte.js +0 -20
- package/validators/timeLte.js.map +0 -1
- package/validators/unique.d.ts +0 -6
- package/validators/unique.js +0 -57
- package/validators/unique.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CmsModelFieldToAstFromPlugin } from "./CmsModelFieldToAstFromPlugin.js";
|
|
2
2
|
import { getBaseFieldType } from "../getBaseFieldType.js";
|
|
3
3
|
export class CmsModelFieldToAstConverterFromPlugins {
|
|
4
|
-
constructor(
|
|
5
|
-
this.converters =
|
|
4
|
+
constructor(fields) {
|
|
5
|
+
this.converters = fields.reduce((converters, field) => {
|
|
6
6
|
return {
|
|
7
7
|
...converters,
|
|
8
|
-
[
|
|
8
|
+
[field.fieldType]: new CmsModelFieldToAstFromPlugin(field, this)
|
|
9
9
|
};
|
|
10
10
|
}, {});
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CmsModelFieldToAstFromPlugin","getBaseFieldType","CmsModelFieldToAstConverterFromPlugins","constructor","
|
|
1
|
+
{"version":3,"names":["CmsModelFieldToAstFromPlugin","getBaseFieldType","CmsModelFieldToAstConverterFromPlugins","constructor","fields","converters","reduce","field","fieldType","toAst","type","Error","fieldId"],"sources":["CmsModelFieldToAstConverterFromPlugins.ts"],"sourcesContent":["import type { CmsModelField, ICmsModelFieldToAst } from \"~/types/index.js\";\nimport type { CmsModelFieldToGraphQL } from \"~/features/graphql/index.js\";\nimport { CmsModelFieldToAstFromPlugin } from \"./CmsModelFieldToAstFromPlugin.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\n\ntype FieldToAstConverters = Record<string, ICmsModelFieldToAst>;\n\nexport class CmsModelFieldToAstConverterFromPlugins implements ICmsModelFieldToAst {\n private readonly converters: FieldToAstConverters;\n\n public constructor(fields: CmsModelFieldToGraphQL.Interface[]) {\n this.converters = fields.reduce<FieldToAstConverters>((converters, field) => {\n return {\n ...converters,\n [field.fieldType]: new CmsModelFieldToAstFromPlugin(field, this)\n };\n }, {});\n }\n\n public toAst(field: CmsModelField) {\n const type = getBaseFieldType(field);\n if (!this.converters[type]) {\n throw new Error(\n `Cannot convert model field \"${field.fieldId}\" to AST. No converter found for field type \"${type}\".`\n );\n }\n return this.converters[type].toAst(field);\n }\n}\n"],"mappings":"AAEA,SAASA,4BAA4B;AACrC,SAASC,gBAAgB;AAIzB,OAAO,MAAMC,sCAAsC,CAAgC;EAGxEC,WAAWA,CAACC,MAA0C,EAAE;IAC3D,IAAI,CAACC,UAAU,GAAGD,MAAM,CAACE,MAAM,CAAuB,CAACD,UAAU,EAAEE,KAAK,KAAK;MACzE,OAAO;QACH,GAAGF,UAAU;QACb,CAACE,KAAK,CAACC,SAAS,GAAG,IAAIR,4BAA4B,CAACO,KAAK,EAAE,IAAI;MACnE,CAAC;IACL,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;EAEOE,KAAKA,CAACF,KAAoB,EAAE;IAC/B,MAAMG,IAAI,GAAGT,gBAAgB,CAACM,KAAK,CAAC;IACpC,IAAI,CAAC,IAAI,CAACF,UAAU,CAACK,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIC,KAAK,CACX,+BAA+BJ,KAAK,CAACK,OAAO,gDAAgDF,IAAI,IACpG,CAAC;IACL;IACA,OAAO,IAAI,CAACL,UAAU,CAACK,IAAI,CAAC,CAACD,KAAK,CAACF,KAAK,CAAC;EAC7C;AACJ","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { CmsModelField, CmsModelFieldAstNode,
|
|
1
|
+
import type { CmsModelField, CmsModelFieldAstNode, ICmsModelFieldToAst } from "../../types/index.js";
|
|
2
|
+
import type { CmsModelFieldToGraphQL } from "../../features/graphql/index.js";
|
|
2
3
|
export declare class CmsModelFieldToAstFromPlugin implements ICmsModelFieldToAst {
|
|
3
4
|
private readonly converter;
|
|
4
|
-
private
|
|
5
|
-
constructor(
|
|
5
|
+
private field;
|
|
6
|
+
constructor(field: CmsModelFieldToGraphQL.Interface, converter: ICmsModelFieldToAst);
|
|
6
7
|
toAst(field: CmsModelField): CmsModelFieldAstNode;
|
|
7
8
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export class CmsModelFieldToAstFromPlugin {
|
|
2
|
-
constructor(
|
|
2
|
+
constructor(field, converter) {
|
|
3
3
|
this.converter = converter;
|
|
4
|
-
this.
|
|
4
|
+
this.field = field;
|
|
5
5
|
}
|
|
6
6
|
toAst(field) {
|
|
7
|
-
return this.
|
|
7
|
+
return this.field.getFieldAst ? this.field.getFieldAst(field, this.converter) : {
|
|
8
8
|
type: "field",
|
|
9
9
|
field,
|
|
10
10
|
children: []
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CmsModelFieldToAstFromPlugin","constructor","
|
|
1
|
+
{"version":3,"names":["CmsModelFieldToAstFromPlugin","constructor","field","converter","toAst","getFieldAst","type","children"],"sources":["CmsModelFieldToAstFromPlugin.ts"],"sourcesContent":["import type { CmsModelField, CmsModelFieldAstNode, ICmsModelFieldToAst } from \"~/types/index.js\";\nimport type { CmsModelFieldToGraphQL } from \"~/features/graphql/index.js\";\n\nexport class CmsModelFieldToAstFromPlugin implements ICmsModelFieldToAst {\n private readonly converter: ICmsModelFieldToAst;\n private field: CmsModelFieldToGraphQL.Interface;\n\n constructor(field: CmsModelFieldToGraphQL.Interface, converter: ICmsModelFieldToAst) {\n this.converter = converter;\n this.field = field;\n }\n\n toAst(field: CmsModelField): CmsModelFieldAstNode {\n return this.field.getFieldAst\n ? this.field.getFieldAst(field, this.converter)\n : { type: \"field\", field, children: [] };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,4BAA4B,CAAgC;EAIrEC,WAAWA,CAACC,KAAuC,EAAEC,SAA8B,EAAE;IACjF,IAAI,CAACA,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACD,KAAK,GAAGA,KAAK;EACtB;EAEAE,KAAKA,CAACF,KAAoB,EAAwB;IAC9C,OAAO,IAAI,CAACA,KAAK,CAACG,WAAW,GACvB,IAAI,CAACH,KAAK,CAACG,WAAW,CAACH,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,GAC7C;MAAEG,IAAI,EAAE,OAAO;MAAEJ,KAAK;MAAEK,QAAQ,EAAE;IAAG,CAAC;EAChD;AACJ","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Converter } from "./Converter.js";
|
|
2
2
|
import type { CmsEntryValues, CmsModelField } from "../../types/index.js";
|
|
3
3
|
import type { PluginsContainer } from "@webiny/plugins";
|
|
4
|
+
import type { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
|
|
4
5
|
export interface CmsModelFieldsWithParent extends CmsModelField {
|
|
5
6
|
parent?: CmsModelField | null;
|
|
6
7
|
}
|
|
@@ -13,6 +14,7 @@ export interface ConverterCollectionConvertParams<T extends CmsEntryValues = Cms
|
|
|
13
14
|
}
|
|
14
15
|
export interface ConverterCollectionParams {
|
|
15
16
|
plugins: PluginsContainer;
|
|
17
|
+
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
|
|
16
18
|
}
|
|
17
19
|
export declare class ConverterCollection {
|
|
18
20
|
private readonly converters;
|
|
@@ -6,9 +6,10 @@ export class ConverterCollection {
|
|
|
6
6
|
converters = new Map();
|
|
7
7
|
constructor(params) {
|
|
8
8
|
const {
|
|
9
|
-
plugins
|
|
9
|
+
plugins,
|
|
10
|
+
fieldRegistry
|
|
10
11
|
} = params;
|
|
11
|
-
const fieldGraphQLPlugins =
|
|
12
|
+
const fieldGraphQLPlugins = fieldRegistry.getAll();
|
|
12
13
|
const fieldConverterPlugins = plugins.byType(CmsModelFieldConverterPlugin.type);
|
|
13
14
|
const defaultFieldConverterPlugin = fieldConverterPlugins.find(pl => pl.getFieldType() === "*");
|
|
14
15
|
if (defaultFieldConverterPlugin === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","Converter","CmsModelFieldConverterPlugin","getBaseFieldType","ConverterCollection","converters","Map","constructor","params","plugins","fieldGraphQLPlugins","
|
|
1
|
+
{"version":3,"names":["WebinyError","Converter","CmsModelFieldConverterPlugin","getBaseFieldType","ConverterCollection","converters","Map","constructor","params","plugins","fieldRegistry","fieldGraphQLPlugins","getAll","fieldConverterPlugins","byType","type","defaultFieldConverterPlugin","find","pl","getFieldType","undefined","fieldGraphQLPlugin","plugin","fieldType","converter","addConverter","setConverterCollection","set","getType","getConverter","baseType","get","convertToStorage","fields","values","inputValues","attachHasOwnProperty","reduce","output","field","hasOwnProperty","fieldId","value","convertFromStorage","storageId","Array","isArray","Object","defineProperty","enumerable","writable","property"],"sources":["ConverterCollection.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Converter } from \"./Converter.js\";\nimport type { CmsEntryValues, CmsModelField } from \"~/types/index.js\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins/index.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\nexport interface CmsModelFieldsWithParent extends CmsModelField {\n parent?: CmsModelField | null;\n}\n\nexport interface CmsModelConverterCallable<T extends CmsEntryValues = CmsEntryValues> {\n (params: ConverterCollectionConvertParams<T>): T;\n}\n\nexport interface ConverterCollectionConvertParams<T extends CmsEntryValues = CmsEntryValues> {\n fields: CmsModelFieldsWithParent[];\n values?: T;\n}\n\nexport interface ConverterCollectionParams {\n plugins: PluginsContainer;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport class ConverterCollection {\n private readonly converters: Map<string, Converter> = new Map();\n\n public constructor(params: ConverterCollectionParams) {\n const { plugins, fieldRegistry } = params;\n const fieldGraphQLPlugins = fieldRegistry.getAll();\n const fieldConverterPlugins = plugins.byType<CmsModelFieldConverterPlugin>(\n CmsModelFieldConverterPlugin.type\n );\n const defaultFieldConverterPlugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === \"*\"\n );\n if (defaultFieldConverterPlugin === undefined) {\n throw new WebinyError(\n `Missing default field converter plugin.`,\n \"DEFAULT_FIELD_CONVERTER_ERROR\"\n );\n }\n for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {\n const plugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType\n );\n const converter = new Converter({\n type: fieldGraphQLPlugin.fieldType,\n plugin: plugin || defaultFieldConverterPlugin\n });\n\n this.addConverter(converter);\n }\n }\n\n public addConverter(converter: Converter): void {\n converter.setConverterCollection(this);\n this.converters.set(converter.getType(), converter);\n }\n\n public getConverter(type: string): Converter {\n const baseType = getBaseFieldType({ type });\n const converter = this.converters.get(baseType);\n if (converter === undefined) {\n throw new WebinyError(\n `Missing converter for field type \"${type}\".`,\n \"CONVERTER_ERROR\",\n {\n type\n }\n );\n }\n return converter;\n }\n\n public convertToStorage<T extends CmsEntryValues = CmsEntryValues>(\n params: ConverterCollectionConvertParams<T>\n ): T | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n this.attachHasOwnProperty<T>(inputValues);\n\n return fields.reduce<T>((output, field) => {\n const converter = this.getConverter(field.type);\n if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {\n return output;\n }\n const values = converter.convertToStorage({\n field,\n value: inputValues[field.fieldId as keyof T]\n });\n\n return {\n ...output,\n ...values\n };\n }, {} as T);\n }\n\n public convertFromStorage<T extends CmsEntryValues = CmsEntryValues>(\n params: ConverterCollectionConvertParams<T>\n ): T | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n return fields.reduce<T>((output, field) => {\n const converter = this.getConverter(field.type);\n if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {\n return output;\n }\n const values = converter.convertFromStorage({\n field,\n value: inputValues[field.storageId as keyof T]\n });\n\n return {\n ...output,\n ...values\n };\n }, {} as T);\n }\n\n /**\n * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.\n * At that point, hasOwnProperty does not exist, and we need to add it.\n *\n * TODO add more checks if required\n */\n private attachHasOwnProperty<T extends CmsEntryValues = CmsEntryValues>(values: T) {\n if (\n // null or undefined?\n values === null ||\n values === undefined ||\n // not an object?\n typeof values !== \"object\" ||\n // maybe it's an array?\n Array.isArray(values) ||\n // and in the end, check if hasOwnProperty is a function already\n typeof values?.hasOwnProperty === \"function\"\n ) {\n return;\n }\n Object.defineProperty(values, \"hasOwnProperty\", {\n enumerable: false,\n writable: false,\n value: function (property: string) {\n return this[property] !== undefined;\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { PluginsContainer } from "@webiny/plugins";
|
|
2
2
|
import type { CmsModelConverterCallable } from "./ConverterCollection.js";
|
|
3
3
|
import type { CmsEntryValues, CmsModel } from "../../types/index.js";
|
|
4
|
+
import type { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
|
|
4
5
|
interface Params {
|
|
5
6
|
model: Pick<CmsModel, "fields">;
|
|
6
7
|
plugins: PluginsContainer;
|
|
8
|
+
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
|
|
7
9
|
}
|
|
8
10
|
export declare const createValueKeyFromStorageConverter: <T extends CmsEntryValues = CmsEntryValues>(params: Params) => CmsModelConverterCallable<T>;
|
|
9
11
|
export {};
|
|
@@ -2,10 +2,12 @@ import { ConverterCollection } from "./ConverterCollection.js";
|
|
|
2
2
|
export const createValueKeyFromStorageConverter = params => {
|
|
3
3
|
const {
|
|
4
4
|
plugins,
|
|
5
|
-
model
|
|
5
|
+
model,
|
|
6
|
+
fieldRegistry
|
|
6
7
|
} = params;
|
|
7
8
|
const converters = new ConverterCollection({
|
|
8
|
-
plugins
|
|
9
|
+
plugins,
|
|
10
|
+
fieldRegistry
|
|
9
11
|
});
|
|
10
12
|
return ({
|
|
11
13
|
fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConverterCollection","createValueKeyFromStorageConverter","params","plugins","model","converters","fields","values","result","convertFromStorage"],"sources":["valueKeyFromStorageConverter.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type { CmsModelConverterCallable } from \"./ConverterCollection.js\";\nimport { ConverterCollection } from \"./ConverterCollection.js\";\nimport type { CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport type { ConverterCollectionConvertParams } from \"./types.js\";\n\ninterface Params {\n model: Pick<CmsModel, \"fields\">;\n plugins: PluginsContainer;\n}\n\nexport const createValueKeyFromStorageConverter = <T extends CmsEntryValues = CmsEntryValues>(\n params: Params\n): CmsModelConverterCallable<T> => {\n const { plugins, model } = params;\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return <T extends CmsEntryValues = CmsEntryValues>({\n fields,\n values\n }: ConverterCollectionConvertParams<T>) => {\n const result = converters.convertFromStorage<T>({\n fields: fields || model.fields,\n values\n });\n return result || ({} as T);\n };\n};\n"],"mappings":"AAEA,SAASA,mBAAmB;
|
|
1
|
+
{"version":3,"names":["ConverterCollection","createValueKeyFromStorageConverter","params","plugins","model","fieldRegistry","converters","fields","values","result","convertFromStorage"],"sources":["valueKeyFromStorageConverter.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type { CmsModelConverterCallable } from \"./ConverterCollection.js\";\nimport { ConverterCollection } from \"./ConverterCollection.js\";\nimport type { CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport type { ConverterCollectionConvertParams } from \"./types.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\ninterface Params {\n model: Pick<CmsModel, \"fields\">;\n plugins: PluginsContainer;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport const createValueKeyFromStorageConverter = <T extends CmsEntryValues = CmsEntryValues>(\n params: Params\n): CmsModelConverterCallable<T> => {\n const { plugins, model, fieldRegistry } = params;\n\n const converters = new ConverterCollection({\n plugins,\n fieldRegistry\n });\n\n return <T extends CmsEntryValues = CmsEntryValues>({\n fields,\n values\n }: ConverterCollectionConvertParams<T>) => {\n const result = converters.convertFromStorage<T>({\n fields: fields || model.fields,\n values\n });\n return result || ({} as T);\n };\n};\n"],"mappings":"AAEA,SAASA,mBAAmB;AAW5B,OAAO,MAAMC,kCAAkC,GAC3CC,MAAc,IACiB;EAC/B,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAc,CAAC,GAAGH,MAAM;EAEhD,MAAMI,UAAU,GAAG,IAAIN,mBAAmB,CAAC;IACvCG,OAAO;IACPE;EACJ,CAAC,CAAC;EAEF,OAAO,CAA4C;IAC/CE,MAAM;IACNC;EACiC,CAAC,KAAK;IACvC,MAAMC,MAAM,GAAGH,UAAU,CAACI,kBAAkB,CAAI;MAC5CH,MAAM,EAAEA,MAAM,IAAIH,KAAK,CAACG,MAAM;MAC9BC;IACJ,CAAC,CAAC;IACF,OAAOC,MAAM,IAAK,CAAC,CAAO;EAC9B,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare const createCmsModelFieldConvertersAttachFactory: (plugins: PluginsContainer) => <T extends CmsEntryValues = CmsEntryValues>(model: StorageOperationsCmsModel | CmsModel) => StorageOperationsCmsModel<T>;
|
|
1
|
+
import type { CmsContext, CmsEntryValues, CmsModel, StorageOperationsCmsModel } from "../../types/index.js";
|
|
2
|
+
export declare const createCmsModelFieldConvertersAttachFactory: (context: CmsContext) => <T extends CmsEntryValues = CmsEntryValues>(model: StorageOperationsCmsModel | CmsModel) => StorageOperationsCmsModel<T>;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { createValueKeyToStorageConverter } from "./valueKeyToStorageConverter.js";
|
|
2
2
|
import { createValueKeyFromStorageConverter } from "./valueKeyFromStorageConverter.js";
|
|
3
|
-
|
|
3
|
+
import { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
|
|
4
|
+
export const createCmsModelFieldConvertersAttachFactory = context => {
|
|
4
5
|
return model => {
|
|
5
6
|
const storageModel = model;
|
|
6
7
|
if (!!storageModel.convertValueKeyToStorage && !!storageModel.convertValueKeyFromStorage) {
|
|
7
8
|
return storageModel;
|
|
8
9
|
}
|
|
10
|
+
const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
9
11
|
return {
|
|
10
12
|
...model,
|
|
11
13
|
convertValueKeyToStorage: createValueKeyToStorageConverter({
|
|
12
14
|
model,
|
|
13
|
-
plugins
|
|
15
|
+
plugins: context.plugins,
|
|
16
|
+
fieldRegistry
|
|
14
17
|
}),
|
|
15
18
|
convertValueKeyFromStorage: createValueKeyFromStorageConverter({
|
|
16
19
|
model,
|
|
17
|
-
plugins
|
|
20
|
+
plugins: context.plugins,
|
|
21
|
+
fieldRegistry
|
|
18
22
|
})
|
|
19
23
|
};
|
|
20
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createValueKeyToStorageConverter","createValueKeyFromStorageConverter","createCmsModelFieldConvertersAttachFactory","
|
|
1
|
+
{"version":3,"names":["createValueKeyToStorageConverter","createValueKeyFromStorageConverter","CmsModelFieldToGraphQLRegistry","createCmsModelFieldConvertersAttachFactory","context","model","storageModel","convertValueKeyToStorage","convertValueKeyFromStorage","fieldRegistry","container","resolve","plugins"],"sources":["valueKeyStorageConverter.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsEntryValues,\n CmsModel,\n StorageOperationsCmsModel\n} from \"~/types/index.js\";\nimport { createValueKeyToStorageConverter } from \"./valueKeyToStorageConverter.js\";\nimport { createValueKeyFromStorageConverter } from \"./valueKeyFromStorageConverter.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\nexport const createCmsModelFieldConvertersAttachFactory = (context: CmsContext) => {\n return <T extends CmsEntryValues = CmsEntryValues>(\n model: StorageOperationsCmsModel | CmsModel\n ): StorageOperationsCmsModel<T> => {\n const storageModel = model as Partial<StorageOperationsCmsModel<T>>;\n if (!!storageModel.convertValueKeyToStorage && !!storageModel.convertValueKeyFromStorage) {\n return storageModel as StorageOperationsCmsModel<T>;\n }\n\n const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);\n return {\n ...model,\n convertValueKeyToStorage: createValueKeyToStorageConverter<T>({\n model,\n plugins: context.plugins,\n fieldRegistry\n }),\n convertValueKeyFromStorage: createValueKeyFromStorageConverter<T>({\n model,\n plugins: context.plugins,\n fieldRegistry\n })\n };\n };\n};\n"],"mappings":"AAMA,SAASA,gCAAgC;AACzC,SAASC,kCAAkC;AAC3C,SAASC,8BAA8B;AAEvC,OAAO,MAAMC,0CAA0C,GAAIC,OAAmB,IAAK;EAC/E,OACIC,KAA2C,IACZ;IAC/B,MAAMC,YAAY,GAAGD,KAA8C;IACnE,IAAI,CAAC,CAACC,YAAY,CAACC,wBAAwB,IAAI,CAAC,CAACD,YAAY,CAACE,0BAA0B,EAAE;MACtF,OAAOF,YAAY;IACvB;IAEA,MAAMG,aAAa,GAAGL,OAAO,CAACM,SAAS,CAACC,OAAO,CAACT,8BAA8B,CAAC;IAC/E,OAAO;MACH,GAAGG,KAAK;MACRE,wBAAwB,EAAEP,gCAAgC,CAAI;QAC1DK,KAAK;QACLO,OAAO,EAAER,OAAO,CAACQ,OAAO;QACxBH;MACJ,CAAC,CAAC;MACFD,0BAA0B,EAAEP,kCAAkC,CAAI;QAC9DI,KAAK;QACLO,OAAO,EAAER,OAAO,CAACQ,OAAO;QACxBH;MACJ,CAAC;IACL,CAAC;EACL,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { PluginsContainer } from "@webiny/plugins";
|
|
2
2
|
import type { CmsModelConverterCallable } from "./ConverterCollection.js";
|
|
3
3
|
import type { CmsEntryValues, CmsModel } from "../../types/index.js";
|
|
4
|
+
import type { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
|
|
4
5
|
interface Params {
|
|
5
6
|
model: Pick<CmsModel, "fields">;
|
|
6
7
|
plugins: PluginsContainer;
|
|
8
|
+
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
|
|
7
9
|
}
|
|
8
10
|
export declare const createValueKeyToStorageConverter: <T extends CmsEntryValues = CmsEntryValues>(params: Params) => CmsModelConverterCallable<T>;
|
|
9
11
|
export {};
|
|
@@ -2,10 +2,12 @@ import { ConverterCollection } from "./ConverterCollection.js";
|
|
|
2
2
|
export const createValueKeyToStorageConverter = params => {
|
|
3
3
|
const {
|
|
4
4
|
plugins,
|
|
5
|
-
model
|
|
5
|
+
model,
|
|
6
|
+
fieldRegistry
|
|
6
7
|
} = params;
|
|
7
8
|
const converters = new ConverterCollection({
|
|
8
|
-
plugins
|
|
9
|
+
plugins,
|
|
10
|
+
fieldRegistry
|
|
9
11
|
});
|
|
10
12
|
return ({
|
|
11
13
|
fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConverterCollection","createValueKeyToStorageConverter","params","plugins","model","converters","fields","values","result","convertToStorage"],"sources":["valueKeyToStorageConverter.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type { CmsModelConverterCallable } from \"./ConverterCollection.js\";\nimport { ConverterCollection } from \"./ConverterCollection.js\";\nimport type { CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport type { ConverterCollectionConvertParams } from \"./types.js\";\n\ninterface Params {\n model: Pick<CmsModel, \"fields\">;\n plugins: PluginsContainer;\n}\n\nexport const createValueKeyToStorageConverter = <T extends CmsEntryValues = CmsEntryValues>(\n params: Params\n): CmsModelConverterCallable<T> => {\n const { plugins, model } = params;\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return <T extends CmsEntryValues = CmsEntryValues>({\n fields,\n values\n }: ConverterCollectionConvertParams<T>) => {\n const result = converters.convertToStorage<T>({\n fields: fields || model.fields,\n values\n });\n return result || ({} as T);\n };\n};\n"],"mappings":"AAEA,SAASA,mBAAmB;
|
|
1
|
+
{"version":3,"names":["ConverterCollection","createValueKeyToStorageConverter","params","plugins","model","fieldRegistry","converters","fields","values","result","convertToStorage"],"sources":["valueKeyToStorageConverter.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type { CmsModelConverterCallable } from \"./ConverterCollection.js\";\nimport { ConverterCollection } from \"./ConverterCollection.js\";\nimport type { CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport type { ConverterCollectionConvertParams } from \"./types.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\ninterface Params {\n model: Pick<CmsModel, \"fields\">;\n plugins: PluginsContainer;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport const createValueKeyToStorageConverter = <T extends CmsEntryValues = CmsEntryValues>(\n params: Params\n): CmsModelConverterCallable<T> => {\n const { plugins, model, fieldRegistry } = params;\n\n const converters = new ConverterCollection({\n plugins,\n fieldRegistry\n });\n\n return <T extends CmsEntryValues = CmsEntryValues>({\n fields,\n values\n }: ConverterCollectionConvertParams<T>) => {\n const result = converters.convertToStorage<T>({\n fields: fields || model.fields,\n values\n });\n return result || ({} as T);\n };\n};\n"],"mappings":"AAEA,SAASA,mBAAmB;AAW5B,OAAO,MAAMC,gCAAgC,GACzCC,MAAc,IACiB;EAC/B,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAc,CAAC,GAAGH,MAAM;EAEhD,MAAMI,UAAU,GAAG,IAAIN,mBAAmB,CAAC;IACvCG,OAAO;IACPE;EACJ,CAAC,CAAC;EAEF,OAAO,CAA4C;IAC/CE,MAAM;IACNC;EACiC,CAAC,KAAK;IACvC,MAAMC,MAAM,GAAGH,UAAU,CAACI,gBAAgB,CAAI;MAC1CH,MAAM,EAAEA,MAAM,IAAIH,KAAK,CAACG,MAAM;MAC9BC;IACJ,CAAC,CAAC;IACF,OAAOC,MAAM,IAAK,CAAC,CAAO;EAC9B,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ApiEndpoint,
|
|
1
|
+
import type { ApiEndpoint, CmsModel, CmsModelField } from "../types/index.js";
|
|
2
|
+
import type { CmsModelFieldToGraphQLRegistry } from "../features/graphql/index.js";
|
|
2
3
|
interface TypeFromFieldParams {
|
|
3
4
|
typeOfType: "type" | "input";
|
|
4
5
|
models: CmsModel[];
|
|
@@ -6,7 +7,7 @@ interface TypeFromFieldParams {
|
|
|
6
7
|
type: ApiEndpoint;
|
|
7
8
|
typeNamePrefix: string;
|
|
8
9
|
fields: CmsModelField[];
|
|
9
|
-
|
|
10
|
+
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
|
|
10
11
|
}
|
|
11
12
|
interface TypeFromFieldResponse {
|
|
12
13
|
fieldType: string;
|
|
@@ -8,7 +8,7 @@ export const createTypeFromFields = params => {
|
|
|
8
8
|
type,
|
|
9
9
|
typeNamePrefix,
|
|
10
10
|
fields,
|
|
11
|
-
|
|
11
|
+
fieldRegistry
|
|
12
12
|
} = params;
|
|
13
13
|
const typeSuffix = typeOfType === "input" ? "Input" : "";
|
|
14
14
|
const mTypeName = model.singularApiName;
|
|
@@ -27,12 +27,12 @@ export const createTypeFromFields = params => {
|
|
|
27
27
|
type,
|
|
28
28
|
models,
|
|
29
29
|
model,
|
|
30
|
-
|
|
30
|
+
fieldRegistry
|
|
31
31
|
}) : renderInputField({
|
|
32
32
|
field,
|
|
33
33
|
models,
|
|
34
34
|
model,
|
|
35
|
-
|
|
35
|
+
fieldRegistry
|
|
36
36
|
});
|
|
37
37
|
if (!result) {
|
|
38
38
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["renderField","renderInputField","createTypeFromFields","params","typeOfType","model","models","type","typeNamePrefix","fields","
|
|
1
|
+
{"version":3,"names":["renderField","renderInputField","createTypeFromFields","params","typeOfType","model","models","type","typeNamePrefix","fields","fieldRegistry","typeSuffix","mTypeName","singularApiName","typeFields","nestedTypes","replace","RegExp","field","result","typeDefs","push","length","fieldType","join"],"sources":["createTypeFromFields.ts"],"sourcesContent":["import { renderField } from \"~/utils/renderFields.js\";\nimport { renderInputField } from \"~/utils/renderInputFields.js\";\nimport type { ApiEndpoint, CmsModel, CmsModelField } from \"~/types/index.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\n\ninterface TypeFromFieldParams {\n typeOfType: \"type\" | \"input\";\n models: CmsModel[];\n model: CmsModel;\n type: ApiEndpoint;\n typeNamePrefix: string;\n fields: CmsModelField[];\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\ninterface TypeFromFieldResponse {\n fieldType: string;\n typeDefs: string;\n}\n\nexport const createTypeFromFields = (params: TypeFromFieldParams): TypeFromFieldResponse | null => {\n const { typeOfType, model, models, type, typeNamePrefix, fields, fieldRegistry } = params;\n const typeSuffix = typeOfType === \"input\" ? \"Input\" : \"\";\n const mTypeName = model.singularApiName;\n\n const typeFields: string[] = [];\n const nestedTypes: string[] = [];\n\n // Once the loop below starts, we'll be executing a recursive \"object\" type generation.\n // The main trick here is that nested objects don't know who the parent is, and will generate\n // type names using the \"model\", as if they're at the top level:\n // Every time the types are returned, we need to replace the model name in the generated type name\n // with the actual prefix which includes parent field name type.\n const replace = new RegExp(`${mTypeName}_`, \"g\");\n\n for (const field of fields) {\n const result =\n typeOfType === \"type\"\n ? renderField({ field, type, models, model, fieldRegistry })\n : renderInputField({ field, models, model, fieldRegistry });\n\n if (!result) {\n continue;\n }\n\n const { fields, typeDefs } = result;\n\n typeFields.push(fields.replace(replace, `${typeNamePrefix}_`));\n if (typeDefs) {\n nestedTypes.push(typeDefs.replace(replace, `${typeNamePrefix}_`));\n }\n }\n\n if (!typeFields.length) {\n typeFields.push(\"_empty: String\");\n }\n\n return {\n fieldType: `${typeNamePrefix}${typeSuffix}`,\n typeDefs: /* GraphQL */ `\n ${nestedTypes.join(\"\\n\")}\n\n ${typeOfType} ${typeNamePrefix}${typeSuffix} {\n ${typeFields.join(\"\\n\")}\n }\\n\n `\n };\n};\n"],"mappings":"AAAA,SAASA,WAAW;AACpB,SAASC,gBAAgB;AAmBzB,OAAO,MAAMC,oBAAoB,GAAIC,MAA2B,IAAmC;EAC/F,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAEC,MAAM;IAAEC,IAAI;IAAEC,cAAc;IAAEC,MAAM;IAAEC;EAAc,CAAC,GAAGP,MAAM;EACzF,MAAMQ,UAAU,GAAGP,UAAU,KAAK,OAAO,GAAG,OAAO,GAAG,EAAE;EACxD,MAAMQ,SAAS,GAAGP,KAAK,CAACQ,eAAe;EAEvC,MAAMC,UAAoB,GAAG,EAAE;EAC/B,MAAMC,WAAqB,GAAG,EAAE;;EAEhC;EACA;EACA;EACA;EACA;EACA,MAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,GAAGL,SAAS,GAAG,EAAE,GAAG,CAAC;EAEhD,KAAK,MAAMM,KAAK,IAAIT,MAAM,EAAE;IACxB,MAAMU,MAAM,GACRf,UAAU,KAAK,MAAM,GACfJ,WAAW,CAAC;MAAEkB,KAAK;MAAEX,IAAI;MAAED,MAAM;MAAED,KAAK;MAAEK;IAAc,CAAC,CAAC,GAC1DT,gBAAgB,CAAC;MAAEiB,KAAK;MAAEZ,MAAM;MAAED,KAAK;MAAEK;IAAc,CAAC,CAAC;IAEnE,IAAI,CAACS,MAAM,EAAE;MACT;IACJ;IAEA,MAAM;MAAEV,MAAM;MAAEW;IAAS,CAAC,GAAGD,MAAM;IAEnCL,UAAU,CAACO,IAAI,CAACZ,MAAM,CAACO,OAAO,CAACA,OAAO,EAAE,GAAGR,cAAc,GAAG,CAAC,CAAC;IAC9D,IAAIY,QAAQ,EAAE;MACVL,WAAW,CAACM,IAAI,CAACD,QAAQ,CAACJ,OAAO,CAACA,OAAO,EAAE,GAAGR,cAAc,GAAG,CAAC,CAAC;IACrE;EACJ;EAEA,IAAI,CAACM,UAAU,CAACQ,MAAM,EAAE;IACpBR,UAAU,CAACO,IAAI,CAAC,gBAAgB,CAAC;EACrC;EAEA,OAAO;IACHE,SAAS,EAAE,GAAGf,cAAc,GAAGG,UAAU,EAAE;IAC3CS,QAAQ,EAAE,aAAc;AAChC,cAAcL,WAAW,CAACS,IAAI,CAAC,IAAI,CAAC;AACpC;AACA,cAAcpB,UAAU,IAAII,cAAc,GAAGG,UAAU;AACvD,kBAAkBG,UAAU,CAACU,IAAI,CAAC,IAAI,CAAC;AACvC;AACA;EACI,CAAC;AACL,CAAC","ignoreList":[]}
|
package/utils/entryStorage.d.ts
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
export interface
|
|
4
|
-
(context: Pick<CmsContext, "
|
|
1
|
+
import type { CmsContext, CmsEntry, CmsModel, CmsModelField } from "../types/index.js";
|
|
2
|
+
import { StorageTransform } from "../features/storage/index.js";
|
|
3
|
+
export interface GetStorageTransformFactory {
|
|
4
|
+
(context: Pick<CmsContext, "container">): (fieldType: string) => StorageTransform.Interface;
|
|
5
5
|
}
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const getStorageTransformFactory: GetStorageTransformFactory;
|
|
7
7
|
/**
|
|
8
8
|
* A function that is used in crud to transform entry into the storage type.
|
|
9
9
|
*/
|
|
10
|
-
export declare const entryToStorageTransform: (context: Pick<CmsContext, "
|
|
10
|
+
export declare const entryToStorageTransform: (context: Pick<CmsContext, "container">, model: CmsModel, entry: CmsEntry) => Promise<CmsEntry>;
|
|
11
11
|
/**
|
|
12
12
|
* A function that is used to transform the whole entry from storage into its native form.
|
|
13
13
|
*/
|
|
14
|
-
export declare const entryFromStorageTransform: (context: Pick<CmsContext, "
|
|
14
|
+
export declare const entryFromStorageTransform: (context: Pick<CmsContext, "container">, model: CmsModel, entry: CmsEntry) => Promise<CmsEntry>;
|
|
15
15
|
interface EntryFieldFromStorageTransformParams {
|
|
16
|
-
context: Pick<CmsContext, "
|
|
16
|
+
context: Pick<CmsContext, "container">;
|
|
17
17
|
model: CmsModel;
|
|
18
18
|
field: CmsModelField;
|
|
19
19
|
value: any;
|
|
20
20
|
}
|
|
21
21
|
export declare const entryFieldFromStorageTransform: <T = any>(params: EntryFieldFromStorageTransformParams) => Promise<T>;
|
|
22
|
-
export interface ICreateTransformEntryCallable {
|
|
23
|
-
context: Pick<CmsContext, "plugins">;
|
|
24
|
-
}
|
|
25
|
-
export interface ITransformEntryCallable<T extends CmsEntryValues = CmsEntryValues> {
|
|
26
|
-
(model: CmsModel, entry: CmsEntry): Promise<CmsEntry<T>>;
|
|
27
|
-
}
|
|
28
|
-
export declare const createTransformEntryCallable: (params: ICreateTransformEntryCallable) => ITransformEntryCallable;
|
|
29
22
|
export {};
|
package/utils/entryStorage.js
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
import WebinyError from "@webiny/error";
|
|
2
|
-
import { StorageTransformPlugin } from "../plugins/StorageTransformPlugin.js";
|
|
3
1
|
import { getBaseFieldType } from "./getBaseFieldType.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
defaultStoragePlugin = plugin;
|
|
14
|
-
return collection;
|
|
2
|
+
import { StorageTransformRegistry } from "../features/storage/index.js";
|
|
3
|
+
export const getStorageTransformFactory = context => {
|
|
4
|
+
const registry = context.container.resolve(StorageTransformRegistry);
|
|
5
|
+
const result = {};
|
|
6
|
+
let defaultStorageTransform;
|
|
7
|
+
const storageTransforms = registry.getAll().toReversed();
|
|
8
|
+
for (const storageTransform of storageTransforms) {
|
|
9
|
+
if (storageTransform.fieldType === "*") {
|
|
10
|
+
defaultStorageTransform = storageTransform;
|
|
15
11
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
}, {});
|
|
24
|
-
return fieldType => {
|
|
25
|
-
return plugins[fieldType] || defaultStoragePlugin;
|
|
12
|
+
result[storageTransform.fieldType] = storageTransform;
|
|
13
|
+
}
|
|
14
|
+
return type => {
|
|
15
|
+
const fieldType = getBaseFieldType({
|
|
16
|
+
type
|
|
17
|
+
});
|
|
18
|
+
return result[fieldType] || defaultStorageTransform;
|
|
26
19
|
};
|
|
27
20
|
};
|
|
28
21
|
const doNotTouchProperty = Symbol("__DO_NOT_TOUCH_AS_WE_USE_IT_TO_SKIP_UNNECESSARY_OPERATIONS");
|
|
@@ -38,31 +31,24 @@ const entryStorageTransform = async (context, model, operation, entry) => {
|
|
|
38
31
|
if (entry[doNotTouchProperty] === operation) {
|
|
39
32
|
return entry;
|
|
40
33
|
}
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* We can safely skip fields that are not present in the entry values.
|
|
46
|
-
*/
|
|
47
|
-
if (entry.values.hasOwnProperty(field.fieldId) === false) {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
34
|
+
const getStorageTransform = getStorageTransformFactory(context);
|
|
35
|
+
const fieldValues = model.fields.filter(field => {
|
|
36
|
+
return entry.values.hasOwnProperty(field.fieldId);
|
|
37
|
+
}).map(async field => {
|
|
50
38
|
const key = field.fieldId;
|
|
51
39
|
const value = entry.values[key];
|
|
52
40
|
const baseType = getBaseFieldType(field);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
if (typeof plugin[operation] !== "function") {
|
|
56
|
-
throw new WebinyError(`Missing "${operation}" function in storage plugin "${plugin.name}" for field type "${baseType}"`);
|
|
57
|
-
}
|
|
58
|
-
transformedValues[key] = await plugin[operation]({
|
|
59
|
-
plugins: context.plugins,
|
|
41
|
+
const storageTransform = getStorageTransform(baseType);
|
|
42
|
+
const transformed = await storageTransform[operation]({
|
|
60
43
|
model,
|
|
61
44
|
field,
|
|
62
45
|
value,
|
|
63
|
-
|
|
46
|
+
getStorageTransform
|
|
64
47
|
});
|
|
65
|
-
|
|
48
|
+
return [key, transformed];
|
|
49
|
+
});
|
|
50
|
+
const results = await Promise.all(fieldValues);
|
|
51
|
+
const transformedValues = Object.fromEntries(results);
|
|
66
52
|
const result = {
|
|
67
53
|
...entry,
|
|
68
54
|
values: transformedValues
|
|
@@ -101,29 +87,15 @@ export const entryFieldFromStorageTransform = async params => {
|
|
|
101
87
|
field,
|
|
102
88
|
value
|
|
103
89
|
} = params;
|
|
104
|
-
const
|
|
90
|
+
const getStorageTransform = getStorageTransformFactory(context);
|
|
105
91
|
const baseType = getBaseFieldType(field);
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
// TODO: remove this once plugins are converted into classes
|
|
109
|
-
if (typeof plugin.fromStorage !== "function") {
|
|
110
|
-
throw new WebinyError(`Missing "fromStorage" function in storage plugin "${plugin.name}" for field type "${baseType}"`);
|
|
111
|
-
}
|
|
112
|
-
return plugin.fromStorage({
|
|
113
|
-
plugins: context.plugins,
|
|
92
|
+
const storageTransform = getStorageTransform(baseType);
|
|
93
|
+
return storageTransform.fromStorage({
|
|
114
94
|
model,
|
|
115
95
|
field,
|
|
116
96
|
value,
|
|
117
|
-
|
|
97
|
+
getStorageTransform
|
|
118
98
|
});
|
|
119
99
|
};
|
|
120
|
-
export const createTransformEntryCallable = params => {
|
|
121
|
-
const {
|
|
122
|
-
context
|
|
123
|
-
} = params;
|
|
124
|
-
return async (model, entry) => {
|
|
125
|
-
return entryFromStorageTransform(context, model, entry);
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
100
|
|
|
129
101
|
//# sourceMappingURL=entryStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getBaseFieldType","StorageTransformRegistry","getStorageTransformFactory","context","registry","container","resolve","result","defaultStorageTransform","storageTransforms","getAll","toReversed","storageTransform","fieldType","type","doNotTouchProperty","Symbol","entryStorageTransform","model","operation","entry","getStorageTransform","fieldValues","fields","filter","field","values","hasOwnProperty","fieldId","map","key","value","baseType","transformed","results","Promise","all","transformedValues","Object","fromEntries","defineProperty","enumerable","configurable","entryToStorageTransform","entryFromStorageTransform","entryFieldFromStorageTransform","params","fromStorage"],"sources":["entryStorage.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsModelField\n} from \"~/types/index.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { StorageTransform, StorageTransformRegistry } from \"~/features/storage/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface GetStorageTransformFactory {\n (context: Pick<CmsContext, \"container\">): (fieldType: string) => StorageTransform.Interface;\n}\n\nexport const getStorageTransformFactory: GetStorageTransformFactory = context => {\n const registry = context.container.resolve(StorageTransformRegistry);\n\n const result: GenericRecord<string, StorageTransform.Interface> = {};\n let defaultStorageTransform: StorageTransform.Interface;\n\n const storageTransforms = registry.getAll().toReversed();\n\n for (const storageTransform of storageTransforms) {\n if (storageTransform.fieldType === \"*\") {\n defaultStorageTransform = storageTransform;\n }\n result[storageTransform.fieldType] = storageTransform;\n }\n\n return (type: string) => {\n const fieldType = getBaseFieldType({\n type\n });\n return result[fieldType] || defaultStorageTransform;\n };\n};\n\nconst doNotTouchProperty = Symbol(\"__DO_NOT_TOUCH_AS_WE_USE_IT_TO_SKIP_UNNECESSARY_OPERATIONS\");\n\n/**\n * This should be used when transforming the whole entry.\n */\nconst entryStorageTransform = async <T extends CmsEntryValues = CmsEntryValues>(\n context: Pick<CmsContext, \"container\">,\n model: CmsModel,\n operation: \"toStorage\" | \"fromStorage\",\n entry: CmsEntry<T>\n): Promise<CmsEntry<T>> => {\n /**\n * We use this property to skip unnecessary operations.\n */\n // @ts-expect-error\n if (entry[doNotTouchProperty] === operation) {\n return entry;\n }\n\n const getStorageTransform = getStorageTransformFactory(context);\n\n const fieldValues = model.fields\n .filter(field => {\n return entry.values.hasOwnProperty(field.fieldId);\n })\n .map(async field => {\n const key = field.fieldId as keyof T;\n const value = entry.values[key];\n const baseType = getBaseFieldType(field);\n const storageTransform = getStorageTransform(baseType);\n const transformed = await storageTransform[operation]({\n model,\n field,\n value,\n getStorageTransform\n });\n return [key, transformed] as const;\n });\n\n const results = await Promise.all(fieldValues);\n const transformedValues = Object.fromEntries(results) as T;\n\n const result = {\n ...entry,\n values: transformedValues\n };\n /**\n * We need to assign the variable so that we can skip unnecessary operations next time.\n */\n Object.defineProperty(result, doNotTouchProperty, {\n enumerable: false,\n value: operation,\n configurable: true\n });\n\n return result;\n};\n\n/**\n * A function that is used in crud to transform entry into the storage type.\n */\nexport const entryToStorageTransform = async (\n context: Pick<CmsContext, \"container\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"toStorage\", entry);\n};\n\n/**\n * A function that is used to transform the whole entry from storage into its native form.\n */\nexport const entryFromStorageTransform = async (\n context: Pick<CmsContext, \"container\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"fromStorage\", entry);\n};\n\ninterface EntryFieldFromStorageTransformParams {\n context: Pick<CmsContext, \"container\">;\n model: CmsModel;\n field: CmsModelField;\n value: any;\n}\n/*\n * A function that is used to transform a single field from storage\n */\nexport const entryFieldFromStorageTransform = async <T = any>(\n params: EntryFieldFromStorageTransformParams\n): Promise<T> => {\n const { context, model, field, value } = params;\n const getStorageTransform = getStorageTransformFactory(context);\n\n const baseType = getBaseFieldType(field);\n const storageTransform = getStorageTransform(baseType);\n\n return storageTransform.fromStorage({\n model,\n field,\n value,\n getStorageTransform\n });\n};\n"],"mappings":"AAOA,SAASA,gBAAgB;AACzB,SAA2BC,wBAAwB;AAOnD,OAAO,MAAMC,0BAAsD,GAAGC,OAAO,IAAI;EAC7E,MAAMC,QAAQ,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACL,wBAAwB,CAAC;EAEpE,MAAMM,MAAyD,GAAG,CAAC,CAAC;EACpE,IAAIC,uBAAmD;EAEvD,MAAMC,iBAAiB,GAAGL,QAAQ,CAACM,MAAM,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAExD,KAAK,MAAMC,gBAAgB,IAAIH,iBAAiB,EAAE;IAC9C,IAAIG,gBAAgB,CAACC,SAAS,KAAK,GAAG,EAAE;MACpCL,uBAAuB,GAAGI,gBAAgB;IAC9C;IACAL,MAAM,CAACK,gBAAgB,CAACC,SAAS,CAAC,GAAGD,gBAAgB;EACzD;EAEA,OAAQE,IAAY,IAAK;IACrB,MAAMD,SAAS,GAAGb,gBAAgB,CAAC;MAC/Bc;IACJ,CAAC,CAAC;IACF,OAAOP,MAAM,CAACM,SAAS,CAAC,IAAIL,uBAAuB;EACvD,CAAC;AACL,CAAC;AAED,MAAMO,kBAAkB,GAAGC,MAAM,CAAC,4DAA4D,CAAC;;AAE/F;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,MAAAA,CAC1Bd,OAAsC,EACtCe,KAAe,EACfC,SAAsC,EACtCC,KAAkB,KACK;EACvB;AACJ;AACA;EACI;EACA,IAAIA,KAAK,CAACL,kBAAkB,CAAC,KAAKI,SAAS,EAAE;IACzC,OAAOC,KAAK;EAChB;EAEA,MAAMC,mBAAmB,GAAGnB,0BAA0B,CAACC,OAAO,CAAC;EAE/D,MAAMmB,WAAW,GAAGJ,KAAK,CAACK,MAAM,CAC3BC,MAAM,CAACC,KAAK,IAAI;IACb,OAAOL,KAAK,CAACM,MAAM,CAACC,cAAc,CAACF,KAAK,CAACG,OAAO,CAAC;EACrD,CAAC,CAAC,CACDC,GAAG,CAAC,MAAMJ,KAAK,IAAI;IAChB,MAAMK,GAAG,GAAGL,KAAK,CAACG,OAAkB;IACpC,MAAMG,KAAK,GAAGX,KAAK,CAACM,MAAM,CAACI,GAAG,CAAC;IAC/B,MAAME,QAAQ,GAAGhC,gBAAgB,CAACyB,KAAK,CAAC;IACxC,MAAMb,gBAAgB,GAAGS,mBAAmB,CAACW,QAAQ,CAAC;IACtD,MAAMC,WAAW,GAAG,MAAMrB,gBAAgB,CAACO,SAAS,CAAC,CAAC;MAClDD,KAAK;MACLO,KAAK;MACLM,KAAK;MACLV;IACJ,CAAC,CAAC;IACF,OAAO,CAACS,GAAG,EAAEG,WAAW,CAAC;EAC7B,CAAC,CAAC;EAEN,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACd,WAAW,CAAC;EAC9C,MAAMe,iBAAiB,GAAGC,MAAM,CAACC,WAAW,CAACL,OAAO,CAAM;EAE1D,MAAM3B,MAAM,GAAG;IACX,GAAGa,KAAK;IACRM,MAAM,EAAEW;EACZ,CAAC;EACD;AACJ;AACA;EACIC,MAAM,CAACE,cAAc,CAACjC,MAAM,EAAEQ,kBAAkB,EAAE;IAC9C0B,UAAU,EAAE,KAAK;IACjBV,KAAK,EAAEZ,SAAS;IAChBuB,YAAY,EAAE;EAClB,CAAC,CAAC;EAEF,OAAOnC,MAAM;AACjB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMoC,uBAAuB,GAAG,MAAAA,CACnCxC,OAAsC,EACtCe,KAAe,EACfE,KAAe,KACK;EACpB,OAAOH,qBAAqB,CAACd,OAAO,EAAEe,KAAK,EAAE,WAAW,EAAEE,KAAK,CAAC;AACpE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMwB,yBAAyB,GAAG,MAAAA,CACrCzC,OAAsC,EACtCe,KAAe,EACfE,KAAe,KACK;EACpB,OAAOH,qBAAqB,CAACd,OAAO,EAAEe,KAAK,EAAE,aAAa,EAAEE,KAAK,CAAC;AACtE,CAAC;AAQD;AACA;AACA;AACA,OAAO,MAAMyB,8BAA8B,GAAG,MAC1CC,MAA4C,IAC/B;EACb,MAAM;IAAE3C,OAAO;IAAEe,KAAK;IAAEO,KAAK;IAAEM;EAAM,CAAC,GAAGe,MAAM;EAC/C,MAAMzB,mBAAmB,GAAGnB,0BAA0B,CAACC,OAAO,CAAC;EAE/D,MAAM6B,QAAQ,GAAGhC,gBAAgB,CAACyB,KAAK,CAAC;EACxC,MAAMb,gBAAgB,GAAGS,mBAAmB,CAACW,QAAQ,CAAC;EAEtD,OAAOpB,gBAAgB,CAACmC,WAAW,CAAC;IAChC7B,KAAK;IACLO,KAAK;IACLM,KAAK;IACLV;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBaseFieldType","field","type","split"],"sources":["getBaseFieldType.ts"],"sourcesContent":["import type { CmsModelField } from \"~/types/index.js\";\n\nexport const getBaseFieldType = (field: Pick<CmsModelField, \"type\">) => {\n return field.type.split(\":\")[0];\n};\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,GAAIC,KAAkC,IAAK;EACpE,
|
|
1
|
+
{"version":3,"names":["getBaseFieldType","field","type","includes","split"],"sources":["getBaseFieldType.ts"],"sourcesContent":["import type { CmsModelField } from \"~/types/index.js\";\n\nexport const getBaseFieldType = (field: Pick<CmsModelField, \"type\">) => {\n if (field.type.includes(\":\") === false) {\n return field.type;\n }\n return field.type.split(\":\")[0];\n};\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,GAAIC,KAAkC,IAAK;EACpE,IAAIA,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;IACpC,OAAOF,KAAK,CAACC,IAAI;EACrB;EACA,OAAOD,KAAK,CAACC,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC","ignoreList":[]}
|