@webiny/api-headless-cms 0.0.0-unstable.3386f66516 → 0.0.0-unstable.496cf268ac
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context.js +0 -25
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +0 -5
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +0 -3
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +0 -3
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +1 -40
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.d.ts +1 -1
- package/crud/contentEntry/markLockedFields.js +15 -28
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +5 -61
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +1 -12
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +2 -1
- package/crud/contentEntry.crud.js +59 -166
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/afterCreate.js +0 -2
- package/crud/contentModel/afterCreate.js.map +1 -1
- package/crud/contentModel/afterCreateFrom.js +0 -2
- package/crud/contentModel/afterCreateFrom.js.map +1 -1
- package/crud/contentModel/afterDelete.js +0 -2
- package/crud/contentModel/afterDelete.js.map +1 -1
- package/crud/contentModel/afterUpdate.js +0 -2
- package/crud/contentModel/afterUpdate.js.map +1 -1
- package/crud/contentModel/beforeCreate.js +7 -32
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +0 -10
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.js +4 -5
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
- package/crud/contentModel/compatibility/modelApiName.js +24 -0
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.js +0 -7
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +0 -3
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.d.ts +5 -0
- package/crud/contentModel/defaultFields.js +58 -0
- package/crud/contentModel/defaultFields.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.d.ts +2 -0
- package/crud/contentModel/fields/descriptionField.js +42 -0
- package/crud/contentModel/fields/descriptionField.js.map +1 -0
- package/crud/contentModel/fields/imageField.d.ts +2 -0
- package/crud/contentModel/fields/imageField.js +46 -0
- package/crud/contentModel/fields/imageField.js.map +1 -0
- package/crud/contentModel/fields/titleField.d.ts +2 -0
- package/crud/contentModel/fields/titleField.js +58 -0
- package/crud/contentModel/fields/titleField.js.map +1 -0
- package/crud/contentModel/validateLayout.js +0 -8
- package/crud/contentModel/validateLayout.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +1 -0
- package/crud/contentModel/validateModel.js +0 -8
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +2 -1
- package/crud/contentModel/validateModelFields.js +35 -128
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +85 -43
- package/crud/contentModel/validation.js +57 -21
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.js +46 -110
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.js +0 -12
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +0 -8
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +0 -5
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/validation.js +0 -9
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.js +5 -47
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/settings.crud.js +0 -12
- package/crud/settings.crud.js.map +1 -1
- package/crud/system.crud.js +1 -96
- package/crud/system.crud.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +0 -5
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.js +4 -9
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/createExecutableSchema.js +2 -6
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/generateSchema.js +0 -7
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +16 -39
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/index.js +0 -5
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +5 -17
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.js +1 -8
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +107 -102
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +3 -20
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +22 -25
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +5 -28
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.d.ts +1 -1
- package/graphql/schema/createManageResolvers.js +33 -43
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +1 -0
- package/graphql/schema/createManageSDL.js +57 -63
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +3 -17
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +4 -18
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +1 -0
- package/graphql/schema/createReadSDL.js +24 -32
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
- package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +0 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +0 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +0 -8
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +0 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +16 -26
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +1 -30
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +0 -12
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +0 -17
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +15 -33
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/dynamicZone/index.js +0 -2
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.js +0 -8
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.js +0 -10
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +0 -12
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/longText.js +0 -10
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +0 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +7 -37
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +59 -65
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText.js +0 -9
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +0 -11
- package/graphqlFields/text.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -21
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +0 -16
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +0 -4
- package/modelManager/index.js.map +1 -1
- package/package.json +24 -25
- package/parameters/context.js +0 -4
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +0 -11
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +0 -8
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +1 -8
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +0 -11
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +0 -5
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -10
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.js +0 -8
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +0 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +11 -1
- package/plugins/CmsModelPlugin.js +15 -40
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +0 -7
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.js +0 -9
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.js +0 -14
- package/plugins/index.js.map +1 -1
- package/storage/default.js +0 -3
- package/storage/default.js.map +1 -1
- package/storage/object.js +0 -19
- package/storage/object.js.map +1 -1
- package/types.d.ts +77 -22
- package/types.js +1 -80
- package/types.js.map +1 -1
- package/utils/access.js +11 -25
- package/utils/access.js.map +1 -1
- package/utils/converters/Converter.js +0 -13
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +9 -33
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +2 -27
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +1 -0
- package/utils/createTypeFromFields.js +11 -19
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js +0 -9
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +10 -26
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +0 -5
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.js +0 -2
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +2 -0
- package/utils/getEntryDescription.js +17 -0
- package/utils/getEntryDescription.js.map +1 -0
- package/utils/getEntryImage.d.ts +2 -0
- package/utils/getEntryImage.js +17 -0
- package/utils/getEntryImage.js.map +1 -0
- package/utils/getEntryTitle.js +0 -9
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.js +2 -11
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/ownership.d.ts +3 -3
- package/utils/ownership.js +0 -8
- package/utils/ownership.js.map +1 -1
- package/utils/permissions.js +8 -23
- package/utils/permissions.js.map +1 -1
- package/utils/removeNullValues.d.ts +1 -0
- package/utils/removeNullValues.js +17 -0
- package/utils/removeNullValues.js.map +1 -0
- package/utils/removeUndefinedValues.d.ts +1 -0
- package/utils/removeUndefinedValues.js +17 -0
- package/utils/removeUndefinedValues.js.map +1 -0
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +8 -10
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +0 -13
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +4 -9
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +1 -10
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +0 -9
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +0 -4
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +0 -7
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +0 -7
- package/validators/dateLte.js.map +1 -1
- package/validators/dynamicZone.js +0 -4
- package/validators/dynamicZone.js.map +1 -1
- package/validators/gte.js +0 -8
- package/validators/gte.js.map +1 -1
- package/validators/in.js +0 -8
- package/validators/in.js.map +1 -1
- package/validators/index.js +0 -16
- package/validators/index.js.map +1 -1
- package/validators/lte.js +0 -8
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +0 -8
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +0 -8
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +0 -9
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +0 -2
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +0 -8
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +0 -2
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +0 -2
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +0 -2
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +0 -2
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +0 -2
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +0 -5
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +0 -8
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +0 -8
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +0 -7
- package/validators/unique.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fieldSystemFields","str","zod","string","trim","shortString","max","optionalShortString","optional","fieldSchema","object","id","storageId","transform","fieldId","regex","message","superRefine","value","ctx","includes","addIssue","code","ZodIssueCode","custom","path","label","helpText","nullish","default","placeholderText","nullable","type","tags","array","multipleValues","boolean","predefinedValues","enabled","values","selected","renderer","name","validation","settings","passthrough","listValidation","createModelCreateValidation","modelId","description","group","fields","layout","titleFieldId","createModelCreateFromValidation","locale","createModelUpdateValidation"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst fieldSystemFields: string[] = [\n \"id\",\n \"fieldId\",\n \"storageId\",\n \"label\",\n \"helpText\",\n \"placeholderText\",\n \"type\",\n \"multipleValues\",\n \"predefinedValues\",\n \"renderer\",\n \"validation\",\n \"listValidation\",\n \"settings\"\n];\n\nconst str = zod.string().trim();\nconst shortString = str.max(255);\nconst optionalShortString = shortString.optional();\n\nconst fieldSchema = zod.object({\n id: shortString,\n storageId: zod\n .string()\n .optional()\n .transform(() => {\n return \"\";\n }),\n fieldId: shortString\n .max(100)\n .regex(/^!?[a-zA-Z]/, {\n message: `Provided value is not valid - must not start with a number.`\n })\n .regex(/^(^[a-zA-Z0-9]+)$/, {\n message: `Provided value is not valid - must be alphanumeric string.`\n })\n .superRefine((value, ctx) => {\n if (fieldSystemFields.includes(value)) {\n return ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Provided ${value} is not valid - \"${value}\" is an auto-generated field.`,\n path: [\"fieldId\"]\n });\n }\n }),\n label: shortString,\n helpText: optionalShortString.optional().nullish().default(null),\n placeholderText: optionalShortString.optional().nullable().default(null),\n type: shortString,\n tags: zod.array(shortString).optional().default([]),\n multipleValues: zod.boolean().optional().default(false),\n predefinedValues: zod\n .object({\n enabled: zod.boolean(),\n values: zod\n .array(\n zod.object({\n value: shortString,\n label: shortString,\n selected: zod.boolean().optional().default(false)\n })\n )\n .default([])\n })\n .default({\n enabled: false,\n values: []\n })\n .optional(),\n renderer: zod\n .object({\n name: shortString\n })\n .optional(),\n validation: zod\n .array(\n zod.object({\n name: shortString,\n message: shortString,\n settings: zod.object({}).passthrough().optional().default({})\n })\n )\n .optional()\n .default([]),\n listValidation: zod\n .array(\n zod.object({\n name: shortString,\n message: shortString,\n settings: zod.object({}).passthrough().optional().default({})\n })\n )\n .optional()\n .default([]),\n settings: zod.object({}).passthrough().optional().default({})\n});\n\nexport const createModelCreateValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString,\n description: optionalShortString,\n group: shortString,\n fields: zod.array(fieldSchema).default([]),\n layout: zod.array(zod.array(shortString)).default([]),\n tags: zod.array(shortString).optional(),\n titleFieldId: optionalShortString\n });\n};\n\nexport const createModelCreateFromValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString,\n description: optionalShortString,\n group: shortString,\n locale: optionalShortString\n });\n};\n\nexport const createModelUpdateValidation = () => {\n return zod.object({\n name: optionalShortString,\n description: optionalShortString,\n group: optionalShortString,\n fields: zod.array(fieldSchema),\n layout: zod.array(zod.array(shortString)),\n titleFieldId: optionalShortString,\n tags: zod.array(shortString).optional()\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["fieldSystemFields","str","zod","string","trim","shortString","max","optionalShortString","optional","optionalNullishShortString","nullish","fieldSchema","object","id","storageId","transform","fieldId","regex","message","superRefine","value","ctx","includes","addIssue","code","ZodIssueCode","custom","path","label","helpText","default","placeholderText","nullable","type","tags","array","multipleValues","boolean","predefinedValues","enabled","values","selected","renderer","name","validation","settings","passthrough","listValidation","refinementValidation","upperFirst","camelCase","refinementSingularValidationMessage","refinementPluralValidationMessage","createModelCreateValidation","modelId","singularApiName","refine","pluralApiName","description","group","icon","fields","layout","titleFieldId","descriptionFieldId","imageFieldId","defaultFields","createModelCreateFromValidation","locale","createModelUpdateValidation"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport upperFirst from \"lodash/upperFirst\";\nimport camelCase from \"lodash/camelCase\";\n\nconst fieldSystemFields: string[] = [\n \"id\",\n \"fieldId\",\n \"storageId\",\n \"label\",\n \"helpText\",\n \"placeholderText\",\n \"type\",\n \"multipleValues\",\n \"predefinedValues\",\n \"renderer\",\n \"validation\",\n \"listValidation\",\n \"settings\"\n];\n\nconst str = zod.string().trim();\nconst shortString = str.max(255);\nconst optionalShortString = shortString.optional();\nconst optionalNullishShortString = optionalShortString.nullish();\n\nconst fieldSchema = zod.object({\n id: shortString,\n storageId: zod\n .string()\n .optional()\n .transform(() => {\n return \"\";\n }),\n fieldId: shortString\n .max(100)\n .regex(/^!?[a-zA-Z]/, {\n message: `Provided value is not valid - must not start with a number.`\n })\n .regex(/^(^[a-zA-Z0-9]+)$/, {\n message: `Provided value is not valid - must be alphanumeric string.`\n })\n .superRefine((value, ctx) => {\n if (fieldSystemFields.includes(value)) {\n return ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Provided ${value} is not valid - \"${value}\" is an auto-generated field.`,\n path: [\"fieldId\"]\n });\n }\n }),\n label: shortString,\n helpText: optionalShortString.optional().nullish().default(null),\n placeholderText: optionalShortString.optional().nullable().default(null),\n type: shortString,\n tags: zod.array(shortString).optional().default([]),\n multipleValues: zod\n .boolean()\n .optional()\n .nullish()\n .transform(value => {\n return !!value;\n })\n .default(false),\n predefinedValues: zod\n .object({\n enabled: zod.boolean(),\n values: zod\n .array(\n zod.object({\n value: shortString,\n label: shortString,\n selected: zod.boolean().optional().default(false)\n })\n )\n .default([])\n })\n .default({\n enabled: false,\n values: []\n })\n .optional(),\n renderer: zod\n .object({\n name: shortString\n })\n .optional(),\n validation: zod\n .array(\n zod.object({\n name: shortString,\n message: shortString,\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .optional()\n .default([]),\n listValidation: zod\n .array(\n zod.object({\n name: shortString,\n message: shortString,\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n })\n )\n .optional()\n .default([]),\n settings: zod\n .object({})\n .passthrough()\n .optional()\n .nullish()\n .transform(value => {\n return value || {};\n })\n .default({})\n});\n\nconst refinementValidation = (value: string): boolean => {\n return value === upperFirst(camelCase(value));\n};\nconst refinementSingularValidationMessage = (value?: string) => {\n return {\n message: `The Singular API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategory\" or \"CarMake\".`\n };\n};\nconst refinementPluralValidationMessage = (value?: string) => {\n return {\n message: `The Plural API Name value \"${\n value || \"undefined\"\n }\" is not valid. It must in Upper First + Camel Cased form. For example: \"ArticleCategories\" or \"CarMakes\".`\n };\n};\n\nexport const createModelCreateValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString,\n singularApiName: shortString.refine(\n refinementValidation,\n refinementSingularValidationMessage\n ),\n pluralApiName: shortString.refine(refinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema).default([]),\n layout: zod.array(zod.array(shortString)).default([]),\n tags: zod.array(shortString).optional(),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n defaultFields: zod.boolean().nullish()\n });\n};\n\nexport const createModelCreateFromValidation = () => {\n return zod.object({\n name: shortString,\n modelId: optionalShortString,\n singularApiName: shortString.refine(\n refinementValidation,\n refinementSingularValidationMessage\n ),\n pluralApiName: shortString.refine(refinementValidation, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: shortString,\n icon: optionalNullishShortString,\n locale: optionalShortString\n });\n};\n\nexport const createModelUpdateValidation = () => {\n return zod.object({\n name: optionalShortString,\n singularApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return refinementValidation(value);\n }, refinementSingularValidationMessage),\n pluralApiName: optionalShortString.refine(value => {\n if (!value) {\n return true;\n }\n return refinementValidation(value);\n }, refinementPluralValidationMessage),\n description: optionalNullishShortString,\n group: optionalShortString,\n icon: optionalNullishShortString,\n fields: zod.array(fieldSchema),\n layout: zod.array(zod.array(shortString)),\n titleFieldId: optionalShortString.nullish(),\n descriptionFieldId: optionalShortString.nullish(),\n imageFieldId: optionalShortString.nullish(),\n tags: zod.array(shortString).optional()\n });\n};\n"],"mappings":"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"}
|
|
@@ -1,52 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createModelsCrud = void 0;
|
|
9
|
-
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
10
|
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
13
|
-
|
|
14
11
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
15
|
-
|
|
16
12
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
17
|
-
|
|
18
13
|
var _contentModelManagerFactory = require("./contentModel/contentModelManagerFactory");
|
|
19
|
-
|
|
20
14
|
var _pubsub = require("@webiny/pubsub");
|
|
21
|
-
|
|
22
15
|
var _beforeCreate = require("./contentModel/beforeCreate");
|
|
23
|
-
|
|
24
16
|
var _beforeUpdate = require("./contentModel/beforeUpdate");
|
|
25
|
-
|
|
26
17
|
var _beforeDelete = require("./contentModel/beforeDelete");
|
|
27
|
-
|
|
28
18
|
var _afterCreate = require("./contentModel/afterCreate");
|
|
29
|
-
|
|
30
19
|
var _afterUpdate = require("./contentModel/afterUpdate");
|
|
31
|
-
|
|
32
20
|
var _afterDelete = require("./contentModel/afterDelete");
|
|
33
|
-
|
|
34
21
|
var _afterCreateFrom = require("./contentModel/afterCreateFrom");
|
|
35
|
-
|
|
36
22
|
var _CmsModelPlugin = require("../plugins/CmsModelPlugin");
|
|
37
|
-
|
|
38
23
|
var _permissions = require("../utils/permissions");
|
|
39
|
-
|
|
40
24
|
var _filterAsync = require("../utils/filterAsync");
|
|
41
|
-
|
|
42
25
|
var _ownership = require("../utils/ownership");
|
|
43
|
-
|
|
44
26
|
var _access = require("../utils/access");
|
|
45
|
-
|
|
46
27
|
var _validation = require("./contentModel/validation");
|
|
47
|
-
|
|
48
28
|
var _utils = require("@webiny/utils");
|
|
49
|
-
|
|
29
|
+
var _defaultFields = require("./contentModel/defaultFields");
|
|
30
|
+
var _removeUndefinedValues = require("../utils/removeUndefinedValues");
|
|
31
|
+
var _modelApiName = require("./contentModel/compatibility/modelApiName");
|
|
32
|
+
const _excluded = ["defaultFields"];
|
|
50
33
|
/**
|
|
51
34
|
* Given a model, return an array of tags ensuring the `type` tag is set.
|
|
52
35
|
*/
|
|
@@ -54,14 +37,11 @@ const ensureTypeTag = model => {
|
|
|
54
37
|
// Let's make sure we have a `type` tag assigned.
|
|
55
38
|
// If `type` tag is not set, set it to a default one (`model`).
|
|
56
39
|
const tags = model.tags || [];
|
|
57
|
-
|
|
58
40
|
if (!tags.some(tag => tag.startsWith("type:"))) {
|
|
59
41
|
tags.push("type:model");
|
|
60
42
|
}
|
|
61
|
-
|
|
62
43
|
return tags;
|
|
63
44
|
};
|
|
64
|
-
|
|
65
45
|
const createModelsCrud = params => {
|
|
66
46
|
const {
|
|
67
47
|
getTenant,
|
|
@@ -82,32 +62,33 @@ const createModelsCrud = params => {
|
|
|
82
62
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
|
|
83
63
|
tags: ensureTypeTag(model),
|
|
84
64
|
tenant: model.tenant || getTenant().id,
|
|
85
|
-
locale: model.locale || getLocale().code
|
|
65
|
+
locale: model.locale || getLocale().code,
|
|
66
|
+
/**
|
|
67
|
+
* TODO: remove in v5.36.0
|
|
68
|
+
* This is for backward compatibility while migrations are not yet executed.
|
|
69
|
+
*/
|
|
70
|
+
singularApiName: (0, _modelApiName.ensureSingularApiName)(model),
|
|
71
|
+
pluralApiName: (0, _modelApiName.ensurePluralApiName)(model)
|
|
86
72
|
});
|
|
87
73
|
})];
|
|
88
74
|
})
|
|
89
75
|
};
|
|
90
|
-
|
|
91
76
|
const clearModelsCache = () => {
|
|
92
77
|
for (const loader of Object.values(loaders)) {
|
|
93
78
|
loader.clearAll();
|
|
94
79
|
}
|
|
95
80
|
};
|
|
96
|
-
|
|
97
81
|
const managers = new Map();
|
|
98
|
-
|
|
99
82
|
const updateManager = async (context, model) => {
|
|
100
83
|
const manager = await (0, _contentModelManagerFactory.contentModelManagerFactory)(context, model);
|
|
101
84
|
managers.set(model.modelId, manager);
|
|
102
85
|
return manager;
|
|
103
86
|
};
|
|
104
|
-
|
|
105
87
|
const checkModelPermissions = check => {
|
|
106
88
|
return (0, _permissions.checkPermissions)(context, "cms.contentModel", {
|
|
107
89
|
rwd: check
|
|
108
90
|
});
|
|
109
91
|
};
|
|
110
|
-
|
|
111
92
|
const getModelsAsPlugins = () => {
|
|
112
93
|
const tenant = getTenant().id;
|
|
113
94
|
const locale = getLocale().code;
|
|
@@ -115,19 +96,16 @@ const createModelsCrud = params => {
|
|
|
115
96
|
/**
|
|
116
97
|
* We need to filter out models that are not for this tenant or locale.
|
|
117
98
|
* If it does not have tenant or locale define, it is for every locale and tenant
|
|
118
|
-
|
|
119
|
-
.filter(plugin => {
|
|
99
|
+
*/.filter(plugin => {
|
|
120
100
|
const {
|
|
121
101
|
tenant: modelTenant,
|
|
122
102
|
locale: modelLocale
|
|
123
103
|
} = plugin.contentModel;
|
|
124
|
-
|
|
125
104
|
if (modelTenant && modelTenant !== tenant) {
|
|
126
105
|
return false;
|
|
127
106
|
} else if (modelLocale && modelLocale !== locale) {
|
|
128
107
|
return false;
|
|
129
108
|
}
|
|
130
|
-
|
|
131
109
|
return true;
|
|
132
110
|
}).map(plugin => {
|
|
133
111
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModel), {}, {
|
|
@@ -138,37 +116,30 @@ const createModelsCrud = params => {
|
|
|
138
116
|
});
|
|
139
117
|
});
|
|
140
118
|
};
|
|
141
|
-
|
|
142
119
|
const modelsGet = async modelId => {
|
|
143
120
|
const pluginModel = getModelsAsPlugins().find(model => model.modelId === modelId);
|
|
144
|
-
|
|
145
121
|
if (pluginModel) {
|
|
146
122
|
return pluginModel;
|
|
147
123
|
}
|
|
148
|
-
|
|
149
124
|
const model = await storageOperations.models.get({
|
|
150
125
|
tenant: getTenant().id,
|
|
151
126
|
locale: getLocale().code,
|
|
152
127
|
modelId
|
|
153
128
|
});
|
|
154
|
-
|
|
155
129
|
if (!model) {
|
|
156
130
|
throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
|
|
157
131
|
}
|
|
158
|
-
|
|
159
132
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
|
|
160
133
|
tags: ensureTypeTag(model),
|
|
161
134
|
tenant: model.tenant || getTenant().id,
|
|
162
135
|
locale: model.locale || getLocale().code
|
|
163
136
|
});
|
|
164
137
|
};
|
|
165
|
-
|
|
166
138
|
const modelsList = async () => {
|
|
167
139
|
const databaseModels = await loaders.listModels.load("listModels");
|
|
168
140
|
const pluginsModels = getModelsAsPlugins();
|
|
169
141
|
return databaseModels.concat(pluginsModels);
|
|
170
142
|
};
|
|
171
|
-
|
|
172
143
|
const listModels = async () => {
|
|
173
144
|
const permission = await checkModelPermissions("r");
|
|
174
145
|
const models = await modelsList();
|
|
@@ -176,11 +147,9 @@ const createModelsCrud = params => {
|
|
|
176
147
|
if (!(0, _ownership.validateOwnership)(context, permission, model)) {
|
|
177
148
|
return false;
|
|
178
149
|
}
|
|
179
|
-
|
|
180
150
|
return (0, _access.validateModelAccess)(context, model);
|
|
181
151
|
});
|
|
182
152
|
};
|
|
183
|
-
|
|
184
153
|
const getModel = async modelId => {
|
|
185
154
|
const permission = await checkModelPermissions("r");
|
|
186
155
|
const model = await modelsGet(modelId);
|
|
@@ -188,61 +157,50 @@ const createModelsCrud = params => {
|
|
|
188
157
|
await (0, _access.checkModelAccess)(context, model);
|
|
189
158
|
return model;
|
|
190
159
|
};
|
|
191
|
-
|
|
192
160
|
const getModelManager = async target => {
|
|
193
161
|
const modelId = typeof target === "string" ? target : target.modelId;
|
|
194
|
-
|
|
195
162
|
if (managers.has(modelId)) {
|
|
196
163
|
return managers.get(modelId);
|
|
197
164
|
}
|
|
198
|
-
|
|
199
165
|
const models = await modelsList();
|
|
200
166
|
const model = models.find(m => m.modelId === modelId);
|
|
201
|
-
|
|
202
167
|
if (!model) {
|
|
203
168
|
throw new _handlerGraphql.NotFoundError(`There is no content model "${modelId}".`);
|
|
204
169
|
}
|
|
205
|
-
|
|
206
170
|
return await updateManager(context, model);
|
|
207
171
|
};
|
|
172
|
+
|
|
208
173
|
/**
|
|
209
174
|
* Create
|
|
210
175
|
*/
|
|
211
|
-
|
|
212
|
-
|
|
213
176
|
const onModelBeforeCreate = (0, _pubsub.createTopic)("cms.onModelBeforeCreate");
|
|
214
177
|
const onModelAfterCreate = (0, _pubsub.createTopic)("cms.onModelAfterCreate");
|
|
215
178
|
const onModelCreateError = (0, _pubsub.createTopic)("cms.onModelCreateError");
|
|
216
179
|
/**
|
|
217
180
|
* Create from / clone
|
|
218
181
|
*/
|
|
219
|
-
|
|
220
182
|
const onModelBeforeCreateFrom = (0, _pubsub.createTopic)("cms.onModelBeforeCreateFrom");
|
|
221
183
|
const onModelAfterCreateFrom = (0, _pubsub.createTopic)("cms.onModelAfterCreateFrom");
|
|
222
184
|
const onModelCreateFromError = (0, _pubsub.createTopic)("cms.onModelCreateFromError");
|
|
223
185
|
/**
|
|
224
186
|
* Update
|
|
225
187
|
*/
|
|
226
|
-
|
|
227
188
|
const onModelBeforeUpdate = (0, _pubsub.createTopic)("cms.onModelBeforeUpdate");
|
|
228
189
|
const onModelAfterUpdate = (0, _pubsub.createTopic)("cms.onModelAfterUpdate");
|
|
229
190
|
const onModelUpdateError = (0, _pubsub.createTopic)("cms.onModelUpdateError");
|
|
230
191
|
/**
|
|
231
192
|
* Delete
|
|
232
193
|
*/
|
|
233
|
-
|
|
234
194
|
const onModelBeforeDelete = (0, _pubsub.createTopic)("cms.onModelBeforeDelete");
|
|
235
195
|
const onModelAfterDelete = (0, _pubsub.createTopic)("cms.onModelAfterDelete");
|
|
236
196
|
const onModelDeleteError = (0, _pubsub.createTopic)("cms.onModelDeleteError");
|
|
237
197
|
/**
|
|
238
198
|
* Initialize
|
|
239
199
|
*/
|
|
240
|
-
|
|
241
200
|
const onModelInitialize = (0, _pubsub.createTopic)("cms.onModelInitialize");
|
|
242
201
|
/**
|
|
243
202
|
* We need to assign some default behaviors.
|
|
244
203
|
*/
|
|
245
|
-
|
|
246
204
|
(0, _beforeCreate.assignModelBeforeCreate)({
|
|
247
205
|
onModelBeforeCreate,
|
|
248
206
|
onModelBeforeCreateFrom,
|
|
@@ -286,7 +244,6 @@ const createModelsCrud = params => {
|
|
|
286
244
|
onAfterModelUpdate: onModelAfterUpdate,
|
|
287
245
|
onBeforeModelDelete: onModelBeforeDelete,
|
|
288
246
|
onAfterModelDelete: onModelAfterDelete,
|
|
289
|
-
|
|
290
247
|
/**
|
|
291
248
|
* Released in 5.34.0
|
|
292
249
|
*/
|
|
@@ -306,30 +263,38 @@ const createModelsCrud = params => {
|
|
|
306
263
|
clearModelsCache,
|
|
307
264
|
getModel,
|
|
308
265
|
listModels,
|
|
309
|
-
|
|
310
266
|
async createModel(input) {
|
|
311
267
|
await checkModelPermissions("w");
|
|
312
268
|
const result = await (0, _validation.createModelCreateValidation)().safeParseAsync(input);
|
|
313
|
-
|
|
314
269
|
if (!result.success) {
|
|
315
270
|
throw (0, _utils.createZodError)(result.error);
|
|
316
271
|
}
|
|
317
|
-
|
|
318
|
-
|
|
272
|
+
/**
|
|
273
|
+
* We need to extract the defaultFields because it is not for the CmsModel object.
|
|
274
|
+
*/
|
|
275
|
+
const _removeUndefinedValue = (0, _removeUndefinedValues.removeUndefinedValues)(result.data),
|
|
276
|
+
{
|
|
277
|
+
defaultFields
|
|
278
|
+
} = _removeUndefinedValue,
|
|
279
|
+
data = (0, _objectWithoutProperties2.default)(_removeUndefinedValue, _excluded);
|
|
280
|
+
if (defaultFields) {
|
|
281
|
+
(0, _defaultFields.assignModelDefaultFields)(data);
|
|
282
|
+
}
|
|
319
283
|
context.security.disableAuthorization();
|
|
320
284
|
const group = await context.cms.getGroup(data.group);
|
|
321
285
|
context.security.enableAuthorization();
|
|
322
|
-
|
|
323
286
|
if (!group) {
|
|
324
287
|
throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
|
|
325
288
|
}
|
|
326
|
-
|
|
327
289
|
const identity = getIdentity();
|
|
328
|
-
const model = {
|
|
329
|
-
name: data.name,
|
|
330
|
-
description: data.description || "",
|
|
290
|
+
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
331
291
|
modelId: data.modelId || "",
|
|
292
|
+
singularApiName: data.singularApiName,
|
|
293
|
+
pluralApiName: data.pluralApiName,
|
|
332
294
|
titleFieldId: "id",
|
|
295
|
+
descriptionFieldId: null,
|
|
296
|
+
imageFieldId: null,
|
|
297
|
+
description: data.description || "",
|
|
333
298
|
locale: getLocale().code,
|
|
334
299
|
tenant: getTenant().id,
|
|
335
300
|
group: {
|
|
@@ -343,14 +308,10 @@ const createModelsCrud = params => {
|
|
|
343
308
|
},
|
|
344
309
|
createdOn: new Date().toISOString(),
|
|
345
310
|
savedOn: new Date().toISOString(),
|
|
346
|
-
fields: data.fields,
|
|
347
311
|
lockedFields: [],
|
|
348
|
-
layout: data.layout || [],
|
|
349
|
-
tags: [...(data.tags || [])],
|
|
350
312
|
webinyVersion: context.WEBINY_VERSION
|
|
351
|
-
};
|
|
313
|
+
});
|
|
352
314
|
model.tags = ensureTypeTag(model);
|
|
353
|
-
|
|
354
315
|
try {
|
|
355
316
|
await onModelBeforeCreate.publish({
|
|
356
317
|
input: data,
|
|
@@ -375,7 +336,6 @@ const createModelsCrud = params => {
|
|
|
375
336
|
throw ex;
|
|
376
337
|
}
|
|
377
338
|
},
|
|
378
|
-
|
|
379
339
|
/**
|
|
380
340
|
* Method does not check for permissions or ownership.
|
|
381
341
|
* @internal
|
|
@@ -390,7 +350,6 @@ const createModelsCrud = params => {
|
|
|
390
350
|
locale: initialModel.locale || getLocale().code,
|
|
391
351
|
webinyVersion: context.WEBINY_VERSION
|
|
392
352
|
});
|
|
393
|
-
|
|
394
353
|
try {
|
|
395
354
|
await onModelBeforeUpdate.publish({
|
|
396
355
|
input: {},
|
|
@@ -418,54 +377,44 @@ const createModelsCrud = params => {
|
|
|
418
377
|
throw ex;
|
|
419
378
|
}
|
|
420
379
|
},
|
|
421
|
-
|
|
422
380
|
async createModelFrom(modelId, userInput) {
|
|
423
381
|
await checkModelPermissions("w");
|
|
424
382
|
/**
|
|
425
383
|
* Get a model record; this will also perform ownership validation.
|
|
426
384
|
*/
|
|
427
|
-
|
|
428
385
|
const original = await getModel(modelId);
|
|
429
|
-
const result = await (0, _validation.createModelCreateFromValidation)().safeParseAsync({
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
description: userInput.description || original.description,
|
|
433
|
-
group: userInput.group,
|
|
434
|
-
locale: userInput.locale
|
|
435
|
-
});
|
|
436
|
-
|
|
386
|
+
const result = await (0, _validation.createModelCreateFromValidation)().safeParseAsync((0, _objectSpread2.default)((0, _objectSpread2.default)({}, userInput), {}, {
|
|
387
|
+
description: userInput.description || original.description
|
|
388
|
+
}));
|
|
437
389
|
if (!result.success) {
|
|
438
390
|
throw (0, _utils.createZodError)(result.error);
|
|
439
391
|
}
|
|
440
|
-
|
|
441
|
-
const data = result.data;
|
|
392
|
+
const data = (0, _removeUndefinedValues.removeUndefinedValues)(result.data);
|
|
442
393
|
const locale = await context.i18n.getLocale(data.locale || original.locale);
|
|
443
|
-
|
|
444
394
|
if (!locale) {
|
|
445
395
|
throw new _handlerGraphql.NotFoundError(`There is no locale "${data.locale}".`);
|
|
446
396
|
}
|
|
447
397
|
/**
|
|
448
398
|
* Use storage operations directly because we cannot get group from different locale via context methods.
|
|
449
399
|
*/
|
|
450
|
-
|
|
451
|
-
|
|
452
400
|
const group = await context.cms.storageOperations.groups.get({
|
|
453
401
|
id: data.group,
|
|
454
402
|
tenant: original.tenant,
|
|
455
403
|
locale: locale.code
|
|
456
404
|
});
|
|
457
|
-
|
|
458
405
|
if (!group) {
|
|
459
406
|
throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
|
|
460
407
|
}
|
|
461
|
-
|
|
462
408
|
const identity = getIdentity();
|
|
463
409
|
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), {}, {
|
|
410
|
+
singularApiName: data.singularApiName,
|
|
411
|
+
pluralApiName: data.pluralApiName,
|
|
464
412
|
locale: locale.code,
|
|
465
413
|
group: {
|
|
466
414
|
id: group.id,
|
|
467
415
|
name: group.name
|
|
468
416
|
},
|
|
417
|
+
icon: data.icon,
|
|
469
418
|
name: data.name,
|
|
470
419
|
modelId: data.modelId || "",
|
|
471
420
|
description: data.description || "",
|
|
@@ -479,7 +428,6 @@ const createModelsCrud = params => {
|
|
|
479
428
|
lockedFields: [],
|
|
480
429
|
webinyVersion: context.WEBINY_VERSION
|
|
481
430
|
});
|
|
482
|
-
|
|
483
431
|
try {
|
|
484
432
|
await onModelBeforeCreateFrom.publish({
|
|
485
433
|
input: data,
|
|
@@ -507,55 +455,50 @@ const createModelsCrud = params => {
|
|
|
507
455
|
throw ex;
|
|
508
456
|
}
|
|
509
457
|
},
|
|
510
|
-
|
|
511
458
|
async updateModel(modelId, input) {
|
|
512
|
-
await checkModelPermissions("w");
|
|
459
|
+
await checkModelPermissions("w");
|
|
513
460
|
|
|
461
|
+
// Get a model record; this will also perform ownership validation.
|
|
514
462
|
const original = await getModel(modelId);
|
|
515
463
|
const result = await (0, _validation.createModelUpdateValidation)().safeParseAsync(input);
|
|
516
|
-
|
|
517
464
|
if (!result.success) {
|
|
518
465
|
throw (0, _utils.createZodError)(result.error);
|
|
519
466
|
}
|
|
520
|
-
|
|
521
|
-
const data = result.data;
|
|
522
|
-
|
|
467
|
+
const data = (0, _removeUndefinedValues.removeUndefinedValues)(result.data);
|
|
523
468
|
if (Object.keys(data).length === 0) {
|
|
524
469
|
/**
|
|
525
470
|
* We need to return the original if nothing is to be updated.
|
|
526
471
|
*/
|
|
527
472
|
return original;
|
|
528
473
|
}
|
|
529
|
-
|
|
530
474
|
let group = {
|
|
531
475
|
id: original.group.id,
|
|
532
476
|
name: original.group.name
|
|
533
477
|
};
|
|
534
|
-
|
|
535
478
|
if (data.group) {
|
|
536
479
|
context.security.disableAuthorization();
|
|
537
480
|
const groupData = await context.cms.getGroup(data.group);
|
|
538
481
|
context.security.enableAuthorization();
|
|
539
|
-
|
|
540
482
|
if (!groupData) {
|
|
541
483
|
throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
|
|
542
484
|
}
|
|
543
|
-
|
|
544
485
|
group = {
|
|
545
486
|
id: groupData.id,
|
|
546
487
|
name: groupData.name
|
|
547
488
|
};
|
|
548
489
|
}
|
|
549
|
-
|
|
550
490
|
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data), {}, {
|
|
491
|
+
titleFieldId: data.titleFieldId === undefined ? original.titleFieldId : data.titleFieldId,
|
|
492
|
+
descriptionFieldId: data.descriptionFieldId === undefined ? original.descriptionFieldId : data.descriptionFieldId,
|
|
493
|
+
imageFieldId: data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,
|
|
551
494
|
group,
|
|
495
|
+
description: data.description || original.description,
|
|
552
496
|
tenant: original.tenant || getTenant().id,
|
|
553
497
|
locale: original.locale || getLocale().code,
|
|
554
498
|
webinyVersion: context.WEBINY_VERSION,
|
|
555
499
|
savedOn: new Date().toISOString()
|
|
556
500
|
});
|
|
557
501
|
model.tags = ensureTypeTag(model);
|
|
558
|
-
|
|
559
502
|
try {
|
|
560
503
|
await onModelBeforeUpdate.publish({
|
|
561
504
|
input: data,
|
|
@@ -582,16 +525,13 @@ const createModelsCrud = params => {
|
|
|
582
525
|
throw ex;
|
|
583
526
|
}
|
|
584
527
|
},
|
|
585
|
-
|
|
586
528
|
async deleteModel(modelId) {
|
|
587
529
|
await checkModelPermissions("d");
|
|
588
530
|
const model = await getModel(modelId);
|
|
589
|
-
|
|
590
531
|
try {
|
|
591
532
|
await onModelBeforeDelete.publish({
|
|
592
533
|
model
|
|
593
534
|
});
|
|
594
|
-
|
|
595
535
|
try {
|
|
596
536
|
await storageOperations.models.delete({
|
|
597
537
|
model
|
|
@@ -602,7 +542,6 @@ const createModelsCrud = params => {
|
|
|
602
542
|
modelId: model.modelId
|
|
603
543
|
});
|
|
604
544
|
}
|
|
605
|
-
|
|
606
545
|
await onModelAfterDelete.publish({
|
|
607
546
|
model
|
|
608
547
|
});
|
|
@@ -615,7 +554,6 @@ const createModelsCrud = params => {
|
|
|
615
554
|
throw ex;
|
|
616
555
|
}
|
|
617
556
|
},
|
|
618
|
-
|
|
619
557
|
async initializeModel(modelId, data) {
|
|
620
558
|
/**
|
|
621
559
|
* We require that users have write permissions to initialize models.
|
|
@@ -629,7 +567,6 @@ const createModelsCrud = params => {
|
|
|
629
567
|
});
|
|
630
568
|
return true;
|
|
631
569
|
},
|
|
632
|
-
|
|
633
570
|
getModelManager,
|
|
634
571
|
getEntryManager: async model => {
|
|
635
572
|
return getModelManager(model);
|
|
@@ -638,5 +575,4 @@ const createModelsCrud = params => {
|
|
|
638
575
|
getEntryManagers: () => managers
|
|
639
576
|
};
|
|
640
577
|
};
|
|
641
|
-
|
|
642
578
|
exports.createModelsCrud = createModelsCrud;
|