@webiny/api-headless-cms 5.39.0-beta.0 → 5.39.0-beta.2

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 (250) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +48 -1
  3. package/constants.js.map +1 -1
  4. package/context.js +40 -34
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  7. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  8. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  9. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  10. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  11. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  12. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  13. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  14. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  16. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  17. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  19. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  20. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  22. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  23. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  25. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  26. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  28. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  29. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  31. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  32. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  33. package/crud/contentEntry/entryDataValidation.js +29 -24
  34. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  35. package/crud/contentEntry/markLockedFields.js +14 -9
  36. package/crud/contentEntry/markLockedFields.js.map +1 -1
  37. package/crud/contentEntry/referenceFieldsMapping.js +10 -12
  38. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  39. package/crud/contentEntry/searchableFields.js +2 -3
  40. package/crud/contentEntry/searchableFields.js.map +1 -1
  41. package/crud/contentEntry.crud.d.ts +1 -4
  42. package/crud/contentEntry.crud.js +140 -383
  43. package/crud/contentEntry.crud.js.map +1 -1
  44. package/crud/contentModel/fields/descriptionField.js +1 -1
  45. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  46. package/crud/contentModel/fields/imageField.js +3 -7
  47. package/crud/contentModel/fields/imageField.js.map +1 -1
  48. package/crud/contentModel/fields/titleField.js +1 -1
  49. package/crud/contentModel/fields/titleField.js.map +1 -1
  50. package/crud/contentModel/listModelsFromDatabase.js +3 -4
  51. package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
  52. package/crud/contentModel/validateModelFields.js +4 -5
  53. package/crud/contentModel/validateModelFields.js.map +1 -1
  54. package/crud/contentModel/validation.d.ts +96 -96
  55. package/crud/contentModel.crud.js +28 -26
  56. package/crud/contentModel.crud.js.map +1 -1
  57. package/crud/contentModelGroup/validation.d.ts +1 -1
  58. package/crud/contentModelGroup.crud.js +18 -15
  59. package/crud/contentModelGroup.crud.js.map +1 -1
  60. package/crud/system.crud.js +4 -4
  61. package/crud/system.crud.js.map +1 -1
  62. package/export/crud/exporting.js +2 -3
  63. package/export/crud/exporting.js.map +1 -1
  64. package/export/crud/importing.js +3 -3
  65. package/export/crud/importing.js.map +1 -1
  66. package/export/crud/imports/importData.js +30 -3
  67. package/export/crud/imports/importData.js.map +1 -1
  68. package/export/crud/imports/importGroups.js +15 -10
  69. package/export/crud/imports/importGroups.js.map +1 -1
  70. package/export/crud/imports/importModels.js +14 -12
  71. package/export/crud/imports/importModels.js.map +1 -1
  72. package/export/crud/imports/validateGroups.js +13 -7
  73. package/export/crud/imports/validateGroups.js.map +1 -1
  74. package/export/crud/imports/validateInput.js +15 -9
  75. package/export/crud/imports/validateInput.js.map +1 -1
  76. package/export/crud/imports/validateModels.d.ts +4 -1
  77. package/export/crud/imports/validateModels.js +24 -25
  78. package/export/crud/imports/validateModels.js.map +1 -1
  79. package/export/types.d.ts +2 -0
  80. package/export/types.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -6
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +2 -7
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +44 -37
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/graphql/getSchema.js +15 -9
  88. package/graphql/getSchema.js.map +1 -1
  89. package/graphql/index.d.ts +1 -1
  90. package/graphql/schema/baseContentSchema.js +6 -7
  91. package/graphql/schema/baseContentSchema.js.map +1 -1
  92. package/graphql/schema/baseSchema.js +1 -8
  93. package/graphql/schema/baseSchema.js.map +1 -1
  94. package/graphql/schema/contentEntries.js +44 -13
  95. package/graphql/schema/contentEntries.js.map +1 -1
  96. package/graphql/schema/contentModelGroups.js +1 -1
  97. package/graphql/schema/contentModelGroups.js.map +1 -1
  98. package/graphql/schema/contentModels.js +5 -5
  99. package/graphql/schema/contentModels.js.map +1 -1
  100. package/graphql/schema/createFieldResolvers.js +11 -11
  101. package/graphql/schema/createFieldResolvers.js.map +1 -1
  102. package/graphql/schema/createManageResolvers.js +6 -9
  103. package/graphql/schema/createManageResolvers.js.map +1 -1
  104. package/graphql/schema/createManageSDL.js +30 -24
  105. package/graphql/schema/createManageSDL.js.map +1 -1
  106. package/graphql/schema/createPreviewResolvers.js +4 -5
  107. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  108. package/graphql/schema/createReadResolvers.js +4 -5
  109. package/graphql/schema/createReadResolvers.js.map +1 -1
  110. package/graphql/schema/createReadSDL.js +9 -4
  111. package/graphql/schema/createReadSDL.js.map +1 -1
  112. package/graphql/schema/resolvers/manage/resolveDelete.js +1 -1
  113. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +1 -1
  115. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveGet.js +9 -4
  117. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -2
  119. package/graphql/schema/resolvers/manage/resolvePublish.js +1 -1
  120. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  121. package/graphql/schema/resolvers/preview/resolveGet.js +3 -4
  122. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  123. package/graphql/schema/resolvers/read/resolveGet.js +3 -4
  124. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  125. package/graphqlFields/datetime.js +1 -2
  126. package/graphqlFields/datetime.js.map +1 -1
  127. package/graphqlFields/dynamicZone/dynamicZoneField.js +13 -13
  128. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  129. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +6 -6
  130. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  131. package/graphqlFields/index.js +2 -1
  132. package/graphqlFields/index.js.map +1 -1
  133. package/graphqlFields/json.d.ts +2 -0
  134. package/graphqlFields/json.js +49 -0
  135. package/graphqlFields/json.js.map +1 -0
  136. package/graphqlFields/object.js +20 -28
  137. package/graphqlFields/object.js.map +1 -1
  138. package/graphqlFields/ref.js +24 -14
  139. package/graphqlFields/ref.js.map +1 -1
  140. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  141. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  142. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  143. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  144. package/graphqlFields/richText/richTextResolver.js +39 -0
  145. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  146. package/graphqlFields/richText.js +8 -2
  147. package/graphqlFields/richText.js.map +1 -1
  148. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  149. package/htmlRenderer/LexicalRenderer.js +28 -0
  150. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  151. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  152. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  153. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  154. package/index.d.ts +1 -1
  155. package/index.js +4 -4
  156. package/index.js.map +1 -1
  157. package/modelManager/DefaultCmsModelManager.js +0 -4
  158. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  159. package/package.json +21 -19
  160. package/parameters/context.js +1 -1
  161. package/parameters/context.js.map +1 -1
  162. package/parameters/header.js +1 -2
  163. package/parameters/header.js.map +1 -1
  164. package/parameters/manual.js +6 -3
  165. package/parameters/manual.js.map +1 -1
  166. package/parameters/path.js +1 -2
  167. package/parameters/path.js.map +1 -1
  168. package/plugins/CmsGraphQLSchemaPlugin.js +3 -4
  169. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  170. package/plugins/CmsGraphQLSchemaSorterPlugin.js +1 -4
  171. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  172. package/plugins/CmsGroupPlugin.js +4 -7
  173. package/plugins/CmsGroupPlugin.js.map +1 -1
  174. package/plugins/CmsModelFieldConverterPlugin.js +3 -4
  175. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  176. package/plugins/CmsModelPlugin.d.ts +6 -4
  177. package/plugins/CmsModelPlugin.js +52 -27
  178. package/plugins/CmsModelPlugin.js.map +1 -1
  179. package/plugins/CmsParametersPlugin.js +1 -4
  180. package/plugins/CmsParametersPlugin.js.map +1 -1
  181. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  182. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  183. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  184. package/plugins/StorageOperationsCmsModelPlugin.js +3 -6
  185. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  186. package/plugins/StorageTransformPlugin.d.ts +2 -2
  187. package/plugins/StorageTransformPlugin.js +1 -4
  188. package/plugins/StorageTransformPlugin.js.map +1 -1
  189. package/plugins/index.d.ts +1 -0
  190. package/plugins/index.js +11 -0
  191. package/plugins/index.js.map +1 -1
  192. package/storage/index.d.ts +1 -0
  193. package/storage/index.js +15 -0
  194. package/storage/index.js.map +1 -0
  195. package/storage/json.d.ts +2 -0
  196. package/storage/json.js +27 -0
  197. package/storage/json.js.map +1 -0
  198. package/storage/object.js +5 -7
  199. package/storage/object.js.map +1 -1
  200. package/types.d.ts +182 -53
  201. package/types.js +0 -3
  202. package/types.js.map +1 -1
  203. package/utils/access.d.ts +0 -1
  204. package/utils/access.js +1 -10
  205. package/utils/access.js.map +1 -1
  206. package/utils/caching/Cache.js +3 -5
  207. package/utils/caching/Cache.js.map +1 -1
  208. package/utils/caching/CacheKey.js +0 -3
  209. package/utils/caching/CacheKey.js.map +1 -1
  210. package/utils/converters/Converter.js +1 -4
  211. package/utils/converters/Converter.js.map +1 -1
  212. package/utils/converters/ConverterCollection.js +10 -6
  213. package/utils/converters/ConverterCollection.js.map +1 -1
  214. package/utils/converters/valueKeyStorageConverter.js +3 -3
  215. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  216. package/utils/date.d.ts +2 -2
  217. package/utils/date.js +1 -1
  218. package/utils/date.js.map +1 -1
  219. package/utils/entryStorage.js +3 -3
  220. package/utils/entryStorage.js.map +1 -1
  221. package/utils/identity.d.ts +2 -0
  222. package/utils/identity.js +20 -0
  223. package/utils/identity.js.map +1 -0
  224. package/utils/permissions/ModelsPermissions.js +0 -3
  225. package/utils/permissions/ModelsPermissions.js.map +1 -1
  226. package/utils/renderGetFilterFields.js +2 -3
  227. package/utils/renderGetFilterFields.js.map +1 -1
  228. package/utils/renderListFilterFields.js +9 -3
  229. package/utils/renderListFilterFields.js.map +1 -1
  230. package/utils/renderSortEnum.js +2 -1
  231. package/utils/renderSortEnum.js.map +1 -1
  232. package/validators/gte.js +1 -2
  233. package/validators/gte.js.map +1 -1
  234. package/validators/in.js +1 -2
  235. package/validators/in.js.map +1 -1
  236. package/validators/lte.js +1 -2
  237. package/validators/lte.js.map +1 -1
  238. package/validators/maxLength.js +1 -2
  239. package/validators/maxLength.js.map +1 -1
  240. package/validators/minLength.js +1 -2
  241. package/validators/minLength.js.map +1 -1
  242. package/validators/pattern.js +2 -2
  243. package/validators/pattern.js.map +1 -1
  244. package/validators/timeGte.js +1 -2
  245. package/validators/timeGte.js.map +1 -1
  246. package/validators/timeLte.js +1 -2
  247. package/validators/timeLte.js.map +1 -1
  248. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  249. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -15
  250. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
