@webiny/api-headless-cms 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd

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 (495) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +51 -2
  3. package/constants.js.map +1 -1
  4. package/context.js +50 -45
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/afterDelete.js +3 -1
  7. package/crud/contentEntry/afterDelete.js.map +1 -1
  8. package/crud/contentEntry/beforeCreate.js +3 -1
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.js +3 -1
  11. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  12. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  13. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  14. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  16. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  17. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  19. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  20. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  22. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  23. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  25. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  26. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  28. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  29. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  31. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  32. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  33. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  34. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  35. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  36. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  37. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  38. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  39. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  40. package/crud/contentEntry/entryDataValidation.js +223 -45
  41. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  42. package/crud/contentEntry/markLockedFields.js +17 -10
  43. package/crud/contentEntry/markLockedFields.js.map +1 -1
  44. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  45. package/crud/contentEntry/referenceFieldsMapping.js +134 -111
  46. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  47. package/crud/contentEntry/searchableFields.js +5 -4
  48. package/crud/contentEntry/searchableFields.js.map +1 -1
  49. package/crud/contentEntry.crud.d.ts +1 -4
  50. package/crud/contentEntry.crud.js +295 -466
  51. package/crud/contentEntry.crud.js.map +1 -1
  52. package/crud/contentModel/beforeCreate.d.ts +1 -1
  53. package/crud/contentModel/beforeCreate.js +11 -9
  54. package/crud/contentModel/beforeCreate.js.map +1 -1
  55. package/crud/contentModel/beforeDelete.js +3 -1
  56. package/crud/contentModel/beforeDelete.js.map +1 -1
  57. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  58. package/crud/contentModel/beforeUpdate.js +3 -6
  59. package/crud/contentModel/beforeUpdate.js.map +1 -1
  60. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  61. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  62. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  63. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  64. package/crud/contentModel/createFieldStorageId.js +3 -1
  65. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  66. package/crud/contentModel/defaultFields.js +3 -1
  67. package/crud/contentModel/defaultFields.js.map +1 -1
  68. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  69. package/crud/contentModel/ensureTypeTag.js +21 -0
  70. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  71. package/crud/contentModel/fields/descriptionField.js +4 -2
  72. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  73. package/crud/contentModel/fields/imageField.js +6 -8
  74. package/crud/contentModel/fields/imageField.js.map +1 -1
  75. package/crud/contentModel/fields/titleField.js +4 -2
  76. package/crud/contentModel/fields/titleField.js.map +1 -1
  77. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  78. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  79. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  80. package/crud/contentModel/validate/endingAllowed.js +3 -1
  81. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  82. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  83. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  84. package/crud/contentModel/validate/modelId.js +3 -1
  85. package/crud/contentModel/validate/modelId.js.map +1 -1
  86. package/crud/contentModel/validate/pluralApiName.js +3 -1
  87. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  88. package/crud/contentModel/validate/singularApiName.js +3 -1
  89. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  90. package/crud/contentModel/validateModel.js +3 -1
  91. package/crud/contentModel/validateModel.js.map +1 -1
  92. package/crud/contentModel/validateModelFields.js +7 -6
  93. package/crud/contentModel/validateModelFields.js.map +1 -1
  94. package/crud/contentModel/validation.d.ts +531 -210
  95. package/crud/contentModel/validation.js +71 -11
  96. package/crud/contentModel/validation.js.map +1 -1
  97. package/crud/contentModel.crud.js +137 -182
  98. package/crud/contentModel.crud.js.map +1 -1
  99. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  100. package/crud/contentModelGroup/beforeCreate.js +15 -1
  101. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  102. package/crud/contentModelGroup/beforeDelete.js +3 -1
  103. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  104. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  105. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  106. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  107. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  108. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  109. package/crud/contentModelGroup/validation.d.ts +9 -6
  110. package/crud/contentModelGroup/validation.js +5 -2
  111. package/crud/contentModelGroup/validation.js.map +1 -1
  112. package/crud/contentModelGroup.crud.d.ts +1 -1
  113. package/crud/contentModelGroup.crud.js +113 -112
  114. package/crud/contentModelGroup.crud.js.map +1 -1
  115. package/crud/system.crud.js +8 -11
  116. package/crud/system.crud.js.map +1 -1
  117. package/export/crud/exporting.d.ts +3 -0
  118. package/export/crud/exporting.js +49 -0
  119. package/export/crud/exporting.js.map +1 -0
  120. package/export/crud/importing.d.ts +3 -0
  121. package/export/crud/importing.js +79 -0
  122. package/export/crud/importing.js.map +1 -0
  123. package/export/crud/imports/importData.d.ts +14 -0
  124. package/export/crud/imports/importData.js +52 -0
  125. package/export/crud/imports/importData.js.map +1 -0
  126. package/export/crud/imports/importGroups.d.ts +8 -0
  127. package/export/crud/imports/importGroups.js +104 -0
  128. package/export/crud/imports/importGroups.js.map +1 -0
  129. package/export/crud/imports/importModels.d.ts +8 -0
  130. package/export/crud/imports/importModels.js +136 -0
  131. package/export/crud/imports/importModels.js.map +1 -0
  132. package/export/crud/imports/validateGroups.d.ts +8 -0
  133. package/export/crud/imports/validateGroups.js +112 -0
  134. package/export/crud/imports/validateGroups.js.map +1 -0
  135. package/export/crud/imports/validateInput.d.ts +19 -0
  136. package/export/crud/imports/validateInput.js +55 -0
  137. package/export/crud/imports/validateInput.js.map +1 -0
  138. package/export/crud/imports/validateModels.d.ts +12 -0
  139. package/export/crud/imports/validateModels.js +203 -0
  140. package/export/crud/imports/validateModels.js.map +1 -0
  141. package/export/crud/index.d.ts +4 -0
  142. package/export/crud/index.js +15 -0
  143. package/export/crud/index.js.map +1 -0
  144. package/export/crud/sanitize.d.ts +4 -0
  145. package/export/crud/sanitize.js +35 -0
  146. package/export/crud/sanitize.js.map +1 -0
  147. package/export/graphql/index.d.ts +3 -0
  148. package/export/graphql/index.js +188 -0
  149. package/export/graphql/index.js.map +1 -0
  150. package/export/index.d.ts +2 -0
  151. package/export/index.js +29 -0
  152. package/export/index.js.map +1 -0
  153. package/export/types.d.ts +113 -0
  154. package/export/types.js +22 -0
  155. package/export/types.js.map +1 -0
  156. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  157. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  158. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  159. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  160. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  161. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  162. package/fieldConverters/index.js +3 -1
  163. package/fieldConverters/index.js.map +1 -1
  164. package/graphql/buildSchemaPlugins.js +7 -1
  165. package/graphql/buildSchemaPlugins.js.map +1 -1
  166. package/graphql/checkEndpointAccess.js +3 -1
  167. package/graphql/checkEndpointAccess.js.map +1 -1
  168. package/graphql/createExecutableSchema.js +3 -1
  169. package/graphql/createExecutableSchema.js.map +1 -1
  170. package/graphql/createRequestBody.js +3 -1
  171. package/graphql/createRequestBody.js.map +1 -1
  172. package/graphql/formatErrorPayload.js +3 -1
  173. package/graphql/formatErrorPayload.js.map +1 -1
  174. package/graphql/generateSchema.js +3 -1
  175. package/graphql/generateSchema.js.map +1 -1
  176. package/graphql/getSchema.d.ts +0 -1
  177. package/graphql/getSchema.js +34 -18
  178. package/graphql/getSchema.js.map +1 -1
  179. package/graphql/graphQLHandlerFactory.js +3 -1
  180. package/graphql/graphQLHandlerFactory.js.map +1 -1
  181. package/graphql/handleRequest.js +3 -5
  182. package/graphql/handleRequest.js.map +1 -1
  183. package/graphql/index.d.ts +1 -1
  184. package/graphql/index.js +4 -2
  185. package/graphql/index.js.map +1 -1
  186. package/graphql/schema/baseContentSchema.js +9 -8
  187. package/graphql/schema/baseContentSchema.js.map +1 -1
  188. package/graphql/schema/baseSchema.d.ts +2 -3
  189. package/graphql/schema/baseSchema.js +64 -2
  190. package/graphql/schema/baseSchema.js.map +1 -1
  191. package/graphql/schema/contentEntries.js +51 -18
  192. package/graphql/schema/contentEntries.js.map +1 -1
  193. package/graphql/schema/contentModelGroups.js +5 -2
  194. package/graphql/schema/contentModelGroups.js.map +1 -1
  195. package/graphql/schema/contentModels.js +10 -10
  196. package/graphql/schema/contentModels.js.map +1 -1
  197. package/graphql/schema/createFieldResolvers.js +14 -12
  198. package/graphql/schema/createFieldResolvers.js.map +1 -1
  199. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  200. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  201. package/graphql/schema/createManageResolvers.js +13 -10
  202. package/graphql/schema/createManageResolvers.js.map +1 -1
  203. package/graphql/schema/createManageSDL.js +37 -19
  204. package/graphql/schema/createManageSDL.js.map +1 -1
  205. package/graphql/schema/createPreviewResolvers.js +7 -6
  206. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  207. package/graphql/schema/createReadResolvers.js +7 -6
  208. package/graphql/schema/createReadResolvers.js.map +1 -1
  209. package/graphql/schema/createReadSDL.js +12 -5
  210. package/graphql/schema/createReadSDL.js.map +1 -1
  211. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  212. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  213. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  214. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  215. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  216. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  217. package/graphql/schema/resolvers/manage/resolveDelete.js +4 -2
  218. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  219. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +4 -2
  220. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  221. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  222. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  223. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  224. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  225. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  226. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  227. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  228. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  229. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  230. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  231. package/graphql/schema/resolvers/manage/resolveMove.js +7 -10
  232. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  233. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  234. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  235. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  236. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  237. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  238. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  239. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  240. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  241. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  242. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  243. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  244. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  245. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  246. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  247. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  248. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  249. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  250. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  251. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  252. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  253. package/graphql/schema/schemaPlugins.js +3 -1
  254. package/graphql/schema/schemaPlugins.js.map +1 -1
  255. package/graphql/system.js +3 -1
  256. package/graphql/system.js.map +1 -1
  257. package/graphqlFields/boolean.js +3 -1
  258. package/graphqlFields/boolean.js.map +1 -1
  259. package/graphqlFields/datetime.js +5 -5
  260. package/graphqlFields/datetime.js.map +1 -1
  261. package/graphqlFields/dynamicZone/dynamicZoneField.js +42 -19
  262. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  263. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  264. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  265. package/graphqlFields/dynamicZone/index.js +3 -1
  266. package/graphqlFields/dynamicZone/index.js.map +1 -1
  267. package/graphqlFields/file.js +3 -1
  268. package/graphqlFields/file.js.map +1 -1
  269. package/graphqlFields/helpers.d.ts +0 -1
  270. package/graphqlFields/helpers.js +6 -18
  271. package/graphqlFields/helpers.js.map +1 -1
  272. package/graphqlFields/index.js +5 -2
  273. package/graphqlFields/index.js.map +1 -1
  274. package/graphqlFields/json.d.ts +2 -0
  275. package/graphqlFields/json.js +49 -0
  276. package/graphqlFields/json.js.map +1 -0
  277. package/graphqlFields/longText.js +14 -3
  278. package/graphqlFields/longText.js.map +1 -1
  279. package/graphqlFields/number.js +3 -1
  280. package/graphqlFields/number.js.map +1 -1
  281. package/graphqlFields/object.js +24 -44
  282. package/graphqlFields/object.js.map +1 -1
  283. package/graphqlFields/ref.js +28 -16
  284. package/graphqlFields/ref.js.map +1 -1
  285. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  286. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  287. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  288. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  289. package/graphqlFields/richText/richTextResolver.js +39 -0
  290. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  291. package/graphqlFields/richText.js +11 -3
  292. package/graphqlFields/richText.js.map +1 -1
  293. package/graphqlFields/text.js +3 -1
  294. package/graphqlFields/text.js.map +1 -1
  295. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  296. package/htmlRenderer/LexicalRenderer.js +28 -0
  297. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  298. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  299. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  300. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  301. package/index.d.ts +2 -1
  302. package/index.js +20 -5
  303. package/index.js.map +1 -1
  304. package/modelManager/DefaultCmsModelManager.js +3 -5
  305. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  306. package/modelManager/index.js +3 -1
  307. package/modelManager/index.js.map +1 -1
  308. package/package.json +27 -26
  309. package/parameters/context.js +4 -2
  310. package/parameters/context.js.map +1 -1
  311. package/parameters/header.js +7 -6
  312. package/parameters/header.js.map +1 -1
  313. package/parameters/index.js +3 -1
  314. package/parameters/index.js.map +1 -1
  315. package/parameters/manual.js +9 -4
  316. package/parameters/manual.js.map +1 -1
  317. package/parameters/path.js +4 -3
  318. package/parameters/path.js.map +1 -1
  319. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  320. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  321. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  322. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  323. package/plugins/CmsGroupPlugin.d.ts +6 -3
  324. package/plugins/CmsGroupPlugin.js +8 -6
  325. package/plugins/CmsGroupPlugin.js.map +1 -1
  326. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  327. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  328. package/plugins/CmsModelPlugin.d.ts +6 -4
  329. package/plugins/CmsModelPlugin.js +56 -27
  330. package/plugins/CmsModelPlugin.js.map +1 -1
  331. package/plugins/CmsParametersPlugin.js +7 -4
  332. package/plugins/CmsParametersPlugin.js.map +1 -1
  333. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  334. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  335. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  336. package/plugins/StorageOperationsCmsModelPlugin.js +5 -6
  337. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  338. package/plugins/StorageTransformPlugin.d.ts +2 -2
  339. package/plugins/StorageTransformPlugin.js +3 -4
  340. package/plugins/StorageTransformPlugin.js.map +1 -1
  341. package/plugins/index.d.ts +1 -0
  342. package/plugins/index.js +14 -1
  343. package/plugins/index.js.map +1 -1
  344. package/storage/default.js +3 -1
  345. package/storage/default.js.map +1 -1
  346. package/storage/index.d.ts +1 -0
  347. package/storage/index.js +15 -0
  348. package/storage/index.js.map +1 -0
  349. package/storage/json.d.ts +2 -0
  350. package/storage/json.js +27 -0
  351. package/storage/json.js.map +1 -0
  352. package/storage/object.js +8 -8
  353. package/storage/object.js.map +1 -1
  354. package/types.d.ts +300 -260
  355. package/types.js +9 -20
  356. package/types.js.map +1 -1
  357. package/utils/access.d.ts +9 -0
  358. package/utils/access.js +26 -0
  359. package/utils/access.js.map +1 -0
  360. package/utils/caching/Cache.d.ts +2 -0
  361. package/utils/caching/Cache.js +51 -0
  362. package/utils/caching/Cache.js.map +1 -0
  363. package/utils/caching/CacheKey.d.ts +2 -0
  364. package/utils/caching/CacheKey.js +40 -0
  365. package/utils/caching/CacheKey.js.map +1 -0
  366. package/utils/caching/index.d.ts +2 -0
  367. package/utils/caching/index.js +29 -0
  368. package/utils/caching/index.js.map +1 -0
  369. package/utils/caching/types.d.ts +11 -0
  370. package/utils/caching/types.js +7 -0
  371. package/utils/caching/types.js.map +1 -0
  372. package/utils/converters/Converter.js +4 -5
  373. package/utils/converters/Converter.js.map +1 -1
  374. package/utils/converters/ConverterCollection.js +13 -7
  375. package/utils/converters/ConverterCollection.js.map +1 -1
  376. package/utils/converters/valueKeyStorageConverter.js +11 -4
  377. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  378. package/utils/createTypeFromFields.js +6 -1
  379. package/utils/createTypeFromFields.js.map +1 -1
  380. package/utils/createTypeName.js +3 -1
  381. package/utils/createTypeName.js.map +1 -1
  382. package/utils/date.d.ts +10 -0
  383. package/utils/date.js +36 -0
  384. package/utils/date.js.map +1 -0
  385. package/utils/entryStorage.d.ts +4 -4
  386. package/utils/entryStorage.js +6 -4
  387. package/utils/entryStorage.js.map +1 -1
  388. package/utils/filterAsync.js +9 -8
  389. package/utils/filterAsync.js.map +1 -1
  390. package/utils/getBaseFieldType.js +3 -1
  391. package/utils/getBaseFieldType.js.map +1 -1
  392. package/utils/getEntryDescription.js +3 -1
  393. package/utils/getEntryDescription.js.map +1 -1
  394. package/utils/getEntryImage.js +3 -1
  395. package/utils/getEntryImage.js.map +1 -1
  396. package/utils/getEntryTitle.js +3 -1
  397. package/utils/getEntryTitle.js.map +1 -1
  398. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  399. package/utils/getSchemaFromFieldPlugins.js +22 -4
  400. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  401. package/utils/identity.d.ts +2 -0
  402. package/utils/identity.js +20 -0
  403. package/utils/identity.js.map +1 -0
  404. package/utils/incrementEntryIdVersion.js +3 -1
  405. package/utils/incrementEntryIdVersion.js.map +1 -1
  406. package/utils/index.d.ts +1 -0
  407. package/utils/index.js +18 -0
  408. package/utils/index.js.map +1 -0
  409. package/utils/permissions/EntriesPermissions.js +3 -1
  410. package/utils/permissions/EntriesPermissions.js.map +1 -1
  411. package/utils/permissions/ModelGroupsPermissions.d.ts +3 -5
  412. package/utils/permissions/ModelGroupsPermissions.js +8 -6
  413. package/utils/permissions/ModelGroupsPermissions.js.map +1 -1
  414. package/utils/permissions/ModelsPermissions.d.ts +9 -7
  415. package/utils/permissions/ModelsPermissions.js +5 -6
  416. package/utils/permissions/ModelsPermissions.js.map +1 -1
  417. package/utils/renderFields.js +3 -1
  418. package/utils/renderFields.js.map +1 -1
  419. package/utils/renderGetFilterFields.js +5 -4
  420. package/utils/renderGetFilterFields.js.map +1 -1
  421. package/utils/renderInputFields.js +3 -1
  422. package/utils/renderInputFields.js.map +1 -1
  423. package/utils/renderListFilterFields.js +12 -4
  424. package/utils/renderListFilterFields.js.map +1 -1
  425. package/utils/renderSortEnum.js +5 -2
  426. package/utils/renderSortEnum.js.map +1 -1
  427. package/utils/toSlug.js +3 -1
  428. package/utils/toSlug.js.map +1 -1
  429. package/validators/dateGte.js +3 -1
  430. package/validators/dateGte.js.map +1 -1
  431. package/validators/dateLte.js +3 -1
  432. package/validators/dateLte.js.map +1 -1
  433. package/validators/gte.js +4 -3
  434. package/validators/gte.js.map +1 -1
  435. package/validators/in.js +4 -3
  436. package/validators/in.js.map +1 -1
  437. package/validators/index.js +4 -3
  438. package/validators/index.js.map +1 -1
  439. package/validators/lte.js +4 -3
  440. package/validators/lte.js.map +1 -1
  441. package/validators/maxLength.js +4 -3
  442. package/validators/maxLength.js.map +1 -1
  443. package/validators/minLength.js +4 -3
  444. package/validators/minLength.js.map +1 -1
  445. package/validators/pattern.js +5 -3
  446. package/validators/pattern.js.map +1 -1
  447. package/validators/patternPlugins/email.js +3 -1
  448. package/validators/patternPlugins/email.js.map +1 -1
  449. package/validators/patternPlugins/index.js +3 -1
  450. package/validators/patternPlugins/index.js.map +1 -1
  451. package/validators/patternPlugins/lowerCase.js +3 -1
  452. package/validators/patternPlugins/lowerCase.js.map +1 -1
  453. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  454. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  455. package/validators/patternPlugins/upperCase.js +3 -1
  456. package/validators/patternPlugins/upperCase.js.map +1 -1
  457. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  458. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  459. package/validators/patternPlugins/url.js +3 -1
  460. package/validators/patternPlugins/url.js.map +1 -1
  461. package/validators/required.js +3 -1
  462. package/validators/required.js.map +1 -1
  463. package/validators/timeGte.js +4 -3
  464. package/validators/timeGte.js.map +1 -1
  465. package/validators/timeLte.js +4 -3
  466. package/validators/timeLte.js.map +1 -1
  467. package/validators/unique.js +4 -2
  468. package/validators/unique.js.map +1 -1
  469. package/crud/contentModel/afterCreate.d.ts +0 -8
  470. package/crud/contentModel/afterCreate.js +0 -16
  471. package/crud/contentModel/afterCreate.js.map +0 -1
  472. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  473. package/crud/contentModel/afterCreateFrom.js +0 -16
  474. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  475. package/crud/contentModel/afterDelete.d.ts +0 -8
  476. package/crud/contentModel/afterDelete.js +0 -16
  477. package/crud/contentModel/afterDelete.js.map +0 -1
  478. package/crud/contentModel/afterUpdate.d.ts +0 -8
  479. package/crud/contentModel/afterUpdate.js +0 -16
  480. package/crud/contentModel/afterUpdate.js.map +0 -1
  481. package/crud/contentModel/validateLayout.d.ts +0 -2
  482. package/crud/contentModel/validateLayout.js +0 -28
  483. package/crud/contentModel/validateLayout.js.map +0 -1
  484. package/crud/settings.crud.d.ts +0 -12
  485. package/crud/settings.crud.js +0 -62
  486. package/crud/settings.crud.js.map +0 -1
  487. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  488. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  489. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  490. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  491. package/utils/permissions/SettingsPermissions.js +0 -9
  492. package/utils/permissions/SettingsPermissions.js.map +0 -1
  493. package/validators/dynamicZone.d.ts +0 -2
  494. package/validators/dynamicZone.js +0 -20
  495. package/validators/dynamicZone.js.map +0 -1
