@webiny/api-headless-cms 5.37.8 → 5.38.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants.js +3 -1
- package/context.js +10 -17
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +3 -1
- package/crud/contentEntry/beforeCreate.js +3 -1
- package/crud/contentEntry/beforeUpdate.js +3 -1
- package/crud/contentEntry/entryDataValidation.d.ts +4 -2
- package/crud/contentEntry/entryDataValidation.js +220 -47
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +3 -1
- package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
- package/crud/contentEntry/referenceFieldsMapping.js +118 -97
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +5 -3
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.js +61 -64
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +1 -1
- package/crud/contentModel/beforeCreate.js +11 -9
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +3 -1
- package/crud/contentModel/beforeUpdate.d.ts +1 -1
- package/crud/contentModel/beforeUpdate.js +3 -6
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.js +3 -1
- package/crud/contentModel/contentModelManagerFactory.js +3 -1
- package/crud/contentModel/createFieldStorageId.js +3 -1
- package/crud/contentModel/defaultFields.js +3 -1
- package/crud/contentModel/ensureTypeTag.d.ts +5 -0
- package/crud/contentModel/ensureTypeTag.js +21 -0
- package/crud/contentModel/ensureTypeTag.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.js +3 -1
- package/crud/contentModel/fields/imageField.js +3 -1
- package/crud/contentModel/fields/titleField.js +3 -1
- package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
- package/crud/contentModel/listModelsFromDatabase.js +39 -0
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
- package/crud/contentModel/validate/endingAllowed.js +3 -1
- package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
- package/crud/contentModel/validate/modelId.js +3 -1
- package/crud/contentModel/validate/pluralApiName.js +3 -1
- package/crud/contentModel/validate/singularApiName.js +3 -1
- package/crud/contentModel/validateModel.js +3 -1
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.js +3 -1
- package/crud/contentModel/validation.d.ts +339 -58
- package/crud/contentModel/validation.js +71 -11
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.js +80 -156
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
- package/crud/contentModelGroup/beforeCreate.js +15 -1
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +3 -1
- package/crud/contentModelGroup/beforeUpdate.js +3 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
- package/crud/contentModelGroup/validation.d.ts +9 -6
- package/crud/contentModelGroup/validation.js +5 -2
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.js +89 -110
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.js +4 -7
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.d.ts +3 -0
- package/export/crud/exporting.js +50 -0
- package/export/crud/exporting.js.map +1 -0
- package/export/crud/importing.d.ts +3 -0
- package/export/crud/importing.js +79 -0
- package/export/crud/importing.js.map +1 -0
- package/export/crud/imports/importData.d.ts +14 -0
- package/export/crud/imports/importData.js +25 -0
- package/export/crud/imports/importData.js.map +1 -0
- package/export/crud/imports/importGroups.d.ts +8 -0
- package/export/crud/imports/importGroups.js +99 -0
- package/export/crud/imports/importGroups.js.map +1 -0
- package/export/crud/imports/importModels.d.ts +8 -0
- package/export/crud/imports/importModels.js +134 -0
- package/export/crud/imports/importModels.js.map +1 -0
- package/export/crud/imports/validateGroups.d.ts +8 -0
- package/export/crud/imports/validateGroups.js +106 -0
- package/export/crud/imports/validateGroups.js.map +1 -0
- package/export/crud/imports/validateInput.d.ts +19 -0
- package/export/crud/imports/validateInput.js +49 -0
- package/export/crud/imports/validateInput.js.map +1 -0
- package/export/crud/imports/validateModels.d.ts +9 -0
- package/export/crud/imports/validateModels.js +204 -0
- package/export/crud/imports/validateModels.js.map +1 -0
- package/export/crud/index.d.ts +4 -0
- package/export/crud/index.js +15 -0
- package/export/crud/index.js.map +1 -0
- package/export/crud/sanitize.d.ts +4 -0
- package/export/crud/sanitize.js +35 -0
- package/export/crud/sanitize.js.map +1 -0
- package/export/graphql/index.d.ts +3 -0
- package/export/graphql/index.js +188 -0
- package/export/graphql/index.js.map +1 -0
- package/export/index.d.ts +2 -0
- package/export/index.js +29 -0
- package/export/index.js.map +1 -0
- package/export/types.d.ts +111 -0
- package/export/types.js +22 -0
- package/export/types.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +3 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +3 -1
- package/fieldConverters/index.js +3 -1
- package/graphql/buildSchemaPlugins.js +3 -1
- package/graphql/checkEndpointAccess.js +3 -1
- package/graphql/createExecutableSchema.js +3 -1
- package/graphql/createRequestBody.js +3 -1
- package/graphql/formatErrorPayload.js +3 -1
- package/graphql/generateSchema.js +3 -1
- package/graphql/getSchema.d.ts +0 -1
- package/graphql/getSchema.js +23 -13
- package/graphql/getSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +3 -1
- package/graphql/handleRequest.js +3 -5
- package/graphql/handleRequest.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/index.js +4 -2
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +3 -1
- package/graphql/schema/baseSchema.d.ts +2 -3
- package/graphql/schema/baseSchema.js +58 -2
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +4 -2
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +4 -1
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +5 -5
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +3 -1
- package/graphql/schema/createFieldTypePluginRecords.js +3 -1
- package/graphql/schema/createManageResolvers.js +7 -1
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +8 -4
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +3 -1
- package/graphql/schema/createReadResolvers.js +3 -1
- package/graphql/schema/createReadSDL.js +3 -1
- package/graphql/schema/resolvers/commonFieldResolvers.js +3 -1
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +3 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
- package/graphql/schema/resolvers/manage/resolveList.js +3 -1
- package/graphql/schema/resolvers/manage/resolveMove.js +3 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +3 -1
- package/graphql/schema/resolvers/preview/resolveList.js +3 -1
- package/graphql/schema/resolvers/read/resolveGet.js +3 -1
- package/graphql/schema/resolvers/read/resolveList.js +3 -1
- package/graphql/schema/schemaPlugins.js +3 -1
- package/graphql/system.js +3 -1
- package/graphqlFields/boolean.js +3 -1
- package/graphqlFields/datetime.js +4 -3
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +29 -6
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +3 -1
- package/graphqlFields/dynamicZone/index.js +3 -1
- package/graphqlFields/file.js +3 -1
- package/graphqlFields/helpers.d.ts +0 -1
- package/graphqlFields/helpers.js +6 -18
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +3 -1
- package/graphqlFields/longText.js +14 -3
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +3 -1
- package/graphqlFields/object.js +5 -17
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +4 -2
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText.js +3 -1
- package/graphqlFields/text.js +3 -1
- package/index.d.ts +1 -1
- package/index.js +5 -2
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +3 -1
- package/modelManager/index.js +3 -1
- package/package.json +18 -19
- package/parameters/context.js +3 -1
- package/parameters/header.js +3 -1
- package/parameters/index.js +3 -1
- package/parameters/manual.js +3 -1
- package/parameters/path.js +3 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +3 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +3 -1
- package/plugins/CmsGroupPlugin.d.ts +6 -3
- package/plugins/CmsGroupPlugin.js +7 -2
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +3 -1
- package/plugins/CmsModelPlugin.d.ts +2 -2
- package/plugins/CmsModelPlugin.js +6 -2
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +3 -1
- package/plugins/StorageOperationsCmsModelPlugin.js +3 -1
- package/plugins/StorageTransformPlugin.js +3 -1
- package/plugins/index.js +3 -1
- package/storage/default.js +3 -1
- package/storage/object.js +3 -1
- package/types.d.ts +51 -230
- package/types.js +3 -17
- package/types.js.map +1 -1
- package/utils/access.js +3 -1
- package/utils/caching/Cache.d.ts +2 -0
- package/utils/caching/Cache.js +53 -0
- package/utils/caching/Cache.js.map +1 -0
- package/utils/caching/CacheKey.d.ts +3 -0
- package/utils/caching/CacheKey.js +41 -0
- package/utils/caching/CacheKey.js.map +1 -0
- package/utils/caching/index.d.ts +2 -0
- package/utils/caching/index.js +29 -0
- package/utils/caching/index.js.map +1 -0
- package/utils/caching/types.d.ts +9 -0
- package/utils/caching/types.js +7 -0
- package/utils/caching/types.js.map +1 -0
- package/utils/converters/Converter.js +3 -1
- package/utils/converters/ConverterCollection.js +3 -1
- package/utils/converters/valueKeyStorageConverter.js +3 -1
- package/utils/createTypeFromFields.js +6 -1
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js +3 -1
- package/utils/entryStorage.js +3 -1
- package/utils/filterAsync.js +3 -1
- package/utils/getBaseFieldType.js +3 -1
- package/utils/getEntryDescription.js +3 -1
- package/utils/getEntryImage.js +3 -1
- package/utils/getEntryTitle.js +3 -1
- package/utils/getSchemaFromFieldPlugins.js +3 -1
- package/utils/incrementEntryIdVersion.js +3 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +18 -0
- package/utils/index.js.map +1 -0
- package/utils/permissions/EntriesPermissions.js +3 -1
- package/utils/permissions/ModelGroupsPermissions.js +3 -1
- package/utils/permissions/ModelsPermissions.js +3 -1
- package/utils/renderFields.js +3 -1
- package/utils/renderGetFilterFields.js +3 -1
- package/utils/renderInputFields.js +3 -1
- package/utils/renderListFilterFields.js +3 -1
- package/utils/renderSortEnum.js +3 -1
- package/utils/toSlug.js +3 -1
- package/validators/dateGte.js +3 -1
- package/validators/dateLte.js +3 -1
- package/validators/gte.js +3 -1
- package/validators/in.js +3 -1
- package/validators/index.js +4 -3
- package/validators/index.js.map +1 -1
- package/validators/lte.js +3 -1
- package/validators/maxLength.js +3 -1
- package/validators/minLength.js +3 -1
- package/validators/pattern.js +3 -1
- package/validators/patternPlugins/email.js +3 -1
- package/validators/patternPlugins/index.js +3 -1
- package/validators/patternPlugins/lowerCase.js +3 -1
- package/validators/patternPlugins/lowerCaseSpace.js +3 -1
- package/validators/patternPlugins/upperCase.js +3 -1
- package/validators/patternPlugins/upperCaseSpace.js +3 -1
- package/validators/patternPlugins/url.js +3 -1
- package/validators/required.js +3 -1
- package/validators/timeGte.js +3 -1
- package/validators/timeLte.js +3 -1
- package/validators/unique.js +4 -2
- package/validators/unique.js.map +1 -1
- package/crud/contentModel/afterCreate.d.ts +0 -8
- package/crud/contentModel/afterCreate.js +0 -16
- package/crud/contentModel/afterCreate.js.map +0 -1
- package/crud/contentModel/afterCreateFrom.d.ts +0 -8
- package/crud/contentModel/afterCreateFrom.js +0 -16
- package/crud/contentModel/afterCreateFrom.js.map +0 -1
- package/crud/contentModel/afterDelete.d.ts +0 -8
- package/crud/contentModel/afterDelete.js +0 -16
- package/crud/contentModel/afterDelete.js.map +0 -1
- package/crud/contentModel/afterUpdate.d.ts +0 -8
- package/crud/contentModel/afterUpdate.js +0 -16
- package/crud/contentModel/afterUpdate.js.map +0 -1
- package/crud/contentModel/validateLayout.d.ts +0 -2
- package/crud/contentModel/validateLayout.js +0 -28
- package/crud/contentModel/validateLayout.js.map +0 -1
- package/crud/settings.crud.d.ts +0 -12
- package/crud/settings.crud.js +0 -62
- package/crud/settings.crud.js.map +0 -1
- package/utils/permissions/SettingsPermissions.d.ts +0 -4
- package/utils/permissions/SettingsPermissions.js +0 -9
- package/utils/permissions/SettingsPermissions.js.map +0 -1
- package/validators/dynamicZone.d.ts +0 -2
- package/validators/dynamicZone.js +0 -20
- package/validators/dynamicZone.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_camelCase","_upperFirst","_pluralize","_plugins","_createFieldStorageId","createApiName","name","upperFirst","camelCase","createPluralApiName","pluralize","CmsModelPlugin","Plugin","constructor","contentModel","options","_defineProperty2","default","buildModel","input","isPrivate","singularApiName","pluralApiName","noValidate","_objectSpread2","model","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","_settings","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","exports","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport camelCase from \"lodash/camelCase\";\nimport upperFirst from \"lodash/upperFirst\";\nimport pluralize from \"pluralize\";\nimport { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\n\nconst createApiName = (name: string) => {\n return upperFirst(camelCase(name));\n};\n\nconst createPluralApiName = (name: string) => {\n return pluralize(createApiName(name));\n};\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\nexport interface CmsApiModel\n extends Omit<CmsModel, \"isPrivate\" | \"fields\" | \"singularApiName\" | \"pluralApiName\"> {\n isPrivate?: never;\n noValidate?: never;\n singularApiName?: string;\n pluralApiName?: string;\n fields: CmsModelFieldInput[];\n}\n\nexport interface CmsApiModelFull extends Omit<CmsApiModel, \"fields\" | \"noValidate\"> {\n noValidate: true;\n fields: CmsModelFieldBase[];\n}\n\ninterface CmsPrivateModel\n extends Omit<CmsModel, \"isPrivate\" | \"singularApiName\" | \"pluralApiName\" | \"fields\"> {\n noValidate?: never;\n singularApiName?: never;\n pluralApiName?: never;\n isPrivate: true;\n fields: CmsModelFieldInput[];\n}\n\nexport interface CmsPrivateModelFull extends Omit<CmsPrivateModel, \"fields\" | \"noValidate\"> {\n fields: CmsModelFieldBase[];\n noValidate: true;\n}\n\nexport type CmsModelInput = CmsApiModel | CmsPrivateModel | CmsApiModelFull | CmsPrivateModelFull;\n\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const isPrivate = input.isPrivate || false;\n const singularApiName = input.singularApiName\n ? createApiName(input.singularApiName)\n : createApiName(input.name);\n const pluralApiName = input.pluralApiName\n ? createApiName(input.pluralApiName)\n : createPluralApiName(input.name);\n\n if (input.noValidate) {\n /**\n * We can safely ignore this error, because we are sure noValidate is not a model field.\n */\n // @ts-ignore\n delete input[\"noValidate\"];\n return {\n ...input,\n isPrivate,\n singularApiName,\n pluralApiName\n };\n }\n\n const model: CmsModel = {\n ...input,\n isPrivate,\n singularApiName,\n pluralApiName,\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_camelCase","_upperFirst","_pluralize","_plugins","_createFieldStorageId","createApiName","name","upperFirst","camelCase","createPluralApiName","pluralize","CmsModelPlugin","Plugin","constructor","contentModel","options","_defineProperty2","default","buildModel","input","isPrivate","singularApiName","pluralApiName","noValidate","_objectSpread2","isPlugin","model","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","_settings","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","exports","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport camelCase from \"lodash/camelCase\";\nimport upperFirst from \"lodash/upperFirst\";\nimport pluralize from \"pluralize\";\nimport { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\n\nconst createApiName = (name: string) => {\n return upperFirst(camelCase(name));\n};\n\nconst createPluralApiName = (name: string) => {\n return pluralize(createApiName(name));\n};\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\nexport interface CmsApiModel\n extends Omit<\n CmsModel,\n \"isPrivate\" | \"fields\" | \"singularApiName\" | \"pluralApiName\" | \"isPlugin\"\n > {\n isPrivate?: never;\n noValidate?: never;\n singularApiName?: string;\n pluralApiName?: string;\n fields: CmsModelFieldInput[];\n}\n\nexport interface CmsApiModelFull extends Omit<CmsApiModel, \"fields\" | \"noValidate\"> {\n noValidate: true;\n fields: CmsModelFieldBase[];\n}\n\ninterface CmsPrivateModel\n extends Omit<\n CmsModel,\n \"isPrivate\" | \"singularApiName\" | \"pluralApiName\" | \"fields\" | \"isPlugin\"\n > {\n noValidate?: never;\n singularApiName?: never;\n pluralApiName?: never;\n isPrivate: true;\n fields: CmsModelFieldInput[];\n}\n\nexport interface CmsPrivateModelFull extends Omit<CmsPrivateModel, \"fields\" | \"noValidate\"> {\n fields: CmsModelFieldBase[];\n noValidate: true;\n}\n\nexport type CmsModelInput = CmsApiModel | CmsPrivateModel | CmsApiModelFull | CmsPrivateModelFull;\n\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const isPrivate = input.isPrivate || false;\n const singularApiName = input.singularApiName\n ? createApiName(input.singularApiName)\n : createApiName(input.name);\n const pluralApiName = input.pluralApiName\n ? createApiName(input.pluralApiName)\n : createPluralApiName(input.name);\n\n if (input.noValidate) {\n /**\n * We can safely ignore this error, because we are sure noValidate is not a model field.\n */\n // @ts-expect-error\n delete input[\"noValidate\"];\n return {\n ...input,\n isPlugin: true,\n isPrivate,\n singularApiName,\n pluralApiName\n };\n }\n\n const model: CmsModel = {\n ...input,\n isPlugin: true,\n isPrivate,\n singularApiName,\n pluralApiName,\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":"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"}
|
|
@@ -22,4 +22,6 @@ class CmsParametersPlugin extends _plugins.Plugin {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.CmsParametersPlugin = CmsParametersPlugin;
|
|
25
|
-
(0, _defineProperty2.default)(CmsParametersPlugin, "type", "cms-parameters-plugin");
|
|
25
|
+
(0, _defineProperty2.default)(CmsParametersPlugin, "type", "cms-parameters-plugin");
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=CmsParametersPlugin.js.map
|
|
@@ -39,4 +39,6 @@ class StorageOperationsCmsModelPlugin extends _plugins.Plugin {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
exports.StorageOperationsCmsModelPlugin = StorageOperationsCmsModelPlugin;
|
|
42
|
-
(0, _defineProperty2.default)(StorageOperationsCmsModelPlugin, "type", "cms.storageOperations.model");
|
|
42
|
+
(0, _defineProperty2.default)(StorageOperationsCmsModelPlugin, "type", "cms.storageOperations.model");
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=StorageOperationsCmsModelPlugin.js.map
|
|
@@ -25,4 +25,6 @@ class StorageTransformPlugin extends _Plugin.Plugin {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.StorageTransformPlugin = StorageTransformPlugin;
|
|
28
|
-
(0, _defineProperty2.default)(StorageTransformPlugin, "type", "cms.storage.transform.plugin");
|
|
28
|
+
(0, _defineProperty2.default)(StorageTransformPlugin, "type", "cms.storage.transform.plugin");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=StorageTransformPlugin.js.map
|
package/plugins/index.js
CHANGED
package/storage/default.js
CHANGED
package/storage/object.js
CHANGED
package/types.d.ts
CHANGED
|
@@ -9,15 +9,14 @@ import { CmsModelConverterCallable } from "./utils/converters/ConverterCollectio
|
|
|
9
9
|
import { ModelGroupsPermissions } from "./utils/permissions/ModelGroupsPermissions";
|
|
10
10
|
import { ModelsPermissions } from "./utils/permissions/ModelsPermissions";
|
|
11
11
|
import { EntriesPermissions } from "./utils/permissions/EntriesPermissions";
|
|
12
|
-
import {
|
|
12
|
+
import { HeadlessCmsExport, HeadlessCmsImport } from "./export/types";
|
|
13
13
|
export declare type ApiEndpoint = "manage" | "preview" | "read";
|
|
14
14
|
interface HeadlessCmsPermissions {
|
|
15
15
|
groups: ModelGroupsPermissions;
|
|
16
16
|
models: ModelsPermissions;
|
|
17
17
|
entries: EntriesPermissions;
|
|
18
|
-
settings: SettingsPermissions;
|
|
19
18
|
}
|
|
20
|
-
export interface HeadlessCms extends
|
|
19
|
+
export interface HeadlessCms extends CmsSystemContext, CmsGroupContext, CmsModelContext, CmsEntryContext {
|
|
21
20
|
/**
|
|
22
21
|
* API type
|
|
23
22
|
*/
|
|
@@ -47,11 +46,16 @@ export interface HeadlessCms extends CmsSettingsContext, CmsSystemContext, CmsGr
|
|
|
47
46
|
*/
|
|
48
47
|
storageOperations: HeadlessCmsStorageOperations;
|
|
49
48
|
/**
|
|
50
|
-
* Permissions for
|
|
49
|
+
* Permissions for groups, models and entries.
|
|
51
50
|
*
|
|
52
51
|
* @internal
|
|
53
52
|
*/
|
|
54
53
|
permissions: HeadlessCmsPermissions;
|
|
54
|
+
/**
|
|
55
|
+
* Export operations.
|
|
56
|
+
*/
|
|
57
|
+
export: HeadlessCmsExport;
|
|
58
|
+
importing: HeadlessCmsImport;
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* @description This combines all contexts used in the CMS into a single one.
|
|
@@ -128,6 +132,10 @@ export interface CmsModelFieldSettings {
|
|
|
128
132
|
* Date field.
|
|
129
133
|
*/
|
|
130
134
|
type?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Disable full text search explicitly on this field.
|
|
137
|
+
*/
|
|
138
|
+
disableFullTextSearch?: boolean;
|
|
131
139
|
/**
|
|
132
140
|
* There are a lot of other settings that are possible to add, so we keep the type opened.
|
|
133
141
|
*/
|
|
@@ -307,6 +315,9 @@ export interface CmsModelFieldValidatorValidateParams<T = any> {
|
|
|
307
315
|
* @category ModelField
|
|
308
316
|
* @category FieldValidation
|
|
309
317
|
*/
|
|
318
|
+
export interface CmsModelFieldValidatorPluginValidateCb {
|
|
319
|
+
(params: CmsModelFieldValidatorValidateParams): Promise<boolean>;
|
|
320
|
+
}
|
|
310
321
|
export interface CmsModelFieldValidatorPlugin extends Plugin {
|
|
311
322
|
/**
|
|
312
323
|
* A plugin type.
|
|
@@ -323,7 +334,7 @@ export interface CmsModelFieldValidatorPlugin extends Plugin {
|
|
|
323
334
|
/**
|
|
324
335
|
* Validation method.
|
|
325
336
|
*/
|
|
326
|
-
validate
|
|
337
|
+
validate: CmsModelFieldValidatorPluginValidateCb;
|
|
327
338
|
};
|
|
328
339
|
}
|
|
329
340
|
/**
|
|
@@ -506,6 +517,10 @@ export interface CmsModel {
|
|
|
506
517
|
* Only available for the plugin constructed models.
|
|
507
518
|
*/
|
|
508
519
|
isPrivate?: boolean;
|
|
520
|
+
/**
|
|
521
|
+
* Is this model created via plugin?
|
|
522
|
+
*/
|
|
523
|
+
isPlugin?: boolean;
|
|
509
524
|
}
|
|
510
525
|
/**
|
|
511
526
|
* When sending model to the storage operations, it must contain createValueKeyToStorageConverter and createValueKeyFromStorageConverter
|
|
@@ -872,44 +887,6 @@ export interface CmsIdentity {
|
|
|
872
887
|
*/
|
|
873
888
|
type: string;
|
|
874
889
|
}
|
|
875
|
-
/**
|
|
876
|
-
* Representation of settings database model.
|
|
877
|
-
*
|
|
878
|
-
* @category Database model
|
|
879
|
-
*/
|
|
880
|
-
export interface CmsSettings {
|
|
881
|
-
/**
|
|
882
|
-
* Last content model change. Used to cache GraphQL schema.
|
|
883
|
-
*/
|
|
884
|
-
contentModelLastChange: Date;
|
|
885
|
-
/**
|
|
886
|
-
* Settings tenant.
|
|
887
|
-
*/
|
|
888
|
-
tenant: string;
|
|
889
|
-
/**
|
|
890
|
-
* Settings locale.
|
|
891
|
-
*/
|
|
892
|
-
locale: string;
|
|
893
|
-
}
|
|
894
|
-
/**
|
|
895
|
-
* Settings CRUD in context.
|
|
896
|
-
*
|
|
897
|
-
* @category Context
|
|
898
|
-
*/
|
|
899
|
-
export interface CmsSettingsContext {
|
|
900
|
-
/**
|
|
901
|
-
* Gets settings model from the database.
|
|
902
|
-
*/
|
|
903
|
-
getSettings: () => Promise<CmsSettings | null>;
|
|
904
|
-
/**
|
|
905
|
-
* Updates settings model with a new date.
|
|
906
|
-
*/
|
|
907
|
-
updateModelLastChange: () => Promise<void>;
|
|
908
|
-
/**
|
|
909
|
-
* Get the datetime when content model last changed.
|
|
910
|
-
*/
|
|
911
|
-
getModelLastChange: () => Promise<Date | null>;
|
|
912
|
-
}
|
|
913
890
|
export interface OnSystemBeforeInstallTopicParams {
|
|
914
891
|
tenant: string;
|
|
915
892
|
locale: string;
|
|
@@ -928,18 +905,7 @@ export declare type CmsSystemContext = {
|
|
|
928
905
|
setSystemVersion: (version: string) => Promise<void>;
|
|
929
906
|
installSystem: () => Promise<void>;
|
|
930
907
|
/**
|
|
931
|
-
* Lifecycle
|
|
932
|
-
*/
|
|
933
|
-
/**
|
|
934
|
-
* @deprecated
|
|
935
|
-
*/
|
|
936
|
-
onBeforeSystemInstall: Topic<OnSystemBeforeInstallTopicParams>;
|
|
937
|
-
/**
|
|
938
|
-
* @deprecated
|
|
939
|
-
*/
|
|
940
|
-
onAfterSystemInstall: Topic<OnSystemAfterInstallTopicParams>;
|
|
941
|
-
/**
|
|
942
|
-
* Released in 5.34.0
|
|
908
|
+
* Lifecycle Events
|
|
943
909
|
*/
|
|
944
910
|
onSystemBeforeInstall: Topic<OnSystemBeforeInstallTopicParams>;
|
|
945
911
|
onSystemAfterInstall: Topic<OnSystemAfterInstallTopicParams>;
|
|
@@ -952,9 +918,10 @@ export declare type CmsSystemContext = {
|
|
|
952
918
|
* @category GraphQL params
|
|
953
919
|
*/
|
|
954
920
|
export interface CmsGroupCreateInput {
|
|
921
|
+
id?: string;
|
|
955
922
|
name: string;
|
|
956
923
|
slug?: string;
|
|
957
|
-
description?: string;
|
|
924
|
+
description?: string | null;
|
|
958
925
|
icon: string;
|
|
959
926
|
}
|
|
960
927
|
/**
|
|
@@ -999,7 +966,7 @@ export interface CmsGroup {
|
|
|
999
966
|
/**
|
|
1000
967
|
* Description for the group.
|
|
1001
968
|
*/
|
|
1002
|
-
description: string;
|
|
969
|
+
description: string | null;
|
|
1003
970
|
/**
|
|
1004
971
|
* Icon for the group. In a form of "ico/ico".
|
|
1005
972
|
*/
|
|
@@ -1026,6 +993,10 @@ export interface CmsGroup {
|
|
|
1026
993
|
* Only available for the plugin constructed groups.
|
|
1027
994
|
*/
|
|
1028
995
|
isPrivate?: boolean;
|
|
996
|
+
/**
|
|
997
|
+
* Is this group created via plugin?
|
|
998
|
+
*/
|
|
999
|
+
isPlugin?: boolean;
|
|
1029
1000
|
}
|
|
1030
1001
|
/**
|
|
1031
1002
|
* A `data.where` parameter received when listing content model groups.
|
|
@@ -1120,7 +1091,7 @@ export interface CmsGroupContext {
|
|
|
1120
1091
|
/**
|
|
1121
1092
|
* Gets content model group by given id.
|
|
1122
1093
|
*/
|
|
1123
|
-
getGroup: (id: string) => Promise<CmsGroup
|
|
1094
|
+
getGroup: (id: string) => Promise<CmsGroup>;
|
|
1124
1095
|
/**
|
|
1125
1096
|
* List all content model groups. Filterable via params.
|
|
1126
1097
|
*/
|
|
@@ -1142,34 +1113,7 @@ export interface CmsGroupContext {
|
|
|
1142
1113
|
*/
|
|
1143
1114
|
clearGroupsCache: () => void;
|
|
1144
1115
|
/**
|
|
1145
|
-
* Lifecycle
|
|
1146
|
-
*/
|
|
1147
|
-
/**
|
|
1148
|
-
* @deprecated
|
|
1149
|
-
*/
|
|
1150
|
-
onBeforeGroupCreate: Topic<OnGroupBeforeCreateTopicParams>;
|
|
1151
|
-
/**
|
|
1152
|
-
* @deprecated
|
|
1153
|
-
*/
|
|
1154
|
-
onAfterGroupCreate: Topic<OnGroupAfterCreateTopicParams>;
|
|
1155
|
-
/**
|
|
1156
|
-
* @deprecated
|
|
1157
|
-
*/
|
|
1158
|
-
onBeforeGroupUpdate: Topic<OnGroupBeforeUpdateTopicParams>;
|
|
1159
|
-
/**
|
|
1160
|
-
* @deprecated
|
|
1161
|
-
*/
|
|
1162
|
-
onAfterGroupUpdate: Topic<OnGroupAfterUpdateTopicParams>;
|
|
1163
|
-
/**
|
|
1164
|
-
* @deprecated
|
|
1165
|
-
*/
|
|
1166
|
-
onBeforeGroupDelete: Topic<OnGroupBeforeDeleteTopicParams>;
|
|
1167
|
-
/**
|
|
1168
|
-
* @deprecated
|
|
1169
|
-
*/
|
|
1170
|
-
onAfterGroupDelete: Topic<OnGroupAfterDeleteTopicParams>;
|
|
1171
|
-
/**
|
|
1172
|
-
* Lifecycle events released in 5.33.0
|
|
1116
|
+
* Lifecycle Events
|
|
1173
1117
|
*/
|
|
1174
1118
|
onGroupBeforeCreate: Topic<OnGroupBeforeCreateTopicParams>;
|
|
1175
1119
|
onGroupAfterCreate: Topic<OnGroupAfterCreateTopicParams>;
|
|
@@ -1690,59 +1634,19 @@ export interface CmsModelContext {
|
|
|
1690
1634
|
* Get an instance of CmsModelManager for given content modelId.
|
|
1691
1635
|
*
|
|
1692
1636
|
* @see CmsModelManager
|
|
1693
|
-
*
|
|
1694
|
-
* @deprecated use the getEntryManager() method instead
|
|
1695
1637
|
*/
|
|
1696
|
-
getModelManager: (model: CmsModel | string) => Promise<CmsModelManager>;
|
|
1697
1638
|
getEntryManager: (model: CmsModel | string) => Promise<CmsModelManager>;
|
|
1698
1639
|
/**
|
|
1699
1640
|
* Get all content model managers mapped by modelId.
|
|
1700
1641
|
* @see CmsModelManager
|
|
1701
|
-
* @deprecated use getEntryManagers instead
|
|
1702
1642
|
*/
|
|
1703
|
-
getManagers: () => Map<string, CmsModelManager>;
|
|
1704
1643
|
getEntryManagers: () => Map<string, CmsModelManager>;
|
|
1705
1644
|
/**
|
|
1706
1645
|
* Clear all the model caches.
|
|
1707
1646
|
*/
|
|
1708
1647
|
clearModelsCache: () => void;
|
|
1709
1648
|
/**
|
|
1710
|
-
* Lifecycle
|
|
1711
|
-
*/
|
|
1712
|
-
/**
|
|
1713
|
-
* @deprecated
|
|
1714
|
-
*/
|
|
1715
|
-
onBeforeModelCreate: Topic<OnModelBeforeCreateTopicParams>;
|
|
1716
|
-
/**
|
|
1717
|
-
* @deprecated
|
|
1718
|
-
*/
|
|
1719
|
-
onAfterModelCreate: Topic<OnModelAfterCreateTopicParams>;
|
|
1720
|
-
/**
|
|
1721
|
-
* @deprecated
|
|
1722
|
-
*/
|
|
1723
|
-
onBeforeModelCreateFrom: Topic<OnModelBeforeCreateFromTopicParams>;
|
|
1724
|
-
/**
|
|
1725
|
-
* @deprecated
|
|
1726
|
-
*/
|
|
1727
|
-
onAfterModelCreateFrom: Topic<OnModelAfterCreateFromTopicParams>;
|
|
1728
|
-
/**
|
|
1729
|
-
* @deprecated
|
|
1730
|
-
*/
|
|
1731
|
-
onBeforeModelUpdate: Topic<OnModelBeforeUpdateTopicParams>;
|
|
1732
|
-
/**
|
|
1733
|
-
* @deprecated
|
|
1734
|
-
*/
|
|
1735
|
-
onAfterModelUpdate: Topic<OnModelAfterUpdateTopicParams>;
|
|
1736
|
-
/**
|
|
1737
|
-
* @deprecated
|
|
1738
|
-
*/
|
|
1739
|
-
onBeforeModelDelete: Topic<OnModelBeforeDeleteTopicParams>;
|
|
1740
|
-
/**
|
|
1741
|
-
* @deprecated
|
|
1742
|
-
*/
|
|
1743
|
-
onAfterModelDelete: Topic<OnModelAfterDeleteTopicParams>;
|
|
1744
|
-
/**
|
|
1745
|
-
* Lifecycle events - released in 5.33.0
|
|
1649
|
+
* Lifecycle Events
|
|
1746
1650
|
*/
|
|
1747
1651
|
onModelBeforeCreate: Topic<OnModelBeforeCreateTopicParams>;
|
|
1748
1652
|
onModelAfterCreate: Topic<OnModelAfterCreateTopicParams>;
|
|
@@ -2095,6 +1999,9 @@ export interface CreateCmsEntryInput {
|
|
|
2095
1999
|
};
|
|
2096
2000
|
[key: string]: any;
|
|
2097
2001
|
}
|
|
2002
|
+
export interface CreateCmsEntryOptionsInput {
|
|
2003
|
+
skipValidators?: string[];
|
|
2004
|
+
}
|
|
2098
2005
|
/**
|
|
2099
2006
|
* @category Context
|
|
2100
2007
|
* @category CmsEntry
|
|
@@ -2102,6 +2009,9 @@ export interface CreateCmsEntryInput {
|
|
|
2102
2009
|
export interface CreateFromCmsEntryInput {
|
|
2103
2010
|
[key: string]: any;
|
|
2104
2011
|
}
|
|
2012
|
+
export interface CreateRevisionCmsEntryOptionsInput {
|
|
2013
|
+
skipValidators?: string[];
|
|
2014
|
+
}
|
|
2105
2015
|
/**
|
|
2106
2016
|
* @category Context
|
|
2107
2017
|
* @category CmsEntry
|
|
@@ -2112,6 +2022,9 @@ export interface UpdateCmsEntryInput {
|
|
|
2112
2022
|
};
|
|
2113
2023
|
[key: string]: any;
|
|
2114
2024
|
}
|
|
2025
|
+
export interface UpdateCmsEntryOptionsInput {
|
|
2026
|
+
skipValidators?: string[];
|
|
2027
|
+
}
|
|
2115
2028
|
/**
|
|
2116
2029
|
* @category Context
|
|
2117
2030
|
* @category CmsEntry
|
|
@@ -2140,6 +2053,9 @@ export interface DeleteMultipleEntriesParams {
|
|
|
2140
2053
|
export declare type DeleteMultipleEntriesResponse = {
|
|
2141
2054
|
id: string;
|
|
2142
2055
|
}[];
|
|
2056
|
+
export interface CmsEntryValidateResponse {
|
|
2057
|
+
[key: string]: any;
|
|
2058
|
+
}
|
|
2143
2059
|
/**
|
|
2144
2060
|
* Cms Entry CRUD methods in the context.
|
|
2145
2061
|
*
|
|
@@ -2182,15 +2098,19 @@ export interface CmsEntryContext {
|
|
|
2182
2098
|
/**
|
|
2183
2099
|
* Create a new content entry.
|
|
2184
2100
|
*/
|
|
2185
|
-
createEntry: (model: CmsModel, input: CreateCmsEntryInput) => Promise<CmsEntry>;
|
|
2101
|
+
createEntry: (model: CmsModel, input: CreateCmsEntryInput, options?: CreateCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2186
2102
|
/**
|
|
2187
2103
|
* Create a new entry from already existing entry.
|
|
2188
2104
|
*/
|
|
2189
|
-
createEntryRevisionFrom: (model: CmsModel, id: string, input: CreateFromCmsEntryInput) => Promise<CmsEntry>;
|
|
2105
|
+
createEntryRevisionFrom: (model: CmsModel, id: string, input: CreateFromCmsEntryInput, options?: CreateRevisionCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2190
2106
|
/**
|
|
2191
2107
|
* Update existing entry.
|
|
2192
2108
|
*/
|
|
2193
|
-
updateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput, meta?: Record<string, any
|
|
2109
|
+
updateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput, meta?: Record<string, any>, options?: UpdateCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2110
|
+
/**
|
|
2111
|
+
* Validate the entry - either new one or existing one.
|
|
2112
|
+
*/
|
|
2113
|
+
validateEntry: (model: CmsModel, id?: string, input?: UpdateCmsEntryInput) => Promise<CmsEntryValidateResponse>;
|
|
2194
2114
|
/**
|
|
2195
2115
|
* Move entry, and all its revisions, to a new folder.
|
|
2196
2116
|
*/
|
|
@@ -2231,74 +2151,7 @@ export interface CmsEntryContext {
|
|
|
2231
2151
|
*/
|
|
2232
2152
|
getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
|
|
2233
2153
|
/**
|
|
2234
|
-
* Lifecycle
|
|
2235
|
-
*/
|
|
2236
|
-
/**
|
|
2237
|
-
* @deprecated
|
|
2238
|
-
*/
|
|
2239
|
-
onBeforeEntryCreate: Topic<OnEntryBeforeCreateTopicParams>;
|
|
2240
|
-
/**
|
|
2241
|
-
* @deprecated
|
|
2242
|
-
*/
|
|
2243
|
-
onAfterEntryCreate: Topic<OnEntryAfterCreateTopicParams>;
|
|
2244
|
-
/**
|
|
2245
|
-
* @deprecated
|
|
2246
|
-
*/
|
|
2247
|
-
onBeforeEntryCreateRevision: Topic<OnEntryRevisionBeforeCreateTopicParams>;
|
|
2248
|
-
/**
|
|
2249
|
-
* @deprecated
|
|
2250
|
-
*/
|
|
2251
|
-
onAfterEntryCreateRevision: Topic<OnEntryRevisionAfterCreateTopicParams>;
|
|
2252
|
-
/**
|
|
2253
|
-
* @deprecated
|
|
2254
|
-
*/
|
|
2255
|
-
onBeforeEntryUpdate: Topic<OnEntryBeforeUpdateTopicParams>;
|
|
2256
|
-
/**
|
|
2257
|
-
* @deprecated
|
|
2258
|
-
*/
|
|
2259
|
-
onAfterEntryUpdate: Topic<OnEntryAfterUpdateTopicParams>;
|
|
2260
|
-
/**
|
|
2261
|
-
* @deprecated
|
|
2262
|
-
*/
|
|
2263
|
-
onBeforeEntryDelete: Topic<OnEntryBeforeDeleteTopicParams>;
|
|
2264
|
-
/**
|
|
2265
|
-
* @deprecated
|
|
2266
|
-
*/
|
|
2267
|
-
onAfterEntryDelete: Topic<OnEntryAfterDeleteTopicParams>;
|
|
2268
|
-
/**
|
|
2269
|
-
* @deprecated
|
|
2270
|
-
*/
|
|
2271
|
-
onBeforeEntryDeleteRevision: Topic<OnEntryRevisionBeforeDeleteTopicParams>;
|
|
2272
|
-
/**
|
|
2273
|
-
* @deprecated
|
|
2274
|
-
*/
|
|
2275
|
-
onAfterEntryDeleteRevision: Topic<OnEntryRevisionAfterDeleteTopicParams>;
|
|
2276
|
-
/**
|
|
2277
|
-
* @deprecated
|
|
2278
|
-
*/
|
|
2279
|
-
onBeforeEntryPublish: Topic<OnEntryBeforePublishTopicParams>;
|
|
2280
|
-
/**
|
|
2281
|
-
* @deprecated
|
|
2282
|
-
*/
|
|
2283
|
-
onAfterEntryPublish: Topic<OnEntryAfterPublishTopicParams>;
|
|
2284
|
-
/**
|
|
2285
|
-
* @deprecated
|
|
2286
|
-
*/
|
|
2287
|
-
onBeforeEntryUnpublish: Topic<OnEntryBeforeUnpublishTopicParams>;
|
|
2288
|
-
/**
|
|
2289
|
-
* @deprecated
|
|
2290
|
-
*/
|
|
2291
|
-
onAfterEntryUnpublish: Topic<OnEntryAfterUnpublishTopicParams>;
|
|
2292
|
-
/**
|
|
2293
|
-
* @deprecated
|
|
2294
|
-
*/
|
|
2295
|
-
onBeforeEntryGet: Topic<OnEntryBeforeGetTopicParams>;
|
|
2296
|
-
/**
|
|
2297
|
-
* @deprecated
|
|
2298
|
-
*/
|
|
2299
|
-
onBeforeEntryList: Topic<EntryBeforeListTopicParams>;
|
|
2300
|
-
/**
|
|
2301
|
-
* Lifecycle events released in 5.33.0
|
|
2154
|
+
* Lifecycle Events
|
|
2302
2155
|
*/
|
|
2303
2156
|
onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;
|
|
2304
2157
|
onEntryAfterCreate: Topic<OnEntryAfterCreateTopicParams>;
|
|
@@ -2348,13 +2201,6 @@ interface CmsEntryResolverFactoryParams {
|
|
|
2348
2201
|
export declare type CmsEntryResolverFactory<TSource = any, TArgs = any, TContext = CmsContext> = {
|
|
2349
2202
|
(params: CmsEntryResolverFactoryParams): GraphQLFieldResolver<TSource, TArgs, TContext>;
|
|
2350
2203
|
};
|
|
2351
|
-
/**
|
|
2352
|
-
* Settings security permission.
|
|
2353
|
-
*
|
|
2354
|
-
* @category SecurityPermission
|
|
2355
|
-
*/
|
|
2356
|
-
export interface CmsSettingsPermission extends SecurityPermission {
|
|
2357
|
-
}
|
|
2358
2204
|
/**
|
|
2359
2205
|
* A base security permission for CMS.
|
|
2360
2206
|
*
|
|
@@ -2751,30 +2597,6 @@ export declare enum CONTENT_ENTRY_STATUS {
|
|
|
2751
2597
|
PUBLISHED = "published",
|
|
2752
2598
|
UNPUBLISHED = "unpublished"
|
|
2753
2599
|
}
|
|
2754
|
-
export interface CmsSettingsStorageOperationsGetParams {
|
|
2755
|
-
locale: string;
|
|
2756
|
-
tenant: string;
|
|
2757
|
-
}
|
|
2758
|
-
export interface CmsSettingsStorageOperationsCreateParams {
|
|
2759
|
-
settings: CmsSettings;
|
|
2760
|
-
}
|
|
2761
|
-
export interface CmsSettingsStorageOperationsUpdateParams {
|
|
2762
|
-
settings: CmsSettings;
|
|
2763
|
-
}
|
|
2764
|
-
export interface CmsSettingsStorageOperations {
|
|
2765
|
-
/**
|
|
2766
|
-
* Get the settings from the storage.
|
|
2767
|
-
*/
|
|
2768
|
-
get: (params: CmsSettingsStorageOperationsGetParams) => Promise<CmsSettings | null>;
|
|
2769
|
-
/**
|
|
2770
|
-
* Create settings in the storage.
|
|
2771
|
-
*/
|
|
2772
|
-
create: (params: CmsSettingsStorageOperationsCreateParams) => Promise<CmsSettings>;
|
|
2773
|
-
/**
|
|
2774
|
-
* Update the settings in the storage.
|
|
2775
|
-
*/
|
|
2776
|
-
update: (params: CmsSettingsStorageOperationsUpdateParams) => Promise<CmsSettings>;
|
|
2777
|
-
}
|
|
2778
2600
|
export interface CmsSystem {
|
|
2779
2601
|
version?: string;
|
|
2780
2602
|
readAPIKey?: string;
|
|
@@ -2809,7 +2631,6 @@ export interface CmsSystemStorageOperations {
|
|
|
2809
2631
|
export interface HeadlessCmsStorageOperations<C = CmsContext> {
|
|
2810
2632
|
name: string;
|
|
2811
2633
|
system: CmsSystemStorageOperations;
|
|
2812
|
-
settings: CmsSettingsStorageOperations;
|
|
2813
2634
|
groups: CmsGroupStorageOperations;
|
|
2814
2635
|
models: CmsModelStorageOperations;
|
|
2815
2636
|
entries: CmsEntryStorageOperations;
|
package/types.js
CHANGED
|
@@ -105,16 +105,6 @@ exports.CONTENT_ENTRY_STATUS = void 0;
|
|
|
105
105
|
*
|
|
106
106
|
* @category General
|
|
107
107
|
*/
|
|
108
|
-
/**
|
|
109
|
-
* Representation of settings database model.
|
|
110
|
-
*
|
|
111
|
-
* @category Database model
|
|
112
|
-
*/
|
|
113
|
-
/**
|
|
114
|
-
* Settings CRUD in context.
|
|
115
|
-
*
|
|
116
|
-
* @category Context
|
|
117
|
-
*/
|
|
118
108
|
/**
|
|
119
109
|
* A GraphQL `params.data` parameter received when creating content model group.
|
|
120
110
|
*
|
|
@@ -366,12 +356,6 @@ exports.CONTENT_ENTRY_STATUS = void 0;
|
|
|
366
356
|
* @category GraphQL resolver
|
|
367
357
|
* @category CmsEntry
|
|
368
358
|
*/
|
|
369
|
-
/**
|
|
370
|
-
* Settings security permission.
|
|
371
|
-
*
|
|
372
|
-
* @category SecurityPermission
|
|
373
|
-
*/
|
|
374
|
-
// eslint-disable-line
|
|
375
359
|
/**
|
|
376
360
|
* A base security permission for CMS.
|
|
377
361
|
*
|
|
@@ -420,4 +404,6 @@ let CONTENT_ENTRY_STATUS = /*#__PURE__*/function (CONTENT_ENTRY_STATUS) {
|
|
|
420
404
|
CONTENT_ENTRY_STATUS["UNPUBLISHED"] = "unpublished";
|
|
421
405
|
return CONTENT_ENTRY_STATUS;
|
|
422
406
|
}({});
|
|
423
|
-
exports.CONTENT_ENTRY_STATUS = CONTENT_ENTRY_STATUS;
|
|
407
|
+
exports.CONTENT_ENTRY_STATUS = CONTENT_ENTRY_STATUS;
|
|
408
|
+
|
|
409
|
+
//# sourceMappingURL=types.js.map
|