@@ -4,191 +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
- var _date = require("../utils/date");
26
- const STATUS_DRAFT = _types.CONTENT_ENTRY_STATUS.DRAFT;
27
- exports.STATUS_DRAFT = STATUS_DRAFT;
28
- const STATUS_PUBLISHED = _types.CONTENT_ENTRY_STATUS.PUBLISHED;
29
- exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
30
- const STATUS_UNPUBLISHED = _types.CONTENT_ENTRY_STATUS.UNPUBLISHED;
31
- exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
32
- /**
33
- * Used for some fields to convert their values.
34
- */
35
- const convertDefaultValue = (field, value) => {
36
- switch (field.type) {
37
- case "boolean":
38
- return Boolean(value);
39
- case "number":
40
- return Number(value);
41
- default:
42
- return value;
43
- }
44
- };
45
- const getDefaultValue = field => {
46
- const {
47
- settings,
48
- multipleValues
49
- } = field;
50
- if (settings && settings.defaultValue !== undefined) {
51
- return convertDefaultValue(field, settings.defaultValue);
52
- }
53
- const {
54
- predefinedValues
55
- } = field;
56
- if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
57
- return undefined;
58
- }
59
- if (!multipleValues) {
60
- const selectedValue = predefinedValues.values.find(value => {
61
- return !!value.selected;
62
- });
63
- if (selectedValue) {
64
- return convertDefaultValue(field, selectedValue.value);
65
- }
66
- return undefined;
67
- }
68
- return predefinedValues.values.filter(({
69
- selected
70
- }) => !!selected).map(({
71
- value
72
- }) => {
73
- return convertDefaultValue(field, value);
74
- });
75
- };
76
- /**
77
- * Cleans and adds default values to create input data.
78
- */
79
- const mapAndCleanCreateInputData = (model, input) => {
80
- return model.fields.reduce((acc, field) => {
81
- /**
82
- * This should never happen, but let's make it sure.
83
- * The fix would be for the user to add the fieldId on the field definition.
84
- */
85
- if (!field.fieldId) {
86
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
87
- field
88
- });
89
- }
90
- const value = input[field.fieldId];
91
- /**
92
- * We set the default value on create input if value is not defined.
93
- */
94
- acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
95
- return acc;
96
- }, {});
97
- };
98
- /**
99
- * Cleans the update input entry data.
100
- */
101
- const mapAndCleanUpdatedInputData = (model, input) => {
102
- return model.fields.reduce((acc, field) => {
103
- /**
104
- * This should never happen, but let's make it sure.
105
- * The fix would be for the user to add the fieldId on the field definition.
106
- */
107
- if (!field.fieldId) {
108
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
109
- field
110
- });
111
- }
112
- /**
113
- * We cannot set default value here because user might want to update only certain field values.
114
- */
115
- const value = input[field.fieldId];
116
- if (value === undefined) {
117
- return acc;
118
- }
119
- acc[field.fieldId] = value;
120
- return acc;
121
- }, {});
122
- };
123
- /**
124
- * This method takes original entry meta and new input.
125
- * When new meta is merged onto the existing one, everything that has undefined or null value is removed.
126
- */
127
- const createEntryMeta = (input, original) => {
128
- const meta = (0, _merge.default)(original || {}, input || {});
129
- return (0, _utils.removeUndefinedValues)((0, _utils.removeNullValues)(meta));
130
- };
131
- const createEntryId = input => {
132
- let entryId = (0, _utils.mdbid)();
133
- if (input.id) {
134
- if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
135
- 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", {
136
- id: input.id
137
- });
138
- }
139
- entryId = input.id;
140
- }
141
- const version = 1;
142
- return {
143
- entryId,
144
- version,
145
- id: (0, _utils.createIdentifier)({
146
- id: entryId,
147
- version
148
- })
149
- };
150
- };
151
- const increaseEntryIdVersion = id => {
152
- const {
153
- id: entryId,
154
- version
155
- } = (0, _utils.parseIdentifier)(id);
156
- if (!version) {
157
- throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
158
- id
159
- });
160
- }
161
- return {
162
- entryId,
163
- version: version + 1,
164
- id: (0, _utils.createIdentifier)({
165
- id: entryId,
166
- version: version + 1
167
- })
168
- };
169
- };
170
- const allowedEntryStatus = ["draft", "published", "unpublished"];
171
- const transformEntryStatus = status => {
172
- return allowedEntryStatus.includes(status) ? status : "draft";
173
- };
21
+ var _entryDataFactories = require("./contentEntry/entryDataFactories");
174
22
  const createSort = sort => {
175
- if (!Array.isArray(sort)) {
176
- return ["createdOn_DESC"];
177
- } else if (sort.filter(s => !!s).length === 0) {
178
- return ["createdOn_DESC"];
179
- }
180
- return sort;
181
- };
182
- const getIdentity = (input, defaultValue) => {
183
- const identity = input !== null && input !== void 0 && input.id && input !== null && input !== void 0 && input.displayName && input !== null && input !== void 0 && input.type ? input : defaultValue;
184
- if (!identity) {
185
- return null;
23
+ if (Array.isArray(sort) && sort.filter(Boolean).length > 0) {
24
+ return sort;
186
25
  }
187
- return {
188
- id: identity.id,
189
- displayName: identity.displayName,
190
- type: identity.type
191
- };
26
+ return ["revisionCreatedOn_DESC"];
192
27
  };
193
28
  const createContentEntryCrud = params => {
194
29
  const {
@@ -343,7 +178,7 @@ const createContentEntryCrud = params => {
343
178
  });
344
179
  return (0, _filterAsync.filterAsync)(entries, async entry => {
345
180
  return entriesPermissions.ensure({
346
- owns: entry.createdBy
181
+ owns: entry.revisionCreatedBy
347
182
  }, {
348
183
  throw: false
349
184
  });
@@ -376,7 +211,7 @@ const createContentEntryCrud = params => {
376
211
  });
377
212
  return (0, _filterAsync.filterAsync)(entries, async entry => {
378
213
  return entriesPermissions.ensure({
379
- owns: entry.createdBy
214
+ owns: entry.revisionCreatedBy
380
215
  }, {
381
216
  throw: false
382
217
  });
@@ -394,7 +229,7 @@ const createContentEntryCrud = params => {
394
229
  });
395
230
  return (0, _filterAsync.filterAsync)(entries, async entry => {
396
231
  return entriesPermissions.ensure({
397
- owns: entry.createdBy
232
+ owns: entry.revisionCreatedBy
398
233
  }, {
399
234
  throw: false
400
235
  });
@@ -448,13 +283,15 @@ const createContentEntryCrud = params => {
448
283
  limit: initialLimit
449
284
  } = params;
450
285
  const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
451
- const where = (0, _objectSpread2.default)({}, initialWhere);
286
+ const where = {
287
+ ...initialWhere
288
+ };
452
289
  /**
453
290
  * Possibly only get records which are owned by current user.
454
291
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
455
292
  */
456
293
  if (await entriesPermissions.canAccessOnlyOwnRecords()) {
457
- where.ownedBy = getSecurityIdentity().id;
294
+ where.createdBy = getSecurityIdentity().id;
458
295
  }
459
296
 
460
297
  /**
@@ -485,12 +322,13 @@ const createContentEntryCrud = params => {
485
322
  totalCount,
486
323
  cursor,
487
324
  items
488
- } = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
325
+ } = await storageOperations.entries.list(model, {
326
+ ...params,
489
327
  sort: createSort(params.sort),
490
328
  limit,
491
329
  where,
492
330
  fields
493
- }));
331
+ });
494
332
  const meta = {
495
333
  hasMoreItems,
496
334
  totalCount,
@@ -515,63 +353,25 @@ const createContentEntryCrud = params => {
515
353
  }
516
354
  };
517
355
  const createEntry = async (model, rawInput, options) => {
518
- var _rawInput$wbyAco_loca;
519
356
  await entriesPermissions.ensure({
520
357
  rwd: "w"
521
358
  });
522
359
  await modelsPermissions.ensureCanAccessModel({
523
360
  model
524
361
  });
525
-
526
- /**
527
- * Make sure we only work with fields that are defined in the model.
528
- */
529
- const initialInput = mapAndCleanCreateInputData(model, rawInput);
530
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
531
- context,
532
- model,
533
- data: initialInput,
534
- skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
535
- });
536
- const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
362
+ const {
363
+ entry,
364
+ input
365
+ } = await (0, _entryDataFactories.createEntryData)({
537
366
  context,
538
367
  model,
539
- input: initialInput,
540
- validateEntries: true
368
+ options,
369
+ rawInput,
370
+ getLocale,
371
+ getTenant,
372
+ getIdentity: getSecurityIdentity,
373
+ entriesPermissions
541
374
  });
542
- const locale = getLocale();
543
- const identity = getSecurityIdentity();
544
- const {
545
- id,
546
- entryId,
547
- version
548
- } = createEntryId(rawInput);
549
- /**
550
- * There is a possibility that user sends an ID in the input, so we will use that one.
551
- * There is no check if the ID is unique or not, that is up to the user.
552
- */
553
- const currentDate = new Date();
554
- const entry = {
555
- webinyVersion: context.WEBINY_VERSION,
556
- tenant: getTenant().id,
557
- entryId,
558
- id,
559
- modelId: model.modelId,
560
- locale: locale.code,
561
- createdOn: (0, _date.getDate)(rawInput.createdOn, currentDate),
562
- savedOn: (0, _date.getDate)(rawInput.savedOn, currentDate),
563
- publishedOn: (0, _date.getDate)(rawInput.publishedOn),
564
- createdBy: getIdentity(rawInput.createdBy, identity),
565
- ownedBy: getIdentity(rawInput.ownedBy, identity),
566
- modifiedBy: getIdentity(rawInput.modifiedBy, null),
567
- version,
568
- locked: false,
569
- status: STATUS_DRAFT,
570
- values: input,
571
- location: {
572
- folderId: ((_rawInput$wbyAco_loca = rawInput.wbyAco_location) === null || _rawInput$wbyAco_loca === void 0 ? void 0 : _rawInput$wbyAco_loca.folderId) || _constants.ROOT_FOLDER
573
- }
574
- };
575
375
  let storageEntry = null;
576
376
  try {
577
377
  await onEntryBeforeCreate.publish({
@@ -614,11 +414,6 @@ const createContentEntryCrud = params => {
614
414
  model
615
415
  });
616
416
 
617
- /**
618
- * Make sure we only work with fields that are defined in the model.
619
- */
620
- const input = mapAndCleanUpdatedInputData(model, rawInput);
621
-
622
417
  /**
623
418
  * Entries are identified by a common parent ID + Revision number.
624
419
  */
@@ -634,46 +429,31 @@ const createContentEntryCrud = params => {
634
429
  if (!originalStorageEntry) {
635
430
  throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
636
431
  }
432
+ if (!latestStorageEntry) {
433
+ throw new _handlerGraphql.NotFoundError(`Latest entry "${uniqueId}" of model "${model.modelId}" was not found.`);
434
+ }
637
435
 
638
436
  /**
639
437
  * We need to convert data from DB to its original form before using it further.
640
438
  */
641
439
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
642
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
643
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
644
- context,
645
- model,
646
- data: initialValues,
647
- entry: originalEntry,
648
- skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
649
- });
650
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
651
- context,
652
- model,
653
- input: initialValues,
654
- validateEntries: false
655
- });
656
440
  await entriesPermissions.ensure({
657
441
  owns: originalEntry.createdBy
658
442
  });
659
- const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
660
443
  const {
661
- id,
662
- version: nextVersion
663
- } = increaseEntryIdVersion(latestId);
664
- const currentDate = new Date();
665
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
666
- id,
667
- version: nextVersion,
668
- savedOn: (0, _date.getDate)(rawInput.savedOn, currentDate),
669
- createdOn: (0, _date.getDate)(rawInput.createdOn, currentDate),
670
- publishedOn: (0, _date.getDate)(rawInput.publishedOn, originalEntry.publishedOn),
671
- createdBy: getIdentity(rawInput.createdBy, originalEntry.createdBy),
672
- modifiedBy: getIdentity(rawInput.modifiedBy, null),
673
- ownedBy: getIdentity(rawInput.ownedBy, originalEntry.ownedBy),
674
- locked: false,
675
- status: STATUS_DRAFT,
676
- 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
677
457
  });
678
458
  let storageEntry = null;
679
459
  try {
@@ -714,7 +494,6 @@ const createContentEntryCrud = params => {
714
494
  }
715
495
  };
716
496
  const updateEntry = async (model, id, rawInput, metaInput, options) => {
717
- var _rawInput$wbyAco_loca2;
718
497
  await entriesPermissions.ensure({
719
498
  rwd: "w"
720
499
  });
@@ -722,11 +501,6 @@ const createContentEntryCrud = params => {
722
501
  model
723
502
  });
724
503
 
725
- /**
726
- * Make sure we only work with fields that are defined in the model.
727
- */
728
- const input = mapAndCleanUpdatedInputData(model, rawInput);
729
-
730
504
  /**
731
505
  * The entry we are going to update.
732
506
  */
@@ -740,48 +514,23 @@ const createContentEntryCrud = params => {
740
514
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
741
515
  }
742
516
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
743
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
744
- context,
745
- model,
746
- data: input,
747
- entry: originalEntry,
748
- skipValidators: options === null || options === void 0 ? void 0 : options.skipValidators
749
- });
750
517
  await entriesPermissions.ensure({
751
- owns: originalEntry.createdBy
518
+ owns: originalEntry.revisionCreatedBy
752
519
  });