@@ -4,179 +4,26 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.createContentEntryCrud = exports.STATUS_UNPUBLISHED = exports.STATUS_PUBLISHED = exports.STATUS_DRAFT = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _merge = _interopRequireDefault(require("lodash/merge"));
7
+ exports.createContentEntryCrud = void 0;
10
8
  var _utils = require("@webiny/utils");
11
9
  var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _handlerGraphql = require("@webiny/handler-graphql");
13
- var _types = require("../types");
14
11
  var _entryDataValidation = require("./contentEntry/entryDataValidation");
15
12
  var _pubsub = require("@webiny/pubsub");
16
13
  var _beforeCreate = require("./contentEntry/beforeCreate");
17
14
  var _beforeUpdate = require("./contentEntry/beforeUpdate");
18
15
  var _afterDelete = require("./contentEntry/afterDelete");
19
- var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
20
16
  var _entryStorage = require("../utils/entryStorage");
21
17
  var _searchableFields = require("./contentEntry/searchableFields");
22
18
  var _filterAsync = require("../utils/filterAsync");
23
- var _apiSecurity = require("@webiny/api-security/");
19
+ var _apiSecurity = require("@webiny/api-security");
24
20
  var _constants = require("../constants");
25
- const STATUS_DRAFT = _types.CONTENT_ENTRY_STATUS.DRAFT;
26
- exports.STATUS_DRAFT = STATUS_DRAFT;
27
- const STATUS_PUBLISHED = _types.CONTENT_ENTRY_STATUS.PUBLISHED;
28
- exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
29
- const STATUS_UNPUBLISHED = _types.CONTENT_ENTRY_STATUS.UNPUBLISHED;
30
- exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
31
- /**
32
- * Used for some fields to convert their values.
33
- */
34
- const convertDefaultValue = (field, value) => {
35
- switch (field.type) {
36
- case "boolean":
37
- return Boolean(value);
38
- case "number":
39
- return Number(value);
40
- default:
41
- return value;
42
- }
43
- };
44
- const getDefaultValue = field => {
45
- const {
46
- settings,
47
- multipleValues
48
- } = field;
49
- if (settings && settings.defaultValue !== undefined) {
50
- return convertDefaultValue(field, settings.defaultValue);
51
- }
52
- const {
53
- predefinedValues
54
- } = field;
55
- if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
56
- return undefined;
57
- }
58
- if (!multipleValues) {
59
- const selectedValue = predefinedValues.values.find(value => {
60
- return !!value.selected;
61
- });
62
- if (selectedValue) {
63
- return convertDefaultValue(field, selectedValue.value);
64
- }
65
- return undefined;
66
- }
67
- return predefinedValues.values.filter(({
68
- selected
69
- }) => !!selected).map(({
70
- value
71
- }) => {
72
- return convertDefaultValue(field, value);
73
- });
74
- };
75
- /**
76
- * Cleans and adds default values to create input data.
77
- */
78
- const mapAndCleanCreateInputData = (model, input) => {
79
- return model.fields.reduce((acc, field) => {
80
- /**
81
- * This should never happen, but let's make it sure.
82
- * The fix would be for the user to add the fieldId on the field definition.
83
- */
84
- if (!field.fieldId) {
85
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
86
- field
87
- });
88
- }
89
- const value = input[field.fieldId];
90
- /**
91
- * We set the default value on create input if value is not defined.
92
- */
93
- acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
94
- return acc;
95
- }, {});
96
- };
97
- /**
98
- * Cleans the update input entry data.
99
- */
100
- const mapAndCleanUpdatedInputData = (model, input) => {
101
- return model.fields.reduce((acc, field) => {
102
- /**
103
- * This should never happen, but let's make it sure.
104
- * The fix would be for the user to add the fieldId on the field definition.
105
- */
106
- if (!field.fieldId) {
107
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
108
- field
109
- });
110
- }
111
- /**
112
- * We cannot set default value here because user might want to update only certain field values.
113
- */
114
- const value = input[field.fieldId];
115
- if (value === undefined) {
116
- return acc;
117
- }
118
- acc[field.fieldId] = value;
119
- return acc;
120
- }, {});
121
- };
122
- /**
123
- * This method takes original entry meta and new input.
124
- * When new meta is merged onto the existing one, everything that has undefined or null value is removed.
125
- */
126
- const createEntryMeta = (input, original) => {
127
- const meta = (0, _merge.default)(original || {}, input || {});
128
- return (0, _utils.removeUndefinedValues)((0, _utils.removeNullValues)(meta));
129
- };
130
- const createEntryId = input => {
131
- let entryId = (0, _utils.mdbid)();
132
- if (input.id) {
133
- if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
134
- throw new _error.default("The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.", "INVALID_ID", {
135
- id: input.id
136
- });
137
- }
138
- entryId = input.id;
139
- }
140
- const version = 1;
141
- return {
142
- entryId,
143
- version,
144
- id: (0, _utils.createIdentifier)({
145
- id: entryId,
146
- version
147
- })
148
- };
149
- };
150
- const increaseEntryIdVersion = id => {
151
- const {
152
- id: entryId,
153
- version
154
- } = (0, _utils.parseIdentifier)(id);
155
- if (!version) {
156
- throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
157
- id
158
- });
159
- }
160
- return {
161
- entryId,
162
- version: version + 1,
163
- id: (0, _utils.createIdentifier)({
164
- id: entryId,
165
- version: version + 1
166
- })
167
- };
168
- };
169
- const allowedEntryStatus = ["draft", "published", "unpublished"];
170
- const transformEntryStatus = status => {
171
- return allowedEntryStatus.includes(status) ? status : "draft";
172
- };
21
+ var _entryDataFactories = require("./contentEntry/entryDataFactories");
173
22
  const createSort = sort => {
174
- if (!Array.isArray(sort)) {
175
- return ["createdOn_DESC"];
176
- } else if (sort.filter(s => !!s).length === 0) {
177
- return ["createdOn_DESC"];
23
+ if (Array.isArray(sort) && sort.filter(Boolean).length > 0) {
24
+ return sort;
178
25
  }
179
- return sort;
26
+ return ["revisionCreatedOn_DESC"];
180
27
  };
181
28
  const createContentEntryCrud = params => {
182
29
  const {
@@ -184,18 +31,10 @@ const createContentEntryCrud = params => {
184
31
  entriesPermissions,
185
32
  modelsPermissions,
186
33
  context,
187
- getIdentity,
34
+ getIdentity: getSecurityIdentity,
188
35
  getTenant,
189
36
  getLocale
190
37
  } = params;
191
- const getCreatedBy = () => {
192
- const identity = getIdentity();
193
- return {
194
- id: identity.id,
195
- displayName: identity.displayName,
196
- type: identity.type
197
- };
198
- };
199
38
 
200
39
  /**
201
40
  * Create
@@ -218,6 +57,13 @@ const createContentEntryCrud = params => {
218
57
  const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
219
58
  const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
220
59
 
60
+ /**
61
+ * Move
62
+ */
63
+ const onEntryBeforeMove = (0, _pubsub.createTopic)("cms.onEntryBeforeMove");
64
+ const onEntryAfterMove = (0, _pubsub.createTopic)("cms.onEntryAfterMove");
65
+ const onEntryMoveError = (0, _pubsub.createTopic)("cms.onEntryMoveError");
66
+
221
67
  /**
222
68
  * Publish
223
69
  */
@@ -289,34 +135,32 @@ const createContentEntryCrud = params => {
289
135
  * A helper to delete the entire entry.
290
136
  */
291
137
  const deleteEntryHelper = async params => {
292
- return context.benchmark.measure("headlessCms.crud.entries.deleteEntry", async () => {
293
- const {
138
+ const {
139
+ model,
140
+ entry
141
+ } = params;
142
+ try {
143
+ await onEntryBeforeDelete.publish({
144
+ entry,
145
+ model
146
+ });
147
+ await storageOperations.entries.delete(model, {
148
+ entry
149
+ });
150
+ await onEntryAfterDelete.publish({
151
+ entry,
152
+ model
153
+ });
154
+ } catch (ex) {
155
+ await onEntryDeleteError.publish({
156
+ entry,
294
157
  model,
158
+ error: ex
159
+ });
160
+ throw new _error.default(ex.message || "Could not delete entry.", ex.code || "DELETE_ERROR", {
295
161
  entry
296
- } = params;
297
- try {
298
- await onEntryBeforeDelete.publish({
299
- entry,
300
- model
301
- });
302
- await storageOperations.entries.delete(model, {
303
- entry
304
- });
305
- await onEntryAfterDelete.publish({
306
- entry,
307
- model
308
- });
309
- } catch (ex) {
310
- await onEntryDeleteError.publish({
311
- entry,
312
- model,
313
- error: ex
314
- });
315
- throw new _error.default(ex.message || "Could not delete entry.", ex.code || "DELETE_ERROR", {
316
- entry
317
- });
318
- }
319
- });
162
+ });
163
+ }
320
164
  };
321
165
  /**
322
166
  * A helper to get entries by revision IDs
@@ -327,15 +171,14 @@ const createContentEntryCrud = params => {
327
171
  rwd: "r"
328
172
  });
329
173
  await modelsPermissions.ensureCanAccessModel({
330
- model,
331
- locale: getLocale().code
174
+ model
332
175
  });
333
176
  const entries = await storageOperations.entries.getByIds(model, {
334
177
  ids
335
178
  });
336
179
  return (0, _filterAsync.filterAsync)(entries, async entry => {
337
180
  return entriesPermissions.ensure({
338
- owns: entry.createdBy
181
+ owns: entry.revisionCreatedBy
339
182
  }, {
340
183
  throw: false
341
184
  });
@@ -361,15 +204,14 @@ const createContentEntryCrud = params => {
361
204
  rwd: "r"
362
205
  });
363
206
  await modelsPermissions.ensureCanAccessModel({
364
- model,
365
- locale: getLocale().code
207
+ model
366
208
  });
367
209
  const entries = await storageOperations.entries.getPublishedByIds(model, {
368
210
  ids
369
211
  });
370
212
  return (0, _filterAsync.filterAsync)(entries, async entry => {
371
213
  return entriesPermissions.ensure({
372
- owns: entry.createdBy
214
+ owns: entry.revisionCreatedBy
373
215
  }, {
374
216
  throw: false
375
217
  });
@@ -380,15 +222,14 @@ const createContentEntryCrud = params => {
380
222
  rwd: "r"
381
223
  });
382
224
  await modelsPermissions.ensureCanAccessModel({
383
- model,
384
- locale: getLocale().code
225
+ model
385
226
  });
386
227
  const entries = await storageOperations.entries.getLatestByIds(model, {
387
228
  ids
388
229
  });
389
230
  return (0, _filterAsync.filterAsync)(entries, async entry => {
390
231
  return entriesPermissions.ensure({
391
- owns: entry.createdBy
232
+ owns: entry.revisionCreatedBy
392
233
  }, {
393
234
  throw: false
394
235
  });
@@ -435,21 +276,22 @@ const createContentEntryCrud = params => {
435
276
  });
436
277
  }
437
278
  await modelsPermissions.ensureCanAccessModel({
438
- model,
439
- locale: getLocale().code
279
+ model
440
280
  });
441
281
  const {
442
282
  where: initialWhere,
443
283
  limit: initialLimit
444
284
  } = params;
445
285
  const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
446
- const where = (0, _objectSpread2.default)({}, initialWhere);
286
+ const where = {
287
+ ...initialWhere
288
+ };
447
289
  /**
448
290
  * Possibly only get records which are owned by current user.
449
291
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
450
292
  */
451
293
  if (await entriesPermissions.canAccessOnlyOwnRecords()) {
452
- where.ownedBy = getIdentity().id;
294
+ where.createdBy = getSecurityIdentity().id;
453
295
  }
454
296
 
455
297
  /**
@@ -480,12 +322,13 @@ const createContentEntryCrud = params => {
480
322
  totalCount,
481
323
  cursor,
482
324
  items
483
- } = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
325
+ } = await storageOperations.entries.list(model, {
326
+ ...params,
484
327
  sort: createSort(params.sort),
485
328
  limit,
486
329
  where,
487
330
  fields
488
- }));
331
+ });
489
332
  const meta = {
490
333
  hasMoreItems,
491
334
  totalCount,
@@ -509,62 +352,26 @@ const createContentEntryCrud = params => {
509
352
  });
510
353
  }
511
354
  };
512
- const createEntry = async (model, inputData) => {
513
- var _inputData$wbyAco_loc;
355
+ const createEntry = async (model, rawInput, options) => {
514
356
  await entriesPermissions.ensure({
515
357
  rwd: "w"
516
358
  });
517
359
  await modelsPermissions.ensureCanAccessModel({
518
- model,
519
- locale: getLocale().code
520
- });
521
-
522
- /**
523
- * Make sure we only work with fields that are defined in the model.
524
- */
525
- const initialInput = mapAndCleanCreateInputData(model, inputData);
526
- await (0, _entryDataValidation.validateModelEntryData)({
527
- context,
528
- model,
529
- data: initialInput
360
+ model
530
361
  });
531
- const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
362
+ const {
363
+ entry,
364
+ input
365
+ } = await (0, _entryDataFactories.createEntryData)({
532
366
  context,
533
367
  model,
534
- input: initialInput,
535
- validateEntries: true
368
+ options,
369
+ rawInput,
370
+ getLocale,
371
+ getTenant,
372
+ getIdentity: getSecurityIdentity,
373
+ entriesPermissions
536
374
  });
537
- const locale = getLocale();
538
- const owner = getCreatedBy();
539
- const {
540
- id,
541
- entryId,
542
- version
543
- } = createEntryId(inputData);
544
- /**
545
- * There is a possibility that user sends an ID in the input, so we will use that one.
546
- * There is no check if the ID is unique or not, that is up to the user.
547
- */
548
- const entry = {
549
- webinyVersion: context.WEBINY_VERSION,
550
- tenant: getTenant().id,
551
- entryId,
552
- id,
553
- modelId: model.modelId,
554
- locale: locale.code,
555
- createdOn: new Date().toISOString(),
556
- savedOn: new Date().toISOString(),
557
- createdBy: owner,
558
- ownedBy: owner,
559
- modifiedBy: null,
560
- version,
561
- locked: false,
562
- status: STATUS_DRAFT,
563
- values: input,
564
- location: {
565
- folderId: ((_inputData$wbyAco_loc = inputData.wbyAco_location) === null || _inputData$wbyAco_loc === void 0 ? void 0 : _inputData$wbyAco_loc.folderId) || _constants.ROOT_FOLDER
566
- }
567
- };
568
375
  let storageEntry = null;
569
376
  try {
570
377
  await onEntryBeforeCreate.publish({
@@ -583,7 +390,7 @@ const createContentEntryCrud = params => {
583
390
  model,
584
391
  input
585
392
  });
586
- return result;
393
+ return entry;
587
394
  } catch (ex) {
588
395
  await onEntryCreateError.publish({
589
396
  error: ex,
@@ -599,20 +406,14 @@ const createContentEntryCrud = params => {
599
406
  });
600
407
  }
601
408
  };
602
- const createEntryRevisionFrom = async (model, sourceId, inputData) => {
409
+ const createEntryRevisionFrom = async (model, sourceId, rawInput, options) => {
603
410
  await entriesPermissions.ensure({
604
411
  rwd: "w"
605
412
  });
606
413
  await modelsPermissions.ensureCanAccessModel({
607
- model,
608
- locale: getLocale().code
414
+ model
609
415
  });
610
416
 
611
- /**
612
- * Make sure we only work with fields that are defined in the model.
613
- */
614
- const input = mapAndCleanUpdatedInputData(model, inputData);
615
-
616
417
  /**
617
418
  * Entries are identified by a common parent ID + Revision number.
618
419
  */
@@ -628,48 +429,31 @@ const createContentEntryCrud = params => {
628
429
  if (!originalStorageEntry) {
629
430
  throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
630
431
  }
432
+ if (!latestStorageEntry) {
433
+ throw new _handlerGraphql.NotFoundError(`Latest entry "${uniqueId}" of model "${model.modelId}" was not found.`);
434
+ }
631
435
 
632
436
  /**
633
437
  * We need to convert data from DB to its original form before using it further.
634
438
  */
635
439
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
636
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
637
- await (0, _entryDataValidation.validateModelEntryData)({
638
- context,
639
- model,
640
- data: initialValues,
641
- entry: originalEntry
642
- });
643
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
644
- context,
645
- model,
646
- input: initialValues,
647
- validateEntries: false
648
- });
649
440
  await entriesPermissions.ensure({
650
441
  owns: originalEntry.createdBy
651
442
  });
652
- const identity = getIdentity();
653
- const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
654
443
  const {
655
- id,
656
- version: nextVersion
657
- } = increaseEntryIdVersion(latestId);
658
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
659
- id,
660
- version: nextVersion,
661
- savedOn: new Date().toISOString(),
662
- createdOn: new Date().toISOString(),
663
- createdBy: {
664
- id: identity.id,
665
- displayName: identity.displayName,
666
- type: identity.type
667
- },
668
- modifiedBy: null,
669
- locked: false,
670
- publishedOn: undefined,
671
- status: STATUS_DRAFT,
672
- values
444
+ entry,
445
+ input
446
+ } = await (0, _entryDataFactories.createEntryRevisionFromData)({
447
+ sourceId,
448
+ model,
449
+ rawInput,
450
+ options,
451
+ context,
452
+ getIdentity: getSecurityIdentity,
453
+ getTenant,
454
+ getLocale,
455
+ originalEntry,
456
+ latestStorageEntry
673
457
  });
674
458
  let storageEntry = null;
675
459
  try {
@@ -691,7 +475,7 @@ const createContentEntryCrud = params => {
691
475
  original: originalEntry,
692
476
  storageEntry: result
693
477
  });
694
- return result;
478
+ return entry;
695
479
  } catch (ex) {
696
480
  await onEntryCreateRevisionError.publish({
697
481
  entry,
@@ -709,21 +493,14 @@ const createContentEntryCrud = params => {
709
493
  });
710
494
  }
711
495
  };
712
- const updateEntry = async (model, id, inputData, metaInput) => {
713
- var _inputData$wbyAco_loc2;
496
+ const updateEntry = async (model, id, rawInput, metaInput, options) => {
714
497
  await entriesPermissions.ensure({
715
498
  rwd: "w"
716
499
  });
717
500
  await modelsPermissions.ensureCanAccessModel({
718
- model,
719
- locale: getLocale().code
501
+ model
720
502
  });
721
503
 
722
- /**
723
- * Make sure we only work with fields that are defined in the model.
724
- */
725
- const input = mapAndCleanUpdatedInputData(model, inputData);
726
-
727
504
  /**
728
505
  * The entry we are going to update.
729
506
  */
@@ -737,42 +514,23 @@ const createContentEntryCrud = params => {
737
514
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
738
515
  }
739
516
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
740
- await (0, _entryDataValidation.validateModelEntryData)({
741
- context,
742
- model,
743
- data: input,
744
- entry: originalEntry
745
- });
746
517
  await entriesPermissions.ensure({
747
- owns: originalEntry.createdBy
518
+ owns: originalEntry.revisionCreatedBy
748
519
  });
749
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
750
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
751
- context,
520
+ const {
521
+ entry,
522
+ input
523
+ } = await (0, _entryDataFactories.createUpdateEntryData)({
752
524
  model,
753
- input: initialValues,
754
- validateEntries: false
525
+ rawInput,
526
+ options,
527
+ context,
528
+ getIdentity: getSecurityIdentity,
529
+ getTenant,
530
+ getLocale,
531
+ originalEntry,
532
+ metaInput
755
533
  });
756
- /**
757
- * If users wants to remove a key from meta values, they need to send meta key with the null value.
758
- */
759
- const meta = createEntryMeta(metaInput, originalEntry.meta);
760
- /**
761
- * We always send the full entry to the hooks and storage operations update.
762
- */
763
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
764
- savedOn: new Date().toISOString(),
765
- modifiedBy: getCreatedBy(),
766
- values,
767
- meta,
768
- status: transformEntryStatus(originalEntry.status)
769
- });
770
- const folderId = (_inputData$wbyAco_loc2 = inputData.wbyAco_location) === null || _inputData$wbyAco_loc2 === void 0 ? void 0 : _inputData$wbyAco_loc2.folderId;
771
- if (folderId) {
772
- entry.location = {
773
- folderId
774
- };
775
- }
776
534
  let storageEntry = null;
777
535
  try {
778
536
  await onEntryBeforeUpdate.publish({
@@ -793,7 +551,7 @@ const createContentEntryCrud = params => {
793
551
  input,
794
552
  original: originalEntry
795
553
  });
796
- return result;
554
+ return entry;
797
555
  } catch (ex) {
798
556
  await onEntryUpdateError.publish({
799
557
  entry,
@@ -810,44 +568,109 @@ const createContentEntryCrud = params => {
810
568
  });
811
569
  }
812
570
  };
813
- const republishEntry = async (model, id) => {
571
+ const validateEntry = async (model, id, inputData) => {
814
572
  await entriesPermissions.ensure({
815
573
  rwd: "w"
816
574
  });
817
575
  await modelsPermissions.ensureCanAccessModel({
576
+ model
577
+ });
578
+ const input = (0, _entryDataFactories.mapAndCleanUpdatedInputData)(model, inputData || {});
579
+ let originalEntry;
580
+ if (id) {
581
+ /**
582
+ * The entry we are going to update.
583
+ */
584
+ const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
585
+ id
586
+ });
587
+ if (!originalStorageEntry) {
588
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
589
+ }
590
+ originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
591
+ }
592
+ const result = await (0, _entryDataValidation.validateModelEntryData)({
593
+ context,
818
594
  model,
819
- locale: getLocale().code
595
+ data: input,
596
+ entry: originalEntry
597
+ });
598
+ return result.length > 0 ? result : [];
599
+ };
600
+ const moveEntry = async (model, id, folderId) => {
601
+ await entriesPermissions.ensure({
602
+ rwd: "w"
603
+ });
604
+ await modelsPermissions.ensureCanAccessModel({
605
+ model
820
606
  });
821
-
822
607
  /**
823
- * Fetch the entry from the storage.
608
+ * The entry we are going to move to another folder.
824
609
  */
825
610
  const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
826
611
  id
827
612
  });
828
613
  if (!originalStorageEntry) {
829
- throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
614
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
830
615
  }
831
- const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
616
+ const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
832
617
  /**
833
- * We can only process published entries.
618
+ * No need to continue if the entry is already in the requested folder.
834
619
  */
835
- if (originalEntry.status !== "published") {
836
- throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
837
- id,
838
- original: originalEntry
620
+ if (entry.location?.folderId === folderId) {
621
+ return entry;
622
+ }
623
+ try {
624
+ await onEntryBeforeMove.publish({
625
+ entry,
626
+ model,
627
+ folderId
628
+ });
629
+ await storageOperations.entries.move(model, id, folderId);
630
+ await onEntryAfterMove.publish({
631
+ entry,
632
+ model,
633
+ folderId
634
+ });
635
+ return entry;
636
+ } catch (ex) {
637
+ await onEntryMoveError.publish({
638
+ entry,
639
+ model,
640
+ folderId,
641
+ error: ex
642
+ });
643
+ throw _error.default.from(ex, {
644
+ message: `Could not move entry "${id}" of model "${model.modelId}".`,
645
+ code: "MOVE_ENTRY_ERROR"
839
646
  });
840
647
  }
841
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
648
+ };
649
+ const republishEntry = async (model, id) => {
650
+ await entriesPermissions.ensure({
651
+ rwd: "w"
652
+ });
653
+ await modelsPermissions.ensureCanAccessModel({
654
+ model
655
+ });
656
+
657
+ /**
658
+ * Fetch the entry from the storage.
659
+ */
660
+ const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
661
+ id
662
+ });
663
+ if (!originalStorageEntry) {
664
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
665
+ }
666
+ const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
667
+ const {
668
+ entry
669
+ } = await (0, _entryDataFactories.createRepublishEntryData)({
842
670
  context,
843
671
  model,
844
- input: originalEntry.values,
845
- validateEntries: false
846
- });
847
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
848
- savedOn: new Date().toISOString(),
849
- webinyVersion: context.WEBINY_VERSION,
850
- values
672
+ originalEntry,
673
+ getIdentity: getSecurityIdentity
851
674
  });
