@webiny/api-headless-cms 5.37.8 → 5.38.0-beta.1
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 +68 -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 +62 -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>;
|
|
@@ -1838,6 +1742,17 @@ export interface CmsEntryListWhere {
|
|
|
1838
1742
|
* @internal
|
|
1839
1743
|
*/
|
|
1840
1744
|
latest?: boolean;
|
|
1745
|
+
/**
|
|
1746
|
+
* ACO related parameters.
|
|
1747
|
+
*/
|
|
1748
|
+
wbyAco_location?: {
|
|
1749
|
+
folderId?: string;
|
|
1750
|
+
folderId_not?: string;
|
|
1751
|
+
folderId_in?: string[];
|
|
1752
|
+
folderId_not_in?: string[];
|
|
1753
|
+
AND?: CmsEntryListWhere[];
|
|
1754
|
+
OR?: CmsEntryListWhere[];
|
|
1755
|
+
};
|
|
1841
1756
|
/**
|
|
1842
1757
|
* This is to allow querying by any content model field defined by the user.
|
|
1843
1758
|
*/
|
|
@@ -2095,6 +2010,9 @@ export interface CreateCmsEntryInput {
|
|
|
2095
2010
|
};
|
|
2096
2011
|
[key: string]: any;
|
|
2097
2012
|
}
|
|
2013
|
+
export interface CreateCmsEntryOptionsInput {
|
|
2014
|
+
skipValidators?: string[];
|
|
2015
|
+
}
|
|
2098
2016
|
/**
|
|
2099
2017
|
* @category Context
|
|
2100
2018
|
* @category CmsEntry
|
|
@@ -2102,6 +2020,9 @@ export interface CreateCmsEntryInput {
|
|
|
2102
2020
|
export interface CreateFromCmsEntryInput {
|
|
2103
2021
|
[key: string]: any;
|
|
2104
2022
|
}
|
|
2023
|
+
export interface CreateRevisionCmsEntryOptionsInput {
|
|
2024
|
+
skipValidators?: string[];
|
|
2025
|
+
}
|
|
2105
2026
|
/**
|
|
2106
2027
|
* @category Context
|
|
2107
2028
|
* @category CmsEntry
|
|
@@ -2112,6 +2033,9 @@ export interface UpdateCmsEntryInput {
|
|
|
2112
2033
|
};
|
|
2113
2034
|
[key: string]: any;
|
|
2114
2035
|
}
|
|
2036
|
+
export interface UpdateCmsEntryOptionsInput {
|
|
2037
|
+
skipValidators?: string[];
|
|
2038
|
+
}
|
|
2115
2039
|
/**
|
|
2116
2040
|
* @category Context
|
|
2117
2041
|
* @category CmsEntry
|
|
@@ -2140,6 +2064,9 @@ export interface DeleteMultipleEntriesParams {
|
|
|
2140
2064
|
export declare type DeleteMultipleEntriesResponse = {
|
|
2141
2065
|
id: string;
|
|
2142
2066
|
}[];
|
|
2067
|
+
export interface CmsEntryValidateResponse {
|
|
2068
|
+
[key: string]: any;
|
|
2069
|
+
}
|
|
2143
2070
|
/**
|
|
2144
2071
|
* Cms Entry CRUD methods in the context.
|
|
2145
2072
|
*
|
|
@@ -2182,15 +2109,19 @@ export interface CmsEntryContext {
|
|
|
2182
2109
|
/**
|
|
2183
2110
|
* Create a new content entry.
|
|
2184
2111
|
*/
|
|
2185
|
-
createEntry: (model: CmsModel, input: CreateCmsEntryInput) => Promise<CmsEntry>;
|
|
2112
|
+
createEntry: (model: CmsModel, input: CreateCmsEntryInput, options?: CreateCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2186
2113
|
/**
|
|
2187
2114
|
* Create a new entry from already existing entry.
|
|
2188
2115
|
*/
|
|
2189
|
-
createEntryRevisionFrom: (model: CmsModel, id: string, input: CreateFromCmsEntryInput) => Promise<CmsEntry>;
|
|
2116
|
+
createEntryRevisionFrom: (model: CmsModel, id: string, input: CreateFromCmsEntryInput, options?: CreateRevisionCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2190
2117
|
/**
|
|
2191
2118
|
* Update existing entry.
|
|
2192
2119
|
*/
|
|
2193
|
-
updateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput, meta?: Record<string, any
|
|
2120
|
+
updateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput, meta?: Record<string, any>, options?: UpdateCmsEntryOptionsInput) => Promise<CmsEntry>;
|
|
2121
|
+
/**
|
|
2122
|
+
* Validate the entry - either new one or existing one.
|
|
2123
|
+
*/
|
|
2124
|
+
validateEntry: (model: CmsModel, id?: string, input?: UpdateCmsEntryInput) => Promise<CmsEntryValidateResponse>;
|
|
2194
2125
|
/**
|
|
2195
2126
|
* Move entry, and all its revisions, to a new folder.
|
|
2196
2127
|
*/
|
|
@@ -2231,74 +2162,7 @@ export interface CmsEntryContext {
|
|
|
2231
2162
|
*/
|
|
2232
2163
|
getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
|
|
2233
2164
|
/**
|
|
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
|
|
2165
|
+
* Lifecycle Events
|
|
2302
2166
|
*/
|
|
2303
2167
|
onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;
|
|
2304
2168
|
onEntryAfterCreate: Topic<OnEntryAfterCreateTopicParams>;
|
|
@@ -2348,13 +2212,6 @@ interface CmsEntryResolverFactoryParams {
|
|
|
2348
2212
|
export declare type CmsEntryResolverFactory<TSource = any, TArgs = any, TContext = CmsContext> = {
|
|
2349
2213
|
(params: CmsEntryResolverFactoryParams): GraphQLFieldResolver<TSource, TArgs, TContext>;
|
|
2350
2214
|
};
|
|
2351
|
-
/**
|
|
2352
|
-
* Settings security permission.
|
|
2353
|
-
*
|
|
2354
|
-
* @category SecurityPermission
|
|
2355
|
-
*/
|
|
2356
|
-
export interface CmsSettingsPermission extends SecurityPermission {
|
|
2357
|
-
}
|
|
2358
2215
|
/**
|
|
2359
2216
|
* A base security permission for CMS.
|
|
2360
2217
|
*
|
|
@@ -2751,30 +2608,6 @@ export declare enum CONTENT_ENTRY_STATUS {
|
|
|
2751
2608
|
PUBLISHED = "published",
|
|
2752
2609
|
UNPUBLISHED = "unpublished"
|
|
2753
2610
|
}
|
|
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
2611
|
export interface CmsSystem {
|
|
2779
2612
|
version?: string;
|
|
2780
2613
|
readAPIKey?: string;
|
|
@@ -2809,7 +2642,6 @@ export interface CmsSystemStorageOperations {
|
|
|
2809
2642
|
export interface HeadlessCmsStorageOperations<C = CmsContext> {
|
|
2810
2643
|
name: string;
|
|
2811
2644
|
system: CmsSystemStorageOperations;
|
|
2812
|
-
settings: CmsSettingsStorageOperations;
|
|
2813
2645
|
groups: CmsGroupStorageOperations;
|
|
2814
2646
|
models: CmsModelStorageOperations;
|
|
2815
2647
|
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
|