@webiny/api-headless-cms 0.0.0-ee-vpcs.549378cf03
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/LICENSE +21 -0
- package/README.md +73 -0
- package/context.d.ts +3 -0
- package/context.js +60 -0
- package/context.js.map +1 -0
- package/crud/contentEntry/afterDelete.d.ts +8 -0
- package/crud/contentEntry/afterDelete.js +41 -0
- package/crud/contentEntry/afterDelete.js.map +1 -0
- package/crud/contentEntry/beforeCreate.d.ts +8 -0
- package/crud/contentEntry/beforeCreate.js +28 -0
- package/crud/contentEntry/beforeCreate.js.map +1 -0
- package/crud/contentEntry/beforeUpdate.d.ts +8 -0
- package/crud/contentEntry/beforeUpdate.js +28 -0
- package/crud/contentEntry/beforeUpdate.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +10 -0
- package/crud/contentEntry/entryDataValidation.js +200 -0
- package/crud/contentEntry/entryDataValidation.js.map +1 -0
- package/crud/contentEntry/markLockedFields.d.ts +13 -0
- package/crud/contentEntry/markLockedFields.js +116 -0
- package/crud/contentEntry/markLockedFields.js.map +1 -0
- package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
- package/crud/contentEntry/referenceFieldsMapping.js +292 -0
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +83 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +13 -0
- package/crud/contentEntry.crud.js +1277 -0
- package/crud/contentEntry.crud.js.map +1 -0
- package/crud/contentModel/afterCreate.d.ts +8 -0
- package/crud/contentModel/afterCreate.js +18 -0
- package/crud/contentModel/afterCreate.js.map +1 -0
- package/crud/contentModel/afterCreateFrom.d.ts +8 -0
- package/crud/contentModel/afterCreateFrom.js +18 -0
- package/crud/contentModel/afterCreateFrom.js.map +1 -0
- package/crud/contentModel/afterDelete.d.ts +8 -0
- package/crud/contentModel/afterDelete.js +18 -0
- package/crud/contentModel/afterDelete.js.map +1 -0
- package/crud/contentModel/afterUpdate.d.ts +8 -0
- package/crud/contentModel/afterUpdate.js +18 -0
- package/crud/contentModel/afterUpdate.js.map +1 -0
- package/crud/contentModel/beforeCreate.d.ts +15 -0
- package/crud/contentModel/beforeCreate.js +194 -0
- package/crud/contentModel/beforeCreate.js.map +1 -0
- package/crud/contentModel/beforeDelete.d.ts +10 -0
- package/crud/contentModel/beforeDelete.js +60 -0
- package/crud/contentModel/beforeDelete.js.map +1 -0
- package/crud/contentModel/beforeUpdate.d.ts +10 -0
- package/crud/contentModel/beforeUpdate.js +37 -0
- package/crud/contentModel/beforeUpdate.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
- package/crud/contentModel/contentModelManagerFactory.js +29 -0
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
- package/crud/contentModel/createFieldModels.d.ts +2 -0
- package/crud/contentModel/createFieldModels.js +26 -0
- package/crud/contentModel/createFieldModels.js.map +1 -0
- package/crud/contentModel/createFieldStorageId.d.ts +2 -0
- package/crud/contentModel/createFieldStorageId.js +20 -0
- package/crud/contentModel/createFieldStorageId.js.map +1 -0
- package/crud/contentModel/fieldIdValidation.d.ts +1 -0
- package/crud/contentModel/fieldIdValidation.js +25 -0
- package/crud/contentModel/fieldIdValidation.js.map +1 -0
- package/crud/contentModel/idValidation.d.ts +1 -0
- package/crud/contentModel/idValidation.js +22 -0
- package/crud/contentModel/idValidation.js.map +1 -0
- package/crud/contentModel/models.d.ts +4 -0
- package/crud/contentModel/models.js +192 -0
- package/crud/contentModel/models.js.map +1 -0
- package/crud/contentModel/systemFields.d.ts +1 -0
- package/crud/contentModel/systemFields.js +8 -0
- package/crud/contentModel/systemFields.js.map +1 -0
- package/crud/contentModel/validateLayout.d.ts +2 -0
- package/crud/contentModel/validateLayout.js +36 -0
- package/crud/contentModel/validateLayout.js.map +1 -0
- package/crud/contentModel/validateModel.d.ts +9 -0
- package/crud/contentModel/validateModel.js +32 -0
- package/crud/contentModel/validateModel.js.map +1 -0
- package/crud/contentModel/validateModelFields.d.ts +9 -0
- package/crud/contentModel/validateModelFields.js +371 -0
- package/crud/contentModel/validateModelFields.js.map +1 -0
- package/crud/contentModel.crud.d.ts +12 -0
- package/crud/contentModel.crud.js +650 -0
- package/crud/contentModel.crud.js.map +1 -0
- package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
- package/crud/contentModelGroup/beforeCreate.js +66 -0
- package/crud/contentModelGroup/beforeCreate.js.map +1 -0
- package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
- package/crud/contentModelGroup/beforeDelete.js +48 -0
- package/crud/contentModelGroup/beforeDelete.js.map +1 -0
- package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
- package/crud/contentModelGroup/beforeUpdate.js +28 -0
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
- package/crud/contentModelGroup.crud.d.ts +12 -0
- package/crud/contentModelGroup.crud.js +396 -0
- package/crud/contentModelGroup.crud.js.map +1 -0
- package/crud/index.d.ts +6 -0
- package/crud/index.js +85 -0
- package/crud/index.js.map +1 -0
- package/crud/settings.crud.d.ts +10 -0
- package/crud/settings.crud.js +83 -0
- package/crud/settings.crud.js.map +1 -0
- package/crud/system.crud.d.ts +13 -0
- package/crud/system.crud.js +221 -0
- package/crud/system.crud.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +304 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +4 -0
- package/fieldConverters/index.js +18 -0
- package/fieldConverters/index.js.map +1 -0
- package/graphql/buildSchemaPlugins.d.ts +6 -0
- package/graphql/buildSchemaPlugins.js +27 -0
- package/graphql/buildSchemaPlugins.js.map +1 -0
- package/graphql/graphQLHandlerFactory.d.ts +5 -0
- package/graphql/graphQLHandlerFactory.js +202 -0
- package/graphql/graphQLHandlerFactory.js.map +1 -0
- package/graphql/index.d.ts +5 -0
- package/graphql/index.js +57 -0
- package/graphql/index.js.map +1 -0
- package/graphql/schema/baseContentSchema.d.ts +3 -0
- package/graphql/schema/baseContentSchema.js +76 -0
- package/graphql/schema/baseContentSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +3 -0
- package/graphql/schema/contentEntries.js +351 -0
- package/graphql/schema/contentEntries.js.map +1 -0
- package/graphql/schema/contentModelGroups.d.ts +3 -0
- package/graphql/schema/contentModelGroups.js +172 -0
- package/graphql/schema/contentModelGroups.js.map +1 -0
- package/graphql/schema/contentModels.d.ts +3 -0
- package/graphql/schema/contentModels.js +300 -0
- package/graphql/schema/contentModels.js.map +1 -0
- package/graphql/schema/createFieldResolvers.d.ts +20 -0
- package/graphql/schema/createFieldResolvers.js +121 -0
- package/graphql/schema/createFieldResolvers.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +12 -0
- package/graphql/schema/createManageResolvers.js +137 -0
- package/graphql/schema/createManageResolvers.js.map +1 -0
- package/graphql/schema/createManageSDL.d.ts +10 -0
- package/graphql/schema/createManageSDL.js +161 -0
- package/graphql/schema/createManageSDL.js.map +1 -0
- package/graphql/schema/createPreviewResolvers.d.ts +12 -0
- package/graphql/schema/createPreviewResolvers.js +58 -0
- package/graphql/schema/createPreviewResolvers.js.map +1 -0
- package/graphql/schema/createReadResolvers.d.ts +12 -0
- package/graphql/schema/createReadResolvers.js +58 -0
- package/graphql/schema/createReadResolvers.js.map +1 -0
- package/graphql/schema/createReadSDL.d.ts +10 -0
- package/graphql/schema/createReadSDL.js +104 -0
- package/graphql/schema/createReadSDL.js.map +1 -0
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js +14 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js +32 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGet.js +79 -0
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveList.js +21 -0
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +34 -0
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveList.js +21 -0
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveGet.js +34 -0
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveList.js +21 -0
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
- package/graphql/schema/schemaPlugins.d.ts +3 -0
- package/graphql/schema/schemaPlugins.js +111 -0
- package/graphql/schema/schemaPlugins.js.map +1 -0
- package/graphql/system.d.ts +6 -0
- package/graphql/system.js +119 -0
- package/graphql/system.js.map +1 -0
- package/graphqlFields/boolean.d.ts +2 -0
- package/graphqlFields/boolean.js +69 -0
- package/graphqlFields/boolean.js.map +1 -0
- package/graphqlFields/datetime.d.ts +2 -0
- package/graphqlFields/datetime.js +95 -0
- package/graphqlFields/datetime.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +21 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/file.d.ts +2 -0
- package/graphqlFields/file.js +50 -0
- package/graphqlFields/file.js.map +1 -0
- package/graphqlFields/helpers.d.ts +6 -0
- package/graphqlFields/helpers.js +49 -0
- package/graphqlFields/helpers.js.map +1 -0
- package/graphqlFields/index.d.ts +2 -0
- package/graphqlFields/index.js +30 -0
- package/graphqlFields/index.js.map +1 -0
- package/graphqlFields/longText.d.ts +2 -0
- package/graphqlFields/longText.js +63 -0
- package/graphqlFields/longText.js.map +1 -0
- package/graphqlFields/number.d.ts +2 -0
- package/graphqlFields/number.js +79 -0
- package/graphqlFields/number.js.map +1 -0
- package/graphqlFields/object.d.ts +2 -0
- package/graphqlFields/object.js +275 -0
- package/graphqlFields/object.js.map +1 -0
- package/graphqlFields/ref.d.ts +2 -0
- package/graphqlFields/ref.js +257 -0
- package/graphqlFields/ref.js.map +1 -0
- package/graphqlFields/richText.d.ts +2 -0
- package/graphqlFields/richText.js +56 -0
- package/graphqlFields/richText.js.map +1 -0
- package/graphqlFields/text.d.ts +2 -0
- package/graphqlFields/text.js +73 -0
- package/graphqlFields/text.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +111 -0
- package/index.js.map +1 -0
- package/modelManager/DefaultCmsModelManager.d.ts +14 -0
- package/modelManager/DefaultCmsModelManager.js +64 -0
- package/modelManager/DefaultCmsModelManager.js.map +1 -0
- package/modelManager/index.d.ts +2 -0
- package/modelManager/index.js +20 -0
- package/modelManager/index.js.map +1 -0
- package/package.json +81 -0
- package/parameters/context.d.ts +2 -0
- package/parameters/context.js +22 -0
- package/parameters/context.js.map +1 -0
- package/parameters/header.d.ts +2 -0
- package/parameters/header.js +55 -0
- package/parameters/header.js.map +1 -0
- package/parameters/index.d.ts +4 -0
- package/parameters/index.js +57 -0
- package/parameters/index.js.map +1 -0
- package/parameters/manual.d.ts +6 -0
- package/parameters/manual.js +44 -0
- package/parameters/manual.js.map +1 -0
- package/parameters/path.d.ts +2 -0
- package/parameters/path.js +51 -0
- package/parameters/path.js.map +1 -0
- package/plugins/CmsGroupPlugin.d.ts +13 -0
- package/plugins/CmsGroupPlugin.js +30 -0
- package/plugins/CmsGroupPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
- package/plugins/CmsModelFieldConverterPlugin.js +17 -0
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
- package/plugins/CmsModelPlugin.d.ts +45 -0
- package/plugins/CmsModelPlugin.js +194 -0
- package/plugins/CmsModelPlugin.js.map +1 -0
- package/plugins/CmsParametersPlugin.d.ts +20 -0
- package/plugins/CmsParametersPlugin.js +28 -0
- package/plugins/CmsParametersPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.d.ts +31 -0
- package/plugins/StorageTransformPlugin.js +37 -0
- package/plugins/StorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +5 -0
- package/plugins/index.js +70 -0
- package/plugins/index.js.map +1 -0
- package/storage/default.d.ts +2 -0
- package/storage/default.js +27 -0
- package/storage/default.js.map +1 -0
- package/storage/object.d.ts +2 -0
- package/storage/object.js +127 -0
- package/storage/object.js.map +1 -0
- package/types.d.ts +2600 -0
- package/types.js +459 -0
- package/types.js.map +1 -0
- package/upgrades/5.33.0/index.d.ts +3 -0
- package/upgrades/5.33.0/index.js +182 -0
- package/upgrades/5.33.0/index.js.map +1 -0
- package/upgrades/index.d.ts +1 -0
- package/upgrades/index.js +12 -0
- package/upgrades/index.js.map +1 -0
- package/utils/access.d.ts +8 -0
- package/utils/access.js +90 -0
- package/utils/access.js.map +1 -0
- package/utils/converters/Converter.d.ts +27 -0
- package/utils/converters/Converter.js +71 -0
- package/utils/converters/Converter.js.map +1 -0
- package/utils/converters/ConverterCollection.d.ts +31 -0
- package/utils/converters/ConverterCollection.js +143 -0
- package/utils/converters/ConverterCollection.js.map +1 -0
- package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
- package/utils/converters/valueKeyStorageConverter.js +148 -0
- package/utils/converters/valueKeyStorageConverter.js.map +1 -0
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +75 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.d.ts +3 -0
- package/utils/createTypeName.js +30 -0
- package/utils/createTypeName.js.map +1 -0
- package/utils/entryStorage.d.ts +17 -0
- package/utils/entryStorage.js +120 -0
- package/utils/entryStorage.js.map +1 -0
- package/utils/filterAsync.d.ts +1 -0
- package/utils/filterAsync.js +23 -0
- package/utils/filterAsync.js.map +1 -0
- package/utils/filterModelFields.d.ts +16 -0
- package/utils/filterModelFields.js +77 -0
- package/utils/filterModelFields.js.map +1 -0
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +12 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/getEntryTitle.d.ts +2 -0
- package/utils/getEntryTitle.js +43 -0
- package/utils/getEntryTitle.js.map +1 -0
- package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
- package/utils/getSchemaFromFieldPlugins.js +35 -0
- package/utils/getSchemaFromFieldPlugins.js.map +1 -0
- package/utils/ownership.d.ts +8 -0
- package/utils/ownership.js +41 -0
- package/utils/ownership.js.map +1 -0
- package/utils/permissions.d.ts +7 -0
- package/utils/permissions.js +106 -0
- package/utils/permissions.js.map +1 -0
- package/utils/pluralizedTypeName.d.ts +1 -0
- package/utils/pluralizedTypeName.js +26 -0
- package/utils/pluralizedTypeName.js.map +1 -0
- package/utils/renderFields.d.ts +15 -0
- package/utils/renderFields.js +55 -0
- package/utils/renderFields.js.map +1 -0
- package/utils/renderGetFilterFields.d.ts +10 -0
- package/utils/renderGetFilterFields.js +61 -0
- package/utils/renderGetFilterFields.js.map +1 -0
- package/utils/renderInputFields.d.ts +14 -0
- package/utils/renderInputFields.js +55 -0
- package/utils/renderInputFields.js.map +1 -0
- package/utils/renderListFilterFields.d.ts +11 -0
- package/utils/renderListFilterFields.js +62 -0
- package/utils/renderListFilterFields.js.map +1 -0
- package/utils/renderSortEnum.d.ts +9 -0
- package/utils/renderSortEnum.js +34 -0
- package/utils/renderSortEnum.js.map +1 -0
- package/utils/toSlug.d.ts +1 -0
- package/utils/toSlug.js +20 -0
- package/utils/toSlug.js.map +1 -0
- package/validators/dateGte.d.ts +2 -0
- package/validators/dateGte.js +37 -0
- package/validators/dateGte.js.map +1 -0
- package/validators/dateLte.d.ts +2 -0
- package/validators/dateLte.js +37 -0
- package/validators/dateLte.js.map +1 -0
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +24 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/gte.d.ts +2 -0
- package/validators/gte.js +36 -0
- package/validators/gte.js.map +1 -0
- package/validators/in.d.ts +2 -0
- package/validators/in.js +36 -0
- package/validators/in.js.map +1 -0
- package/validators/index.d.ts +1 -0
- package/validators/index.js +38 -0
- package/validators/index.js.map +1 -0
- package/validators/lte.d.ts +2 -0
- package/validators/lte.js +36 -0
- package/validators/lte.js.map +1 -0
- package/validators/maxLength.d.ts +2 -0
- package/validators/maxLength.js +36 -0
- package/validators/maxLength.js.map +1 -0
- package/validators/minLength.d.ts +2 -0
- package/validators/minLength.js +36 -0
- package/validators/minLength.js.map +1 -0
- package/validators/pattern.d.ts +2 -0
- package/validators/pattern.js +50 -0
- package/validators/pattern.js.map +1 -0
- package/validators/patternPlugins/email.d.ts +2 -0
- package/validators/patternPlugins/email.js +20 -0
- package/validators/patternPlugins/email.js.map +1 -0
- package/validators/patternPlugins/index.d.ts +2 -0
- package/validators/patternPlugins/index.js +24 -0
- package/validators/patternPlugins/index.js.map +1 -0
- package/validators/patternPlugins/lowerCase.d.ts +2 -0
- package/validators/patternPlugins/lowerCase.js +20 -0
- package/validators/patternPlugins/lowerCase.js.map +1 -0
- package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/lowerCaseSpace.js +20 -0
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/validators/patternPlugins/upperCase.d.ts +2 -0
- package/validators/patternPlugins/upperCase.js +20 -0
- package/validators/patternPlugins/upperCase.js.map +1 -0
- package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/upperCaseSpace.js +20 -0
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/validators/patternPlugins/url.d.ts +2 -0
- package/validators/patternPlugins/url.js +20 -0
- package/validators/patternPlugins/url.js.map +1 -0
- package/validators/required.d.ts +2 -0
- package/validators/required.js +27 -0
- package/validators/required.js.map +1 -0
- package/validators/timeGte.d.ts +2 -0
- package/validators/timeGte.js +34 -0
- package/validators/timeGte.js.map +1 -0
- package/validators/timeLte.d.ts +2 -0
- package/validators/timeLte.js +34 -0
- package/validators/timeLte.js.map +1 -0
- package/validators/unique.d.ts +6 -0
- package/validators/unique.js +63 -0
- package/validators/unique.js.map +1 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createSystemCrud = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _crypto = _interopRequireDefault(require("crypto"));
|
|
13
|
+
|
|
14
|
+
var _apiSecurity = require("@webiny/api-security");
|
|
15
|
+
|
|
16
|
+
var _apiUpgrade = require("@webiny/api-upgrade");
|
|
17
|
+
|
|
18
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
19
|
+
|
|
20
|
+
var _pubsub = require("@webiny/pubsub");
|
|
21
|
+
|
|
22
|
+
const initialContentModelGroup = {
|
|
23
|
+
name: "Ungrouped",
|
|
24
|
+
slug: "ungrouped",
|
|
25
|
+
description: "A generic content model group",
|
|
26
|
+
icon: "fas/star"
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const createSystemCrud = params => {
|
|
30
|
+
const {
|
|
31
|
+
getTenant,
|
|
32
|
+
getLocale,
|
|
33
|
+
storageOperations,
|
|
34
|
+
context,
|
|
35
|
+
getIdentity
|
|
36
|
+
} = params;
|
|
37
|
+
const onSystemBeforeInstall = (0, _pubsub.createTopic)("cms.onSystemBeforeInstall");
|
|
38
|
+
const onSystemAfterInstall = (0, _pubsub.createTopic)("cms.onSystemAfterInstall");
|
|
39
|
+
const onSystemInstallError = (0, _pubsub.createTopic)("cms.onSystemInstallError");
|
|
40
|
+
|
|
41
|
+
const createReadAPIKey = () => {
|
|
42
|
+
return _crypto.default.randomBytes(Math.ceil(48 / 2)).toString("hex");
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const getVersion = async () => {
|
|
46
|
+
if (!getTenant()) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const system = await storageOperations.system.get({
|
|
51
|
+
tenant: getTenant().id
|
|
52
|
+
});
|
|
53
|
+
return (system === null || system === void 0 ? void 0 : system.version) || null;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const setVersion = async version => {
|
|
57
|
+
const original = await storageOperations.system.get({
|
|
58
|
+
tenant: getTenant().id
|
|
59
|
+
});
|
|
60
|
+
const system = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original || {}), {}, {
|
|
61
|
+
version,
|
|
62
|
+
tenant: getTenant().id
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (!original) {
|
|
66
|
+
await storageOperations.system.create({
|
|
67
|
+
system
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
await storageOperations.system.update({
|
|
73
|
+
system
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
/**
|
|
79
|
+
* Deprecated - will be removed in 5.36.0
|
|
80
|
+
*/
|
|
81
|
+
onBeforeSystemInstall: onSystemBeforeInstall,
|
|
82
|
+
onAfterSystemInstall: onSystemAfterInstall,
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Released in 5.34.0
|
|
86
|
+
*/
|
|
87
|
+
onSystemBeforeInstall,
|
|
88
|
+
onSystemAfterInstall,
|
|
89
|
+
onSystemInstallError,
|
|
90
|
+
getSystemVersion: getVersion,
|
|
91
|
+
setSystemVersion: setVersion,
|
|
92
|
+
getReadAPIKey: async () => {
|
|
93
|
+
const original = await storageOperations.system.get({
|
|
94
|
+
tenant: getTenant().id
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
if (!original) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (!original.readAPIKey) {
|
|
102
|
+
const readAPIKey = createReadAPIKey();
|
|
103
|
+
const system = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), {}, {
|
|
104
|
+
readAPIKey
|
|
105
|
+
});
|
|
106
|
+
await storageOperations.system.update({
|
|
107
|
+
system
|
|
108
|
+
});
|
|
109
|
+
return readAPIKey;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return original.readAPIKey;
|
|
113
|
+
},
|
|
114
|
+
installSystem: async () => {
|
|
115
|
+
const identity = getIdentity();
|
|
116
|
+
|
|
117
|
+
if (!identity) {
|
|
118
|
+
throw new _apiSecurity.NotAuthorizedError();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const version = await getVersion();
|
|
122
|
+
|
|
123
|
+
if (version) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
/**
|
|
129
|
+
* First trigger before install event.
|
|
130
|
+
*/
|
|
131
|
+
await onSystemBeforeInstall.publish({
|
|
132
|
+
tenant: getTenant().id,
|
|
133
|
+
locale: getLocale().code
|
|
134
|
+
});
|
|
135
|
+
/**
|
|
136
|
+
* Add default content model group.
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
try {
|
|
140
|
+
await context.cms.createGroup(initialContentModelGroup);
|
|
141
|
+
} catch (ex) {
|
|
142
|
+
throw new _error.default(ex.message, "CMS_INSTALLATION_CONTENT_MODEL_GROUP_ERROR", {
|
|
143
|
+
group: initialContentModelGroup
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const system = {
|
|
148
|
+
version: context.WEBINY_VERSION,
|
|
149
|
+
readAPIKey: createReadAPIKey(),
|
|
150
|
+
tenant: getTenant().id
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* We need to create the system data.
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
await storageOperations.system.create({
|
|
157
|
+
system
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* And trigger after install event.
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
await onSystemAfterInstall.publish({
|
|
164
|
+
tenant: getTenant().id,
|
|
165
|
+
locale: getLocale().code
|
|
166
|
+
});
|
|
167
|
+
} catch (ex) {
|
|
168
|
+
await onSystemInstallError.publish({
|
|
169
|
+
error: ex,
|
|
170
|
+
tenant: getTenant().id,
|
|
171
|
+
locale: getLocale().code
|
|
172
|
+
});
|
|
173
|
+
throw new _error.default(ex.message, ex.code, ex.data);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
|
|
177
|
+
async upgradeSystem(version) {
|
|
178
|
+
const identity = getIdentity();
|
|
179
|
+
|
|
180
|
+
if (!identity) {
|
|
181
|
+
throw new _apiSecurity.NotAuthorizedError();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const upgradePlugins = context.plugins.byType("api-upgrade").filter(pl => pl.app === "headless-cms");
|
|
185
|
+
const installedAppVersion = await this.getSystemVersion();
|
|
186
|
+
let plugin = undefined;
|
|
187
|
+
|
|
188
|
+
try {
|
|
189
|
+
plugin = (0, _apiUpgrade.getApplicablePlugin)({
|
|
190
|
+
deployedVersion: context.WEBINY_VERSION,
|
|
191
|
+
installedAppVersion,
|
|
192
|
+
upgradePlugins,
|
|
193
|
+
upgradeToVersion: version
|
|
194
|
+
});
|
|
195
|
+
} catch (ex) {
|
|
196
|
+
/**
|
|
197
|
+
* We just let the error disappear if is UPGRADE_NOT_AVAILABLE code
|
|
198
|
+
* and rethrow if is not.
|
|
199
|
+
* This is because we want upgrade to pass if there is no plugin available.
|
|
200
|
+
*/
|
|
201
|
+
if (ex.code !== _apiUpgrade.ErrorCode.UPGRADE_NOT_AVAILABLE) {
|
|
202
|
+
throw ex;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (plugin) {
|
|
207
|
+
await plugin.apply(context);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Store new app version.
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
await setVersion(version);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
exports.createSystemCrud = createSystemCrud;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["initialContentModelGroup","name","slug","description","icon","createSystemCrud","params","getTenant","getLocale","storageOperations","context","getIdentity","onSystemBeforeInstall","createTopic","onSystemAfterInstall","onSystemInstallError","createReadAPIKey","crypto","randomBytes","Math","ceil","toString","getVersion","system","get","tenant","id","version","setVersion","original","create","update","onBeforeSystemInstall","onAfterSystemInstall","getSystemVersion","setSystemVersion","getReadAPIKey","readAPIKey","installSystem","identity","NotAuthorizedError","publish","locale","code","cms","createGroup","ex","WebinyError","message","group","WEBINY_VERSION","error","data","upgradeSystem","upgradePlugins","plugins","byType","filter","pl","app","installedAppVersion","plugin","undefined","getApplicablePlugin","deployedVersion","upgradeToVersion","ErrorCode","UPGRADE_NOT_AVAILABLE","apply"],"sources":["system.crud.ts"],"sourcesContent":["import crypto from \"crypto\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { ErrorCode, getApplicablePlugin } from \"@webiny/api-upgrade\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport WebinyError from \"@webiny/error\";\nimport {\n OnSystemAfterInstallTopicParams,\n OnSystemBeforeInstallTopicParams,\n CmsContext,\n CmsSystem,\n CmsSystemContext,\n HeadlessCms,\n HeadlessCmsStorageOperations,\n OnSystemInstallErrorTopicParams\n} from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\n\nconst initialContentModelGroup = {\n name: \"Ungrouped\",\n slug: \"ungrouped\",\n description: \"A generic content model group\",\n icon: \"fas/star\"\n};\n\ninterface CreateSystemCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\nexport const createSystemCrud = (params: CreateSystemCrudParams): CmsSystemContext => {\n const { getTenant, getLocale, storageOperations, context, getIdentity } = params;\n\n const onSystemBeforeInstall = createTopic<OnSystemBeforeInstallTopicParams>(\n \"cms.onSystemBeforeInstall\"\n );\n const onSystemAfterInstall = createTopic<OnSystemAfterInstallTopicParams>(\n \"cms.onSystemAfterInstall\"\n );\n\n const onSystemInstallError = createTopic<OnSystemInstallErrorTopicParams>(\n \"cms.onSystemInstallError\"\n );\n\n const createReadAPIKey = () => {\n return crypto.randomBytes(Math.ceil(48 / 2)).toString(\"hex\");\n };\n\n const getVersion = async () => {\n if (!getTenant()) {\n return null;\n }\n\n const system = await storageOperations.system.get({\n tenant: getTenant().id\n });\n\n return system?.version || null;\n };\n\n const setVersion = async (version: string) => {\n const original = await storageOperations.system.get({\n tenant: getTenant().id\n });\n const system: CmsSystem = {\n ...(original || {}),\n version,\n tenant: getTenant().id\n };\n if (!original) {\n await storageOperations.system.create({\n system\n });\n return;\n }\n await storageOperations.system.update({\n system\n });\n };\n\n return {\n /**\n * Deprecated - will be removed in 5.36.0\n */\n onBeforeSystemInstall: onSystemBeforeInstall,\n onAfterSystemInstall: onSystemAfterInstall,\n /**\n * Released in 5.34.0\n */\n onSystemBeforeInstall,\n onSystemAfterInstall,\n onSystemInstallError,\n getSystemVersion: getVersion,\n setSystemVersion: setVersion,\n getReadAPIKey: async () => {\n const original = await storageOperations.system.get({\n tenant: getTenant().id\n });\n\n if (!original) {\n return null;\n }\n\n if (!original.readAPIKey) {\n const readAPIKey = createReadAPIKey();\n const system: CmsSystem = {\n ...original,\n readAPIKey\n };\n await storageOperations.system.update({\n system\n });\n return readAPIKey;\n }\n\n return original.readAPIKey;\n },\n installSystem: async (): Promise<void> => {\n const identity = getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const version = await getVersion();\n if (version) {\n return;\n }\n try {\n /**\n * First trigger before install event.\n */\n await onSystemBeforeInstall.publish({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n\n /**\n * Add default content model group.\n */\n try {\n await context.cms.createGroup(initialContentModelGroup);\n } catch (ex) {\n throw new WebinyError(\n ex.message,\n \"CMS_INSTALLATION_CONTENT_MODEL_GROUP_ERROR\",\n {\n group: initialContentModelGroup\n }\n );\n }\n\n const system: CmsSystem = {\n version: context.WEBINY_VERSION,\n readAPIKey: createReadAPIKey(),\n tenant: getTenant().id\n };\n /**\n * We need to create the system data.\n */\n await storageOperations.system.create({\n system\n });\n /**\n * And trigger after install event.\n */\n await onSystemAfterInstall.publish({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n } catch (ex) {\n await onSystemInstallError.publish({\n error: ex,\n tenant: getTenant().id,\n locale: getLocale().code\n });\n throw new WebinyError(ex.message, ex.code, ex.data);\n }\n },\n async upgradeSystem(this: HeadlessCms, version) {\n const identity = getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const upgradePlugins = context.plugins\n .byType<UpgradePlugin>(\"api-upgrade\")\n .filter(pl => pl.app === \"headless-cms\");\n\n const installedAppVersion = await this.getSystemVersion();\n\n let plugin: UpgradePlugin | undefined = undefined;\n try {\n plugin = getApplicablePlugin({\n deployedVersion: context.WEBINY_VERSION,\n installedAppVersion,\n upgradePlugins,\n upgradeToVersion: version\n });\n } catch (ex) {\n /**\n * We just let the error disappear if is UPGRADE_NOT_AVAILABLE code\n * and rethrow if is not.\n * This is because we want upgrade to pass if there is no plugin available.\n */\n if (ex.code !== ErrorCode.UPGRADE_NOT_AVAILABLE) {\n throw ex;\n }\n }\n\n if (plugin) {\n await plugin.apply(context);\n }\n\n /**\n * Store new app version.\n */\n await setVersion(version);\n\n return true;\n }\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CmsModelFieldConverterPlugin, ConvertParams } from "../plugins/CmsModelFieldConverterPlugin";
|
|
2
|
+
export declare class CmsModelDefaultFieldConverterPlugin extends CmsModelFieldConverterPlugin {
|
|
3
|
+
name: string;
|
|
4
|
+
getFieldType(): string;
|
|
5
|
+
convertToStorage({ field, value }: ConvertParams): any;
|
|
6
|
+
convertFromStorage({ field, value }: ConvertParams): any;
|
|
7
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CmsModelDefaultFieldConverterPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _CmsModelFieldConverterPlugin = require("../plugins/CmsModelFieldConverterPlugin");
|
|
13
|
+
|
|
14
|
+
class CmsModelDefaultFieldConverterPlugin extends _CmsModelFieldConverterPlugin.CmsModelFieldConverterPlugin {
|
|
15
|
+
constructor(...args) {
|
|
16
|
+
super(...args);
|
|
17
|
+
(0, _defineProperty2.default)(this, "name", "cms.field.converter.default");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getFieldType() {
|
|
21
|
+
return "*";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
convertToStorage({
|
|
25
|
+
field,
|
|
26
|
+
value
|
|
27
|
+
}) {
|
|
28
|
+
/**
|
|
29
|
+
* Do not convert if no value was passed.
|
|
30
|
+
*/
|
|
31
|
+
if (value === undefined) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A single and multiple values field conversion;
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
[field.storageId]: value
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
convertFromStorage({
|
|
45
|
+
field,
|
|
46
|
+
value
|
|
47
|
+
}) {
|
|
48
|
+
/**
|
|
49
|
+
* Do not convert if no value was passed.
|
|
50
|
+
*/
|
|
51
|
+
if (value === undefined) {
|
|
52
|
+
return {};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A single and multiple values field conversion;
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
[field.fieldId]: value
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
exports.CmsModelDefaultFieldConverterPlugin = CmsModelDefaultFieldConverterPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsModelDefaultFieldConverterPlugin","CmsModelFieldConverterPlugin","getFieldType","convertToStorage","field","value","undefined","storageId","convertFromStorage","fieldId"],"sources":["CmsModelDefaultFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\n\nexport class CmsModelDefaultFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.default\";\n\n public override getFieldType(): string {\n return \"*\";\n }\n\n public override convertToStorage({ field, value }: ConvertParams): any {\n /**\n * Do not convert if no value was passed.\n */\n if (value === undefined) {\n return {};\n }\n /**\n * A single and multiple values field conversion;\n */\n return {\n [field.storageId]: value\n };\n }\n\n public override convertFromStorage({ field, value }: ConvertParams): any {\n /**\n * Do not convert if no value was passed.\n */\n if (value === undefined) {\n return {};\n }\n /**\n * A single and multiple values field conversion;\n */\n return {\n [field.fieldId]: value\n };\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAKO,MAAMA,mCAAN,SAAkDC,0DAAlD,CAA+E;EAAA;IAAA;IAAA,4CAC3D,6BAD2D;EAAA;;EAGlEC,YAAY,GAAW;IACnC,OAAO,GAAP;EACH;;EAEeC,gBAAgB,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,EAAuC;IACnE;AACR;AACA;IACQ,IAAIA,KAAK,KAAKC,SAAd,EAAyB;MACrB,OAAO,EAAP;IACH;IACD;AACR;AACA;;;IACQ,OAAO;MACH,CAACF,KAAK,CAACG,SAAP,GAAmBF;IADhB,CAAP;EAGH;;EAEeG,kBAAkB,CAAC;IAAEJ,KAAF;IAASC;EAAT,CAAD,EAAuC;IACrE;AACR;AACA;IACQ,IAAIA,KAAK,KAAKC,SAAd,EAAyB;MACrB,OAAO,EAAP;IACH;IACD;AACR;AACA;;;IACQ,OAAO;MACH,CAACF,KAAK,CAACK,OAAP,GAAiBJ;IADd,CAAP;EAGH;;AAnCiF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CmsModelFieldConverterPlugin, ConvertParams } from "../plugins/CmsModelFieldConverterPlugin";
|
|
2
|
+
import { CmsEntryValues, CmsModelDynamicZoneField } from "../types";
|
|
3
|
+
export declare class CmsModelDynamicZoneFieldConverterPlugin extends CmsModelFieldConverterPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
getFieldType(): string;
|
|
6
|
+
private getTemplates;
|
|
7
|
+
convertToStorage(params: ConvertParams<CmsModelDynamicZoneField>): CmsEntryValues;
|
|
8
|
+
private processToStorage;
|
|
9
|
+
convertFromStorage(params: ConvertParams<CmsModelDynamicZoneField>): CmsEntryValues;
|
|
10
|
+
private processFromStorage;
|
|
11
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CmsModelDynamicZoneFieldConverterPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
+
|
|
14
|
+
var _CmsModelFieldConverterPlugin = require("../plugins/CmsModelFieldConverterPlugin");
|
|
15
|
+
|
|
16
|
+
class CmsModelDynamicZoneFieldConverterPlugin extends _CmsModelFieldConverterPlugin.CmsModelFieldConverterPlugin {
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
19
|
+
(0, _defineProperty2.default)(this, "name", "cms.field.converter.dynamicZone");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getFieldType() {
|
|
23
|
+
return "dynamicZone";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getTemplates(field) {
|
|
27
|
+
var _field$settings;
|
|
28
|
+
|
|
29
|
+
return ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
convertToStorage(params) {
|
|
33
|
+
const {
|
|
34
|
+
field,
|
|
35
|
+
value,
|
|
36
|
+
converterCollection
|
|
37
|
+
} = params;
|
|
38
|
+
const templates = this.getTemplates(field);
|
|
39
|
+
|
|
40
|
+
if (templates.length === 0) {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (field.multipleValues) {
|
|
45
|
+
if (!Array.isArray(value)) {
|
|
46
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting an array value.`, "DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE", {
|
|
47
|
+
field,
|
|
48
|
+
value
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
[field.storageId]: value.map(item => {
|
|
54
|
+
return this.processToStorage({
|
|
55
|
+
templates,
|
|
56
|
+
converterCollection,
|
|
57
|
+
value: item
|
|
58
|
+
});
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting a non-array value.`, "DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE", {
|
|
65
|
+
field,
|
|
66
|
+
value
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const processedValue = this.processToStorage({
|
|
71
|
+
templates,
|
|
72
|
+
converterCollection,
|
|
73
|
+
value
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
[field.storageId]: processedValue
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
processToStorage(params) {
|
|
81
|
+
const {
|
|
82
|
+
templates,
|
|
83
|
+
converterCollection
|
|
84
|
+
} = params;
|
|
85
|
+
let {
|
|
86
|
+
value
|
|
87
|
+
} = params;
|
|
88
|
+
|
|
89
|
+
if (value === null || value === undefined) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* There are two ways converter needs to work:
|
|
94
|
+
* 1. when there is a _templateId
|
|
95
|
+
* 2. when there is a key which identifies which template is the data for
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* When we have a template key, everything is simple.
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
const templateId = value._templateId;
|
|
104
|
+
let graphQlName = undefined;
|
|
105
|
+
let template = undefined;
|
|
106
|
+
|
|
107
|
+
if (templateId) {
|
|
108
|
+
template = templates.find(t => {
|
|
109
|
+
return templateId === t.id;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* When we do not have a templateId, then the template identifier is the key of the value object.
|
|
114
|
+
* But at that point, values under that key become the value we are working with later on.
|
|
115
|
+
*/
|
|
116
|
+
//
|
|
117
|
+
else {
|
|
118
|
+
const keys = Object.keys(value);
|
|
119
|
+
|
|
120
|
+
if (keys.length === 0) {
|
|
121
|
+
return undefined;
|
|
122
|
+
} else if (keys.length > 1) {
|
|
123
|
+
throw new _error.default("There cannot be more than one dynamic zone template in a single dynamic zone field.", "DYNAMIC_ZONE_TOO_MANY_TEMPLATES", {
|
|
124
|
+
templates: keys
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
graphQlName = keys[0];
|
|
129
|
+
template = templates.find(t => t.gqlTypeName === graphQlName);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!template) {
|
|
133
|
+
throw new _error.default("Unknown template - converting to storage.", "UNKNOWN_TEMPLATE", {
|
|
134
|
+
templateId,
|
|
135
|
+
graphQlName
|
|
136
|
+
});
|
|
137
|
+
} else if (graphQlName) {
|
|
138
|
+
value = value[graphQlName];
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return template.fields.reduce((values, field) => {
|
|
142
|
+
const converter = converterCollection.getConverter(field.type);
|
|
143
|
+
const converted = converter.convertToStorage({
|
|
144
|
+
field,
|
|
145
|
+
value: value ? value[field.fieldId] : undefined
|
|
146
|
+
});
|
|
147
|
+
Object.assign(values, converted);
|
|
148
|
+
return values;
|
|
149
|
+
}, {
|
|
150
|
+
_templateId: template.id
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
convertFromStorage(params) {
|
|
155
|
+
const {
|
|
156
|
+
field,
|
|
157
|
+
value,
|
|
158
|
+
converterCollection
|
|
159
|
+
} = params;
|
|
160
|
+
const templates = this.getTemplates(field);
|
|
161
|
+
|
|
162
|
+
if (templates.length === 0) {
|
|
163
|
+
return {};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (field.multipleValues) {
|
|
167
|
+
if (!Array.isArray(value)) {
|
|
168
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting an array value.`, "DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE", {
|
|
169
|
+
field,
|
|
170
|
+
value
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return {
|
|
175
|
+
[field.fieldId]: value.map(item => {
|
|
176
|
+
return this.processFromStorage({
|
|
177
|
+
templates,
|
|
178
|
+
converterCollection,
|
|
179
|
+
value: item
|
|
180
|
+
});
|
|
181
|
+
})
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (Array.isArray(value)) {
|
|
186
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting a non-array value.`, "DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE", {
|
|
187
|
+
field,
|
|
188
|
+
value
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const processedValue = this.processFromStorage({
|
|
193
|
+
templates,
|
|
194
|
+
converterCollection,
|
|
195
|
+
value
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
[field.fieldId]: processedValue
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
processFromStorage(params) {
|
|
203
|
+
const {
|
|
204
|
+
templates,
|
|
205
|
+
value,
|
|
206
|
+
converterCollection
|
|
207
|
+
} = params;
|
|
208
|
+
|
|
209
|
+
if (value === null || value === undefined) {
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const {
|
|
214
|
+
_templateId
|
|
215
|
+
} = value;
|
|
216
|
+
const template = templates.find(t => t.id === _templateId);
|
|
217
|
+
|
|
218
|
+
if (!template) {
|
|
219
|
+
throw new _error.default("Unknown template - converting from storage.", "UNKNOWN_TEMPLATE", {
|
|
220
|
+
templateId: _templateId
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return template.fields.reduce((values, field) => {
|
|
225
|
+
const converter = converterCollection.getConverter(field.type);
|
|
226
|
+
const converted = converter.convertFromStorage({
|
|
227
|
+
field,
|
|
228
|
+
value: value[field.storageId]
|
|
229
|
+
});
|
|
230
|
+
Object.assign(values, converted);
|
|
231
|
+
return values;
|
|
232
|
+
}, {
|
|
233
|
+
_templateId: template.id
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
exports.CmsModelDynamicZoneFieldConverterPlugin = CmsModelDynamicZoneFieldConverterPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsModelDynamicZoneFieldConverterPlugin","CmsModelFieldConverterPlugin","getFieldType","getTemplates","field","settings","templates","convertToStorage","params","value","converterCollection","length","multipleValues","Array","isArray","WebinyError","fieldId","storageId","map","item","processToStorage","processedValue","undefined","templateId","_templateId","graphQlName","template","find","t","id","keys","Object","gqlTypeName","fields","reduce","values","converter","getConverter","type","converted","assign","convertFromStorage","processFromStorage"],"sources":["CmsModelDynamicZoneFieldConverterPlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsDynamicZoneTemplate, CmsEntryValues, CmsModelDynamicZoneField } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface DynamicZoneValue {\n [key: string]: any;\n}\n\ninterface ProcessValue {\n templates: CmsDynamicZoneTemplate[];\n value: DynamicZoneValue | null;\n converterCollection: ConverterCollection;\n}\n\nexport class CmsModelDynamicZoneFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.dynamicZone\";\n\n public override getFieldType(): string {\n return \"dynamicZone\";\n }\n\n private getTemplates(field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] {\n return field.settings?.templates || [];\n }\n\n public override convertToStorage(\n params: ConvertParams<CmsModelDynamicZoneField>\n ): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const templates = this.getTemplates(field);\n\n if (templates.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (!Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting an array value.`,\n \"DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n return {\n [field.storageId]: value.map(item => {\n return this.processToStorage({\n templates,\n converterCollection,\n value: item\n });\n })\n };\n }\n if (Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting a non-array value.`,\n \"DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n\n const processedValue = this.processToStorage({\n templates,\n converterCollection,\n value\n });\n return {\n [field.storageId]: processedValue\n };\n }\n\n private processToStorage(params: ProcessValue) {\n const { templates, converterCollection } = params;\n let { value } = params;\n if (value === null || value === undefined) {\n return undefined;\n }\n /**\n * There are two ways converter needs to work:\n * 1. when there is a _templateId\n * 2. when there is a key which identifies which template is the data for\n */\n\n /**\n * When we have a template key, everything is simple.\n */\n const templateId = value._templateId;\n let graphQlName: string | undefined = undefined;\n let template: CmsDynamicZoneTemplate | undefined = undefined;\n if (templateId) {\n template = templates.find(t => {\n return templateId === t.id;\n });\n }\n /**\n * When we do not have a templateId, then the template identifier is the key of the value object.\n * But at that point, values under that key become the value we are working with later on.\n */\n //\n else {\n const keys = Object.keys(value);\n if (keys.length === 0) {\n return undefined;\n } else if (keys.length > 1) {\n throw new WebinyError(\n \"There cannot be more than one dynamic zone template in a single dynamic zone field.\",\n \"DYNAMIC_ZONE_TOO_MANY_TEMPLATES\",\n {\n templates: keys\n }\n );\n }\n graphQlName = keys[0] as string;\n template = templates.find(t => t.gqlTypeName === graphQlName);\n }\n\n if (!template) {\n throw new WebinyError(\"Unknown template - converting to storage.\", \"UNKNOWN_TEMPLATE\", {\n templateId,\n graphQlName\n });\n } else if (graphQlName) {\n value = value[graphQlName];\n }\n\n return template.fields.reduce<Record<string, any>>(\n (values, field) => {\n const converter = converterCollection.getConverter(field.type);\n const converted = converter.convertToStorage({\n field,\n value: value ? value[field.fieldId] : undefined\n });\n Object.assign(values, converted);\n return values;\n },\n {\n _templateId: template.id\n }\n );\n }\n\n public override convertFromStorage(\n params: ConvertParams<CmsModelDynamicZoneField>\n ): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const templates = this.getTemplates(field);\n\n if (templates.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (!Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting an array value.`,\n \"DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n return {\n [field.fieldId]: value.map(item => {\n return this.processFromStorage({\n templates,\n converterCollection,\n value: item\n });\n })\n };\n }\n if (Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting a non-array value.`,\n \"DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n\n const processedValue = this.processFromStorage({\n templates,\n converterCollection,\n value\n });\n return {\n [field.fieldId]: processedValue\n };\n }\n\n private processFromStorage(params: ProcessValue) {\n const { templates, value, converterCollection } = params;\n if (value === null || value === undefined) {\n return undefined;\n }\n\n const { _templateId } = value;\n\n const template = templates.find(t => t.id === _templateId);\n if (!template) {\n throw new WebinyError(\n \"Unknown template - converting from storage.\",\n \"UNKNOWN_TEMPLATE\",\n {\n templateId: _templateId\n }\n );\n }\n\n return template.fields.reduce<Record<string, any>>(\n (values, field) => {\n const converter = converterCollection.getConverter(field.type);\n const converted = converter.convertFromStorage({\n field,\n value: value[field.storageId]\n });\n Object.assign(values, converted);\n return values;\n },\n {\n _templateId: template.id\n }\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CmsModelFieldConverterPlugin, ConvertParams } from "../plugins/CmsModelFieldConverterPlugin";
|
|
2
|
+
import { CmsEntryValues } from "../types";
|
|
3
|
+
export declare class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
getFieldType(): string;
|
|
6
|
+
private getChildFields;
|
|
7
|
+
convertToStorage(params: ConvertParams): CmsEntryValues;
|
|
8
|
+
private processChildFieldsToStorage;
|
|
9
|
+
convertFromStorage(params: ConvertParams): CmsEntryValues;
|
|
10
|
+
private processChildFieldsFromStorage;
|
|
11
|
+
}
|