852
675
  const storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
853
676
  /**
@@ -878,9 +701,9 @@ const createContentEntryCrud = params => {
878
701
  await onEntryAfterRepublish.publish({
879
702
  entry,
880
703
  model,
881
- storageEntry
704
+ storageEntry: result
882
705
  });
883
- return result;
706
+ return entry;
884
707
  } catch (ex) {
885
708
  await onEntryRepublishError.publish({
886
709
  entry,
@@ -897,8 +720,7 @@ const createContentEntryCrud = params => {
897
720
  rwd: "d"
898
721
  });
899
722
  await modelsPermissions.ensureCanAccessModel({
900
- model,
901
- locale: getLocale().code
723
+ model
902
724
  });
903
725
  const {
904
726
  id: entryId,
@@ -910,7 +732,7 @@ const createContentEntryCrud = params => {
910
732
  const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
911
733
  id: entryId
912
734
  });
913
- const previousStorageEntry = await storageOperations.entries.getPreviousRevision(model, {
735
+ const storagePreviousEntry = await storageOperations.entries.getPreviousRevision(model, {
914
736
  entryId,
915
737
  version: version
916
738
  });
@@ -918,28 +740,46 @@ const createContentEntryCrud = params => {
918
740
  throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
919
741
  }
920
742
  await entriesPermissions.ensure({
921
- owns: storageEntryToDelete.createdBy
743
+ owns: storageEntryToDelete.revisionCreatedBy
922
744
  });
923
745
  const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
924
746
  const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
747
+
925
748
  /**
926
- * If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
927
- * At this point deleteRevision hooks are not fired.
749
+ * If targeted record is the latest entry record and there is no previous one, we need
750
+ * to run full delete with hooks. In this case, `deleteRevision` hooks are not fired.
928
751
  */
