@webiny/api-headless-cms 5.37.8 → 5.38.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/constants.js +3 -1
  2. package/context.js +10 -17
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +3 -1
  5. package/crud/contentEntry/beforeCreate.js +3 -1
  6. package/crud/contentEntry/beforeUpdate.js +3 -1
  7. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  8. package/crud/contentEntry/entryDataValidation.js +220 -47
  9. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  10. package/crud/contentEntry/markLockedFields.js +3 -1
  11. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  12. package/crud/contentEntry/referenceFieldsMapping.js +118 -97
  13. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  14. package/crud/contentEntry/searchableFields.js +5 -3
  15. package/crud/contentEntry/searchableFields.js.map +1 -1
  16. package/crud/contentEntry.crud.js +68 -64
  17. package/crud/contentEntry.crud.js.map +1 -1
  18. package/crud/contentModel/beforeCreate.d.ts +1 -1
  19. package/crud/contentModel/beforeCreate.js +11 -9
  20. package/crud/contentModel/beforeCreate.js.map +1 -1
  21. package/crud/contentModel/beforeDelete.js +3 -1
  22. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  23. package/crud/contentModel/beforeUpdate.js +3 -6
  24. package/crud/contentModel/beforeUpdate.js.map +1 -1
  25. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  26. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  27. package/crud/contentModel/createFieldStorageId.js +3 -1
  28. package/crud/contentModel/defaultFields.js +3 -1
  29. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  30. package/crud/contentModel/ensureTypeTag.js +21 -0
  31. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  32. package/crud/contentModel/fields/descriptionField.js +3 -1
  33. package/crud/contentModel/fields/imageField.js +3 -1
  34. package/crud/contentModel/fields/titleField.js +3 -1
  35. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  36. package/crud/contentModel/listModelsFromDatabase.js +39 -0
  37. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  38. package/crud/contentModel/validate/endingAllowed.js +3 -1
  39. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  40. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  41. package/crud/contentModel/validate/modelId.js +3 -1
  42. package/crud/contentModel/validate/pluralApiName.js +3 -1
  43. package/crud/contentModel/validate/singularApiName.js +3 -1
  44. package/crud/contentModel/validateModel.js +3 -1
  45. package/crud/contentModel/validateModel.js.map +1 -1
  46. package/crud/contentModel/validateModelFields.js +3 -1
  47. package/crud/contentModel/validation.d.ts +339 -58
  48. package/crud/contentModel/validation.js +71 -11
  49. package/crud/contentModel/validation.js.map +1 -1
  50. package/crud/contentModel.crud.js +80 -156
  51. package/crud/contentModel.crud.js.map +1 -1
  52. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  53. package/crud/contentModelGroup/beforeCreate.js +15 -1
  54. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  55. package/crud/contentModelGroup/beforeDelete.js +3 -1
  56. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  57. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  58. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  59. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  60. package/crud/contentModelGroup/validation.d.ts +9 -6
  61. package/crud/contentModelGroup/validation.js +5 -2
  62. package/crud/contentModelGroup/validation.js.map +1 -1
  63. package/crud/contentModelGroup.crud.js +89 -110
  64. package/crud/contentModelGroup.crud.js.map +1 -1
  65. package/crud/system.crud.js +4 -7
  66. package/crud/system.crud.js.map +1 -1
  67. package/export/crud/exporting.d.ts +3 -0
  68. package/export/crud/exporting.js +50 -0
  69. package/export/crud/exporting.js.map +1 -0
  70. package/export/crud/importing.d.ts +3 -0
  71. package/export/crud/importing.js +79 -0
  72. package/export/crud/importing.js.map +1 -0
  73. package/export/crud/imports/importData.d.ts +14 -0
  74. package/export/crud/imports/importData.js +25 -0
  75. package/export/crud/imports/importData.js.map +1 -0
  76. package/export/crud/imports/importGroups.d.ts +8 -0
  77. package/export/crud/imports/importGroups.js +99 -0
  78. package/export/crud/imports/importGroups.js.map +1 -0
  79. package/export/crud/imports/importModels.d.ts +8 -0
  80. package/export/crud/imports/importModels.js +134 -0
  81. package/export/crud/imports/importModels.js.map +1 -0
  82. package/export/crud/imports/validateGroups.d.ts +8 -0
  83. package/export/crud/imports/validateGroups.js +106 -0
  84. package/export/crud/imports/validateGroups.js.map +1 -0
  85. package/export/crud/imports/validateInput.d.ts +19 -0
  86. package/export/crud/imports/validateInput.js +49 -0
  87. package/export/crud/imports/validateInput.js.map +1 -0
  88. package/export/crud/imports/validateModels.d.ts +9 -0
  89. package/export/crud/imports/validateModels.js +204 -0
  90. package/export/crud/imports/validateModels.js.map +1 -0
  91. package/export/crud/index.d.ts +4 -0
  92. package/export/crud/index.js +15 -0
  93. package/export/crud/index.js.map +1 -0
  94. package/export/crud/sanitize.d.ts +4 -0
  95. package/export/crud/sanitize.js +35 -0
  96. package/export/crud/sanitize.js.map +1 -0
  97. package/export/graphql/index.d.ts +3 -0
  98. package/export/graphql/index.js +188 -0
  99. package/export/graphql/index.js.map +1 -0
  100. package/export/index.d.ts +2 -0
  101. package/export/index.js +29 -0
  102. package/export/index.js.map +1 -0
  103. package/export/types.d.ts +111 -0
  104. package/export/types.js +22 -0
  105. package/export/types.js.map +1 -0
  106. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +3 -1
  107. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -1
  108. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +3 -1
  109. package/fieldConverters/index.js +3 -1
  110. package/graphql/buildSchemaPlugins.js +3 -1
  111. package/graphql/checkEndpointAccess.js +3 -1
  112. package/graphql/createExecutableSchema.js +3 -1
  113. package/graphql/createRequestBody.js +3 -1
  114. package/graphql/formatErrorPayload.js +3 -1
  115. package/graphql/generateSchema.js +3 -1
  116. package/graphql/getSchema.d.ts +0 -1
  117. package/graphql/getSchema.js +23 -13
  118. package/graphql/getSchema.js.map +1 -1
  119. package/graphql/graphQLHandlerFactory.js +3 -1
  120. package/graphql/handleRequest.js +3 -5
  121. package/graphql/handleRequest.js.map +1 -1
  122. package/graphql/index.d.ts +1 -1
  123. package/graphql/index.js +4 -2
  124. package/graphql/index.js.map +1 -1
  125. package/graphql/schema/baseContentSchema.js +3 -1
  126. package/graphql/schema/baseSchema.d.ts +2 -3
  127. package/graphql/schema/baseSchema.js +58 -2
  128. package/graphql/schema/baseSchema.js.map +1 -1
  129. package/graphql/schema/contentEntries.js +4 -2
  130. package/graphql/schema/contentEntries.js.map +1 -1
  131. package/graphql/schema/contentModelGroups.js +4 -1
  132. package/graphql/schema/contentModelGroups.js.map +1 -1
  133. package/graphql/schema/contentModels.js +5 -5
  134. package/graphql/schema/contentModels.js.map +1 -1
  135. package/graphql/schema/createFieldResolvers.js +3 -1
  136. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  137. package/graphql/schema/createManageResolvers.js +7 -1
  138. package/graphql/schema/createManageResolvers.js.map +1 -1
  139. package/graphql/schema/createManageSDL.js +8 -4
  140. package/graphql/schema/createManageSDL.js.map +1 -1
  141. package/graphql/schema/createPreviewResolvers.js +3 -1
  142. package/graphql/schema/createReadResolvers.js +3 -1
  143. package/graphql/schema/createReadSDL.js +3 -1
  144. package/graphql/schema/resolvers/commonFieldResolvers.js +3 -1
  145. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  146. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  147. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  148. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  149. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  150. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  151. package/graphql/schema/resolvers/manage/resolveDelete.js +3 -1
  152. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +3 -1
  153. package/graphql/schema/resolvers/manage/resolveGet.js +3 -1
  154. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  155. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  156. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  157. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  158. package/graphql/schema/resolvers/manage/resolveMove.js +3 -1
  159. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  160. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  161. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  162. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  163. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  164. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  165. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  166. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  167. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  168. package/graphql/schema/resolvers/preview/resolveGet.js +3 -1
  169. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  170. package/graphql/schema/resolvers/read/resolveGet.js +3 -1
  171. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  172. package/graphql/schema/schemaPlugins.js +3 -1
  173. package/graphql/system.js +3 -1
  174. package/graphqlFields/boolean.js +3 -1
  175. package/graphqlFields/datetime.js +4 -3
  176. package/graphqlFields/datetime.js.map +1 -1
  177. package/graphqlFields/dynamicZone/dynamicZoneField.js +29 -6
  178. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  179. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +3 -1
  180. package/graphqlFields/dynamicZone/index.js +3 -1
  181. package/graphqlFields/file.js +3 -1
  182. package/graphqlFields/helpers.d.ts +0 -1
  183. package/graphqlFields/helpers.js +6 -18
  184. package/graphqlFields/helpers.js.map +1 -1
  185. package/graphqlFields/index.js +3 -1
  186. package/graphqlFields/longText.js +14 -3
  187. package/graphqlFields/longText.js.map +1 -1
  188. package/graphqlFields/number.js +3 -1
  189. package/graphqlFields/object.js +5 -17
  190. package/graphqlFields/object.js.map +1 -1
  191. package/graphqlFields/ref.js +4 -2
  192. package/graphqlFields/ref.js.map +1 -1
  193. package/graphqlFields/richText.js +3 -1
  194. package/graphqlFields/text.js +3 -1
  195. package/index.d.ts +1 -1
  196. package/index.js +5 -2
  197. package/index.js.map +1 -1
  198. package/modelManager/DefaultCmsModelManager.js +3 -1
  199. package/modelManager/index.js +3 -1
  200. package/package.json +18 -19
  201. package/parameters/context.js +3 -1
  202. package/parameters/header.js +3 -1
  203. package/parameters/index.js +3 -1
  204. package/parameters/manual.js +3 -1
  205. package/parameters/path.js +3 -1
  206. package/plugins/CmsGraphQLSchemaPlugin.js +3 -1
  207. package/plugins/CmsGraphQLSchemaSorterPlugin.js +3 -1
  208. package/plugins/CmsGroupPlugin.d.ts +6 -3
  209. package/plugins/CmsGroupPlugin.js +7 -2
  210. package/plugins/CmsGroupPlugin.js.map +1 -1
  211. package/plugins/CmsModelFieldConverterPlugin.js +3 -1
  212. package/plugins/CmsModelPlugin.d.ts +2 -2
  213. package/plugins/CmsModelPlugin.js +6 -2
  214. package/plugins/CmsModelPlugin.js.map +1 -1
  215. package/plugins/CmsParametersPlugin.js +3 -1
  216. package/plugins/StorageOperationsCmsModelPlugin.js +3 -1
  217. package/plugins/StorageTransformPlugin.js +3 -1
  218. package/plugins/index.js +3 -1
  219. package/storage/default.js +3 -1
  220. package/storage/object.js +3 -1
  221. package/types.d.ts +62 -230
  222. package/types.js +3 -17
  223. package/types.js.map +1 -1
  224. package/utils/access.js +3 -1
  225. package/utils/caching/Cache.d.ts +2 -0
  226. package/utils/caching/Cache.js +53 -0
  227. package/utils/caching/Cache.js.map +1 -0
  228. package/utils/caching/CacheKey.d.ts +3 -0
  229. package/utils/caching/CacheKey.js +41 -0
  230. package/utils/caching/CacheKey.js.map +1 -0
  231. package/utils/caching/index.d.ts +2 -0
  232. package/utils/caching/index.js +29 -0
  233. package/utils/caching/index.js.map +1 -0
  234. package/utils/caching/types.d.ts +9 -0
  235. package/utils/caching/types.js +7 -0
  236. package/utils/caching/types.js.map +1 -0
  237. package/utils/converters/Converter.js +3 -1
  238. package/utils/converters/ConverterCollection.js +3 -1
  239. package/utils/converters/valueKeyStorageConverter.js +3 -1
  240. package/utils/createTypeFromFields.js +6 -1
  241. package/utils/createTypeFromFields.js.map +1 -1
  242. package/utils/createTypeName.js +3 -1
  243. package/utils/entryStorage.js +3 -1
  244. package/utils/filterAsync.js +3 -1
  245. package/utils/getBaseFieldType.js +3 -1
  246. package/utils/getEntryDescription.js +3 -1
  247. package/utils/getEntryImage.js +3 -1
  248. package/utils/getEntryTitle.js +3 -1
  249. package/utils/getSchemaFromFieldPlugins.js +3 -1
  250. package/utils/incrementEntryIdVersion.js +3 -1
  251. package/utils/index.d.ts +1 -0
  252. package/utils/index.js +18 -0
  253. package/utils/index.js.map +1 -0
  254. package/utils/permissions/EntriesPermissions.js +3 -1
  255. package/utils/permissions/ModelGroupsPermissions.js +3 -1
  256. package/utils/permissions/ModelsPermissions.js +3 -1
  257. package/utils/renderFields.js +3 -1
  258. package/utils/renderGetFilterFields.js +3 -1
  259. package/utils/renderInputFields.js +3 -1
  260. package/utils/renderListFilterFields.js +3 -1
  261. package/utils/renderSortEnum.js +3 -1
  262. package/utils/toSlug.js +3 -1
  263. package/validators/dateGte.js +3 -1
  264. package/validators/dateLte.js +3 -1
  265. package/validators/gte.js +3 -1
  266. package/validators/in.js +3 -1
  267. package/validators/index.js +4 -3
  268. package/validators/index.js.map +1 -1
  269. package/validators/lte.js +3 -1
  270. package/validators/maxLength.js +3 -1
  271. package/validators/minLength.js +3 -1
  272. package/validators/pattern.js +3 -1
  273. package/validators/patternPlugins/email.js +3 -1
  274. package/validators/patternPlugins/index.js +3 -1
  275. package/validators/patternPlugins/lowerCase.js +3 -1
  276. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  277. package/validators/patternPlugins/upperCase.js +3 -1
  278. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  279. package/validators/patternPlugins/url.js +3 -1
  280. package/validators/required.js +3 -1
  281. package/validators/timeGte.js +3 -1
  282. package/validators/timeLte.js +3 -1
  283. package/validators/unique.js +4 -2
  284. package/validators/unique.js.map +1 -1
  285. package/crud/contentModel/afterCreate.d.ts +0 -8
  286. package/crud/contentModel/afterCreate.js +0 -16
  287. package/crud/contentModel/afterCreate.js.map +0 -1
  288. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  289. package/crud/contentModel/afterCreateFrom.js +0 -16
  290. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  291. package/crud/contentModel/afterDelete.d.ts +0 -8
  292. package/crud/contentModel/afterDelete.js +0 -16
  293. package/crud/contentModel/afterDelete.js.map +0 -1
  294. package/crud/contentModel/afterUpdate.d.ts +0 -8
  295. package/crud/contentModel/afterUpdate.js +0 -16
  296. package/crud/contentModel/afterUpdate.js.map +0 -1
  297. package/crud/contentModel/validateLayout.d.ts +0 -2
  298. package/crud/contentModel/validateLayout.js +0 -28
  299. package/crud/contentModel/validateLayout.js.map +0 -1
  300. package/crud/settings.crud.d.ts +0 -12
  301. package/crud/settings.crud.js +0 -62
  302. package/crud/settings.crud.js.map +0 -1
  303. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  304. package/utils/permissions/SettingsPermissions.js +0 -9
  305. package/utils/permissions/SettingsPermissions.js.map +0 -1
  306. package/validators/dynamicZone.d.ts +0 -2
  307. package/validators/dynamicZone.js +0 -20
  308. package/validators/dynamicZone.js.map +0 -1
