@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.
Files changed (326) hide show
  1. package/context.js +0 -25
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +0 -5
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +0 -3
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +0 -3
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +1 -40
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  12. package/crud/contentEntry/markLockedFields.js +15 -28
  13. package/crud/contentEntry/markLockedFields.js.map +1 -1
  14. package/crud/contentEntry/referenceFieldsMapping.js +5 -61
  15. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  16. package/crud/contentEntry/searchableFields.js +1 -12
  17. package/crud/contentEntry/searchableFields.js.map +1 -1
  18. package/crud/contentEntry.crud.d.ts +2 -1
  19. package/crud/contentEntry.crud.js +59 -166
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/afterCreate.js +0 -2
  22. package/crud/contentModel/afterCreate.js.map +1 -1
  23. package/crud/contentModel/afterCreateFrom.js +0 -2
  24. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  25. package/crud/contentModel/afterDelete.js +0 -2
  26. package/crud/contentModel/afterDelete.js.map +1 -1
  27. package/crud/contentModel/afterUpdate.js +0 -2
  28. package/crud/contentModel/afterUpdate.js.map +1 -1
  29. package/crud/contentModel/beforeCreate.js +7 -32
  30. package/crud/contentModel/beforeCreate.js.map +1 -1
  31. package/crud/contentModel/beforeDelete.js +0 -10
  32. package/crud/contentModel/beforeDelete.js.map +1 -1
  33. package/crud/contentModel/beforeUpdate.js +4 -5
  34. package/crud/contentModel/beforeUpdate.js.map +1 -1
  35. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  36. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  37. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  38. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  39. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  40. package/crud/contentModel/createFieldStorageId.js +0 -3
  41. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  42. package/crud/contentModel/defaultFields.d.ts +5 -0
  43. package/crud/contentModel/defaultFields.js +58 -0
  44. package/crud/contentModel/defaultFields.js.map +1 -0
  45. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  46. package/crud/contentModel/fields/descriptionField.js +42 -0
  47. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  48. package/crud/contentModel/fields/imageField.d.ts +2 -0
  49. package/crud/contentModel/fields/imageField.js +46 -0
  50. package/crud/contentModel/fields/imageField.js.map +1 -0
  51. package/crud/contentModel/fields/titleField.d.ts +2 -0
  52. package/crud/contentModel/fields/titleField.js +58 -0
  53. package/crud/contentModel/fields/titleField.js.map +1 -0
  54. package/crud/contentModel/validateLayout.js +0 -8
  55. package/crud/contentModel/validateLayout.js.map +1 -1
  56. package/crud/contentModel/validateModel.d.ts +1 -0
  57. package/crud/contentModel/validateModel.js +0 -8
  58. package/crud/contentModel/validateModel.js.map +1 -1
  59. package/crud/contentModel/validateModelFields.d.ts +2 -1
  60. package/crud/contentModel/validateModelFields.js +35 -128
  61. package/crud/contentModel/validateModelFields.js.map +1 -1
  62. package/crud/contentModel/validation.d.ts +85 -43
  63. package/crud/contentModel/validation.js +57 -21
  64. package/crud/contentModel/validation.js.map +1 -1
  65. package/crud/contentModel.crud.js +46 -110
  66. package/crud/contentModel.crud.js.map +1 -1
  67. package/crud/contentModelGroup/beforeCreate.js +0 -12
  68. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  69. package/crud/contentModelGroup/beforeDelete.js +0 -8
  70. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  71. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  72. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  73. package/crud/contentModelGroup/validation.js +0 -9
  74. package/crud/contentModelGroup/validation.js.map +1 -1
  75. package/crud/contentModelGroup.crud.js +5 -47
  76. package/crud/contentModelGroup.crud.js.map +1 -1
  77. package/crud/settings.crud.js +0 -12
  78. package/crud/settings.crud.js.map +1 -1
  79. package/crud/system.crud.js +1 -96
  80. package/crud/system.crud.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/fieldConverters/index.js +0 -5
  88. package/fieldConverters/index.js.map +1 -1
  89. package/graphql/buildSchemaPlugins.js +4 -9
  90. package/graphql/buildSchemaPlugins.js.map +1 -1
  91. package/graphql/createExecutableSchema.js +2 -6
  92. package/graphql/createExecutableSchema.js.map +1 -1
  93. package/graphql/generateSchema.js +0 -7
  94. package/graphql/generateSchema.js.map +1 -1
  95. package/graphql/graphQLHandlerFactory.js +16 -39
  96. package/graphql/graphQLHandlerFactory.js.map +1 -1
  97. package/graphql/index.js +0 -5
  98. package/graphql/index.js.map +1 -1
  99. package/graphql/schema/baseContentSchema.js +5 -17
  100. package/graphql/schema/baseContentSchema.js.map +1 -1
  101. package/graphql/schema/baseSchema.js +1 -8
  102. package/graphql/schema/baseSchema.js.map +1 -1
  103. package/graphql/schema/contentEntries.js +107 -102
  104. package/graphql/schema/contentEntries.js.map +1 -1
  105. package/graphql/schema/contentModelGroups.js +3 -20
  106. package/graphql/schema/contentModelGroups.js.map +1 -1
  107. package/graphql/schema/contentModels.js +22 -25
  108. package/graphql/schema/contentModels.js.map +1 -1
  109. package/graphql/schema/createFieldResolvers.js +5 -28
  110. package/graphql/schema/createFieldResolvers.js.map +1 -1
  111. package/graphql/schema/createManageResolvers.d.ts +1 -1
  112. package/graphql/schema/createManageResolvers.js +33 -43
  113. package/graphql/schema/createManageResolvers.js.map +1 -1
  114. package/graphql/schema/createManageSDL.d.ts +1 -0
  115. package/graphql/schema/createManageSDL.js +57 -63
  116. package/graphql/schema/createManageSDL.js.map +1 -1
  117. package/graphql/schema/createPreviewResolvers.js +3 -17
  118. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  119. package/graphql/schema/createReadResolvers.js +4 -18
  120. package/graphql/schema/createReadResolvers.js.map +1 -1
  121. package/graphql/schema/createReadSDL.d.ts +1 -0
  122. package/graphql/schema/createReadSDL.js +24 -32
  123. package/graphql/schema/createReadSDL.js.map +1 -1
  124. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  125. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  126. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  127. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  128. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  129. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  130. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  131. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  132. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  133. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  134. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  135. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  136. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  137. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  138. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  139. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  140. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  141. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  142. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  143. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  144. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  145. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  146. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  147. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  148. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  149. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  150. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  151. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  152. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  153. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  154. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  155. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  156. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  157. package/graphql/schema/schemaPlugins.js +16 -26
  158. package/graphql/schema/schemaPlugins.js.map +1 -1
  159. package/graphql/system.js +1 -30
  160. package/graphql/system.js.map +1 -1
  161. package/graphqlFields/boolean.js +0 -12
  162. package/graphqlFields/boolean.js.map +1 -1
  163. package/graphqlFields/datetime.js +0 -17
  164. package/graphqlFields/datetime.js.map +1 -1
  165. package/graphqlFields/dynamicZone/dynamicZoneField.js +15 -33
  166. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  167. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  168. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  169. package/graphqlFields/dynamicZone/index.js +0 -2
  170. package/graphqlFields/dynamicZone/index.js.map +1 -1
  171. package/graphqlFields/file.js +0 -8
  172. package/graphqlFields/file.js.map +1 -1
  173. package/graphqlFields/helpers.js +0 -10
  174. package/graphqlFields/helpers.js.map +1 -1
  175. package/graphqlFields/index.js +0 -12
  176. package/graphqlFields/index.js.map +1 -1
  177. package/graphqlFields/longText.js +0 -10
  178. package/graphqlFields/longText.js.map +1 -1
  179. package/graphqlFields/number.js +0 -12
  180. package/graphqlFields/number.js.map +1 -1
  181. package/graphqlFields/object.js +7 -37
  182. package/graphqlFields/object.js.map +1 -1
  183. package/graphqlFields/ref.js +59 -65
  184. package/graphqlFields/ref.js.map +1 -1
  185. package/graphqlFields/richText.js +0 -9
  186. package/graphqlFields/richText.js.map +1 -1
  187. package/graphqlFields/text.js +0 -11
  188. package/graphqlFields/text.js.map +1 -1
  189. package/index.d.ts +1 -1
  190. package/index.js +1 -21
  191. package/index.js.map +1 -1
  192. package/modelManager/DefaultCmsModelManager.js +0 -16
  193. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  194. package/modelManager/index.js +0 -4
  195. package/modelManager/index.js.map +1 -1
  196. package/package.json +24 -25
  197. package/parameters/context.js +0 -4
  198. package/parameters/context.js.map +1 -1
  199. package/parameters/header.js +0 -11
  200. package/parameters/header.js.map +1 -1
  201. package/parameters/index.js +0 -8
  202. package/parameters/index.js.map +1 -1
  203. package/parameters/manual.js +1 -8
  204. package/parameters/manual.js.map +1 -1
  205. package/parameters/path.js +0 -11
  206. package/parameters/path.js.map +1 -1
  207. package/plugins/CmsGraphQLSchemaPlugin.js +0 -5
  208. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  209. package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -10
  210. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  211. package/plugins/CmsGroupPlugin.js +0 -8
  212. package/plugins/CmsGroupPlugin.js.map +1 -1
  213. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  214. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  215. package/plugins/CmsModelPlugin.d.ts +11 -1
  216. package/plugins/CmsModelPlugin.js +15 -40
  217. package/plugins/CmsModelPlugin.js.map +1 -1
  218. package/plugins/CmsParametersPlugin.js +0 -7
  219. package/plugins/CmsParametersPlugin.js.map +1 -1
  220. package/plugins/StorageTransformPlugin.js +0 -9
  221. package/plugins/StorageTransformPlugin.js.map +1 -1
  222. package/plugins/index.js +0 -14
  223. package/plugins/index.js.map +1 -1
  224. package/storage/default.js +0 -3
  225. package/storage/default.js.map +1 -1
  226. package/storage/object.js +0 -19
  227. package/storage/object.js.map +1 -1
  228. package/types.d.ts +77 -22
  229. package/types.js +1 -80
  230. package/types.js.map +1 -1
  231. package/utils/access.js +11 -25
  232. package/utils/access.js.map +1 -1
  233. package/utils/converters/Converter.js +0 -13
  234. package/utils/converters/Converter.js.map +1 -1
  235. package/utils/converters/ConverterCollection.js +9 -33
  236. package/utils/converters/ConverterCollection.js.map +1 -1
  237. package/utils/converters/valueKeyStorageConverter.js +2 -27
  238. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  239. package/utils/createTypeFromFields.d.ts +1 -0
  240. package/utils/createTypeFromFields.js +11 -19
  241. package/utils/createTypeFromFields.js.map +1 -1
  242. package/utils/createTypeName.js +0 -9
  243. package/utils/createTypeName.js.map +1 -1
  244. package/utils/entryStorage.js +10 -26
  245. package/utils/entryStorage.js.map +1 -1
  246. package/utils/filterAsync.js +0 -5
  247. package/utils/filterAsync.js.map +1 -1
  248. package/utils/getBaseFieldType.js +0 -2
  249. package/utils/getBaseFieldType.js.map +1 -1
  250. package/utils/getEntryDescription.d.ts +2 -0
  251. package/utils/getEntryDescription.js +17 -0
  252. package/utils/getEntryDescription.js.map +1 -0
  253. package/utils/getEntryImage.d.ts +2 -0
  254. package/utils/getEntryImage.js +17 -0
  255. package/utils/getEntryImage.js.map +1 -0
  256. package/utils/getEntryTitle.js +0 -9
  257. package/utils/getEntryTitle.js.map +1 -1
  258. package/utils/getSchemaFromFieldPlugins.js +2 -11
  259. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  260. package/utils/ownership.d.ts +3 -3
  261. package/utils/ownership.js +0 -8
  262. package/utils/ownership.js.map +1 -1
  263. package/utils/permissions.js +8 -23
  264. package/utils/permissions.js.map +1 -1
  265. package/utils/removeNullValues.d.ts +1 -0
  266. package/utils/removeNullValues.js +17 -0
  267. package/utils/removeNullValues.js.map +1 -0
  268. package/utils/removeUndefinedValues.d.ts +1 -0
  269. package/utils/removeUndefinedValues.js +17 -0
  270. package/utils/removeUndefinedValues.js.map +1 -0
  271. package/utils/renderFields.d.ts +2 -1
  272. package/utils/renderFields.js +8 -10
  273. package/utils/renderFields.js.map +1 -1
  274. package/utils/renderGetFilterFields.js +0 -13
  275. package/utils/renderGetFilterFields.js.map +1 -1
  276. package/utils/renderInputFields.d.ts +2 -1
  277. package/utils/renderInputFields.js +4 -9
  278. package/utils/renderInputFields.js.map +1 -1
  279. package/utils/renderListFilterFields.js +1 -10
  280. package/utils/renderListFilterFields.js.map +1 -1
  281. package/utils/renderSortEnum.js +0 -9
  282. package/utils/renderSortEnum.js.map +1 -1
  283. package/utils/toSlug.js +0 -4
  284. package/utils/toSlug.js.map +1 -1
  285. package/validators/dateGte.js +0 -7
  286. package/validators/dateGte.js.map +1 -1
  287. package/validators/dateLte.js +0 -7
  288. package/validators/dateLte.js.map +1 -1
  289. package/validators/dynamicZone.js +0 -4
  290. package/validators/dynamicZone.js.map +1 -1
  291. package/validators/gte.js +0 -8
  292. package/validators/gte.js.map +1 -1
  293. package/validators/in.js +0 -8
  294. package/validators/in.js.map +1 -1
  295. package/validators/index.js +0 -16
  296. package/validators/index.js.map +1 -1
  297. package/validators/lte.js +0 -8
  298. package/validators/lte.js.map +1 -1
  299. package/validators/maxLength.js +0 -8
  300. package/validators/maxLength.js.map +1 -1
  301. package/validators/minLength.js +0 -8
  302. package/validators/minLength.js.map +1 -1
  303. package/validators/pattern.js +0 -9
  304. package/validators/pattern.js.map +1 -1
  305. package/validators/patternPlugins/email.js +0 -2
  306. package/validators/patternPlugins/email.js.map +1 -1
  307. package/validators/patternPlugins/index.js +0 -8
  308. package/validators/patternPlugins/index.js.map +1 -1
  309. package/validators/patternPlugins/lowerCase.js +0 -2
  310. package/validators/patternPlugins/lowerCase.js.map +1 -1
  311. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  312. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  313. package/validators/patternPlugins/upperCase.js +0 -2
  314. package/validators/patternPlugins/upperCase.js.map +1 -1
  315. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  316. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  317. package/validators/patternPlugins/url.js +0 -2
  318. package/validators/patternPlugins/url.js.map +1 -1
  319. package/validators/required.js +0 -5
  320. package/validators/required.js.map +1 -1
  321. package/validators/timeGte.js +0 -8
  322. package/validators/timeGte.js.map +1 -1
  323. package/validators/timeLte.js +0 -8
  324. package/validators/timeLte.js.map +1 -1
  325. package/validators/unique.js +0 -7
  326. 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
- const data = result.data;
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
- name: userInput.name,
431
- modelId: userInput.modelId,
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"); // Get a model record; this will also perform ownership validation.
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;