929
- if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
752
+ if (entryToDelete.id === latestEntryRevisionId && !storagePreviousEntry) {
930
753
  return await deleteEntryHelper({
931
754
  model,
932
755
  entry: entryToDelete
933
756
  });
934
757
  }
935
758
  /**
936
- * If targeted record is latest entry revision, set the previous one as the new latest
759
+ * If targeted record is the latest entry revision, set the previous one as the new latest.
937
760
  */
938
761
  let entryToSetAsLatest = null;
939
762
  let storageEntryToSetAsLatest = null;
940
- if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
941
- entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
942
- storageEntryToSetAsLatest = previousStorageEntry;
763
+ let updatedEntryToSetAsLatest = null;
764
+ let storageUpdatedEntryToSetAsLatest = null;
765
+ if (entryToDelete.id === latestEntryRevisionId && storagePreviousEntry) {
766
+ entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, storagePreviousEntry);
767
+ storageEntryToSetAsLatest = storagePreviousEntry;
768
+
769
+ /**
770
+ * Since we're setting a different revision as the latest, we need to update entry-level meta
771
+ * fields. The values are taken from the latest revision we're about to delete. The update of the
772
+ * new latest revision is performed within storage operations.
773
+ */
774
+ const pickedEntryLevelMetaFields = (0, _constants.pickEntryMetaFields)(entryToDelete, _constants.isEntryLevelEntryMetaField);
775
+ updatedEntryToSetAsLatest = {
776
+ ...entryToSetAsLatest,
777
+ ...pickedEntryLevelMetaFields
778
+ };
779
+ storageUpdatedEntryToSetAsLatest = {
780
+ ...storageEntryToSetAsLatest,
781
+ ...pickedEntryLevelMetaFields
782
+ };
943
783
  }