753
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
754
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
755
- context,
520
+ const {
521
+ entry,
522
+ input
523
+ } = await (0, _entryDataFactories.createUpdateEntryData)({
756
524
  model,
757
- input: initialValues,
758
- validateEntries: false
525
+ rawInput,
526
+ options,
527
+ context,
528
+ getIdentity: getSecurityIdentity,
529
+ getTenant,
530
+ getLocale,
531
+ originalEntry,
532
+ metaInput
759
533
  });
760
-
761
- /**
762
- * If users wants to remove a key from meta values, they need to send meta key with the null value.
763
- */
764
- const meta = createEntryMeta(metaInput, originalEntry.meta);
765
- /**
766
- * We always send the full entry to the hooks and storage operations update.
767
- */
768
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
769
- savedOn: (0, _date.getDate)(rawInput.savedOn, new Date()),
770
- createdOn: (0, _date.getDate)(rawInput.createdOn, originalEntry.createdOn),
771
- publishedOn: (0, _date.getDate)(rawInput.publishedOn, originalEntry.publishedOn),
772
- createdBy: getIdentity(rawInput.createdBy, originalEntry.createdBy),
773
- modifiedBy: getIdentity(rawInput.modifiedBy, getSecurityIdentity()),
774
- ownedBy: getIdentity(rawInput.ownedBy, originalEntry.ownedBy),
775
- values,
776
- meta,
777
- status: transformEntryStatus(originalEntry.status)
778
- });
779
- const folderId = (_rawInput$wbyAco_loca2 = rawInput.wbyAco_location) === null || _rawInput$wbyAco_loca2 === void 0 ? void 0 : _rawInput$wbyAco_loca2.folderId;
780
- if (folderId) {
781
- entry.location = {
782
- folderId
783
- };
784
- }
785
534
  let storageEntry = null;
