@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,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createGroupsSchema = void 0;
|
|
7
|
+
|
|
8
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
9
|
+
|
|
10
|
+
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
11
|
+
|
|
12
|
+
var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
|
|
13
|
+
|
|
14
|
+
const createGroupsSchema = context => {
|
|
15
|
+
let manageSchema = "";
|
|
16
|
+
|
|
17
|
+
if (context.cms.MANAGE) {
|
|
18
|
+
manageSchema =
|
|
19
|
+
/* GraphQL */
|
|
20
|
+
`
|
|
21
|
+
input CmsContentModelGroupInput {
|
|
22
|
+
name: String!
|
|
23
|
+
slug: String
|
|
24
|
+
description: String
|
|
25
|
+
icon: String!
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type CmsContentModelGroupResponse {
|
|
29
|
+
data: CmsContentModelGroup
|
|
30
|
+
error: CmsError
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type CmsContentModelGroupListResponse {
|
|
34
|
+
data: [CmsContentModelGroup]
|
|
35
|
+
meta: CmsListMeta
|
|
36
|
+
error: CmsError
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
extend type Query {
|
|
40
|
+
getContentModelGroup(id: ID): CmsContentModelGroupResponse
|
|
41
|
+
listContentModelGroups: CmsContentModelGroupListResponse
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
extend type Mutation {
|
|
45
|
+
createContentModelGroup(
|
|
46
|
+
data: CmsContentModelGroupInput!
|
|
47
|
+
): CmsContentModelGroupResponse
|
|
48
|
+
|
|
49
|
+
updateContentModelGroup(
|
|
50
|
+
id: ID!
|
|
51
|
+
data: CmsContentModelGroupInput!
|
|
52
|
+
): CmsContentModelGroupResponse
|
|
53
|
+
|
|
54
|
+
deleteContentModelGroup(id: ID!): CmsDeleteResponse
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let resolvers = {};
|
|
60
|
+
|
|
61
|
+
if (context.cms.MANAGE) {
|
|
62
|
+
resolvers = {
|
|
63
|
+
CmsContentModelGroup: {
|
|
64
|
+
contentModels: async (group, _, context) => {
|
|
65
|
+
context.security.disableAuthorization();
|
|
66
|
+
const models = await context.cms.listModels();
|
|
67
|
+
context.security.enableAuthorization();
|
|
68
|
+
return models.filter(model => {
|
|
69
|
+
if (model.isPrivate === true) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return model.group.id === group.id;
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
totalContentModels: async (group, _, context) => {
|
|
77
|
+
context.security.disableAuthorization();
|
|
78
|
+
const models = await context.cms.listModels();
|
|
79
|
+
context.security.enableAuthorization();
|
|
80
|
+
return models.filter(model => {
|
|
81
|
+
if (model.isPrivate === true) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return model.group === group.id;
|
|
86
|
+
}).length;
|
|
87
|
+
},
|
|
88
|
+
plugin: async (group, _, context) => {
|
|
89
|
+
return context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).some(item => item.contentModelGroup.id === group.id);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
Query: {
|
|
93
|
+
getContentModelGroup: async (_, args, context) => {
|
|
94
|
+
try {
|
|
95
|
+
const {
|
|
96
|
+
id
|
|
97
|
+
} = args;
|
|
98
|
+
const group = await context.cms.getGroup(id);
|
|
99
|
+
|
|
100
|
+
if (group !== null && group !== void 0 && group.isPrivate) {
|
|
101
|
+
throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return new _handlerGraphql.Response(group);
|
|
105
|
+
} catch (e) {
|
|
106
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
listContentModelGroups: async (_, __, context) => {
|
|
110
|
+
try {
|
|
111
|
+
const groups = await context.cms.listGroups();
|
|
112
|
+
return new _handlerGraphql.Response(groups.filter(group => group.isPrivate !== true));
|
|
113
|
+
} catch (e) {
|
|
114
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
Mutation: {
|
|
119
|
+
createContentModelGroup: async (_, args, context) => {
|
|
120
|
+
try {
|
|
121
|
+
const model = await context.cms.createGroup(args.data);
|
|
122
|
+
return new _handlerGraphql.Response(model);
|
|
123
|
+
} catch (e) {
|
|
124
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
updateContentModelGroup: async (_, args, context) => {
|
|
128
|
+
try {
|
|
129
|
+
const group = await context.cms.updateGroup(args.id, args.data);
|
|
130
|
+
return new _handlerGraphql.Response(group);
|
|
131
|
+
} catch (e) {
|
|
132
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
deleteContentModelGroup: async (_, args, context) => {
|
|
136
|
+
try {
|
|
137
|
+
await context.cms.deleteGroup(args.id);
|
|
138
|
+
return new _handlerGraphql.Response(true);
|
|
139
|
+
} catch (e) {
|
|
140
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
148
|
+
typeDefs:
|
|
149
|
+
/* GraphQL */
|
|
150
|
+
`
|
|
151
|
+
type CmsContentModelGroup {
|
|
152
|
+
id: ID!
|
|
153
|
+
createdOn: DateTime
|
|
154
|
+
savedOn: DateTime
|
|
155
|
+
name: String!
|
|
156
|
+
contentModels: [CmsContentModel!]
|
|
157
|
+
totalContentModels: Int!
|
|
158
|
+
slug: String!
|
|
159
|
+
description: String
|
|
160
|
+
icon: String
|
|
161
|
+
createdBy: CmsCreatedBy
|
|
162
|
+
|
|
163
|
+
# Returns true if the content model group is registered via a plugin.
|
|
164
|
+
plugin: Boolean!
|
|
165
|
+
}
|
|
166
|
+
${manageSchema}
|
|
167
|
+
`,
|
|
168
|
+
resolvers
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
exports.createGroupsSchema = createGroupsSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","security","disableAuthorization","models","listModels","enableAuthorization","filter","model","isPrivate","id","totalContentModels","length","plugin","plugins","byType","CmsGroupPlugin","type","some","item","contentModelGroup","Query","getContentModelGroup","args","getGroup","NotFoundError","Response","e","ErrorResponse","listContentModelGroups","__","groups","listGroups","Mutation","createContentModelGroup","createGroup","data","updateContentModelGroup","updateGroup","deleteContentModelGroup","deleteGroup","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\n\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\n\nexport const createGroupsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n manageSchema = /* GraphQL */ `\n input CmsContentModelGroupInput {\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n type CmsContentModelGroupResponse {\n data: CmsContentModelGroup\n error: CmsError\n }\n\n type CmsContentModelGroupListResponse {\n data: [CmsContentModelGroup]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModelGroup(id: ID): CmsContentModelGroupResponse\n listContentModelGroups: CmsContentModelGroupListResponse\n }\n\n extend type Mutation {\n createContentModelGroup(\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n updateContentModelGroup(\n id: ID!\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n deleteContentModelGroup(id: ID!): CmsDeleteResponse\n }\n `;\n }\n\n let resolvers: Resolvers<CmsContext> = {};\n\n if (context.cms.MANAGE) {\n resolvers = {\n CmsContentModelGroup: {\n contentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group.id === group.id;\n });\n },\n totalContentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group === group.id;\n }).length;\n },\n plugin: async (group, _, context: CmsContext): Promise<boolean> => {\n return context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .some(item => item.contentModelGroup.id === group.id);\n }\n },\n Query: {\n getContentModelGroup: async (_, args: any, context) => {\n try {\n const { id } = args;\n const group = await context.cms.getGroup(id);\n if (group?.isPrivate) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModelGroups: async (_, __, context) => {\n try {\n const groups = await context.cms.listGroups();\n return new Response(groups.filter(group => group.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n Mutation: {\n createContentModelGroup: async (_, args: any, context) => {\n try {\n const model = await context.cms.createGroup(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModelGroup: async (_, args: any, context) => {\n try {\n const group = await context.cms.updateGroup(args.id, args.data);\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModelGroup: async (_, args: any, context) => {\n try {\n await context.cms.deleteGroup(args.id);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n };\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsContentModelGroup {\n id: ID!\n createdOn: DateTime\n savedOn: DateTime\n name: String!\n contentModels: [CmsContentModel!]\n totalContentModels: Int!\n slug: String!\n description: String\n icon: String\n createdBy: CmsCreatedBy\n\n # Returns true if the content model group is registered via a plugin.\n plugin: Boolean!\n }\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createModelsSchema = void 0;
|
|
7
|
+
|
|
8
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
9
|
+
|
|
10
|
+
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
11
|
+
|
|
12
|
+
var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
|
|
13
|
+
|
|
14
|
+
const createModelsSchema = context => {
|
|
15
|
+
const resolvers = {
|
|
16
|
+
Query: {
|
|
17
|
+
getContentModel: async (_, args, context) => {
|
|
18
|
+
try {
|
|
19
|
+
const model = await context.cms.getModel(args.modelId);
|
|
20
|
+
|
|
21
|
+
if ((model === null || model === void 0 ? void 0 : model.isPrivate) === true) {
|
|
22
|
+
if (!model) {
|
|
23
|
+
throw new _handlerGraphql.NotFoundError(`Content model "${args.modelId}" was not found!`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return new _handlerGraphql.Response(model);
|
|
28
|
+
} catch (e) {
|
|
29
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
listContentModels: async (_, __, context) => {
|
|
33
|
+
try {
|
|
34
|
+
const models = await context.cms.listModels();
|
|
35
|
+
return new _handlerGraphql.Response(models.filter(model => model.isPrivate !== true));
|
|
36
|
+
} catch (e) {
|
|
37
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
CmsContentModelField: {
|
|
42
|
+
tags(field) {
|
|
43
|
+
// Make sure `tags` are always returned as an array.
|
|
44
|
+
return Array.isArray(field.tags) ? field.tags : [];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
},
|
|
48
|
+
CmsContentModel: {
|
|
49
|
+
tags(model) {
|
|
50
|
+
// Make sure `tags` always contain a `type` tag, to differentiate between models.
|
|
51
|
+
const hasType = (model.tags || []).find(tag => tag.startsWith("type:"));
|
|
52
|
+
return hasType ? model.tags : ["type:model", ...(model.tags || [])];
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
plugin: async (model, _, context) => {
|
|
56
|
+
return context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type).some(item => item.contentModel.modelId === model.modelId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
let manageSchema = "";
|
|
61
|
+
|
|
62
|
+
if (context.cms.MANAGE) {
|
|
63
|
+
resolvers["Mutation"] = {
|
|
64
|
+
createContentModel: async (_, args, context) => {
|
|
65
|
+
try {
|
|
66
|
+
const model = await context.cms.createModel(args.data);
|
|
67
|
+
return new _handlerGraphql.Response(model);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
createContentModelFrom: async (_, args, context) => {
|
|
73
|
+
try {
|
|
74
|
+
const model = await context.cms.createModelFrom(args.modelId, args.data);
|
|
75
|
+
return new _handlerGraphql.Response(model);
|
|
76
|
+
} catch (e) {
|
|
77
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
updateContentModel: async (_, args, context) => {
|
|
81
|
+
const {
|
|
82
|
+
modelId,
|
|
83
|
+
data
|
|
84
|
+
} = args;
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
const model = await context.cms.updateModel(modelId, data);
|
|
88
|
+
return new _handlerGraphql.Response(model);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
deleteContentModel: async (_, args, context) => {
|
|
94
|
+
const {
|
|
95
|
+
modelId
|
|
96
|
+
} = args;
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
await context.cms.deleteModel(modelId);
|
|
100
|
+
return new _handlerGraphql.Response(true);
|
|
101
|
+
} catch (e) {
|
|
102
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
initializeModel: async (_, args, context) => {
|
|
106
|
+
const {
|
|
107
|
+
modelId,
|
|
108
|
+
data
|
|
109
|
+
} = args;
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
const result = await context.cms.initializeModel(modelId, data || {});
|
|
113
|
+
return new _handlerGraphql.Response(result);
|
|
114
|
+
} catch (e) {
|
|
115
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
manageSchema =
|
|
120
|
+
/* GraphQL */
|
|
121
|
+
`
|
|
122
|
+
input CmsPredefinedValueInput {
|
|
123
|
+
label: String!
|
|
124
|
+
value: String!
|
|
125
|
+
selected: Boolean
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
input CmsPredefinedValuesInput {
|
|
129
|
+
enabled: Boolean
|
|
130
|
+
values: [CmsPredefinedValueInput]
|
|
131
|
+
}
|
|
132
|
+
input CmsFieldRendererInput {
|
|
133
|
+
name: String
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
input CmsFieldValidationInput {
|
|
137
|
+
name: String!
|
|
138
|
+
message: String
|
|
139
|
+
settings: JSON
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
input CmsContentModelFieldInput {
|
|
143
|
+
id: ID!
|
|
144
|
+
label: String!
|
|
145
|
+
helpText: String
|
|
146
|
+
placeholderText: String
|
|
147
|
+
# we never use user input - this is here to the GraphQL does not break when posting from our UI
|
|
148
|
+
# used for debugging purposes
|
|
149
|
+
storageId: String
|
|
150
|
+
fieldId: String!
|
|
151
|
+
type: String!
|
|
152
|
+
tags: [String!]
|
|
153
|
+
multipleValues: Boolean
|
|
154
|
+
predefinedValues: CmsPredefinedValuesInput
|
|
155
|
+
renderer: CmsFieldRendererInput
|
|
156
|
+
validation: [CmsFieldValidationInput]
|
|
157
|
+
listValidation: [CmsFieldValidationInput]
|
|
158
|
+
settings: JSON
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
input CmsContentModelCreateInput {
|
|
162
|
+
name: String!
|
|
163
|
+
modelId: String
|
|
164
|
+
group: RefInput!
|
|
165
|
+
description: String
|
|
166
|
+
layout: [[ID!]!]
|
|
167
|
+
fields: [CmsContentModelFieldInput!]
|
|
168
|
+
titleFieldId: String
|
|
169
|
+
tags: [String!]
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
input CmsContentModelCreateFromInput {
|
|
173
|
+
name: String!
|
|
174
|
+
modelId: String
|
|
175
|
+
group: RefInput!
|
|
176
|
+
description: String
|
|
177
|
+
locale: String
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
input CmsContentModelUpdateInput {
|
|
181
|
+
name: String
|
|
182
|
+
group: RefInput
|
|
183
|
+
description: String
|
|
184
|
+
layout: [[ID!]!]!
|
|
185
|
+
fields: [CmsContentModelFieldInput!]!
|
|
186
|
+
titleFieldId: String
|
|
187
|
+
tags: [String!]
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
type InitializeModelResponse {
|
|
191
|
+
data: Boolean
|
|
192
|
+
error: CmsError
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
extend type Mutation {
|
|
196
|
+
createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse
|
|
197
|
+
|
|
198
|
+
createContentModelFrom(
|
|
199
|
+
modelId: ID!
|
|
200
|
+
data: CmsContentModelCreateFromInput!
|
|
201
|
+
): CmsContentModelResponse
|
|
202
|
+
|
|
203
|
+
updateContentModel(
|
|
204
|
+
modelId: ID!
|
|
205
|
+
data: CmsContentModelUpdateInput!
|
|
206
|
+
): CmsContentModelResponse
|
|
207
|
+
|
|
208
|
+
deleteContentModel(modelId: ID!): CmsDeleteResponse
|
|
209
|
+
|
|
210
|
+
# users can send anything into the data variable
|
|
211
|
+
initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!
|
|
212
|
+
}
|
|
213
|
+
`;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
217
|
+
typeDefs:
|
|
218
|
+
/* GraphQL */
|
|
219
|
+
`
|
|
220
|
+
type CmsFieldValidation {
|
|
221
|
+
name: String!
|
|
222
|
+
message: String
|
|
223
|
+
settings: JSON
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
type CmsFieldRenderer {
|
|
227
|
+
name: String
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
type CmsPredefinedValue {
|
|
231
|
+
label: String
|
|
232
|
+
value: String
|
|
233
|
+
selected: Boolean
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
type CmsPredefinedValues {
|
|
237
|
+
enabled: Boolean
|
|
238
|
+
values: [CmsPredefinedValue]
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
type CmsContentModelField {
|
|
242
|
+
id: ID!
|
|
243
|
+
# auto-generated value
|
|
244
|
+
# used for debugging purposes
|
|
245
|
+
storageId: String
|
|
246
|
+
fieldId: String!
|
|
247
|
+
label: String!
|
|
248
|
+
helpText: String
|
|
249
|
+
placeholderText: String
|
|
250
|
+
type: String!
|
|
251
|
+
tags: [String!]!
|
|
252
|
+
multipleValues: Boolean
|
|
253
|
+
predefinedValues: CmsPredefinedValues
|
|
254
|
+
renderer: CmsFieldRenderer
|
|
255
|
+
validation: [CmsFieldValidation!]
|
|
256
|
+
listValidation: [CmsFieldValidation!]
|
|
257
|
+
settings: JSON
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
type CmsContentModel {
|
|
261
|
+
name: String!
|
|
262
|
+
modelId: String!
|
|
263
|
+
description: String
|
|
264
|
+
group: CmsContentModelGroup!
|
|
265
|
+
createdOn: DateTime
|
|
266
|
+
savedOn: DateTime
|
|
267
|
+
createdBy: CmsCreatedBy
|
|
268
|
+
fields: [CmsContentModelField!]!
|
|
269
|
+
lockedFields: [JSON]
|
|
270
|
+
layout: [[String!]!]!
|
|
271
|
+
titleFieldId: String
|
|
272
|
+
tags: [String!]!
|
|
273
|
+
# Returns true if the content model is registered via a plugin.
|
|
274
|
+
plugin: Boolean!
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
type CmsContentModelResponse {
|
|
278
|
+
data: CmsContentModel
|
|
279
|
+
error: CmsError
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
type CmsContentModelListResponse {
|
|
283
|
+
data: [CmsContentModel]
|
|
284
|
+
meta: CmsListMeta
|
|
285
|
+
error: CmsError
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
extend type Query {
|
|
289
|
+
getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse
|
|
290
|
+
|
|
291
|
+
listContentModels: CmsContentModelListResponse
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
${manageSchema}
|
|
295
|
+
`,
|
|
296
|
+
resolvers
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
exports.createModelsSchema = createModelsSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","hasType","find","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA5FQ;EA6FH;;EAED,OAAO,IAAIa,wCAAJ,CAAoC;IACvCC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SA7E+C;IA8EvCrC;EA9EuC,CAApC,CAAP;AAgFH,CAhRM"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CmsModelField, ApiEndpoint, CmsModel, CmsFieldTypePlugins } from "../../types";
|
|
2
|
+
import { Resolvers } from "@webiny/handler-graphql/types";
|
|
3
|
+
interface CreateFieldResolvers {
|
|
4
|
+
graphQLType: string;
|
|
5
|
+
fields: CmsModelField[];
|
|
6
|
+
isRoot: boolean;
|
|
7
|
+
extraResolvers?: Resolvers<any>;
|
|
8
|
+
}
|
|
9
|
+
interface CreateFieldResolversFactoryParams {
|
|
10
|
+
endpointType: ApiEndpoint;
|
|
11
|
+
models: CmsModel[];
|
|
12
|
+
model: CmsModel;
|
|
13
|
+
fieldTypePlugins: CmsFieldTypePlugins;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* We use a factory to avoid passing the parameters for recursive invocations.
|
|
17
|
+
* This way they will always be in the function scope, and we can only pass "fields".
|
|
18
|
+
*/
|
|
19
|
+
export declare const createFieldResolversFactory: (factoryParams: CreateFieldResolversFactoryParams) => (params: CreateFieldResolvers) => {};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
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.createFieldResolversFactory = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _set = _interopRequireDefault(require("lodash/set"));
|
|
13
|
+
|
|
14
|
+
var _entryStorage = require("../../utils/entryStorage");
|
|
15
|
+
|
|
16
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
17
|
+
|
|
18
|
+
var _getBaseFieldType = require("../../utils/getBaseFieldType");
|
|
19
|
+
|
|
20
|
+
const getCreateResolver = (plugins, field, endpointType) => {
|
|
21
|
+
const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
|
|
22
|
+
|
|
23
|
+
if (!plugins[baseType]) {
|
|
24
|
+
return null;
|
|
25
|
+
} else if (!plugins[baseType][endpointType]) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return plugins[baseType][endpointType].createResolver;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* We use a factory to avoid passing the parameters for recursive invocations.
|
|
33
|
+
* This way they will always be in the function scope, and we can only pass "fields".
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
const createFieldResolversFactory = factoryParams => {
|
|
38
|
+
const {
|
|
39
|
+
endpointType,
|
|
40
|
+
models,
|
|
41
|
+
model,
|
|
42
|
+
fieldTypePlugins
|
|
43
|
+
} = factoryParams;
|
|
44
|
+
return function createFieldResolvers(params) {
|
|
45
|
+
const {
|
|
46
|
+
graphQLType,
|
|
47
|
+
fields,
|
|
48
|
+
isRoot = false,
|
|
49
|
+
extraResolvers = {}
|
|
50
|
+
} = params;
|
|
51
|
+
const fieldResolvers = (0, _objectSpread2.default)({}, extraResolvers);
|
|
52
|
+
const typeResolvers = {};
|
|
53
|
+
|
|
54
|
+
for (const field of fields) {
|
|
55
|
+
if (!fieldTypePlugins[(0, _getBaseFieldType.getBaseFieldType)(field)]) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Field that is passed into this factory MUST have fieldId, so filter it before the method call.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if (!field.fieldId) {
|
|
64
|
+
throw new _error.default("Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.", "FIELD_ID_ERROR", {
|
|
65
|
+
field
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);
|
|
70
|
+
let resolver;
|
|
71
|
+
const fieldResolver = createResolver ? createResolver({
|
|
72
|
+
graphQLType,
|
|
73
|
+
models,
|
|
74
|
+
model,
|
|
75
|
+
field,
|
|
76
|
+
createFieldResolvers
|
|
77
|
+
}) : null;
|
|
78
|
+
/**
|
|
79
|
+
* When fieldResolver is false it will completely skip adding field fieldId into the resolvers.
|
|
80
|
+
* This is to fix the breaking of GraphQL schema.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
if (fieldResolver === false) {
|
|
84
|
+
continue;
|
|
85
|
+
} else if (typeof fieldResolver === "function") {
|
|
86
|
+
resolver = fieldResolver;
|
|
87
|
+
} else if (fieldResolver) {
|
|
88
|
+
resolver = fieldResolver.resolver;
|
|
89
|
+
Object.assign(typeResolvers, fieldResolver.typeResolvers);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const {
|
|
93
|
+
fieldId
|
|
94
|
+
} = field; // TODO @ts-refactor figure out types for parameters
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
|
|
97
|
+
fieldResolvers[fieldId] = async (parent, args, context, info) => {
|
|
98
|
+
// Get transformed value (eg. data decompression)
|
|
99
|
+
const transformedValue = await (0, _entryStorage.entryFieldFromStorageTransform)({
|
|
100
|
+
context,
|
|
101
|
+
model,
|
|
102
|
+
field,
|
|
103
|
+
value: isRoot ? parent.values[fieldId] : parent[fieldId]
|
|
104
|
+
});
|
|
105
|
+
(0, _set.default)(isRoot ? parent.values : parent, fieldId, transformedValue);
|
|
106
|
+
|
|
107
|
+
if (!resolver) {
|
|
108
|
+
return isRoot ? parent.values[fieldId] : parent[fieldId];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return await resolver(isRoot ? parent.values : parent, args, context, info);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return (0, _objectSpread2.default)({
|
|
116
|
+
[graphQLType]: fieldResolvers
|
|
117
|
+
}, typeResolvers);
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
exports.createFieldResolversFactory = createFieldResolversFactory;
|