944
784
  try {
945
785
  await onEntryRevisionBeforeDelete.publish({
@@ -949,8 +789,8 @@ const createContentEntryCrud = params => {
949
789
  await storageOperations.entries.deleteRevision(model, {
950
790
  entry: entryToDelete,
951
791
  storageEntry: storageEntryToDelete,
952
- latestEntry: entryToSetAsLatest,
953
- latestStorageEntry: storageEntryToSetAsLatest
792
+ latestEntry: updatedEntryToSetAsLatest,
793
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
954
794
  });
955
795
  await onEntryRevisionAfterDelete.publish({
956
796
  entry: entryToDelete,
@@ -966,8 +806,8 @@ const createContentEntryCrud = params => {
966
806
  error: ex,
967
807
  entry: entryToDelete,
968
808
  storageEntry: storageEntryToDelete,
969
- latestEntry: entryToSetAsLatest,
970
- latestStorageEntry: storageEntryToSetAsLatest
809
+ latestEntry: updatedEntryToSetAsLatest,
810
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
971
811
  });
972
812
  }
973
813
  };
@@ -993,8 +833,7 @@ const createContentEntryCrud = params => {
993
833
  rwd: "d"
994
834
  });
995
835
  await modelsPermissions.ensureCanAccessModel({
996
- model,
997
- locale: getLocale().code
836
+ model
998
837
  });
999
838
  const {
1000
839
  items: entries
@@ -1052,8 +891,7 @@ const createContentEntryCrud = params => {
1052
891
  rwd: "d"
1053
892
  });
1054
893
  await modelsPermissions.ensureCanAccessModel({
1055
- model,
1056
- locale: getLocale().code
894
+ model
1057
895
  });
1058
896
  const {
1059
897
  force
@@ -1100,8 +938,7 @@ const createContentEntryCrud = params => {
1100
938
  pw: "p"
1101
939
  });
1102
940
  await modelsPermissions.ensureCanAccessModel({
1103
- model,
1104
- locale: getLocale().code
941
+ model
1105
942
  });
1106
943
  const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
1107
944
  id
@@ -1110,19 +947,31 @@ const createContentEntryCrud = params => {
1110
947
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
1111
948
  }
1112
949
  await entriesPermissions.ensure({
1113
- owns: originalStorageEntry.createdBy
950
+ owns: originalStorageEntry.revisionCreatedBy
1114
951
  });
1115
952
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1116
- const currentDate = new Date().toISOString();
1117
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1118
- status: STATUS_PUBLISHED,
1119
- locked: true,
1120
- savedOn: currentDate,
1121
- publishedOn: currentDate
953
+
954
+ // We need the latest entry to get the latest entry-level meta fields.
955
+ const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
956
+ id: originalEntry.entryId
957
+ });
958
+ if (!latestStorageEntry) {
959
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
960
+ }
961
+ const latestEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, latestStorageEntry);
962
+ const {
963
+ entry
964
+ } = await (0, _entryDataFactories.createPublishEntryData)({
965
+ context,
966
+ model,
967
+ originalEntry,
968
+ latestEntry,
969
+ getIdentity: getSecurityIdentity
1122
970
  });