786
535
  try {
787
536
  await onEntryBeforeUpdate.publish({
@@ -826,7 +575,7 @@ const createContentEntryCrud = params => {
826
575
  await modelsPermissions.ensureCanAccessModel({
827
576
  model
828
577
  });
829
- const input = mapAndCleanUpdatedInputData(model, inputData || {});
578
+ const input = (0, _entryDataFactories.mapAndCleanUpdatedInputData)(model, inputData || {});
830
579
  let originalEntry;
831
580
  if (id) {
832
581
  /**
@@ -849,7 +598,6 @@ const createContentEntryCrud = params => {
849
598
  return result.length > 0 ? result : [];
850
599
  };
851
600
  const moveEntry = async (model, id, folderId) => {
852
- var _entry$location;
853
601
  await entriesPermissions.ensure({
854
602
  rwd: "w"
855
603
  });
@@ -869,7 +617,7 @@ const createContentEntryCrud = params => {
869
617
  /**
870
618
  * No need to continue if the entry is already in the requested folder.
871
619
  */
872
- if (((_entry$location = entry.location) === null || _entry$location === void 0 ? void 0 : _entry$location.folderId) === folderId) {
620
+ if (entry.location?.folderId === folderId) {
873
621
  return entry;
874
622
  }
875
623
  try {
@@ -916,18 +664,13 @@ const createContentEntryCrud = params => {
916
664
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
917
665
  }
918
666
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
919
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
667
+ const {
668
+ entry
669
+ } = await (0, _entryDataFactories.createRepublishEntryData)({
920
670
  context,
921
671
  model,
922
- input: originalEntry.values,
923
- validateEntries: false
924
- });
925
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
926
- status: STATUS_PUBLISHED,
927
- publishedOn: (0, _date.getDate)(originalEntry.publishedOn, new Date()),
928
- savedOn: (0, _date.getDate)(originalEntry.savedOn, new Date()),
929
- webinyVersion: context.WEBINY_VERSION,
930
- values
672
+ originalEntry,
673
+ getIdentity: getSecurityIdentity
931
674
  });
932
675
  const storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
933
676
  /**
@@ -989,7 +732,7 @@ const createContentEntryCrud = params => {
989
732
  const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
990
733
  id: entryId
991
734
  });
992
- const previousStorageEntry = await storageOperations.entries.getPreviousRevision(model, {
735
+ const storagePreviousEntry = await storageOperations.entries.getPreviousRevision(model, {
993
736
  entryId,
994
737
  version: version
995
738
  });
@@ -997,28 +740,46 @@ const createContentEntryCrud = params => {
997
740
  throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
998
741
  }
999
742
  await entriesPermissions.ensure({
1000
- owns: storageEntryToDelete.createdBy
743
+ owns: storageEntryToDelete.revisionCreatedBy
1001
744
  });
1002
745
  const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
1003
746
  const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
747
+
1004
748
  /**
1005
- * If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
1006
- * 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.
1007
751
  */
1008
- if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
752
+ if (entryToDelete.id === latestEntryRevisionId && !storagePreviousEntry) {
1009
753
  return await deleteEntryHelper({
1010
754
  model,
1011
755
  entry: entryToDelete
1012
756
  });
1013
757
  }
1014
758
  /**
1015
- * 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.
1016
760
  */
1017
761
  let entryToSetAsLatest = null;
1018
762
  let storageEntryToSetAsLatest = null;
1019
- if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
1020
- entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
1021
- 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
+ };
1022
783
  }
1023
784
  try {
1024
785
  await onEntryRevisionBeforeDelete.publish({
@@ -1028,8 +789,8 @@ const createContentEntryCrud = params => {
1028
789
  await storageOperations.entries.deleteRevision(model, {
1029
790
  entry: entryToDelete,
1030
791
  storageEntry: storageEntryToDelete,
1031
- latestEntry: entryToSetAsLatest,
1032
- latestStorageEntry: storageEntryToSetAsLatest
792
+ latestEntry: updatedEntryToSetAsLatest,
793
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
1033
794
  });
1034
795
  await onEntryRevisionAfterDelete.publish({
1035
796
  entry: entryToDelete,
@@ -1045,8 +806,8 @@ const createContentEntryCrud = params => {
1045
806
  error: ex,
1046
807
  entry: entryToDelete,
1047
808
  storageEntry: storageEntryToDelete,
1048
- latestEntry: entryToSetAsLatest,
1049
- latestStorageEntry: storageEntryToSetAsLatest
809
+ latestEntry: updatedEntryToSetAsLatest,
810
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
1050
811
  });
1051
812
  }
1052
813
  };
@@ -1172,7 +933,7 @@ const createContentEntryCrud = params => {
1172
933
  entry
1173
934
  });
1174
935
  };
1175
- const publishEntry = async (model, id, options) => {
936
+ const publishEntry = async (model, id) => {
1176
937
  await entriesPermissions.ensure({
1177
938
  pw: "p"
1178
939
  });
@@ -1186,39 +947,26 @@ const createContentEntryCrud = params => {
1186
947
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
1187
948
  }
1188
949
  await entriesPermissions.ensure({
1189
- owns: originalStorageEntry.createdBy
950
+ owns: originalStorageEntry.revisionCreatedBy
1190
951
  });
1191
952
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1192
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
1193
- context,
1194
- model,
1195
- data: originalEntry.values,
1196
- entry: originalEntry
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
1197
957
  });
1198
- const currentDate = new Date().toISOString();
1199
- /**
1200
- * The existing functionality is to set the publishedOn date to the current date.
1201
- * Users can now choose to skip updating the publishedOn date - unless it is not set.
1202
- *
1203
- * Same logic goes for the savedOn date.
1204
- */
1205
- const {
1206
- updatePublishedOn = true,
1207
- updateSavedOn = true
1208
- } = options || {};
1209
- let publishedOn = originalEntry.publishedOn;
1210
- if (updatePublishedOn || !publishedOn) {
1211
- publishedOn = currentDate;
1212
- }
1213
- let savedOn = originalEntry.savedOn;
1214
- if (updateSavedOn || !savedOn) {
1215
- savedOn = currentDate;
958
+ if (!latestStorageEntry) {
959
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
1216
960
  }
1217
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1218
- status: STATUS_PUBLISHED,
1219
- locked: true,
1220
- savedOn,
1221
- publishedOn
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
1222
970
  });
1223
971
  let storageEntry = null;
1224
972
  try {
@@ -1274,11 +1022,16 @@ const createContentEntryCrud = params => {
1274
1022
  });
1275
1023
  }
1276
1024
  await entriesPermissions.ensure({
1277
- owns: originalStorageEntry.createdBy
1025
+ owns: originalStorageEntry.revisionCreatedBy
1278
1026
  });
1279
1027
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1280
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1281
- status: STATUS_UNPUBLISHED
1028
+ const {
1029
+ entry
1030
+ } = await (0, _entryDataFactories.createUnpublishEntryData)({
1031
+ context,
1032
+ model,
1033
+ originalEntry,
1034
+ getIdentity: getSecurityIdentity
1282
1035
  });
1283
1036
  let storageEntry = null;
1284
1037
  try {
@@ -1322,13 +1075,15 @@ const createContentEntryCrud = params => {
1322
1075
  where: initialWhere,
1323
1076
  fieldId
1324
1077
  } = params;
1325
- const where = (0, _objectSpread2.default)({}, initialWhere);
1078
+ const where = {
1079
+ ...initialWhere
1080
+ };
1326
1081
  /**
1327
1082
  * Possibly only get records which are owned by current user.
1328
1083
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
1329
1084
  */
1330
1085
  if (await entriesPermissions.canAccessOnlyOwnRecords()) {
1331
- where.ownedBy = getSecurityIdentity().id;
1086
+ where.createdBy = getSecurityIdentity().id;
1332
1087
  }
1333
1088
 
1334
1089
  /**
@@ -1459,24 +1214,26 @@ const createContentEntryCrud = params => {
1459
1214
  });
1460
1215
  },
1461
1216
  async listLatestEntries(model, params) {
1462
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1463
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1464
- sort: ["createdOn_DESC"]
1465
- }, params || {}), {}, {
1466
- 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,
1467
1223
  latest: true
1468
- })
1469
- }));
1224
+ }
1225
+ });
1470
1226
  },
1471
1227
  async listPublishedEntries(model, params) {
1472
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1473
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1474
- sort: ["createdOn_DESC"]
1475
- }, params || {}), {}, {
1476
- 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,
1477
1234
  published: true
1478
- })
1479
- }));
1235
+ }
1236
+ });
1480
1237
  },
1481
1238
  async createEntry(model, input, options) {
1482
1239
  return context.benchmark.measure("headlessCms.crud.entries.createEntry", async () => {
@@ -1527,9 +1284,9 @@ const createContentEntryCrud = params => {
1527
1284
  return deleteMultipleEntries(model, ids);
1528
1285
  });
1529
1286
  },
1530
- async publishEntry(model, id, options) {
1287
+ async publishEntry(model, id) {
1531
1288
  return context.benchmark.measure("headlessCms.crud.entries.publishEntry", async () => {
1532
- return publishEntry(model, id, options);
1289
+ return publishEntry(model, id);
1533
1290
  });
1534
1291
  },
1535
1292
  async unpublishEntry(model, id) {