@@ -510,7 +510,7 @@ const createContentEntryCrud = params => {
510
510
  });
511
511
  }
512
512
  };
513
- const createEntry = async (model, inputData) => {
513
+ const createEntry = async (model, inputData, options) => {
514
514
  var _inputData$wbyAco_loc;
515
515
  await entriesPermissions.ensure({
516
516
  rwd: "w"
@@ -523,10 +523,11 @@ const createContentEntryCrud = params => {
523
523
  * Make sure we only work with fields that are defined in the model.
524
524
  */
525
525
  const initialInput = mapAndCleanCreateInputData(model, inputData);
526
- await (0, _entryDataValidation.validateModelEntryData)({
526
+ await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
527
527
  context,
528
528
  model,
529
- data: initialInput
529
+ data: initialInput,
530
+ skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
530
531
  });
531
532
  const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
532
533
  context,
@@ -599,7 +600,7 @@ const createContentEntryCrud = params => {
599
600
  });
600
601
  }
601
602
  };
602
- const createEntryRevisionFrom = async (model, sourceId, inputData) => {
603
+ const createEntryRevisionFrom = async (model, sourceId, inputData, options) => {
603
604
  await entriesPermissions.ensure({
604
605
  rwd: "w"
605
606
  });
@@ -633,11 +634,12 @@ const createContentEntryCrud = params => {
633
634
  */
634
635
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
635
636
  const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
636
- await (0, _entryDataValidation.validateModelEntryData)({
637
+ await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
637
638
  context,
638
639
  model,
639
640
  data: initialValues,
640
- entry: originalEntry
641
+ entry: originalEntry,
642
+ skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
641
643
  });
642
644
  const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
643
645
  context,
@@ -708,7 +710,7 @@ const createContentEntryCrud = params => {
708
710
  });
709
711
  }
710
712
  };
711
- const updateEntry = async (model, id, inputData, metaInput) => {
713
+ const updateEntry = async (model, id, inputData, metaInput, options) => {
712
714
  var _inputData$wbyAco_loc2;
713
715
  await entriesPermissions.ensure({
714
716
  rwd: "w"
@@ -735,11 +737,12 @@ const createContentEntryCrud = params => {
735
737
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
736
738
  }
737
739
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
738
- await (0, _entryDataValidation.validateModelEntryData)({
740
+ await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
739
741
  context,
740
742
  model,
741
743
  data: input,
742
- entry: originalEntry
744
+ entry: originalEntry,
745
+ skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
743
746
  });
744
747
  await entriesPermissions.ensure({
745
748
  owns: originalEntry.createdBy
@@ -808,7 +811,37 @@ const createContentEntryCrud = params => {
808
811
  });
809
812
  }
810
813
  };
814
+ const validateEntry = async (model, id, inputData) => {
815
+ await entriesPermissions.ensure({
816
+ rwd: "w"
817
+ });
818
+ await modelsPermissions.ensureCanAccessModel({
819
+ model
820
+ });
821
+ const input = mapAndCleanUpdatedInputData(model, inputData || {});
822
+ let originalEntry;
823
+ if (id) {
824
+ /**
825
+ * The entry we are going to update.
826
+ */
827
+ const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
828
+ id
829
+ });
830
+ if (!originalStorageEntry) {
831
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
832
+ }
833
+ originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
834
+ }
835
+ const result = await (0, _entryDataValidation.validateModelEntryData)({
836
+ context,
837
+ model,
838
+ data: input,
839
+ entry: originalEntry
840
+ });
841
+ return result.length > 0 ? result : [];
842
+ };
811
843
  const moveEntry = async (model, id, folderId) => {
844
+ var _entry$location;
812
845
  await entriesPermissions.ensure({
813
846
  rwd: "w"
814
847
  });
@@ -825,6 +858,12 @@ const createContentEntryCrud = params => {
825
858
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
826
859
  }
827
860
  const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
861
+ /**
862
+ * No need to continue if the entry is already in the requested folder.
863
+ */
864
+ if (((_entry$location = entry.location) === null || _entry$location === void 0 ? void 0 : _entry$location.folderId) === folderId) {
865
+ return entry;
866
+ }
828
867
  try {
829
868
  await onEntryBeforeMove.publish({
830
869
  entry,
@@ -1142,6 +1181,12 @@ const createContentEntryCrud = params => {
1142
1181
  owns: originalStorageEntry.createdBy
1143
1182
  });
1144
1183
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1184
+ await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
1185
+ context,
1186
+ model,
1187
+ data: originalEntry.values,
1188
+ entry: originalEntry
1189
+ });
1145
1190
  const currentDate = new Date().toISOString();
1146
1191
  const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1147
1192
  status: STATUS_PUBLISHED,
@@ -1302,78 +1347,30 @@ const createContentEntryCrud = params => {
1302
1347
  }
1303
1348
  };
1304
1349
  return {
1305
- /**
1306
- * Deprecated - will be removed in 5.35.0
1307
- */
1308
- onBeforeEntryCreate: onEntryBeforeCreate,
1309
- onAfterEntryCreate: onEntryAfterCreate,
1310
- onBeforeEntryCreateRevision: onEntryBeforeCreateRevision,
1311
- onAfterEntryCreateRevision: onEntryRevisionAfterCreate,
1312
- onBeforeEntryUpdate: onEntryBeforeUpdate,
1313
- onAfterEntryUpdate: onEntryAfterUpdate,
1314
- onBeforeEntryDelete: onEntryBeforeDelete,
1315
- onAfterEntryDelete: onEntryAfterDelete,
1316
- onBeforeEntryDeleteRevision: onEntryRevisionBeforeDelete,
1317
- onAfterEntryDeleteRevision: onEntryRevisionAfterDelete,
1318
- onBeforeEntryPublish: onEntryBeforePublish,
1319
- onAfterEntryPublish: onEntryAfterPublish,
1320
- onBeforeEntryUnpublish: onEntryBeforeUnpublish,
1321
- onAfterEntryUnpublish: onEntryAfterUnpublish,
1322
- onBeforeEntryGet: onEntryBeforeGet,
1323
- onBeforeEntryList: onEntryBeforeList,
1324
- /**
1325
- * Released in 5.34.0
1326
- *
1327
- * Create
1328
- */
1329
1350
  onEntryBeforeCreate,
1330
1351
  onEntryAfterCreate,
1331
1352
  onEntryCreateError,
1332
- /**
1333
- * Create revision
1334
- */
1335
1353
  onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
1336
1354
  onEntryRevisionAfterCreate,
1337
1355
  onEntryRevisionCreateError: onEntryCreateRevisionError,
1338
- /**
1339
- * Update
1340
- */
1341
1356
  onEntryBeforeUpdate,
1342
1357
  onEntryAfterUpdate,
1343
1358
  onEntryUpdateError,
1344
- /**
1345
- * Move
1346
- */
1347
1359
  onEntryBeforeMove,
1348
1360
  onEntryAfterMove,
1349
1361
  onEntryMoveError,
1350
- /**
1351
- * Delete whole entry
1352
- */
1353
1362
  onEntryBeforeDelete,
1354
1363
  onEntryAfterDelete,
1355
1364
  onEntryDeleteError,
1356
- /**
1357
- * Delete entry revision
1358
- */
1359
1365
  onEntryRevisionBeforeDelete,
1360
1366
  onEntryRevisionAfterDelete,
1361
1367
  onEntryRevisionDeleteError,
1362
- /**
1363
- * Publish
1364
- */
1365
1368
  onEntryBeforePublish,
1366
1369
  onEntryAfterPublish,
1367
1370
  onEntryPublishError,
1368
- /**
1369
- * Republish
1370
- */
1371
1371
  onEntryBeforeRepublish,
1372
1372
  onEntryAfterRepublish,
1373
1373
  onEntryRepublishError,
1374
- /**
1375
- * Unpublish
1376
- */
1377
1374
  onEntryBeforeUnpublish,
1378
1375
  onEntryAfterUnpublish,
1379
1376
  onEntryUnpublishError,
@@ -1452,19 +1449,24 @@ const createContentEntryCrud = params => {
1452
1449
  })
1453
1450
  }));