1123
971
  let storageEntry = null;
1124
972
  try {
1125
973
  await onEntryBeforePublish.publish({
974
+ original: originalEntry,
1126
975
  entry,
1127
976
  model
1128
977
  });
@@ -1132,13 +981,15 @@ const createContentEntryCrud = params => {
1132
981
  storageEntry
1133
982
  });
1134
983
  await onEntryAfterPublish.publish({
984
+ original: originalEntry,
1135
985
  entry,
1136
986
  storageEntry: result,
1137
987
  model
1138
988
  });
1139
- return result;
989
+ return entry;
1140
990
  } catch (ex) {
1141
991
  await onEntryPublishError.publish({
992
+ original: originalEntry,
1142
993
  entry,
1143
994
  model,
1144
995
  error: ex
@@ -1171,11 +1022,16 @@ const createContentEntryCrud = params => {
1171
1022
  });
1172
1023
  }
1173
1024
  await entriesPermissions.ensure({
1174
- owns: originalStorageEntry.createdBy
1025
+ owns: originalStorageEntry.revisionCreatedBy
1175
1026
  });
1176
1027
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1177
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1178
- status: STATUS_UNPUBLISHED
1028
+ const {
1029
+ entry
1030
+ } = await (0, _entryDataFactories.createUnpublishEntryData)({
1031
+ context,
1032
+ model,
1033
+ originalEntry,
1034
+ getIdentity: getSecurityIdentity
1179
1035
  });
1180
1036
  let storageEntry = null;
1181
1037
  try {
@@ -1193,7 +1049,7 @@ const createContentEntryCrud = params => {
1193
1049
  storageEntry: result,
1194
1050
  model
1195
1051
  });
1196
- return result;
1052
+ return entry;
1197
1053
  } catch (ex) {
1198
1054
  await onEntryUnpublishError.publish({
1199
1055
  entry,
@@ -1213,20 +1069,21 @@ const createContentEntryCrud = params => {
1213
1069
  rwd: "r"
1214
1070
  });
1215
1071
  await modelsPermissions.ensureCanAccessModel({
1216
- model,
1217
- locale: getLocale().code
1072
+ model
1218
1073
  });
1219
1074
  const {
1220
1075
  where: initialWhere,
1221
1076
  fieldId
1222
1077
  } = params;
1223
- const where = (0, _objectSpread2.default)({}, initialWhere);
1078
+ const where = {
1079
+ ...initialWhere
1080
+ };
1224
1081
  /**
1225
1082
  * Possibly only get records which are owned by current user.
1226
1083
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
1227
1084
  */
1228
1085
  if (await entriesPermissions.canAccessOnlyOwnRecords()) {
1229
- where.ownedBy = getIdentity().id;
1086
+ where.createdBy = getSecurityIdentity().id;
1230
1087
  }
1231
1088
 
1232
1089
  /**
@@ -1274,72 +1131,30 @@ const createContentEntryCrud = params => {
1274
1131
  }
1275
1132
  };
1276
1133
  return {
1277
- /**
1278
- * Deprecated - will be removed in 5.35.0
1279
- */
1280
- onBeforeEntryCreate: onEntryBeforeCreate,
1281
- onAfterEntryCreate: onEntryAfterCreate,
1282
- onBeforeEntryCreateRevision: onEntryBeforeCreateRevision,
1283
- onAfterEntryCreateRevision: onEntryRevisionAfterCreate,
1284
- onBeforeEntryUpdate: onEntryBeforeUpdate,
1285
- onAfterEntryUpdate: onEntryAfterUpdate,
1286
- onBeforeEntryDelete: onEntryBeforeDelete,
1287
- onAfterEntryDelete: onEntryAfterDelete,
1288
- onBeforeEntryDeleteRevision: onEntryRevisionBeforeDelete,
1289
- onAfterEntryDeleteRevision: onEntryRevisionAfterDelete,
1290
- onBeforeEntryPublish: onEntryBeforePublish,
1291
- onAfterEntryPublish: onEntryAfterPublish,
1292
- onBeforeEntryUnpublish: onEntryBeforeUnpublish,
1293
- onAfterEntryUnpublish: onEntryAfterUnpublish,
1294
- onBeforeEntryGet: onEntryBeforeGet,
1295
- onBeforeEntryList: onEntryBeforeList,
1296
- /**
1297
- * Released in 5.34.0
1298
- *
1299
- * Create
1300
- */
1301
1134
  onEntryBeforeCreate,
1302
1135
  onEntryAfterCreate,
1303
1136
  onEntryCreateError,
1304
- /**
1305
- * Create revision
1306
- */
1307
1137
  onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
1308
1138
  onEntryRevisionAfterCreate,
1309
1139
  onEntryRevisionCreateError: onEntryCreateRevisionError,
1310
- /**
1311
- * Update
1312
- */
1313
1140
  onEntryBeforeUpdate,
1314
1141
  onEntryAfterUpdate,
1315
1142
  onEntryUpdateError,
1316
- /**
1317
- * Delete whole entry
1318
- */
1143
+ onEntryBeforeMove,
1144
+ onEntryAfterMove,
1145
+ onEntryMoveError,
1319
1146
  onEntryBeforeDelete,
1320
1147
  onEntryAfterDelete,
1321
1148
  onEntryDeleteError,
1322
- /**
1323
- * Delete entry revision
1324
- */
1325
1149
  onEntryRevisionBeforeDelete,
1326
1150
  onEntryRevisionAfterDelete,
1327
1151
  onEntryRevisionDeleteError,
1328
- /**
1329
- * Publish
1330
- */
1331
1152
  onEntryBeforePublish,
1332
1153
  onEntryAfterPublish,
1333
1154
  onEntryPublishError,
1334
- /**
1335
- * Republish
1336
- */
1337
1155
  onEntryBeforeRepublish,
1338
1156
  onEntryAfterRepublish,
1339
1157
  onEntryRepublishError,
1340
- /**
1341
- * Unpublish
1342
- */
1343
1158
  onEntryBeforeUnpublish,
1344
1159
  onEntryAfterUnpublish,
1345
1160
  onEntryUnpublishError,
@@ -1399,38 +1214,50 @@ const createContentEntryCrud = params => {
1399
1214
  });
1400
1215
  },
1401
1216
  async listLatestEntries(model, params) {
1402
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1403
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1404
- sort: ["createdOn_DESC"]
1405
- }, params || {}), {}, {
1406
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1217
+ const where = params?.where || {};
1218
+ return this.listEntries(model, {
1219
+ sort: ["createdOn_DESC"],
1220
+ ...(params || {}),
1221
+ where: {
1222
+ ...where,
1407
1223
  latest: true
1408
- })
1409
- }));
1224
+ }
1225
+ });
1410
1226
  },
1411
1227
  async listPublishedEntries(model, params) {
1412
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1413
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1414
- sort: ["createdOn_DESC"]
1415
- }, params || {}), {}, {
1416
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1228
+ const where = params?.where || {};
1229
+ return this.listEntries(model, {
1230
+ sort: ["createdOn_DESC"],
1231
+ ...(params || {}),
1232
+ where: {
1233
+ ...where,
1417
1234
  published: true
1418
- })
1419
- }));
1235
+ }
1236
+ });
1420
1237
  },
1421
- async createEntry(model, input) {
1238
+ async createEntry(model, input, options) {
1422
1239
  return context.benchmark.measure("headlessCms.crud.entries.createEntry", async () => {
1423
- return createEntry(model, input);
1240
+ return createEntry(model, input, options);
1424
1241
  });
1425
1242
  },
1426
- async createEntryRevisionFrom(model, sourceId, input) {
1243
+ async createEntryRevisionFrom(model, sourceId, input, options) {
1427
1244
  return context.benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async () => {
1428
- return createEntryRevisionFrom(model, sourceId, input);
1245
+ return createEntryRevisionFrom(model, sourceId, input, options);
1429
1246
  });
1430
1247
  },
1431
- async updateEntry(model, id, input, meta) {
1248
+ async updateEntry(model, id, input, meta, options) {
1432
1249
  return context.benchmark.measure("headlessCms.crud.entries.updateEntry", async () => {
1433
- return updateEntry(model, id, input, meta);
1250
+ return updateEntry(model, id, input, meta, options);
1251
+ });
1252
+ },
1253
+ async validateEntry(model, id, input) {
1254
+ return context.benchmark.measure("headlessCms.crud.entries.validateEntry", async () => {
1255
+ return validateEntry(model, id, input);
1256
+ });
1257
+ },
1258
+ async moveEntry(model, id, folderId) {
1259
+ return context.benchmark.measure("headlessCms.crud.entries.moveEntry", async () => {
1260
+ return moveEntry(model, id, folderId);
1434
1261
  });
1435
1262
  },
1436
1263
  /**
@@ -1474,4 +1301,6 @@ const createContentEntryCrud = params => {
1474
1301
  }
1475
1302
  };
1476
1303
  };
1477
- exports.createContentEntryCrud = createContentEntryCrud;
1304
+ exports.createContentEntryCrud = createContentEntryCrud;
1305
+
1306
+ //# sourceMappingURL=contentEntry.crud.js.map