1454
1451
  },
1455
- async createEntry(model, input) {
1452
+ async createEntry(model, input, options) {
1456
1453
  return context.benchmark.measure("headlessCms.crud.entries.createEntry", async () => {
1457
- return createEntry(model, input);
1454
+ return createEntry(model, input, options);
1458
1455
  });
1459
1456
  },
1460
- async createEntryRevisionFrom(model, sourceId, input) {
1457
+ async createEntryRevisionFrom(model, sourceId, input, options) {
1461
1458
  return context.benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async () => {
1462
- return createEntryRevisionFrom(model, sourceId, input);
1459
+ return createEntryRevisionFrom(model, sourceId, input, options);
1463
1460
  });
1464
1461
  },
1465
- async updateEntry(model, id, input, meta) {
1462
+ async updateEntry(model, id, input, meta, options) {
1466
1463
  return context.benchmark.measure("headlessCms.crud.entries.updateEntry", async () => {
1467
- return updateEntry(model, id, input, meta);
1464
+ return updateEntry(model, id, input, meta, options);
1465
+ });
1466
+ },
1467
+ async validateEntry(model, id, input) {
1468
+ return context.benchmark.measure("headlessCms.crud.entries.validateEntry", async () => {
1469
+ return validateEntry(model, id, input);
1468
1470
  });
1469
1471
  },
1470
1472
  async moveEntry(model, id, folderId) {
@@ -1513,4 +1515,6 @@ const createContentEntryCrud = params => {
1513
1515
  }
1514
1516
  };
1515
1517
  };
1516
- exports.createContentEntryCrud = createContentEntryCrud;
1518
+ exports.createContentEntryCrud = createContentEntryCrud;
1519
+
1520
+ //# sourceMappingURL=contentEntry.crud.js.map